mediasfu-angular 1.0.1 → 2.0.0

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 (474) hide show
  1. package/README.md +871 -769
  2. package/dist/README.md +870 -769
  3. package/dist/fesm2022/mediasfu-angular.mjs +13241 -3372
  4. package/dist/fesm2022/mediasfu-angular.mjs.map +1 -1
  5. package/dist/lib/@types/types.d.ts +22 -1
  6. package/dist/lib/components/background-components/background-modal/background-modal.component.d.ts +36 -0
  7. package/dist/lib/components/breakout-components/breakout-rooms-modal.component.d.ts +51 -0
  8. package/dist/lib/components/breakout-components/edit-room-modal/edit-room-modal.component.d.ts +48 -0
  9. package/dist/lib/components/co-host-components/co-host-modal/co-host-modal.component.d.ts +62 -0
  10. package/dist/lib/components/display-components/alert-component/alert.component.component.d.ts +24 -18
  11. package/dist/lib/components/display-components/audio-card/audio-card.component.d.ts +59 -0
  12. package/dist/lib/components/display-components/audio-grid/audio-grid.component.d.ts +20 -0
  13. package/dist/lib/components/display-components/card-video-display/card-video-display.component.d.ts +35 -0
  14. package/dist/lib/components/display-components/control-buttons-alt-component/control-buttons-alt-component.component.d.ts +38 -0
  15. package/dist/lib/components/display-components/control-buttons-component-touch/control-buttons-component-touch.component.d.ts +24 -40
  16. package/dist/lib/components/display-components/control-widgets/menu-participants-widget.component.d.ts +21 -0
  17. package/dist/lib/components/display-components/control-widgets/menu-record-widget.component.d.ts +22 -0
  18. package/dist/lib/components/display-components/control-widgets/menu-widget.component.d.ts +23 -0
  19. package/dist/lib/components/display-components/control-widgets/message-widget.component.d.ts +23 -0
  20. package/dist/lib/components/display-components/control-widgets/record-timer-widget.component.d.ts +15 -0
  21. package/dist/lib/components/display-components/control-widgets/screenshare-widget.component.d.ts +27 -0
  22. package/dist/lib/components/display-components/flexible-grid/flexible-grid.component.d.ts +27 -18
  23. package/dist/lib/components/display-components/flexible-video/flexible-video.component.d.ts +30 -45
  24. package/dist/lib/components/display-components/loading-modal/loading-modal.component.d.ts +19 -17
  25. package/dist/lib/components/display-components/main-aspect-component/main-aspect-component.component.d.ts +32 -24
  26. package/dist/lib/components/display-components/main-container-component/main-container-component.component.d.ts +28 -16
  27. package/dist/lib/components/display-components/main-grid-component/main-grid-component.component.d.ts +28 -14
  28. package/dist/lib/components/display-components/main-screen-component/main-screen-component.component.d.ts +43 -22
  29. package/dist/lib/components/display-components/meeting-progress-timer/meeting-progress-timer.component.d.ts +25 -30
  30. package/dist/lib/components/display-components/mini-audio/mini-audio.component.d.ts +55 -62
  31. package/dist/lib/components/display-components/mini-card/mini-card.component.d.ts +19 -23
  32. package/dist/lib/components/display-components/mini-card-audio/mini-card-audio.component.d.ts +39 -39
  33. package/dist/lib/components/display-components/other-grid-component/other-grid-component.component.d.ts +28 -13
  34. package/dist/lib/components/display-components/pagination/pagination.component.d.ts +29 -23
  35. package/dist/lib/components/display-components/sub-aspect-component/sub-aspect-component.component.d.ts +18 -24
  36. package/dist/lib/components/display-components/video-card/video-card.component.d.ts +62 -0
  37. package/dist/lib/components/display-settings-components/display-settings-modal.component.d.ts +28 -17
  38. package/dist/lib/components/event-settings-components/event-settings-modal/event-settings-modal.component.d.ts +47 -38
  39. package/dist/lib/components/exit-components/confirm-exit-modal/confirm-exit-modal.component.d.ts +35 -22
  40. package/dist/lib/components/media-settings-components/media-settings-modal/media-settings-modal.component.d.ts +35 -24
  41. package/dist/lib/components/mediasfu-components/mediasfu-broadcast.component.d.ts +258 -117
  42. package/dist/lib/components/mediasfu-components/mediasfu-chat.component.d.ts +254 -117
  43. package/dist/lib/components/mediasfu-components/mediasfu-conference.component.d.ts +312 -162
  44. package/dist/lib/components/mediasfu-components/mediasfu-generic.component.d.ts +312 -162
  45. package/dist/lib/components/mediasfu-components/mediasfu-webinar.component.d.ts +310 -162
  46. package/dist/lib/components/menu-components/custom-buttons/custom-buttons.component.d.ts +49 -51
  47. package/dist/lib/components/menu-components/meeting-id-component/meeting-id-component.component.d.ts +6 -1
  48. package/dist/lib/components/menu-components/meeting-passcode-component/meeting-passcode-component.component.d.ts +5 -0
  49. package/dist/lib/components/menu-components/menu-modal/menu-modal.component.d.ts +27 -29
  50. package/dist/lib/components/menu-components/share-buttons-component/share-buttons-component.component.d.ts +20 -15
  51. package/dist/lib/components/message-components/message-panel/message-panel.component.d.ts +24 -0
  52. package/dist/lib/components/message-components/messages-modal/messages-modal.component.d.ts +34 -0
  53. package/dist/lib/components/misc-components/confirm-here-modal/confirm-here-modal.component.d.ts +20 -35
  54. package/dist/lib/components/misc-components/pre-join-page/pre-join-page.component.d.ts +79 -66
  55. package/dist/lib/components/misc-components/share-event-modal/share-event-modal.component.d.ts +19 -1
  56. package/dist/lib/components/misc-components/welcome-page/welcome-page.component.d.ts +15 -0
  57. package/dist/lib/components/participants-components/participant-list/participant-list.component.d.ts +19 -0
  58. package/dist/lib/components/participants-components/participant-list-item/participant-list-item.component.d.ts +19 -0
  59. package/dist/lib/components/participants-components/participant-list-others/participant-list-others.component.d.ts +17 -0
  60. package/dist/lib/components/participants-components/participant-list-others-item/participant-list-others-item.component.d.ts +17 -0
  61. package/dist/lib/components/participants-components/participants-modal/participants-modal.component.d.ts +24 -0
  62. package/dist/lib/components/polls-components/poll-modal/poll-modal.component.d.ts +27 -0
  63. package/dist/lib/components/recording-components/advanced-panel-component/advanced-panel-components.component.d.ts +15 -0
  64. package/dist/lib/components/recording-components/recording-modal/recording-modal.component.d.ts +12 -0
  65. package/dist/lib/components/recording-components/standard-panel-component/standard-panel-component.component.d.ts +5 -0
  66. package/dist/lib/components/requests-components/render-request-component/render-request-component.component.d.ts +22 -0
  67. package/dist/lib/components/requests-components/requests-modal/requests-modal.component.d.ts +17 -0
  68. package/dist/lib/components/screenboard-components/screenboard/screenboard.component.d.ts +10 -0
  69. package/dist/lib/components/screenboard-components/screenboard-modal/screenboard-modal.component.d.ts +11 -0
  70. package/dist/lib/components/waiting-components/waiting-room-modal.component.d.ts +59 -0
  71. package/dist/lib/components/whiteboard-components/configure-whiteboard-modal/configure-whiteboard-modal.component.d.ts +21 -0
  72. package/dist/lib/components/whiteboard-components/whiteboard/whiteboard.component.d.ts +49 -0
  73. package/dist/lib/consumers/add-videos-grid.service.d.ts +49 -0
  74. package/dist/lib/consumers/auto-adjust.service.d.ts +26 -0
  75. package/dist/lib/consumers/calculate-rows-and-columns.service.d.ts +18 -0
  76. package/dist/lib/consumers/change-vids.service.d.ts +131 -66
  77. package/dist/lib/consumers/check-grid.service.d.ts +32 -18
  78. package/dist/lib/consumers/check-permission.service.d.ts +25 -0
  79. package/dist/lib/consumers/check-screen-share.service.d.ts +35 -0
  80. package/dist/lib/consumers/close-and-resize.service.d.ts +102 -0
  81. package/dist/lib/consumers/compare-active-names.service.d.ts +31 -0
  82. package/dist/lib/consumers/compare-screen-states.service.d.ts +35 -0
  83. package/dist/lib/consumers/connect-ips.service.d.ts +42 -0
  84. package/dist/lib/consumers/connect-local-ips.service.d.ts +81 -0
  85. package/dist/lib/consumers/connect-recv-transport.service.d.ts +33 -0
  86. package/dist/lib/consumers/connect-send-transport-audio.service.d.ts +81 -11
  87. package/dist/lib/consumers/connect-send-transport-screen.service.d.ts +96 -15
  88. package/dist/lib/consumers/connect-send-transport-video.service.d.ts +101 -11
  89. package/dist/lib/consumers/connect-send-transport.service.d.ts +59 -1
  90. package/dist/lib/consumers/consumer-resume.service.d.ts +36 -0
  91. package/dist/lib/consumers/control-media.service.d.ts +45 -0
  92. package/dist/lib/consumers/create-send-transport.service.d.ts +149 -13
  93. package/dist/lib/consumers/disconnect-send-transport-audio.service.d.ts +100 -13
  94. package/dist/lib/consumers/disconnect-send-transport-screen.service.d.ts +75 -2
  95. package/dist/lib/consumers/disconnect-send-transport-video.service.d.ts +99 -17
  96. package/dist/lib/consumers/disp-streams.service.d.ts +92 -0
  97. package/dist/lib/consumers/generate-page-content.service.d.ts +47 -0
  98. package/dist/lib/consumers/get-estimate.service.d.ts +50 -0
  99. package/dist/lib/consumers/get-piped-producers-alt.service.d.ts +38 -1
  100. package/dist/lib/consumers/get-producers-piped.service.d.ts +33 -0
  101. package/dist/lib/consumers/get-videos.service.d.ts +33 -0
  102. package/dist/lib/consumers/mix-streams.service.d.ts +22 -0
  103. package/dist/lib/consumers/on-screen-changes.service.d.ts +40 -0
  104. package/dist/lib/consumers/prepopulate-user-media.service.d.ts +99 -0
  105. package/dist/lib/consumers/process-consumer-transports-audio.service.d.ts +29 -0
  106. package/dist/lib/consumers/process-consumer-transports.service.d.ts +37 -0
  107. package/dist/lib/consumers/re-port.service.d.ts +48 -0
  108. package/dist/lib/consumers/re-update-inter.service.d.ts +82 -0
  109. package/dist/lib/consumers/readjust.service.d.ts +50 -0
  110. package/dist/lib/consumers/receive-all-piped-transports.service.d.ts +36 -1
  111. package/dist/lib/consumers/receive-room-messages.service.d.ts +27 -0
  112. package/dist/lib/consumers/reorder-streams.service.d.ts +58 -0
  113. package/dist/lib/consumers/request-screen-share.service.d.ts +34 -0
  114. package/dist/lib/consumers/resume-pause-audio-streams.service.d.ts +51 -0
  115. package/dist/lib/consumers/resume-pause-streams.service.d.ts +33 -0
  116. package/dist/lib/consumers/resume-send-transport-audio.service.d.ts +76 -7
  117. package/dist/lib/consumers/signal-new-consumer-transport.service.d.ts +37 -37
  118. package/dist/lib/consumers/socket-receive-methods/join-consume-room.service.d.ts +33 -0
  119. package/dist/lib/consumers/socket-receive-methods/new-pipe-producer.service.d.ts +39 -0
  120. package/dist/lib/consumers/socket-receive-methods/producer-closed.service.d.ts +27 -0
  121. package/dist/lib/consumers/start-share-screen.service.d.ts +40 -0
  122. package/dist/lib/consumers/stop-share-screen.service.d.ts +55 -0
  123. package/dist/lib/consumers/stream-success-audio-switch.service.d.ts +148 -11
  124. package/dist/lib/consumers/stream-success-audio.service.d.ts +61 -0
  125. package/dist/lib/consumers/stream-success-screen.service.d.ts +50 -0
  126. package/dist/lib/consumers/stream-success-video.service.d.ts +58 -0
  127. package/dist/lib/consumers/switch-user-audio.service.d.ts +33 -0
  128. package/dist/lib/consumers/switch-user-video-alt.service.d.ts +32 -0
  129. package/dist/lib/consumers/switch-user-video.service.d.ts +47 -0
  130. package/dist/lib/consumers/trigger.service.d.ts +41 -0
  131. package/dist/lib/consumers/update-mini-cards-grid.service.d.ts +54 -0
  132. package/dist/lib/consumers/update-participant-audio-decibels.service.d.ts +45 -0
  133. package/dist/lib/methods/background-methods/launch-background.service.d.ts +25 -0
  134. package/dist/lib/methods/breakout-room-methods/breakout-room-updated.service.d.ts +71 -0
  135. package/dist/lib/methods/breakout-room-methods/launch-breakout-rooms.service.d.ts +24 -0
  136. package/dist/lib/methods/co-host-methods/launch-co-host.service.d.ts +24 -0
  137. package/dist/lib/methods/co-host-methods/modify-co-host-settings.service.d.ts +44 -0
  138. package/dist/lib/methods/display-settings-methods/launch-display-settings.service.d.ts +22 -0
  139. package/dist/lib/methods/display-settings-methods/modify-display-settings.service.d.ts +75 -0
  140. package/dist/lib/methods/exit-methods/confirm-exit.service.d.ts +29 -1
  141. package/dist/lib/methods/exit-methods/launch-confirm-exit.service.d.ts +20 -0
  142. package/dist/lib/methods/media-settings-methods/launch-media-settings.service.d.ts +35 -0
  143. package/dist/lib/methods/menu-methods/launch-menu-modal.service.d.ts +22 -0
  144. package/dist/lib/methods/message-methods/launch-messages.service.d.ts +22 -0
  145. package/dist/lib/methods/message-methods/send-message.service.d.ts +49 -0
  146. package/dist/lib/methods/participants-methods/launch-participants.service.d.ts +24 -0
  147. package/dist/lib/methods/participants-methods/message-participants.service.d.ts +46 -0
  148. package/dist/lib/methods/participants-methods/mute-participants.service.d.ts +39 -0
  149. package/dist/lib/methods/participants-methods/remove-participants.service.d.ts +45 -0
  150. package/dist/lib/methods/polls-methods/handle-create-poll.service.d.ts +38 -0
  151. package/dist/lib/methods/polls-methods/handle-end-poll.service.d.ts +32 -0
  152. package/dist/lib/methods/polls-methods/handle-vote-poll.service.d.ts +34 -0
  153. package/dist/lib/methods/polls-methods/launch-poll.service.d.ts +20 -0
  154. package/dist/lib/methods/polls-methods/poll-updated.service.d.ts +31 -0
  155. package/dist/lib/methods/recording-methods/check-pause-state.service.d.ts +24 -0
  156. package/dist/lib/methods/recording-methods/check-resume-state.service.d.ts +22 -0
  157. package/dist/lib/methods/recording-methods/confirm-recording.service.d.ts +63 -0
  158. package/dist/lib/methods/recording-methods/launch-recording.service.d.ts +43 -0
  159. package/dist/lib/methods/recording-methods/record-pause-timer.service.d.ts +27 -0
  160. package/dist/lib/methods/recording-methods/record-resume-timer.service.d.ts +44 -0
  161. package/dist/lib/methods/recording-methods/record-start-timer.service.d.ts +45 -0
  162. package/dist/lib/methods/recording-methods/record-update-timer.service.d.ts +32 -0
  163. package/dist/lib/methods/recording-methods/start-recording.service.d.ts +53 -0
  164. package/dist/lib/methods/recording-methods/stop-recording.service.d.ts +42 -1
  165. package/dist/lib/methods/recording-methods/update-recording.service.d.ts +51 -0
  166. package/dist/lib/methods/requests-methods/launch-requests.service.d.ts +25 -0
  167. package/dist/lib/methods/requests-methods/respond-to-requests.service.d.ts +39 -0
  168. package/dist/lib/methods/settings-methods/launch-settings.service.d.ts +25 -0
  169. package/dist/lib/methods/settings-methods/modify-settings.service.d.ts +42 -0
  170. package/dist/lib/methods/stream-methods/click-audio.service.d.ts +100 -0
  171. package/dist/lib/methods/stream-methods/click-chat.service.d.ts +31 -0
  172. package/dist/lib/methods/stream-methods/click-screen-share.service.d.ts +68 -0
  173. package/dist/lib/methods/stream-methods/click-video.service.d.ts +88 -0
  174. package/dist/lib/methods/stream-methods/switch-audio.service.d.ts +47 -0
  175. package/dist/lib/methods/stream-methods/switch-video-alt.service.d.ts +50 -0
  176. package/dist/lib/methods/stream-methods/switch-video.service.d.ts +56 -0
  177. package/dist/lib/methods/utils/check-limits-and-make-request.service.d.ts +23 -0
  178. package/dist/lib/methods/utils/create-response-join-room.util.d.ts +33 -0
  179. package/dist/lib/methods/utils/create-room-on-media-sfu.service.d.ts +25 -0
  180. package/dist/lib/methods/utils/format-number.service.d.ts +26 -14
  181. package/dist/lib/methods/utils/generate-random-messages.service.d.ts +33 -0
  182. package/dist/lib/methods/utils/generate-random-participants.service.d.ts +27 -0
  183. package/dist/lib/methods/utils/generate-random-polls.service.d.ts +26 -0
  184. package/dist/lib/methods/utils/generate-random-request-list.service.d.ts +36 -0
  185. package/dist/lib/methods/utils/generate-random-waiting-room-list.service.d.ts +21 -0
  186. package/dist/lib/methods/utils/get-modal-position.util.d.ts +13 -3
  187. package/dist/lib/methods/utils/get-overlay-position.util.d.ts +13 -3
  188. package/dist/lib/methods/utils/initial-values.util.d.ts +6 -0
  189. package/dist/lib/methods/utils/join-room-on-media-sfu.service.d.ts +52 -0
  190. package/dist/lib/methods/utils/meeting-timer/start-meeting-progress-timer.service.d.ts +37 -0
  191. package/dist/lib/methods/utils/mini-audio-player/mini-audio-player.component.d.ts +55 -0
  192. package/dist/lib/methods/utils/producer/a-params.service.d.ts +37 -0
  193. package/dist/lib/methods/utils/producer/h-params.service.d.ts +50 -0
  194. package/dist/lib/methods/utils/producer/screen-params.service.d.ts +37 -0
  195. package/dist/lib/methods/utils/producer/v-params.service.d.ts +50 -0
  196. package/dist/lib/methods/utils/producer/video-capture-constraints.service.d.ts +46 -0
  197. package/dist/lib/methods/utils/sleep.util.d.ts +9 -3
  198. package/dist/lib/methods/utils/sound-player.service.d.ts +21 -0
  199. package/dist/lib/methods/utils/validate-alphanumeric.service.d.ts +16 -0
  200. package/dist/lib/methods/waiting-methods/launch-waiting.service.d.ts +18 -0
  201. package/dist/lib/methods/waiting-methods/respond-to-waiting.service.d.ts +29 -0
  202. package/dist/lib/methods/whiteboard-methods/capture-canvas-stream.service.d.ts +46 -0
  203. package/dist/lib/methods/whiteboard-methods/launch-configure-whiteboard.service.d.ts +20 -0
  204. package/dist/lib/producer-client/producer-client-emits/create-device-client.service.d.ts +23 -0
  205. package/dist/lib/producer-client/producer-client-emits/join-room-client.service.d.ts +31 -0
  206. package/dist/lib/producer-client/producer-client-emits/update-room-parameters-client.service.d.ts +44 -0
  207. package/dist/lib/producers/producer-emits/join-con-room.service.d.ts +38 -0
  208. package/dist/lib/producers/producer-emits/join-local-room.service.d.ts +125 -0
  209. package/dist/lib/producers/producer-emits/join-room.service.d.ts +38 -0
  210. package/dist/lib/producers/socket-receive-methods/all-members-rest.service.d.ts +80 -2
  211. package/dist/lib/producers/socket-receive-methods/all-members.service.d.ts +78 -2
  212. package/dist/lib/producers/socket-receive-methods/all-waiting-room-members.service.d.ts +27 -0
  213. package/dist/lib/producers/socket-receive-methods/ban-participant.service.d.ts +36 -0
  214. package/dist/lib/producers/socket-receive-methods/control-media-host.service.d.ts +37 -0
  215. package/dist/lib/producers/socket-receive-methods/disconnect-user-self.service.d.ts +29 -1
  216. package/dist/lib/producers/socket-receive-methods/disconnect.service.d.ts +26 -0
  217. package/dist/lib/producers/socket-receive-methods/get-domains.service.d.ts +24 -9
  218. package/dist/lib/producers/socket-receive-methods/host-request-response.service.d.ts +31 -48
  219. package/dist/lib/producers/socket-receive-methods/meeting-ended.service.d.ts +29 -0
  220. package/dist/lib/producers/socket-receive-methods/meeting-still-there.service.d.ts +23 -0
  221. package/dist/lib/producers/socket-receive-methods/meeting-time-remaining.service.d.ts +27 -0
  222. package/dist/lib/producers/socket-receive-methods/participant-requested.service.d.ts +31 -0
  223. package/dist/lib/producers/socket-receive-methods/person-joined.service.d.ts +25 -0
  224. package/dist/lib/producers/socket-receive-methods/producer-media-closed.service.d.ts +61 -0
  225. package/dist/lib/producers/socket-receive-methods/producer-media-paused.service.d.ts +62 -0
  226. package/dist/lib/producers/socket-receive-methods/producer-media-resumed.service.d.ts +45 -0
  227. package/dist/lib/producers/socket-receive-methods/re-initiate-recording.service.d.ts +29 -0
  228. package/dist/lib/producers/socket-receive-methods/receive-message.service.d.ts +38 -0
  229. package/dist/lib/producers/socket-receive-methods/recording-notice.service.d.ts +38 -0
  230. package/dist/lib/producers/socket-receive-methods/room-record-params.service.d.ts +62 -0
  231. package/dist/lib/producers/socket-receive-methods/screen-producer-id.service.d.ts +41 -0
  232. package/dist/lib/producers/socket-receive-methods/start-records.service.d.ts +25 -0
  233. package/dist/lib/producers/socket-receive-methods/stopped-recording.service.d.ts +25 -0
  234. package/dist/lib/producers/socket-receive-methods/time-left-recording.service.d.ts +21 -0
  235. package/dist/lib/producers/socket-receive-methods/update-consuming-domains.service.d.ts +42 -0
  236. package/dist/lib/producers/socket-receive-methods/update-media-settings.service.d.ts +30 -0
  237. package/dist/lib/producers/socket-receive-methods/updated-co-host.service.d.ts +40 -0
  238. package/dist/lib/producers/socket-receive-methods/user-waiting.service.d.ts +14 -40
  239. package/dist/lib/sockets/socket-manager.service.d.ts +130 -0
  240. package/dist/public-api.d.ts +11 -1
  241. package/package.json +17 -20
  242. package/dist/esm2022/lib/@types/types.mjs +0 -2
  243. package/dist/esm2022/lib/components/background-components/background-modal/background-modal.component.mjs +0 -763
  244. package/dist/esm2022/lib/components/breakout-components/breakout-rooms-modal.component.mjs +0 -316
  245. package/dist/esm2022/lib/components/breakout-components/edit-room-modal/edit-room-modal.component.mjs +0 -95
  246. package/dist/esm2022/lib/components/breakout-components/room-list/room-list.component.mjs +0 -40
  247. package/dist/esm2022/lib/components/co-host-components/co-host-modal/co-host-modal.component.mjs +0 -246
  248. package/dist/esm2022/lib/components/display-components/alert-component/alert.component.component.mjs +0 -73
  249. package/dist/esm2022/lib/components/display-components/audio-card/audio-card.component.mjs +0 -297
  250. package/dist/esm2022/lib/components/display-components/audio-grid/audio-grid.component.mjs +0 -60
  251. package/dist/esm2022/lib/components/display-components/card-video-display/card-video-display.component.mjs +0 -94
  252. package/dist/esm2022/lib/components/display-components/control-buttons-alt-component/control-buttons-alt-component.component.mjs +0 -100
  253. package/dist/esm2022/lib/components/display-components/control-buttons-component/control-buttons-component.component.mjs +0 -231
  254. package/dist/esm2022/lib/components/display-components/control-buttons-component-touch/control-buttons-component-touch.component.mjs +0 -298
  255. package/dist/esm2022/lib/components/display-components/control-widgets/menu-participants-widget.component.mjs +0 -61
  256. package/dist/esm2022/lib/components/display-components/control-widgets/menu-record-widget.component.mjs +0 -43
  257. package/dist/esm2022/lib/components/display-components/control-widgets/menu-widget.component.mjs +0 -114
  258. package/dist/esm2022/lib/components/display-components/control-widgets/message-widget.component.mjs +0 -114
  259. package/dist/esm2022/lib/components/display-components/control-widgets/record-timer-widget.component.mjs +0 -36
  260. package/dist/esm2022/lib/components/display-components/control-widgets/screenshare-widget.component.mjs +0 -74
  261. package/dist/esm2022/lib/components/display-components/flexible-grid/flexible-grid.component.mjs +0 -142
  262. package/dist/esm2022/lib/components/display-components/flexible-video/flexible-video.component.mjs +0 -265
  263. package/dist/esm2022/lib/components/display-components/loading-modal/loading-modal.component.mjs +0 -100
  264. package/dist/esm2022/lib/components/display-components/main-aspect-component/main-aspect-component.component.mjs +0 -132
  265. package/dist/esm2022/lib/components/display-components/main-container-component/main-container-component.component.mjs +0 -119
  266. package/dist/esm2022/lib/components/display-components/main-grid-component/main-grid-component.component.mjs +0 -106
  267. package/dist/esm2022/lib/components/display-components/main-screen-component/main-screen-component.component.mjs +0 -180
  268. package/dist/esm2022/lib/components/display-components/meeting-progress-timer/meeting-progress-timer.component.mjs +0 -120
  269. package/dist/esm2022/lib/components/display-components/mini-audio/mini-audio.component.mjs +0 -326
  270. package/dist/esm2022/lib/components/display-components/mini-card/mini-card.component.mjs +0 -165
  271. package/dist/esm2022/lib/components/display-components/mini-card-audio/mini-card-audio.component.mjs +0 -230
  272. package/dist/esm2022/lib/components/display-components/other-grid-component/other-grid-component.component.mjs +0 -111
  273. package/dist/esm2022/lib/components/display-components/pagination/pagination.component.mjs +0 -328
  274. package/dist/esm2022/lib/components/display-components/sub-aspect-component/sub-aspect-component.component.mjs +0 -118
  275. package/dist/esm2022/lib/components/display-components/video-card/video-card.component.mjs +0 -330
  276. package/dist/esm2022/lib/components/display-settings-components/display-settings-modal.component.mjs +0 -95
  277. package/dist/esm2022/lib/components/event-settings-components/event-settings-modal/event-settings-modal.component.mjs +0 -190
  278. package/dist/esm2022/lib/components/exit-components/confirm-exit-modal/confirm-exit-modal.component.mjs +0 -119
  279. package/dist/esm2022/lib/components/media-settings-components/media-settings-modal/media-settings-modal.component.mjs +0 -209
  280. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-broadcast.component.mjs +0 -4189
  281. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-chat.component.mjs +0 -3705
  282. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-conference.component.mjs +0 -5024
  283. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-generic.component.mjs +0 -5333
  284. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-webinar.component.mjs +0 -5023
  285. package/dist/esm2022/lib/components/menu-components/custom-buttons/custom-buttons.component.mjs +0 -85
  286. package/dist/esm2022/lib/components/menu-components/meeting-id-component/meeting-id-component.component.mjs +0 -22
  287. package/dist/esm2022/lib/components/menu-components/meeting-passcode-component/meeting-passcode-component.component.mjs +0 -22
  288. package/dist/esm2022/lib/components/menu-components/menu-modal/menu-modal.component.mjs +0 -132
  289. package/dist/esm2022/lib/components/menu-components/share-buttons-component/share-buttons-component.component.mjs +0 -104
  290. package/dist/esm2022/lib/components/message-components/message-panel/message-panel.component.mjs +0 -204
  291. package/dist/esm2022/lib/components/message-components/messages-modal/messages-modal.component.mjs +0 -243
  292. package/dist/esm2022/lib/components/misc-components/confirm-here-modal/confirm-here-modal.component.mjs +0 -147
  293. package/dist/esm2022/lib/components/misc-components/pre-join-page/pre-join-page.component.mjs +0 -335
  294. package/dist/esm2022/lib/components/misc-components/share-event-modal/share-event-modal.component.mjs +0 -113
  295. package/dist/esm2022/lib/components/misc-components/welcome-page/welcome-page.component.mjs +0 -226
  296. package/dist/esm2022/lib/components/participants-components/participant-list/participant-list.component.mjs +0 -63
  297. package/dist/esm2022/lib/components/participants-components/participant-list-item/participant-list-item.component.mjs +0 -120
  298. package/dist/esm2022/lib/components/participants-components/participant-list-others/participant-list-others.component.mjs +0 -23
  299. package/dist/esm2022/lib/components/participants-components/participant-list-others-item/participant-list-others-item.component.mjs +0 -43
  300. package/dist/esm2022/lib/components/participants-components/participants-modal/participants-modal.component.mjs +0 -100
  301. package/dist/esm2022/lib/components/polls-components/poll-modal/poll-modal.component.mjs +0 -174
  302. package/dist/esm2022/lib/components/recording-components/advanced-panel-component/advanced-panel-components.component.mjs +0 -77
  303. package/dist/esm2022/lib/components/recording-components/recording-modal/recording-modal.component.mjs +0 -121
  304. package/dist/esm2022/lib/components/recording-components/standard-panel-component/standard-panel-component.component.mjs +0 -85
  305. package/dist/esm2022/lib/components/requests-components/render-request-component/render-request-component.component.mjs +0 -59
  306. package/dist/esm2022/lib/components/requests-components/requests-modal/requests-modal.component.mjs +0 -130
  307. package/dist/esm2022/lib/components/screenboard-components/screenboard/screenboard.component.mjs +0 -617
  308. package/dist/esm2022/lib/components/screenboard-components/screenboard-modal/screenboard-modal.component.mjs +0 -380
  309. package/dist/esm2022/lib/components/waiting-components/waiting-room-modal.component.mjs +0 -142
  310. package/dist/esm2022/lib/components/whiteboard-components/configure-whiteboard-modal/configure-whiteboard-modal.component.mjs +0 -265
  311. package/dist/esm2022/lib/components/whiteboard-components/whiteboard/whiteboard.component.mjs +0 -1784
  312. package/dist/esm2022/lib/consumers/add-videos-grid.service.mjs +0 -296
  313. package/dist/esm2022/lib/consumers/auto-adjust.service.mjs +0 -83
  314. package/dist/esm2022/lib/consumers/calculate-rows-and-columns.service.mjs +0 -42
  315. package/dist/esm2022/lib/consumers/change-vids.service.mjs +0 -486
  316. package/dist/esm2022/lib/consumers/check-grid.service.mjs +0 -79
  317. package/dist/esm2022/lib/consumers/check-permission.service.mjs +0 -80
  318. package/dist/esm2022/lib/consumers/check-screen-share.service.mjs +0 -71
  319. package/dist/esm2022/lib/consumers/close-and-resize.service.mjs +0 -229
  320. package/dist/esm2022/lib/consumers/compare-active-names.service.mjs +0 -75
  321. package/dist/esm2022/lib/consumers/compare-screen-states.service.mjs +0 -63
  322. package/dist/esm2022/lib/consumers/connect-ips.service.mjs +0 -112
  323. package/dist/esm2022/lib/consumers/connect-recv-transport.service.mjs +0 -113
  324. package/dist/esm2022/lib/consumers/connect-send-transport-audio.service.mjs +0 -46
  325. package/dist/esm2022/lib/consumers/connect-send-transport-screen.service.mjs +0 -62
  326. package/dist/esm2022/lib/consumers/connect-send-transport-video.service.mjs +0 -55
  327. package/dist/esm2022/lib/consumers/connect-send-transport.service.mjs +0 -86
  328. package/dist/esm2022/lib/consumers/consumer-resume.service.mjs +0 -332
  329. package/dist/esm2022/lib/consumers/control-media.service.mjs +0 -68
  330. package/dist/esm2022/lib/consumers/create-send-transport.service.mjs +0 -126
  331. package/dist/esm2022/lib/consumers/disconnect-send-transport-audio.service.mjs +0 -58
  332. package/dist/esm2022/lib/consumers/disconnect-send-transport-screen.service.mjs +0 -45
  333. package/dist/esm2022/lib/consumers/disconnect-send-transport-video.service.mjs +0 -56
  334. package/dist/esm2022/lib/consumers/disp-streams.service.mjs +0 -421
  335. package/dist/esm2022/lib/consumers/generate-page-content.service.mjs +0 -59
  336. package/dist/esm2022/lib/consumers/get-estimate.service.mjs +0 -70
  337. package/dist/esm2022/lib/consumers/get-piped-producers-alt.service.mjs +0 -49
  338. package/dist/esm2022/lib/consumers/get-producers-piped.service.mjs +0 -46
  339. package/dist/esm2022/lib/consumers/get-videos.service.mjs +0 -58
  340. package/dist/esm2022/lib/consumers/mix-streams.service.mjs +0 -73
  341. package/dist/esm2022/lib/consumers/on-screen-changes.service.mjs +0 -63
  342. package/dist/esm2022/lib/consumers/prepopulate-user-media.service.mjs +0 -442
  343. package/dist/esm2022/lib/consumers/process-consumer-transports-audio.service.mjs +0 -72
  344. package/dist/esm2022/lib/consumers/process-consumer-transports.service.mjs +0 -91
  345. package/dist/esm2022/lib/consumers/re-port.service.mjs +0 -66
  346. package/dist/esm2022/lib/consumers/re-update-inter.service.mjs +0 -157
  347. package/dist/esm2022/lib/consumers/readjust.service.mjs +0 -123
  348. package/dist/esm2022/lib/consumers/receive-all-piped-transports.service.mjs +0 -56
  349. package/dist/esm2022/lib/consumers/receive-room-messages.service.mjs +0 -42
  350. package/dist/esm2022/lib/consumers/reorder-streams.service.mjs +0 -181
  351. package/dist/esm2022/lib/consumers/request-screen-share.service.mjs +0 -67
  352. package/dist/esm2022/lib/consumers/resume-pause-audio-streams.service.mjs +0 -99
  353. package/dist/esm2022/lib/consumers/resume-pause-streams.service.mjs +0 -70
  354. package/dist/esm2022/lib/consumers/resume-send-transport-audio.service.mjs +0 -55
  355. package/dist/esm2022/lib/consumers/signal-new-consumer-transport.service.mjs +0 -136
  356. package/dist/esm2022/lib/consumers/socket-receive-methods/join-consume-room.service.mjs +0 -63
  357. package/dist/esm2022/lib/consumers/socket-receive-methods/new-pipe-producer.service.mjs +0 -61
  358. package/dist/esm2022/lib/consumers/socket-receive-methods/producer-closed.service.mjs +0 -51
  359. package/dist/esm2022/lib/consumers/start-share-screen.service.mjs +0 -80
  360. package/dist/esm2022/lib/consumers/stop-share-screen.service.mjs +0 -120
  361. package/dist/esm2022/lib/consumers/stream-success-audio-switch.service.mjs +0 -132
  362. package/dist/esm2022/lib/consumers/stream-success-audio.service.mjs +0 -149
  363. package/dist/esm2022/lib/consumers/stream-success-screen.service.mjs +0 -143
  364. package/dist/esm2022/lib/consumers/stream-success-video.service.mjs +0 -202
  365. package/dist/esm2022/lib/consumers/switch-user-audio.service.mjs +0 -87
  366. package/dist/esm2022/lib/consumers/switch-user-video-alt.service.mjs +0 -228
  367. package/dist/esm2022/lib/consumers/switch-user-video.service.mjs +0 -125
  368. package/dist/esm2022/lib/consumers/trigger.service.mjs +0 -172
  369. package/dist/esm2022/lib/consumers/update-mini-cards-grid.service.mjs +0 -81
  370. package/dist/esm2022/lib/consumers/update-participant-audio-decibels.service.mjs +0 -39
  371. package/dist/esm2022/lib/methods/background-methods/launch-background.service.mjs +0 -23
  372. package/dist/esm2022/lib/methods/breakout-room-methods/breakout-room-updated.service.mjs +0 -112
  373. package/dist/esm2022/lib/methods/breakout-room-methods/launch-breakout-rooms.service.mjs +0 -22
  374. package/dist/esm2022/lib/methods/co-host-methods/launch-co-host.service.mjs +0 -22
  375. package/dist/esm2022/lib/methods/co-host-methods/modify-co-host-settings.service.mjs +0 -60
  376. package/dist/esm2022/lib/methods/display-settings-methods/launch-display-settings.service.mjs +0 -24
  377. package/dist/esm2022/lib/methods/display-settings-methods/modify-display-settings.service.mjs +0 -119
  378. package/dist/esm2022/lib/methods/exit-methods/confirm-exit.service.mjs +0 -28
  379. package/dist/esm2022/lib/methods/exit-methods/launch-confirm-exit.service.mjs +0 -22
  380. package/dist/esm2022/lib/methods/media-settings-methods/launch-media-settings.service.mjs +0 -50
  381. package/dist/esm2022/lib/methods/menu-methods/launch-menu-modal.service.mjs +0 -22
  382. package/dist/esm2022/lib/methods/message-methods/launch-messages.service.mjs +0 -23
  383. package/dist/esm2022/lib/methods/message-methods/send-message.service.mjs +0 -94
  384. package/dist/esm2022/lib/methods/participants-methods/launch-participants.service.mjs +0 -23
  385. package/dist/esm2022/lib/methods/participants-methods/message-participants.service.mjs +0 -52
  386. package/dist/esm2022/lib/methods/participants-methods/mute-participants.service.mjs +0 -57
  387. package/dist/esm2022/lib/methods/participants-methods/remove-participants.service.mjs +0 -62
  388. package/dist/esm2022/lib/methods/polls-methods/handle-create-poll.service.mjs +0 -37
  389. package/dist/esm2022/lib/methods/polls-methods/handle-end-poll.service.mjs +0 -40
  390. package/dist/esm2022/lib/methods/polls-methods/handle-vote-poll.service.mjs +0 -49
  391. package/dist/esm2022/lib/methods/polls-methods/launch-poll.service.mjs +0 -23
  392. package/dist/esm2022/lib/methods/polls-methods/poll-updated.service.mjs +0 -64
  393. package/dist/esm2022/lib/methods/recording-methods/check-pause-state.service.mjs +0 -45
  394. package/dist/esm2022/lib/methods/recording-methods/check-resume-state.service.mjs +0 -34
  395. package/dist/esm2022/lib/methods/recording-methods/confirm-recording.service.mjs +0 -215
  396. package/dist/esm2022/lib/methods/recording-methods/launch-recording.service.mjs +0 -82
  397. package/dist/esm2022/lib/methods/recording-methods/record-pause-timer.service.mjs +0 -40
  398. package/dist/esm2022/lib/methods/recording-methods/record-resume-timer.service.mjs +0 -86
  399. package/dist/esm2022/lib/methods/recording-methods/record-start-timer.service.mjs +0 -89
  400. package/dist/esm2022/lib/methods/recording-methods/record-update-timer.service.mjs +0 -48
  401. package/dist/esm2022/lib/methods/recording-methods/start-recording.service.mjs +0 -147
  402. package/dist/esm2022/lib/methods/recording-methods/stop-recording.service.mjs +0 -74
  403. package/dist/esm2022/lib/methods/recording-methods/update-recording.service.mjs +0 -224
  404. package/dist/esm2022/lib/methods/requests-methods/launch-requests.service.mjs +0 -26
  405. package/dist/esm2022/lib/methods/requests-methods/respond-to-requests.service.mjs +0 -45
  406. package/dist/esm2022/lib/methods/settings-methods/launch-settings.service.mjs +0 -26
  407. package/dist/esm2022/lib/methods/settings-methods/modify-settings.service.mjs +0 -67
  408. package/dist/esm2022/lib/methods/stream-methods/click-audio.service.mjs +0 -178
  409. package/dist/esm2022/lib/methods/stream-methods/click-chat.service.mjs +0 -44
  410. package/dist/esm2022/lib/methods/stream-methods/click-screen-share.service.mjs +0 -110
  411. package/dist/esm2022/lib/methods/stream-methods/click-video.service.mjs +0 -183
  412. package/dist/esm2022/lib/methods/stream-methods/switch-audio.service.mjs +0 -33
  413. package/dist/esm2022/lib/methods/stream-methods/switch-video-alt.service.mjs +0 -66
  414. package/dist/esm2022/lib/methods/stream-methods/switch-video.service.mjs +0 -76
  415. package/dist/esm2022/lib/methods/utils/format-number.service.mjs +0 -45
  416. package/dist/esm2022/lib/methods/utils/generate-random-messages.service.mjs +0 -87
  417. package/dist/esm2022/lib/methods/utils/generate-random-participants.service.mjs +0 -99
  418. package/dist/esm2022/lib/methods/utils/generate-random-polls.service.mjs +0 -52
  419. package/dist/esm2022/lib/methods/utils/generate-random-request-list.service.mjs +0 -54
  420. package/dist/esm2022/lib/methods/utils/generate-random-waiting-room-list.service.mjs +0 -38
  421. package/dist/esm2022/lib/methods/utils/get-modal-position.util.mjs +0 -22
  422. package/dist/esm2022/lib/methods/utils/get-overlay-position.util.mjs +0 -21
  423. package/dist/esm2022/lib/methods/utils/initial-values.util.mjs +0 -379
  424. package/dist/esm2022/lib/methods/utils/meeting-timer/start-meeting-progress-timer.service.mjs +0 -59
  425. package/dist/esm2022/lib/methods/utils/mini-audio-player/mini-audio-player.component.mjs +0 -260
  426. package/dist/esm2022/lib/methods/utils/producer/a-params.service.mjs +0 -21
  427. package/dist/esm2022/lib/methods/utils/producer/h-params.service.mjs +0 -37
  428. package/dist/esm2022/lib/methods/utils/producer/screen-params.service.mjs +0 -24
  429. package/dist/esm2022/lib/methods/utils/producer/v-params.service.mjs +0 -37
  430. package/dist/esm2022/lib/methods/utils/producer/video-capture-constraints.service.mjs +0 -38
  431. package/dist/esm2022/lib/methods/utils/sleep.util.mjs +0 -11
  432. package/dist/esm2022/lib/methods/utils/sound-player.service.mjs +0 -42
  433. package/dist/esm2022/lib/methods/utils/validate-alphanumeric.service.mjs +0 -33
  434. package/dist/esm2022/lib/methods/waiting-methods/launch-waiting.service.mjs +0 -23
  435. package/dist/esm2022/lib/methods/waiting-methods/respond-to-waiting.service.mjs +0 -40
  436. package/dist/esm2022/lib/methods/whiteboard-methods/capture-canvas-stream.service.mjs +0 -69
  437. package/dist/esm2022/lib/methods/whiteboard-methods/launch-configure-whiteboard.service.mjs +0 -24
  438. package/dist/esm2022/lib/producer-client/producer-client-emits/create-device-client.service.mjs +0 -51
  439. package/dist/esm2022/lib/producer-client/producer-client-emits/join-room-client.service.mjs +0 -65
  440. package/dist/esm2022/lib/producer-client/producer-client-emits/update-room-parameters-client.service.mjs +0 -232
  441. package/dist/esm2022/lib/producers/producer-emits/join-con-room.service.mjs +0 -114
  442. package/dist/esm2022/lib/producers/producer-emits/join-room.service.mjs +0 -114
  443. package/dist/esm2022/lib/producers/socket-receive-methods/all-members-rest.service.mjs +0 -155
  444. package/dist/esm2022/lib/producers/socket-receive-methods/all-members.service.mjs +0 -147
  445. package/dist/esm2022/lib/producers/socket-receive-methods/all-waiting-room-members.service.mjs +0 -30
  446. package/dist/esm2022/lib/producers/socket-receive-methods/ban-participant.service.mjs +0 -40
  447. package/dist/esm2022/lib/producers/socket-receive-methods/control-media-host.service.mjs +0 -146
  448. package/dist/esm2022/lib/producers/socket-receive-methods/disconnect-user-self.service.mjs +0 -26
  449. package/dist/esm2022/lib/producers/socket-receive-methods/disconnect.service.mjs +0 -38
  450. package/dist/esm2022/lib/producers/socket-receive-methods/get-domains.service.mjs +0 -63
  451. package/dist/esm2022/lib/producers/socket-receive-methods/host-request-response.service.mjs +0 -167
  452. package/dist/esm2022/lib/producers/socket-receive-methods/meeting-ended.service.mjs +0 -44
  453. package/dist/esm2022/lib/producers/socket-receive-methods/meeting-still-there.service.mjs +0 -24
  454. package/dist/esm2022/lib/producers/socket-receive-methods/meeting-time-remaining.service.mjs +0 -36
  455. package/dist/esm2022/lib/producers/socket-receive-methods/participant-requested.service.mjs +0 -32
  456. package/dist/esm2022/lib/producers/socket-receive-methods/person-joined.service.mjs +0 -29
  457. package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-closed.service.mjs +0 -68
  458. package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-paused.service.mjs +0 -90
  459. package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-resumed.service.mjs +0 -54
  460. package/dist/esm2022/lib/producers/socket-receive-methods/re-initiate-recording.service.mjs +0 -38
  461. package/dist/esm2022/lib/producers/socket-receive-methods/receive-message.service.mjs +0 -96
  462. package/dist/esm2022/lib/producers/socket-receive-methods/recording-notice.service.mjs +0 -195
  463. package/dist/esm2022/lib/producers/socket-receive-methods/room-record-params.service.mjs +0 -59
  464. package/dist/esm2022/lib/producers/socket-receive-methods/screen-producer-id.service.mjs +0 -45
  465. package/dist/esm2022/lib/producers/socket-receive-methods/start-records.service.mjs +0 -35
  466. package/dist/esm2022/lib/producers/socket-receive-methods/stopped-recording.service.mjs +0 -37
  467. package/dist/esm2022/lib/producers/socket-receive-methods/time-left-recording.service.mjs +0 -36
  468. package/dist/esm2022/lib/producers/socket-receive-methods/update-consuming-domains.service.mjs +0 -63
  469. package/dist/esm2022/lib/producers/socket-receive-methods/update-media-settings.service.mjs +0 -36
  470. package/dist/esm2022/lib/producers/socket-receive-methods/updated-co-host.service.mjs +0 -56
  471. package/dist/esm2022/lib/producers/socket-receive-methods/user-waiting.service.mjs +0 -78
  472. package/dist/esm2022/lib/sockets/socket-manager.service.mjs +0 -73
  473. package/dist/esm2022/mediasfu-angular.mjs +0 -5
  474. package/dist/esm2022/public-api.mjs +0 -187
@@ -8,6 +8,36 @@ export interface UpdateMediaSettingsOptions {
8
8
  updateChatSetting: (value: string) => void;
9
9
  }
10
10
  export type UpdateMediaSettingsType = (options: UpdateMediaSettingsOptions) => void;
11
+ /**
12
+ * Service for updating media settings including audio, video, screenshare, and chat.
13
+ *
14
+ * @class
15
+ * @name UpdateMediaSettings
16
+ * @description Provides a method to update multiple media settings at once using specified update functions.
17
+ *
18
+ * @method
19
+ * updateMediaSettings
20
+ *
21
+ * @param {UpdateMediaSettingsOptions} options - Options for updating media settings:
22
+ * - `settings` {Settings}: The settings values to apply.
23
+ * - `updateAudioSetting` {Function}: Function to update the audio setting.
24
+ * - `updateVideoSetting` {Function}: Function to update the video setting.
25
+ * - `updateScreenshareSetting` {Function}: Function to update the screenshare setting.
26
+ * - `updateChatSetting` {Function}: Function to update the chat setting.
27
+ *
28
+ * @returns {void} Updates settings directly through the provided functions.
29
+ *
30
+ * @example
31
+ * const settings = ['mute', 'HD', 'enabled', 'disabled'];
32
+ * const options = {
33
+ * settings,
34
+ * updateAudioSetting: (value) => console.log(`Audio setting updated to: ${value}`),
35
+ * updateVideoSetting: (value) => console.log(`Video setting updated to: ${value}`),
36
+ * updateScreenshareSetting: (value) => console.log(`Screenshare setting updated to: ${value}`),
37
+ * updateChatSetting: (value) => console.log(`Chat setting updated to: ${value}`)
38
+ * };
39
+ * updateMediaSettingsService.updateMediaSettings(options);
40
+ */
11
41
  export declare class UpdateMediaSettings {
12
42
  /**
13
43
  * Updates the media settings by invoking the provided update functions for each setting.
@@ -13,6 +13,46 @@ export interface UpdatedCoHostOptions {
13
13
  updateYouAreCoHost: (youAreCoHost: boolean) => void;
14
14
  }
15
15
  export type UpdatedCoHostType = (options: UpdatedCoHostOptions) => Promise<void>;
16
+ /**
17
+ * Service for updating co-host information, responsibilities, and the user's co-host status.
18
+ *
19
+ * @class
20
+ * @name UpdatedCoHost
21
+ * @description Manages co-host updates for different event types, assigning responsibilities and notifying the user if their co-host status changes.
22
+ *
23
+ * @method
24
+ * updatedCoHost
25
+ * @async
26
+ *
27
+ * @param {UpdatedCoHostOptions} options - The options for co-host updates:
28
+ * - `coHost` {string}: The name of the co-host.
29
+ * - `coHostResponsibility` {CoHostResponsibility[]}: List of responsibilities assigned to the co-host.
30
+ * - `showAlert` {ShowAlert}: Optional function to display an alert message.
31
+ * - `eventType` {EventType}: Type of the event, determining if co-host can be updated.
32
+ * - `islevel` {string}: Current level of the event.
33
+ * - `member` {string}: The current user's identifier.
34
+ * - `youAreCoHost` {boolean}: Current user's co-host status.
35
+ * - `updateCoHost` {Function}: Function to set the new co-host.
36
+ * - `updateCoHostResponsibility` {Function}: Function to assign responsibilities to the co-host.
37
+ * - `updateYouAreCoHost` {Function}: Function to update the user's co-host status.
38
+ *
39
+ * @returns {Promise<void>} Resolves after co-host information is updated.
40
+ *
41
+ * @example
42
+ * const options = {
43
+ * coHost: 'Alice',
44
+ * coHostResponsibility: ['moderate', 'manageParticipants'],
45
+ * showAlert: ({ message, type, duration }) => console.log(message),
46
+ * eventType: 'conference',
47
+ * islevel: '1',
48
+ * member: 'Alice',
49
+ * youAreCoHost: false,
50
+ * updateCoHost: (newCoHost) => console.log(`Updated co-host: ${newCoHost}`),
51
+ * updateCoHostResponsibility: (responsibilities) => console.log(responsibilities),
52
+ * updateYouAreCoHost: (status) => console.log(`You are co-host: ${status}`)
53
+ * };
54
+ * await updatedCoHostService.updatedCoHost(options);
55
+ */
16
56
  export declare class UpdatedCoHost {
17
57
  /**
18
58
  * Updates the co-host information, responsibility, and user's co-host status based on the provided options.
@@ -8,56 +8,30 @@ export interface UserWaitingOptions {
8
8
  }
9
9
  export type UserWaitingType = (options: UserWaitingOptions) => Promise<void>;
10
10
  /**
11
- * @fileoverview Service to handle user waiting functionality.
12
- *
13
- * @description
14
- * This service provides methods to handle the logic when a user joins the waiting room.
15
- * It displays an alert/notification and updates the total number of requests waiting.
16
- */
17
- /**
18
- * Options for the userWaiting method.
19
- *
20
- * @interface UserWaitingOptions
21
- * @property {string} name - The name of the user joining the waiting room.
22
- * @property {(options: { message: string; type: string; duration: number }) => void} [showAlert] - Optional function to display an alert/notification.
23
- * @property {number} totalReqWait - The current total number of requests waiting.
24
- * @property {(total: number) => void} updateTotalReqWait - Function to update the total number of requests waiting.
25
- */
26
- /**
27
- * Service to handle user waiting functionality.
11
+ * Service for handling user waiting room actions, including notifications and updating request counts.
28
12
  *
29
13
  * @class
30
14
  * @name UserWaiting
31
- * @description
32
- * This service provides methods to handle the logic when a user joins the waiting room.
33
- * It displays an alert/notification and updates the total number of requests waiting.
34
- *
35
- * @example
36
- * const userWaitingService = new UserWaiting();
37
- * userWaitingService.userWaiting({
38
- * name: 'John Doe',
39
- * showAlert: (options) => console.log(options.message),
40
- * totalReqWait: 5,
41
- * updateTotalReqWait: (total) => console.log(`Total requests: ${total}`),
42
- * });
43
- */
44
- /**
45
- * Handles the logic when a user joins the waiting room.
15
+ * @description Manages the logic when a user joins the waiting room by displaying alerts and incrementing the total request count.
46
16
  *
47
17
  * @method
48
- * @name userWaiting
49
- * @memberof UserWaiting
18
+ * userWaiting
50
19
  * @async
51
20
  *
52
- * @param {UserWaitingOptions} options - The options for the user waiting method.
53
- * @returns {Promise<void>} A promise that resolves when the operation is complete.
21
+ * @param {UserWaitingOptions} options - The options for handling user waiting actions:
22
+ * - `name` {string}: Name of the user joining the waiting room.
23
+ * - `showAlert` {ShowAlert}: Optional function for showing an alert with a customizable message, type, and duration.
24
+ * - `totalReqWait` {number}: Current count of waiting requests.
25
+ * - `updateTotalReqWait` {Function}: Updates the total waiting request count.
26
+ *
27
+ * @returns {Promise<void>} Resolves after alert is shown and request count is updated.
54
28
  *
55
29
  * @example
56
30
  * const options = {
57
- * name: 'John Doe',
58
- * showAlert: (options) => console.log(options.message),
59
- * totalReqWait: 5,
60
- * updateTotalReqWait: (total) => console.log(`Total requests: ${total}`),
31
+ * name: 'Alice',
32
+ * showAlert: ({ message, type, duration }) => console.log(message),
33
+ * totalReqWait: 3,
34
+ * updateTotalReqWait: (newTotal) => console.log(`Updated count: ${newTotal}`)
61
35
  * };
62
36
  * await userWaitingService.userWaiting(options);
63
37
  */
@@ -1,10 +1,27 @@
1
1
  import { Socket } from 'socket.io-client';
2
+ import { MeetingRoomParams, RecordingParams } from "../@types/types";
2
3
  import * as i0 from "@angular/core";
3
4
  /**
4
5
  * Validates the provided API key or token.
5
6
  * @param {string} value - The API key or token to validate.
6
7
  * @returns {Promise<Boolean>} - True if the API key or token is valid, false otherwise.
7
8
  */
9
+ export interface ResponseLocalConnection {
10
+ socket?: Socket;
11
+ data?: ResponseLocalConnectionData;
12
+ }
13
+ export interface ResponseLocalConnectionData {
14
+ socketId: string;
15
+ mode: string;
16
+ apiUserName?: string;
17
+ apiKey?: string;
18
+ allowRecord: boolean;
19
+ meetingRoomParams_: MeetingRoomParams;
20
+ recordingParams_: RecordingParams;
21
+ }
22
+ export interface ConnectLocalSocketOptions {
23
+ link: string;
24
+ }
8
25
  export interface ConnectSocketOptions {
9
26
  apiUserName: string;
10
27
  apiKey?: string;
@@ -16,10 +33,123 @@ export interface DisconnectSocketOptions {
16
33
  }
17
34
  export type ConnectSocketType = (options: ConnectSocketOptions) => Promise<Socket>;
18
35
  export type DisconnectSocketType = (options: DisconnectSocketOptions) => Promise<boolean>;
36
+ export type ConnectLocalSocketType = (options: ConnectLocalSocketOptions) => Promise<ResponseLocalConnection>;
37
+ /**
38
+ * Manages connections to a media socket, allowing users to connect or disconnect based on API credentials.
39
+ *
40
+ * @class
41
+ * @name SocketManager
42
+ * @description Provides methods to connect and disconnect from a media socket using a provided API key or token.
43
+ *
44
+ * @method
45
+ * validateApiKeyToken - Validates the API key or token for correct format.
46
+ * connectSocket - Establishes a connection to the media socket using either the API key or token.
47
+ * disconnectSocket - Disconnects an active socket connection.
48
+ *
49
+ * @example
50
+ * ```typescript
51
+ * const socketManager = new SocketManager();
52
+ *
53
+ * // Example of connecting to the socket
54
+ * const socketConnection = await socketManager.connectSocket({
55
+ * apiUserName: 'user123',
56
+ * apiKey: 'validApiKeyOf64Characters',
57
+ * link: 'https://socketserver.example.com'
58
+ * });
59
+ *
60
+ * // Example of disconnecting the socket
61
+ * const isDisconnected = await socketManager.disconnectSocket({
62
+ * socket: socketConnection
63
+ * });
64
+ * ```
65
+ *
66
+ * @typedef {Object} ConnectSocketOptions
67
+ * @property {string} apiUserName - Username for the API.
68
+ * @property {string} [apiKey] - The API key for authentication.
69
+ * @property {string} [apiToken] - The API token for authentication.
70
+ * @property {string} link - The socket server link.
71
+ *
72
+ * @typedef {Object} DisconnectSocketOptions
73
+ * @property {Socket} socket - The socket instance to disconnect.
74
+ *
75
+ * @returns {Promise<Socket | boolean>} The active socket instance on connection, or a boolean indicating disconnection success.
76
+ */
19
77
  export declare class SocketManager {
20
78
  private socket;
21
79
  validateApiKeyToken(value: string): Promise<boolean>;
80
+ /**
81
+ * Connects to a media socket using the provided connection options.
82
+ *
83
+ * @param {ConnectSocketOptions} options - The connection options.
84
+ * @param {string} options.apiUserName - The API username.
85
+ * @param {string} [options.apiKey] - The API key for authentication.
86
+ * @param {string} [options.apiToken] - The API token for authentication.
87
+ * @param {string} options.link - The socket link.
88
+ *
89
+ * @returns {Promise<Socket>} A promise that resolves to the connected socket.
90
+ *
91
+ * @example
92
+ * ```typescript
93
+ * const options = {
94
+ * apiUserName: 'user123',
95
+ * apiKey: 'validApiKeyOf64Characters',
96
+ * link: 'https://socketserver.example.com'
97
+ * };
98
+ *
99
+ * try {
100
+ * const socket = await connectSocket(options);
101
+ * console.log('Connected to socket:', socket);
102
+ * } catch (error) {
103
+ * console.error('Failed to connect to socket:', error);
104
+ * }
105
+ * ```
106
+ */
22
107
  connectSocket: ({ apiUserName, apiKey, apiToken, link, }: ConnectSocketOptions) => Promise<Socket>;
108
+ /**
109
+ * Connects to a local media socket using the provided connection options.
110
+ *
111
+ * @param {ConnectLocalSocketOptions} options - The connection options.
112
+ * @param {string} options.link - The socket link.
113
+ *
114
+ * @returns {Promise<ResponseLocalConnection>} A promise that resolves to the connected socket and data.
115
+ *
116
+ * @example
117
+ * ```typescript
118
+ * const options = {
119
+ * link: "http://localhost:3000",
120
+ * };
121
+ *
122
+ * try {
123
+ * const { socket, data } = await connectLocalSocket(options);
124
+ * console.log("Connected to socket:", socket, data);
125
+ * } catch (error) {
126
+ * console.error("Failed to connect to socket:", error);
127
+ * }
128
+ * ```
129
+ */
130
+ connectLocalSocket: ({ link }: ConnectLocalSocketOptions) => Promise<ResponseLocalConnection>;
131
+ /**
132
+ * Disconnects an active socket connection.
133
+ *
134
+ * @param {DisconnectSocketOptions} options - The options for disconnecting the socket.
135
+ * @param {Socket} options.socket - The socket instance to disconnect.
136
+ *
137
+ * @returns {Promise<boolean>} A promise that resolves to true if the socket was disconnected successfully, or false otherwise.
138
+ *
139
+ * @example
140
+ * ```typescript
141
+ * const options = {
142
+ * socket: mySocketInstance,
143
+ * };
144
+ *
145
+ * try {
146
+ * const isDisconnected = await disconnectSocket(options);
147
+ * console.log("Socket disconnected:", isDisconnected);
148
+ * } catch (error) {
149
+ * console.error("Failed to disconnect socket:", error);
150
+ * }
151
+ * ```
152
+ */
23
153
  disconnectSocket: ({ socket }: DisconnectSocketOptions) => Promise<boolean>;
24
154
  static ɵfac: i0.ɵɵFactoryDeclaration<SocketManager, never>;
25
155
  static ɵprov: i0.ɵɵInjectableDeclaration<SocketManager>;
@@ -1,4 +1,8 @@
1
1
  import { initialValuesState } from './lib/methods/utils/initial-values.util';
2
+ export * from './lib/methods/utils/join-room-on-media-sfu.service';
3
+ export * from './lib/methods/utils/create-room-on-media-sfu.service';
4
+ export * from './lib/methods/utils/check-limits-and-make-request.service';
5
+ export * from './lib/methods/utils/create-response-join-room.util';
2
6
  import { LoadingModal } from './lib/components/display-components/loading-modal/loading-modal.component';
3
7
  import { MainAspectComponent } from './lib/components/display-components/main-aspect-component/main-aspect-component.component';
4
8
  import { ControlButtonsComponent } from './lib/components/display-components/control-buttons-component/control-buttons-component.component';
@@ -55,6 +59,7 @@ import { LaunchBreakoutRooms } from './lib/methods/breakout-room-methods/launch-
55
59
  import { LaunchConfigureWhiteboard } from './lib/methods/whiteboard-methods/launch-configure-whiteboard.service';
56
60
  import { SocketManager } from './lib/sockets/socket-manager.service';
57
61
  import { JoinRoomClient } from './lib/producer-client/producer-client-emits/join-room-client.service';
62
+ import { JoinLocalRoom } from './lib/producers/producer-emits/join-local-room.service';
58
63
  import { UpdateRoomParametersClient } from './lib/producer-client/producer-client-emits/update-room-parameters-client.service';
59
64
  import { CreateDeviceClient } from './lib/producer-client/producer-client-emits/create-device-client.service';
60
65
  import { ClickVideo } from './lib/methods/stream-methods/click-video.service';
@@ -115,6 +120,7 @@ import { SwitchUserAudio } from './lib/consumers/switch-user-audio.service';
115
120
  import { ReceiveRoomMessages } from './lib/consumers/receive-room-messages.service';
116
121
  import { FormatNumber } from './lib/methods/utils/format-number.service';
117
122
  import { ConnectIps } from './lib/consumers/connect-ips.service';
123
+ import { ConnectLocalIps } from './lib/consumers/connect-local-ips.service';
118
124
  import { PollUpdated } from './lib/methods/polls-methods/poll-updated.service';
119
125
  import { HandleCreatePoll } from './lib/methods/polls-methods/handle-create-poll.service';
120
126
  import { HandleVotePoll } from './lib/methods/polls-methods/handle-vote-poll.service';
@@ -174,4 +180,8 @@ import { CardVideoDisplay } from './lib/components/display-components/card-video
174
180
  import { MiniCardAudio } from './lib/components/display-components/mini-card-audio/mini-card-audio.component';
175
181
  import { MiniAudioPlayer } from './lib/methods/utils/mini-audio-player/mini-audio-player.component';
176
182
  import { SoundPlayer } from './lib/methods/utils/sound-player.service';
177
- export { initialValuesState, LoadingModal, MainAspectComponent, ControlButtonsComponent, ControlButtonsAltComponent, ControlButtonsComponentTouch, OtherGridComponent, MainScreenComponent, MainGridComponent, SubAspectComponent, MainContainerComponent, AlertComponent, MenuModal, RecordingModal, RequestsModal, WaitingRoomModal, DisplaySettingsModal, EventSettingsModal, CoHostModal, ParticipantsModal, MessagesModal, MediaSettingsModal, ConfirmExitModal, ConfirmHereModal, ShareEventModal, WelcomePage, PreJoinPage, Pagination, FlexibleGrid, FlexibleVideo, AudioGrid, LaunchMenuModal, LaunchRecording, StartRecording, ConfirmRecording, LaunchWaiting, launchCoHost, LaunchMediaSettings, LaunchDisplaySettings, LaunchSettings, LaunchRequests, LaunchParticipants, LaunchMessages, LaunchConfirmExit, JoinRoomClient, UpdateRoomParametersClient, CreateDeviceClient, ClickVideo, ClickAudio, ClickScreenShare, StreamSuccessVideo, StreamSuccessAudio, StreamSuccessScreen, StreamSuccessAudioSwitch, CheckPermission, ProducerClosed, NewPipeProducer, UpdateMiniCardsGrid, MixStreams, DispStreams, StopShareScreen, CheckScreenShare, StartShareScreen, RequestScreenShare, ReorderStreams, PrepopulateUserMedia, GetVideos, RePort, Trigger, ConsumerResume, ConnectSendTransportAudio, ConnectSendTransportVideo, ConnectSendTransportScreen, ProcessConsumerTransports, ResumePauseStreams, Readjust, CheckGrid, GetEstimate, CalculateRowsAndColumns, AddVideosGrid, OnScreenChanges, sleep, ChangeVids, CompareActiveNames, CompareScreenStates, CreateSendTransport, ResumeSendTransportAudio, ReceiveAllPipedTransports, DisconnectSendTransportVideo, DisconnectSendTransportAudio, DisconnectSendTransportScreen, ConnectSendTransport, GetPipedProducersAlt, SignalNewConsumerTransport, ConnectRecvTransport, ReUpdateInter, UpdateParticipantAudioDecibels, CloseAndResize, AutoAdjust, SwitchUserVideoAlt, SwitchUserVideo, SwitchUserAudio, ReceiveRoomMessages, FormatNumber, ConnectIps, StartMeetingProgressTimer, UpdateRecording, StopRecording, UserWaiting, PersonJoined, AllWaitingRoomMembers, RoomRecordParams, BanParticipant, UpdatedCoHost, ParticipantRequested, ScreenProducerId, UpdateMediaSettings, ProducerMediaPaused, ProducerMediaResumed, ProducerMediaClosed, ControlMediaHost, MeetingEnded, DisconnectUserSelf, ReceiveMessage, MeetingTimeRemaining, MeetingStillThere, StartRecords, ReInitiateRecording, GetDomains, UpdateConsumingDomains, RecordingNotice, TimeLeftRecording, StoppedRecording, HostRequestResponse, AllMembers, AllMembersRest, Disconnect, MediasfuGeneric, MediasfuBroadcast, MediasfuWebinar, MediasfuConference, MediasfuChat, GenerateRandomParticipants, GenerateRandomMessages, GenerateRandomRequestList, GenerateRandomWaitingRoomList, GenerateRandomPolls, MeetingProgressTimer, MiniAudio, MiniCard, AudioCard, VideoCard, CardVideoDisplay, MiniCardAudio, MiniAudioPlayer, SoundPlayer, CaptureCanvasStream, ResumePauseAudioStreams, ProcessConsumerTransportsAudio, PollUpdated, HandleCreatePoll, HandleVotePoll, HandleEndPoll, BreakoutRoomUpdated, LaunchPoll, LaunchBackground, LaunchBreakoutRooms, LaunchConfigureWhiteboard, PollModal, BackgroundModal, BreakoutRoomsModal, ConfigureWhiteboardModal, Whiteboard, Screenboard, ScreenboardModal, SocketManager, };
183
+ import { CreateRoomOnMediaSFU } from './lib/methods/utils/create-room-on-media-sfu.service';
184
+ import { JoinRoomOnMediaSFU } from './lib/methods/utils/join-room-on-media-sfu.service';
185
+ import { CheckLimitsAndMakeRequest } from './lib/methods/utils/check-limits-and-make-request.service';
186
+ import { createResponseJoinRoom } from './lib/methods/utils/create-response-join-room.util';
187
+ export { initialValuesState, LoadingModal, MainAspectComponent, ControlButtonsComponent, ControlButtonsAltComponent, ControlButtonsComponentTouch, OtherGridComponent, MainScreenComponent, MainGridComponent, SubAspectComponent, MainContainerComponent, AlertComponent, MenuModal, RecordingModal, RequestsModal, WaitingRoomModal, DisplaySettingsModal, EventSettingsModal, CoHostModal, ParticipantsModal, MessagesModal, MediaSettingsModal, ConfirmExitModal, ConfirmHereModal, ShareEventModal, WelcomePage, PreJoinPage, Pagination, FlexibleGrid, FlexibleVideo, AudioGrid, LaunchMenuModal, LaunchRecording, StartRecording, ConfirmRecording, LaunchWaiting, launchCoHost, LaunchMediaSettings, LaunchDisplaySettings, LaunchSettings, LaunchRequests, LaunchParticipants, LaunchMessages, LaunchConfirmExit, JoinRoomClient, JoinLocalRoom, UpdateRoomParametersClient, CreateDeviceClient, ClickVideo, ClickAudio, ClickScreenShare, StreamSuccessVideo, StreamSuccessAudio, StreamSuccessScreen, StreamSuccessAudioSwitch, CheckPermission, ProducerClosed, NewPipeProducer, UpdateMiniCardsGrid, MixStreams, DispStreams, StopShareScreen, CheckScreenShare, StartShareScreen, RequestScreenShare, ReorderStreams, PrepopulateUserMedia, GetVideos, RePort, Trigger, ConsumerResume, ConnectSendTransportAudio, ConnectSendTransportVideo, ConnectSendTransportScreen, ProcessConsumerTransports, ResumePauseStreams, Readjust, CheckGrid, GetEstimate, CalculateRowsAndColumns, AddVideosGrid, OnScreenChanges, sleep, ChangeVids, CompareActiveNames, CompareScreenStates, CreateSendTransport, ResumeSendTransportAudio, ReceiveAllPipedTransports, DisconnectSendTransportVideo, DisconnectSendTransportAudio, DisconnectSendTransportScreen, ConnectSendTransport, GetPipedProducersAlt, SignalNewConsumerTransport, ConnectRecvTransport, ReUpdateInter, UpdateParticipantAudioDecibels, CloseAndResize, AutoAdjust, SwitchUserVideoAlt, SwitchUserVideo, SwitchUserAudio, ReceiveRoomMessages, FormatNumber, ConnectIps, ConnectLocalIps, StartMeetingProgressTimer, UpdateRecording, StopRecording, UserWaiting, PersonJoined, AllWaitingRoomMembers, RoomRecordParams, BanParticipant, UpdatedCoHost, ParticipantRequested, ScreenProducerId, UpdateMediaSettings, ProducerMediaPaused, ProducerMediaResumed, ProducerMediaClosed, ControlMediaHost, MeetingEnded, DisconnectUserSelf, ReceiveMessage, MeetingTimeRemaining, MeetingStillThere, StartRecords, ReInitiateRecording, GetDomains, UpdateConsumingDomains, RecordingNotice, TimeLeftRecording, StoppedRecording, HostRequestResponse, AllMembers, AllMembersRest, Disconnect, MediasfuGeneric, MediasfuBroadcast, MediasfuWebinar, MediasfuConference, MediasfuChat, GenerateRandomParticipants, GenerateRandomMessages, GenerateRandomRequestList, GenerateRandomWaitingRoomList, GenerateRandomPolls, MeetingProgressTimer, MiniAudio, MiniCard, AudioCard, VideoCard, CardVideoDisplay, MiniCardAudio, MiniAudioPlayer, SoundPlayer, CaptureCanvasStream, ResumePauseAudioStreams, ProcessConsumerTransportsAudio, PollUpdated, HandleCreatePoll, HandleVotePoll, HandleEndPoll, BreakoutRoomUpdated, LaunchPoll, LaunchBackground, LaunchBreakoutRooms, LaunchConfigureWhiteboard, PollModal, BackgroundModal, BreakoutRoomsModal, ConfigureWhiteboardModal, Whiteboard, Screenboard, ScreenboardModal, SocketManager, CreateRoomOnMediaSFU, JoinRoomOnMediaSFU, CheckLimitsAndMakeRequest, createResponseJoinRoom, };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mediasfu-angular",
3
- "version": "1.0.1",
3
+ "version": "2.0.0",
4
4
  "author": "MediaSFU",
5
5
  "license": "MIT",
6
6
  "description": "MediaSFU Prebuilt Angular SDK",
@@ -14,33 +14,32 @@
14
14
  "email": "info@mediasfu.com"
15
15
  },
16
16
  "peerDependencies": {
17
- "@angular/animations": "^18.1.0",
18
- "@angular/common": "^18.1.0",
19
- "@angular/compiler": "^18.1.0",
20
- "@angular/core": "^18.1.0",
21
- "@angular/forms": "^18.1.0",
22
- "@angular/platform-browser": "^18.1.0",
23
- "@angular/platform-browser-dynamic": "^18.1.0",
24
- "@angular/router": "^18.1.0",
25
- "@fortawesome/angular-fontawesome": "^0.15.0",
26
- "@fortawesome/fontawesome-svg-core": "^6.6.0",
27
- "@fortawesome/free-brands-svg-icons": "^6.6.0",
28
- "@fortawesome/free-solid-svg-icons": "^6.6.0",
17
+ "@angular/animations": "^19.0.1",
18
+ "@angular/common": "^19.0.1",
19
+ "@angular/compiler": "^19.0.1",
20
+ "@angular/core": "^19.0.1",
21
+ "@angular/forms": "^19.0.1",
22
+ "@angular/platform-browser": "^19.0.1",
23
+ "@angular/platform-browser-dynamic": "^19.0.1",
24
+ "@angular/router": "^19.0.1",
25
+ "@fortawesome/angular-fontawesome": "^1.0.0",
26
+ "@fortawesome/fontawesome-svg-core": "^6.7.1",
27
+ "@fortawesome/free-brands-svg-icons": "^6.7.1",
28
+ "@fortawesome/free-solid-svg-icons": "^6.7.1",
29
29
  "@mediapipe/selfie_segmentation": "^0.1.1675465747",
30
- "@zxing/ngx-scanner": "^18.0.1",
30
+ "@zxing/ngx-scanner": "^19.0.0",
31
31
  "bootstrap": "^5.3.3",
32
- "ngx-cookie-service": "^18.0.0",
32
+ "ngx-cookie-service": "^19.0.0",
33
33
  "rxjs": "~7.8.0",
34
- "zone.js": "~0.14.3",
34
+ "zone.js": "~0.15.0",
35
35
  "mediasoup-client": "3.7.17",
36
- "tslib": "^2.3.0",
37
36
  "socket.io-client": "^4.3.2"
38
37
  },
39
38
  "dependencies": {
39
+ "tslib": "^2.3.0"
40
40
  },
41
41
  "module": "dist/fesm2022/mediasfu-angular.mjs",
42
42
  "es2022": "dist/fesm2022/mediasfu-angular.mjs",
43
- "esm2022": "dist/esm2022/mediasfu-angular.mjs",
44
43
  "fesm2022": "dist/fesm2022/mediasfu-angular.mjs",
45
44
  "typings": "dist/index.d.ts",
46
45
  "sideEffects": false,
@@ -54,8 +53,6 @@
54
53
  },
55
54
  ".": {
56
55
  "types": "./dist/index.d.ts",
57
- "esm2022": "./dist/esm2022/mediasfu-angular.mjs",
58
- "es2022": "./dist/fesm2022/mediasfu-angular.mjs",
59
56
  "node": "./dist/fesm2022/mediasfu-angular.mjs",
60
57
  "default": "./dist/fesm2022/mediasfu-angular.mjs"
61
58
  }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvQHR5cGVzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0eXBlcy50c1xuaW1wb3J0IHsgU29ja2V0IH0gZnJvbSAnc29ja2V0LmlvLWNsaWVudCc7XG5pbXBvcnQge1xuICBDb25zdW1lcixcbiAgRHRsc1BhcmFtZXRlcnMsXG4gIEljZUNhbmRpZGF0ZSxcbiAgSWNlUGFyYW1ldGVycyxcbiAgUnRwQ2FwYWJpbGl0aWVzLFxufSBmcm9tICdtZWRpYXNvdXAtY2xpZW50L2xpYi90eXBlcyc7XG5pbXBvcnQgeyBJY29uRGVmaW5pdGlvbiB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgeyBDdXN0b21Db21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2Rpc3BsYXktY29tcG9uZW50cy9jb250cm9sLWJ1dHRvbnMtY29tcG9uZW50L2NvbnRyb2wtYnV0dG9ucy1jb21wb25lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbUJ1dHRvbiB9IGZyb20gJy4uL2NvbXBvbmVudHMvbWVudS1jb21wb25lbnRzL2N1c3RvbS1idXR0b25zL2N1c3RvbS1idXR0b25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5cbi8vIC8vY29uc3VtZXJzL3NvY2tldC1yZWNlaXZlLW1ldGhvZHNcbmV4cG9ydCB0eXBlIHtcbiAgSm9pbkNvbnN1bWVSb29tT3B0aW9ucyxcbiAgSm9pbkNvbnN1bWVSb29tVHlwZSxcbiAgSm9pbkNvbnN1bWVSb29tUGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vY29uc3VtZXJzL3NvY2tldC1yZWNlaXZlLW1ldGhvZHMvam9pbi1jb25zdW1lLXJvb20uc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIFByb2R1Y2VyQ2xvc2VkT3B0aW9ucyxcbiAgUHJvZHVjZXJDbG9zZWRUeXBlLFxuICBQcm9kdWNlckNsb3NlZFBhcmFtZXRlcnMsXG59IGZyb20gJy4uL2NvbnN1bWVycy9zb2NrZXQtcmVjZWl2ZS1tZXRob2RzL3Byb2R1Y2VyLWNsb3NlZC5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgTmV3UGlwZVByb2R1Y2VyT3B0aW9ucyxcbiAgTmV3UGlwZVByb2R1Y2VyVHlwZSxcbiAgTmV3UGlwZVByb2R1Y2VyUGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vY29uc3VtZXJzL3NvY2tldC1yZWNlaXZlLW1ldGhvZHMvbmV3LXBpcGUtcHJvZHVjZXIuc2VydmljZSc7XG5cbi8vIC8vY29uc3VtZXJzXG5leHBvcnQgdHlwZSB7XG4gIEFkZFZpZGVvc0dyaWRPcHRpb25zLFxuICBBZGRWaWRlb3NHcmlkVHlwZSxcbiAgQWRkVmlkZW9zR3JpZFBhcmFtZXRlcnMsXG59IGZyb20gJy4uL2NvbnN1bWVycy9hZGQtdmlkZW9zLWdyaWQuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7IEF1dG9BZGp1c3RPcHRpb25zLCBBdXRvQWRqdXN0VHlwZSB9IGZyb20gJy4uL2NvbnN1bWVycy9hdXRvLWFkanVzdC5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgQ2FsY3VsYXRlUm93c0FuZENvbHVtbnNPcHRpb25zLFxuICBDYWxjdWxhdGVSb3dzQW5kQ29sdW1uc1R5cGUsXG59IGZyb20gJy4uL2NvbnN1bWVycy9jYWxjdWxhdGUtcm93cy1hbmQtY29sdW1ucy5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgQ2hhbmdlVmlkc09wdGlvbnMsXG4gIENoYW5nZVZpZHNUeXBlLFxuICBDaGFuZ2VWaWRzUGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vY29uc3VtZXJzL2NoYW5nZS12aWRzLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUgeyBDaGVja0dyaWRPcHRpb25zLCBDaGVja0dyaWRUeXBlIH0gZnJvbSAnLi4vY29uc3VtZXJzL2NoZWNrLWdyaWQuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIENoZWNrUGVybWlzc2lvbk9wdGlvbnMsXG4gIENoZWNrUGVybWlzc2lvblR5cGUsXG59IGZyb20gJy4uL2NvbnN1bWVycy9jaGVjay1wZXJtaXNzaW9uLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBDaGVja1NjcmVlblNoYXJlT3B0aW9ucyxcbiAgQ2hlY2tTY3JlZW5TaGFyZVR5cGUsXG4gIENoZWNrU2NyZWVuU2hhcmVQYXJhbWV0ZXJzLFxufSBmcm9tICcuLi9jb25zdW1lcnMvY2hlY2stc2NyZWVuLXNoYXJlLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBDbG9zZUFuZFJlc2l6ZU9wdGlvbnMsXG4gIENsb3NlQW5kUmVzaXplVHlwZSxcbiAgQ2xvc2VBbmRSZXNpemVQYXJhbWV0ZXJzLFxufSBmcm9tICcuLi9jb25zdW1lcnMvY2xvc2UtYW5kLXJlc2l6ZS5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgQ29tcGFyZUFjdGl2ZU5hbWVzT3B0aW9ucyxcbiAgQ29tcGFyZUFjdGl2ZU5hbWVzVHlwZSxcbiAgQ29tcGFyZUFjdGl2ZU5hbWVzUGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vY29uc3VtZXJzL2NvbXBhcmUtYWN0aXZlLW5hbWVzLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBDb21wYXJlU2NyZWVuU3RhdGVzT3B0aW9ucyxcbiAgQ29tcGFyZVNjcmVlblN0YXRlc1R5cGUsXG4gIENvbXBhcmVTY3JlZW5TdGF0ZXNQYXJhbWV0ZXJzLFxufSBmcm9tICcuLi9jb25zdW1lcnMvY29tcGFyZS1zY3JlZW4tc3RhdGVzLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBDb25uZWN0SXBzT3B0aW9ucyxcbiAgQ29ubmVjdElwc1R5cGUsXG4gIENvbm5lY3RJcHNQYXJhbWV0ZXJzLFxufSBmcm9tICcuLi9jb25zdW1lcnMvY29ubmVjdC1pcHMuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIENvbm5lY3RSZWN2VHJhbnNwb3J0T3B0aW9ucyxcbiAgQ29ubmVjdFJlY3ZUcmFuc3BvcnRUeXBlLFxuICBDb25uZWN0UmVjdlRyYW5zcG9ydFBhcmFtZXRlcnMsXG59IGZyb20gJy4uL2NvbnN1bWVycy9jb25uZWN0LXJlY3YtdHJhbnNwb3J0LnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBDb25uZWN0U2VuZFRyYW5zcG9ydE9wdGlvbnMsXG4gIENvbm5lY3RTZW5kVHJhbnNwb3J0VHlwZSxcbiAgQ29ubmVjdFNlbmRUcmFuc3BvcnRQYXJhbWV0ZXJzLFxufSBmcm9tICcuLi9jb25zdW1lcnMvY29ubmVjdC1zZW5kLXRyYW5zcG9ydC5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgQ29ubmVjdFNlbmRUcmFuc3BvcnRBdWRpb09wdGlvbnMsXG4gIENvbm5lY3RTZW5kVHJhbnNwb3J0QXVkaW9UeXBlLFxuICBDb25uZWN0U2VuZFRyYW5zcG9ydEF1ZGlvUGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vY29uc3VtZXJzL2Nvbm5lY3Qtc2VuZC10cmFuc3BvcnQtYXVkaW8uc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIENvbm5lY3RTZW5kVHJhbnNwb3J0U2NyZWVuT3B0aW9ucyxcbiAgQ29ubmVjdFNlbmRUcmFuc3BvcnRTY3JlZW5UeXBlLFxuICBDb25uZWN0U2VuZFRyYW5zcG9ydFNjcmVlblBhcmFtZXRlcnMsXG59IGZyb20gJy4uL2NvbnN1bWVycy9jb25uZWN0LXNlbmQtdHJhbnNwb3J0LXNjcmVlbi5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgQ29ubmVjdFNlbmRUcmFuc3BvcnRWaWRlb09wdGlvbnMsXG4gIENvbm5lY3RTZW5kVHJhbnNwb3J0VmlkZW9UeXBlLFxuICBDb25uZWN0U2VuZFRyYW5zcG9ydFZpZGVvUGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vY29uc3VtZXJzL2Nvbm5lY3Qtc2VuZC10cmFuc3BvcnQtdmlkZW8uc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIENvbnN1bWVyUmVzdW1lT3B0aW9ucyxcbiAgQ29uc3VtZXJSZXN1bWVUeXBlLFxuICBDb25zdW1lclJlc3VtZVBhcmFtZXRlcnMsXG59IGZyb20gJy4uL2NvbnN1bWVycy9jb25zdW1lci1yZXN1bWUuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7IENvbnRyb2xNZWRpYU9wdGlvbnMsIENvbnRyb2xNZWRpYVR5cGUgfSBmcm9tICcuLi9jb25zdW1lcnMvY29udHJvbC1tZWRpYS5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgQ3JlYXRlU2VuZFRyYW5zcG9ydE9wdGlvbnMsXG4gIENyZWF0ZVNlbmRUcmFuc3BvcnRUeXBlLFxuICBDcmVhdGVTZW5kVHJhbnNwb3J0UGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vY29uc3VtZXJzL2NyZWF0ZS1zZW5kLXRyYW5zcG9ydC5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgRGlzY29ubmVjdFNlbmRUcmFuc3BvcnRBdWRpb09wdGlvbnMsXG4gIERpc2Nvbm5lY3RTZW5kVHJhbnNwb3J0QXVkaW9UeXBlLFxuICBEaXNjb25uZWN0U2VuZFRyYW5zcG9ydEF1ZGlvUGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vY29uc3VtZXJzL2Rpc2Nvbm5lY3Qtc2VuZC10cmFuc3BvcnQtYXVkaW8uc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIERpc2Nvbm5lY3RTZW5kVHJhbnNwb3J0VmlkZW9PcHRpb25zLFxuICBEaXNjb25uZWN0U2VuZFRyYW5zcG9ydFZpZGVvVHlwZSxcbiAgRGlzY29ubmVjdFNlbmRUcmFuc3BvcnRWaWRlb1BhcmFtZXRlcnMsXG59IGZyb20gJy4uL2NvbnN1bWVycy9kaXNjb25uZWN0LXNlbmQtdHJhbnNwb3J0LXZpZGVvLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBEaXNjb25uZWN0U2VuZFRyYW5zcG9ydFNjcmVlbk9wdGlvbnMsXG4gIERpc2Nvbm5lY3RTZW5kVHJhbnNwb3J0U2NyZWVuVHlwZSxcbiAgRGlzY29ubmVjdFNlbmRUcmFuc3BvcnRTY3JlZW5QYXJhbWV0ZXJzLFxufSBmcm9tICcuLi9jb25zdW1lcnMvZGlzY29ubmVjdC1zZW5kLXRyYW5zcG9ydC1zY3JlZW4uc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIERpc3BTdHJlYW1zT3B0aW9ucyxcbiAgRGlzcFN0cmVhbXNUeXBlLFxuICBEaXNwU3RyZWFtc1BhcmFtZXRlcnMsXG59IGZyb20gJy4uL2NvbnN1bWVycy9kaXNwLXN0cmVhbXMuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIEdlbmVyYXRlUGFnZUNvbnRlbnRPcHRpb25zLFxuICBHZW5lcmF0ZVBhZ2VDb250ZW50VHlwZSxcbn0gZnJvbSAnLi4vY29uc3VtZXJzL2dlbmVyYXRlLXBhZ2UtY29udGVudC5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgR2V0RXN0aW1hdGVPcHRpb25zLFxuICBHZXRFc3RpbWF0ZVR5cGUsXG4gIEdldEVzdGltYXRlUGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vY29uc3VtZXJzL2dldC1lc3RpbWF0ZS5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgR2V0UGlwZWRQcm9kdWNlcnNBbHRPcHRpb25zLFxuICBHZXRQaXBlZFByb2R1Y2Vyc0FsdFR5cGUsXG4gIEdldFBpcGVkUHJvZHVjZXJzQWx0UGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vY29uc3VtZXJzL2dldC1waXBlZC1wcm9kdWNlcnMtYWx0LnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBHZXRQcm9kdWNlcnNQaXBlZE9wdGlvbnMsXG4gIEdldFByb2R1Y2Vyc1BpcGVkVHlwZSxcbiAgR2V0UHJvZHVjZXJzUGlwZWRQYXJhbWV0ZXJzLFxufSBmcm9tICcuLi9jb25zdW1lcnMvZ2V0LXByb2R1Y2Vycy1waXBlZC5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHsgR2V0VmlkZW9zT3B0aW9ucywgR2V0VmlkZW9zVHlwZSB9IGZyb20gJy4uL2NvbnN1bWVycy9nZXQtdmlkZW9zLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUgeyBNaXhTdHJlYW1zT3B0aW9ucywgTWl4U3RyZWFtc1R5cGUgfSBmcm9tICcuLi9jb25zdW1lcnMvbWl4LXN0cmVhbXMuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIE9uU2NyZWVuQ2hhbmdlc09wdGlvbnMsXG4gIE9uU2NyZWVuQ2hhbmdlc1R5cGUsXG4gIE9uU2NyZWVuQ2hhbmdlc1BhcmFtZXRlcnMsXG59IGZyb20gJy4uL2NvbnN1bWVycy9vbi1zY3JlZW4tY2hhbmdlcy5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgUHJlcG9wdWxhdGVVc2VyTWVkaWFPcHRpb25zLFxuICBQcmVwb3B1bGF0ZVVzZXJNZWRpYVR5cGUsXG4gIFByZXBvcHVsYXRlVXNlck1lZGlhUGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vY29uc3VtZXJzL3ByZXBvcHVsYXRlLXVzZXItbWVkaWEuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIFByb2Nlc3NDb25zdW1lclRyYW5zcG9ydHNPcHRpb25zLFxuICBQcm9jZXNzQ29uc3VtZXJUcmFuc3BvcnRzVHlwZSxcbiAgUHJvY2Vzc0NvbnN1bWVyVHJhbnNwb3J0c1BhcmFtZXRlcnMsXG59IGZyb20gJy4uL2NvbnN1bWVycy9wcm9jZXNzLWNvbnN1bWVyLXRyYW5zcG9ydHMuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIFByb2Nlc3NDb25zdW1lclRyYW5zcG9ydHNBdWRpb09wdGlvbnMsXG4gIFByb2Nlc3NDb25zdW1lclRyYW5zcG9ydHNBdWRpb1R5cGUsXG4gIFByb2Nlc3NDb25zdW1lclRyYW5zcG9ydHNBdWRpb1BhcmFtZXRlcnMsXG59IGZyb20gJy4uL2NvbnN1bWVycy9wcm9jZXNzLWNvbnN1bWVyLXRyYW5zcG9ydHMtYXVkaW8uc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIFJlYWRqdXN0T3B0aW9ucyxcbiAgUmVhZGp1c3RUeXBlLFxuICBSZWFkanVzdFBhcmFtZXRlcnMsXG59IGZyb20gJy4uL2NvbnN1bWVycy9yZWFkanVzdC5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgUmVjZWl2ZUFsbFBpcGVkVHJhbnNwb3J0c09wdGlvbnMsXG4gIFJlY2VpdmVBbGxQaXBlZFRyYW5zcG9ydHNUeXBlLFxuICBSZWNlaXZlQWxsUGlwZWRUcmFuc3BvcnRzUGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vY29uc3VtZXJzL3JlY2VpdmUtYWxsLXBpcGVkLXRyYW5zcG9ydHMuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIFJlb3JkZXJTdHJlYW1zT3B0aW9ucyxcbiAgUmVvcmRlclN0cmVhbXNUeXBlLFxuICBSZW9yZGVyU3RyZWFtc1BhcmFtZXRlcnMsXG59IGZyb20gJy4uL2NvbnN1bWVycy9yZW9yZGVyLXN0cmVhbXMuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7IFJlUG9ydE9wdGlvbnMsIFJlUG9ydFR5cGUsIFJlUG9ydFBhcmFtZXRlcnMgfSBmcm9tICcuLi9jb25zdW1lcnMvcmUtcG9ydC5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgUmVxdWVzdFNjcmVlblNoYXJlT3B0aW9ucyxcbiAgUmVxdWVzdFNjcmVlblNoYXJlVHlwZSxcbiAgUmVxdWVzdFNjcmVlblNoYXJlUGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vY29uc3VtZXJzL3JlcXVlc3Qtc2NyZWVuLXNoYXJlLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBSZXN1bWVQYXVzZUF1ZGlvU3RyZWFtc09wdGlvbnMsXG4gIFJlc3VtZVBhdXNlQXVkaW9TdHJlYW1zVHlwZSxcbiAgUmVzdW1lUGF1c2VBdWRpb1N0cmVhbXNQYXJhbWV0ZXJzLFxufSBmcm9tICcuLi9jb25zdW1lcnMvcmVzdW1lLXBhdXNlLWF1ZGlvLXN0cmVhbXMuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIFJlc3VtZVBhdXNlU3RyZWFtc09wdGlvbnMsXG4gIFJlc3VtZVBhdXNlU3RyZWFtc1R5cGUsXG4gIFJlc3VtZVBhdXNlU3RyZWFtc1BhcmFtZXRlcnMsXG59IGZyb20gJy4uL2NvbnN1bWVycy9yZXN1bWUtcGF1c2Utc3RyZWFtcy5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgUmVzdW1lU2VuZFRyYW5zcG9ydEF1ZGlvT3B0aW9ucyxcbiAgUmVzdW1lU2VuZFRyYW5zcG9ydEF1ZGlvVHlwZSxcbiAgUmVzdW1lU2VuZFRyYW5zcG9ydEF1ZGlvUGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vY29uc3VtZXJzL3Jlc3VtZS1zZW5kLXRyYW5zcG9ydC1hdWRpby5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgUmVVcGRhdGVJbnRlck9wdGlvbnMsXG4gIFJlVXBkYXRlSW50ZXJUeXBlLFxuICBSZVVwZGF0ZUludGVyUGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vY29uc3VtZXJzL3JlLXVwZGF0ZS1pbnRlci5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgU2lnbmFsTmV3Q29uc3VtZXJUcmFuc3BvcnRPcHRpb25zLFxuICBTaWduYWxOZXdDb25zdW1lclRyYW5zcG9ydFR5cGUsXG4gIFNpZ25hbE5ld0NvbnN1bWVyVHJhbnNwb3J0UGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vY29uc3VtZXJzL3NpZ25hbC1uZXctY29uc3VtZXItdHJhbnNwb3J0LnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBTdGFydFNoYXJlU2NyZWVuT3B0aW9ucyxcbiAgU3RhcnRTaGFyZVNjcmVlblR5cGUsXG4gIFN0YXJ0U2hhcmVTY3JlZW5QYXJhbWV0ZXJzLFxufSBmcm9tICcuLi9jb25zdW1lcnMvc3RhcnQtc2hhcmUtc2NyZWVuLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBTdG9wU2hhcmVTY3JlZW5PcHRpb25zLFxuICBTdG9wU2hhcmVTY3JlZW5UeXBlLFxuICBTdG9wU2hhcmVTY3JlZW5QYXJhbWV0ZXJzLFxufSBmcm9tICcuLi9jb25zdW1lcnMvc3RvcC1zaGFyZS1zY3JlZW4uc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIFN0cmVhbVN1Y2Nlc3NBdWRpb09wdGlvbnMsXG4gIFN0cmVhbVN1Y2Nlc3NBdWRpb1R5cGUsXG4gIFN0cmVhbVN1Y2Nlc3NBdWRpb1BhcmFtZXRlcnMsXG59IGZyb20gJy4uL2NvbnN1bWVycy9zdHJlYW0tc3VjY2Vzcy1hdWRpby5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgU3RyZWFtU3VjY2Vzc0F1ZGlvU3dpdGNoT3B0aW9ucyxcbiAgU3RyZWFtU3VjY2Vzc0F1ZGlvU3dpdGNoVHlwZSxcbiAgU3RyZWFtU3VjY2Vzc0F1ZGlvU3dpdGNoUGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vY29uc3VtZXJzL3N0cmVhbS1zdWNjZXNzLWF1ZGlvLXN3aXRjaC5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgU3RyZWFtU3VjY2Vzc1NjcmVlbk9wdGlvbnMsXG4gIFN0cmVhbVN1Y2Nlc3NTY3JlZW5UeXBlLFxuICBTdHJlYW1TdWNjZXNzU2NyZWVuUGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vY29uc3VtZXJzL3N0cmVhbS1zdWNjZXNzLXNjcmVlbi5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgU3RyZWFtU3VjY2Vzc1ZpZGVvT3B0aW9ucyxcbiAgU3RyZWFtU3VjY2Vzc1ZpZGVvVHlwZSxcbiAgU3RyZWFtU3VjY2Vzc1ZpZGVvUGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vY29uc3VtZXJzL3N0cmVhbS1zdWNjZXNzLXZpZGVvLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBTd2l0Y2hVc2VyQXVkaW9PcHRpb25zLFxuICBTd2l0Y2hVc2VyQXVkaW9UeXBlLFxuICBTd2l0Y2hVc2VyQXVkaW9QYXJhbWV0ZXJzLFxufSBmcm9tICcuLi9jb25zdW1lcnMvc3dpdGNoLXVzZXItYXVkaW8uc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIFN3aXRjaFVzZXJWaWRlb09wdGlvbnMsXG4gIFN3aXRjaFVzZXJWaWRlb1R5cGUsXG4gIFN3aXRjaFVzZXJWaWRlb1BhcmFtZXRlcnMsXG59IGZyb20gJy4uL2NvbnN1bWVycy9zd2l0Y2gtdXNlci12aWRlby5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgU3dpdGNoVXNlclZpZGVvQWx0T3B0aW9ucyxcbiAgU3dpdGNoVXNlclZpZGVvQWx0VHlwZSxcbiAgU3dpdGNoVXNlclZpZGVvQWx0UGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vY29uc3VtZXJzL3N3aXRjaC11c2VyLXZpZGVvLWFsdC5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHsgVHJpZ2dlck9wdGlvbnMsIFRyaWdnZXJUeXBlLCBUcmlnZ2VyUGFyYW1ldGVycyB9IGZyb20gJy4uL2NvbnN1bWVycy90cmlnZ2VyLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBVcGRhdGVNaW5pQ2FyZHNHcmlkT3B0aW9ucyxcbiAgVXBkYXRlTWluaUNhcmRzR3JpZFR5cGUsXG4gIFVwZGF0ZU1pbmlDYXJkc0dyaWRQYXJhbWV0ZXJzLFxufSBmcm9tICcuLi9jb25zdW1lcnMvdXBkYXRlLW1pbmktY2FyZHMtZ3JpZC5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgVXBkYXRlUGFydGljaXBhbnRBdWRpb0RlY2liZWxzT3B0aW9ucyxcbiAgVXBkYXRlUGFydGljaXBhbnRBdWRpb0RlY2liZWxzVHlwZSxcbn0gZnJvbSAnLi4vY29uc3VtZXJzL3VwZGF0ZS1wYXJ0aWNpcGFudC1hdWRpby1kZWNpYmVscy5zZXJ2aWNlJztcblxuZXhwb3J0IHR5cGUgeyBBUGFyYW1zVHlwZSB9IGZyb20gJy4uL21ldGhvZHMvdXRpbHMvcHJvZHVjZXIvYS1wYXJhbXMuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7IEhQYXJhbXNUeXBlIH0gZnJvbSAnLi4vbWV0aG9kcy91dGlscy9wcm9kdWNlci9oLXBhcmFtcy5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHsgU2NyZWVuUGFyYW1zVHlwZSB9IGZyb20gJy4uL21ldGhvZHMvdXRpbHMvcHJvZHVjZXIvc2NyZWVuLXBhcmFtcy5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHsgVlBhcmFtc1R5cGUgfSBmcm9tICcuLi9tZXRob2RzL3V0aWxzL3Byb2R1Y2VyL3YtcGFyYW1zLnNlcnZpY2UnO1xuXG5leHBvcnQgdHlwZSB7XG4gIExhdW5jaEJhY2tncm91bmRPcHRpb25zLFxuICBMYXVuY2hCYWNrZ3JvdW5kVHlwZSxcbn0gZnJvbSAnLi4vbWV0aG9kcy9iYWNrZ3JvdW5kLW1ldGhvZHMvbGF1bmNoLWJhY2tncm91bmQuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIExhdW5jaEJyZWFrb3V0Um9vbXNPcHRpb25zLFxuICBMYXVuY2hCcmVha291dFJvb21zVHlwZSxcbn0gZnJvbSAnLi4vbWV0aG9kcy9icmVha291dC1yb29tLW1ldGhvZHMvbGF1bmNoLWJyZWFrb3V0LXJvb21zLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBCcmVha291dFJvb21VcGRhdGVkT3B0aW9ucyxcbiAgQnJlYWtvdXRSb29tVXBkYXRlZFR5cGUsXG4gIEJyZWFrb3V0Um9vbVVwZGF0ZWRQYXJhbWV0ZXJzLFxufSBmcm9tICcuLi9tZXRob2RzL2JyZWFrb3V0LXJvb20tbWV0aG9kcy9icmVha291dC1yb29tLXVwZGF0ZWQuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIExhdW5jaENvSG9zdE9wdGlvbnMsXG4gIExhdW5jaENvSG9zdFR5cGUsXG59IGZyb20gJy4uL21ldGhvZHMvY28taG9zdC1tZXRob2RzL2xhdW5jaC1jby1ob3N0LnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBNb2RpZnlDb0hvc3RTZXR0aW5nc09wdGlvbnMsXG4gIE1vZGlmeUNvSG9zdFNldHRpbmdzVHlwZSxcbn0gZnJvbSAnLi4vbWV0aG9kcy9jby1ob3N0LW1ldGhvZHMvbW9kaWZ5LWNvLWhvc3Qtc2V0dGluZ3Muc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIExhdW5jaERpc3BsYXlTZXR0aW5nc09wdGlvbnMsXG4gIExhdW5jaERpc3BsYXlTZXR0aW5nc1R5cGUsXG59IGZyb20gJy4uL21ldGhvZHMvZGlzcGxheS1zZXR0aW5ncy1tZXRob2RzL2xhdW5jaC1kaXNwbGF5LXNldHRpbmdzLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBNb2RpZnlEaXNwbGF5U2V0dGluZ3NPcHRpb25zLFxuICBNb2RpZnlEaXNwbGF5U2V0dGluZ3NUeXBlLFxuICBNb2RpZnlEaXNwbGF5U2V0dGluZ3NQYXJhbWV0ZXJzLFxufSBmcm9tICcuLi9tZXRob2RzL2Rpc3BsYXktc2V0dGluZ3MtbWV0aG9kcy9tb2RpZnktZGlzcGxheS1zZXR0aW5ncy5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgTGF1bmNoQ29uZmlybUV4aXRPcHRpb25zLFxuICBMYXVuY2hDb25maXJtRXhpdFR5cGUsXG59IGZyb20gJy4uL21ldGhvZHMvZXhpdC1tZXRob2RzL2xhdW5jaC1jb25maXJtLWV4aXQuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIENvbmZpcm1FeGl0T3B0aW9ucyxcbiAgQ29uZmlybUV4aXRUeXBlLFxufSBmcm9tICcuLi9tZXRob2RzL2V4aXQtbWV0aG9kcy9jb25maXJtLWV4aXQuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIExhdW5jaE1lZGlhU2V0dGluZ3NPcHRpb25zLFxuICBMYXVuY2hNZWRpYVNldHRpbmdzVHlwZSxcbn0gZnJvbSAnLi4vbWV0aG9kcy9tZWRpYS1zZXR0aW5ncy1tZXRob2RzL2xhdW5jaC1tZWRpYS1zZXR0aW5ncy5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgTGF1bmNoTWVudU1vZGFsT3B0aW9ucyxcbiAgTGF1bmNoTWVudU1vZGFsVHlwZSxcbn0gZnJvbSAnLi4vbWV0aG9kcy9tZW51LW1ldGhvZHMvbGF1bmNoLW1lbnUtbW9kYWwuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIExhdW5jaE1lc3NhZ2VzT3B0aW9ucyxcbiAgTGF1bmNoTWVzc2FnZXNUeXBlLFxufSBmcm9tICcuLi9tZXRob2RzL21lc3NhZ2UtbWV0aG9kcy9sYXVuY2gtbWVzc2FnZXMuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIFNlbmRNZXNzYWdlT3B0aW9ucyxcbiAgU2VuZE1lc3NhZ2VUeXBlLFxufSBmcm9tICcuLi9tZXRob2RzL21lc3NhZ2UtbWV0aG9kcy9zZW5kLW1lc3NhZ2Uuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIExhdW5jaFBhcnRpY2lwYW50c09wdGlvbnMsXG4gIExhdW5jaFBhcnRpY2lwYW50c1R5cGUsXG59IGZyb20gJy4uL21ldGhvZHMvcGFydGljaXBhbnRzLW1ldGhvZHMvbGF1bmNoLXBhcnRpY2lwYW50cy5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgTWVzc2FnZVBhcnRpY2lwYW50c09wdGlvbnMsXG4gIE1lc3NhZ2VQYXJ0aWNpcGFudHNUeXBlLFxufSBmcm9tICcuLi9tZXRob2RzL3BhcnRpY2lwYW50cy1tZXRob2RzL21lc3NhZ2UtcGFydGljaXBhbnRzLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBNdXRlUGFydGljaXBhbnRzT3B0aW9ucyxcbiAgTXV0ZVBhcnRpY2lwYW50c1R5cGUsXG59IGZyb20gJy4uL21ldGhvZHMvcGFydGljaXBhbnRzLW1ldGhvZHMvbXV0ZS1wYXJ0aWNpcGFudHMuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIFJlbW92ZVBhcnRpY2lwYW50c09wdGlvbnMsXG4gIFJlbW92ZVBhcnRpY2lwYW50c1R5cGUsXG59IGZyb20gJy4uL21ldGhvZHMvcGFydGljaXBhbnRzLW1ldGhvZHMvcmVtb3ZlLXBhcnRpY2lwYW50cy5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgSGFuZGxlQ3JlYXRlUG9sbE9wdGlvbnMsXG4gIEhhbmRsZUNyZWF0ZVBvbGxUeXBlLFxufSBmcm9tICcuLi9tZXRob2RzL3BvbGxzLW1ldGhvZHMvaGFuZGxlLWNyZWF0ZS1wb2xsLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBIYW5kbGVFbmRQb2xsT3B0aW9ucyxcbiAgSGFuZGxlRW5kUG9sbFR5cGUsXG59IGZyb20gJy4uL21ldGhvZHMvcG9sbHMtbWV0aG9kcy9oYW5kbGUtZW5kLXBvbGwuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIEhhbmRsZVZvdGVQb2xsT3B0aW9ucyxcbiAgSGFuZGxlVm90ZVBvbGxUeXBlLFxufSBmcm9tICcuLi9tZXRob2RzL3BvbGxzLW1ldGhvZHMvaGFuZGxlLXZvdGUtcG9sbC5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgTGF1bmNoUG9sbE9wdGlvbnMsXG4gIExhdW5jaFBvbGxUeXBlLFxufSBmcm9tICcuLi9tZXRob2RzL3BvbGxzLW1ldGhvZHMvbGF1bmNoLXBvbGwuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIFBvbGxVcGRhdGVkT3B0aW9ucyxcbiAgUG9sbFVwZGF0ZWRUeXBlLFxufSBmcm9tICcuLi9tZXRob2RzL3BvbGxzLW1ldGhvZHMvcG9sbC11cGRhdGVkLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBDaGVja1BhdXNlU3RhdGVPcHRpb25zLFxuICBDaGVja1BhdXNlU3RhdGVUeXBlLFxufSBmcm9tICcuLi9tZXRob2RzL3JlY29yZGluZy1tZXRob2RzL2NoZWNrLXBhdXNlLXN0YXRlLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBDaGVja1Jlc3VtZVN0YXRlT3B0aW9ucyxcbiAgQ2hlY2tSZXN1bWVTdGF0ZVR5cGUsXG59IGZyb20gJy4uL21ldGhvZHMvcmVjb3JkaW5nLW1ldGhvZHMvY2hlY2stcmVzdW1lLXN0YXRlLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBDb25maXJtUmVjb3JkaW5nT3B0aW9ucyxcbiAgQ29uZmlybVJlY29yZGluZ1R5cGUsXG4gIENvbmZpcm1SZWNvcmRpbmdQYXJhbWV0ZXJzLFxufSBmcm9tICcuLi9tZXRob2RzL3JlY29yZGluZy1tZXRob2RzL2NvbmZpcm0tcmVjb3JkaW5nLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBMYXVuY2hSZWNvcmRpbmdPcHRpb25zLFxuICBMYXVuY2hSZWNvcmRpbmdUeXBlLFxufSBmcm9tICcuLi9tZXRob2RzL3JlY29yZGluZy1tZXRob2RzL2xhdW5jaC1yZWNvcmRpbmcuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIFJlY29yZFBhdXNlVGltZXJPcHRpb25zLFxuICBSZWNvcmRQYXVzZVRpbWVyVHlwZSxcbn0gZnJvbSAnLi4vbWV0aG9kcy9yZWNvcmRpbmctbWV0aG9kcy9yZWNvcmQtcGF1c2UtdGltZXIuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIFJlY29yZFJlc3VtZVRpbWVyT3B0aW9ucyxcbiAgUmVjb3JkUmVzdW1lVGltZXJUeXBlLFxufSBmcm9tICcuLi9tZXRob2RzL3JlY29yZGluZy1tZXRob2RzL3JlY29yZC1yZXN1bWUtdGltZXIuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIFJlY29yZFN0YXJ0VGltZXJPcHRpb25zLFxuICBSZWNvcmRTdGFydFRpbWVyVHlwZSxcbn0gZnJvbSAnLi4vbWV0aG9kcy9yZWNvcmRpbmctbWV0aG9kcy9yZWNvcmQtc3RhcnQtdGltZXIuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIFJlY29yZFVwZGF0ZVRpbWVyT3B0aW9ucyxcbiAgUmVjb3JkVXBkYXRlVGltZXJUeXBlLFxufSBmcm9tICcuLi9tZXRob2RzL3JlY29yZGluZy1tZXRob2RzL3JlY29yZC11cGRhdGUtdGltZXIuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIFN0YXJ0UmVjb3JkaW5nT3B0aW9ucyxcbiAgU3RhcnRSZWNvcmRpbmdUeXBlLFxuICBTdGFydFJlY29yZGluZ1BhcmFtZXRlcnMsXG59IGZyb20gJy4uL21ldGhvZHMvcmVjb3JkaW5nLW1ldGhvZHMvc3RhcnQtcmVjb3JkaW5nLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBTdG9wUmVjb3JkaW5nT3B0aW9ucyxcbiAgU3RvcFJlY29yZGluZ1R5cGUsXG4gIFN0b3BSZWNvcmRpbmdQYXJhbWV0ZXJzLFxufSBmcm9tICcuLi9tZXRob2RzL3JlY29yZGluZy1tZXRob2RzL3N0b3AtcmVjb3JkaW5nLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBVcGRhdGVSZWNvcmRpbmdPcHRpb25zLFxuICBVcGRhdGVSZWNvcmRpbmdUeXBlLFxuICBVcGRhdGVSZWNvcmRpbmdQYXJhbWV0ZXJzLFxufSBmcm9tICcuLi9tZXRob2RzL3JlY29yZGluZy1tZXRob2RzL3VwZGF0ZS1yZWNvcmRpbmcuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIExhdW5jaFJlcXVlc3RzT3B0aW9ucyxcbiAgTGF1bmNoUmVxdWVzdHNUeXBlLFxufSBmcm9tICcuLi9tZXRob2RzL3JlcXVlc3RzLW1ldGhvZHMvbGF1bmNoLXJlcXVlc3RzLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBSZXNwb25kVG9SZXF1ZXN0c09wdGlvbnMsXG4gIFJlc3BvbmRUb1JlcXVlc3RzVHlwZSxcbn0gZnJvbSAnLi4vbWV0aG9kcy9yZXF1ZXN0cy1tZXRob2RzL3Jlc3BvbmQtdG8tcmVxdWVzdHMuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIExhdW5jaFNldHRpbmdzT3B0aW9ucyxcbiAgTGF1bmNoU2V0dGluZ3NUeXBlLFxufSBmcm9tICcuLi9tZXRob2RzL3NldHRpbmdzLW1ldGhvZHMvbGF1bmNoLXNldHRpbmdzLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBNb2RpZnlTZXR0aW5nc09wdGlvbnMsXG4gIE1vZGlmeVNldHRpbmdzVHlwZSxcbn0gZnJvbSAnLi4vbWV0aG9kcy9zZXR0aW5ncy1tZXRob2RzL21vZGlmeS1zZXR0aW5ncy5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgQ2xpY2tBdWRpb09wdGlvbnMsXG4gIENsaWNrQXVkaW9UeXBlLFxuICBDbGlja0F1ZGlvUGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vbWV0aG9kcy9zdHJlYW0tbWV0aG9kcy9jbGljay1hdWRpby5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHsgQ2xpY2tDaGF0T3B0aW9ucywgQ2xpY2tDaGF0VHlwZSB9IGZyb20gJy4uL21ldGhvZHMvc3RyZWFtLW1ldGhvZHMvY2xpY2stY2hhdC5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgQ2xpY2tTY3JlZW5TaGFyZU9wdGlvbnMsXG4gIENsaWNrU2NyZWVuU2hhcmVUeXBlLFxuICBDbGlja1NjcmVlblNoYXJlUGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vbWV0aG9kcy9zdHJlYW0tbWV0aG9kcy9jbGljay1zY3JlZW4tc2hhcmUuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIENsaWNrVmlkZW9PcHRpb25zLFxuICBDbGlja1ZpZGVvVHlwZSxcbiAgQ2xpY2tWaWRlb1BhcmFtZXRlcnMsXG59IGZyb20gJy4uL21ldGhvZHMvc3RyZWFtLW1ldGhvZHMvY2xpY2stdmlkZW8uc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIFN3aXRjaEF1ZGlvT3B0aW9ucyxcbiAgU3dpdGNoQXVkaW9UeXBlLFxuICBTd2l0Y2hBdWRpb1BhcmFtZXRlcnMsXG59IGZyb20gJy4uL21ldGhvZHMvc3RyZWFtLW1ldGhvZHMvc3dpdGNoLWF1ZGlvLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBTd2l0Y2hWaWRlb09wdGlvbnMsXG4gIFN3aXRjaFZpZGVvVHlwZSxcbiAgU3dpdGNoVmlkZW9QYXJhbWV0ZXJzLFxufSBmcm9tICcuLi9tZXRob2RzL3N0cmVhbS1tZXRob2RzL3N3aXRjaC12aWRlby5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgU3dpdGNoVmlkZW9BbHRPcHRpb25zLFxuICBTd2l0Y2hWaWRlb0FsdFR5cGUsXG59IGZyb20gJy4uL21ldGhvZHMvc3RyZWFtLW1ldGhvZHMvc3dpdGNoLXZpZGVvLWFsdC5zZXJ2aWNlJztcblxuZXhwb3J0IHR5cGUge1xuICBTdGFydE1lZXRpbmdQcm9ncmVzc1RpbWVyT3B0aW9ucyxcbiAgU3RhcnRNZWV0aW5nUHJvZ3Jlc3NUaW1lclR5cGUsXG4gIFN0YXJ0TWVldGluZ1Byb2dyZXNzVGltZXJQYXJhbWV0ZXJzLFxufSBmcm9tICcuLi9tZXRob2RzL3V0aWxzL21lZXRpbmctdGltZXIvc3RhcnQtbWVldGluZy1wcm9ncmVzcy10aW1lci5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgTWluaUF1ZGlvUGxheWVyT3B0aW9ucyxcbiAgTWluaUF1ZGlvUGxheWVyVHlwZSxcbiAgTWluaUF1ZGlvUGxheWVyUGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vbWV0aG9kcy91dGlscy9taW5pLWF1ZGlvLXBsYXllci9taW5pLWF1ZGlvLXBsYXllci5jb21wb25lbnQnO1xuZXhwb3J0IHR5cGUgeyBGb3JtYXROdW1iZXJPcHRpb25zLCBGb3JtYXROdW1iZXJUeXBlIH0gZnJvbSAnLi4vbWV0aG9kcy91dGlscy9mb3JtYXQtbnVtYmVyLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBHZW5lcmF0ZVJhbmRvbU1lc3NhZ2VzT3B0aW9ucyxcbiAgR2VuZXJhdGVSYW5kb21NZXNzYWdlc1R5cGUsXG59IGZyb20gJy4uL21ldGhvZHMvdXRpbHMvZ2VuZXJhdGUtcmFuZG9tLW1lc3NhZ2VzLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBHZW5lcmF0ZVJhbmRvbVBhcnRpY2lwYW50c09wdGlvbnMsXG4gIEdlbmVyYXRlUmFuZG9tUGFydGljaXBhbnRzVHlwZSxcbn0gZnJvbSAnLi4vbWV0aG9kcy91dGlscy9nZW5lcmF0ZS1yYW5kb20tcGFydGljaXBhbnRzLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBHZW5lcmF0ZVJhbmRvbVBvbGxzT3B0aW9ucyxcbiAgR2VuZXJhdGVSYW5kb21Qb2xsc1R5cGUsXG59IGZyb20gJy4uL21ldGhvZHMvdXRpbHMvZ2VuZXJhdGUtcmFuZG9tLXBvbGxzLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBHZW5lcmF0ZVJhbmRvbVJlcXVlc3RMaXN0T3B0aW9ucyxcbiAgR2VuZXJhdGVSYW5kb21SZXF1ZXN0TGlzdFR5cGUsXG59IGZyb20gJy4uL21ldGhvZHMvdXRpbHMvZ2VuZXJhdGUtcmFuZG9tLXJlcXVlc3QtbGlzdC5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHsgR2VuZXJhdGVSYW5kb21XYWl0aW5nUm9vbUxpc3RUeXBlIH0gZnJvbSAnLi4vbWV0aG9kcy91dGlscy9nZW5lcmF0ZS1yYW5kb20td2FpdGluZy1yb29tLWxpc3Quc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIEdldE1vZGFsUG9zaXRpb25PcHRpb25zLFxuICBHZXRNb2RhbFBvc2l0aW9uVHlwZSxcbn0gZnJvbSAnLi4vbWV0aG9kcy91dGlscy9nZXQtbW9kYWwtcG9zaXRpb24udXRpbCc7XG5leHBvcnQgdHlwZSB7XG4gIEdldE92ZXJsYXlQb3NpdGlvbk9wdGlvbnMsXG4gIEdldE92ZXJsYXlQb3NpdGlvblR5cGUsXG59IGZyb20gJy4uL21ldGhvZHMvdXRpbHMvZ2V0LW92ZXJsYXktcG9zaXRpb24udXRpbCc7XG5leHBvcnQgdHlwZSB7IFNsZWVwT3B0aW9ucywgU2xlZXBUeXBlIH0gZnJvbSAnLi4vbWV0aG9kcy91dGlscy9zbGVlcC51dGlsJztcbmV4cG9ydCB0eXBlIHtcbiAgVmFsaWRhdGVBbHBoYW51bWVyaWNPcHRpb25zLFxuICBWYWxpZGF0ZUFscGhhbnVtZXJpY1R5cGUsXG59IGZyb20gJy4uL21ldGhvZHMvdXRpbHMvdmFsaWRhdGUtYWxwaGFudW1lcmljLnNlcnZpY2UnO1xuXG5leHBvcnQgdHlwZSB7XG4gIExhdW5jaFdhaXRpbmdPcHRpb25zLFxuICBMYXVuY2hXYWl0aW5nVHlwZSxcbn0gZnJvbSAnLi4vbWV0aG9kcy93YWl0aW5nLW1ldGhvZHMvbGF1bmNoLXdhaXRpbmcuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIFJlc3BvbmRUb1dhaXRpbmdPcHRpb25zLFxuICBSZXNwb25kVG9XYWl0aW5nVHlwZSxcbn0gZnJvbSAnLi4vbWV0aG9kcy93YWl0aW5nLW1ldGhvZHMvcmVzcG9uZC10by13YWl0aW5nLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBMYXVuY2hDb25maWd1cmVXaGl0ZWJvYXJkT3B0aW9ucyxcbiAgTGF1bmNoQ29uZmlndXJlV2hpdGVib2FyZFR5cGUsXG59IGZyb20gJy4uL21ldGhvZHMvd2hpdGVib2FyZC1tZXRob2RzL2xhdW5jaC1jb25maWd1cmUtd2hpdGVib2FyZC5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgQ2FwdHVyZUNhbnZhc1N0cmVhbU9wdGlvbnMsXG4gIENhcHR1cmVDYW52YXNTdHJlYW1UeXBlLFxuICBDYXB0dXJlQ2FudmFzU3RyZWFtUGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vbWV0aG9kcy93aGl0ZWJvYXJkLW1ldGhvZHMvY2FwdHVyZS1jYW52YXMtc3RyZWFtLnNlcnZpY2UnO1xuXG5leHBvcnQgdHlwZSB7XG4gIENyZWF0ZURldmljZUNsaWVudE9wdGlvbnMsXG4gIENyZWF0ZURldmljZUNsaWVudFR5cGUsXG59IGZyb20gJy4uL3Byb2R1Y2VyLWNsaWVudC9wcm9kdWNlci1jbGllbnQtZW1pdHMvY3JlYXRlLWRldmljZS1jbGllbnQuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIEpvaW5Sb29tQ2xpZW50T3B0aW9ucyxcbiAgSm9pblJvb21DbGllbnRUeXBlLFxufSBmcm9tICcuLi9wcm9kdWNlci1jbGllbnQvcHJvZHVjZXItY2xpZW50LWVtaXRzL2pvaW4tcm9vbS1jbGllbnQuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIFVwZGF0ZVJvb21QYXJhbWV0ZXJzQ2xpZW50T3B0aW9ucyxcbiAgVXBkYXRlUm9vbVBhcmFtZXRlcnNDbGllbnRUeXBlLFxuICBVcGRhdGVSb29tUGFyYW1ldGVyc0NsaWVudFBhcmFtZXRlcnMsXG59IGZyb20gJy4uL3Byb2R1Y2VyLWNsaWVudC9wcm9kdWNlci1jbGllbnQtZW1pdHMvdXBkYXRlLXJvb20tcGFyYW1ldGVycy1jbGllbnQuc2VydmljZSc7XG5cbmV4cG9ydCB0eXBlIHtcbiAgSm9pbkNvblJvb21PcHRpb25zLFxuICBKb2luQ29uUm9vbVR5cGUsXG59IGZyb20gJy4uL3Byb2R1Y2Vycy9wcm9kdWNlci1lbWl0cy9qb2luLWNvbi1yb29tLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUgeyBKb2luUm9vbU9wdGlvbnMsIEpvaW5Sb29tVHlwZSB9IGZyb20gJy4uL3Byb2R1Y2Vycy9wcm9kdWNlci1lbWl0cy9qb2luLXJvb20uc2VydmljZSc7XG5cbmV4cG9ydCB0eXBlIHtcbiAgQWxsTWVtYmVyc09wdGlvbnMsXG4gIEFsbE1lbWJlcnNUeXBlLFxuICBBbGxNZW1iZXJzUGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vcHJvZHVjZXJzL3NvY2tldC1yZWNlaXZlLW1ldGhvZHMvYWxsLW1lbWJlcnMuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIEFsbE1lbWJlcnNSZXN0T3B0aW9ucyxcbiAgQWxsTWVtYmVyc1Jlc3RUeXBlLFxuICBBbGxNZW1iZXJzUmVzdFBhcmFtZXRlcnMsXG59IGZyb20gJy4uL3Byb2R1Y2Vycy9zb2NrZXQtcmVjZWl2ZS1tZXRob2RzL2FsbC1tZW1iZXJzLXJlc3Quc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIEFsbFdhaXRpbmdSb29tTWVtYmVyc09wdGlvbnMsXG4gIEFsbFdhaXRpbmdSb29tTWVtYmVyc1R5cGUsXG59IGZyb20gJy4uL3Byb2R1Y2Vycy9zb2NrZXQtcmVjZWl2ZS1tZXRob2RzL2FsbC13YWl0aW5nLXJvb20tbWVtYmVycy5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgQmFuUGFydGljaXBhbnRPcHRpb25zLFxuICBCYW5QYXJ0aWNpcGFudFR5cGUsXG4gIEJhblBhcnRpY2lwYW50UGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vcHJvZHVjZXJzL3NvY2tldC1yZWNlaXZlLW1ldGhvZHMvYmFuLXBhcnRpY2lwYW50LnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBDb250cm9sTWVkaWFIb3N0T3B0aW9ucyxcbiAgQ29udHJvbE1lZGlhSG9zdFR5cGUsXG4gIENvbnRyb2xNZWRpYUhvc3RQYXJhbWV0ZXJzLFxufSBmcm9tICcuLi9wcm9kdWNlcnMvc29ja2V0LXJlY2VpdmUtbWV0aG9kcy9jb250cm9sLW1lZGlhLWhvc3Quc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIERpc2Nvbm5lY3RPcHRpb25zLFxuICBEaXNjb25uZWN0VHlwZSxcbn0gZnJvbSAnLi4vcHJvZHVjZXJzL3NvY2tldC1yZWNlaXZlLW1ldGhvZHMvZGlzY29ubmVjdC5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgRGlzY29ubmVjdFVzZXJTZWxmT3B0aW9ucyxcbiAgRGlzY29ubmVjdFVzZXJTZWxmVHlwZSxcbn0gZnJvbSAnLi4vcHJvZHVjZXJzL3NvY2tldC1yZWNlaXZlLW1ldGhvZHMvZGlzY29ubmVjdC11c2VyLXNlbGYuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIEdldERvbWFpbnNPcHRpb25zLFxuICBHZXREb21haW5zVHlwZSxcbiAgR2V0RG9tYWluc1BhcmFtZXRlcnMsXG59IGZyb20gJy4uL3Byb2R1Y2Vycy9zb2NrZXQtcmVjZWl2ZS1tZXRob2RzL2dldC1kb21haW5zLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBIb3N0UmVxdWVzdFJlc3BvbnNlT3B0aW9ucyxcbiAgSG9zdFJlcXVlc3RSZXNwb25zZVR5cGUsXG59IGZyb20gJy4uL3Byb2R1Y2Vycy9zb2NrZXQtcmVjZWl2ZS1tZXRob2RzL2hvc3QtcmVxdWVzdC1yZXNwb25zZS5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgTWVldGluZ0VuZGVkT3B0aW9ucyxcbiAgTWVldGluZ0VuZGVkVHlwZSxcbn0gZnJvbSAnLi4vcHJvZHVjZXJzL3NvY2tldC1yZWNlaXZlLW1ldGhvZHMvbWVldGluZy1lbmRlZC5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgTWVldGluZ1N0aWxsVGhlcmVPcHRpb25zLFxuICBNZWV0aW5nU3RpbGxUaGVyZVR5cGUsXG59IGZyb20gJy4uL3Byb2R1Y2Vycy9zb2NrZXQtcmVjZWl2ZS1tZXRob2RzL21lZXRpbmctc3RpbGwtdGhlcmUuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIE1lZXRpbmdUaW1lUmVtYWluaW5nT3B0aW9ucyxcbiAgTWVldGluZ1RpbWVSZW1haW5pbmdUeXBlLFxufSBmcm9tICcuLi9wcm9kdWNlcnMvc29ja2V0LXJlY2VpdmUtbWV0aG9kcy9tZWV0aW5nLXRpbWUtcmVtYWluaW5nLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBQYXJ0aWNpcGFudFJlcXVlc3RlZE9wdGlvbnMsXG4gIFBhcnRpY2lwYW50UmVxdWVzdGVkVHlwZSxcbn0gZnJvbSAnLi4vcHJvZHVjZXJzL3NvY2tldC1yZWNlaXZlLW1ldGhvZHMvcGFydGljaXBhbnQtcmVxdWVzdGVkLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBQZXJzb25Kb2luZWRPcHRpb25zLFxuICBQZXJzb25Kb2luZWRUeXBlLFxufSBmcm9tICcuLi9wcm9kdWNlcnMvc29ja2V0LXJlY2VpdmUtbWV0aG9kcy9wZXJzb24tam9pbmVkLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBQcm9kdWNlck1lZGlhQ2xvc2VkT3B0aW9ucyxcbiAgUHJvZHVjZXJNZWRpYUNsb3NlZFR5cGUsXG4gIFByb2R1Y2VyTWVkaWFDbG9zZWRQYXJhbWV0ZXJzLFxufSBmcm9tICcuLi9wcm9kdWNlcnMvc29ja2V0LXJlY2VpdmUtbWV0aG9kcy9wcm9kdWNlci1tZWRpYS1jbG9zZWQuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIFByb2R1Y2VyTWVkaWFQYXVzZWRPcHRpb25zLFxuICBQcm9kdWNlck1lZGlhUGF1c2VkVHlwZSxcbiAgUHJvZHVjZXJNZWRpYVBhdXNlZFBhcmFtZXRlcnMsXG59IGZyb20gJy4uL3Byb2R1Y2Vycy9zb2NrZXQtcmVjZWl2ZS1tZXRob2RzL3Byb2R1Y2VyLW1lZGlhLXBhdXNlZC5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgUHJvZHVjZXJNZWRpYVJlc3VtZWRPcHRpb25zLFxuICBQcm9kdWNlck1lZGlhUmVzdW1lZFR5cGUsXG4gIFByb2R1Y2VyTWVkaWFSZXN1bWVkUGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vcHJvZHVjZXJzL3NvY2tldC1yZWNlaXZlLW1ldGhvZHMvcHJvZHVjZXItbWVkaWEtcmVzdW1lZC5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgUmVJbml0aWF0ZVJlY29yZGluZ09wdGlvbnMsXG4gIFJlSW5pdGlhdGVSZWNvcmRpbmdUeXBlLFxufSBmcm9tICcuLi9wcm9kdWNlcnMvc29ja2V0LXJlY2VpdmUtbWV0aG9kcy9yZS1pbml0aWF0ZS1yZWNvcmRpbmcuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIFJlY2VpdmVNZXNzYWdlT3B0aW9ucyxcbiAgUmVjZWl2ZU1lc3NhZ2VUeXBlLFxufSBmcm9tICcuLi9wcm9kdWNlcnMvc29ja2V0LXJlY2VpdmUtbWV0aG9kcy9yZWNlaXZlLW1lc3NhZ2Uuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIFJlY29yZGluZ05vdGljZU9wdGlvbnMsXG4gIFJlY29yZGluZ05vdGljZVR5cGUsXG4gIFJlY29yZGluZ05vdGljZVBhcmFtZXRlcnMsXG59IGZyb20gJy4uL3Byb2R1Y2Vycy9zb2NrZXQtcmVjZWl2ZS1tZXRob2RzL3JlY29yZGluZy1ub3RpY2Uuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIFJvb21SZWNvcmRQYXJhbXNPcHRpb25zLFxuICBSb29tUmVjb3JkUGFyYW1zVHlwZSxcbiAgUm9vbVJlY29yZFBhcmFtc1BhcmFtZXRlcnMsXG4gIFJlY29yZFBhcmFtcyxcbn0gZnJvbSAnLi4vcHJvZHVjZXJzL3NvY2tldC1yZWNlaXZlLW1ldGhvZHMvcm9vbS1yZWNvcmQtcGFyYW1zLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBTY3JlZW5Qcm9kdWNlcklkT3B0aW9ucyxcbiAgU2NyZWVuUHJvZHVjZXJJZFR5cGUsXG59IGZyb20gJy4uL3Byb2R1Y2Vycy9zb2NrZXQtcmVjZWl2ZS1tZXRob2RzL3NjcmVlbi1wcm9kdWNlci1pZC5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgU3RhcnRSZWNvcmRzT3B0aW9ucyxcbiAgU3RhcnRSZWNvcmRzVHlwZSxcbn0gZnJvbSAnLi4vcHJvZHVjZXJzL3NvY2tldC1yZWNlaXZlLW1ldGhvZHMvc3RhcnQtcmVjb3Jkcy5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgU3RvcHBlZFJlY29yZGluZ09wdGlvbnMsXG4gIFN0b3BwZWRSZWNvcmRpbmdUeXBlLFxufSBmcm9tICcuLi9wcm9kdWNlcnMvc29ja2V0LXJlY2VpdmUtbWV0aG9kcy9zdG9wcGVkLXJlY29yZGluZy5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgVGltZUxlZnRSZWNvcmRpbmdPcHRpb25zLFxuICBUaW1lTGVmdFJlY29yZGluZ1R5cGUsXG59IGZyb20gJy4uL3Byb2R1Y2Vycy9zb2NrZXQtcmVjZWl2ZS1tZXRob2RzL3RpbWUtbGVmdC1yZWNvcmRpbmcuc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIFVwZGF0ZUNvbnN1bWluZ0RvbWFpbnNPcHRpb25zLFxuICBVcGRhdGVDb25zdW1pbmdEb21haW5zVHlwZSxcbiAgVXBkYXRlQ29uc3VtaW5nRG9tYWluc1BhcmFtZXRlcnMsXG59IGZyb20gJy4uL3Byb2R1Y2Vycy9zb2NrZXQtcmVjZWl2ZS1tZXRob2RzL3VwZGF0ZS1jb25zdW1pbmctZG9tYWlucy5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgVXBkYXRlTWVkaWFTZXR0aW5nc09wdGlvbnMsXG4gIFVwZGF0ZU1lZGlhU2V0dGluZ3NUeXBlLFxufSBmcm9tICcuLi9wcm9kdWNlcnMvc29ja2V0LXJlY2VpdmUtbWV0aG9kcy91cGRhdGUtbWVkaWEtc2V0dGluZ3Muc2VydmljZSc7XG5leHBvcnQgdHlwZSB7XG4gIFVwZGF0ZWRDb0hvc3RPcHRpb25zLFxuICBVcGRhdGVkQ29Ib3N0VHlwZSxcbn0gZnJvbSAnLi4vcHJvZHVjZXJzL3NvY2tldC1yZWNlaXZlLW1ldGhvZHMvdXBkYXRlZC1jby1ob3N0LnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBVc2VyV2FpdGluZ09wdGlvbnMsXG4gIFVzZXJXYWl0aW5nVHlwZSxcbn0gZnJvbSAnLi4vcHJvZHVjZXJzL3NvY2tldC1yZWNlaXZlLW1ldGhvZHMvdXNlci13YWl0aW5nLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBDb25uZWN0U29ja2V0T3B0aW9ucyxcbiAgQ29ubmVjdFNvY2tldFR5cGUsXG4gIERpc2Nvbm5lY3RTb2NrZXRUeXBlLFxuICBEaXNjb25uZWN0U29ja2V0T3B0aW9ucyxcbn0gZnJvbSAnLi4vc29ja2V0cy9zb2NrZXQtbWFuYWdlci5zZXJ2aWNlJztcblxuZXhwb3J0IHR5cGUge1xuICBCYWNrZ3JvdW5kTW9kYWxPcHRpb25zLFxuICBCYWNrZ3JvdW5kTW9kYWxUeXBlLFxuICBCYWNrZ3JvdW5kTW9kYWxQYXJhbWV0ZXJzLFxufSBmcm9tICcuLi9jb21wb25lbnRzL2JhY2tncm91bmQtY29tcG9uZW50cy9iYWNrZ3JvdW5kLW1vZGFsL2JhY2tncm91bmQtbW9kYWwuY29tcG9uZW50JztcbmV4cG9ydCB0eXBlIHtcbiAgQnJlYWtvdXRSb29tc01vZGFsT3B0aW9ucyxcbiAgQnJlYWtvdXRSb29tc01vZGFsVHlwZSxcbiAgQnJlYWtvdXRSb29tc01vZGFsUGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vY29tcG9uZW50cy9icmVha291dC1jb21wb25lbnRzL2JyZWFrb3V0LXJvb21zLW1vZGFsLmNvbXBvbmVudCc7XG5leHBvcnQgdHlwZSB7XG4gIENvSG9zdE1vZGFsT3B0aW9ucyxcbiAgQ29Ib3N0TW9kYWxUeXBlLFxufSBmcm9tICcuLi9jb21wb25lbnRzL2NvLWhvc3QtY29tcG9uZW50cy9jby1ob3N0LW1vZGFsL2NvLWhvc3QtbW9kYWwuY29tcG9uZW50JztcbmV4cG9ydCB0eXBlIHtcbiAgQWxlcnRDb21wb25lbnRPcHRpb25zLFxuICBBbGVydENvbXBvbmVudFR5cGUsXG59IGZyb20gJy4uL2NvbXBvbmVudHMvZGlzcGxheS1jb21wb25lbnRzL2FsZXJ0LWNvbXBvbmVudC9hbGVydC5jb21wb25lbnQuY29tcG9uZW50JztcbmV4cG9ydCB0eXBlIHtcbiAgQXVkaW9DYXJkT3B0aW9ucyxcbiAgQXVkaW9DYXJkVHlwZSxcbiAgQXVkaW9DYXJkUGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vY29tcG9uZW50cy9kaXNwbGF5LWNvbXBvbmVudHMvYXVkaW8tY2FyZC9hdWRpby1jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgdHlwZSB7XG4gIEF1ZGlvR3JpZE9wdGlvbnMsXG4gIEF1ZGlvR3JpZFR5cGUsXG59IGZyb20gJy4uL2NvbXBvbmVudHMvZGlzcGxheS1jb21wb25lbnRzL2F1ZGlvLWdyaWQvYXVkaW8tZ3JpZC5jb21wb25lbnQnO1xuZXhwb3J0IHR5cGUge1xuICBDYXJkVmlkZW9EaXNwbGF5T3B0aW9ucyxcbiAgQ2FyZFZpZGVvRGlzcGxheVR5cGUsXG59IGZyb20gJy4uL2NvbXBvbmVudHMvZGlzcGxheS1jb21wb25lbnRzL2NhcmQtdmlkZW8tZGlzcGxheS9jYXJkLXZpZGVvLWRpc3BsYXkuY29tcG9uZW50JztcbmV4cG9ydCB0eXBlIHtcbiAgQ29udHJvbEJ1dHRvbnNDb21wb25lbnRPcHRpb25zLFxuICBDb250cm9sQnV0dG9uc0NvbXBvbmVudFR5cGUsXG4gIEJ1dHRvbixcbn0gZnJvbSAnLi4vY29tcG9uZW50cy9kaXNwbGF5LWNvbXBvbmVudHMvY29udHJvbC1idXR0b25zLWNvbXBvbmVudC9jb250cm9sLWJ1dHRvbnMtY29tcG9uZW50LmNvbXBvbmVudCc7XG5leHBvcnQgdHlwZSB7XG4gIENvbnRyb2xCdXR0b25zQWx0Q29tcG9uZW50T3B0aW9ucyxcbiAgQ29udHJvbEJ1dHRvbnNBbHRDb21wb25lbnRUeXBlLFxuICBBbHRCdXR0b24sXG59IGZyb20gJy4uL2NvbXBvbmVudHMvZGlzcGxheS1jb21wb25lbnRzL2NvbnRyb2wtYnV0dG9ucy1hbHQtY29tcG9uZW50L2NvbnRyb2wtYnV0dG9ucy1hbHQtY29tcG9uZW50LmNvbXBvbmVudCc7XG5leHBvcnQgdHlwZSB7XG4gIENvbnRyb2xCdXR0b25zQ29tcG9uZW50VG91Y2hPcHRpb25zLFxuICBDb250cm9sQnV0dG9uc0NvbXBvbmVudFRvdWNoVHlwZSxcbiAgQnV0dG9uVG91Y2gsXG59IGZyb20gJy4uL2NvbXBvbmVudHMvZGlzcGxheS1jb21wb25lbnRzL2NvbnRyb2wtYnV0dG9ucy1jb21wb25lbnQtdG91Y2gvY29udHJvbC1idXR0b25zLWNvbXBvbmVudC10b3VjaC5jb21wb25lbnQnO1xuZXhwb3J0IHR5cGUge1xuICBGbGV4aWJsZUdyaWRPcHRpb25zLFxuICBGbGV4aWJsZUdyaWRUeXBlLFxufSBmcm9tICcuLi9jb21wb25lbnRzL2Rpc3BsYXktY29tcG9uZW50cy9mbGV4aWJsZS1ncmlkL2ZsZXhpYmxlLWdyaWQuY29tcG9uZW50JztcbmV4cG9ydCB0eXBlIHtcbiAgRmxleGlibGVWaWRlb09wdGlvbnMsXG4gIEZsZXhpYmxlVmlkZW9UeXBlLFxufSBmcm9tICcuLi9jb21wb25lbnRzL2Rpc3BsYXktY29tcG9uZW50cy9mbGV4aWJsZS12aWRlby9mbGV4aWJsZS12aWRlby5jb21wb25lbnQnO1xuZXhwb3J0IHR5cGUge1xuICBMb2FkaW5nTW9kYWxPcHRpb25zLFxuICBMb2FkaW5nTW9kYWxUeXBlLFxufSBmcm9tICcuLi9jb21wb25lbnRzL2Rpc3BsYXktY29tcG9uZW50cy9sb2FkaW5nLW1vZGFsL2xvYWRpbmctbW9kYWwuY29tcG9uZW50JztcbmV4cG9ydCB0eXBlIHtcbiAgTWFpbkFzcGVjdENvbXBvbmVudE9wdGlvbnMsXG4gIE1haW5Bc3BlY3RDb21wb25lbnRUeXBlLFxufSBmcm9tICcuLi9jb21wb25lbnRzL2Rpc3BsYXktY29tcG9uZW50cy9tYWluLWFzcGVjdC1jb21wb25lbnQvbWFpbi1hc3BlY3QtY29tcG9uZW50LmNvbXBvbmVudCc7XG5leHBvcnQgdHlwZSB7XG4gIE1haW5Db250YWluZXJDb21wb25lbnRPcHRpb25zLFxuICBNYWluQ29udGFpbmVyQ29tcG9uZW50VHlwZSxcbn0gZnJvbSAnLi4vY29tcG9uZW50cy9kaXNwbGF5LWNvbXBvbmVudHMvbWFpbi1jb250YWluZXItY29tcG9uZW50L21haW4tY29udGFpbmVyLWNvbXBvbmVudC5jb21wb25lbnQnO1xuZXhwb3J0IHR5cGUge1xuICBNYWluR3JpZENvbXBvbmVudE9wdGlvbnMsXG4gIE1haW5HcmlkQ29tcG9uZW50VHlwZSxcbn0gZnJvbSAnLi4vY29tcG9uZW50cy9kaXNwbGF5LWNvbXBvbmVudHMvbWFpbi1ncmlkLWNvbXBvbmVudC9tYWluLWdyaWQtY29tcG9uZW50LmNvbXBvbmVudCc7XG5leHBvcnQgdHlwZSB7XG4gIE1haW5TY3JlZW5Db21wb25lbnRPcHRpb25zLFxuICBNYWluU2NyZWVuQ29tcG9uZW50VHlwZSxcbn0gZnJvbSAnLi4vY29tcG9uZW50cy9kaXNwbGF5LWNvbXBvbmVudHMvbWFpbi1zY3JlZW4tY29tcG9uZW50L21haW4tc2NyZWVuLWNvbXBvbmVudC5jb21wb25lbnQnO1xuZXhwb3J0IHR5cGUge1xuICBNZWV0aW5nUHJvZ3Jlc3NUaW1lck9wdGlvbnMsXG4gIE1lZXRpbmdQcm9ncmVzc1RpbWVyVHlwZSxcbn0gZnJvbSAnLi4vY29tcG9uZW50cy9kaXNwbGF5LWNvbXBvbmVudHMvbWVldGluZy1wcm9ncmVzcy10aW1lci9tZWV0aW5nLXByb2dyZXNzLXRpbWVyLmNvbXBvbmVudCc7XG5leHBvcnQgdHlwZSB7XG4gIE1pbmlBdWRpb09wdGlvbnMsXG4gIE1pbmlBdWRpb1R5cGUsXG59IGZyb20gJy4uL2NvbXBvbmVudHMvZGlzcGxheS1jb21wb25lbnRzL21pbmktYXVkaW8vbWluaS1hdWRpby5jb21wb25lbnQnO1xuZXhwb3J0IHR5cGUge1xuICBNaW5pQ2FyZE9wdGlvbnMsXG4gIE1pbmlDYXJkVHlwZSxcbn0gZnJvbSAnLi4vY29tcG9uZW50cy9kaXNwbGF5LWNvbXBvbmVudHMvbWluaS1jYXJkL21pbmktY2FyZC5jb21wb25lbnQnO1xuZXhwb3J0IHR5cGUge1xuICBNaW5pQ2FyZEF1ZGlvT3B0aW9ucyxcbiAgTWluaUNhcmRBdWRpb1R5cGUsXG59IGZyb20gJy4uL2NvbXBvbmVudHMvZGlzcGxheS1jb21wb25lbnRzL21pbmktY2FyZC1hdWRpby9taW5pLWNhcmQtYXVkaW8uY29tcG9uZW50JztcbmV4cG9ydCB0eXBlIHtcbiAgT3RoZXJHcmlkQ29tcG9uZW50T3B0aW9ucyxcbiAgT3RoZXJHcmlkQ29tcG9uZW50VHlwZSxcbn0gZnJvbSAnLi4vY29tcG9uZW50cy9kaXNwbGF5LWNvbXBvbmVudHMvb3RoZXItZ3JpZC1jb21wb25lbnQvb3RoZXItZ3JpZC1jb21wb25lbnQuY29tcG9uZW50JztcbmV4cG9ydCB0eXBlIHtcbiAgUGFnaW5hdGlvbk9wdGlvbnMsXG4gIFBhZ2luYXRpb25UeXBlLFxufSBmcm9tICcuLi9jb21wb25lbnRzL2Rpc3BsYXktY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCB0eXBlIHtcbiAgU3ViQXNwZWN0Q29tcG9uZW50T3B0aW9ucyxcbiAgU3ViQXNwZWN0Q29tcG9uZW50VHlwZSxcbn0gZnJvbSAnLi4vY29tcG9uZW50cy9kaXNwbGF5LWNvbXBvbmVudHMvc3ViLWFzcGVjdC1jb21wb25lbnQvc3ViLWFzcGVjdC1jb21wb25lbnQuY29tcG9uZW50JztcbmV4cG9ydCB0eXBlIHtcbiAgVmlkZW9DYXJkT3B0aW9ucyxcbiAgVmlkZW9DYXJkVHlwZSxcbiAgVmlkZW9DYXJkUGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vY29tcG9uZW50cy9kaXNwbGF5LWNvbXBvbmVudHMvdmlkZW8tY2FyZC92aWRlby1jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgdHlwZSB7XG4gIERpc3BsYXlTZXR0aW5nc01vZGFsT3B0aW9ucyxcbiAgRGlzcGxheVNldHRpbmdzTW9kYWxUeXBlLFxuICBEaXNwbGF5U2V0dGluZ3NNb2RhbFBhcmFtZXRlcnMsXG59IGZyb20gJy4uL2NvbXBvbmVudHMvZGlzcGxheS1zZXR0aW5ncy1jb21wb25lbnRzL2Rpc3BsYXktc2V0dGluZ3MtbW9kYWwuY29tcG9uZW50JztcbmV4cG9ydCB0eXBlIHtcbiAgRXZlbnRTZXR0aW5nc01vZGFsT3B0aW9ucyxcbiAgRXZlbnRTZXR0aW5nc01vZGFsVHlwZSxcbn0gZnJvbSAnLi4vY29tcG9uZW50cy9ldmVudC1zZXR0aW5ncy1jb21wb25lbnRzL2V2ZW50LXNldHRpbmdzLW1vZGFsL2V2ZW50LXNldHRpbmdzLW1vZGFsLmNvbXBvbmVudCc7XG5leHBvcnQgdHlwZSB7XG4gIENvbmZpcm1FeGl0TW9kYWxPcHRpb25zLFxuICBDb25maXJtRXhpdE1vZGFsVHlwZSxcbn0gZnJvbSAnLi4vY29tcG9uZW50cy9leGl0LWNvbXBvbmVudHMvY29uZmlybS1leGl0LW1vZGFsL2NvbmZpcm0tZXhpdC1tb2RhbC5jb21wb25lbnQnO1xuZXhwb3J0IHR5cGUge1xuICBNZWRpYVNldHRpbmdzTW9kYWxPcHRpb25zLFxuICBNZWRpYVNldHRpbmdzTW9kYWxUeXBlLFxuICBNZWRpYVNldHRpbmdzTW9kYWxQYXJhbWV0ZXJzLFxufSBmcm9tICcuLi9jb21wb25lbnRzL21lZGlhLXNldHRpbmdzLWNvbXBvbmVudHMvbWVkaWEtc2V0dGluZ3MtbW9kYWwvbWVkaWEtc2V0dGluZ3MtbW9kYWwuY29tcG9uZW50JztcbmV4cG9ydCB0eXBlIHtcbiAgTWVudU1vZGFsT3B0aW9ucyxcbiAgTWVudU1vZGFsVHlwZSxcbn0gZnJvbSAnLi4vY29tcG9uZW50cy9tZW51LWNvbXBvbmVudHMvbWVudS1tb2RhbC9tZW51LW1vZGFsLmNvbXBvbmVudCc7XG5leHBvcnQgdHlwZSB7XG4gIE1lc3NhZ2VzTW9kYWxPcHRpb25zLFxuICBNZXNzYWdlc01vZGFsVHlwZSxcbn0gZnJvbSAnLi4vY29tcG9uZW50cy9tZXNzYWdlLWNvbXBvbmVudHMvbWVzc2FnZXMtbW9kYWwvbWVzc2FnZXMtbW9kYWwuY29tcG9uZW50JztcbmV4cG9ydCB0eXBlIHtcbiAgQ29uZmlybUhlcmVNb2RhbE9wdGlvbnMsXG4gIENvbmZpcm1IZXJlTW9kYWxUeXBlLFxufSBmcm9tICcuLi9jb21wb25lbnRzL21pc2MtY29tcG9uZW50cy9jb25maXJtLWhlcmUtbW9kYWwvY29uZmlybS1oZXJlLW1vZGFsLmNvbXBvbmVudCc7XG5leHBvcnQgdHlwZSB7XG4gIFByZUpvaW5QYWdlT3B0aW9ucyxcbiAgUHJlSm9pblBhZ2VUeXBlLFxuICBQcmVKb2luUGFnZVBhcmFtZXRlcnMsXG59IGZyb20gJy4uL2NvbXBvbmVudHMvbWlzYy1jb21wb25lbnRzL3ByZS1qb2luLXBhZ2UvcHJlLWpvaW4tcGFnZS5jb21wb25lbnQnO1xuZXhwb3J0IHR5cGUge1xuICBTaGFyZUV2ZW50TW9kYWxPcHRpb25zLFxuICBTaGFyZUV2ZW50TW9kYWxUeXBlLFxufSBmcm9tICcuLi9jb21wb25lbnRzL21pc2MtY29tcG9uZW50cy9zaGFyZS1ldmVudC1tb2RhbC9zaGFyZS1ldmVudC1tb2RhbC5jb21wb25lbnQnO1xuZXhwb3J0IHR5cGUge1xuICBXZWxjb21lUGFnZU9wdGlvbnMsXG4gIFdlbGNvbWVQYWdlVHlwZSxcbiAgV2VsY29tZVBhZ2VQYXJhbWV0ZXJzLFxufSBmcm9tICcuLi9jb21wb25lbnRzL21pc2MtY29tcG9uZW50cy93ZWxjb21lLXBhZ2Uvd2VsY29tZS1wYWdlLmNvbXBvbmVudCc7XG5leHBvcnQgdHlwZSB7XG4gIFBhcnRpY2lwYW50c01vZGFsT3B0aW9ucyxcbiAgUGFydGljaXBhbnRzTW9kYWxUeXBlLFxuICBQYXJ0aWNpcGFudHNNb2RhbFBhcmFtZXRlcnMsXG59IGZyb20gJy4uL2NvbXBvbmVudHMvcGFydGljaXBhbnRzLWNvbXBvbmVudHMvcGFydGljaXBhbnRzLW1vZGFsL3BhcnRpY2lwYW50cy1tb2RhbC5jb21wb25lbnQnO1xuZXhwb3J0IHR5cGUge1xuICBQb2xsTW9kYWxPcHRpb25zLFxuICBQb2xsTW9kYWxUeXBlLFxufSBmcm9tICcuLi9jb21wb25lbnRzL3BvbGxzLWNvbXBvbmVudHMvcG9sbC1tb2RhbC9wb2xsLW1vZGFsLmNvbXBvbmVudCc7XG5leHBvcnQgdHlwZSB7XG4gIFJlY29yZGluZ01vZGFsT3B0aW9ucyxcbiAgUmVjb3JkaW5nTW9kYWxUeXBlLFxuICBSZWNvcmRpbmdNb2RhbFBhcmFtZXRlcnMsXG59IGZyb20gJy4uL2NvbXBvbmVudHMvcmVjb3JkaW5nLWNvbXBvbmVudHMvcmVjb3JkaW5nLW1vZGFsL3JlY29yZGluZy1tb2RhbC5jb21wb25lbnQnO1xuZXhwb3J0IHR5cGUge1xuICBSZXF1ZXN0c01vZGFsT3B0aW9ucyxcbiAgUmVxdWVzdHNNb2RhbFR5cGUsXG59IGZyb20gJy4uL2NvbXBvbmVudHMvcmVxdWVzdHMtY29tcG9uZW50cy9yZXF1ZXN0cy1tb2RhbC9yZXF1ZXN0cy1tb2RhbC5jb21wb25lbnQnO1xuZXhwb3J0IHR5cGUge1xuICBTY3JlZW5ib2FyZE9wdGlvbnMsXG4gIFNjcmVlbmJvYXJkVHlwZSxcbiAgU2NyZWVuYm9hcmRQYXJhbWV0ZXJzLFxufSBmcm9tICcuLi9jb21wb25lbnRzL3NjcmVlbmJvYXJkLWNvbXBvbmVudHMvc2NyZWVuYm9hcmQvc2NyZWVuYm9hcmQuY29tcG9uZW50JztcbmV4cG9ydCB0eXBlIHtcbiAgU2NyZWVuYm9hcmRNb2RhbE9wdGlvbnMsXG4gIFNjcmVlbmJvYXJkTW9kYWxUeXBlLFxufSBmcm9tICcuLi9jb21wb25lbnRzL3NjcmVlbmJvYXJkLWNvbXBvbmVudHMvc2NyZWVuYm9hcmQtbW9kYWwvc2NyZWVuYm9hcmQtbW9kYWwuY29tcG9uZW50JztcbmV4cG9ydCB0eXBlIHtcbiAgV2FpdGluZ1Jvb21Nb2RhbE9wdGlvbnMsXG4gIFdhaXRpbmdSb29tTW9kYWxUeXBlLFxuICBXYWl0aW5nUm9vbU1vZGFsUGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vY29tcG9uZW50cy93YWl0aW5nLWNvbXBvbmVudHMvd2FpdGluZy1yb29tLW1vZGFsLmNvbXBvbmVudCc7XG5leHBvcnQgdHlwZSB7XG4gIENvbmZpZ3VyZVdoaXRlYm9hcmRNb2RhbE9wdGlvbnMsXG4gIENvbmZpZ3VyZVdoaXRlYm9hcmRNb2RhbFR5cGUsXG59IGZyb20gJy4uL2NvbXBvbmVudHMvd2hpdGVib2FyZC1jb21wb25lbnRzL2NvbmZpZ3VyZS13aGl0ZWJvYXJkLW1vZGFsL2NvbmZpZ3VyZS13aGl0ZWJvYXJkLW1vZGFsLmNvbXBvbmVudCc7XG5leHBvcnQgdHlwZSB7XG4gIFdoaXRlYm9hcmRPcHRpb25zLFxuICBXaGl0ZWJvYXJkVHlwZSxcbiAgV2hpdGVib2FyZFBhcmFtZXRlcnMsXG4gIFNoYXBlLFxufSBmcm9tICcuLi9jb21wb25lbnRzL3doaXRlYm9hcmQtY29tcG9uZW50cy93aGl0ZWJvYXJkL3doaXRlYm9hcmQuY29tcG9uZW50JztcblxuZXhwb3J0IHR5cGUgeyBDdXN0b21CdXR0b24gfSBmcm9tICcuLi9jb21wb25lbnRzL21lbnUtY29tcG9uZW50cy9jdXN0b20tYnV0dG9ucy9jdXN0b20tYnV0dG9ucy5jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnRpY2lwYW50IHtcbiAgaWQ/OiBzdHJpbmc7XG4gIGF1ZGlvSUQ6IHN0cmluZztcbiAgdmlkZW9JRDogc3RyaW5nO1xuICBTY3JlZW5JRD86IHN0cmluZztcbiAgU2NyZWVuT24/OiBib29sZWFuO1xuICBpc2xldmVsPzogc3RyaW5nO1xuICBpc0FkbWluPzogYm9vbGVhbjtcbiAgbmFtZTogc3RyaW5nO1xuICBtdXRlZD86IGJvb2xlYW47XG4gIGlzQmFubmVkPzogYm9vbGVhbjtcbiAgaXNTdXNwZW5kZWQ/OiBib29sZWFuO1xuICB1c2VCb2FyZD86IGJvb2xlYW47XG4gIGJyZWFrUm9vbT86IG51bWJlciB8IG51bGw7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdHJlYW0ge1xuICBwcm9kdWNlcklkOiBzdHJpbmc7XG4gIG11dGVkPzogYm9vbGVhbjtcbiAgc3RyZWFtPzogTWVkaWFTdHJlYW07XG4gIHNvY2tldF8/OiBTb2NrZXQ7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0IHtcbiAgaWQ6IHN0cmluZztcbiAgaWNvbjogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICB1c2VybmFtZT86IHN0cmluZztcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RSZXNwb25zZSB7XG4gIGlkOiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHVzZXJuYW1lPzogc3RyaW5nO1xuICBhY3Rpb24/OiBzdHJpbmc7XG4gIHR5cGU/OiBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc3BvcnQge1xuICBwcm9kdWNlcklkOiBzdHJpbmc7XG4gIGNvbnN1bWVyOiBDb25zdW1lcjtcbiAgc29ja2V0XzogU29ja2V0O1xuICBzZXJ2ZXJDb25zdW1lclRyYW5zcG9ydElkOiBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY3JlZW5TdGF0ZSB7XG4gIG1haW5TY3JlZW5QZXJzb24/OiBzdHJpbmc7XG4gIG1haW5TY3JlZW5Qcm9kdWNlcklkPzogc3RyaW5nO1xuICBtYWluU2NyZWVuRmlsbGVkOiBib29sZWFuO1xuICBhZG1pbk9uTWFpblNjcmVlbjogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHcmlkU2l6ZXMge1xuICBncmlkV2lkdGg/OiBudW1iZXI7XG4gIGdyaWRIZWlnaHQ/OiBudW1iZXI7XG4gIGFsdEdyaWRXaWR0aD86IG51bWJlcjtcbiAgYWx0R3JpZEhlaWdodD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21wb25lbnRTaXplcyB7XG4gIG1haW5XaWR0aDogbnVtYmVyO1xuICBtYWluSGVpZ2h0OiBudW1iZXI7XG4gIG90aGVyV2lkdGg6IG51bWJlcjtcbiAgb3RoZXJIZWlnaHQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdWRpb0RlY2liZWxzIHtcbiAgbmFtZTogc3RyaW5nO1xuICBhdmVyYWdlTG91ZG5lc3M6IG51bWJlcjtcbn1cblxuZXhwb3J0IHR5cGUgU2hvd0FsZXJ0ID0gKG9wdGlvbnM6IHtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICB0eXBlOiAnc3VjY2VzcycgfCAnZGFuZ2VyJztcbiAgZHVyYXRpb24/OiBudW1iZXI7XG59KSA9PiB2b2lkO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvSG9zdFJlc3BvbnNpYmlsaXR5IHtcbiAgbmFtZTogc3RyaW5nO1xuICB2YWx1ZTogYm9vbGVhbjtcbiAgZGVkaWNhdGVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZpZENvbnMge1xuICB3aWR0aDogbnVtYmVyIHwgeyBpZGVhbD86IG51bWJlcjsgbWF4PzogbnVtYmVyOyBtaW4/OiBudW1iZXIgfTtcbiAgaGVpZ2h0OiBudW1iZXIgfCB7IGlkZWFsPzogbnVtYmVyOyBtYXg/OiBudW1iZXI7IG1pbj86IG51bWJlciB9O1xufVxuXG5leHBvcnQgdHlwZSBTZXR0aW5ncyA9IFtzdHJpbmcsIHN0cmluZywgc3RyaW5nLCBzdHJpbmddO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2Uge1xuICBzZW5kZXI6IHN0cmluZztcbiAgcmVjZWl2ZXJzOiBzdHJpbmdbXTtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICB0aW1lc3RhbXA6IHN0cmluZztcbiAgZ3JvdXA6IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIE1haW5TcGVjcyA9IHtcbiAgbWVkaWFPcHRpb25zOiBzdHJpbmc7XG4gIGF1ZGlvT3B0aW9uczogc3RyaW5nO1xuICB2aWRlb09wdGlvbnM6IHN0cmluZztcbiAgdmlkZW9UeXBlOiBzdHJpbmc7XG4gIHZpZGVvT3B0aW1pemVkOiBib29sZWFuO1xuICByZWNvcmRpbmdEaXNwbGF5VHlwZTogJ3ZpZGVvJyB8ICdtZWRpYScgfCAnYWxsJztcbiAgYWRkSExTOiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgRGlzcFNwZWNzID0ge1xuICBuYW1lVGFnczogYm9vbGVhbjtcbiAgYmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG4gIG5hbWVUYWdzQ29sb3I6IHN0cmluZztcbiAgb3JpZW50YXRpb25WaWRlbzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVGV4dFNwZWNzID0ge1xuICBhZGRUZXh0OiBib29sZWFuO1xuICBjdXN0b21UZXh0Pzogc3RyaW5nO1xuICBjdXN0b21UZXh0UG9zaXRpb24/OiBzdHJpbmc7XG4gIGN1c3RvbVRleHRDb2xvcj86IHN0cmluZztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclJlY29yZGluZ1BhcmFtcyB7XG4gIG1haW5TcGVjczogTWFpblNwZWNzO1xuICBkaXNwU3BlY3M6IERpc3BTcGVjcztcbiAgdGV4dFNwZWNzPzogVGV4dFNwZWNzO1xufVxuXG5leHBvcnQgdHlwZSBBbHREb21haW5zID0ge1xuICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBSZXF1ZXN0UGVybWlzc2lvbkF1ZGlvVHlwZSA9ICgpID0+IFByb21pc2U8c3RyaW5nPjtcbmV4cG9ydCB0eXBlIFJlcXVlc3RQZXJtaXNzaW9uQ2FtZXJhVHlwZSA9ICgpID0+IFByb21pc2U8c3RyaW5nPjtcblxuZXhwb3J0IHR5cGUgQ29udHJvbHNQb3NpdGlvbiA9ICd0b3BMZWZ0JyB8ICd0b3BSaWdodCcgfCAnYm90dG9tTGVmdCcgfCAnYm90dG9tUmlnaHQnO1xuZXhwb3J0IHR5cGUgSW5mb1Bvc2l0aW9uID0gJ3RvcExlZnQnIHwgJ3RvcFJpZ2h0JyB8ICdib3R0b21MZWZ0JyB8ICdib3R0b21SaWdodCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9sbCB7XG4gIGlkOiBzdHJpbmc7XG4gIHF1ZXN0aW9uOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgb3B0aW9uczogc3RyaW5nW107XG4gIHZvdGVzOiBudW1iZXJbXTtcbiAgc3RhdHVzOiBzdHJpbmc7XG4gIHZvdGVycz86IFJlY29yZDxzdHJpbmcsIG51bWJlcj47XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXYWl0aW5nUm9vbVBhcnRpY2lwYW50IHtcbiAgbmFtZTogc3RyaW5nO1xuICBpZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vZGFsUG9zaXRpb25TdHlsZSB7XG4gIGp1c3RpZnlDb250ZW50OiBzdHJpbmc7XG4gIGFsaWduSXRlbXM6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPdmVybGF5UG9zaXRpb25TdHlsZSB7XG4gIHRvcD86IG51bWJlcjtcbiAgbGVmdD86IG51bWJlcjtcbiAgcmlnaHQ/OiBudW1iZXI7XG4gIGJvdHRvbT86IG51bWJlcjtcbn1cblxuZXhwb3J0IHR5cGUgRXZlbnRUeXBlID0gJ2NvbmZlcmVuY2UnIHwgJ3dlYmluYXInIHwgJ2NoYXQnIHwgJ2Jyb2FkY2FzdCcgfCAnbm9uZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9sbFVwZGF0ZWREYXRhIHtcbiAgcG9sbHM/OiBQb2xsW107XG4gIHBvbGw6IFBvbGw7XG4gIHN0YXR1czogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJyZWFrb3V0UGFydGljaXBhbnQge1xuICBuYW1lOiBzdHJpbmc7XG4gIGJyZWFrUm9vbT86IG51bWJlciB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnJlYWtvdXRSb29tVXBkYXRlZERhdGEge1xuICBmb3JIb3N0PzogYm9vbGVhbjtcbiAgbmV3Um9vbT86IG51bWJlcjtcbiAgbWVtYmVycz86IFBhcnRpY2lwYW50W107XG4gIGJyZWFrb3V0Um9vbXM/OiBCcmVha291dFBhcnRpY2lwYW50W11bXTtcbiAgc3RhdHVzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnN1bWVTb2NrZXQge1xuICBbaXA6IHN0cmluZ106IFNvY2tldDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXaGl0ZWJvYXJkVXNlciB7XG4gIG5hbWU6IHN0cmluZztcbiAgdXNlQm9hcmQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcGVQYXlsb2FkIHtcbiAgdHlwZTogc3RyaW5nO1xuICB4MTogbnVtYmVyO1xuICB5MTogbnVtYmVyO1xuICB4MjogbnVtYmVyO1xuICB5MjogbnVtYmVyO1xuICBjb2xvcjogc3RyaW5nO1xuICB0aGlja25lc3M6IG51bWJlcjtcbiAgbGluZVR5cGU6IHN0cmluZztcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXBlcyB7XG4gIGFjdGlvbjogc3RyaW5nO1xuICBwYXlsb2FkOiBTaGFwZVBheWxvYWQ7XG59XG5leHBvcnQgaW50ZXJmYWNlIFdoaXRlYm9hcmREYXRhIHtcbiAgc2hhcGVzOiBTaGFwZXNbXTtcbiAgcmVkb1N0YWNrOiBTaGFwZXNbXTtcbiAgdW5kb1N0YWNrOiBTaGFwZXNbXTtcbiAgdXNlSW1hZ2VCYWNrZ3JvdW5kOiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBTZWVkRGF0YSA9IHtcbiAgbWVtYmVyPzogc3RyaW5nO1xuICBob3N0Pzogc3RyaW5nO1xuICBldmVudFR5cGU/OiBFdmVudFR5cGU7XG4gIHBhcnRpY2lwYW50cz86IFBhcnRpY2lwYW50W107XG4gIG1lc3NhZ2VzPzogTWVzc2FnZVtdO1xuICBwb2xscz86IFBvbGxbXTtcbiAgYnJlYWtvdXRSb29tcz86IEJyZWFrb3V0UGFydGljaXBhbnRbXVtdO1xuICByZXF1ZXN0cz86IFJlcXVlc3RbXTtcbiAgd2FpdGluZ0xpc3Q/OiBXYWl0aW5nUm9vbVBhcnRpY2lwYW50W107XG4gIHdoaXRlYm9hcmRVc2Vycz86IFdoaXRlYm9hcmRVc2VyW107XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIE1lZXRpbmdSb29tUGFyYW1zIHtcbiAgaXRlbVBhZ2VMaW1pdDogbnVtYmVyOyAvLyBMaW1pdCBmb3IgaXRlbXMgcGVyIHBhZ2VcbiAgbWVkaWFUeXBlOiAnYXVkaW8nIHwgJ3ZpZGVvJzsgLy8gVHlwZSBvZiBtZWRpYSwgY291bGQgYmUgYXVkaW8gb3IgdmlkZW9cbiAgYWRkQ29Ib3N0OiBib29sZWFuOyAvLyBXaGV0aGVyIGNvLWhvc3RzIGNhbiBiZSBhZGRlZFxuICB0YXJnZXRPcmllbnRhdGlvbjogJ2xhbmRzY2FwZScgfCAnbmV1dHJhbCcgfCAncG9ydHJhaXQnOyAvLyBUYXJnZXQgb3JpZW50YXRpb24sIGxhbmRzY2FwZSwgbmV1dHJhbCwgb3IgcG9ydHJhaXRcbiAgdGFyZ2V0T3JpZW50YXRpb25Ib3N0OiAnbGFuZHNjYXBlJyB8ICduZXV0cmFsJyB8ICdwb3J0cmFpdCc7IC8vIEhvc3QncyB0YXJnZXQgb3JpZW50YXRpb24sIGxhbmRzY2FwZSwgbmV1dHJhbCwgb3IgcG9ydHJhaXRcbiAgdGFyZ2V0UmVzb2x1dGlvbjogJ3FoZCcgfCAnZmhkJyB8ICdoZCcgfCAnc2QnIHwgJ1FuSEQnOyAvLyBUYXJnZXQgcmVzb2x1dGlvbiBmb3IgcGFydGljaXBhbnRzXG4gIHRhcmdldFJlc29sdXRpb25Ib3N0OiAncWhkJyB8ICdmaGQnIHwgJ2hkJyB8ICdzZCcgfCAnUW5IRCc7IC8vIFRhcmdldCByZXNvbHV0aW9uIGZvciBob3N0ICB0eXBlOiAnY2hhdCcgfCAnY29uZmVyZW5jZScgfCAnd2ViaW5hcicgfCAnYnJvYWRjYXN0JzsgLy8gUm9vbSB0eXBlOiBjaGF0LCBjb25mZXJlbmNlLCB3ZWJpbmFyLCBvciBicm9hZGNhc3RcbiAgdHlwZTogRXZlbnRUeXBlOyAvLyBSb29tIHR5cGU6IGNoYXQsIGNvbmZlcmVuY2UsIHdlYmluYXIsIG9yIGJyb2FkY2FzdFxuICBhdWRpb1NldHRpbmc6ICdhbGxvdycgfCAnYXBwcm92YWwnIHwgJ2Rpc2FsbG93JzsgLy8gQXVkaW8gc2V0dGluZzogYWxsb3csIGFwcHJvdmFsLCBvciBkaXNhbGxvd1xuICB2aWRlb1NldHRpbmc6ICdhbGxvdycgfCAnYXBwcm92YWwnIHwgJ2Rpc2FsbG93JzsgLy8gVmlkZW8gc2V0dGluZzogYWxsb3csIGFwcHJvdmFsLCBvciBkaXNhbGxvd1xuICBzY3JlZW5zaGFyZVNldHRpbmc6ICdhbGxvdycgfCAnYXBwcm92YWwnIHwgJ2Rpc2FsbG93JzsgLy8gU2NyZWVuc2hhcmUgc2V0dGluZzogYWxsb3csIGFwcHJvdmFsLCBvciBkaXNhbGxvd1xuICBjaGF0U2V0dGluZzogJ2FsbG93JyB8ICdkaXNhbGxvdyc7IC8vIENoYXQgc2V0dGluZzogYWxsb3cgb3IgZGlzYWxsb3dcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWNvcmRpbmdQYXJhbXMge1xuICByZWNvcmRpbmdBdWRpb1BhdXNlc0xpbWl0OiBudW1iZXI7IC8vIExpbWl0IG9uIGF1ZGlvIHJlY29yZGluZyBwYXVzZXNcbiAgcmVjb3JkaW5nQXVkaW9TdXBwb3J0OiBib29sZWFuOyAvLyBXaGV0aGVyIGF1ZGlvIHJlY29yZGluZyBpcyBzdXBwb3J0ZWRcbiAgcmVjb3JkaW5nQXVkaW9QZW9wbGVMaW1pdDogbnVtYmVyOyAvLyBNYXhpbXVtIG51bWJlciBvZiBwZW9wbGUgZm9yIGF1ZGlvIHJlY29yZGluZ1xuICByZWNvcmRpbmdBdWRpb1BhcnRpY2lwYW50c1RpbWVMaW1pdDogbnVtYmVyOyAvLyBUaW1lIGxpbWl0IGZvciBhdWRpbyBwYXJ0aWNpcGFudHMgaW4gcmVjb3JkaW5nXG5cbiAgcmVjb3JkaW5nVmlkZW9QYXVzZXNMaW1pdDogbnVtYmVyOyAvLyBMaW1pdCBvbiB2aWRlbyByZWNvcmRpbmcgcGF1c2VzXG4gIHJlY29yZGluZ1ZpZGVvU3VwcG9ydDogYm9vbGVhbjsgLy8gV2hldGhlciB2aWRlbyByZWNvcmRpbmcgaXMgc3VwcG9ydGVkXG4gIHJlY29yZGluZ1ZpZGVvUGVvcGxlTGltaXQ6IG51bWJlcjsgLy8gTWF4aW11bSBudW1iZXIgb2YgcGVvcGxlIGZvciB2aWRlbyByZWNvcmRpbmdcbiAgcmVjb3JkaW5nVmlkZW9QYXJ0aWNpcGFudHNUaW1lTGltaXQ6IG51bWJlcjsgLy8gVGltZSBsaW1pdCBmb3IgdmlkZW8gcGFydGljaXBhbnRzIGluIHJlY29yZGluZ1xuXG4gIHJlY29yZGluZ0FsbFBhcnRpY2lwYW50c1N1cHBvcnQ6IGJvb2xlYW47IC8vIFdoZXRoZXIgcmVjb3JkaW5nIGFsbCBwYXJ0aWNpcGFudHMgaXMgc3VwcG9ydGVkXG4gIHJlY29yZGluZ1ZpZGVvUGFydGljaXBhbnRzU3VwcG9ydDogYm9vbGVhbjsgLy8gV2hldGhlciB2aWRlbyByZWNvcmRpbmcgZm9yIHBhcnRpY2lwYW50cyBpcyBzdXBwb3J0ZWRcbiAgcmVjb3JkaW5nQWxsUGFydGljaXBhbnRzRnVsbFJvb21TdXBwb3J0OiBib29sZWFuOyAvLyBTdXBwb3J0IGZvciByZWNvcmRpbmcgdGhlIGVudGlyZSByb29tIGZvciBhbGwgcGFydGljaXBhbnRzXG4gIHJlY29yZGluZ1ZpZGVvUGFydGljaXBhbnRzRnVsbFJvb21TdXBwb3J0OiBib29sZWFuOyAvLyBTdXBwb3J0IGZvciByZWNvcmRpbmcgdGhlIGZ1bGwgcm9vbSBmb3IgdmlkZW8gcGFydGljaXBhbnRzXG5cbiAgcmVjb3JkaW5nUHJlZmVycmVkT3JpZW50YXRpb246ICdsYW5kc2NhcGUnIHwgJ3BvcnRyYWl0JzsgLy8gUHJlZmVycmVkIHJlY29yZGluZyBvcmllbnRhdGlvblxuICByZWNvcmRpbmdTdXBwb3J0Rm9yT3RoZXJPcmllbnRhdGlvbjogYm9vbGVhbjsgLy8gU3VwcG9ydCBmb3Igb3JpZW50YXRpb25zIG90aGVyIHRoYW4gdGhlIHByZWZlcnJlZCBvbmVcbiAgcmVjb3JkaW5nTXVsdGlGb3JtYXRzU3VwcG9ydDogYm9vbGVhbjsgLy8gU3VwcG9ydCBmb3IgbXVsdGlwbGUgcmVjb3JkaW5nIGZvcm1hdHNcbiAgcmVjb3JkaW5nSExTU3VwcG9ydDogYm9vbGVhbjsgLy8gV2hldGhlciBITFMgcmVjb3JkaW5nIGlzIHN1cHBvcnRlZFxuXG4gIHJlY29yZGluZ0F1ZGlvUGF1c2VzQ291bnQ/OiBudW1iZXI7IC8vIE51bWJlciBvZiBhdWRpbyByZWNvcmRpbmcgcGF1c2VzXG4gIHJlY29yZGluZ1ZpZGVvUGF1c2VzQ291bnQ/OiBudW1iZXI7IC8vIE51bWJlciBvZiB2aWRlbyByZWNvcmRpbmcgcGF1c2VzXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlUm9vbU9wdGlvbnMge1xuICBhY3Rpb246ICdjcmVhdGUnIHwgJ2pvaW4nOyAvLyBFaXRoZXIgJ2NyZWF0ZScgb3IgJ2pvaW4nIGJhc2VkIG9uIHRoZSByZXF1aXJlbWVudFxuICBtZWV0aW5nSUQ6IHN0cmluZzsgLy8gVGhlIG1lZXRpbmcgSUQsIGluaXRpYWxseSBhbiBlbXB0eSBzdHJpbmdcbiAgZHVyYXRpb246IG51bWJlcjsgLy8gRHVyYXRpb24gb2YgdGhlIG1lZXRpbmcgaW4gbWludXRlc1xuICBjYXBhY2l0eTogbnVtYmVyOyAvLyBNYXggbnVtYmVyIG9mIHBhcnRpY2lwYW50cyBhbGxvd2VkXG4gIHVzZXJOYW1lOiBzdHJpbmc7IC8vIFVzZXJuYW1lIG9mIHRoZSByb29tIGhvc3RcbiAgc2NoZWR1bGVkRGF0ZTogbnVtYmVyOyAvLyBVbml4IHRpbWVzdGFtcCAoaW4gbWlsbGlzZWNvbmRzKSBmb3IgdGhlIHNjaGVkdWxlZCBkYXRlXG4gIHNlY3VyZUNvZGU6IHN0cmluZzsgLy8gU2VjdXJlIGNvZGUgZm9yIHRoZSByb29tIGhvc3RcbiAgZXZlbnRUeXBlOiAnY29uZmVyZW5jZScgfCAnd2ViaW5hcicgfCAnY2hhdCcgfCAnYnJvYWRjYXN0JzsgLy8gVHlwZSBvZiBldmVudFxuICByZWNvcmRPbmx5OiBib29sZWFuOyAvLyBXaGV0aGVyIHRoZSByb29tIGlzIGZvciByZWNvcmRpbmcgb25seVxuICBldmVudFN0YXR1czogJ2FjdGl2ZScgfCAnaW5hY3RpdmUnOyAvLyBTdGF0dXMgb2YgdGhlIGV2ZW50XG4gIHN0YXJ0SW5kZXg6IG51bWJlcjsgLy8gU3RhcnQgaW5kZXggZm9yIHBhZ2luYXRpb24gb3IgZGF0YSBmZXRjaFxuICBwYWdlU2l6ZTogbnVtYmVyOyAvLyBOdW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2VcbiAgc2FmZVJvb206IGJvb2xlYW47IC8vIFdoZXRoZXIgdGhlIHJvb20gaXMgYSBzYWZlIHJvb21cbiAgYXV0b1N0YXJ0U2FmZVJvb206IGJvb2xlYW47IC8vIEF1dG9tYXRpY2FsbHkgc3RhcnQgdGhlIHNhZmUgcm9vbSBmZWF0dXJlXG4gIHNhZmVSb29tQWN0aW9uOiAnd2FybicgfCAna2ljaycgfCAnYmFuJzsgLy8gQWN0aW9uIGZvciB0aGUgc2FmZSByb29tXG4gIGRhdGFCdWZmZXI6IGJvb2xlYW47IC8vIFdoZXRoZXIgdG8gcmV0dXJuIGRhdGEgYnVmZmVyXG4gIGJ1ZmZlclR5cGU6ICdpbWFnZXMnIHwgJ2F1ZGlvJyB8ICdhbGwnOyAvLyBUeXBlIG9mIGJ1ZmZlciBkYXRhXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzcG9uc2VKb2luUm9vbSB7XG4gIHJ0cENhcGFiaWxpdGllcz86IFJ0cENhcGFiaWxpdGllcyB8IG51bGw7IC8vIE9iamVjdCBjb250YWluaW5nIHRoZSBSVFAgY2FwYWJpbGl0aWVzXG4gIHN1Y2Nlc3M6IGJvb2xlYW47IC8vIEluZGljYXRlcyB3aGV0aGVyIHRoZSBvcGVyYXRpb24gKGpvaW5pbmcgdGhlIHJvb20pIHdhcyBzdWNjZXNzZnVsLlxuICByb29tUmVjdklQczogc3RyaW5nW107IC8vIEFycmF5IG9mIHN0cmluZ3MgY29udGFpbmluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZG9tYWlucyB0aGF0IG11c3QgYmUgY29ubmVjdGVkIHRvIGluIG9yZGVyIHRvIHJlY2VpdmUgbWVkaWEuXG4gIG1lZXRpbmdSb29tUGFyYW1zOiBNZWV0aW5nUm9vbVBhcmFtczsgLy8gT2JqZWN0IGNvbnRhaW5pbmcgcGFyYW1ldGVycyByZWxhdGVkIHRvIHRoZSBtZWV0aW5nIHJvb20uXG4gIHJlY29yZGluZ1BhcmFtczogUmVjb3JkaW5nUGFyYW1zOyAvLyBPYmplY3QgY29udGFpbmluZyBwYXJhbWV0ZXJzIHJlbGF0ZWQgdG8gcmVjb3JkaW5nLlxuICBzZWN1cmVDb2RlOiBzdHJpbmc7IC8vIFNlY3VyZSBjb2RlIChob3N0IHBhc3N3b3JkKSBhc3NvY2lhdGVkIHdpdGggdGhlIGhvc3Qgb2YgdGhlIHJvb20uXG4gIHJlY29yZE9ubHk6IGJvb2xlYW47IC8vIEluZGljYXRlcyB3aGV0aGVyIHRoZSByb29tIGlzIGZvciByZWNvcmRpbmcgb25seS5cbiAgaXNIb3N0OiBib29sZWFuOyAvLyBJbmRpY2F0ZXMgd2hldGhlciB0aGUgdXNlciBqb2luaW5nIHRoZSByb29tIGlzIHRoZSBob3N0LlxuICBzYWZlUm9vbTogYm9vbGVhbjsgLy8gSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHJvb20gaXMgYSBzYWZlIHJvb20uXG4gIGF1dG9TdGFydFNhZmVSb29tOiBib29sZWFuOyAvLyBJbmRpY2F0ZXMgd2hldGhlciB0aGUgc2FmZSByb29tIHdpbGwgYXV0b21hdGljYWxseSBzdGFydC5cbiAgc2FmZVJvb21TdGFydGVkOiBib29sZWFuOyAvLyBJbmRpY2F0ZXMgd2hldGhlciB0aGUgc2FmZSByb29tIGhhcyBzdGFydGVkLlxuICBzYWZlUm9vbUVuZGVkOiBib29sZWFuOyAvLyBJbmRpY2F0ZXMgd2hldGhlciB0aGUgc2FmZSByb29tIGhhcyBlbmRlZC5cbiAgcmVhc29uPzogc3RyaW5nOyAvLyBSZWFzb24gZm9yIHRoZSBzdWNjZXNzIG9yIGZhaWx1cmUgb2YgdGhlIG9wZXJhdGlvbi5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBBbGxNZW1iZXJzRGF0YSB7XG4gIG1lbWJlcnM6IFBhcnRpY2lwYW50W107IC8vIEFycmF5IG9mIG9iamVjdHMgY29udGFpbmluZyBpbmZvcm1hdGlvbiBhYm91dCBhbGwgdGhlIG1lbWJlcnMgaW4gdGhlIHJvb20uXG4gIHJlcXVlc3RzOiBSZXF1ZXN0W107IC8vIEFycmF5IG9mIG9iamVjdHMgY29udGFpbmluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcmVxdWVzdHMuXG4gIGNvSG9zdD86IHN0cmluZzsgLy8gVGhlIGNvLWhvc3QgaW5mb3JtYXRpb24uXG4gIGNvSG9zdFJlc3BvbnNpYmlsaXRpZXM6IENvSG9zdFJlc3BvbnNpYmlsaXR5W107IC8vIEFycmF5IG9mIG9iamVjdHMgY29udGFpbmluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY28taG9zdCByZXNwb25zaWJpbGl0aWVzLlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFsbE1lbWJlcnNSZXN0RGF0YSB7XG4gIG1lbWJlcnM6IFBhcnRpY2lwYW50W107IC8vIEFycmF5IG9mIG9iamVjdHMgY29udGFpbmluZyBpbmZvcm1hdGlvbiBhYm91dCBhbGwgdGhlIG1lbWJlcnMgaW4gdGhlIHJvb20uXG4gIHNldHRpbmdzOiBTZXR0aW5nczsgLy8gQXJyYXkgb2Ygc3RyaW5ncyBjb250YWluaW5nIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzZXR0aW5ncy5cbiAgY29Ib3N0Pzogc3RyaW5nOyAvLyBUaGUgY28taG9zdCBpbmZvcm1hdGlvbi5cbiAgY29Ib3N0UmVzcG9uc2liaWxpdGllczogQ29Ib3N0UmVzcG9uc2liaWxpdHlbXTsgLy8gQXJyYXkgb2Ygb2JqZWN0cyBjb250YWluaW5nIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjby1ob3N0IHJlc3BvbnNpYmlsaXRpZXMuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlcldhaXRpbmdEYXRhIHtcbiAgbmFtZTogc3RyaW5nOyAvLyBOYW1lIG9mIHRoZSB1c2VyIHdhaXRpbmcgdG8gam9pbiB0aGUgcm9vbS5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBBbGxXYWl0aW5nUm9vbU1lbWJlcnNEYXRhIHtcbiAgd2FpdGluZ1BhcnRpY2lwYW50cz86IFdhaXRpbmdSb29tUGFydGljaXBhbnRbXTsgLy8gQXJyYXkgb2Ygb2JqZWN0cyBjb250YWluaW5nIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwYXJ0aWNpcGFudHMgd2FpdGluZyB0byBqb2luIHRoZSByb29tLlxuICB3YWl0aW5nUGFydGljaXBhbnRzcz86IFdhaXRpbmdSb29tUGFydGljaXBhbnRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYW5EYXRhIHtcbiAgbmFtZTogc3RyaW5nOyAvLyBOYW1lIG9mIHRoZSB1c2VyIHRvIGJhbi5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVkQ29Ib3N0RGF0YSB7XG4gIGNvSG9zdDogc3RyaW5nOyAvLyBUaGUgY28taG9zdCBpbmZvcm1hdGlvbi5cbiAgY29Ib3N0UmVzcG9uc2liaWxpdGllczogQ29Ib3N0UmVzcG9uc2liaWxpdHlbXTsgLy8gQXJyYXkgb2Ygb2JqZWN0cyBjb250YWluaW5nIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjby1ob3N0IHJlc3BvbnNpYmlsaXRpZXMuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFydGljaXBhbnRSZXF1ZXN0ZWREYXRhIHtcbiAgdXNlclJlcXVlc3Q6IFJlcXVlc3Q7IC8vIE9iamVjdCBjb250YWluaW5nIGluZm9ybWF0aW9uIGFib3V0IHRoZSB1c2VyIHJlcXVlc3QuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NyZWVuUHJvZHVjZXJJZERhdGEge1xuICBwcm9kdWNlcklkOiBzdHJpbmc7IC8vIFRoZSBwcm9kdWNlciBJRCBvZiB0aGUgc2NyZWVuLlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZU1lZGlhU2V0dGluZ3NEYXRhIHtcbiAgc2V0dGluZ3M6IFNldHRpbmdzOyAvLyBBcnJheSBvZiBzdHJpbmdzIGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNldHRpbmdzLlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y2VyTWVkaWFQYXVzZWREYXRhIHtcbiAgcHJvZHVjZXJJZDogc3RyaW5nOyAvLyBUaGUgcHJvZHVjZXIgSUQgb2YgdGhlIG1lZGlhIHRoYXQgd2FzIHBhdXNlZC5cbiAga2luZDogJ2F1ZGlvJztcbiAgbmFtZTogc3RyaW5nOyAvLyBUaGUgbmFtZSBvZiB0aGUgbWVkaWEgdGhhdCB3YXMgcGF1c2VkLlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y2VyTWVkaWFSZXN1bWVkRGF0YSB7XG4gIGtpbmQ6ICdhdWRpbyc7XG4gIG5hbWU6IHN0cmluZzsgLy8gVGhlIG5hbWUgb2YgdGhlIG1lZGlhIHRoYXQgd2FzIHJlc3VtZWQuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjZXJNZWRpYUNsb3NlZERhdGEge1xuICBwcm9kdWNlcklkOiBzdHJpbmc7IC8vIFRoZSBwcm9kdWNlciBJRCBvZiB0aGUgbWVkaWEgdGhhdCB3YXMgc3RvcHBlZC5cbiAga2luZDogJ2F1ZGlvJyB8ICd2aWRlbycgfCAnc2NyZWVuc2hhcmUnO1xuICBuYW1lOiBzdHJpbmc7IC8vIFRoZSBuYW1lIG9mIHRoZSBtZWRpYSB0aGF0IHdhcyBzdG9wcGVkLlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRyb2xNZWRpYUhvc3REYXRhIHtcbiAgdHlwZTogJ2FsbCcgfCAnYXVkaW8nIHwgJ3ZpZGVvJyB8ICdzY3JlZW5zaGFyZSc7IC8vIFRoZSB0eXBlIG9mIG1lZGlhIHRvIGNvbnRyb2wuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjZWl2ZU1lc3NhZ2VEYXRhIHtcbiAgbWVzc2FnZTogTWVzc2FnZTsgLy8gT2JqZWN0IGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gYWJvdXQgdGhlIG1lc3NhZ2UuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVldGluZ1RpbWVSZW1haW5pbmdEYXRhIHtcbiAgdGltZVJlbWFpbmluZzogbnVtYmVyOyAvLyBUaGUgdGltZSByZW1haW5pbmcgZm9yIHRoZSBtZWV0aW5nLlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1lZXRpbmdTdGlsbFRoZXJlRGF0YSB7XG4gIHRpbWVSZW1haW5pbmc6IG51bWJlcjsgLy8gVGhlIHRpbWUgcmVtYWluaW5nIGZvciB0aGUgbWVldGluZy5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVDb25zdW1pbmdEb21haW5zRGF0YSB7XG4gIGRvbWFpbnM6IHN0cmluZ1tdOyAvLyBBcnJheSBvZiBzdHJpbmdzIGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRvbWFpbnMgdG8gY29uc3VtZSBtZWRpYSBmcm9tLlxuICBhbHRfZG9tYWluczogQWx0RG9tYWluczsgLy8gT2JqZWN0IGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGFsdGVybmF0aXZlIGRvbWFpbnMgdG8gY29uc3VtZSBtZWRpYSBmcm9tLlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlY29yZGluZ05vdGljZURhdGEge1xuICBzdGF0ZTogc3RyaW5nOyAvLyBUaGUgc3RhdGUgb2YgdGhlIHJlY29yZGluZy5cbiAgdXNlclJlY29yZGluZ1BhcmFtOiBVc2VyUmVjb3JkaW5nUGFyYW1zOyAvLyBPYmplY3QgY29udGFpbmluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdXNlciByZWNvcmRpbmcgcGFyYW1ldGVycy5cbiAgcGF1c2VDb3VudDogbnVtYmVyOyAvLyBUaGUgbnVtYmVyIG9mIHRpbWVzIHRoZSByZWNvcmRpbmcgd2FzIHBhdXNlZC5cbiAgdGltZURvbmU6IG51bWJlcjsgLy8gVGhlIHRpbWUgdGhlIHJlY29yZGluZyB3YXMgcGF1c2VkLlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRpbWVMZWZ0UmVjb3JkaW5nRGF0YSB7XG4gIHRpbWVMZWZ0OiBudW1iZXI7IC8vIFRoZSB0aW1lIGxlZnQgZm9yIHJlY29yZGluZy5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdG9wcGVkUmVjb3JkaW5nRGF0YSB7XG4gIHN0YXRlOiBzdHJpbmc7IC8vIFRoZSBzdGF0ZSBvZiB0aGUgcmVjb3JkaW5nLlxuICByZWFzb24/OiBzdHJpbmc7IC8vIFRoZSByZWFzb24gZm9yIHN0b3BwaW5nIHRoZSByZWNvcmRpbmcuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSG9zdFJlcXVlc3RSZXNwb25zZURhdGEge1xuICByZXF1ZXN0UmVzcG9uc2U6IFJlcXVlc3RSZXNwb25zZTsgLy8gT2JqZWN0IGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHJlcXVlc3QgcmVzcG9uc2UuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2FmZVJvb21Ob3RpY2VEYXRhIHtcbiAgc3RhdGU6IHN0cmluZzsgLy8gVGhlIHN0YXRlIG9mIHRoZSBzYWZlIHJvb20uXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVW5TYWZlRGF0YSB7XG4gIHRpbWU6IG51bWJlcjsgLy8gVGhlIHRpbWUgdGhlIHJvb20gd2FzIHVuc2FmZS5cbiAgZXZpZGVuY2U6IEltYWdlRGF0YTsgLy8gVGhlIGV2aWRlbmNlIGZvciB0aGUgcm9vbSBiZWluZyB1bnNhZmUuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVW5zYWZlQWxlcnREYXRhIHtcbiAgbmFtZTogc3RyaW5nOyAvLyBUaGUgbmFtZSBvZiB0aGUgdXNlciB3aG8gdHJpZ2dlcmVkIHRoZSB1bnNhZmUgYWxlcnQuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YUJ1ZmZlck5vdGljZSB7XG4gIHN0YXRlOiBzdHJpbmc7IC8vIFRoZSBzdGF0ZSBvZiB0aGUgZGF0YSBidWZmZXIuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXVkaW9EYXRhIHtcbiAgYXVkaW9CdWZmZXI6IEF1ZGlvQnVmZmVyOyAvLyBUaGUgYXVkaW8gYnVmZmVyLlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlRGF0YSB7XG4gIGpwZWdCdWZmZXI6IEltYWdlRGF0YTsgLy8gVGhlIEpQRUcgYnVmZmVyLlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdoaXRlYm9hcmRVcGRhdGVkRGF0YSB7XG4gIHN0YXR1czogJ3N0YXJ0ZWQnIHwgJ2VuZGVkJzsgLy8gVGhlIHN0YXR1cyBvZiB0aGUgd2hpdGVib2FyZC5cbiAgd2hpdGVib2FyZFVzZXJzOiBXaGl0ZWJvYXJkVXNlcltdOyAvLyBBcnJheSBvZiBvYmplY3RzIGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHdoaXRlYm9hcmQgdXNlcnMuXG4gIG1lbWJlcnM6IFBhcnRpY2lwYW50W107IC8vIEFycmF5IG9mIG9iamVjdHMgY29udGFpbmluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbWVtYmVycy5cbiAgd2hpdGVib2FyZERhdGE6IFdoaXRlYm9hcmREYXRhOyAvLyBPYmplY3QgY29udGFpbmluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgd2hpdGVib2FyZCBkYXRhLlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdoaXRlYm9hcmRBY3Rpb25EYXRhIHtcbiAgYWN0aW9uOiBzdHJpbmc7IC8vIFRoZSBhY3Rpb24gdG8gYmUgcGVyZm9ybWVkIG9uIHRoZSB3aGl0ZWJvYXJkLlxuICBwYXlsb2FkOiBTaGFwZVBheWxvYWQ7IC8vIE9iamVjdCBjb250YWluaW5nIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzaGFwZSBwYXlsb2FkLlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbU1lZGlhQ29tcG9uZW50IHtcbiAgY29tcG9uZW50OiBDb21wb25lbnRUeXBlPGFueT47IC8vIFRoZSBjdXN0b20gbWVkaWEgY29tcG9uZW50LlxuICBpbnB1dHM6IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmljQnV0dG9uIHtcbiAgbmFtZT86IHN0cmluZztcbiAgaWNvbj86IEljb25EZWZpbml0aW9uO1xuICBhbHRlcm5hdGVJY29uPzogSWNvbkRlZmluaXRpb247XG4gIG9uUHJlc3M/OiAoKSA9PiB2b2lkO1xuICBjb2xvcj86IHN0cmluZztcbiAgYmFja2dyb3VuZENvbG9yPzoge1xuICAgIGRlZmF1bHQ/OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFpbkJ1dHRvbkFsdCBleHRlbmRzIEdlbmVyaWNCdXR0b24ge1xuICBhY3RpdmU/OiBib29sZWFuIHwgKCgpID0+IGJvb2xlYW4pO1xuICBjdXN0b21Db21wb25lbnQ/OiBIVE1MRWxlbWVudCB8IEN1c3RvbUNvbXBvbmVudCB8ICgoKSA9PiBIVE1MRWxlbWVudCB8IEN1c3RvbUNvbXBvbmVudCk7XG4gIGljb25Db21wb25lbnQ/OiBIVE1MRWxlbWVudCB8IEN1c3RvbUNvbXBvbmVudCB8ICgoKSA9PiBIVE1MRWxlbWVudCB8IEN1c3RvbUNvbXBvbmVudCk7XG4gIGFsdGVybmF0ZUljb25Db21wb25lbnQ/OiBIVE1MRWxlbWVudCB8IEN1c3RvbUNvbXBvbmVudCB8ICgoKSA9PiBIVE1MRWxlbWVudCB8IEN1c3RvbUNvbXBvbmVudCk7XG4gIGRpc2FibGVkPzogYm9vbGVhbiB8ICgoKSA9PiBib29sZWFuKTtcbiAgc2hvdz86IGJvb2xlYW4gfCAoKCkgPT4gYm9vbGVhbik7XG4gIGFjdGl2ZUNvbG9yPzogc3RyaW5nIHwgKCgpID0+IHN0cmluZyk7XG4gIGluQWN0aXZlQ29sb3I/OiBzdHJpbmcgfCAoKCkgPT4gc3RyaW5nKTtcbn1cblxuZXhwb3J0IHR5cGUgTWFpbkN1c3RvbUJ1dHRvbiA9IFBpY2s8XG4gIEN1c3RvbUJ1dHRvbixcbiAgRXhjbHVkZTxrZXlvZiBDdXN0b21CdXR0b24sICdjdXN0b21Db21wb25lbnQnPlxuPiAmIHtcbiAgY3VzdG9tQ29tcG9uZW50PzogSFRNTEVsZW1lbnQgfCBDdXN0b21Db21wb25lbnQgfCAoKCkgPT4gSFRNTEVsZW1lbnQgfCBDdXN0b21Db21wb25lbnQpO1xufTtcblxuZXhwb3J0IHR5cGUgeyBDdXN0b21Db21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL21lbnUtY29tcG9uZW50cy9jdXN0b20tYnV0dG9ucy9jdXN0b20tYnV0dG9ucy5jb21wb25lbnQnO1xuXG5leHBvcnQgdHlwZSBDcmVhdGVXZWJSVENUcmFuc3BvcnRSZXNwb25zZSA9IHtcbiAgaWQ6IHN0cmluZztcbiAgZHRsc1BhcmFtZXRlcnM6IER0bHNQYXJhbWV0ZXJzO1xuICBpY2VDYW5kaWRhdGVzOiBJY2VDYW5kaWRhdGVbXTtcbiAgaWNlUGFyYW1ldGVyczogSWNlUGFyYW1ldGVycztcbiAgZXJyb3I/OiBzdHJpbmc7XG59O1xuIl19