@discordeno/bot 19.0.0-next.84e145e → 19.0.0-next.87de1ac

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 +7 -4
  2. package/dist/cjs/commandOptionsParser.cjs +4 -2
  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 +128 -24
  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 +63 -13
  30. package/dist/cjs/transformers/emoji.cjs +21 -2
  31. package/dist/cjs/transformers/entitlement.cjs +1 -1
  32. package/dist/cjs/transformers/guild.cjs +15 -4
  33. package/dist/cjs/transformers/index.cjs +3 -1
  34. package/dist/cjs/transformers/interaction.cjs +86 -26
  35. package/dist/cjs/transformers/invite.cjs +1 -1
  36. package/dist/cjs/transformers/member.cjs +15 -4
  37. package/dist/cjs/transformers/message.cjs +83 -54
  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 +15 -5
  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 +14 -4
  64. package/dist/cjs/transformers/voiceState.cjs +2 -2
  65. package/dist/cjs/transformers/webhook.cjs +1 -1
  66. package/dist/cjs/transformers.cjs +89 -534
  67. package/dist/esm/bot.js +7 -4
  68. package/dist/esm/commandOptionsParser.js +4 -2
  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 +128 -24
  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 +63 -13
  96. package/dist/esm/transformers/emoji.js +18 -2
  97. package/dist/esm/transformers/entitlement.js +1 -1
  98. package/dist/esm/transformers/guild.js +5 -2
  99. package/dist/esm/transformers/index.js +4 -1
  100. package/dist/esm/transformers/interaction.js +75 -27
  101. package/dist/esm/transformers/invite.js +1 -1
  102. package/dist/esm/transformers/member.js +5 -2
  103. package/dist/esm/transformers/message.js +81 -55
  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 +5 -3
  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 +4 -2
  131. package/dist/esm/transformers/voiceState.js +2 -2
  132. package/dist/esm/transformers/webhook.js +1 -1
  133. package/dist/esm/transformers.js +87 -524
  134. package/dist/types/bot.d.ts +30 -227
  135. package/dist/types/bot.d.ts.map +1 -1
  136. package/dist/types/commandOptionsParser.d.ts +9 -4
  137. package/dist/types/commandOptionsParser.d.ts.map +1 -1
  138. package/dist/types/desiredProperties.d.ts +197 -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 +128 -111
  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 +4 -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 +4 -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 +19 -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 +4 -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 +4 -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 +189 -25
  257. package/dist/types/transformers/types.d.ts.map +1 -1
  258. package/dist/types/transformers/user.d.ts +3 -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 -563
  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
@@ -45,9 +45,7 @@ function createBot(options) {
45
45
  const bot = {
46
46
  id,
47
47
  applicationId: id,
48
- transformers: (0, _transformers.createTransformers)(options.transformers, {
49
- defaultDesiredPropertiesValue: options.defaultDesiredPropertiesValue ?? false
50
- }),
48
+ transformers: (0, _transformers.createTransformers)(options.transformers),
51
49
  handlers: (0, _handlers.createBotGatewayHandlers)(options.handlers ?? {}),
52
50
  rest: (0, _rest.createRestManager)(options.rest),
53
51
  gateway: (0, _gateway.createGatewayManager)(options.gateway),
@@ -65,6 +63,11 @@ function createBot(options) {
65
63
  if (!options.gateway?.totalShards) bot.gateway.totalShards = bot.gateway.connection.shards;
66
64
  if (!options.gateway?.lastShardId && !options.gateway?.totalShards) bot.gateway.lastShardId = bot.gateway.connection.shards - 1;
67
65
  }
66
+ if (!bot.gateway.resharding.getSessionInfo) {
67
+ bot.gateway.resharding.getSessionInfo = async ()=>{
68
+ return await bot.rest.getGatewayBot();
69
+ };
70
+ }
68
71
  await bot.gateway.spawnShards();
69
72
  },
70
73
  async shutdown () {
@@ -76,4 +79,4 @@ function createBot(options) {
76
79
  return bot;
77
80
  }
78
81
 
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ib3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDcmVhdGVHYXRld2F5TWFuYWdlck9wdGlvbnMsIEdhdGV3YXlNYW5hZ2VyIH0gZnJvbSAnQGRpc2NvcmRlbm8vZ2F0ZXdheSdcbmltcG9ydCB7IFNoYXJkU29ja2V0Q2xvc2VDb2RlcywgY3JlYXRlR2F0ZXdheU1hbmFnZXIgfSBmcm9tICdAZGlzY29yZGVuby9nYXRld2F5J1xuaW1wb3J0IHR5cGUgeyBDcmVhdGVSZXN0TWFuYWdlck9wdGlvbnMsIFJlc3RNYW5hZ2VyIH0gZnJvbSAnQGRpc2NvcmRlbm8vcmVzdCdcbmltcG9ydCB7IGNyZWF0ZVJlc3RNYW5hZ2VyIH0gZnJvbSAnQGRpc2NvcmRlbm8vcmVzdCdcbmltcG9ydCB0eXBlIHsgQmlnU3RyaW5nLCBEaXNjb3JkR2F0ZXdheVBheWxvYWQsIERpc2NvcmRSZWFkeSwgR2F0ZXdheUludGVudHMsIFJlY3Vyc2l2ZVBhcnRpYWwgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IHR5cGUgQ29sbGVjdGlvbiwgY3JlYXRlTG9nZ2VyLCBnZXRCb3RJZEZyb21Ub2tlbiwgdHlwZSBsb2dnZXIgfSBmcm9tICdAZGlzY29yZGVuby91dGlscydcbmltcG9ydCB7IGNyZWF0ZUJvdEdhdGV3YXlIYW5kbGVycyB9IGZyb20gJy4vaGFuZGxlcnMuanMnXG5pbXBvcnQgeyB0eXBlIEJvdEhlbHBlcnMsIGNyZWF0ZUJvdEhlbHBlcnMgfSBmcm9tICcuL2hlbHBlcnMuanMnXG5pbXBvcnQgeyB0eXBlIFRyYW5zZm9ybWVycywgdHlwZSBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcHJpZXRpZXMsIGNyZWF0ZVRyYW5zZm9ybWVycyB9IGZyb20gJy4vdHJhbnNmb3JtZXJzLmpzJ1xuaW1wb3J0IHR5cGUge1xuICBBdWRpdExvZ0VudHJ5LFxuICBBdXRvTW9kZXJhdGlvbkFjdGlvbkV4ZWN1dGlvbixcbiAgQXV0b01vZGVyYXRpb25SdWxlLFxuICBDaGFubmVsLFxuICBFbW9qaSxcbiAgRW50aXRsZW1lbnQsXG4gIEd1aWxkLFxuICBHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zLFxuICBJbnRlZ3JhdGlvbixcbiAgSW50ZXJhY3Rpb24sXG4gIEludml0ZSxcbiAgTWVtYmVyLFxuICBNZXNzYWdlLFxuICBQcmVzZW5jZVVwZGF0ZSxcbiAgUm9sZSxcbiAgU2NoZWR1bGVkRXZlbnQsXG4gIFN0aWNrZXIsXG4gIFRocmVhZE1lbWJlcixcbiAgVXNlcixcbiAgVm9pY2VTdGF0ZSxcbn0gZnJvbSAnLi90cmFuc2Zvcm1lcnMvaW5kZXguanMnXG5pbXBvcnQgdHlwZSB7IEJvdEdhdGV3YXlIYW5kbGVyT3B0aW9ucyB9IGZyb20gJy4vdHlwaW5ncy5qcydcblxuLyoqXG4gKiBDcmVhdGUgYSBib3Qgb2JqZWN0IHRoYXQgd2lsbCBtYWludGFpbiB0aGUgcmVzdCBhbmQgZ2F0ZXdheSBjb25uZWN0aW9uLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIENvbmZpZ3VyYXRpb25zIG9wdGlvbnMgdXNlZCB0byBtYW5hZ2UgdGhpcyBib3QuXG4gKiBAcmV0dXJucyBCb3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJvdChvcHRpb25zOiBDcmVhdGVCb3RPcHRpb25zKTogQm90IHtcbiAgaWYgKCFvcHRpb25zLnRyYW5zZm9ybWVycykgb3B0aW9ucy50cmFuc2Zvcm1lcnMgPSB7fVxuICBpZiAoIW9wdGlvbnMudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzKSBvcHRpb25zLnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcyA9IG9wdGlvbnMuZGVzaXJlZFByb3BlcnRpZXNcbiAgaWYgKCFvcHRpb25zLnJlc3QpIG9wdGlvbnMucmVzdCA9IHsgdG9rZW46IG9wdGlvbnMudG9rZW4sIGFwcGxpY2F0aW9uSWQ6IG9wdGlvbnMuYXBwbGljYXRpb25JZCB9XG4gIGlmICghb3B0aW9ucy5yZXN0LnRva2VuKSBvcHRpb25zLnJlc3QudG9rZW4gPSBvcHRpb25zLnRva2VuXG4gIGlmICghb3B0aW9ucy5yZXN0LmxvZ2dlciAmJiBvcHRpb25zLmxvZ2dlckZhY3RvcnkpIG9wdGlvbnMucmVzdC5sb2dnZXIgPSBvcHRpb25zLmxvZ2dlckZhY3RvcnkoJ1JFU1QnKVxuICBpZiAoIW9wdGlvbnMuZ2F0ZXdheSkgb3B0aW9ucy5nYXRld2F5ID0geyB0b2tlbjogb3B0aW9ucy50b2tlbiB9XG4gIGlmICghb3B0aW9ucy5nYXRld2F5LnRva2VuKSBvcHRpb25zLmdhdGV3YXkudG9rZW4gPSBvcHRpb25zLnRva2VuXG4gIGlmICghb3B0aW9ucy5nYXRld2F5LmV2ZW50cykgb3B0aW9ucy5nYXRld2F5LmV2ZW50cyA9IHt9XG4gIGlmICghb3B0aW9ucy5nYXRld2F5LmxvZ2dlciAmJiBvcHRpb25zLmxvZ2dlckZhY3RvcnkpIG9wdGlvbnMuZ2F0ZXdheS5sb2dnZXIgPSBvcHRpb25zLmxvZ2dlckZhY3RvcnkoJ0dBVEVXQVknKVxuICBpZiAoIW9wdGlvbnMuZ2F0ZXdheS5ldmVudHMubWVzc2FnZSkge1xuICAgIG9wdGlvbnMuZ2F0ZXdheS5ldmVudHMubWVzc2FnZSA9IGFzeW5jIChzaGFyZCwgZGF0YSkgPT4ge1xuICAgICAgLy8gVFJJR0dFUiBSQVcgRVZFTlRcbiAgICAgIGJvdC5ldmVudHMucmF3Py4oZGF0YSwgc2hhcmQuaWQpXG5cbiAgICAgIGlmICghZGF0YS50KSByZXR1cm5cblxuICAgICAgLy8gUlVOIERJU1BBVENIIENIRUNLXG4gICAgICBhd2FpdCBib3QuZXZlbnRzLmRpc3BhdGNoUmVxdWlyZW1lbnRzPy4oZGF0YSwgc2hhcmQuaWQpXG4gICAgICBib3QuaGFuZGxlcnNbZGF0YS50IGFzIGtleW9mIFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZUJvdEdhdGV3YXlIYW5kbGVycz5dPy4oYm90LCBkYXRhLCBzaGFyZC5pZClcbiAgICB9XG4gIH1cblxuICBvcHRpb25zLmdhdGV3YXkuaW50ZW50cyA9IG9wdGlvbnMuaW50ZW50c1xuICBvcHRpb25zLmdhdGV3YXkucHJlZmVyU25ha2VDYXNlID0gdHJ1ZVxuXG4gIGNvbnN0IGlkID0gZ2V0Qm90SWRGcm9tVG9rZW4ob3B0aW9ucy50b2tlbilcblxuICBjb25zdCBib3Q6IEJvdCA9IHtcbiAgICBpZCxcbiAgICBhcHBsaWNhdGlvbklkOiBpZCxcbiAgICB0cmFuc2Zvcm1lcnM6IGNyZWF0ZVRyYW5zZm9ybWVycyhvcHRpb25zLnRyYW5zZm9ybWVycywgeyBkZWZhdWx0RGVzaXJlZFByb3BlcnRpZXNWYWx1ZTogb3B0aW9ucy5kZWZhdWx0RGVzaXJlZFByb3BlcnRpZXNWYWx1ZSA/PyBmYWxzZSB9KSxcbiAgICBoYW5kbGVyczogY3JlYXRlQm90R2F0ZXdheUhhbmRsZXJzKG9wdGlvbnMuaGFuZGxlcnMgPz8ge30pLFxuICAgIHJlc3Q6IGNyZWF0ZVJlc3RNYW5hZ2VyKG9wdGlvbnMucmVzdCksXG4gICAgZ2F0ZXdheTogY3JlYXRlR2F0ZXdheU1hbmFnZXIob3B0aW9ucy5nYXRld2F5KSxcbiAgICBldmVudHM6IG9wdGlvbnMuZXZlbnRzID8/IHt9LFxuICAgIGxvZ2dlcjogb3B0aW9ucy5sb2dnZXJGYWN0b3J5ID8gb3B0aW9ucy5sb2dnZXJGYWN0b3J5KCdCT1QnKSA6IGNyZWF0ZUxvZ2dlcih7IG5hbWU6ICdCT1QnIH0pLFxuICAgIC8vIFNldCB1cCBoZWxwZXJzIGJlbG93LlxuICAgIGhlbHBlcnM6IHt9IGFzIEJvdEhlbHBlcnMsXG4gICAgYXN5bmMgc3RhcnQoKSB7XG4gICAgICBpZiAoIW9wdGlvbnMuZ2F0ZXdheT8uY29ubmVjdGlvbikge1xuICAgICAgICBib3QuZ2F0ZXdheS5jb25uZWN0aW9uID0gYXdhaXQgYm90LnJlc3QuZ2V0U2Vzc2lvbkluZm8oKVxuXG4gICAgICAgIC8vIENoZWNrIGZvciBvdmVycmlkZXMgaW4gdGhlIGNvbmZpZ3VyYXRpb25cbiAgICAgICAgaWYgKCFvcHRpb25zLmdhdGV3YXk/LnVybCkgYm90LmdhdGV3YXkudXJsID0gYm90LmdhdGV3YXkuY29ubmVjdGlvbi51cmxcblxuICAgICAgICBpZiAoIW9wdGlvbnMuZ2F0ZXdheT8udG90YWxTaGFyZHMpIGJvdC5nYXRld2F5LnRvdGFsU2hhcmRzID0gYm90LmdhdGV3YXkuY29ubmVjdGlvbi5zaGFyZHNcblxuICAgICAgICBpZiAoIW9wdGlvbnMuZ2F0ZXdheT8ubGFzdFNoYXJkSWQgJiYgIW9wdGlvbnMuZ2F0ZXdheT8udG90YWxTaGFyZHMpIGJvdC5nYXRld2F5Lmxhc3RTaGFyZElkID0gYm90LmdhdGV3YXkuY29ubmVjdGlvbi5zaGFyZHMgLSAxXG4gICAgICB9XG5cbiAgICAgIGF3YWl0IGJvdC5nYXRld2F5LnNwYXduU2hhcmRzKClcbiAgICB9LFxuXG4gICAgYXN5bmMgc2h1dGRvd24oKSB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LmdhdGV3YXkuc2h1dGRvd24oU2hhcmRTb2NrZXRDbG9zZUNvZGVzLlNodXRkb3duLCAnVXNlciByZXF1ZXN0ZWQgYm90IHN0b3AnKVxuICAgIH0sXG4gIH1cblxuICBib3QuaGVscGVycyA9IGNyZWF0ZUJvdEhlbHBlcnMoYm90KVxuICBpZiAob3B0aW9ucy5hcHBsaWNhdGlvbklkKSBib3QuYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKG9wdGlvbnMuYXBwbGljYXRpb25JZClcblxuICByZXR1cm4gYm90XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQm90T3B0aW9ucyB7XG4gIC8qKiBUaGUgYm90J3MgdG9rZW4uICovXG4gIHRva2VuOiBzdHJpbmdcbiAgLyoqIEFwcGxpY2F0aW9uIElkIG9mIHRoZSBib3QgaW5jYXNlIGl0IGlzIGFuIG9sZCBib3QgdG9rZW4uICovXG4gIGFwcGxpY2F0aW9uSWQ/OiBCaWdTdHJpbmdcbiAgLyoqIFRoZSBib3QncyBpbnRlbnRzIHRoYXQgd2lsbCBiZSB1c2VkIHRvIG1ha2UgYSBjb25uZWN0aW9uIHdpdGggZGlzY29yZHMgZ2F0ZXdheS4gKi9cbiAgaW50ZW50cz86IEdhdGV3YXlJbnRlbnRzXG4gIC8qKiBBbnkgb3B0aW9ucyB5b3Ugd2lzaCB0byBwcm92aWRlIHRvIHRoZSByZXN0IG1hbmFnZXIuICovXG4gIHJlc3Q/OiBDcmVhdGVSZXN0TWFuYWdlck9wdGlvbnMgJiBQYXJ0aWFsPFBpY2s8Q3JlYXRlUmVzdE1hbmFnZXJPcHRpb25zLCAndG9rZW4nPj5cbiAgLyoqIEFueSBvcHRpb25zIHlvdSB3aXNoIHRvIHByb3ZpZGUgdG8gdGhlIGdhdGV3YXkgbWFuYWdlci4gKi9cbiAgZ2F0ZXdheT86IENyZWF0ZUdhdGV3YXlNYW5hZ2VyT3B0aW9ucyAmIFBhcnRpYWw8UGljazxDcmVhdGVHYXRld2F5TWFuYWdlck9wdGlvbnMsICd0b2tlbic+PlxuICAvKiogVGhlIGV2ZW50IGhhbmRsZXJzLiAqL1xuICBldmVudHM/OiBQYXJ0aWFsPEV2ZW50SGFuZGxlcnM+XG4gIC8qKiBUaGUgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIHRyYW5zZm9ybSBkaXNjb3JkIG9iamVjdHMgdG8gZGlzY29yZGVubyBzaGFwZWQgb2JqZWN0cy4gKi9cbiAgdHJhbnNmb3JtZXJzPzogUmVjdXJzaXZlUGFydGlhbDxUcmFuc2Zvcm1lcnM+XG4gIC8qKiBUaGUgaGFuZGxlciBmdW5jdGlvbnMgdGhhdCBzaG91bGQgaGFuZGxlIGluY29taW5nIGRpc2NvcmQgcGF5bG9hZHMgZnJvbSBnYXRld2F5IGFuZCBjYWxsIGFuIGV2ZW50LiAqL1xuICBoYW5kbGVycz86IFBhcnRpYWw8Qm90R2F0ZXdheUhhbmRsZXJPcHRpb25zPlxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHdpdGggY2F1dGlvblxuICAgKlxuICAgKiBUaGlzIHByb3BlcnR5IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmVhciBmdXR1cmUgd2hlbiB0aGUgQ0xJIGlzIGNvbXBsZXRlLiBJdCBpcyBub3QgcmVjb21tZW5kZWQgdG8gdXNlIHdoYXRzb2V2ZXIuXG4gICAqIEFsdGhvdWdoIGl0IGlzIGhhcmRlciB0byBjcmVhdGUgeW91ciBib3Qgd2l0aG91dCB0aGlzLCBpdCBpcyBzdGlsbCBoaWdobHkgcmVjb21tZW5kZWQgdG8gZG8gaXQgdGhhdCB3YXkuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBkZWZhdWx0RGVzaXJlZFByb3BlcnRpZXNWYWx1ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFNldCB0aGUgZGVzaXJlZCBwcm9wcmlldGllcyBmb3IgdGhlIGJvdFxuICAgKlxuICAgKiBAZGVmYXVsdCB7fVxuICAgKi9cbiAgZGVzaXJlZFByb3BlcnRpZXM/OiBSZWN1cnNpdmVQYXJ0aWFsPFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wcmlldGllcz5cbiAgLyoqXG4gICAqIFRoaXMgZmFjdG9yeSB3aWxsIGJlIGludm9rZWQgdG8gY3JlYXRlIHRoZSBsb2dnZXIgZm9yIGdhdGV3YXksIHJlc3QgYW5kIGJvdFxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBJZiBub3QgcHJvdmlkZWQgdGhlIGRlZmF1bHQgbG9nZ2VyIHdpbGwgYmUgdXNlZCB3aXRoIHJlc3QgYW5kIGdhdGV3YXkgc2hhcmluZyB0aGUgc2FtZSBsb2dnZXJcbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIGludm9rZWQgMyB0aW1lcywgb25lIHdpdGggdGhlIG5hbWUgb2YgYFJFU1RgLCBvbmUgd2l0aCBgR0FURVdBWWAgYW5kIHRoZSB0aGlyZCBvbmUgd2l0aCBuYW1lIGBCT1RgXG4gICAqL1xuICBsb2dnZXJGYWN0b3J5PzogKG5hbWU6ICdSRVNUJyB8ICdHQVRFV0FZJyB8ICdCT1QnKSA9PiBQaWNrPHR5cGVvZiBsb2dnZXIsICdkZWJ1ZycgfCAnaW5mbycgfCAnd2FybicgfCAnZXJyb3InIHwgJ2ZhdGFsJz5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBCb3Qge1xuICAvKiogVGhlIGlkIG9mIHRoZSBib3QuICovXG4gIGlkOiBiaWdpbnRcbiAgLyoqIFRoZSBhcHBsaWNhdGlvbiBpZCBvZiB0aGUgYm90LiBUaGlzIGlzIHVzdWFsbHkgdGhlIHNhbWUgYXMgaWQgYnV0IGluIHRoZSBjYXNlIG9mIG9sZCBib3RzIGNhbiBiZSBkaWZmZXJlbnQuICovXG4gIGFwcGxpY2F0aW9uSWQ6IGJpZ2ludFxuICAvKiogVGhlIHJlc3QgbWFuYWdlci4gKi9cbiAgcmVzdDogUmVzdE1hbmFnZXJcbiAgLyoqIFRoZSBnYXRld2F5IG1hbmFnZXIuICovXG4gIGdhdGV3YXk6IEdhdGV3YXlNYW5hZ2VyXG4gIC8qKiBUaGUgZXZlbnQgaGFuZGxlcnMuICovXG4gIGV2ZW50czogUGFydGlhbDxFdmVudEhhbmRsZXJzPlxuICAvKiogQSBsb2dnZXIgdXRpbGl0eSB0byBtYWtlIGl0IGVhc3kgdG8gbG9nIG5pY2UgYW5kIHVzZWZ1bCB0aGluZ3MgaW4gdGhlIGJvdCBjb2RlLiAqL1xuICBsb2dnZXI6IFBpY2s8dHlwZW9mIGxvZ2dlciwgJ2RlYnVnJyB8ICdpbmZvJyB8ICd3YXJuJyB8ICdlcnJvcicgfCAnZmF0YWwnPlxuICAvKiogVGhlIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCB0cmFuc2Zvcm0gZGlzY29yZCBvYmplY3RzIHRvIGRpc2NvcmRlbm8gc2hhcGVkIG9iamVjdHMuICovXG4gIHRyYW5zZm9ybWVyczogVHJhbnNmb3JtZXJzXG4gIC8qKiBUaGUgaGFuZGxlciBmdW5jdGlvbnMgdGhhdCBzaG91bGQgaGFuZGxlIGluY29taW5nIGRpc2NvcmQgcGF5bG9hZHMgZnJvbSBnYXRld2F5IGFuZCBjYWxsIGFuIGV2ZW50LiAqL1xuICBoYW5kbGVyczogUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlQm90R2F0ZXdheUhhbmRsZXJzPlxuICBoZWxwZXJzOiBCb3RIZWxwZXJzXG4gIC8qKiBTdGFydCB0aGUgYm90IGNvbm5lY3Rpb24gdG8gdGhlIGdhdGV3YXkuICovXG4gIHN0YXJ0OiAoKSA9PiBQcm9taXNlPHZvaWQ+XG4gIC8qKiBTaHV0cyBkb3duIGFsbCB0aGUgYm90IGNvbm5lY3Rpb25zIHRvIHRoZSBnYXRld2F5LiAqL1xuICBzaHV0ZG93bjogKCkgPT4gUHJvbWlzZTx2b2lkPlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50SGFuZGxlcnMge1xuICBkZWJ1ZzogKHRleHQ6IHN0cmluZywgLi4uYXJnczogYW55W10pID0+IHVua25vd25cbiAgYXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnNVcGRhdGU6IChjb21tYW5kOiBHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zKSA9PiB1bmtub3duXG4gIGd1aWxkQXVkaXRMb2dFbnRyeUNyZWF0ZTogKGxvZzogQXVkaXRMb2dFbnRyeSwgZ3VpbGRJZDogYmlnaW50KSA9PiB1bmtub3duXG4gIGF1dG9tb2RSdWxlQ3JlYXRlOiAocnVsZTogQXV0b01vZGVyYXRpb25SdWxlKSA9PiB1bmtub3duXG4gIGF1dG9tb2RSdWxlVXBkYXRlOiAocnVsZTogQXV0b01vZGVyYXRpb25SdWxlKSA9PiB1bmtub3duXG4gIGF1dG9tb2RSdWxlRGVsZXRlOiAocnVsZTogQXV0b01vZGVyYXRpb25SdWxlKSA9PiB1bmtub3duXG4gIGF1dG9tb2RBY3Rpb25FeGVjdXRpb246IChwYXlsb2FkOiBBdXRvTW9kZXJhdGlvbkFjdGlvbkV4ZWN1dGlvbikgPT4gdW5rbm93blxuICB0aHJlYWRDcmVhdGU6ICh0aHJlYWQ6IENoYW5uZWwpID0+IHVua25vd25cbiAgdGhyZWFkRGVsZXRlOiAodGhyZWFkOiBDaGFubmVsKSA9PiB1bmtub3duXG4gIHRocmVhZExpc3RTeW5jOiAocGF5bG9hZDogeyBndWlsZElkOiBiaWdpbnQ7IGNoYW5uZWxJZHM/OiBiaWdpbnRbXTsgdGhyZWFkczogQ2hhbm5lbFtdOyBtZW1iZXJzOiBUaHJlYWRNZW1iZXJbXSB9KSA9PiB1bmtub3duXG4gIHRocmVhZE1lbWJlclVwZGF0ZTogKHBheWxvYWQ6IHsgaWQ6IGJpZ2ludDsgZ3VpbGRJZDogYmlnaW50OyBqb2luZWRBdDogbnVtYmVyOyBmbGFnczogbnVtYmVyIH0pID0+IHVua25vd25cbiAgdGhyZWFkTWVtYmVyc1VwZGF0ZTogKHBheWxvYWQ6IHsgaWQ6IGJpZ2ludDsgZ3VpbGRJZDogYmlnaW50OyBhZGRlZE1lbWJlcnM/OiBUaHJlYWRNZW1iZXJbXTsgcmVtb3ZlZE1lbWJlcklkcz86IGJpZ2ludFtdIH0pID0+IHVua25vd25cbiAgdGhyZWFkVXBkYXRlOiAodGhyZWFkOiBDaGFubmVsKSA9PiB1bmtub3duXG4gIHNjaGVkdWxlZEV2ZW50Q3JlYXRlOiAoZXZlbnQ6IFNjaGVkdWxlZEV2ZW50KSA9PiB1bmtub3duXG4gIHNjaGVkdWxlZEV2ZW50VXBkYXRlOiAoZXZlbnQ6IFNjaGVkdWxlZEV2ZW50KSA9PiB1bmtub3duXG4gIHNjaGVkdWxlZEV2ZW50RGVsZXRlOiAoZXZlbnQ6IFNjaGVkdWxlZEV2ZW50KSA9PiB1bmtub3duXG4gIC8qKiBTZW50IHdoZW4gYSB1c2VyIGhhcyBzdWJzY3JpYmVkIHRvIGEgZ3VpbGQgc2NoZWR1bGVkIGV2ZW50LiBFWFBFUklNRU5UQUwhICovXG4gIHNjaGVkdWxlZEV2ZW50VXNlckFkZDogKHBheWxvYWQ6IHsgZ3VpbGRTY2hlZHVsZWRFdmVudElkOiBiaWdpbnQ7IGd1aWxkSWQ6IGJpZ2ludDsgdXNlcklkOiBiaWdpbnQgfSkgPT4gdW5rbm93blxuICAvKiogU2VudCB3aGVuIGEgdXNlciBoYXMgdW5zdWJzY3JpYmVkIHRvIGEgZ3VpbGQgc2NoZWR1bGVkIGV2ZW50LiBFWFBFUklNRU5UQUwhICovXG4gIHNjaGVkdWxlZEV2ZW50VXNlclJlbW92ZTogKHBheWxvYWQ6IHsgZ3VpbGRTY2hlZHVsZWRFdmVudElkOiBiaWdpbnQ7IGd1aWxkSWQ6IGJpZ2ludDsgdXNlcklkOiBiaWdpbnQgfSkgPT4gdW5rbm93blxuICByZWFkeTogKFxuICAgIHBheWxvYWQ6IHtcbiAgICAgIHNoYXJkSWQ6IG51bWJlclxuICAgICAgdjogbnVtYmVyXG4gICAgICB1c2VyOiBVc2VyXG4gICAgICBndWlsZHM6IGJpZ2ludFtdXG4gICAgICBzZXNzaW9uSWQ6IHN0cmluZ1xuICAgICAgc2hhcmQ/OiBudW1iZXJbXVxuICAgICAgYXBwbGljYXRpb25JZDogYmlnaW50XG4gICAgfSxcbiAgICByYXdQYXlsb2FkOiBEaXNjb3JkUmVhZHksXG4gICkgPT4gdW5rbm93blxuICBpbnRlcmFjdGlvbkNyZWF0ZTogKGludGVyYWN0aW9uOiBJbnRlcmFjdGlvbikgPT4gdW5rbm93blxuICBpbnRlZ3JhdGlvbkNyZWF0ZTogKGludGVncmF0aW9uOiBJbnRlZ3JhdGlvbikgPT4gdW5rbm93blxuICBpbnRlZ3JhdGlvbkRlbGV0ZTogKHBheWxvYWQ6IHsgaWQ6IGJpZ2ludDsgZ3VpbGRJZDogYmlnaW50OyBhcHBsaWNhdGlvbklkPzogYmlnaW50IH0pID0+IHVua25vd25cbiAgaW50ZWdyYXRpb25VcGRhdGU6IChwYXlsb2FkOiB7IGd1aWxkSWQ6IGJpZ2ludCB9KSA9PiB1bmtub3duXG4gIGludml0ZUNyZWF0ZTogKGludml0ZTogSW52aXRlKSA9PiB1bmtub3duXG4gIGludml0ZURlbGV0ZTogKHBheWxvYWQ6IHsgY2hhbm5lbElkOiBiaWdpbnQ7IGd1aWxkSWQ/OiBiaWdpbnQ7IGNvZGU6IHN0cmluZyB9KSA9PiB1bmtub3duXG4gIGd1aWxkTWVtYmVyQWRkOiAobWVtYmVyOiBNZW1iZXIsIHVzZXI6IFVzZXIpID0+IHVua25vd25cbiAgZ3VpbGRNZW1iZXJSZW1vdmU6ICh1c2VyOiBVc2VyLCBndWlsZElkOiBiaWdpbnQpID0+IHVua25vd25cbiAgZ3VpbGRNZW1iZXJVcGRhdGU6IChtZW1iZXI6IE1lbWJlciwgdXNlcjogVXNlcikgPT4gdW5rbm93blxuICBndWlsZFN0aWNrZXJzVXBkYXRlOiAocGF5bG9hZDogeyBndWlsZElkOiBiaWdpbnQ7IHN0aWNrZXJzOiBTdGlja2VyW10gfSkgPT4gdW5rbm93blxuICBtZXNzYWdlQ3JlYXRlOiAobWVzc2FnZTogTWVzc2FnZSkgPT4gdW5rbm93blxuICBtZXNzYWdlRGVsZXRlOiAocGF5bG9hZDogeyBpZDogYmlnaW50OyBjaGFubmVsSWQ6IGJpZ2ludDsgZ3VpbGRJZD86IGJpZ2ludCB9LCBtZXNzYWdlPzogTWVzc2FnZSkgPT4gdW5rbm93blxuICBtZXNzYWdlRGVsZXRlQnVsazogKHBheWxvYWQ6IHsgaWRzOiBiaWdpbnRbXTsgY2hhbm5lbElkOiBiaWdpbnQ7IGd1aWxkSWQ/OiBiaWdpbnQgfSkgPT4gdW5rbm93blxuICBtZXNzYWdlVXBkYXRlOiAobWVzc2FnZTogTWVzc2FnZSwgb2xkTWVzc2FnZT86IE1lc3NhZ2UpID0+IHVua25vd25cbiAgcmVhY3Rpb25BZGQ6IChwYXlsb2FkOiB7XG4gICAgdXNlcklkOiBiaWdpbnRcbiAgICBjaGFubmVsSWQ6IGJpZ2ludFxuICAgIG1lc3NhZ2VJZDogYmlnaW50XG4gICAgZ3VpbGRJZD86IGJpZ2ludFxuICAgIG1lbWJlcj86IE1lbWJlclxuICAgIHVzZXI/OiBVc2VyXG4gICAgZW1vamk6IEVtb2ppXG4gICAgbWVzc2FnZUF1dGhvcklkPzogYmlnaW50XG4gICAgYnVyc3Q6IGJvb2xlYW5cbiAgICBidXJzdENvbG9ycz86IHN0cmluZ1tdXG4gIH0pID0+IHVua25vd25cbiAgcmVhY3Rpb25SZW1vdmU6IChwYXlsb2FkOiB7IHVzZXJJZDogYmlnaW50OyBjaGFubmVsSWQ6IGJpZ2ludDsgbWVzc2FnZUlkOiBiaWdpbnQ7IGd1aWxkSWQ/OiBiaWdpbnQ7IGVtb2ppOiBFbW9qaTsgYnVyc3Q6IGJvb2xlYW4gfSkgPT4gdW5rbm93blxuICByZWFjdGlvblJlbW92ZUVtb2ppOiAocGF5bG9hZDogeyBjaGFubmVsSWQ6IGJpZ2ludDsgbWVzc2FnZUlkOiBiaWdpbnQ7IGd1aWxkSWQ/OiBiaWdpbnQ7IGVtb2ppOiBFbW9qaSB9KSA9PiB1bmtub3duXG4gIHJlYWN0aW9uUmVtb3ZlQWxsOiAocGF5bG9hZDogeyBjaGFubmVsSWQ6IGJpZ2ludDsgbWVzc2FnZUlkOiBiaWdpbnQ7IGd1aWxkSWQ/OiBiaWdpbnQgfSkgPT4gdW5rbm93blxuICBwcmVzZW5jZVVwZGF0ZTogKHByZXNlbmNlOiBQcmVzZW5jZVVwZGF0ZSwgb2xkUHJlc2VuY2U/OiBQcmVzZW5jZVVwZGF0ZSkgPT4gdW5rbm93blxuICB2b2ljZVNlcnZlclVwZGF0ZTogKHBheWxvYWQ6IHsgdG9rZW46IHN0cmluZzsgZW5kcG9pbnQ/OiBzdHJpbmc7IGd1aWxkSWQ6IGJpZ2ludCB9KSA9PiB1bmtub3duXG4gIHZvaWNlU3RhdGVVcGRhdGU6ICh2b2ljZVN0YXRlOiBWb2ljZVN0YXRlKSA9PiB1bmtub3duXG4gIGNoYW5uZWxDcmVhdGU6IChjaGFubmVsOiBDaGFubmVsKSA9PiB1bmtub3duXG4gIGRpc3BhdGNoUmVxdWlyZW1lbnRzOiAoZGF0YTogRGlzY29yZEdhdGV3YXlQYXlsb2FkLCBzaGFyZElkOiBudW1iZXIpID0+IHVua25vd25cbiAgY2hhbm5lbERlbGV0ZTogKGNoYW5uZWw6IENoYW5uZWwpID0+IHVua25vd25cbiAgY2hhbm5lbFBpbnNVcGRhdGU6IChkYXRhOiB7IGd1aWxkSWQ/OiBiaWdpbnQ7IGNoYW5uZWxJZDogYmlnaW50OyBsYXN0UGluVGltZXN0YW1wPzogbnVtYmVyIH0pID0+IHVua25vd25cbiAgY2hhbm5lbFVwZGF0ZTogKGNoYW5uZWw6IENoYW5uZWwpID0+IHVua25vd25cbiAgc3RhZ2VJbnN0YW5jZUNyZWF0ZTogKGRhdGE6IHsgaWQ6IGJpZ2ludDsgZ3VpbGRJZDogYmlnaW50OyBjaGFubmVsSWQ6IGJpZ2ludDsgdG9waWM6IHN0cmluZyB9KSA9PiB1bmtub3duXG4gIHN0YWdlSW5zdGFuY2VEZWxldGU6IChkYXRhOiB7IGlkOiBiaWdpbnQ7IGd1aWxkSWQ6IGJpZ2ludDsgY2hhbm5lbElkOiBiaWdpbnQ7IHRvcGljOiBzdHJpbmcgfSkgPT4gdW5rbm93blxuICBzdGFnZUluc3RhbmNlVXBkYXRlOiAoZGF0YTogeyBpZDogYmlnaW50OyBndWlsZElkOiBiaWdpbnQ7IGNoYW5uZWxJZDogYmlnaW50OyB0b3BpYzogc3RyaW5nIH0pID0+IHVua25vd25cbiAgZ3VpbGRFbW9qaXNVcGRhdGU6IChwYXlsb2FkOiB7IGd1aWxkSWQ6IGJpZ2ludDsgZW1vamlzOiBDb2xsZWN0aW9uPGJpZ2ludCwgRW1vamk+IH0pID0+IHVua25vd25cbiAgZ3VpbGRCYW5BZGQ6ICh1c2VyOiBVc2VyLCBndWlsZElkOiBiaWdpbnQpID0+IHVua25vd25cbiAgZ3VpbGRCYW5SZW1vdmU6ICh1c2VyOiBVc2VyLCBndWlsZElkOiBiaWdpbnQpID0+IHVua25vd25cbiAgZ3VpbGRDcmVhdGU6IChndWlsZDogR3VpbGQpID0+IHVua25vd25cbiAgZ3VpbGREZWxldGU6IChpZDogYmlnaW50LCBzaGFyZElkOiBudW1iZXIpID0+IHVua25vd25cbiAgZ3VpbGRVbmF2YWlsYWJsZTogKGlkOiBiaWdpbnQsIHNoYXJkSWQ6IG51bWJlcikgPT4gdW5rbm93blxuICBndWlsZFVwZGF0ZTogKGd1aWxkOiBHdWlsZCkgPT4gdW5rbm93blxuICByYXc6IChkYXRhOiBEaXNjb3JkR2F0ZXdheVBheWxvYWQsIHNoYXJkSWQ6IG51bWJlcikgPT4gdW5rbm93blxuICByb2xlQ3JlYXRlOiAocm9sZTogUm9sZSkgPT4gdW5rbm93blxuICByb2xlRGVsZXRlOiAocGF5bG9hZDogeyBndWlsZElkOiBiaWdpbnQ7IHJvbGVJZDogYmlnaW50IH0pID0+IHVua25vd25cbiAgcm9sZVVwZGF0ZTogKHJvbGU6IFJvbGUpID0+IHVua25vd25cbiAgd2ViaG9va3NVcGRhdGU6IChwYXlsb2FkOiB7IGNoYW5uZWxJZDogYmlnaW50OyBndWlsZElkOiBiaWdpbnQgfSkgPT4gdW5rbm93blxuICBib3RVcGRhdGU6ICh1c2VyOiBVc2VyKSA9PiB1bmtub3duXG4gIHR5cGluZ1N0YXJ0OiAocGF5bG9hZDogeyBndWlsZElkOiBiaWdpbnQgfCB1bmRlZmluZWQ7IGNoYW5uZWxJZDogYmlnaW50OyB1c2VySWQ6IGJpZ2ludDsgdGltZXN0YW1wOiBudW1iZXI7IG1lbWJlcjogTWVtYmVyIHwgdW5kZWZpbmVkIH0pID0+IHVua25vd25cbiAgZW50aXRsZW1lbnRDcmVhdGU6IChlbnRpdGxlbWVudDogRW50aXRsZW1lbnQpID0+IHVua25vd25cbiAgZW50aXRsZW1lbnRVcGRhdGU6IChlbnRpdGxlbWVudDogRW50aXRsZW1lbnQpID0+IHVua25vd25cbiAgZW50aXRsZW1lbnREZWxldGU6IChlbnRpdGxlbWVudDogRW50aXRsZW1lbnQpID0+IHVua25vd25cbiAgbWVzc2FnZVBvbGxWb3RlQWRkOiAocGF5bG9hZDogeyB1c2VySWQ6IGJpZ2ludDsgY2hhbm5lbElkOiBiaWdpbnQ7IG1lc3NhZ2VJZDogYmlnaW50OyBndWlsZElkPzogYmlnaW50OyBhbnN3ZXJJZDogbnVtYmVyIH0pID0+IHVua25vd25cbiAgbWVzc2FnZVBvbGxWb3RlUmVtb3ZlOiAocGF5bG9hZDogeyB1c2VySWQ6IGJpZ2ludDsgY2hhbm5lbElkOiBiaWdpbnQ7IG1lc3NhZ2VJZDogYmlnaW50OyBndWlsZElkPzogYmlnaW50OyBhbnN3ZXJJZDogbnVtYmVyIH0pID0+IHVua25vd25cbn1cbiJdLCJuYW1lcyI6WyJjcmVhdGVCb3QiLCJvcHRpb25zIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJyZXN0IiwidG9rZW4iLCJhcHBsaWNhdGlvbklkIiwibG9nZ2VyIiwibG9nZ2VyRmFjdG9yeSIsImdhdGV3YXkiLCJldmVudHMiLCJtZXNzYWdlIiwic2hhcmQiLCJkYXRhIiwiYm90IiwicmF3IiwiaWQiLCJ0IiwiZGlzcGF0Y2hSZXF1aXJlbWVudHMiLCJoYW5kbGVycyIsImludGVudHMiLCJwcmVmZXJTbmFrZUNhc2UiLCJnZXRCb3RJZEZyb21Ub2tlbiIsImNyZWF0ZVRyYW5zZm9ybWVycyIsImRlZmF1bHREZXNpcmVkUHJvcGVydGllc1ZhbHVlIiwiY3JlYXRlQm90R2F0ZXdheUhhbmRsZXJzIiwiY3JlYXRlUmVzdE1hbmFnZXIiLCJjcmVhdGVHYXRld2F5TWFuYWdlciIsImNyZWF0ZUxvZ2dlciIsIm5hbWUiLCJoZWxwZXJzIiwic3RhcnQiLCJjb25uZWN0aW9uIiwiZ2V0U2Vzc2lvbkluZm8iLCJ1cmwiLCJ0b3RhbFNoYXJkcyIsInNoYXJkcyIsImxhc3RTaGFyZElkIiwic3Bhd25TaGFyZHMiLCJzaHV0ZG93biIsIlNoYXJkU29ja2V0Q2xvc2VDb2RlcyIsIlNodXRkb3duIiwiY3JlYXRlQm90SGVscGVycyIsInNub3dmbGFrZSJdLCJtYXBwaW5ncyI6Ijs7OzsrQkF1Q2dCQTs7O2VBQUFBOzs7eUJBdEM0QztzQkFFMUI7dUJBRTRDOzBCQUNyQzt5QkFDUzs4QkFDeUM7QUErQnBGLFNBQVNBLFVBQVVDLE9BQXlCO0lBQ2pELElBQUksQ0FBQ0EsUUFBUUMsWUFBWSxFQUFFRCxRQUFRQyxZQUFZLEdBQUcsQ0FBQztJQUNuRCxJQUFJLENBQUNELFFBQVFDLFlBQVksQ0FBQ0MsaUJBQWlCLEVBQUVGLFFBQVFDLFlBQVksQ0FBQ0MsaUJBQWlCLEdBQUdGLFFBQVFFLGlCQUFpQjtJQUMvRyxJQUFJLENBQUNGLFFBQVFHLElBQUksRUFBRUgsUUFBUUcsSUFBSSxHQUFHO1FBQUVDLE9BQU9KLFFBQVFJLEtBQUs7UUFBRUMsZUFBZUwsUUFBUUssYUFBYTtJQUFDO0lBQy9GLElBQUksQ0FBQ0wsUUFBUUcsSUFBSSxDQUFDQyxLQUFLLEVBQUVKLFFBQVFHLElBQUksQ0FBQ0MsS0FBSyxHQUFHSixRQUFRSSxLQUFLO0lBQzNELElBQUksQ0FBQ0osUUFBUUcsSUFBSSxDQUFDRyxNQUFNLElBQUlOLFFBQVFPLGFBQWEsRUFBRVAsUUFBUUcsSUFBSSxDQUFDRyxNQUFNLEdBQUdOLFFBQVFPLGFBQWEsQ0FBQztJQUMvRixJQUFJLENBQUNQLFFBQVFRLE9BQU8sRUFBRVIsUUFBUVEsT0FBTyxHQUFHO1FBQUVKLE9BQU9KLFFBQVFJLEtBQUs7SUFBQztJQUMvRCxJQUFJLENBQUNKLFFBQVFRLE9BQU8sQ0FBQ0osS0FBSyxFQUFFSixRQUFRUSxPQUFPLENBQUNKLEtBQUssR0FBR0osUUFBUUksS0FBSztJQUNqRSxJQUFJLENBQUNKLFFBQVFRLE9BQU8sQ0FBQ0MsTUFBTSxFQUFFVCxRQUFRUSxPQUFPLENBQUNDLE1BQU0sR0FBRyxDQUFDO0lBQ3ZE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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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
@@ -9,7 +9,9 @@ Object.defineProperty(exports, "commandOptionsParser", {
9
9
  }
10
10
  });
11
11
  const _types = require("@discordeno/types");
12
- function commandOptionsParser(interaction, options) {
12
+ function commandOptionsParser(__interaction, options) {
13
+ // This is necessary as typescript gets really confused when using __interaction alone, as it will say that 'data' does not exist despite it surely exist since we have the WithAtLeast
14
+ const interaction = __interaction;
13
15
  if (!interaction.data) return {};
14
16
  if (!options) options = interaction.data.options ?? [];
15
17
  const args = {};
@@ -48,4 +50,4 @@ function commandOptionsParser(interaction, options) {
48
50
  return args;
49
51
  }
50
52
 
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kT3B0aW9uc1BhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25UeXBlcyB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBBdHRhY2htZW50LCBDaGFubmVsLCBJbnRlcmFjdGlvbiwgSW50ZXJhY3Rpb25EYXRhT3B0aW9uLCBNZW1iZXIsIFJvbGUsIFVzZXIgfSBmcm9tICcuL2luZGV4LmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gY29tbWFuZE9wdGlvbnNQYXJzZXIoaW50ZXJhY3Rpb246IEludGVyYWN0aW9uLCBvcHRpb25zPzogSW50ZXJhY3Rpb25EYXRhT3B0aW9uW10pOiBQYXJzZWRJbnRlcmFjdGlvbk9wdGlvbiB7XG4gIGlmICghaW50ZXJhY3Rpb24uZGF0YSkgcmV0dXJuIHt9XG4gIGlmICghb3B0aW9ucykgb3B0aW9ucyA9IGludGVyYWN0aW9uLmRhdGEub3B0aW9ucyA/PyBbXVxuXG4gIGNvbnN0IGFyZ3M6IFBhcnNlZEludGVyYWN0aW9uT3B0aW9uID0ge31cblxuICBmb3IgKGNvbnN0IG9wdGlvbiBvZiBvcHRpb25zKSB7XG4gICAgc3dpdGNoIChvcHRpb24udHlwZSkge1xuICAgICAgY2FzZSBBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25UeXBlcy5TdWJDb21tYW5kR3JvdXA6XG4gICAgICBjYXNlIEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvblR5cGVzLlN1YkNvbW1hbmQ6XG4gICAgICAgIGFyZ3Nbb3B0aW9uLm5hbWVdID0gY29tbWFuZE9wdGlvbnNQYXJzZXIoaW50ZXJhY3Rpb24sIG9wdGlvbi5vcHRpb25zKVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25UeXBlcy5DaGFubmVsOlxuICAgICAgICBhcmdzW29wdGlvbi5uYW1lXSA9IGludGVyYWN0aW9uLmRhdGEucmVzb2x2ZWQ/LmNoYW5uZWxzPy5nZXQoQmlnSW50KG9wdGlvbi52YWx1ZSEpKSBhcyBJbnRlcmFjdGlvblJlc29sdmVkQ2hhbm5lbFxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25UeXBlcy5Sb2xlOlxuICAgICAgICBhcmdzW29wdGlvbi5uYW1lXSA9IGludGVyYWN0aW9uLmRhdGEucmVzb2x2ZWQ/LnJvbGVzPy5nZXQoQmlnSW50KG9wdGlvbi52YWx1ZSEpKSBhcyBSb2xlXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvblR5cGVzLlVzZXI6XG4gICAgICAgIGFyZ3Nbb3B0aW9uLm5hbWVdID0ge1xuICAgICAgICAgIHVzZXI6IGludGVyYWN0aW9uLmRhdGEucmVzb2x2ZWQ/LnVzZXJzPy5nZXQoQmlnSW50KG9wdGlvbi52YWx1ZSEpKSBhcyBVc2VyLFxuICAgICAgICAgIG1lbWJlcjogaW50ZXJhY3Rpb24uZGF0YS5yZXNvbHZlZD8ubWVtYmVycz8uZ2V0KEJpZ0ludChvcHRpb24udmFsdWUhKSkgYXMgSW50ZXJhY3Rpb25SZXNvbHZlZE1lbWJlcixcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25UeXBlcy5BdHRhY2htZW50OlxuICAgICAgICBhcmdzW29wdGlvbi5uYW1lXSA9IGludGVyYWN0aW9uLmRhdGEucmVzb2x2ZWQ/LmF0dGFjaG1lbnRzPy5nZXQoQmlnSW50KG9wdGlvbi52YWx1ZSEpKSBhcyBBdHRhY2htZW50XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvblR5cGVzLk1lbnRpb25hYmxlOlxuICAgICAgICAvLyBNZW50aW9uYWJsZSBhcmUgcm9sZXMgb3IgdXNlcnNcbiAgICAgICAgYXJnc1tvcHRpb24ubmFtZV0gPSAoaW50ZXJhY3Rpb24uZGF0YS5yZXNvbHZlZD8ucm9sZXM/LmdldChCaWdJbnQob3B0aW9uLnZhbHVlISkpIGFzIFJvbGUpID8/IHtcbiAgICAgICAgICB1c2VyOiBpbnRlcmFjdGlvbi5kYXRhLnJlc29sdmVkPy51c2Vycz8uZ2V0KEJpZ0ludChvcHRpb24udmFsdWUhKSkgYXMgVXNlcixcbiAgICAgICAgICBtZW1iZXI6IGludGVyYWN0aW9uLmRhdGEucmVzb2x2ZWQ/Lm1lbWJlcnM/LmdldChCaWdJbnQob3B0aW9uLnZhbHVlISkpIGFzIEludGVyYWN0aW9uUmVzb2x2ZWRNZW1iZXIsXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGFyZ3Nbb3B0aW9uLm5hbWVdID0gb3B0aW9uLnZhbHVlIGFzIFBhcnNlZEludGVyYWN0aW9uT3B0aW9uW3N0cmluZ11cbiAgICB9XG4gIH1cblxuICByZXR1cm4gYXJnc1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlZEludGVyYWN0aW9uT3B0aW9uIHtcbiAgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IEludGVyYWN0aW9uUmVzb2x2ZWRVc2VyIHwgSW50ZXJhY3Rpb25SZXNvbHZlZENoYW5uZWwgfCBSb2xlIHwgQXR0YWNobWVudCB8IFBhcnNlZEludGVyYWN0aW9uT3B0aW9uXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJhY3Rpb25SZXNvbHZlZFVzZXIge1xuICB1c2VyOiBVc2VyXG4gIG1lbWJlcjogSW50ZXJhY3Rpb25SZXNvbHZlZE1lbWJlclxufVxuXG5leHBvcnQgdHlwZSBJbnRlcmFjdGlvblJlc29sdmVkQ2hhbm5lbCA9IFBpY2s8Q2hhbm5lbCwgJ2lkJyB8ICduYW1lJyB8ICd0eXBlJyB8ICdwZXJtaXNzaW9ucycgfCAndGhyZWFkTWV0YWRhdGEnIHwgJ3BhcmVudElkJz5cblxuZXhwb3J0IHR5cGUgSW50ZXJhY3Rpb25SZXNvbHZlZE1lbWJlciA9IE9taXQ8TWVtYmVyLCAndXNlcicgfCAnZGVhZicgfCAnbXV0ZSc+XG4iXSwibmFtZXMiOlsiY29tbWFuZE9wdGlvbnNQYXJzZXIiLCJpbnRlcmFjdGlvbiIsIm9wdGlvbnMiLCJkYXRhIiwiYXJncyIsIm9wdGlvbiIsInR5cGUiLCJBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25UeXBlcyIsIlN1YkNvbW1hbmRHcm91cCIsIlN1YkNvbW1hbmQiLCJuYW1lIiwiQ2hhbm5lbCIsInJlc29sdmVkIiwiY2hhbm5lbHMiLCJnZXQiLCJCaWdJbnQiLCJ2YWx1ZSIsIlJvbGUiLCJyb2xlcyIsIlVzZXIiLCJ1c2VyIiwidXNlcnMiLCJtZW1iZXIiLCJtZW1iZXJzIiwiQXR0YWNobWVudCIsImF0dGFjaG1lbnRzIiwiTWVudGlvbmFibGUiXSwibWFwcGluZ3MiOiI7Ozs7K0JBR2dCQTs7O2VBQUFBOzs7dUJBSDhCO0FBR3ZDLFNBQVNBLHFCQUFxQkMsV0FBd0IsRUFBRUMsT0FBaUM7SUFDOUYsSUFBSSxDQUFDRCxZQUFZRSxJQUFJLEVBQUUsT0FBTyxDQUFDO0lBQy9CLElBQUksQ0FBQ0QsU0FBU0EsVUFBVUQsWUFBWUUsSUFBSSxDQUFDRCxPQUFPLElBQUksRUFBRTtJQUV0RCxNQUFNRSxPQUFnQyxDQUFDO0lBRXZDLEtBQUssTUFBTUMsVUFBVUgsUUFBUztRQUM1QixPQUFRRyxPQUFPQyxJQUFJO1lBQ2pCLEtBQUtDLG9DQUE2QixDQUFDQyxlQUFlO1lBQ2xELEtBQUtELG9DQUE2QixDQUFDRSxVQUFVO2dCQUMzQ0wsSUFBSSxDQUFDQyxPQUFPSyxJQUFJLENBQUMsR0FBR1YscUJBQXFCQyxhQUFhSSxPQUFPSCxPQUFPO2dCQUNwRTtZQUNGLEtBQUtLLG9DQUE2QixDQUFDSSxPQUFPO2dCQUN4Q1AsSUFBSSxDQUFDQyxPQUFPSyxJQUFJLENBQUMsR0FBR1QsWUFBWUUsSUFBSSxDQUFDUyxRQUFRLEVBQUVDLFVBQVVDLElBQUlDLE9BQU9WLE9BQU9XLEtBQUs7Z0JBQ2hGO1lBQ0YsS0FBS1Qsb0NBQTZCLENBQUNVLElBQUk7Z0JBQ3JDYixJQUFJLENBQUNDLE9BQU9LLElBQUksQ0FBQyxHQUFHVCxZQUFZRSxJQUFJLENBQUNTLFFBQVEsRUFBRU0sT0FBT0osSUFBSUMsT0FBT1YsT0FBT1csS0FBSztnQkFDN0U7WUFDRixLQUFLVCxvQ0FBNkIsQ0FBQ1ksSUFBSTtnQkFDckNmLElBQUksQ0FBQ0MsT0FBT0ssSUFBSSxDQUFDLEdBQUc7b0JBQ2xCVSxNQUFNbkIsWUFBWUUsSUFBSSxDQUFDUyxRQUFRLEVBQUVTLE9BQU9QLElBQUlDLE9BQU9WLE9BQU9XLEtBQUs7b0JBQy9ETSxRQUFRckIsWUFBWUUsSUFBSSxDQUFDUyxRQUFRLEVBQUVXLFNBQVNULElBQUlDLE9BQU9WLE9BQU9XLEtBQUs7Z0JBQ3JFO2dCQUNBO1lBQ0YsS0FBS1Qsb0NBQTZCLENBQUNpQixVQUFVO2dCQUMzQ3BCLElBQUksQ0FBQ0MsT0FBT0ssSUFBSSxDQUFDLEdBQUdULFlBQVlFLElBQUksQ0FBQ1MsUUFBUSxFQUFFYSxhQUFhWCxJQUFJQyxPQUFPVixPQUFPVyxLQUFLO2dCQUNuRjtZQUNGLEtBQUtULG9DQUE2QixDQUFDbUIsV0FBVztnQkFDNUMsaUNBQWlDO2dCQUNqQ3RCLElBQUksQ0FBQ0MsT0FBT0ssSUFBSSxDQUFDLEdBQUcsQUFBQ1QsWUFBWUUsSUFBSSxDQUFDUyxRQUFRLEVBQUVNLE9BQU9KLElBQUlDLE9BQU9WLE9BQU9XLEtBQUssTUFBZ0I7b0JBQzVGSSxNQUFNbkIsWUFBWUUsSUFBSSxDQUFDUyxRQUFRLEVBQUVTLE9BQU9QLElBQUlDLE9BQU9WLE9BQU9XLEtBQUs7b0JBQy9ETSxRQUFRckIsWUFBWUUsSUFBSSxDQUFDUyxRQUFRLEVBQUVXLFNBQVNULElBQUlDLE9BQU9WLE9BQU9XLEtBQUs7Z0JBQ3JFO2dCQUNBO1lBQ0Y7Z0JBQ0VaLElBQUksQ0FBQ0MsT0FBT0ssSUFBSSxDQUFDLEdBQUdMLE9BQU9XLEtBQUs7UUFDcEM7SUFDRjtJQUVBLE9BQU9aO0FBQ1QifQ==
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kT3B0aW9uc1BhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25UeXBlcyB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBBdHRhY2htZW50LFxuICBDaGFubmVsLFxuICBDb21wbGV0ZURlc2lyZWRQcm9wZXJ0aWVzLFxuICBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLFxuICBJbnRlcmFjdGlvbixcbiAgSW50ZXJhY3Rpb25EYXRhT3B0aW9uLFxuICBNZW1iZXIsXG4gIFJvbGUsXG4gIFNldHVwRGVzaXJlZFByb3BzLFxuICBUcmFuc2Zvcm1Qcm9wZXJ0eSxcbiAgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsXG4gIFVzZXIsXG59IGZyb20gJy4vaW5kZXguanMnXG5cbmV4cG9ydCBmdW5jdGlvbiBjb21tYW5kT3B0aW9uc1BhcnNlcjxcbiAgVFByb3BzIGV4dGVuZHMgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMgJiB7IGludGVyYWN0aW9uOiB7IGRhdGE6IHRydWUgfSB9LFxuICBUQmVoYXZpb3IgZXh0ZW5kcyBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLFxuPihfX2ludGVyYWN0aW9uOiBTZXR1cERlc2lyZWRQcm9wczxJbnRlcmFjdGlvbiwgVFByb3BzLCBUQmVoYXZpb3I+LCBvcHRpb25zPzogSW50ZXJhY3Rpb25EYXRhT3B0aW9uW10pOiBQYXJzZWRJbnRlcmFjdGlvbk9wdGlvbjxUUHJvcHMsIFRCZWhhdmlvcj4ge1xuICAvLyBUaGlzIGlzIG5lY2Vzc2FyeSBhcyB0eXBlc2NyaXB0IGdldHMgcmVhbGx5IGNvbmZ1c2VkIHdoZW4gdXNpbmcgX19pbnRlcmFjdGlvbiBhbG9uZSwgYXMgaXQgd2lsbCBzYXkgdGhhdCAnZGF0YScgZG9lcyBub3QgZXhpc3QgZGVzcGl0ZSBpdCBzdXJlbHkgZXhpc3Qgc2luY2Ugd2UgaGF2ZSB0aGUgV2l0aEF0TGVhc3RcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBfX2ludGVyYWN0aW9uIGFzIFNldHVwRGVzaXJlZFByb3BzPFxuICAgIEludGVyYWN0aW9uLFxuICAgIENvbXBsZXRlRGVzaXJlZFByb3BlcnRpZXM8eyBpbnRlcmFjdGlvbjogeyBkYXRhOiB0cnVlIH0gfT4sXG4gICAgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvci5SZW1vdmVLZXlcbiAgPlxuXG4gIGlmICghaW50ZXJhY3Rpb24uZGF0YSkgcmV0dXJuIHt9XG4gIGlmICghb3B0aW9ucykgb3B0aW9ucyA9IGludGVyYWN0aW9uLmRhdGEub3B0aW9ucyA/PyBbXVxuXG4gIGNvbnN0IGFyZ3M6IFBhcnNlZEludGVyYWN0aW9uT3B0aW9uPFRQcm9wcywgVEJlaGF2aW9yPiA9IHt9XG5cbiAgZm9yIChjb25zdCBvcHRpb24gb2Ygb3B0aW9ucykge1xuICAgIHN3aXRjaCAob3B0aW9uLnR5cGUpIHtcbiAgICAgIGNhc2UgQXBwbGljYXRpb25Db21tYW5kT3B0aW9uVHlwZXMuU3ViQ29tbWFuZEdyb3VwOlxuICAgICAgY2FzZSBBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25UeXBlcy5TdWJDb21tYW5kOlxuICAgICAgICBhcmdzW29wdGlvbi5uYW1lXSA9IGNvbW1hbmRPcHRpb25zUGFyc2VyKGludGVyYWN0aW9uLCBvcHRpb24ub3B0aW9ucykgYXMgSW50ZXJhY3Rpb25SZXNvbHZlZERhdGE8VFByb3BzLCBUQmVoYXZpb3I+XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvblR5cGVzLkNoYW5uZWw6XG4gICAgICAgIGFyZ3Nbb3B0aW9uLm5hbWVdID0gaW50ZXJhY3Rpb24uZGF0YS5yZXNvbHZlZD8uY2hhbm5lbHM/LmdldChCaWdJbnQob3B0aW9uLnZhbHVlISkpIGFzIEludGVyYWN0aW9uUmVzb2x2ZWREYXRhPFRQcm9wcywgVEJlaGF2aW9yPlxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25UeXBlcy5Sb2xlOlxuICAgICAgICBhcmdzW29wdGlvbi5uYW1lXSA9IGludGVyYWN0aW9uLmRhdGEucmVzb2x2ZWQ/LnJvbGVzPy5nZXQoQmlnSW50KG9wdGlvbi52YWx1ZSEpKSBhcyBJbnRlcmFjdGlvblJlc29sdmVkRGF0YTxUUHJvcHMsIFRCZWhhdmlvcj5cbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgQXBwbGljYXRpb25Db21tYW5kT3B0aW9uVHlwZXMuVXNlcjpcbiAgICAgICAgYXJnc1tvcHRpb24ubmFtZV0gPSB7XG4gICAgICAgICAgdXNlcjogaW50ZXJhY3Rpb24uZGF0YS5yZXNvbHZlZD8udXNlcnM/LmdldChCaWdJbnQob3B0aW9uLnZhbHVlISkpIGFzIEludGVyYWN0aW9uUmVzb2x2ZWREYXRhPFRQcm9wcywgVEJlaGF2aW9yPixcbiAgICAgICAgICBtZW1iZXI6IGludGVyYWN0aW9uLmRhdGEucmVzb2x2ZWQ/Lm1lbWJlcnM/LmdldChCaWdJbnQob3B0aW9uLnZhbHVlISkpIGFzIEludGVyYWN0aW9uUmVzb2x2ZWREYXRhPFRQcm9wcywgVEJlaGF2aW9yPixcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25UeXBlcy5BdHRhY2htZW50OlxuICAgICAgICBhcmdzW29wdGlvbi5uYW1lXSA9IGludGVyYWN0aW9uLmRhdGEucmVzb2x2ZWQ/LmF0dGFjaG1lbnRzPy5nZXQoQmlnSW50KG9wdGlvbi52YWx1ZSEpKSBhcyBJbnRlcmFjdGlvblJlc29sdmVkRGF0YTxUUHJvcHMsIFRCZWhhdmlvcj5cbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgQXBwbGljYXRpb25Db21tYW5kT3B0aW9uVHlwZXMuTWVudGlvbmFibGU6XG4gICAgICAgIC8vIE1lbnRpb25hYmxlIGFyZSByb2xlcyBvciB1c2Vyc1xuICAgICAgICBhcmdzW29wdGlvbi5uYW1lXSA9IChpbnRlcmFjdGlvbi5kYXRhLnJlc29sdmVkPy5yb2xlcz8uZ2V0KEJpZ0ludChvcHRpb24udmFsdWUhKSkgYXMgUGFyc2VkSW50ZXJhY3Rpb25PcHRpb248VFByb3BzLCBUQmVoYXZpb3I+W3N0cmluZ10pID8/IHtcbiAgICAgICAgICB1c2VyOiBpbnRlcmFjdGlvbi5kYXRhLnJlc29sdmVkPy51c2Vycz8uZ2V0KEJpZ0ludChvcHRpb24udmFsdWUhKSkgYXMgSW50ZXJhY3Rpb25SZXNvbHZlZERhdGE8VFByb3BzLCBUQmVoYXZpb3I+LFxuICAgICAgICAgIG1lbWJlcjogaW50ZXJhY3Rpb24uZGF0YS5yZXNvbHZlZD8ubWVtYmVycz8uZ2V0KEJpZ0ludChvcHRpb24udmFsdWUhKSkgYXMgSW50ZXJhY3Rpb25SZXNvbHZlZERhdGE8VFByb3BzLCBUQmVoYXZpb3I+LFxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBhcmdzW29wdGlvbi5uYW1lXSA9IG9wdGlvbi52YWx1ZSBhcyBJbnRlcmFjdGlvblJlc29sdmVkRGF0YTxUUHJvcHMsIFRCZWhhdmlvcj5cbiAgICB9XG4gIH1cblxuICByZXR1cm4gYXJnc1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlZEludGVyYWN0aW9uT3B0aW9uPFRQcm9wcyBleHRlbmRzIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBUQmVoYXZpb3IgZXh0ZW5kcyBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPiB7XG4gIFtrZXk6IHN0cmluZ106IEludGVyYWN0aW9uUmVzb2x2ZWREYXRhPFRQcm9wcywgVEJlaGF2aW9yPlxufVxuXG5leHBvcnQgdHlwZSBJbnRlcmFjdGlvblJlc29sdmVkRGF0YTxUUHJvcHMgZXh0ZW5kcyBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgVEJlaGF2aW9yIGV4dGVuZHMgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj4gPVxuICB8IHN0cmluZ1xuICB8IG51bWJlclxuICB8IGJvb2xlYW5cbiAgfCBUcmFuc2Zvcm1Qcm9wZXJ0eTxJbnRlcmFjdGlvblJlc29sdmVkVXNlciwgVFByb3BzLCBUQmVoYXZpb3I+XG4gIHwgVHJhbnNmb3JtUHJvcGVydHk8SW50ZXJhY3Rpb25SZXNvbHZlZENoYW5uZWwsIFRQcm9wcywgVEJlaGF2aW9yPlxuICB8IFRyYW5zZm9ybVByb3BlcnR5PFJvbGUsIFRQcm9wcywgVEJlaGF2aW9yPlxuICB8IFRyYW5zZm9ybVByb3BlcnR5PEF0dGFjaG1lbnQsIFRQcm9wcywgVEJlaGF2aW9yPlxuICB8IFBhcnNlZEludGVyYWN0aW9uT3B0aW9uPFRQcm9wcywgVEJlaGF2aW9yPlxuXG5leHBvcnQgaW50ZXJmYWNlIEludGVyYWN0aW9uUmVzb2x2ZWRVc2VyIHtcbiAgdXNlcjogVXNlclxuICBtZW1iZXI6IEludGVyYWN0aW9uUmVzb2x2ZWRNZW1iZXJcbn1cblxuZXhwb3J0IHR5cGUgSW50ZXJhY3Rpb25SZXNvbHZlZENoYW5uZWwgPSBQaWNrPENoYW5uZWwsICdpZCcgfCAnbmFtZScgfCAndHlwZScgfCAncGVybWlzc2lvbnMnIHwgJ3RocmVhZE1ldGFkYXRhJyB8ICdwYXJlbnRJZCc+XG5cbmV4cG9ydCB0eXBlIEludGVyYWN0aW9uUmVzb2x2ZWRNZW1iZXIgPSBPbWl0PE1lbWJlciwgJ3VzZXInIHwgJ2RlYWYnIHwgJ211dGUnPlxuIl0sIm5hbWVzIjpbImNvbW1hbmRPcHRpb25zUGFyc2VyIiwiX19pbnRlcmFjdGlvbiIsIm9wdGlvbnMiLCJpbnRlcmFjdGlvbiIsImRhdGEiLCJhcmdzIiwib3B0aW9uIiwidHlwZSIsIkFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvblR5cGVzIiwiU3ViQ29tbWFuZEdyb3VwIiwiU3ViQ29tbWFuZCIsIm5hbWUiLCJDaGFubmVsIiwicmVzb2x2ZWQiLCJjaGFubmVscyIsImdldCIsIkJpZ0ludCIsInZhbHVlIiwiUm9sZSIsInJvbGVzIiwiVXNlciIsInVzZXIiLCJ1c2VycyIsIm1lbWJlciIsIm1lbWJlcnMiLCJBdHRhY2htZW50IiwiYXR0YWNobWVudHMiLCJNZW50aW9uYWJsZSJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFnQmdCQTs7O2VBQUFBOzs7dUJBaEI4QjtBQWdCdkMsU0FBU0EscUJBR2RDLGFBQWdFLEVBQUVDLE9BQWlDO0lBQ25HLHVMQUF1TDtJQUN2TCxNQUFNQyxjQUFjRjtJQU1wQixJQUFJLENBQUNFLFlBQVlDLElBQUksRUFBRSxPQUFPLENBQUM7SUFDL0IsSUFBSSxDQUFDRixTQUFTQSxVQUFVQyxZQUFZQyxJQUFJLENBQUNGLE9BQU8sSUFBSSxFQUFFO0lBRXRELE1BQU1HLE9BQW1ELENBQUM7SUFFMUQsS0FBSyxNQUFNQyxVQUFVSixRQUFTO1FBQzVCLE9BQVFJLE9BQU9DLElBQUk7WUFDakIsS0FBS0Msb0NBQTZCLENBQUNDLGVBQWU7WUFDbEQsS0FBS0Qsb0NBQTZCLENBQUNFLFVBQVU7Z0JBQzNDTCxJQUFJLENBQUNDLE9BQU9LLElBQUksQ0FBQyxHQUFHWCxxQkFBcUJHLGFBQWFHLE9BQU9KLE9BQU87Z0JBQ3BFO1lBQ0YsS0FBS00sb0NBQTZCLENBQUNJLE9BQU87Z0JBQ3hDUCxJQUFJLENBQUNDLE9BQU9LLElBQUksQ0FBQyxHQUFHUixZQUFZQyxJQUFJLENBQUNTLFFBQVEsRUFBRUMsVUFBVUMsSUFBSUMsT0FBT1YsT0FBT1csS0FBSztnQkFDaEY7WUFDRixLQUFLVCxvQ0FBNkIsQ0FBQ1UsSUFBSTtnQkFDckNiLElBQUksQ0FBQ0MsT0FBT0ssSUFBSSxDQUFDLEdBQUdSLFlBQVlDLElBQUksQ0FBQ1MsUUFBUSxFQUFFTSxPQUFPSixJQUFJQyxPQUFPVixPQUFPVyxLQUFLO2dCQUM3RTtZQUNGLEtBQUtULG9DQUE2QixDQUFDWSxJQUFJO2dCQUNyQ2YsSUFBSSxDQUFDQyxPQUFPSyxJQUFJLENBQUMsR0FBRztvQkFDbEJVLE1BQU1sQixZQUFZQyxJQUFJLENBQUNTLFFBQVEsRUFBRVMsT0FBT1AsSUFBSUMsT0FBT1YsT0FBT1csS0FBSztvQkFDL0RNLFFBQVFwQixZQUFZQyxJQUFJLENBQUNTLFFBQVEsRUFBRVcsU0FBU1QsSUFBSUMsT0FBT1YsT0FBT1csS0FBSztnQkFDckU7Z0JBQ0E7WUFDRixLQUFLVCxvQ0FBNkIsQ0FBQ2lCLFVBQVU7Z0JBQzNDcEIsSUFBSSxDQUFDQyxPQUFPSyxJQUFJLENBQUMsR0FBR1IsWUFBWUMsSUFBSSxDQUFDUyxRQUFRLEVBQUVhLGFBQWFYLElBQUlDLE9BQU9WLE9BQU9XLEtBQUs7Z0JBQ25GO1lBQ0YsS0FBS1Qsb0NBQTZCLENBQUNtQixXQUFXO2dCQUM1QyxpQ0FBaUM7Z0JBQ2pDdEIsSUFBSSxDQUFDQyxPQUFPSyxJQUFJLENBQUMsR0FBRyxBQUFDUixZQUFZQyxJQUFJLENBQUNTLFFBQVEsRUFBRU0sT0FBT0osSUFBSUMsT0FBT1YsT0FBT1csS0FBSyxNQUE4RDtvQkFDMUlJLE1BQU1sQixZQUFZQyxJQUFJLENBQUNTLFFBQVEsRUFBRVMsT0FBT1AsSUFBSUMsT0FBT1YsT0FBT1csS0FBSztvQkFDL0RNLFFBQVFwQixZQUFZQyxJQUFJLENBQUNTLFFBQVEsRUFBRVcsU0FBU1QsSUFBSUMsT0FBT1YsT0FBT1csS0FBSztnQkFDckU7Z0JBQ0E7WUFDRjtnQkFDRVosSUFBSSxDQUFDQyxPQUFPSyxJQUFJLENBQUMsR0FBR0wsT0FBT1csS0FBSztRQUNwQztJQUNGO0lBRUEsT0FBT1o7QUFDVCJ9