@discordeno/bot 19.0.0-next.fb8af2b → 19.0.0-next.fb9aac0

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 (278) hide show
  1. package/dist/cjs/bot.cjs +9 -4
  2. package/dist/cjs/commandOptionsParser.cjs +1 -1
  3. package/dist/cjs/desiredProperties.cjs +541 -0
  4. package/dist/cjs/events.cjs +6 -0
  5. package/dist/cjs/handlers/index.cjs +3 -1
  6. package/dist/cjs/handlers/members/GUILD_MEMBER_ADD.cjs +1 -1
  7. package/dist/cjs/handlers/messages/MESSAGE_CREATE.cjs +6 -3
  8. package/dist/cjs/handlers/messages/MESSAGE_UPDATE.cjs +6 -3
  9. package/dist/cjs/handlers/soundboard/GUILD_SOUNDBOARD_SOUNDS_UPDATE.cjs +20 -0
  10. package/dist/cjs/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_CREATE.cjs +17 -0
  11. package/dist/cjs/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_DELETE.cjs +20 -0
  12. package/dist/cjs/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_UPDATE.cjs +17 -0
  13. package/dist/cjs/handlers/soundboard/SOUNDBOARD_SOUNDS.cjs +20 -0
  14. package/dist/cjs/handlers/soundboard/index.cjs +24 -0
  15. package/dist/cjs/handlers/subscriptions/SUBSCRIPTION_CREATE.cjs +17 -0
  16. package/dist/cjs/handlers/subscriptions/SUBSCRIPTION_DELETE.cjs +17 -0
  17. package/dist/cjs/handlers/subscriptions/SUBSCRIPTION_UPDATE.cjs +17 -0
  18. package/dist/cjs/handlers/subscriptions/index.cjs +22 -0
  19. package/dist/cjs/handlers/voice/VOICE_CHANNEL_EFFECT_SEND.cjs +26 -0
  20. package/dist/cjs/handlers/voice/index.cjs +2 -1
  21. package/dist/cjs/handlers.cjs +11 -2
  22. package/dist/cjs/helpers.cjs +146 -23
  23. package/dist/cjs/index.cjs +3 -3
  24. package/dist/cjs/transformers/activity.cjs +34 -4
  25. package/dist/cjs/transformers/application.cjs +14 -3
  26. package/dist/cjs/transformers/attachment.cjs +1 -1
  27. package/dist/cjs/transformers/auditLogEntry.cjs +10 -118
  28. package/dist/cjs/transformers/channel.cjs +7 -5
  29. package/dist/cjs/transformers/component.cjs +59 -13
  30. package/dist/cjs/transformers/emoji.cjs +16 -2
  31. package/dist/cjs/transformers/entitlement.cjs +1 -1
  32. package/dist/cjs/transformers/guild.cjs +4 -1
  33. package/dist/cjs/transformers/index.cjs +3 -1
  34. package/dist/cjs/transformers/interaction.cjs +88 -35
  35. package/dist/cjs/transformers/invite.cjs +1 -1
  36. package/dist/cjs/transformers/member.cjs +4 -1
  37. package/dist/cjs/transformers/message.cjs +87 -50
  38. package/dist/cjs/transformers/onboarding.cjs +5 -5
  39. package/dist/cjs/transformers/poll.cjs +1 -1
  40. package/dist/cjs/transformers/presence.cjs +1 -1
  41. package/dist/cjs/transformers/reverse/application.cjs +6 -2
  42. package/dist/cjs/transformers/reverse/auditLogEntry.cjs +11 -122
  43. package/dist/cjs/transformers/reverse/component.cjs +61 -14
  44. package/dist/cjs/transformers/reverse/createApplicationCommand.cjs +2 -3
  45. package/dist/cjs/transformers/reverse/emoji.cjs +1 -1
  46. package/dist/cjs/transformers/reverse/index.cjs +1 -2
  47. package/dist/cjs/transformers/reverse/member.cjs +1 -1
  48. package/dist/cjs/transformers/reverse/presence.cjs +1 -1
  49. package/dist/cjs/transformers/reverse/team.cjs +1 -1
  50. package/dist/cjs/transformers/role.cjs +4 -2
  51. package/dist/cjs/transformers/scheduledEvent.cjs +28 -4
  52. package/dist/cjs/transformers/sku.cjs +1 -1
  53. package/dist/cjs/transformers/soundboardSound.cjs +25 -0
  54. package/dist/cjs/transformers/stageInstance.cjs +1 -1
  55. package/dist/cjs/transformers/stageInviteInstance.cjs +1 -1
  56. package/dist/cjs/transformers/sticker.cjs +1 -1
  57. package/dist/cjs/transformers/subscription.cjs +26 -0
  58. package/dist/cjs/transformers/team.cjs +1 -1
  59. package/dist/cjs/transformers/template.cjs +1 -1
  60. package/dist/cjs/transformers/threadMember.cjs +1 -1
  61. package/dist/cjs/transformers/toggles/guild.cjs +13 -2
  62. package/dist/cjs/transformers/toggles/member.cjs +32 -2
  63. package/dist/cjs/transformers/user.cjs +3 -1
  64. package/dist/cjs/transformers/voiceState.cjs +2 -2
  65. package/dist/cjs/transformers/webhook.cjs +1 -1
  66. package/dist/cjs/transformers.cjs +122 -658
  67. package/dist/esm/bot.js +9 -4
  68. package/dist/esm/commandOptionsParser.js +1 -1
  69. package/dist/esm/desiredProperties.js +523 -0
  70. package/dist/esm/events.js +3 -0
  71. package/dist/esm/handlers/index.js +3 -1
  72. package/dist/esm/handlers/members/GUILD_MEMBER_ADD.js +1 -1
  73. package/dist/esm/handlers/messages/MESSAGE_CREATE.js +6 -3
  74. package/dist/esm/handlers/messages/MESSAGE_UPDATE.js +6 -3
  75. package/dist/esm/handlers/soundboard/GUILD_SOUNDBOARD_SOUNDS_UPDATE.js +10 -0
  76. package/dist/esm/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_CREATE.js +7 -0
  77. package/dist/esm/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_DELETE.js +10 -0
  78. package/dist/esm/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_UPDATE.js +7 -0
  79. package/dist/esm/handlers/soundboard/SOUNDBOARD_SOUNDS.js +10 -0
  80. package/dist/esm/handlers/soundboard/index.js +7 -0
  81. package/dist/esm/handlers/subscriptions/SUBSCRIPTION_CREATE.js +7 -0
  82. package/dist/esm/handlers/subscriptions/SUBSCRIPTION_DELETE.js +7 -0
  83. package/dist/esm/handlers/subscriptions/SUBSCRIPTION_UPDATE.js +7 -0
  84. package/dist/esm/handlers/subscriptions/index.js +5 -0
  85. package/dist/esm/handlers/voice/VOICE_CHANNEL_EFFECT_SEND.js +16 -0
  86. package/dist/esm/handlers/voice/index.js +2 -1
  87. package/dist/esm/handlers.js +11 -2
  88. package/dist/esm/helpers.js +146 -23
  89. package/dist/esm/index.js +3 -3
  90. package/dist/esm/transformers/activity.js +20 -1
  91. package/dist/esm/transformers/application.js +14 -3
  92. package/dist/esm/transformers/attachment.js +1 -1
  93. package/dist/esm/transformers/auditLogEntry.js +10 -118
  94. package/dist/esm/transformers/channel.js +7 -5
  95. package/dist/esm/transformers/component.js +59 -13
  96. package/dist/esm/transformers/emoji.js +16 -2
  97. package/dist/esm/transformers/entitlement.js +1 -1
  98. package/dist/esm/transformers/guild.js +4 -1
  99. package/dist/esm/transformers/index.js +4 -1
  100. package/dist/esm/transformers/interaction.js +79 -35
  101. package/dist/esm/transformers/invite.js +1 -1
  102. package/dist/esm/transformers/member.js +4 -1
  103. package/dist/esm/transformers/message.js +84 -50
  104. package/dist/esm/transformers/onboarding.js +5 -5
  105. package/dist/esm/transformers/poll.js +1 -1
  106. package/dist/esm/transformers/presence.js +1 -1
  107. package/dist/esm/transformers/reverse/application.js +6 -2
  108. package/dist/esm/transformers/reverse/auditLogEntry.js +11 -122
  109. package/dist/esm/transformers/reverse/component.js +61 -14
  110. package/dist/esm/transformers/reverse/createApplicationCommand.js +2 -3
  111. package/dist/esm/transformers/reverse/emoji.js +1 -1
  112. package/dist/esm/transformers/reverse/index.js +1 -2
  113. package/dist/esm/transformers/reverse/member.js +1 -1
  114. package/dist/esm/transformers/reverse/presence.js +1 -1
  115. package/dist/esm/transformers/reverse/team.js +1 -1
  116. package/dist/esm/transformers/role.js +4 -2
  117. package/dist/esm/transformers/scheduledEvent.js +17 -1
  118. package/dist/esm/transformers/sku.js +1 -1
  119. package/dist/esm/transformers/soundboardSound.js +15 -0
  120. package/dist/esm/transformers/stageInstance.js +1 -1
  121. package/dist/esm/transformers/stageInviteInstance.js +1 -1
  122. package/dist/esm/transformers/sticker.js +1 -1
  123. package/dist/esm/transformers/subscription.js +16 -0
  124. package/dist/esm/transformers/team.js +1 -1
  125. package/dist/esm/transformers/template.js +1 -1
  126. package/dist/esm/transformers/threadMember.js +1 -1
  127. package/dist/esm/transformers/toggles/guild.js +13 -2
  128. package/dist/esm/transformers/toggles/member.js +32 -2
  129. package/dist/esm/transformers/types.js +2 -2
  130. package/dist/esm/transformers/user.js +3 -1
  131. package/dist/esm/transformers/voiceState.js +2 -2
  132. package/dist/esm/transformers/webhook.js +1 -1
  133. package/dist/esm/transformers.js +120 -648
  134. package/dist/types/bot.d.ts +31 -222
  135. package/dist/types/bot.d.ts.map +1 -1
  136. package/dist/types/commandOptionsParser.d.ts +11 -2
  137. package/dist/types/commandOptionsParser.d.ts.map +1 -1
  138. package/dist/types/desiredProperties.d.ts +194 -0
  139. package/dist/types/desiredProperties.d.ts.map +1 -0
  140. package/dist/types/events.d.ts +231 -0
  141. package/dist/types/events.d.ts.map +1 -0
  142. package/dist/types/handlers/index.d.ts +2 -0
  143. package/dist/types/handlers/index.d.ts.map +1 -1
  144. package/dist/types/handlers/members/GUILD_MEMBER_ADD.d.ts +2 -2
  145. package/dist/types/handlers/members/GUILD_MEMBER_ADD.d.ts.map +1 -1
  146. package/dist/types/handlers/messages/MESSAGE_CREATE.d.ts +1 -1
  147. package/dist/types/handlers/messages/MESSAGE_CREATE.d.ts.map +1 -1
  148. package/dist/types/handlers/messages/MESSAGE_UPDATE.d.ts +1 -1
  149. package/dist/types/handlers/messages/MESSAGE_UPDATE.d.ts.map +1 -1
  150. package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUNDS_UPDATE.d.ts +4 -0
  151. package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUNDS_UPDATE.d.ts.map +1 -0
  152. package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_CREATE.d.ts +4 -0
  153. package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_CREATE.d.ts.map +1 -0
  154. package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_DELETE.d.ts +4 -0
  155. package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_DELETE.d.ts.map +1 -0
  156. package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_UPDATE.d.ts +4 -0
  157. package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_UPDATE.d.ts.map +1 -0
  158. package/dist/types/handlers/soundboard/SOUNDBOARD_SOUNDS.d.ts +4 -0
  159. package/dist/types/handlers/soundboard/SOUNDBOARD_SOUNDS.d.ts.map +1 -0
  160. package/dist/types/handlers/soundboard/index.d.ts +6 -0
  161. package/dist/types/handlers/soundboard/index.d.ts.map +1 -0
  162. package/dist/types/handlers/subscriptions/SUBSCRIPTION_CREATE.d.ts +4 -0
  163. package/dist/types/handlers/subscriptions/SUBSCRIPTION_CREATE.d.ts.map +1 -0
  164. package/dist/types/handlers/subscriptions/SUBSCRIPTION_DELETE.d.ts +4 -0
  165. package/dist/types/handlers/subscriptions/SUBSCRIPTION_DELETE.d.ts.map +1 -0
  166. package/dist/types/handlers/subscriptions/SUBSCRIPTION_UPDATE.d.ts +4 -0
  167. package/dist/types/handlers/subscriptions/SUBSCRIPTION_UPDATE.d.ts.map +1 -0
  168. package/dist/types/handlers/subscriptions/index.d.ts +4 -0
  169. package/dist/types/handlers/subscriptions/index.d.ts.map +1 -0
  170. package/dist/types/handlers/voice/VOICE_CHANNEL_EFFECT_SEND.d.ts +4 -0
  171. package/dist/types/handlers/voice/VOICE_CHANNEL_EFFECT_SEND.d.ts.map +1 -0
  172. package/dist/types/handlers/voice/index.d.ts +1 -0
  173. package/dist/types/handlers/voice/index.d.ts.map +1 -1
  174. package/dist/types/handlers.d.ts +4 -5
  175. package/dist/types/handlers.d.ts.map +1 -1
  176. package/dist/types/helpers.d.ts +130 -107
  177. package/dist/types/helpers.d.ts.map +1 -1
  178. package/dist/types/index.d.ts +2 -2
  179. package/dist/types/index.d.ts.map +1 -1
  180. package/dist/types/transformers/activity.d.ts +3 -1
  181. package/dist/types/transformers/activity.d.ts.map +1 -1
  182. package/dist/types/transformers/application.d.ts.map +1 -1
  183. package/dist/types/transformers/attachment.d.ts +2 -2
  184. package/dist/types/transformers/attachment.d.ts.map +1 -1
  185. package/dist/types/transformers/auditLogEntry.d.ts +1 -1
  186. package/dist/types/transformers/auditLogEntry.d.ts.map +1 -1
  187. package/dist/types/transformers/channel.d.ts +5 -6
  188. package/dist/types/transformers/channel.d.ts.map +1 -1
  189. package/dist/types/transformers/component.d.ts +2 -2
  190. package/dist/types/transformers/component.d.ts.map +1 -1
  191. package/dist/types/transformers/emoji.d.ts +3 -3
  192. package/dist/types/transformers/emoji.d.ts.map +1 -1
  193. package/dist/types/transformers/entitlement.d.ts +2 -2
  194. package/dist/types/transformers/entitlement.d.ts.map +1 -1
  195. package/dist/types/transformers/guild.d.ts +3 -4
  196. package/dist/types/transformers/guild.d.ts.map +1 -1
  197. package/dist/types/transformers/index.d.ts +3 -0
  198. package/dist/types/transformers/index.d.ts.map +1 -1
  199. package/dist/types/transformers/interaction.d.ts +18 -6
  200. package/dist/types/transformers/interaction.d.ts.map +1 -1
  201. package/dist/types/transformers/invite.d.ts +3 -3
  202. package/dist/types/transformers/invite.d.ts.map +1 -1
  203. package/dist/types/transformers/member.d.ts +3 -4
  204. package/dist/types/transformers/member.d.ts.map +1 -1
  205. package/dist/types/transformers/message.d.ts +12 -5
  206. package/dist/types/transformers/message.d.ts.map +1 -1
  207. package/dist/types/transformers/onboarding.d.ts +4 -4
  208. package/dist/types/transformers/onboarding.d.ts.map +1 -1
  209. package/dist/types/transformers/poll.d.ts +3 -3
  210. package/dist/types/transformers/poll.d.ts.map +1 -1
  211. package/dist/types/transformers/presence.d.ts +2 -2
  212. package/dist/types/transformers/presence.d.ts.map +1 -1
  213. package/dist/types/transformers/reverse/application.d.ts +2 -2
  214. package/dist/types/transformers/reverse/application.d.ts.map +1 -1
  215. package/dist/types/transformers/reverse/auditLogEntry.d.ts +1 -1
  216. package/dist/types/transformers/reverse/auditLogEntry.d.ts.map +1 -1
  217. package/dist/types/transformers/reverse/component.d.ts +2 -2
  218. package/dist/types/transformers/reverse/component.d.ts.map +1 -1
  219. package/dist/types/transformers/reverse/createApplicationCommand.d.ts.map +1 -1
  220. package/dist/types/transformers/reverse/emoji.d.ts +2 -2
  221. package/dist/types/transformers/reverse/emoji.d.ts.map +1 -1
  222. package/dist/types/transformers/reverse/index.d.ts +0 -1
  223. package/dist/types/transformers/reverse/index.d.ts.map +1 -1
  224. package/dist/types/transformers/reverse/member.d.ts +2 -2
  225. package/dist/types/transformers/reverse/member.d.ts.map +1 -1
  226. package/dist/types/transformers/reverse/presence.d.ts +2 -2
  227. package/dist/types/transformers/reverse/presence.d.ts.map +1 -1
  228. package/dist/types/transformers/reverse/team.d.ts +2 -2
  229. package/dist/types/transformers/reverse/team.d.ts.map +1 -1
  230. package/dist/types/transformers/role.d.ts +3 -4
  231. package/dist/types/transformers/role.d.ts.map +1 -1
  232. package/dist/types/transformers/scheduledEvent.d.ts +4 -3
  233. package/dist/types/transformers/scheduledEvent.d.ts.map +1 -1
  234. package/dist/types/transformers/sku.d.ts +2 -2
  235. package/dist/types/transformers/sku.d.ts.map +1 -1
  236. package/dist/types/transformers/soundboardSound.d.ts +4 -0
  237. package/dist/types/transformers/soundboardSound.d.ts.map +1 -0
  238. package/dist/types/transformers/stageInstance.d.ts +2 -2
  239. package/dist/types/transformers/stageInstance.d.ts.map +1 -1
  240. package/dist/types/transformers/stageInviteInstance.d.ts +3 -3
  241. package/dist/types/transformers/stageInviteInstance.d.ts.map +1 -1
  242. package/dist/types/transformers/sticker.d.ts +3 -3
  243. package/dist/types/transformers/sticker.d.ts.map +1 -1
  244. package/dist/types/transformers/subscription.d.ts +4 -0
  245. package/dist/types/transformers/subscription.d.ts.map +1 -0
  246. package/dist/types/transformers/team.d.ts +2 -2
  247. package/dist/types/transformers/team.d.ts.map +1 -1
  248. package/dist/types/transformers/template.d.ts +2 -2
  249. package/dist/types/transformers/template.d.ts.map +1 -1
  250. package/dist/types/transformers/threadMember.d.ts +1 -2
  251. package/dist/types/transformers/threadMember.d.ts.map +1 -1
  252. package/dist/types/transformers/toggles/guild.d.ts +9 -1
  253. package/dist/types/transformers/toggles/guild.d.ts.map +1 -1
  254. package/dist/types/transformers/toggles/member.d.ts +20 -0
  255. package/dist/types/transformers/toggles/member.d.ts.map +1 -1
  256. package/dist/types/transformers/types.d.ts +202 -32
  257. package/dist/types/transformers/types.d.ts.map +1 -1
  258. package/dist/types/transformers/user.d.ts +2 -2
  259. package/dist/types/transformers/user.d.ts.map +1 -1
  260. package/dist/types/transformers/voiceState.d.ts +5 -6
  261. package/dist/types/transformers/voiceState.d.ts.map +1 -1
  262. package/dist/types/transformers/webhook.d.ts +2 -2
  263. package/dist/types/transformers/webhook.d.ts.map +1 -1
  264. package/dist/types/transformers.d.ts +178 -556
  265. package/dist/types/transformers.d.ts.map +1 -1
  266. package/package.json +16 -16
  267. package/dist/cjs/optionalize.cjs +0 -7
  268. package/dist/cjs/transformers/reverse/interactionResponse.cjs +0 -34
  269. package/dist/cjs/typings.cjs +0 -16
  270. package/dist/esm/optionalize.js +0 -3
  271. package/dist/esm/transformers/reverse/interactionResponse.js +0 -24
  272. package/dist/esm/typings.js +0 -6
  273. package/dist/types/optionalize.d.ts +0 -46
  274. package/dist/types/optionalize.d.ts.map +0 -1
  275. package/dist/types/transformers/reverse/interactionResponse.d.ts +0 -4
  276. package/dist/types/transformers/reverse/interactionResponse.d.ts.map +0 -1
  277. package/dist/types/typings.d.ts +0 -178
  278. package/dist/types/typings.d.ts.map +0 -1
package/dist/cjs/bot.cjs CHANGED
@@ -15,6 +15,8 @@ const _handlers = require("./handlers.cjs");
15
15
  const _helpers = require("./helpers.cjs");
16
16
  const _transformers = require("./transformers.cjs");
17
17
  function createBot(options) {
18
+ if (!options.transformers) options.transformers = {};
19
+ if (!options.transformers.desiredProperties) options.transformers.desiredProperties = options.desiredProperties;
18
20
  if (!options.rest) options.rest = {
19
21
  token: options.token,
20
22
  applicationId: options.applicationId
@@ -43,9 +45,7 @@ function createBot(options) {
43
45
  const bot = {
44
46
  id,
45
47
  applicationId: id,
46
- transformers: (0, _transformers.createTransformers)(options.transformers ?? {}, {
47
- defaultDesiredPropertiesValue: options.defaultDesiredPropertiesValue ?? false
48
- }),
48
+ transformers: (0, _transformers.createTransformers)(options.transformers),
49
49
  handlers: (0, _handlers.createBotGatewayHandlers)(options.handlers ?? {}),
50
50
  rest: (0, _rest.createRestManager)(options.rest),
51
51
  gateway: (0, _gateway.createGatewayManager)(options.gateway),
@@ -63,6 +63,11 @@ function createBot(options) {
63
63
  if (!options.gateway?.totalShards) bot.gateway.totalShards = bot.gateway.connection.shards;
64
64
  if (!options.gateway?.lastShardId && !options.gateway?.totalShards) bot.gateway.lastShardId = bot.gateway.connection.shards - 1;
65
65
  }
66
+ if (!bot.gateway.resharding.getSessionInfo) {
67
+ bot.gateway.resharding.getSessionInfo = async ()=>{
68
+ return await bot.rest.getGatewayBot();
69
+ };
70
+ }
66
71
  await bot.gateway.spawnShards();
67
72
  },
68
73
  async shutdown () {
@@ -74,4 +79,4 @@ function createBot(options) {
74
79
  return bot;
75
80
  }
76
81
 
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ib3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDcmVhdGVHYXRld2F5TWFuYWdlck9wdGlvbnMsIEdhdGV3YXlNYW5hZ2VyIH0gZnJvbSAnQGRpc2NvcmRlbm8vZ2F0ZXdheSdcbmltcG9ydCB7IFNoYXJkU29ja2V0Q2xvc2VDb2RlcywgY3JlYXRlR2F0ZXdheU1hbmFnZXIgfSBmcm9tICdAZGlzY29yZGVuby9nYXRld2F5J1xuaW1wb3J0IHR5cGUgeyBDcmVhdGVSZXN0TWFuYWdlck9wdGlvbnMsIFJlc3RNYW5hZ2VyIH0gZnJvbSAnQGRpc2NvcmRlbm8vcmVzdCdcbmltcG9ydCB7IGNyZWF0ZVJlc3RNYW5hZ2VyIH0gZnJvbSAnQGRpc2NvcmRlbm8vcmVzdCdcbmltcG9ydCB0eXBlIHsgQmlnU3RyaW5nLCBEaXNjb3JkR2F0ZXdheVBheWxvYWQsIERpc2NvcmRSZWFkeSwgR2F0ZXdheUludGVudHMgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IHR5cGUgQ29sbGVjdGlvbiwgY3JlYXRlTG9nZ2VyLCBnZXRCb3RJZEZyb21Ub2tlbiwgdHlwZSBsb2dnZXIgfSBmcm9tICdAZGlzY29yZGVuby91dGlscydcbmltcG9ydCB7IGNyZWF0ZUJvdEdhdGV3YXlIYW5kbGVycyB9IGZyb20gJy4vaGFuZGxlcnMuanMnXG5pbXBvcnQgeyB0eXBlIEJvdEhlbHBlcnMsIGNyZWF0ZUJvdEhlbHBlcnMgfSBmcm9tICcuL2hlbHBlcnMuanMnXG5pbXBvcnQgeyB0eXBlIFRyYW5zZm9ybWVycywgY3JlYXRlVHJhbnNmb3JtZXJzIH0gZnJvbSAnLi90cmFuc2Zvcm1lcnMuanMnXG5pbXBvcnQgdHlwZSB7XG4gIEF1ZGl0TG9nRW50cnksXG4gIEF1dG9Nb2RlcmF0aW9uQWN0aW9uRXhlY3V0aW9uLFxuICBBdXRvTW9kZXJhdGlvblJ1bGUsXG4gIENoYW5uZWwsXG4gIEVtb2ppLFxuICBFbnRpdGxlbWVudCxcbiAgR3VpbGQsXG4gIEd1aWxkQXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnMsXG4gIEludGVncmF0aW9uLFxuICBJbnRlcmFjdGlvbixcbiAgSW52aXRlLFxuICBNZW1iZXIsXG4gIE1lc3NhZ2UsXG4gIFByZXNlbmNlVXBkYXRlLFxuICBSb2xlLFxuICBTY2hlZHVsZWRFdmVudCxcbiAgU3RpY2tlcixcbiAgVGhyZWFkTWVtYmVyLFxuICBVc2VyLFxuICBWb2ljZVN0YXRlLFxufSBmcm9tICcuL3RyYW5zZm9ybWVycy9pbmRleC5qcydcbmltcG9ydCB0eXBlIHsgQm90R2F0ZXdheUhhbmRsZXJPcHRpb25zIH0gZnJvbSAnLi90eXBpbmdzLmpzJ1xuXG4vKipcbiAqIENyZWF0ZSBhIGJvdCBvYmplY3QgdGhhdCB3aWxsIG1haW50YWluIHRoZSByZXN0IGFuZCBnYXRld2F5IGNvbm5lY3Rpb24uXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgQ29uZmlndXJhdGlvbnMgb3B0aW9ucyB1c2VkIHRvIG1hbmFnZSB0aGlzIGJvdC5cbiAqIEByZXR1cm5zIEJvdFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQm90KG9wdGlvbnM6IENyZWF0ZUJvdE9wdGlvbnMpOiBCb3Qge1xuICBpZiAoIW9wdGlvbnMucmVzdCkgb3B0aW9ucy5yZXN0ID0geyB0b2tlbjogb3B0aW9ucy50b2tlbiwgYXBwbGljYXRpb25JZDogb3B0aW9ucy5hcHBsaWNhdGlvbklkIH1cbiAgaWYgKCFvcHRpb25zLnJlc3QudG9rZW4pIG9wdGlvbnMucmVzdC50b2tlbiA9IG9wdGlvbnMudG9rZW5cbiAgaWYgKCFvcHRpb25zLnJlc3QubG9nZ2VyICYmIG9wdGlvbnMubG9nZ2VyRmFjdG9yeSkgb3B0aW9ucy5yZXN0LmxvZ2dlciA9IG9wdGlvbnMubG9nZ2VyRmFjdG9yeSgnUkVTVCcpXG4gIGlmICghb3B0aW9ucy5nYXRld2F5KSBvcHRpb25zLmdhdGV3YXkgPSB7IHRva2VuOiBvcHRpb25zLnRva2VuIH1cbiAgaWYgKCFvcHRpb25zLmdhdGV3YXkudG9rZW4pIG9wdGlvbnMuZ2F0ZXdheS50b2tlbiA9IG9wdGlvbnMudG9rZW5cbiAgaWYgKCFvcHRpb25zLmdhdGV3YXkuZXZlbnRzKSBvcHRpb25zLmdhdGV3YXkuZXZlbnRzID0ge31cbiAgaWYgKCFvcHRpb25zLmdhdGV3YXkubG9nZ2VyICYmIG9wdGlvbnMubG9nZ2VyRmFjdG9yeSkgb3B0aW9ucy5nYXRld2F5LmxvZ2dlciA9IG9wdGlvbnMubG9nZ2VyRmFjdG9yeSgnR0FURVdBWScpXG4gIGlmICghb3B0aW9ucy5nYXRld2F5LmV2ZW50cy5tZXNzYWdlKSB7XG4gICAgb3B0aW9ucy5nYXRld2F5LmV2ZW50cy5tZXNzYWdlID0gYXN5bmMgKHNoYXJkLCBkYXRhKSA9PiB7XG4gICAgICAvLyBUUklHR0VSIFJBVyBFVkVOVFxuICAgICAgYm90LmV2ZW50cy5yYXc/LihkYXRhLCBzaGFyZC5pZClcblxuICAgICAgaWYgKCFkYXRhLnQpIHJldHVyblxuXG4gICAgICAvLyBSVU4gRElTUEFUQ0ggQ0hFQ0tcbiAgICAgIGF3YWl0IGJvdC5ldmVudHMuZGlzcGF0Y2hSZXF1aXJlbWVudHM/LihkYXRhLCBzaGFyZC5pZClcbiAgICAgIGJvdC5oYW5kbGVyc1tkYXRhLnQgYXMga2V5b2YgUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlQm90R2F0ZXdheUhhbmRsZXJzPl0/Lihib3QsIGRhdGEsIHNoYXJkLmlkKVxuICAgIH1cbiAgfVxuXG4gIG9wdGlvbnMuZ2F0ZXdheS5pbnRlbnRzID0gb3B0aW9ucy5pbnRlbnRzXG4gIG9wdGlvbnMuZ2F0ZXdheS5wcmVmZXJTbmFrZUNhc2UgPSB0cnVlXG5cbiAgY29uc3QgaWQgPSBnZXRCb3RJZEZyb21Ub2tlbihvcHRpb25zLnRva2VuKVxuXG4gIGNvbnN0IGJvdDogQm90ID0ge1xuICAgIGlkLFxuICAgIGFwcGxpY2F0aW9uSWQ6IGlkLFxuICAgIHRyYW5zZm9ybWVyczogY3JlYXRlVHJhbnNmb3JtZXJzKG9wdGlvbnMudHJhbnNmb3JtZXJzID8/IHt9LCB7IGRlZmF1bHREZXNpcmVkUHJvcGVydGllc1ZhbHVlOiBvcHRpb25zLmRlZmF1bHREZXNpcmVkUHJvcGVydGllc1ZhbHVlID8/IGZhbHNlIH0pLFxuICAgIGhhbmRsZXJzOiBjcmVhdGVCb3RHYXRld2F5SGFuZGxlcnMob3B0aW9ucy5oYW5kbGVycyA/PyB7fSksXG4gICAgcmVzdDogY3JlYXRlUmVzdE1hbmFnZXIob3B0aW9ucy5yZXN0KSxcbiAgICBnYXRld2F5OiBjcmVhdGVHYXRld2F5TWFuYWdlcihvcHRpb25zLmdhdGV3YXkpLFxuICAgIGV2ZW50czogb3B0aW9ucy5ldmVudHMgPz8ge30sXG4gICAgbG9nZ2VyOiBvcHRpb25zLmxvZ2dlckZhY3RvcnkgPyBvcHRpb25zLmxvZ2dlckZhY3RvcnkoJ0JPVCcpIDogY3JlYXRlTG9nZ2VyKHsgbmFtZTogJ0JPVCcgfSksXG4gICAgLy8gU2V0IHVwIGhlbHBlcnMgYmVsb3cuXG4gICAgaGVscGVyczoge30gYXMgQm90SGVscGVycyxcbiAgICBhc3luYyBzdGFydCgpIHtcbiAgICAgIGlmICghb3B0aW9ucy5nYXRld2F5Py5jb25uZWN0aW9uKSB7XG4gICAgICAgIGJvdC5nYXRld2F5LmNvbm5lY3Rpb24gPSBhd2FpdCBib3QucmVzdC5nZXRTZXNzaW9uSW5mbygpXG5cbiAgICAgICAgLy8gQ2hlY2sgZm9yIG92ZXJyaWRlcyBpbiB0aGUgY29uZmlndXJhdGlvblxuICAgICAgICBpZiAoIW9wdGlvbnMuZ2F0ZXdheT8udXJsKSBib3QuZ2F0ZXdheS51cmwgPSBib3QuZ2F0ZXdheS5jb25uZWN0aW9uLnVybFxuXG4gICAgICAgIGlmICghb3B0aW9ucy5nYXRld2F5Py50b3RhbFNoYXJkcykgYm90LmdhdGV3YXkudG90YWxTaGFyZHMgPSBib3QuZ2F0ZXdheS5jb25uZWN0aW9uLnNoYXJkc1xuXG4gICAgICAgIGlmICghb3B0aW9ucy5nYXRld2F5Py5sYXN0U2hhcmRJZCAmJiAhb3B0aW9ucy5nYXRld2F5Py50b3RhbFNoYXJkcykgYm90LmdhdGV3YXkubGFzdFNoYXJkSWQgPSBib3QuZ2F0ZXdheS5jb25uZWN0aW9uLnNoYXJkcyAtIDFcbiAgICAgIH1cblxuICAgICAgYXdhaXQgYm90LmdhdGV3YXkuc3Bhd25TaGFyZHMoKVxuICAgIH0sXG5cbiAgICBhc3luYyBzaHV0ZG93bigpIHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QuZ2F0ZXdheS5zaHV0ZG93bihTaGFyZFNvY2tldENsb3NlQ29kZXMuU2h1dGRvd24sICdVc2VyIHJlcXVlc3RlZCBib3Qgc3RvcCcpXG4gICAgfSxcbiAgfVxuXG4gIGJvdC5oZWxwZXJzID0gY3JlYXRlQm90SGVscGVycyhib3QpXG4gIGlmIChvcHRpb25zLmFwcGxpY2F0aW9uSWQpIGJvdC5hcHBsaWNhdGlvbklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2Uob3B0aW9ucy5hcHBsaWNhdGlvbklkKVxuXG4gIHJldHVybiBib3Rcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVCb3RPcHRpb25zIHtcbiAgLyoqIFRoZSBib3QncyB0b2tlbi4gKi9cbiAgdG9rZW46IHN0cmluZ1xuICAvKiogQXBwbGljYXRpb24gSWQgb2YgdGhlIGJvdCBpbmNhc2UgaXQgaXMgYW4gb2xkIGJvdCB0b2tlbi4gKi9cbiAgYXBwbGljYXRpb25JZD86IEJpZ1N0cmluZ1xuICAvKiogVGhlIGJvdCdzIGludGVudHMgdGhhdCB3aWxsIGJlIHVzZWQgdG8gbWFrZSBhIGNvbm5lY3Rpb24gd2l0aCBkaXNjb3JkcyBnYXRld2F5LiAqL1xuICBpbnRlbnRzPzogR2F0ZXdheUludGVudHNcbiAgLyoqIEFueSBvcHRpb25zIHlvdSB3aXNoIHRvIHByb3ZpZGUgdG8gdGhlIHJlc3QgbWFuYWdlci4gKi9cbiAgcmVzdD86IENyZWF0ZVJlc3RNYW5hZ2VyT3B0aW9ucyAmIFBhcnRpYWw8UGljazxDcmVhdGVSZXN0TWFuYWdlck9wdGlvbnMsICd0b2tlbic+PlxuICAvKiogQW55IG9wdGlvbnMgeW91IHdpc2ggdG8gcHJvdmlkZSB0byB0aGUgZ2F0ZXdheSBtYW5hZ2VyLiAqL1xuICBnYXRld2F5PzogQ3JlYXRlR2F0ZXdheU1hbmFnZXJPcHRpb25zICYgUGFydGlhbDxQaWNrPENyZWF0ZUdhdGV3YXlNYW5hZ2VyT3B0aW9ucywgJ3Rva2VuJz4+XG4gIC8qKiBUaGUgZXZlbnQgaGFuZGxlcnMuICovXG4gIGV2ZW50cz86IFBhcnRpYWw8RXZlbnRIYW5kbGVycz5cbiAgLyoqIFRoZSBmdW5jdGlvbnMgdGhhdCBzaG91bGQgdHJhbnNmb3JtIGRpc2NvcmQgb2JqZWN0cyB0byBkaXNjb3JkZW5vIHNoYXBlZCBvYmplY3RzLiAqL1xuICB0cmFuc2Zvcm1lcnM/OiBQYXJ0aWFsPFRyYW5zZm9ybWVycz5cbiAgLyoqIFRoZSBoYW5kbGVyIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBoYW5kbGUgaW5jb21pbmcgZGlzY29yZCBwYXlsb2FkcyBmcm9tIGdhdGV3YXkgYW5kIGNhbGwgYW4gZXZlbnQuICovXG4gIGhhbmRsZXJzPzogUGFydGlhbDxCb3RHYXRld2F5SGFuZGxlck9wdGlvbnM+XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVc2Ugd2l0aCBjYXV0aW9uXG4gICAqXG4gICAqIFRoaXMgcHJvcGVydHkgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZWFyIGZ1dHVyZSB3aGVuIHRoZSBDTEkgaXMgY29tcGxldGUuIEl0IGlzIG5vdCByZWNvbW1lbmRlZCB0byB1c2Ugd2hhdHNvZXZlci5cbiAgICogQWx0aG91Z2ggaXQgaXMgaGFyZGVyIHRvIGNyZWF0ZSB5b3VyIGJvdCB3aXRob3V0IHRoaXMsIGl0IGlzIHN0aWxsIGhpZ2hseSByZWNvbW1lbmRlZCB0byBkbyBpdCB0aGF0IHdheS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIGRlZmF1bHREZXNpcmVkUHJvcGVydGllc1ZhbHVlPzogYm9vbGVhblxuICAvKipcbiAgICogVGhpcyBmYWN0b3J5IHdpbGwgYmUgaW52b2tlZCB0byBjcmVhdGUgdGhlIGxvZ2dlciBmb3IgZ2F0ZXdheSwgcmVzdCBhbmQgYm90XG4gICAqXG4gICAqIEByZW1hcmtzXG4gICAqIElmIG5vdCBwcm92aWRlZCB0aGUgZGVmYXVsdCBsb2dnZXIgd2lsbCBiZSB1c2VkIHdpdGggcmVzdCBhbmQgZ2F0ZXdheSBzaGFyaW5nIHRoZSBzYW1lIGxvZ2dlclxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgaW52b2tlZCAzIHRpbWVzLCBvbmUgd2l0aCB0aGUgbmFtZSBvZiBgUkVTVGAsIG9uZSB3aXRoIGBHQVRFV0FZYCBhbmQgdGhlIHRoaXJkIG9uZSB3aXRoIG5hbWUgYEJPVGBcbiAgICovXG4gIGxvZ2dlckZhY3Rvcnk/OiAobmFtZTogJ1JFU1QnIHwgJ0dBVEVXQVknIHwgJ0JPVCcpID0+IFBpY2s8dHlwZW9mIGxvZ2dlciwgJ2RlYnVnJyB8ICdpbmZvJyB8ICd3YXJuJyB8ICdlcnJvcicgfCAnZmF0YWwnPlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJvdCB7XG4gIC8qKiBUaGUgaWQgb2YgdGhlIGJvdC4gKi9cbiAgaWQ6IGJpZ2ludFxuICAvKiogVGhlIGFwcGxpY2F0aW9uIGlkIG9mIHRoZSBib3QuIFRoaXMgaXMgdXN1YWxseSB0aGUgc2FtZSBhcyBpZCBidXQgaW4gdGhlIGNhc2Ugb2Ygb2xkIGJvdHMgY2FuIGJlIGRpZmZlcmVudC4gKi9cbiAgYXBwbGljYXRpb25JZDogYmlnaW50XG4gIC8qKiBUaGUgcmVzdCBtYW5hZ2VyLiAqL1xuICByZXN0OiBSZXN0TWFuYWdlclxuICAvKiogVGhlIGdhdGV3YXkgbWFuYWdlci4gKi9cbiAgZ2F0ZXdheTogR2F0ZXdheU1hbmFnZXJcbiAgLyoqIFRoZSBldmVudCBoYW5kbGVycy4gKi9cbiAgZXZlbnRzOiBQYXJ0aWFsPEV2ZW50SGFuZGxlcnM+XG4gIC8qKiBBIGxvZ2dlciB1dGlsaXR5IHRvIG1ha2UgaXQgZWFzeSB0byBsb2cgbmljZSBhbmQgdXNlZnVsIHRoaW5ncyBpbiB0aGUgYm90IGNvZGUuICovXG4gIGxvZ2dlcjogUGljazx0eXBlb2YgbG9nZ2VyLCAnZGVidWcnIHwgJ2luZm8nIHwgJ3dhcm4nIHwgJ2Vycm9yJyB8ICdmYXRhbCc+XG4gIC8qKiBUaGUgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIHRyYW5zZm9ybSBkaXNjb3JkIG9iamVjdHMgdG8gZGlzY29yZGVubyBzaGFwZWQgb2JqZWN0cy4gKi9cbiAgdHJhbnNmb3JtZXJzOiBUcmFuc2Zvcm1lcnNcbiAgLyoqIFRoZSBoYW5kbGVyIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBoYW5kbGUgaW5jb21pbmcgZGlzY29yZCBwYXlsb2FkcyBmcm9tIGdhdGV3YXkgYW5kIGNhbGwgYW4gZXZlbnQuICovXG4gIGhhbmRsZXJzOiBSZXR1cm5UeXBlPHR5cGVvZiBjcmVhdGVCb3RHYXRld2F5SGFuZGxlcnM+XG4gIGhlbHBlcnM6IEJvdEhlbHBlcnNcbiAgLyoqIFN0YXJ0IHRoZSBib3QgY29ubmVjdGlvbiB0byB0aGUgZ2F0ZXdheS4gKi9cbiAgc3RhcnQ6ICgpID0+IFByb21pc2U8dm9pZD5cbiAgLyoqIFNodXRzIGRvd24gYWxsIHRoZSBib3QgY29ubmVjdGlvbnMgdG8gdGhlIGdhdGV3YXkuICovXG4gIHNodXRkb3duOiAoKSA9PiBQcm9taXNlPHZvaWQ+XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRIYW5kbGVycyB7XG4gIGRlYnVnOiAodGV4dDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSkgPT4gdW5rbm93blxuICBhcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uc1VwZGF0ZTogKGNvbW1hbmQ6IEd1aWxkQXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnMpID0+IHVua25vd25cbiAgZ3VpbGRBdWRpdExvZ0VudHJ5Q3JlYXRlOiAobG9nOiBBdWRpdExvZ0VudHJ5LCBndWlsZElkOiBiaWdpbnQpID0+IHVua25vd25cbiAgYXV0b21vZFJ1bGVDcmVhdGU6IChydWxlOiBBdXRvTW9kZXJhdGlvblJ1bGUpID0+IHVua25vd25cbiAgYXV0b21vZFJ1bGVVcGRhdGU6IChydWxlOiBBdXRvTW9kZXJhdGlvblJ1bGUpID0+IHVua25vd25cbiAgYXV0b21vZFJ1bGVEZWxldGU6IChydWxlOiBBdXRvTW9kZXJhdGlvblJ1bGUpID0+IHVua25vd25cbiAgYXV0b21vZEFjdGlvbkV4ZWN1dGlvbjogKHBheWxvYWQ6IEF1dG9Nb2RlcmF0aW9uQWN0aW9uRXhlY3V0aW9uKSA9PiB1bmtub3duXG4gIHRocmVhZENyZWF0ZTogKHRocmVhZDogQ2hhbm5lbCkgPT4gdW5rbm93blxuICB0aHJlYWREZWxldGU6ICh0aHJlYWQ6IENoYW5uZWwpID0+IHVua25vd25cbiAgdGhyZWFkTGlzdFN5bmM6IChwYXlsb2FkOiB7IGd1aWxkSWQ6IGJpZ2ludDsgY2hhbm5lbElkcz86IGJpZ2ludFtdOyB0aHJlYWRzOiBDaGFubmVsW107IG1lbWJlcnM6IFRocmVhZE1lbWJlcltdIH0pID0+IHVua25vd25cbiAgdGhyZWFkTWVtYmVyVXBkYXRlOiAocGF5bG9hZDogeyBpZDogYmlnaW50OyBndWlsZElkOiBiaWdpbnQ7IGpvaW5lZEF0OiBudW1iZXI7IGZsYWdzOiBudW1iZXIgfSkgPT4gdW5rbm93blxuICB0aHJlYWRNZW1iZXJzVXBkYXRlOiAocGF5bG9hZDogeyBpZDogYmlnaW50OyBndWlsZElkOiBiaWdpbnQ7IGFkZGVkTWVtYmVycz86IFRocmVhZE1lbWJlcltdOyByZW1vdmVkTWVtYmVySWRzPzogYmlnaW50W10gfSkgPT4gdW5rbm93blxuICB0aHJlYWRVcGRhdGU6ICh0aHJlYWQ6IENoYW5uZWwpID0+IHVua25vd25cbiAgc2NoZWR1bGVkRXZlbnRDcmVhdGU6IChldmVudDogU2NoZWR1bGVkRXZlbnQpID0+IHVua25vd25cbiAgc2NoZWR1bGVkRXZlbnRVcGRhdGU6IChldmVudDogU2NoZWR1bGVkRXZlbnQpID0+IHVua25vd25cbiAgc2NoZWR1bGVkRXZlbnREZWxldGU6IChldmVudDogU2NoZWR1bGVkRXZlbnQpID0+IHVua25vd25cbiAgLyoqIFNlbnQgd2hlbiBhIHVzZXIgaGFzIHN1YnNjcmliZWQgdG8gYSBndWlsZCBzY2hlZHVsZWQgZXZlbnQuIEVYUEVSSU1FTlRBTCEgKi9cbiAgc2NoZWR1bGVkRXZlbnRVc2VyQWRkOiAocGF5bG9hZDogeyBndWlsZFNjaGVkdWxlZEV2ZW50SWQ6IGJpZ2ludDsgZ3VpbGRJZDogYmlnaW50OyB1c2VySWQ6IGJpZ2ludCB9KSA9PiB1bmtub3duXG4gIC8qKiBTZW50IHdoZW4gYSB1c2VyIGhhcyB1bnN1YnNjcmliZWQgdG8gYSBndWlsZCBzY2hlZHVsZWQgZXZlbnQuIEVYUEVSSU1FTlRBTCEgKi9cbiAgc2NoZWR1bGVkRXZlbnRVc2VyUmVtb3ZlOiAocGF5bG9hZDogeyBndWlsZFNjaGVkdWxlZEV2ZW50SWQ6IGJpZ2ludDsgZ3VpbGRJZDogYmlnaW50OyB1c2VySWQ6IGJpZ2ludCB9KSA9PiB1bmtub3duXG4gIHJlYWR5OiAoXG4gICAgcGF5bG9hZDoge1xuICAgICAgc2hhcmRJZDogbnVtYmVyXG4gICAgICB2OiBudW1iZXJcbiAgICAgIHVzZXI6IFVzZXJcbiAgICAgIGd1aWxkczogYmlnaW50W11cbiAgICAgIHNlc3Npb25JZDogc3RyaW5nXG4gICAgICBzaGFyZD86IG51bWJlcltdXG4gICAgICBhcHBsaWNhdGlvbklkOiBiaWdpbnRcbiAgICB9LFxuICAgIHJhd1BheWxvYWQ6IERpc2NvcmRSZWFkeSxcbiAgKSA9PiB1bmtub3duXG4gIGludGVyYWN0aW9uQ3JlYXRlOiAoaW50ZXJhY3Rpb246IEludGVyYWN0aW9uKSA9PiB1bmtub3duXG4gIGludGVncmF0aW9uQ3JlYXRlOiAoaW50ZWdyYXRpb246IEludGVncmF0aW9uKSA9PiB1bmtub3duXG4gIGludGVncmF0aW9uRGVsZXRlOiAocGF5bG9hZDogeyBpZDogYmlnaW50OyBndWlsZElkOiBiaWdpbnQ7IGFwcGxpY2F0aW9uSWQ/OiBiaWdpbnQgfSkgPT4gdW5rbm93blxuICBpbnRlZ3JhdGlvblVwZGF0ZTogKHBheWxvYWQ6IHsgZ3VpbGRJZDogYmlnaW50IH0pID0+IHVua25vd25cbiAgaW52aXRlQ3JlYXRlOiAoaW52aXRlOiBJbnZpdGUpID0+IHVua25vd25cbiAgaW52aXRlRGVsZXRlOiAocGF5bG9hZDogeyBjaGFubmVsSWQ6IGJpZ2ludDsgZ3VpbGRJZD86IGJpZ2ludDsgY29kZTogc3RyaW5nIH0pID0+IHVua25vd25cbiAgZ3VpbGRNZW1iZXJBZGQ6IChtZW1iZXI6IE1lbWJlciwgdXNlcjogVXNlcikgPT4gdW5rbm93blxuICBndWlsZE1lbWJlclJlbW92ZTogKHVzZXI6IFVzZXIsIGd1aWxkSWQ6IGJpZ2ludCkgPT4gdW5rbm93blxuICBndWlsZE1lbWJlclVwZGF0ZTogKG1lbWJlcjogTWVtYmVyLCB1c2VyOiBVc2VyKSA9PiB1bmtub3duXG4gIGd1aWxkU3RpY2tlcnNVcGRhdGU6IChwYXlsb2FkOiB7IGd1aWxkSWQ6IGJpZ2ludDsgc3RpY2tlcnM6IFN0aWNrZXJbXSB9KSA9PiB1bmtub3duXG4gIG1lc3NhZ2VDcmVhdGU6IChtZXNzYWdlOiBNZXNzYWdlKSA9PiB1bmtub3duXG4gIG1lc3NhZ2VEZWxldGU6IChwYXlsb2FkOiB7IGlkOiBiaWdpbnQ7IGNoYW5uZWxJZDogYmlnaW50OyBndWlsZElkPzogYmlnaW50IH0sIG1lc3NhZ2U/OiBNZXNzYWdlKSA9PiB1bmtub3duXG4gIG1lc3NhZ2VEZWxldGVCdWxrOiAocGF5bG9hZDogeyBpZHM6IGJpZ2ludFtdOyBjaGFubmVsSWQ6IGJpZ2ludDsgZ3VpbGRJZD86IGJpZ2ludCB9KSA9PiB1bmtub3duXG4gIG1lc3NhZ2VVcGRhdGU6IChtZXNzYWdlOiBNZXNzYWdlLCBvbGRNZXNzYWdlPzogTWVzc2FnZSkgPT4gdW5rbm93blxuICByZWFjdGlvbkFkZDogKHBheWxvYWQ6IHtcbiAgICB1c2VySWQ6IGJpZ2ludFxuICAgIGNoYW5uZWxJZDogYmlnaW50XG4gICAgbWVzc2FnZUlkOiBiaWdpbnRcbiAgICBndWlsZElkPzogYmlnaW50XG4gICAgbWVtYmVyPzogTWVtYmVyXG4gICAgdXNlcj86IFVzZXJcbiAgICBlbW9qaTogRW1vamlcbiAgICBtZXNzYWdlQXV0aG9ySWQ/OiBiaWdpbnRcbiAgICBidXJzdDogYm9vbGVhblxuICAgIGJ1cnN0Q29sb3JzPzogc3RyaW5nW11cbiAgfSkgPT4gdW5rbm93blxuICByZWFjdGlvblJlbW92ZTogKHBheWxvYWQ6IHsgdXNlcklkOiBiaWdpbnQ7IGNoYW5uZWxJZDogYmlnaW50OyBtZXNzYWdlSWQ6IGJpZ2ludDsgZ3VpbGRJZD86IGJpZ2ludDsgZW1vamk6IEVtb2ppOyBidXJzdDogYm9vbGVhbiB9KSA9PiB1bmtub3duXG4gIHJlYWN0aW9uUmVtb3ZlRW1vamk6IChwYXlsb2FkOiB7IGNoYW5uZWxJZDogYmlnaW50OyBtZXNzYWdlSWQ6IGJpZ2ludDsgZ3VpbGRJZD86IGJpZ2ludDsgZW1vamk6IEVtb2ppIH0pID0+IHVua25vd25cbiAgcmVhY3Rpb25SZW1vdmVBbGw6IChwYXlsb2FkOiB7IGNoYW5uZWxJZDogYmlnaW50OyBtZXNzYWdlSWQ6IGJpZ2ludDsgZ3VpbGRJZD86IGJpZ2ludCB9KSA9PiB1bmtub3duXG4gIHByZXNlbmNlVXBkYXRlOiAocHJlc2VuY2U6IFByZXNlbmNlVXBkYXRlLCBvbGRQcmVzZW5jZT86IFByZXNlbmNlVXBkYXRlKSA9PiB1bmtub3duXG4gIHZvaWNlU2VydmVyVXBkYXRlOiAocGF5bG9hZDogeyB0b2tlbjogc3RyaW5nOyBlbmRwb2ludD86IHN0cmluZzsgZ3VpbGRJZDogYmlnaW50IH0pID0+IHVua25vd25cbiAgdm9pY2VTdGF0ZVVwZGF0ZTogKHZvaWNlU3RhdGU6IFZvaWNlU3RhdGUpID0+IHVua25vd25cbiAgY2hhbm5lbENyZWF0ZTogKGNoYW5uZWw6IENoYW5uZWwpID0+IHVua25vd25cbiAgZGlzcGF0Y2hSZXF1aXJlbWVudHM6IChkYXRhOiBEaXNjb3JkR2F0ZXdheVBheWxvYWQsIHNoYXJkSWQ6IG51bWJlcikgPT4gdW5rbm93blxuICBjaGFubmVsRGVsZXRlOiAoY2hhbm5lbDogQ2hhbm5lbCkgPT4gdW5rbm93blxuICBjaGFubmVsUGluc1VwZGF0ZTogKGRhdGE6IHsgZ3VpbGRJZD86IGJpZ2ludDsgY2hhbm5lbElkOiBiaWdpbnQ7IGxhc3RQaW5UaW1lc3RhbXA/OiBudW1iZXIgfSkgPT4gdW5rbm93blxuICBjaGFubmVsVXBkYXRlOiAoY2hhbm5lbDogQ2hhbm5lbCkgPT4gdW5rbm93blxuICBzdGFnZUluc3RhbmNlQ3JlYXRlOiAoZGF0YTogeyBpZDogYmlnaW50OyBndWlsZElkOiBiaWdpbnQ7IGNoYW5uZWxJZDogYmlnaW50OyB0b3BpYzogc3RyaW5nIH0pID0+IHVua25vd25cbiAgc3RhZ2VJbnN0YW5jZURlbGV0ZTogKGRhdGE6IHsgaWQ6IGJpZ2ludDsgZ3VpbGRJZDogYmlnaW50OyBjaGFubmVsSWQ6IGJpZ2ludDsgdG9waWM6IHN0cmluZyB9KSA9PiB1bmtub3duXG4gIHN0YWdlSW5zdGFuY2VVcGRhdGU6IChkYXRhOiB7IGlkOiBiaWdpbnQ7IGd1aWxkSWQ6IGJpZ2ludDsgY2hhbm5lbElkOiBiaWdpbnQ7IHRvcGljOiBzdHJpbmcgfSkgPT4gdW5rbm93blxuICBndWlsZEVtb2ppc1VwZGF0ZTogKHBheWxvYWQ6IHsgZ3VpbGRJZDogYmlnaW50OyBlbW9qaXM6IENvbGxlY3Rpb248YmlnaW50LCBFbW9qaT4gfSkgPT4gdW5rbm93blxuICBndWlsZEJhbkFkZDogKHVzZXI6IFVzZXIsIGd1aWxkSWQ6IGJpZ2ludCkgPT4gdW5rbm93blxuICBndWlsZEJhblJlbW92ZTogKHVzZXI6IFVzZXIsIGd1aWxkSWQ6IGJpZ2ludCkgPT4gdW5rbm93blxuICBndWlsZENyZWF0ZTogKGd1aWxkOiBHdWlsZCkgPT4gdW5rbm93blxuICBndWlsZERlbGV0ZTogKGlkOiBiaWdpbnQsIHNoYXJkSWQ6IG51bWJlcikgPT4gdW5rbm93blxuICBndWlsZFVuYXZhaWxhYmxlOiAoaWQ6IGJpZ2ludCwgc2hhcmRJZDogbnVtYmVyKSA9PiB1bmtub3duXG4gIGd1aWxkVXBkYXRlOiAoZ3VpbGQ6IEd1aWxkKSA9PiB1bmtub3duXG4gIHJhdzogKGRhdGE6IERpc2NvcmRHYXRld2F5UGF5bG9hZCwgc2hhcmRJZDogbnVtYmVyKSA9PiB1bmtub3duXG4gIHJvbGVDcmVhdGU6IChyb2xlOiBSb2xlKSA9PiB1bmtub3duXG4gIHJvbGVEZWxldGU6IChwYXlsb2FkOiB7IGd1aWxkSWQ6IGJpZ2ludDsgcm9sZUlkOiBiaWdpbnQgfSkgPT4gdW5rbm93blxuICByb2xlVXBkYXRlOiAocm9sZTogUm9sZSkgPT4gdW5rbm93blxuICB3ZWJob29rc1VwZGF0ZTogKHBheWxvYWQ6IHsgY2hhbm5lbElkOiBiaWdpbnQ7IGd1aWxkSWQ6IGJpZ2ludCB9KSA9PiB1bmtub3duXG4gIGJvdFVwZGF0ZTogKHVzZXI6IFVzZXIpID0+IHVua25vd25cbiAgdHlwaW5nU3RhcnQ6IChwYXlsb2FkOiB7IGd1aWxkSWQ6IGJpZ2ludCB8IHVuZGVmaW5lZDsgY2hhbm5lbElkOiBiaWdpbnQ7IHVzZXJJZDogYmlnaW50OyB0aW1lc3RhbXA6IG51bWJlcjsgbWVtYmVyOiBNZW1iZXIgfCB1bmRlZmluZWQgfSkgPT4gdW5rbm93blxuICBlbnRpdGxlbWVudENyZWF0ZTogKGVudGl0bGVtZW50OiBFbnRpdGxlbWVudCkgPT4gdW5rbm93blxuICBlbnRpdGxlbWVudFVwZGF0ZTogKGVudGl0bGVtZW50OiBFbnRpdGxlbWVudCkgPT4gdW5rbm93blxuICBlbnRpdGxlbWVudERlbGV0ZTogKGVudGl0bGVtZW50OiBFbnRpdGxlbWVudCkgPT4gdW5rbm93blxuICBtZXNzYWdlUG9sbFZvdGVBZGQ6IChwYXlsb2FkOiB7IHVzZXJJZDogYmlnaW50OyBjaGFubmVsSWQ6IGJpZ2ludDsgbWVzc2FnZUlkOiBiaWdpbnQ7IGd1aWxkSWQ/OiBiaWdpbnQ7IGFuc3dlcklkOiBudW1iZXIgfSkgPT4gdW5rbm93blxuICBtZXNzYWdlUG9sbFZvdGVSZW1vdmU6IChwYXlsb2FkOiB7IHVzZXJJZDogYmlnaW50OyBjaGFubmVsSWQ6IGJpZ2ludDsgbWVzc2FnZUlkOiBiaWdpbnQ7IGd1aWxkSWQ/OiBiaWdpbnQ7IGFuc3dlcklkOiBudW1iZXIgfSkgPT4gdW5rbm93blxufVxuIl0sIm5hbWVzIjpbImNyZWF0ZUJvdCIsIm9wdGlvbnMiLCJyZXN0IiwidG9rZW4iLCJhcHBsaWNhdGlvbklkIiwibG9nZ2VyIiwibG9nZ2VyRmFjdG9yeSIsImdhdGV3YXkiLCJldmVudHMiLCJtZXNzYWdlIiwic2hhcmQiLCJkYXRhIiwiYm90IiwicmF3IiwiaWQiLCJ0IiwiZGlzcGF0Y2hSZXF1aXJlbWVudHMiLCJoYW5kbGVycyIsImludGVudHMiLCJwcmVmZXJTbmFrZUNhc2UiLCJnZXRCb3RJZEZyb21Ub2tlbiIsInRyYW5zZm9ybWVycyIsImNyZWF0ZVRyYW5zZm9ybWVycyIsImRlZmF1bHREZXNpcmVkUHJvcGVydGllc1ZhbHVlIiwiY3JlYXRlQm90R2F0ZXdheUhhbmRsZXJzIiwiY3JlYXRlUmVzdE1hbmFnZXIiLCJjcmVhdGVHYXRld2F5TWFuYWdlciIsImNyZWF0ZUxvZ2dlciIsIm5hbWUiLCJoZWxwZXJzIiwic3RhcnQiLCJjb25uZWN0aW9uIiwiZ2V0U2Vzc2lvbkluZm8iLCJ1cmwiLCJ0b3RhbFNoYXJkcyIsInNoYXJkcyIsImxhc3RTaGFyZElkIiwic3Bhd25TaGFyZHMiLCJzaHV0ZG93biIsIlNoYXJkU29ja2V0Q2xvc2VDb2RlcyIsIlNodXRkb3duIiwiY3JlYXRlQm90SGVscGVycyIsInNub3dmbGFrZSJdLCJtYXBwaW5ncyI6Ijs7OzsrQkF1Q2dCQTs7O2VBQUFBOzs7eUJBdEM0QztzQkFFMUI7dUJBRTRDOzBCQUNyQzt5QkFDUzs4QkFDSTtBQStCL0MsU0FBU0EsVUFBVUMsT0FBeUI7SUFDakQsSUFBSSxDQUFDQSxRQUFRQyxJQUFJLEVBQUVELFFBQVFDLElBQUksR0FBRztRQUFFQyxPQUFPRixRQUFRRSxLQUFLO1FBQUVDLGVBQWVILFFBQVFHLGFBQWE7SUFBQztJQUMvRixJQUFJLENBQUNILFFBQVFDLElBQUksQ0FBQ0MsS0FBSyxFQUFFRixRQUFRQyxJQUFJLENBQUNDLEtBQUssR0FBR0YsUUFBUUUsS0FBSztJ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
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ib3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDcmVhdGVHYXRld2F5TWFuYWdlck9wdGlvbnMsIEdhdGV3YXlNYW5hZ2VyIH0gZnJvbSAnQGRpc2NvcmRlbm8vZ2F0ZXdheSdcbmltcG9ydCB7IFNoYXJkU29ja2V0Q2xvc2VDb2RlcywgY3JlYXRlR2F0ZXdheU1hbmFnZXIgfSBmcm9tICdAZGlzY29yZGVuby9nYXRld2F5J1xuaW1wb3J0IHR5cGUgeyBDcmVhdGVSZXN0TWFuYWdlck9wdGlvbnMsIFJlc3RNYW5hZ2VyIH0gZnJvbSAnQGRpc2NvcmRlbm8vcmVzdCdcbmltcG9ydCB7IGNyZWF0ZVJlc3RNYW5hZ2VyIH0gZnJvbSAnQGRpc2NvcmRlbm8vcmVzdCdcbmltcG9ydCB0eXBlIHsgQmlnU3RyaW5nLCBHYXRld2F5RGlzcGF0Y2hFdmVudE5hbWVzLCBHYXRld2F5SW50ZW50cywgUmVjdXJzaXZlUGFydGlhbCB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgY3JlYXRlTG9nZ2VyLCBnZXRCb3RJZEZyb21Ub2tlbiwgdHlwZSBsb2dnZXIgfSBmcm9tICdAZGlzY29yZGVuby91dGlscydcbmltcG9ydCB0eXBlIHtcbiAgQ29tcGxldGVEZXNpcmVkUHJvcGVydGllcyxcbiAgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcixcbiAgU2V0dXBEZXNpcmVkUHJvcHMsXG4gIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLFxuICBUcmFuc2Zvcm1lcnNPYmplY3RzLFxufSBmcm9tICcuL2Rlc2lyZWRQcm9wZXJ0aWVzLmpzJ1xuaW1wb3J0IHR5cGUgeyBFdmVudEhhbmRsZXJzIH0gZnJvbSAnLi9ldmVudHMuanMnXG5pbXBvcnQgeyB0eXBlIEJvdEdhdGV3YXlIYW5kbGVyLCB0eXBlIEdhdGV3YXlIYW5kbGVycywgY3JlYXRlQm90R2F0ZXdheUhhbmRsZXJzIH0gZnJvbSAnLi9oYW5kbGVycy5qcydcbmltcG9ydCB7IHR5cGUgQm90SGVscGVycywgY3JlYXRlQm90SGVscGVycyB9IGZyb20gJy4vaGVscGVycy5qcydcbmltcG9ydCB7IHR5cGUgVHJhbnNmb3JtZXJzLCBjcmVhdGVUcmFuc2Zvcm1lcnMgfSBmcm9tICcuL3RyYW5zZm9ybWVycy5qcydcblxuLyoqXG4gKiBDcmVhdGUgYSBib3Qgb2JqZWN0IHRoYXQgd2lsbCBtYWludGFpbiB0aGUgcmVzdCBhbmQgZ2F0ZXdheSBjb25uZWN0aW9uLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIENvbmZpZ3VyYXRpb25zIG9wdGlvbnMgdXNlZCB0byBtYW5hZ2UgdGhpcyBib3QuXG4gKiBAcmV0dXJucyBCb3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJvdDxcbiAgVFByb3BzIGV4dGVuZHMgUmVjdXJzaXZlUGFydGlhbDxUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcz4sXG4gIFRCZWhhdmlvciBleHRlbmRzIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3IgPSBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLlJlbW92ZUtleSxcbj4ob3B0aW9uczogQ3JlYXRlQm90T3B0aW9uczxUUHJvcHMsIFRCZWhhdmlvcj4pOiBCb3Q8Q29tcGxldGVEZXNpcmVkUHJvcGVydGllczxUUHJvcHM+LCBUQmVoYXZpb3I+IHtcbiAgdHlwZSBDb21wbGV0ZVByb3BzID0gQ29tcGxldGVEZXNpcmVkUHJvcGVydGllczxUUHJvcHM+XG4gIHR5cGUgVHlwZWRCb3QgPSBCb3Q8Q29tcGxldGVQcm9wcywgVEJlaGF2aW9yPlxuXG4gIGlmICghb3B0aW9ucy50cmFuc2Zvcm1lcnMpIG9wdGlvbnMudHJhbnNmb3JtZXJzID0ge31cbiAgaWYgKCFvcHRpb25zLnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcykgb3B0aW9ucy50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMgPSBvcHRpb25zLmRlc2lyZWRQcm9wZXJ0aWVzXG4gIGlmICghb3B0aW9ucy5yZXN0KSBvcHRpb25zLnJlc3QgPSB7IHRva2VuOiBvcHRpb25zLnRva2VuLCBhcHBsaWNhdGlvbklkOiBvcHRpb25zLmFwcGxpY2F0aW9uSWQgfVxuICBpZiAoIW9wdGlvbnMucmVzdC50b2tlbikgb3B0aW9ucy5yZXN0LnRva2VuID0gb3B0aW9ucy50b2tlblxuICBpZiAoIW9wdGlvbnMucmVzdC5sb2dnZXIgJiYgb3B0aW9ucy5sb2dnZXJGYWN0b3J5KSBvcHRpb25zLnJlc3QubG9nZ2VyID0gb3B0aW9ucy5sb2dnZXJGYWN0b3J5KCdSRVNUJylcbiAgaWYgKCFvcHRpb25zLmdhdGV3YXkpIG9wdGlvbnMuZ2F0ZXdheSA9IHsgdG9rZW46IG9wdGlvbnMudG9rZW4gfVxuICBpZiAoIW9wdGlvbnMuZ2F0ZXdheS50b2tlbikgb3B0aW9ucy5nYXRld2F5LnRva2VuID0gb3B0aW9ucy50b2tlblxuICBpZiAoIW9wdGlvbnMuZ2F0ZXdheS5ldmVudHMpIG9wdGlvbnMuZ2F0ZXdheS5ldmVudHMgPSB7fVxuICBpZiAoIW9wdGlvbnMuZ2F0ZXdheS5sb2dnZXIgJiYgb3B0aW9ucy5sb2dnZXJGYWN0b3J5KSBvcHRpb25zLmdhdGV3YXkubG9nZ2VyID0gb3B0aW9ucy5sb2dnZXJGYWN0b3J5KCdHQVRFV0FZJylcbiAgaWYgKCFvcHRpb25zLmdhdGV3YXkuZXZlbnRzLm1lc3NhZ2UpIHtcbiAgICBvcHRpb25zLmdhdGV3YXkuZXZlbnRzLm1lc3NhZ2UgPSBhc3luYyAoc2hhcmQsIGRhdGEpID0+IHtcbiAgICAgIC8vIFRSSUdHRVIgUkFXIEVWRU5UXG4gICAgICBib3QuZXZlbnRzLnJhdz8uKGRhdGEsIHNoYXJkLmlkKVxuXG4gICAgICBpZiAoIWRhdGEudCkgcmV0dXJuXG5cbiAgICAgIC8vIFJVTiBESVNQQVRDSCBDSEVDS1xuICAgICAgYXdhaXQgYm90LmV2ZW50cy5kaXNwYXRjaFJlcXVpcmVtZW50cz8uKGRhdGEsIHNoYXJkLmlkKVxuICAgICAgYm90LmhhbmRsZXJzW2RhdGEudCBhcyBHYXRld2F5RGlzcGF0Y2hFdmVudE5hbWVzXT8uKGJvdCwgZGF0YSwgc2hhcmQuaWQpXG4gICAgfVxuICB9XG5cbiAgb3B0aW9ucy5nYXRld2F5LmludGVudHMgPSBvcHRpb25zLmludGVudHNcbiAgb3B0aW9ucy5nYXRld2F5LnByZWZlclNuYWtlQ2FzZSA9IHRydWVcblxuICBjb25zdCBpZCA9IGdldEJvdElkRnJvbVRva2VuKG9wdGlvbnMudG9rZW4pXG5cbiAgY29uc3QgYm90OiBUeXBlZEJvdCA9IHtcbiAgICBpZCxcbiAgICBhcHBsaWNhdGlvbklkOiBpZCxcbiAgICB0cmFuc2Zvcm1lcnM6IGNyZWF0ZVRyYW5zZm9ybWVycyhvcHRpb25zLnRyYW5zZm9ybWVycykgYXMgVHlwZWRCb3RbJ3RyYW5zZm9ybWVycyddLFxuICAgIGhhbmRsZXJzOiBjcmVhdGVCb3RHYXRld2F5SGFuZGxlcnM8Q29tcGxldGVQcm9wcywgVEJlaGF2aW9yPihvcHRpb25zLmhhbmRsZXJzID8/IHt9KSxcbiAgICByZXN0OiBjcmVhdGVSZXN0TWFuYWdlcihvcHRpb25zLnJlc3QgYXMgQ3JlYXRlUmVzdE1hbmFnZXJPcHRpb25zKSxcbiAgICBnYXRld2F5OiBjcmVhdGVHYXRld2F5TWFuYWdlcihvcHRpb25zLmdhdGV3YXkgYXMgQ3JlYXRlR2F0ZXdheU1hbmFnZXJPcHRpb25zKSxcbiAgICBldmVudHM6IG9wdGlvbnMuZXZlbnRzID8/IHt9LFxuICAgIGxvZ2dlcjogb3B0aW9ucy5sb2dnZXJGYWN0b3J5ID8gb3B0aW9ucy5sb2dnZXJGYWN0b3J5KCdCT1QnKSA6IGNyZWF0ZUxvZ2dlcih7IG5hbWU6ICdCT1QnIH0pLFxuICAgIC8vIFNldCB1cCBoZWxwZXJzIGJlbG93LlxuICAgIGhlbHBlcnM6IHt9IGFzIEJvdEhlbHBlcnM8Q29tcGxldGVQcm9wcywgVEJlaGF2aW9yPixcbiAgICBhc3luYyBzdGFydCgpIHtcbiAgICAgIGlmICghb3B0aW9ucy5nYXRld2F5Py5jb25uZWN0aW9uKSB7XG4gICAgICAgIGJvdC5nYXRld2F5LmNvbm5lY3Rpb24gPSBhd2FpdCBib3QucmVzdC5nZXRTZXNzaW9uSW5mbygpXG5cbiAgICAgICAgLy8gQ2hlY2sgZm9yIG92ZXJyaWRlcyBpbiB0aGUgY29uZmlndXJhdGlvblxuICAgICAgICBpZiAoIW9wdGlvbnMuZ2F0ZXdheT8udXJsKSBib3QuZ2F0ZXdheS51cmwgPSBib3QuZ2F0ZXdheS5jb25uZWN0aW9uLnVybFxuXG4gICAgICAgIGlmICghb3B0aW9ucy5nYXRld2F5Py50b3RhbFNoYXJkcykgYm90LmdhdGV3YXkudG90YWxTaGFyZHMgPSBib3QuZ2F0ZXdheS5jb25uZWN0aW9uLnNoYXJkc1xuXG4gICAgICAgIGlmICghb3B0aW9ucy5nYXRld2F5Py5sYXN0U2hhcmRJZCAmJiAhb3B0aW9ucy5nYXRld2F5Py50b3RhbFNoYXJkcykgYm90LmdhdGV3YXkubGFzdFNoYXJkSWQgPSBib3QuZ2F0ZXdheS5jb25uZWN0aW9uLnNoYXJkcyAtIDFcbiAgICAgIH1cblxuICAgICAgaWYgKCFib3QuZ2F0ZXdheS5yZXNoYXJkaW5nLmdldFNlc3Npb25JbmZvKSB7XG4gICAgICAgIGJvdC5nYXRld2F5LnJlc2hhcmRpbmcuZ2V0U2Vzc2lvbkluZm8gPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldEdhdGV3YXlCb3QoKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IGJvdC5nYXRld2F5LnNwYXduU2hhcmRzKClcbiAgICB9LFxuXG4gICAgYXN5bmMgc2h1dGRvd24oKSB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LmdhdGV3YXkuc2h1dGRvd24oU2hhcmRTb2NrZXRDbG9zZUNvZGVzLlNodXRkb3duLCAnVXNlciByZXF1ZXN0ZWQgYm90IHN0b3AnKVxuICAgIH0sXG4gIH1cblxuICBib3QuaGVscGVycyA9IGNyZWF0ZUJvdEhlbHBlcnMoYm90KVxuICBpZiAob3B0aW9ucy5hcHBsaWNhdGlvbklkKSBib3QuYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKG9wdGlvbnMuYXBwbGljYXRpb25JZClcblxuICByZXR1cm4gYm90XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQm90T3B0aW9uczxUUHJvcHMgZXh0ZW5kcyBSZWN1cnNpdmVQYXJ0aWFsPFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzPiwgVEJlaGF2aW9yIGV4dGVuZHMgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj4ge1xuICAvKiogVGhlIGJvdCdzIHRva2VuLiAqL1xuICB0b2tlbjogc3RyaW5nXG4gIC8qKiBBcHBsaWNhdGlvbiBJZCBvZiB0aGUgYm90IGluY2FzZSBpdCBpcyBhbiBvbGQgYm90IHRva2VuLiAqL1xuICBhcHBsaWNhdGlvbklkPzogQmlnU3RyaW5nXG4gIC8qKiBUaGUgYm90J3MgaW50ZW50cyB0aGF0IHdpbGwgYmUgdXNlZCB0byBtYWtlIGEgY29ubmVjdGlvbiB3aXRoIGRpc2NvcmRzIGdhdGV3YXkuICovXG4gIGludGVudHM/OiBHYXRld2F5SW50ZW50c1xuICAvKiogQW55IG9wdGlvbnMgeW91IHdpc2ggdG8gcHJvdmlkZSB0byB0aGUgcmVzdCBtYW5hZ2VyLiAqL1xuICByZXN0PzogT21pdDxDcmVhdGVSZXN0TWFuYWdlck9wdGlvbnMsICd0b2tlbic+ICYgUGFydGlhbDxQaWNrPENyZWF0ZVJlc3RNYW5hZ2VyT3B0aW9ucywgJ3Rva2VuJz4+XG4gIC8qKiBBbnkgb3B0aW9ucyB5b3Ugd2lzaCB0byBwcm92aWRlIHRvIHRoZSBnYXRld2F5IG1hbmFnZXIuICovXG4gIGdhdGV3YXk/OiBPbWl0PENyZWF0ZUdhdGV3YXlNYW5hZ2VyT3B0aW9ucywgJ3Rva2VuJz4gJiBQYXJ0aWFsPFBpY2s8Q3JlYXRlR2F0ZXdheU1hbmFnZXJPcHRpb25zLCAndG9rZW4nPj5cbiAgLyoqIFRoZSBldmVudCBoYW5kbGVycy4gKi9cbiAgZXZlbnRzPzogUGFydGlhbDxFdmVudEhhbmRsZXJzPENvbXBsZXRlRGVzaXJlZFByb3BlcnRpZXM8Tm9JbmZlcjxUUHJvcHM+PiwgVEJlaGF2aW9yPj5cbiAgLyoqIFRoZSBmdW5jdGlvbnMgdGhhdCBzaG91bGQgdHJhbnNmb3JtIGRpc2NvcmQgb2JqZWN0cyB0byBkaXNjb3JkZW5vIHNoYXBlZCBvYmplY3RzLiAqL1xuICB0cmFuc2Zvcm1lcnM/OiBSZWN1cnNpdmVQYXJ0aWFsPFRyYW5zZm9ybWVyczxDb21wbGV0ZURlc2lyZWRQcm9wZXJ0aWVzPE5vSW5mZXI8VFByb3BzPj4sIFRCZWhhdmlvcj4+XG4gIC8qKiBUaGUgaGFuZGxlciBmdW5jdGlvbnMgdGhhdCBzaG91bGQgaGFuZGxlIGluY29taW5nIGRpc2NvcmQgcGF5bG9hZHMgZnJvbSBnYXRld2F5IGFuZCBjYWxsIGFuIGV2ZW50LiAqL1xuICBoYW5kbGVycz86IFBhcnRpYWw8UmVjb3JkPEdhdGV3YXlEaXNwYXRjaEV2ZW50TmFtZXMsIEJvdEdhdGV3YXlIYW5kbGVyPENvbXBsZXRlRGVzaXJlZFByb3BlcnRpZXM8Tm9JbmZlcjxUUHJvcHM+PiwgVEJlaGF2aW9yPj4+XG4gIC8qKlxuICAgKiBTZXQgdGhlIGRlc2lyZWQgcHJvcGVydGllcyBmb3IgdGhlIGJvdFxuICAgKlxuICAgKiBAZGVmYXVsdCB7fVxuICAgKi9cbiAgZGVzaXJlZFByb3BlcnRpZXM/OiBUUHJvcHNcbiAgLyoqXG4gICAqIFNldCB0aGUgZGVzaXJlZCBwcm9wZXJ0aWVzIGJlaGF2aW9yIGZvciB1bmRlc2lyZWQgcHJvcGVydGllc1xuICAgKlxuICAgKiBAZGVmYXVsdCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLlJlbW92ZUtleVxuICAgKi9cbiAgZGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj86IFRCZWhhdmlvclxuICAvKipcbiAgICogVGhpcyBmYWN0b3J5IHdpbGwgYmUgaW52b2tlZCB0byBjcmVhdGUgdGhlIGxvZ2dlciBmb3IgZ2F0ZXdheSwgcmVzdCBhbmQgYm90XG4gICAqXG4gICAqIEByZW1hcmtzXG4gICAqIElmIG5vdCBwcm92aWRlZCB0aGUgZGVmYXVsdCBsb2dnZXIgd2lsbCBiZSB1c2VkIHdpdGggcmVzdCBhbmQgZ2F0ZXdheSBzaGFyaW5nIHRoZSBzYW1lIGxvZ2dlclxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgaW52b2tlZCAzIHRpbWVzLCBvbmUgd2l0aCB0aGUgbmFtZSBvZiBgUkVTVGAsIG9uZSB3aXRoIGBHQVRFV0FZYCBhbmQgdGhlIHRoaXJkIG9uZSB3aXRoIG5hbWUgYEJPVGBcbiAgICovXG4gIGxvZ2dlckZhY3Rvcnk/OiAobmFtZTogJ1JFU1QnIHwgJ0dBVEVXQVknIHwgJ0JPVCcpID0+IFBpY2s8dHlwZW9mIGxvZ2dlciwgJ2RlYnVnJyB8ICdpbmZvJyB8ICd3YXJuJyB8ICdlcnJvcicgfCAnZmF0YWwnPlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJvdDxcbiAgVFByb3BzIGV4dGVuZHMgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMgPSBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcyxcbiAgVEJlaGF2aW9yIGV4dGVuZHMgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvciA9IERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3IuUmVtb3ZlS2V5LFxuPiB7XG4gIC8qKiBUaGUgaWQgb2YgdGhlIGJvdC4gKi9cbiAgaWQ6IGJpZ2ludFxuICAvKiogVGhlIGFwcGxpY2F0aW9uIGlkIG9mIHRoZSBib3QuIFRoaXMgaXMgdXN1YWxseSB0aGUgc2FtZSBhcyBpZCBidXQgaW4gdGhlIGNhc2Ugb2Ygb2xkIGJvdHMgY2FuIGJlIGRpZmZlcmVudC4gKi9cbiAgYXBwbGljYXRpb25JZDogYmlnaW50XG4gIC8qKiBUaGUgcmVzdCBtYW5hZ2VyLiAqL1xuICByZXN0OiBSZXN0TWFuYWdlclxuICAvKiogVGhlIGdhdGV3YXkgbWFuYWdlci4gKi9cbiAgZ2F0ZXdheTogR2F0ZXdheU1hbmFnZXJcbiAgLyoqIFRoZSBldmVudCBoYW5kbGVycy4gKi9cbiAgZXZlbnRzOiBQYXJ0aWFsPEV2ZW50SGFuZGxlcnM8VFByb3BzLCBUQmVoYXZpb3I+PlxuICAvKiogQSBsb2dnZXIgdXRpbGl0eSB0byBtYWtlIGl0IGVhc3kgdG8gbG9nIG5pY2UgYW5kIHVzZWZ1bCB0aGluZ3MgaW4gdGhlIGJvdCBjb2RlLiAqL1xuICBsb2dnZXI6IFBpY2s8dHlwZW9mIGxvZ2dlciwgJ2RlYnVnJyB8ICdpbmZvJyB8ICd3YXJuJyB8ICdlcnJvcicgfCAnZmF0YWwnPlxuICAvKiogVGhlIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCB0cmFuc2Zvcm0gZGlzY29yZCBvYmplY3RzIHRvIGRpc2NvcmRlbm8gc2hhcGVkIG9iamVjdHMuICovXG4gIHRyYW5zZm9ybWVyczogVHJhbnNmb3JtZXJzPFRQcm9wcywgVEJlaGF2aW9yPiAmIHtcbiAgICAkaW5mZXJyZWRUeXBlczoge1xuICAgICAgW0sgaW4ga2V5b2YgVHJhbnNmb3JtZXJzT2JqZWN0c106IFNldHVwRGVzaXJlZFByb3BzPFRyYW5zZm9ybWVyc09iamVjdHNbS10sIFRQcm9wcywgVEJlaGF2aW9yPlxuICAgIH1cbiAgfVxuICAvKiogVGhlIGhhbmRsZXIgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGhhbmRsZSBpbmNvbWluZyBkaXNjb3JkIHBheWxvYWRzIGZyb20gZ2F0ZXdheSBhbmQgY2FsbCBhbiBldmVudC4gKi9cbiAgaGFuZGxlcnM6IEdhdGV3YXlIYW5kbGVyczxUUHJvcHMsIFRCZWhhdmlvcj5cbiAgaGVscGVyczogQm90SGVscGVyczxUUHJvcHMsIFRCZWhhdmlvcj5cbiAgLyoqIFN0YXJ0IHRoZSBib3QgY29ubmVjdGlvbiB0byB0aGUgZ2F0ZXdheS4gKi9cbiAgc3RhcnQ6ICgpID0+IFByb21pc2U8dm9pZD5cbiAgLyoqIFNodXRzIGRvd24gYWxsIHRoZSBib3QgY29ubmVjdGlvbnMgdG8gdGhlIGdhdGV3YXkuICovXG4gIHNodXRkb3duOiAoKSA9PiBQcm9taXNlPHZvaWQ+XG59XG5cbi8qKiBAaW50ZXJuYWwgVGhpcyBpcyBzdWJqZWN0IHRvIGJyZWFraW5nIGNoYW5nZXMgd2l0aG91dCBub3RpY2UgKi9cbmV4cG9ydCB0eXBlIEludGVybmFsQm90ID0gQm90PENvbXBsZXRlRGVzaXJlZFByb3BlcnRpZXM8e30sIHRydWU+LCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLlJlbW92ZUtleT5cbiJdLCJuYW1lcyI6WyJjcmVhdGVCb3QiLCJvcHRpb25zIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJyZXN0IiwidG9rZW4iLCJhcHBsaWNhdGlvbklkIiwibG9nZ2VyIiwibG9nZ2VyRmFjdG9yeSIsImdhdGV3YXkiLCJldmVudHMiLCJtZXNzYWdlIiwic2hhcmQiLCJkYXRhIiwiYm90IiwicmF3IiwiaWQiLCJ0IiwiZGlzcGF0Y2hSZXF1aXJlbWVudHMiLCJoYW5kbGVycyIsImludGVudHMiLCJwcmVmZXJTbmFrZUNhc2UiLCJnZXRCb3RJZEZyb21Ub2tlbiIsImNyZWF0ZVRyYW5zZm9ybWVycyIsImNyZWF0ZUJvdEdhdGV3YXlIYW5kbGVycyIsImNyZWF0ZVJlc3RNYW5hZ2VyIiwiY3JlYXRlR2F0ZXdheU1hbmFnZXIiLCJjcmVhdGVMb2dnZXIiLCJuYW1lIiwiaGVscGVycyIsInN0YXJ0IiwiY29ubmVjdGlvbiIsImdldFNlc3Npb25JbmZvIiwidXJsIiwidG90YWxTaGFyZHMiLCJzaGFyZHMiLCJsYXN0U2hhcmRJZCIsInJlc2hhcmRpbmciLCJnZXRHYXRld2F5Qm90Iiwic3Bhd25TaGFyZHMiLCJzaHV0ZG93biIsIlNoYXJkU29ja2V0Q2xvc2VDb2RlcyIsIlNodXRkb3duIiwiY3JlYXRlQm90SGVscGVycyIsInNub3dmbGFrZSJdLCJtYXBwaW5ncyI6Ijs7OzsrQkF3QmdCQTs7O2VBQUFBOzs7eUJBdkI0QztzQkFFMUI7dUJBRTJCOzBCQVMwQjt5QkFDckM7OEJBQ0k7QUFRL0MsU0FBU0EsVUFHZEMsT0FBNEM7SUFJNUMsSUFBSSxDQUFDQSxRQUFRQyxZQUFZLEVBQUVELFFBQVFDLFlBQVksR0FBRyxDQUFDO0lBQ25ELElBQUksQ0FBQ0QsUUFBUUMsWUFBWSxDQUFDQyxpQkFB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
@@ -48,4 +48,4 @@ function commandOptionsParser(interaction, options) {
48
48
  return args;
49
49
  }
50
50
 
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kT3B0aW9uc1BhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25UeXBlcyB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBJbnRlcmFjdGlvbiwgSW50ZXJhY3Rpb25EYXRhT3B0aW9uIH0gZnJvbSAnLi9pbmRleC5qcydcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbW1hbmRPcHRpb25zUGFyc2VyKGludGVyYWN0aW9uOiBJbnRlcmFjdGlvbiwgb3B0aW9ucz86IEludGVyYWN0aW9uRGF0YU9wdGlvbltdKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gIGlmICghaW50ZXJhY3Rpb24uZGF0YSkgcmV0dXJuIHt9XG4gIGlmICghb3B0aW9ucykgb3B0aW9ucyA9IGludGVyYWN0aW9uLmRhdGEub3B0aW9ucyA/PyBbXVxuXG4gIGNvbnN0IGFyZ3M6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fVxuXG4gIGZvciAoY29uc3Qgb3B0aW9uIG9mIG9wdGlvbnMpIHtcbiAgICBzd2l0Y2ggKG9wdGlvbi50eXBlKSB7XG4gICAgICBjYXNlIEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvblR5cGVzLlN1YkNvbW1hbmRHcm91cDpcbiAgICAgIGNhc2UgQXBwbGljYXRpb25Db21tYW5kT3B0aW9uVHlwZXMuU3ViQ29tbWFuZDpcbiAgICAgICAgYXJnc1tvcHRpb24ubmFtZV0gPSBjb21tYW5kT3B0aW9uc1BhcnNlcihpbnRlcmFjdGlvbiwgb3B0aW9uLm9wdGlvbnMpXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvblR5cGVzLkNoYW5uZWw6XG4gICAgICAgIGFyZ3Nbb3B0aW9uLm5hbWVdID0gaW50ZXJhY3Rpb24uZGF0YS5yZXNvbHZlZD8uY2hhbm5lbHM/LmdldChCaWdJbnQob3B0aW9uLnZhbHVlISkpXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvblR5cGVzLlJvbGU6XG4gICAgICAgIGFyZ3Nbb3B0aW9uLm5hbWVdID0gaW50ZXJhY3Rpb24uZGF0YS5yZXNvbHZlZD8ucm9sZXM/LmdldChCaWdJbnQob3B0aW9uLnZhbHVlISkpXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvblR5cGVzLlVzZXI6XG4gICAgICAgIGFyZ3Nbb3B0aW9uLm5hbWVdID0ge1xuICAgICAgICAgIHVzZXI6IGludGVyYWN0aW9uLmRhdGEucmVzb2x2ZWQ/LnVzZXJzPy5nZXQoQmlnSW50KG9wdGlvbi52YWx1ZSEpKSxcbiAgICAgICAgICBtZW1iZXI6IGludGVyYWN0aW9uLmRhdGEucmVzb2x2ZWQ/Lm1lbWJlcnM/LmdldChCaWdJbnQob3B0aW9uLnZhbHVlISkpLFxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvblR5cGVzLkF0dGFjaG1lbnQ6XG4gICAgICAgIGFyZ3Nbb3B0aW9uLm5hbWVdID0gaW50ZXJhY3Rpb24uZGF0YS5yZXNvbHZlZD8uYXR0YWNobWVudHM/LmdldChCaWdJbnQob3B0aW9uLnZhbHVlISkpXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvblR5cGVzLk1lbnRpb25hYmxlOlxuICAgICAgICAvLyBNZW50aW9uYWJsZSBhcmUgcm9sZXMgb3IgdXNlcnNcbiAgICAgICAgYXJnc1tvcHRpb24ubmFtZV0gPSBpbnRlcmFjdGlvbi5kYXRhLnJlc29sdmVkPy5yb2xlcz8uZ2V0KEJpZ0ludChvcHRpb24udmFsdWUhKSkgPz8ge1xuICAgICAgICAgIHVzZXI6IGludGVyYWN0aW9uLmRhdGEucmVzb2x2ZWQ/LnVzZXJzPy5nZXQoQmlnSW50KG9wdGlvbi52YWx1ZSEpKSxcbiAgICAgICAgICBtZW1iZXI6IGludGVyYWN0aW9uLmRhdGEucmVzb2x2ZWQ/Lm1lbWJlcnM/LmdldChCaWdJbnQob3B0aW9uLnZhbHVlISkpLFxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBhcmdzW29wdGlvbi5uYW1lXSA9IG9wdGlvbi52YWx1ZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBhcmdzXG59XG4iXSwibmFtZXMiOlsiY29tbWFuZE9wdGlvbnNQYXJzZXIiLCJpbnRlcmFjdGlvbiIsIm9wdGlvbnMiLCJkYXRhIiwiYXJncyIsIm9wdGlvbiIsInR5cGUiLCJBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25UeXBlcyIsIlN1YkNvbW1hbmRHcm91cCIsIlN1YkNvbW1hbmQiLCJuYW1lIiwiQ2hhbm5lbCIsInJlc29sdmVkIiwiY2hhbm5lbHMiLCJnZXQiLCJCaWdJbnQiLCJ2YWx1ZSIsIlJvbGUiLCJyb2xlcyIsIlVzZXIiLCJ1c2VyIiwidXNlcnMiLCJtZW1iZXIiLCJtZW1iZXJzIiwiQXR0YWNobWVudCIsImF0dGFjaG1lbnRzIiwiTWVudGlvbmFibGUiXSwibWFwcGluZ3MiOiI7Ozs7K0JBR2dCQTs7O2VBQUFBOzs7dUJBSDhCO0FBR3ZDLFNBQVNBLHFCQUFxQkMsV0FBd0IsRUFBRUMsT0FBaUM7SUFDOUYsSUFBSSxDQUFDRCxZQUFZRSxJQUFJLEVBQUUsT0FBTyxDQUFDO0lBQy9CLElBQUksQ0FBQ0QsU0FBU0EsVUFBVUQsWUFBWUUsSUFBSSxDQUFDRCxPQUFPLElBQUksRUFBRTtJQUV0RCxNQUFNRSxPQUE0QixDQUFDO0lBRW5DLEtBQUssTUFBTUMsVUFBVUgsUUFBUztRQUM1QixPQUFRRyxPQUFPQyxJQUFJO1lBQ2pCLEtBQUtDLG9DQUE2QixDQUFDQyxlQUFlO1lBQ2xELEtBQUtELG9DQUE2QixDQUFDRSxVQUFVO2dCQUMzQ0wsSUFBSSxDQUFDQyxPQUFPSyxJQUFJLENBQUMsR0FBR1YscUJBQXFCQyxhQUFhSSxPQUFPSCxPQUFPO2dCQUNwRTtZQUNGLEtBQUtLLG9DQUE2QixDQUFDSSxPQUFPO2dCQUN4Q1AsSUFBSSxDQUFDQyxPQUFPSyxJQUFJLENBQUMsR0FBR1QsWUFBWUUsSUFBSSxDQUFDUyxRQUFRLEVBQUVDLFVBQVVDLElBQUlDLE9BQU9WLE9BQU9XLEtBQUs7Z0JBQ2hGO1lBQ0YsS0FBS1Qsb0NBQTZCLENBQUNVLElBQUk7Z0JBQ3JDYixJQUFJLENBQUNDLE9BQU9LLElBQUksQ0FBQyxHQUFHVCxZQUFZRSxJQUFJLENBQUNTLFFBQVEsRUFBRU0sT0FBT0osSUFBSUMsT0FBT1YsT0FBT1csS0FBSztnQkFDN0U7WUFDRixLQUFLVCxvQ0FBNkIsQ0FBQ1ksSUFBSTtnQkFDckNmLElBQUksQ0FBQ0MsT0FBT0ssSUFBSSxDQUFDLEdBQUc7b0JBQ2xCVSxNQUFNbkIsWUFBWUUsSUFBSSxDQUFDUyxRQUFRLEVBQUVTLE9BQU9QLElBQUlDLE9BQU9WLE9BQU9XLEtBQUs7b0JBQy9ETSxRQUFRckIsWUFBWUUsSUFBSSxDQUFDUyxRQUFRLEVBQUVXLFNBQVNULElBQUlDLE9BQU9WLE9BQU9XLEtBQUs7Z0JBQ3JFO2dCQUNBO1lBQ0YsS0FBS1Qsb0NBQTZCLENBQUNpQixVQUFVO2dCQUMzQ3BCLElBQUksQ0FBQ0MsT0FBT0ssSUFBSSxDQUFDLEdBQUdULFlBQVlFLElBQUksQ0FBQ1MsUUFBUSxFQUFFYSxhQUFhWCxJQUFJQyxPQUFPVixPQUFPVyxLQUFLO2dCQUNuRjtZQUNGLEtBQUtULG9DQUE2QixDQUFDbUIsV0FBVztnQkFDNUMsaUNBQWlDO2dCQUNqQ3RCLElBQUksQ0FBQ0MsT0FBT0ssSUFBSSxDQUFDLEdBQUdULFlBQVlFLElBQUksQ0FBQ1MsUUFBUSxFQUFFTSxPQUFPSixJQUFJQyxPQUFPVixPQUFPVyxLQUFLLE1BQU87b0JBQ2xGSSxNQUFNbkIsWUFBWUUsSUFBSSxDQUFDUyxRQUFRLEVBQUVTLE9BQU9QLElBQUlDLE9BQU9WLE9BQU9XLEtBQUs7b0JBQy9ETSxRQUFRckIsWUFBWUUsSUFBSSxDQUFDUyxRQUFRLEVBQUVXLFNBQVNULElBQUlDLE9BQU9WLE9BQU9XLEtBQUs7Z0JBQ3JFO2dCQUNBO1lBQ0Y7Z0JBQ0VaLElBQUksQ0FBQ0MsT0FBT0ssSUFBSSxDQUFDLEdBQUdMLE9BQU9XLEtBQUs7UUFDcEM7SUFDRjtJQUVBLE9BQU9aO0FBQ1QifQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kT3B0aW9uc1BhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25UeXBlcyB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBBdHRhY2htZW50LCBDaGFubmVsLCBJbnRlcmFjdGlvbiwgSW50ZXJhY3Rpb25EYXRhT3B0aW9uLCBNZW1iZXIsIFJvbGUsIFVzZXIgfSBmcm9tICcuL2luZGV4LmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gY29tbWFuZE9wdGlvbnNQYXJzZXIoaW50ZXJhY3Rpb246IEludGVyYWN0aW9uLCBvcHRpb25zPzogSW50ZXJhY3Rpb25EYXRhT3B0aW9uW10pOiBQYXJzZWRJbnRlcmFjdGlvbk9wdGlvbiB7XG4gIGlmICghaW50ZXJhY3Rpb24uZGF0YSkgcmV0dXJuIHt9XG4gIGlmICghb3B0aW9ucykgb3B0aW9ucyA9IGludGVyYWN0aW9uLmRhdGEub3B0aW9ucyA/PyBbXVxuXG4gIGNvbnN0IGFyZ3M6IFBhcnNlZEludGVyYWN0aW9uT3B0aW9uID0ge31cblxuICBmb3IgKGNvbnN0IG9wdGlvbiBvZiBvcHRpb25zKSB7XG4gICAgc3dpdGNoIChvcHRpb24udHlwZSkge1xuICAgICAgY2FzZSBBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25UeXBlcy5TdWJDb21tYW5kR3JvdXA6XG4gICAgICBjYXNlIEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvblR5cGVzLlN1YkNvbW1hbmQ6XG4gICAgICAgIGFyZ3Nbb3B0aW9uLm5hbWVdID0gY29tbWFuZE9wdGlvbnNQYXJzZXIoaW50ZXJhY3Rpb24sIG9wdGlvbi5vcHRpb25zKVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25UeXBlcy5DaGFubmVsOlxuICAgICAgICBhcmdzW29wdGlvbi5uYW1lXSA9IGludGVyYWN0aW9uLmRhdGEucmVzb2x2ZWQ/LmNoYW5uZWxzPy5nZXQoQmlnSW50KG9wdGlvbi52YWx1ZSEpKSBhcyBJbnRlcmFjdGlvblJlc29sdmVkQ2hhbm5lbFxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25UeXBlcy5Sb2xlOlxuICAgICAgICBhcmdzW29wdGlvbi5uYW1lXSA9IGludGVyYWN0aW9uLmRhdGEucmVzb2x2ZWQ/LnJvbGVzPy5nZXQoQmlnSW50KG9wdGlvbi52YWx1ZSEpKSBhcyBSb2xlXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvblR5cGVzLlVzZXI6XG4gICAgICAgIGFyZ3Nbb3B0aW9uLm5hbWVdID0ge1xuICAgICAgICAgIHVzZXI6IGludGVyYWN0aW9uLmRhdGEucmVzb2x2ZWQ/LnVzZXJzPy5nZXQoQmlnSW50KG9wdGlvbi52YWx1ZSEpKSBhcyBVc2VyLFxuICAgICAgICAgIG1lbWJlcjogaW50ZXJhY3Rpb24uZGF0YS5yZXNvbHZlZD8ubWVtYmVycz8uZ2V0KEJpZ0ludChvcHRpb24udmFsdWUhKSkgYXMgSW50ZXJhY3Rpb25SZXNvbHZlZE1lbWJlcixcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25UeXBlcy5BdHRhY2htZW50OlxuICAgICAgICBhcmdzW29wdGlvbi5uYW1lXSA9IGludGVyYWN0aW9uLmRhdGEucmVzb2x2ZWQ/LmF0dGFjaG1lbnRzPy5nZXQoQmlnSW50KG9wdGlvbi52YWx1ZSEpKSBhcyBBdHRhY2htZW50XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvblR5cGVzLk1lbnRpb25hYmxlOlxuICAgICAgICAvLyBNZW50aW9uYWJsZSBhcmUgcm9sZXMgb3IgdXNlcnNcbiAgICAgICAgYXJnc1tvcHRpb24ubmFtZV0gPSAoaW50ZXJhY3Rpb24uZGF0YS5yZXNvbHZlZD8ucm9sZXM/LmdldChCaWdJbnQob3B0aW9uLnZhbHVlISkpIGFzIFJvbGUpID8/IHtcbiAgICAgICAgICB1c2VyOiBpbnRlcmFjdGlvbi5kYXRhLnJlc29sdmVkPy51c2Vycz8uZ2V0KEJpZ0ludChvcHRpb24udmFsdWUhKSkgYXMgVXNlcixcbiAgICAgICAgICBtZW1iZXI6IGludGVyYWN0aW9uLmRhdGEucmVzb2x2ZWQ/Lm1lbWJlcnM/LmdldChCaWdJbnQob3B0aW9uLnZhbHVlISkpIGFzIEludGVyYWN0aW9uUmVzb2x2ZWRNZW1iZXIsXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGFyZ3Nbb3B0aW9uLm5hbWVdID0gb3B0aW9uLnZhbHVlIGFzIFBhcnNlZEludGVyYWN0aW9uT3B0aW9uW3N0cmluZ11cbiAgICB9XG4gIH1cblxuICByZXR1cm4gYXJnc1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlZEludGVyYWN0aW9uT3B0aW9uIHtcbiAgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IEludGVyYWN0aW9uUmVzb2x2ZWRVc2VyIHwgSW50ZXJhY3Rpb25SZXNvbHZlZENoYW5uZWwgfCBSb2xlIHwgQXR0YWNobWVudCB8IFBhcnNlZEludGVyYWN0aW9uT3B0aW9uXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJhY3Rpb25SZXNvbHZlZFVzZXIge1xuICB1c2VyOiBVc2VyXG4gIG1lbWJlcjogSW50ZXJhY3Rpb25SZXNvbHZlZE1lbWJlclxufVxuXG5leHBvcnQgdHlwZSBJbnRlcmFjdGlvblJlc29sdmVkQ2hhbm5lbCA9IFBpY2s8Q2hhbm5lbCwgJ2lkJyB8ICduYW1lJyB8ICd0eXBlJyB8ICdwZXJtaXNzaW9ucycgfCAndGhyZWFkTWV0YWRhdGEnIHwgJ3BhcmVudElkJz5cblxuZXhwb3J0IHR5cGUgSW50ZXJhY3Rpb25SZXNvbHZlZE1lbWJlciA9IE9taXQ8TWVtYmVyLCAndXNlcicgfCAnZGVhZicgfCAnbXV0ZSc+XG4iXSwibmFtZXMiOlsiY29tbWFuZE9wdGlvbnNQYXJzZXIiLCJpbnRlcmFjdGlvbiIsIm9wdGlvbnMiLCJkYXRhIiwiYXJncyIsIm9wdGlvbiIsInR5cGUiLCJBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25UeXBlcyIsIlN1YkNvbW1hbmRHcm91cCIsIlN1YkNvbW1hbmQiLCJuYW1lIiwiQ2hhbm5lbCIsInJlc29sdmVkIiwiY2hhbm5lbHMiLCJnZXQiLCJCaWdJbnQiLCJ2YWx1ZSIsIlJvbGUiLCJyb2xlcyIsIlVzZXIiLCJ1c2VyIiwidXNlcnMiLCJtZW1iZXIiLCJtZW1iZXJzIiwiQXR0YWNobWVudCIsImF0dGFjaG1lbnRzIiwiTWVudGlvbmFibGUiXSwibWFwcGluZ3MiOiI7Ozs7K0JBR2dCQTs7O2VBQUFBOzs7dUJBSDhCO0FBR3ZDLFNBQVNBLHFCQUFxQkMsV0FBd0IsRUFBRUMsT0FBaUM7SUFDOUYsSUFBSSxDQUFDRCxZQUFZRSxJQUFJLEVBQUUsT0FBTyxDQUFDO0lBQy9CLElBQUksQ0FBQ0QsU0FBU0EsVUFBVUQsWUFBWUUsSUFBSSxDQUFDRCxPQUFPLElBQUksRUFBRTtJQUV0RCxNQUFNRSxPQUFnQyxDQUFDO0lBRXZDLEtBQUssTUFBTUMsVUFBVUgsUUFBUztRQUM1QixPQUFRRyxPQUFPQyxJQUFJO1lBQ2pCLEtBQUtDLG9DQUE2QixDQUFDQyxlQUFlO1lBQ2xELEtBQUtELG9DQUE2QixDQUFDRSxVQUFVO2dCQUMzQ0wsSUFBSSxDQUFDQyxPQUFPSyxJQUFJLENBQUMsR0FBR1YscUJBQXFCQyxhQUFhSSxPQUFPSCxPQUFPO2dCQUNwRTtZQUNGLEtBQUtLLG9DQUE2QixDQUFDSSxPQUFPO2dCQUN4Q1AsSUFBSSxDQUFDQyxPQUFPSyxJQUFJLENBQUMsR0FBR1QsWUFBWUUsSUFBSSxDQUFDUyxRQUFRLEVBQUVDLFVBQVVDLElBQUlDLE9BQU9WLE9BQU9XLEtBQUs7Z0JBQ2hGO1lBQ0YsS0FBS1Qsb0NBQTZCLENBQUNVLElBQUk7Z0JBQ3JDYixJQUFJLENBQUNDLE9BQU9LLElBQUksQ0FBQyxHQUFHVCxZQUFZRSxJQUFJLENBQUNTLFFBQVEsRUFBRU0sT0FBT0osSUFBSUMsT0FBT1YsT0FBT1csS0FBSztnQkFDN0U7WUFDRixLQUFLVCxvQ0FBNkIsQ0FBQ1ksSUFBSTtnQkFDckNmLElBQUksQ0FBQ0MsT0FBT0ssSUFBSSxDQUFDLEdBQUc7b0JBQ2xCVSxNQUFNbkIsWUFBWUUsSUFBSSxDQUFDUyxRQUFRLEVBQUVTLE9BQU9QLElBQUlDLE9BQU9WLE9BQU9XLEtBQUs7b0JBQy9ETSxRQUFRckIsWUFBWUUsSUFBSSxDQUFDUyxRQUFRLEVBQUVXLFNBQVNULElBQUlDLE9BQU9WLE9BQU9XLEtBQUs7Z0JBQ3JFO2dCQUNBO1lBQ0YsS0FBS1Qsb0NBQTZCLENBQUNpQixVQUFVO2dCQUMzQ3BCLElBQUksQ0FBQ0MsT0FBT0ssSUFBSSxDQUFDLEdBQUdULFlBQVlFLElBQUksQ0FBQ1MsUUFBUSxFQUFFYSxhQUFhWCxJQUFJQyxPQUFPVixPQUFPVyxLQUFLO2dCQUNuRjtZQUNGLEtBQUtULG9DQUE2QixDQUFDbUIsV0FBVztnQkFDNUMsaUNBQWlDO2dCQUNqQ3RCLElBQUksQ0FBQ0MsT0FBT0ssSUFBSSxDQUFDLEdBQUcsQUFBQ1QsWUFBWUUsSUFBSSxDQUFDUyxRQUFRLEVBQUVNLE9BQU9KLElBQUlDLE9BQU9WLE9BQU9XLEtBQUssTUFBZ0I7b0JBQzVGSSxNQUFNbkIsWUFBWUUsSUFBSSxDQUFDUyxRQUFRLEVBQUVTLE9BQU9QLElBQUlDLE9BQU9WLE9BQU9XLEtBQUs7b0JBQy9ETSxRQUFRckIsWUFBWUUsSUFBSSxDQUFDUyxRQUFRLEVBQUVXLFNBQVNULElBQUlDLE9BQU9WLE9BQU9XLEtBQUs7Z0JBQ3JFO2dCQUNBO1lBQ0Y7Z0JBQ0VaLElBQUksQ0FBQ0MsT0FBT0ssSUFBSSxDQUFDLEdBQUdMLE9BQU9XLEtBQUs7UUFDcEM7SUFDRjtJQUVBLE9BQU9aO0FBQ1QifQ==