@discordeno/bot 22.0.1-next.f334bb8 → 22.0.1-next.f4e424f
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bot.d.ts +3 -3
- package/dist/bot.d.ts.map +1 -1
- package/dist/bot.js +3 -2
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +2 -2
- package/dist/desiredProperties.d.ts +4 -1
- package/dist/desiredProperties.d.ts.map +1 -1
- package/dist/desiredProperties.js +38 -1
- package/dist/events.d.ts +22 -7
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +1 -1
- package/dist/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.js +2 -2
- package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.js +2 -2
- package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.js +2 -2
- package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.js +2 -2
- package/dist/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js +2 -2
- package/dist/handlers/invites/INVITE_CREATE.d.ts.map +1 -1
- package/dist/handlers/invites/INVITE_CREATE.js +20 -5
- package/dist/handlers/invites/INVITE_DELETE.d.ts.map +1 -1
- package/dist/handlers/invites/INVITE_DELETE.js +4 -4
- package/dist/handlers/members/GUILD_MEMBER_UPDATE.d.ts.map +1 -1
- package/dist/handlers/members/GUILD_MEMBER_UPDATE.js +4 -4
- package/dist/handlers/messages/MESSAGE_REACTION_ADD.d.ts.map +1 -1
- package/dist/handlers/messages/MESSAGE_REACTION_ADD.js +4 -3
- package/dist/handlers/messages/MESSAGE_REACTION_REMOVE.d.ts.map +1 -1
- package/dist/handlers/messages/MESSAGE_REACTION_REMOVE.js +4 -3
- package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.d.ts.map +1 -1
- package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.js +4 -3
- package/dist/helpers.d.ts +15 -2
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +52 -12
- package/dist/transformers/activity.d.ts +17 -5
- package/dist/transformers/activity.d.ts.map +1 -1
- package/dist/transformers/activity.js +55 -37
- package/dist/transformers/application.d.ts +3 -3
- package/dist/transformers/application.d.ts.map +1 -1
- package/dist/transformers/application.js +18 -7
- package/dist/transformers/applicationCommand.d.ts +3 -2
- package/dist/transformers/applicationCommand.d.ts.map +1 -1
- package/dist/transformers/applicationCommand.js +19 -17
- package/dist/transformers/applicationCommandOption.d.ts +3 -2
- package/dist/transformers/applicationCommandOption.d.ts.map +1 -1
- package/dist/transformers/applicationCommandOption.js +22 -19
- package/dist/transformers/applicationCommandOptionChoice.d.ts +3 -2
- package/dist/transformers/applicationCommandOptionChoice.d.ts.map +1 -1
- package/dist/transformers/applicationCommandOptionChoice.js +10 -8
- package/dist/transformers/applicationCommandPermission.d.ts +7 -3
- package/dist/transformers/applicationCommandPermission.d.ts.map +1 -1
- package/dist/transformers/applicationCommandPermission.js +20 -13
- package/dist/transformers/attachment.d.ts +3 -1
- package/dist/transformers/attachment.d.ts.map +1 -1
- package/dist/transformers/attachment.js +12 -4
- package/dist/transformers/auditLogEntry.d.ts +7 -3
- package/dist/transformers/auditLogEntry.d.ts.map +1 -1
- package/dist/transformers/auditLogEntry.js +32 -25
- package/dist/transformers/automodActionExecution.d.ts +10 -3
- package/dist/transformers/automodActionExecution.d.ts.map +1 -1
- package/dist/transformers/automodActionExecution.js +35 -23
- package/dist/transformers/automodRule.d.ts +7 -3
- package/dist/transformers/automodRule.d.ts.map +1 -1
- package/dist/transformers/automodRule.js +30 -30
- package/dist/transformers/avatarDecorationData.d.ts +3 -2
- package/dist/transformers/avatarDecorationData.d.ts.map +1 -1
- package/dist/transformers/avatarDecorationData.js +6 -3
- package/dist/transformers/channel.d.ts +6 -3
- package/dist/transformers/channel.d.ts.map +1 -1
- package/dist/transformers/channel.js +11 -6
- package/dist/transformers/component.d.ts +9 -4
- package/dist/transformers/component.d.ts.map +1 -1
- package/dist/transformers/component.js +76 -51
- package/dist/transformers/embed.d.ts +16 -3
- package/dist/transformers/embed.d.ts.map +1 -1
- package/dist/transformers/embed.js +71 -42
- package/dist/transformers/emoji.d.ts +7 -3
- package/dist/transformers/emoji.d.ts.map +1 -1
- package/dist/transformers/emoji.js +10 -5
- package/dist/transformers/entitlement.d.ts +3 -2
- package/dist/transformers/entitlement.d.ts.map +1 -1
- package/dist/transformers/entitlement.js +6 -3
- package/dist/transformers/gatewayBot.d.ts +7 -3
- package/dist/transformers/gatewayBot.d.ts.map +1 -1
- package/dist/transformers/gatewayBot.js +20 -13
- package/dist/transformers/guild.d.ts +3 -2
- package/dist/transformers/guild.d.ts.map +1 -1
- package/dist/transformers/guild.js +25 -25
- package/dist/transformers/incidentsData.d.ts +3 -2
- package/dist/transformers/incidentsData.d.ts.map +1 -1
- package/dist/transformers/incidentsData.js +6 -3
- package/dist/transformers/integration.d.ts +10 -3
- package/dist/transformers/integration.d.ts.map +1 -1
- package/dist/transformers/integration.js +43 -31
- package/dist/transformers/interaction.d.ts +20 -12
- package/dist/transformers/interaction.d.ts.map +1 -1
- package/dist/transformers/interaction.js +47 -32
- package/dist/transformers/invite.d.ts +4 -4
- package/dist/transformers/invite.d.ts.map +1 -1
- package/dist/transformers/invite.js +26 -25
- package/dist/transformers/lobby.d.ts +13 -4
- package/dist/transformers/lobby.d.ts.map +1 -1
- package/dist/transformers/lobby.js +35 -5
- package/dist/transformers/member.d.ts +3 -2
- package/dist/transformers/member.d.ts.map +1 -1
- package/dist/transformers/member.js +6 -3
- package/dist/transformers/message.d.ts +20 -10
- package/dist/transformers/message.d.ts.map +1 -1
- package/dist/transformers/message.js +52 -25
- package/dist/transformers/onboarding.d.ts +9 -4
- package/dist/transformers/onboarding.d.ts.map +1 -1
- package/dist/transformers/onboarding.js +17 -10
- package/dist/transformers/poll.d.ts +6 -3
- package/dist/transformers/poll.d.ts.map +1 -1
- package/dist/transformers/poll.js +14 -7
- package/dist/transformers/presence.d.ts +3 -2
- package/dist/transformers/presence.d.ts.map +1 -1
- package/dist/transformers/presence.js +10 -6
- package/dist/transformers/reverse/activity.d.ts +4 -3
- package/dist/transformers/reverse/activity.d.ts.map +1 -1
- package/dist/transformers/reverse/activity.js +20 -24
- package/dist/transformers/reverse/applicationCommand.js +2 -2
- package/dist/transformers/reverse/component.d.ts.map +1 -1
- package/dist/transformers/reverse/component.js +4 -1
- package/dist/transformers/reverse/embed.d.ts.map +1 -1
- package/dist/transformers/reverse/embed.js +19 -4
- package/dist/transformers/reverse/member.d.ts.map +1 -1
- package/dist/transformers/reverse/member.js +4 -2
- package/dist/transformers/reverse/presence.d.ts.map +1 -1
- package/dist/transformers/reverse/presence.js +3 -2
- package/dist/transformers/reverse/user.d.ts +5 -0
- package/dist/transformers/reverse/user.d.ts.map +1 -0
- package/dist/transformers/reverse/user.js +17 -0
- package/dist/transformers/role.d.ts +7 -4
- package/dist/transformers/role.d.ts.map +1 -1
- package/dist/transformers/role.js +11 -7
- package/dist/transformers/scheduledEvent.d.ts +6 -3
- package/dist/transformers/scheduledEvent.d.ts.map +1 -1
- package/dist/transformers/scheduledEvent.js +10 -5
- package/dist/transformers/sku.d.ts +3 -2
- package/dist/transformers/sku.d.ts.map +1 -1
- package/dist/transformers/sku.js +6 -3
- package/dist/transformers/soundboardSound.d.ts +3 -2
- package/dist/transformers/soundboardSound.d.ts.map +1 -1
- package/dist/transformers/soundboardSound.js +6 -3
- package/dist/transformers/stageInstance.d.ts +3 -2
- package/dist/transformers/stageInstance.d.ts.map +1 -1
- package/dist/transformers/stageInstance.js +6 -3
- package/dist/transformers/stageInviteInstance.d.ts +3 -3
- package/dist/transformers/stageInviteInstance.d.ts.map +1 -1
- package/dist/transformers/stageInviteInstance.js +10 -8
- package/dist/transformers/sticker.d.ts +6 -3
- package/dist/transformers/sticker.d.ts.map +1 -1
- package/dist/transformers/sticker.js +18 -14
- package/dist/transformers/subscription.d.ts +3 -2
- package/dist/transformers/subscription.d.ts.map +1 -1
- package/dist/transformers/subscription.js +6 -3
- package/dist/transformers/team.d.ts +7 -3
- package/dist/transformers/team.d.ts.map +1 -1
- package/dist/transformers/team.js +22 -16
- package/dist/transformers/template.d.ts +3 -2
- package/dist/transformers/template.d.ts.map +1 -1
- package/dist/transformers/template.js +18 -16
- package/dist/transformers/threadMember.d.ts +6 -3
- package/dist/transformers/threadMember.d.ts.map +1 -1
- package/dist/transformers/threadMember.js +20 -16
- package/dist/transformers/toggles/channel.d.ts +2 -2
- package/dist/transformers/toggles/channel.d.ts.map +1 -1
- package/dist/transformers/toggles/channel.js +2 -2
- package/dist/transformers/toggles/emoji.d.ts +1 -1
- package/dist/transformers/toggles/emoji.d.ts.map +1 -1
- package/dist/transformers/toggles/emoji.js +1 -1
- package/dist/transformers/toggles/guild.d.ts +1 -1
- package/dist/transformers/toggles/guild.d.ts.map +1 -1
- package/dist/transformers/toggles/guild.js +1 -1
- package/dist/transformers/toggles/role.d.ts +1 -1
- package/dist/transformers/toggles/role.d.ts.map +1 -1
- package/dist/transformers/toggles/role.js +1 -1
- package/dist/transformers/toggles/user.d.ts +1 -1
- package/dist/transformers/toggles/user.d.ts.map +1 -1
- package/dist/transformers/toggles/user.js +1 -1
- package/dist/transformers/toggles/voice.d.ts +1 -1
- package/dist/transformers/toggles/voice.d.ts.map +1 -1
- package/dist/transformers/toggles/voice.js +1 -1
- package/dist/transformers/types.d.ts +194 -39
- package/dist/transformers/types.d.ts.map +1 -1
- package/dist/transformers/types.js +2 -2
- package/dist/transformers/user.d.ts +13 -5
- package/dist/transformers/user.d.ts.map +1 -1
- package/dist/transformers/user.js +18 -9
- package/dist/transformers/voiceRegion.d.ts +3 -2
- package/dist/transformers/voiceRegion.d.ts.map +1 -1
- package/dist/transformers/voiceRegion.js +12 -10
- package/dist/transformers/voiceState.d.ts +3 -3
- package/dist/transformers/voiceState.d.ts.map +1 -1
- package/dist/transformers/voiceState.js +6 -4
- package/dist/transformers/webhook.d.ts +3 -1
- package/dist/transformers/webhook.d.ts.map +1 -1
- package/dist/transformers/webhook.js +9 -6
- package/dist/transformers/welcomeScreen.d.ts +1 -2
- package/dist/transformers/welcomeScreen.d.ts.map +1 -1
- package/dist/transformers/welcomeScreen.js +1 -1
- package/dist/transformers/widget.d.ts +1 -2
- package/dist/transformers/widget.d.ts.map +1 -1
- package/dist/transformers/widget.js +7 -5
- package/dist/transformers/widgetSettings.d.ts +1 -2
- package/dist/transformers/widgetSettings.d.ts.map +1 -1
- package/dist/transformers/widgetSettings.js +1 -1
- package/dist/transformers.d.ts +190 -78
- package/dist/transformers.d.ts.map +1 -1
- package/dist/transformers.js +81 -21
- package/package.json +16 -16
package/dist/helpers.js
CHANGED
|
@@ -2,7 +2,7 @@ import { snakelize } from '@discordeno/utils';
|
|
|
2
2
|
export function createBotHelpers(bot) {
|
|
3
3
|
return {
|
|
4
4
|
createAutomodRule: async (guildId, options, reason)=>{
|
|
5
|
-
return bot.transformers.
|
|
5
|
+
return bot.transformers.autoModerationRule(bot, snakelize(await bot.rest.createAutomodRule(guildId, options, reason)));
|
|
6
6
|
},
|
|
7
7
|
createChannel: async (guildId, options, reason)=>{
|
|
8
8
|
return bot.transformers.channel(bot, snakelize(await bot.rest.createChannel(guildId, options, reason)), {
|
|
@@ -51,10 +51,10 @@ export function createBotHelpers(bot) {
|
|
|
51
51
|
return bot.transformers.webhook(bot, snakelize(await bot.rest.createWebhook(channelId, options, reason)));
|
|
52
52
|
},
|
|
53
53
|
editApplicationCommandPermissions: async (guildId, commandId, bearerToken, options)=>{
|
|
54
|
-
return bot.transformers.
|
|
54
|
+
return bot.transformers.guildApplicationCommandPermissions(bot, snakelize(await bot.rest.editApplicationCommandPermissions(guildId, commandId, bearerToken, options)));
|
|
55
55
|
},
|
|
56
56
|
editAutomodRule: async (guildId, ruleId, options, reason)=>{
|
|
57
|
-
return bot.transformers.
|
|
57
|
+
return bot.transformers.autoModerationRule(bot, snakelize(await bot.rest.editAutomodRule(guildId, ruleId, options, reason)));
|
|
58
58
|
},
|
|
59
59
|
editBotProfile: async (options)=>{
|
|
60
60
|
return bot.transformers.user(bot, snakelize(await bot.rest.editBotProfile(options)));
|
|
@@ -160,19 +160,19 @@ export function createBotHelpers(bot) {
|
|
|
160
160
|
getApplicationCommandPermission: async (guildId, commandId, options)=>{
|
|
161
161
|
const res = await bot.rest.getApplicationCommandPermission(guildId, commandId, options);
|
|
162
162
|
const snakedRes = snakelize(res);
|
|
163
|
-
return bot.transformers.
|
|
163
|
+
return bot.transformers.guildApplicationCommandPermissions(bot, snakedRes);
|
|
164
164
|
},
|
|
165
165
|
getApplicationCommandPermissions: async (guildId, options)=>{
|
|
166
|
-
return (await bot.rest.getApplicationCommandPermissions(guildId, options)).map((res)=>bot.transformers.
|
|
166
|
+
return (await bot.rest.getApplicationCommandPermissions(guildId, options)).map((res)=>bot.transformers.guildApplicationCommandPermissions(bot, snakelize(res)));
|
|
167
167
|
},
|
|
168
168
|
getAuditLog: async (guildId, options)=>{
|
|
169
169
|
return await bot.rest.getAuditLog(guildId, options);
|
|
170
170
|
},
|
|
171
171
|
getAutomodRule: async (guildId, ruleId)=>{
|
|
172
|
-
return bot.transformers.
|
|
172
|
+
return bot.transformers.autoModerationRule(bot, snakelize(await bot.rest.getAutomodRule(guildId, ruleId)));
|
|
173
173
|
},
|
|
174
174
|
getAutomodRules: async (guildId)=>{
|
|
175
|
-
return (await bot.rest.getAutomodRules(guildId)).map((res)=>bot.transformers.
|
|
175
|
+
return (await bot.rest.getAutomodRules(guildId)).map((res)=>bot.transformers.autoModerationRule(bot, snakelize(res)));
|
|
176
176
|
},
|
|
177
177
|
getAvailableVoiceRegions: async ()=>{
|
|
178
178
|
return (await bot.rest.getAvailableVoiceRegions()).map((res)=>bot.transformers.voiceRegion(bot, snakelize(res)));
|
|
@@ -234,8 +234,9 @@ export function createBotHelpers(bot) {
|
|
|
234
234
|
return bot.transformers.guild(bot, snakelize(await bot.rest.getGuild(guildId, options)));
|
|
235
235
|
},
|
|
236
236
|
getGuilds: async (bearerToken, options)=>{
|
|
237
|
-
return (await bot.rest.getGuilds(bearerToken, options)).map((res)
|
|
238
|
-
|
|
237
|
+
return (await bot.rest.getGuilds(bearerToken, options)).map((res)=>bot.transformers.guild(bot, snakelize(res), {
|
|
238
|
+
partial: true
|
|
239
|
+
}));
|
|
239
240
|
},
|
|
240
241
|
getGuildApplicationCommand: async (commandId, guildId)=>{
|
|
241
242
|
return bot.transformers.applicationCommand(bot, snakelize(await bot.rest.getGuildApplicationCommand(commandId, guildId)));
|
|
@@ -405,6 +406,20 @@ export function createBotHelpers(bot) {
|
|
|
405
406
|
publishMessage: async (channelId, messageId)=>{
|
|
406
407
|
return bot.transformers.message(bot, snakelize(await bot.rest.publishMessage(channelId, messageId)));
|
|
407
408
|
},
|
|
409
|
+
searchGuildMessages: async (guildId, options)=>{
|
|
410
|
+
const result = await bot.rest.searchGuildMessages(guildId, options);
|
|
411
|
+
if ('code' in result) return result;
|
|
412
|
+
return {
|
|
413
|
+
...result,
|
|
414
|
+
messages: result.messages.map((messages)=>messages.map((message)=>bot.transformers.message(bot, snakelize(message)))),
|
|
415
|
+
threads: result.threads?.map((thread)=>bot.transformers.channel(bot, snakelize(thread), {
|
|
416
|
+
guildId
|
|
417
|
+
})),
|
|
418
|
+
members: result.members?.map((member)=>bot.transformers.threadMember(bot, snakelize(member), {
|
|
419
|
+
guildId
|
|
420
|
+
}))
|
|
421
|
+
};
|
|
422
|
+
},
|
|
408
423
|
sendMessage: async (channelId, options)=>{
|
|
409
424
|
return bot.transformers.message(bot, snakelize(await bot.rest.sendMessage(channelId, options)));
|
|
410
425
|
},
|
|
@@ -485,6 +500,9 @@ export function createBotHelpers(bot) {
|
|
|
485
500
|
createLobby: async (options)=>{
|
|
486
501
|
return bot.transformers.lobby(bot, snakelize(await bot.rest.createLobby(options)));
|
|
487
502
|
},
|
|
503
|
+
createOrJoinLobby: async (options)=>{
|
|
504
|
+
return bot.transformers.lobby(bot, snakelize(await bot.rest.createOrJoinLobby(options)));
|
|
505
|
+
},
|
|
488
506
|
getLobby: async (lobbyId)=>{
|
|
489
507
|
return bot.transformers.lobby(bot, snakelize(await bot.rest.getLobby(lobbyId)));
|
|
490
508
|
},
|
|
@@ -494,12 +512,30 @@ export function createBotHelpers(bot) {
|
|
|
494
512
|
addMemberToLobby: async (lobbyId, userId, options)=>{
|
|
495
513
|
return bot.transformers.lobbyMember(bot, snakelize(await bot.rest.addMemberToLobby(lobbyId, userId, options)));
|
|
496
514
|
},
|
|
515
|
+
bulkUpdateLobbyMembers: async (lobbyId, options)=>{
|
|
516
|
+
return (await bot.rest.bulkUpdateLobbyMembers(lobbyId, options)).map((res)=>bot.transformers.lobbyMember(bot, snakelize(res)));
|
|
517
|
+
},
|
|
497
518
|
linkChannelToLobby: async (lobbyId, bearerToken, options)=>{
|
|
498
519
|
return bot.transformers.lobby(bot, snakelize(await bot.rest.linkChannelToLobby(lobbyId, bearerToken, options)));
|
|
499
520
|
},
|
|
500
521
|
unlinkChannelToLobby: async (lobbyId, bearerToken)=>{
|
|
501
522
|
return bot.transformers.lobby(bot, snakelize(await bot.rest.unlinkChannelToLobby(lobbyId, bearerToken)));
|
|
502
523
|
},
|
|
524
|
+
updateLobbyMessageModerationMetadata: async (lobbyId, messageId, options)=>{
|
|
525
|
+
return await bot.rest.updateLobbyMessageModerationMetadata(lobbyId, messageId, options);
|
|
526
|
+
},
|
|
527
|
+
sendLobbyMessage: async (bearerToken, lobbyId, options)=>{
|
|
528
|
+
return bot.transformers.lobbyMessage(bot, snakelize(await bot.rest.sendLobbyMessage(bearerToken, lobbyId, options)));
|
|
529
|
+
},
|
|
530
|
+
getLobbyMessages: async (bearerToken, lobbyId, options)=>{
|
|
531
|
+
return (await bot.rest.getLobbyMessages(bearerToken, lobbyId, options)).map((res)=>bot.transformers.lobbyMessage(bot, snakelize(res)));
|
|
532
|
+
},
|
|
533
|
+
createLobbyChannelInviteForSelf: async (bearerToken, lobbyId)=>{
|
|
534
|
+
return bot.transformers.lobbyInvite(bot, snakelize(await bot.rest.createLobbyChannelInviteForSelf(bearerToken, lobbyId)));
|
|
535
|
+
},
|
|
536
|
+
createLobbyChannelInviteForUser: async (lobbyId, userId)=>{
|
|
537
|
+
return bot.transformers.lobbyInvite(bot, snakelize(await bot.rest.createLobbyChannelInviteForUser(lobbyId, userId)));
|
|
538
|
+
},
|
|
503
539
|
getTargetUsers: async (inviteCode)=>{
|
|
504
540
|
return await bot.rest.getTargetUsers(inviteCode);
|
|
505
541
|
},
|
|
@@ -618,6 +654,9 @@ export function createBotHelpers(bot) {
|
|
|
618
654
|
editUserApplicationRoleConnection: async (bearerToken, applicationId, options)=>{
|
|
619
655
|
return await bot.rest.editUserApplicationRoleConnection(bearerToken, applicationId, options);
|
|
620
656
|
},
|
|
657
|
+
deleteCurrentUserApplicationRoleConnection: async (bearerToken, applicationId)=>{
|
|
658
|
+
return await bot.rest.deleteCurrentUserApplicationRoleConnection(bearerToken, applicationId);
|
|
659
|
+
},
|
|
621
660
|
joinThread: async (channelId)=>{
|
|
622
661
|
return await bot.rest.joinThread(channelId);
|
|
623
662
|
},
|
|
@@ -672,8 +711,9 @@ export function createBotHelpers(bot) {
|
|
|
672
711
|
return bot.transformers.entitlement(bot, snakelize(await bot.rest.getEntitlement(applicationId, entitlementId)));
|
|
673
712
|
},
|
|
674
713
|
createTestEntitlement: async (applicationId, body)=>{
|
|
675
|
-
|
|
676
|
-
|
|
714
|
+
return bot.transformers.entitlement(bot, snakelize(await bot.rest.createTestEntitlement(applicationId, body)), {
|
|
715
|
+
partial: true
|
|
716
|
+
});
|
|
677
717
|
},
|
|
678
718
|
deleteTestEntitlement: async (applicationId, entitlementId)=>{
|
|
679
719
|
await bot.rest.deleteTestEntitlement(applicationId, entitlementId);
|
|
@@ -723,4 +763,4 @@ export function createBotHelpers(bot) {
|
|
|
723
763
|
};
|
|
724
764
|
}
|
|
725
765
|
|
|
726
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9oZWxwZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQWRkRG1SZWNpcGllbnRPcHRpb25zLFxuICBBZGRHdWlsZE1lbWJlck9wdGlvbnMsXG4gIEFkZExvYmJ5TWVtYmVyLFxuICBBdExlYXN0T25lLFxuICBCZWdpbkd1aWxkUHJ1bmUsXG4gIEJpZ1N0cmluZyxcbiAgQ2FtZWxpemUsXG4gIENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgQ3JlYXRlQXBwbGljYXRpb25FbW9qaSxcbiAgQ3JlYXRlQXV0b01vZGVyYXRpb25SdWxlT3B0aW9ucyxcbiAgQ3JlYXRlQ2hhbm5lbEludml0ZSxcbiAgQ3JlYXRlRm9ydW1Qb3N0V2l0aE1lc3NhZ2UsXG4gIENyZWF0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMsXG4gIENyZWF0ZUdyb3VwRG1PcHRpb25zLFxuICBDcmVhdGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMsXG4gIENyZWF0ZUd1aWxkQmFuLFxuICBDcmVhdGVHdWlsZEJ1bGtCYW4sXG4gIENyZWF0ZUd1aWxkQ2hhbm5lbCxcbiAgQ3JlYXRlR3VpbGRFbW9qaSxcbiAgQ3JlYXRlR3VpbGRSb2xlLFxuICBDcmVhdGVHdWlsZFNvdW5kYm9hcmRTb3VuZCxcbiAgQ3JlYXRlR3VpbGRTdGlja2VyT3B0aW9ucyxcbiAgQ3JlYXRlTG9iYnksXG4gIENyZWF0ZU1lc3NhZ2VPcHRpb25zLFxuICBDcmVhdGVTY2hlZHVsZWRFdmVudCxcbiAgQ3JlYXRlU3RhZ2VJbnN0YW5jZSxcbiAgQ3JlYXRlVGVtcGxhdGUsXG4gIENyZWF0ZVRlc3RFbnRpdGxlbWVudCxcbiAgQ3JlYXRlV2ViaG9vayxcbiAgRGVsZXRlV2ViaG9va01lc3NhZ2VPcHRpb25zLFxuICBEaXNjb3JkQWNjZXNzVG9rZW5SZXNwb25zZSxcbiAgRGlzY29yZEFjdGl2aXR5SW5zdGFuY2UsXG4gIERpc2NvcmRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucyxcbiAgRGlzY29yZEFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb24sXG4gIERpc2NvcmRBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uTWV0YWRhdGEsXG4gIERpc2NvcmRBdWRpdExvZyxcbiAgRGlzY29yZEJhbixcbiAgRGlzY29yZENvbm5lY3Rpb24sXG4gIERpc2NvcmRDdXJyZW50QXV0aG9yaXphdGlvbixcbiAgRGlzY29yZEZvbGxvd2VkQ2hhbm5lbCxcbiAgRGlzY29yZEd1aWxkUHJldmlldyxcbiAgRGlzY29yZEd1aWxkV2lkZ2V0U2V0dGluZ3MsXG4gIERpc2NvcmRJbnZpdGUsXG4gIERpc2NvcmRMaXN0QXJjaGl2ZWRUaHJlYWRzLFxuICBEaXNjb3JkUHJ1bmVkQ291bnQsXG4gIERpc2NvcmRUYXJnZXRVc2Vyc0pvYlN0YXR1cyxcbiAgRGlzY29yZFRva2VuRXhjaGFuZ2UsXG4gIERpc2NvcmRUb2tlblJldm9jYXRpb24sXG4gIERpc2NvcmRWYW5pdHlVcmwsXG4gIEVkaXRBcHBsaWNhdGlvbixcbiAgRWRpdEF1dG9Nb2RlcmF0aW9uUnVsZU9wdGlvbnMsXG4gIEVkaXRDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlc09wdGlvbnMsXG4gIEVkaXRHdWlsZE9uYm9hcmRpbmcsXG4gIEVkaXRHdWlsZFJvbGUsXG4gIEVkaXRHdWlsZFN0aWNrZXJPcHRpb25zLFxuICBFZGl0TWVzc2FnZSxcbiAgRWRpdE93blZvaWNlU3RhdGUsXG4gIEVkaXRTY2hlZHVsZWRFdmVudCxcbiAgRWRpdFVzZXJWb2ljZVN0YXRlLFxuICBFZGl0V2ViaG9va01lc3NhZ2VPcHRpb25zLFxuICBFeGVjdXRlV2ViaG9vayxcbiAgR2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbk9wdGlvbnMsXG4gIEdldEJhbnMsXG4gIEdldENoYW5uZWxQaW5zT3B0aW9ucyxcbiAgR2V0RW50aXRsZW1lbnRzLFxuICBHZXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzT3B0aW9ucyxcbiAgR2V0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRzT3B0aW9ucyxcbiAgR2V0R3VpbGRBdWRpdExvZyxcbiAgR2V0R3VpbGRQcnVuZUNvdW50UXVlcnksXG4gIEdldEludml0ZSxcbiAgR2V0TWVzc2FnZXNPcHRpb25zLFxuICBHZXRSZWFjdGlvbnMsXG4gIEdldFNjaGVkdWxlZEV2ZW50cyxcbiAgR2V0U2NoZWR1bGVkRXZlbnRVc2VycyxcbiAgR2V0VGhyZWFkTWVtYmVyLFxuICBHZXRVc2VyR3VpbGRzLFxuICBHZXRXZWJob29rTWVzc2FnZU9wdGlvbnMsXG4gIEludGVyYWN0aW9uQ2FsbGJhY2tEYXRhLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrT3B0aW9ucyxcbiAgSW50ZXJhY3Rpb25SZXNwb25zZSxcbiAgTGlua0NoYW5uZWxUb0xvYmJ5LFxuICBMaXN0QXJjaGl2ZWRUaHJlYWRzLFxuICBMaXN0R3VpbGRNZW1iZXJzLFxuICBMaXN0U2t1U3Vic2NyaXB0aW9uc09wdGlvbnMsXG4gIExpc3RUaHJlYWRNZW1iZXJzLFxuICBNb2RpZnlBcHBsaWNhdGlvbkVtb2ppLFxuICBNb2RpZnlDaGFubmVsLFxuICBNb2RpZnlDdXJyZW50TWVtYmVyLFxuICBNb2RpZnlHdWlsZCxcbiAgTW9kaWZ5R3VpbGRDaGFubmVsUG9zaXRpb25zLFxuICBNb2RpZnlHdWlsZEVtb2ppLFxuICBNb2RpZnlHdWlsZE1lbWJlcixcbiAgTW9kaWZ5R3VpbGRTb3VuZGJvYXJkU291bmQsXG4gIE1vZGlmeUd1aWxkVGVtcGxhdGUsXG4gIE1vZGlmeUd1aWxkV2VsY29tZVNjcmVlbixcbiAgTW9kaWZ5TG9iYnksXG4gIE1vZGlmeVJvbGVQb3NpdGlvbnMsXG4gIE1vZGlmeVdlYmhvb2ssXG4gIFNlYXJjaE1lbWJlcnMsXG4gIFNlbmRTb3VuZGJvYXJkU291bmQsXG4gIFN0YXJ0VGhyZWFkV2l0aE1lc3NhZ2UsXG4gIFN0YXJ0VGhyZWFkV2l0aG91dE1lc3NhZ2UsXG4gIFVwc2VydEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMsXG4gIFVwc2VydEd1aWxkQXBwbGljYXRpb25Db21tYW5kT3B0aW9ucyxcbn0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnO1xuaW1wb3J0IHsgc25ha2VsaXplIH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnO1xuaW1wb3J0IHR5cGUgeyBCb3QgfSBmcm9tICcuL2JvdC5qcyc7XG5pbXBvcnQgdHlwZSB7IERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3IsIFNldHVwRGVzaXJlZFByb3BzLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcyB9IGZyb20gJy4vZGVzaXJlZFByb3BlcnRpZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBUaHJlYWRNZW1iZXJUcmFuc2Zvcm1lckV4dHJhIH0gZnJvbSAnLi90cmFuc2Zvcm1lcnMvdGhyZWFkTWVtYmVyLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgQXBwbGljYXRpb24sXG4gIEFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgQXV0b01vZGVyYXRpb25SdWxlLFxuICBDaGFubmVsLFxuICBFbW9qaSxcbiAgRW50aXRsZW1lbnQsXG4gIEdldEdhdGV3YXlCb3QsXG4gIEd1aWxkLFxuICBHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zLFxuICBHdWlsZE9uYm9hcmRpbmcsXG4gIEd1aWxkV2lkZ2V0LFxuICBHdWlsZFdpZGdldFNldHRpbmdzLFxuICBJbnRlZ3JhdGlvbixcbiAgSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLFxuICBJbnZpdGUsXG4gIExvYmJ5LFxuICBMb2JieU1lbWJlcixcbiAgTWVtYmVyLFxuICBNZXNzYWdlLFxuICBNZXNzYWdlUGluLFxuICBSb2xlLFxuICBTY2hlZHVsZWRFdmVudCxcbiAgU2t1LFxuICBTb3VuZGJvYXJkU291bmQsXG4gIFN0YWdlSW5zdGFuY2UsXG4gIFN0aWNrZXIsXG4gIFN0aWNrZXJQYWNrLFxuICBTdWJzY3JpcHRpb24sXG4gIFRlbXBsYXRlLFxuICBUaHJlYWRNZW1iZXIsXG4gIFVzZXIsXG4gIFZvaWNlUmVnaW9uLFxuICBWb2ljZVN0YXRlLFxuICBXZWJob29rLFxuICBXZWxjb21lU2NyZWVuLFxufSBmcm9tICcuL3RyYW5zZm9ybWVycy90eXBlcy5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCb3RIZWxwZXJzPFRQcm9wcyBleHRlbmRzIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBUQmVoYXZpb3IgZXh0ZW5kcyBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPihcbiAgYm90OiBCb3Q8VFByb3BzLCBUQmVoYXZpb3I+LFxuKTogQm90SGVscGVyczxUUHJvcHMsIFRCZWhhdmlvcj4ge1xuICByZXR1cm4ge1xuICAgIGNyZWF0ZUF1dG9tb2RSdWxlOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hdXRvbW9kUnVsZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVBdXRvbW9kUnVsZShndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSk7XG4gICAgfSxcbiAgICBjcmVhdGVDaGFubmVsOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUNoYW5uZWwoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSksIHsgZ3VpbGRJZCB9KTtcbiAgICB9LFxuICAgIGNyZWF0ZUVtb2ppOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVFbW9qaShndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSk7XG4gICAgfSxcbiAgICBjcmVhdGVBcHBsaWNhdGlvbkVtb2ppOiBhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlQXBwbGljYXRpb25FbW9qaShvcHRpb25zKSkpO1xuICAgIH0sXG4gICAgY3JlYXRlRm9ydW1UaHJlYWQ6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVGb3J1bVRocmVhZChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikpKTtcbiAgICB9LFxuICAgIGNyZWF0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogYXN5bmMgKGNvbW1hbmQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQoY29tbWFuZCwgb3B0aW9ucykpKTtcbiAgICB9LFxuICAgIGNyZWF0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kOiBhc3luYyAoY29tbWFuZCwgZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kKGNvbW1hbmQsIGd1aWxkSWQsIG9wdGlvbnMpKSk7XG4gICAgfSxcbiAgICBjcmVhdGVHdWlsZFN0aWNrZXI6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnN0aWNrZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlR3VpbGRTdGlja2VyKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpKTtcbiAgICB9LFxuICAgIGNyZWF0ZUd1aWxkVGVtcGxhdGU6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy50ZW1wbGF0ZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVHdWlsZFRlbXBsYXRlKGd1aWxkSWQsIG9wdGlvbnMpKSk7XG4gICAgfSxcbiAgICBjcmVhdGVJbnZpdGU6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUludml0ZShjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbik7XG4gICAgfSxcbiAgICBnZXRHdWlsZFJvbGVNZW1iZXJDb3VudHM6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRSb2xlTWVtYmVyQ291bnRzKGd1aWxkSWQpO1xuICAgIH0sXG4gICAgY3JlYXRlUm9sZTogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVSb2xlKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpLCB7IGd1aWxkSWQgfSk7XG4gICAgfSxcbiAgICBjcmVhdGVTY2hlZHVsZWRFdmVudDogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc2NoZWR1bGVkRXZlbnQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlU2NoZWR1bGVkRXZlbnQoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSkpO1xuICAgIH0sXG4gICAgY3JlYXRlU3RhZ2VJbnN0YW5jZTogYXN5bmMgKG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3RhZ2VJbnN0YW5jZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVTdGFnZUluc3RhbmNlKG9wdGlvbnMsIHJlYXNvbikpKTtcbiAgICB9LFxuICAgIGNyZWF0ZVdlYmhvb2s6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMud2ViaG9vayhib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVXZWJob29rKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSkpO1xuICAgIH0sXG4gICAgZWRpdEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zOiBhc3luYyAoZ3VpbGRJZCwgY29tbWFuZElkLCBiZWFyZXJUb2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbihcbiAgICAgICAgYm90LFxuICAgICAgICBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zKGd1aWxkSWQsIGNvbW1hbmRJZCwgYmVhcmVyVG9rZW4sIG9wdGlvbnMpKSxcbiAgICAgICk7XG4gICAgfSxcbiAgICBlZGl0QXV0b21vZFJ1bGU6IGFzeW5jIChndWlsZElkLCBydWxlSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXV0b21vZFJ1bGUoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEF1dG9tb2RSdWxlKGd1aWxkSWQsIHJ1bGVJZCwgb3B0aW9ucywgcmVhc29uKSkpO1xuICAgIH0sXG4gICAgZWRpdEJvdFByb2ZpbGU6IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRCb3RQcm9maWxlKG9wdGlvbnMpKSk7XG4gICAgfSxcbiAgICBlZGl0Q2hhbm5lbDogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRDaGFubmVsKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSkpO1xuICAgIH0sXG4gICAgZWRpdEVtb2ppOiBhc3luYyAoZ3VpbGRJZCwgaWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEVtb2ppKGd1aWxkSWQsIGlkLCBvcHRpb25zLCByZWFzb24pKSk7XG4gICAgfSxcbiAgICBlZGl0QXBwbGljYXRpb25FbW9qaTogYXN5bmMgKGlkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0QXBwbGljYXRpb25FbW9qaShpZCwgb3B0aW9ucykpKTtcbiAgICB9LFxuICAgIGVkaXRGb2xsb3d1cE1lc3NhZ2U6IGFzeW5jICh0b2tlbiwgbWVzc2FnZUlkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRGb2xsb3d1cE1lc3NhZ2UodG9rZW4sIG1lc3NhZ2VJZCwgb3B0aW9ucykpKTtcbiAgICB9LFxuICAgIGVkaXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQ6IGFzeW5jIChjb21tYW5kSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kKGNvbW1hbmRJZCwgb3B0aW9ucykpKTtcbiAgICB9LFxuICAgIGVkaXRHdWlsZDogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEd1aWxkKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpKTtcbiAgICB9LFxuICAgIGVkaXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZDogYXN5bmMgKGNvbW1hbmRJZCwgZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZChjb21tYW5kSWQsIGd1aWxkSWQsIG9wdGlvbnMpKSk7XG4gICAgfSxcbiAgICBlZGl0R3VpbGRTdGlja2VyOiBhc3luYyAoZ3VpbGRJZCwgc3RpY2tlcklkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnN0aWNrZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEd1aWxkU3RpY2tlcihndWlsZElkLCBzdGlja2VySWQsIG9wdGlvbnMsIHJlYXNvbikpKTtcbiAgICB9LFxuICAgIGVkaXRHdWlsZFRlbXBsYXRlOiBhc3luYyAoZ3VpbGRJZCwgdGVtcGxhdGVDb2RlLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy50ZW1wbGF0ZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0R3VpbGRUZW1wbGF0ZShndWlsZElkLCB0ZW1wbGF0ZUNvZGUsIG9wdGlvbnMpKSk7XG4gICAgfSxcbiAgICBlZGl0TWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRNZXNzYWdlKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCBvcHRpb25zKSkpO1xuICAgIH0sXG4gICAgZWRpdE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZTogYXN5bmMgKHRva2VuLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UodG9rZW4sIG9wdGlvbnMpKSk7XG4gICAgfSxcbiAgICBlZGl0Um9sZTogYXN5bmMgKGd1aWxkSWQsIHJvbGVJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5yb2xlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRSb2xlKGd1aWxkSWQsIHJvbGVJZCwgb3B0aW9ucywgcmVhc29uKSksIHsgZ3VpbGRJZCB9KTtcbiAgICB9LFxuICAgIGVkaXRSb2xlUG9zaXRpb25zOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRSb2xlUG9zaXRpb25zKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpLm1hcCgocm9sZSkgPT4gYm90LnRyYW5zZm9ybWVycy5yb2xlKGJvdCwgcm9sZSwgeyBndWlsZElkIH0pKTtcbiAgICB9LFxuICAgIGVkaXRTY2hlZHVsZWRFdmVudDogYXN5bmMgKGd1aWxkSWQsIGV2ZW50SWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc2NoZWR1bGVkRXZlbnQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdFNjaGVkdWxlZEV2ZW50KGd1aWxkSWQsIGV2ZW50SWQsIG9wdGlvbnMsIHJlYXNvbikpKTtcbiAgICB9LFxuICAgIGVkaXRTdGFnZUluc3RhbmNlOiBhc3luYyAoY2hhbm5lbElkLCB0b3BpYywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zdGFnZUluc3RhbmNlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRTdGFnZUluc3RhbmNlKGNoYW5uZWxJZCwgdG9waWMsIHJlYXNvbikpKTtcbiAgICB9LFxuICAgIGVkaXRXZWJob29rOiBhc3luYyAod2ViaG9va0lkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlYmhvb2soYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdFdlYmhvb2sod2ViaG9va0lkLCBvcHRpb25zLCByZWFzb24pKSk7XG4gICAgfSxcbiAgICBlZGl0V2ViaG9va01lc3NhZ2U6IGFzeW5jICh3ZWJob29rSWQsIHRva2VuLCBtZXNzYWdlSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdFdlYmhvb2tNZXNzYWdlKHdlYmhvb2tJZCwgdG9rZW4sIG1lc3NhZ2VJZCwgb3B0aW9ucykpKTtcbiAgICB9LFxuICAgIGVkaXRXZWJob29rV2l0aFRva2VuOiBhc3luYyAod2ViaG9va0lkLCB0b2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMud2ViaG9vayhib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0V2ViaG9va1dpdGhUb2tlbih3ZWJob29rSWQsIHRva2VuLCBvcHRpb25zKSkpO1xuICAgIH0sXG4gICAgZWRpdFdlbGNvbWVTY3JlZW46IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlbGNvbWVTY3JlZW4oYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdFdlbGNvbWVTY3JlZW4oZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSkpO1xuICAgIH0sXG4gICAgZWRpdFdpZGdldFNldHRpbmdzOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy53aWRnZXRTZXR0aW5ncyhib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0V2lkZ2V0U2V0dGluZ3MoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSkpO1xuICAgIH0sXG4gICAgZXhlY3V0ZVdlYmhvb2s6IGFzeW5jICh3ZWJob29rSWQsIHRva2VuLCBvcHRpb25zKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBib3QucmVzdC5leGVjdXRlV2ViaG9vayh3ZWJob29rSWQsIHRva2VuLCBvcHRpb25zKTtcbiAgICAgIGlmICghcmVzdWx0KSByZXR1cm47XG5cbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBzbmFrZWxpemUocmVzdWx0KSk7XG4gICAgfSxcbiAgICBmb2xsb3dBbm5vdW5jZW1lbnQ6IGFzeW5jIChzb3VyY2VDaGFubmVsSWQsIHRhcmdldENoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmZvbGxvd0Fubm91bmNlbWVudChzb3VyY2VDaGFubmVsSWQsIHRhcmdldENoYW5uZWxJZCk7XG4gICAgfSxcbiAgICBnZXRBY3RpdmVUaHJlYWRzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYm90LnJlc3QuZ2V0QWN0aXZlVGhyZWFkcyhndWlsZElkKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRocmVhZHM6IHJlc3VsdC50aHJlYWRzLm1hcCgodGhyZWFkKSA9PiBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCBzbmFrZWxpemUodGhyZWFkKSwgeyBndWlsZElkIH0pKSxcbiAgICAgICAgbWVtYmVyczogcmVzdWx0Lm1lbWJlcnMubWFwKChtZW1iZXIpID0+IGJvdC50cmFuc2Zvcm1lcnMudGhyZWFkTWVtYmVyKGJvdCwgc25ha2VsaXplKG1lbWJlciksIHsgZ3VpbGRJZCB9KSksXG4gICAgICB9O1xuICAgIH0sXG4gICAgZ2V0QXBwbGljYXRpb25JbmZvOiBhc3luYyAoKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRBcHBsaWNhdGlvbkluZm8oKSkpO1xuICAgIH0sXG4gICAgZWRpdEFwcGxpY2F0aW9uSW5mbzogYXN5bmMgKGJvZHkpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRBcHBsaWNhdGlvbkluZm8oYm9keSkpKTtcbiAgICB9LFxuICAgIGdldEN1cnJlbnRBdXRoZW50aWNhdGlvbkluZm86IGFzeW5jIChiZWFyZXJUb2tlbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldEN1cnJlbnRBdXRoZW50aWNhdGlvbkluZm8oYmVhcmVyVG9rZW4pO1xuICAgIH0sXG4gICAgZXhjaGFuZ2VUb2tlbjogYXN5bmMgKGNsaWVudElkLCBjbGllbnRTZWNyZXQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5leGNoYW5nZVRva2VuKGNsaWVudElkLCBjbGllbnRTZWNyZXQsIG9wdGlvbnMpO1xuICAgIH0sXG4gICAgcmV2b2tlVG9rZW46IGFzeW5jIChjbGllbnRJZCwgY2xpZW50U2VjcmV0LCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QucmV2b2tlVG9rZW4oY2xpZW50SWQsIGNsaWVudFNlY3JldCwgb3B0aW9ucyk7XG4gICAgfSxcbiAgICBnZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uOiBhc3luYyAoZ3VpbGRJZCwgY29tbWFuZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBib3QucmVzdC5nZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uKGd1aWxkSWQsIGNvbW1hbmRJZCwgb3B0aW9ucyk7XG4gICAgICBjb25zdCBzbmFrZWRSZXMgPSBzbmFrZWxpemUocmVzKTtcblxuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbihib3QsIHNuYWtlZFJlcyk7XG4gICAgfSxcbiAgICBnZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uczogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnMoZ3VpbGRJZCwgb3B0aW9ucykpLm1hcCgocmVzKSA9PlxuICAgICAgICBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb24oYm90LCBzbmFrZWxpemUocmVzKSksXG4gICAgICApO1xuICAgIH0sXG4gICAgZ2V0QXVkaXRMb2c6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0QXVkaXRMb2coZ3VpbGRJZCwgb3B0aW9ucyk7XG4gICAgfSxcbiAgICBnZXRBdXRvbW9kUnVsZTogYXN5bmMgKGd1aWxkSWQsIHJ1bGVJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXV0b21vZFJ1bGUoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0QXV0b21vZFJ1bGUoZ3VpbGRJZCwgcnVsZUlkKSkpO1xuICAgIH0sXG4gICAgZ2V0QXV0b21vZFJ1bGVzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRBdXRvbW9kUnVsZXMoZ3VpbGRJZCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLmF1dG9tb2RSdWxlKGJvdCwgc25ha2VsaXplKHJlcykpKTtcbiAgICB9LFxuICAgIGdldEF2YWlsYWJsZVZvaWNlUmVnaW9uczogYXN5bmMgKCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRBdmFpbGFibGVWb2ljZVJlZ2lvbnMoKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMudm9pY2VSZWdpb24oYm90LCBzbmFrZWxpemUocmVzKSkpO1xuICAgIH0sXG4gICAgZ2V0QmFuOiBhc3luYyAoZ3VpbGRJZCwgdXNlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0QmFuKGd1aWxkSWQsIHVzZXJJZCk7XG4gICAgfSxcbiAgICBnZXRCYW5zOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldEJhbnMoZ3VpbGRJZCwgb3B0aW9ucyk7XG4gICAgfSxcbiAgICBnZXRDaGFubmVsOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldENoYW5uZWwoY2hhbm5lbElkKSkpO1xuICAgIH0sXG4gICAgZ2V0Q2hhbm5lbEludml0ZXM6IGFzeW5jIChjaGFubmVsSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0Q2hhbm5lbEludml0ZXMoY2hhbm5lbElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuaW52aXRlKGJvdCwgc25ha2VsaXplKHJlcykpKTtcbiAgICB9LFxuICAgIGdldENoYW5uZWxzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRDaGFubmVscyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHNuYWtlbGl6ZShyZXMpLCB7IGd1aWxkSWQgfSkpO1xuICAgIH0sXG4gICAgZ2V0Q2hhbm5lbFdlYmhvb2tzOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldENoYW5uZWxXZWJob29rcyhjaGFubmVsSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy53ZWJob29rKGJvdCwgc25ha2VsaXplKHJlcykpKTtcbiAgICB9LFxuICAgIGdldERtQ2hhbm5lbDogYXN5bmMgKHVzZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXREbUNoYW5uZWwodXNlcklkKSkpO1xuICAgIH0sXG4gICAgZ2V0R3JvdXBEbUNoYW5uZWw6IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEdyb3VwRG1DaGFubmVsKG9wdGlvbnMpKSk7XG4gICAgfSxcbiAgICBnZXRFbW9qaTogYXN5bmMgKGd1aWxkSWQsIGVtb2ppSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEVtb2ppKGd1aWxkSWQsIGVtb2ppSWQpKSk7XG4gICAgfSxcbiAgICBnZXRBcHBsaWNhdGlvbkVtb2ppOiBhc3luYyAoZW1vamlJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0QXBwbGljYXRpb25FbW9qaShlbW9qaUlkKSkpO1xuICAgIH0sXG4gICAgZ2V0RW1vamlzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRFbW9qaXMoZ3VpbGRJZCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgc25ha2VsaXplKHJlcykpKTtcbiAgICB9LFxuICAgIGdldEFwcGxpY2F0aW9uRW1vamlzOiBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBib3QucmVzdC5nZXRBcHBsaWNhdGlvbkVtb2ppcygpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBpdGVtczogcmVzLml0ZW1zLm1hcCgoaXRlbSkgPT4gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHNuYWtlbGl6ZShpdGVtKSkpLFxuICAgICAgfTtcbiAgICB9LFxuICAgIGdldEZvbGxvd3VwTWVzc2FnZTogYXN5bmMgKHRva2VuLCBtZXNzYWdlSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0Rm9sbG93dXBNZXNzYWdlKHRva2VuLCBtZXNzYWdlSWQpKSk7XG4gICAgfSxcbiAgICBnZXRHYXRld2F5Qm90OiBhc3luYyAoKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5nYXRld2F5Qm90KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEdhdGV3YXlCb3QoKSkpO1xuICAgIH0sXG4gICAgZ2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kOiBhc3luYyAoY29tbWFuZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kKGNvbW1hbmRJZCkpKTtcbiAgICB9LFxuICAgIGdldEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZHM6IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZHMob3B0aW9ucykpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShyZXMpKSk7XG4gICAgfSxcbiAgICBnZXRHdWlsZDogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmd1aWxkKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkKGd1aWxkSWQsIG9wdGlvbnMpKSk7XG4gICAgfSxcbiAgICBnZXRHdWlsZHM6IGFzeW5jIChiZWFyZXJUb2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRHdWlsZHMoYmVhcmVyVG9rZW4sIG9wdGlvbnMpKS5tYXA8UGFydGlhbDx0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5ndWlsZD4+KChyZXMpID0+XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgZ2V0R3VpbGRzIHJldHVybnMgcGFydGlhbCBndWlsZHNcbiAgICAgICAgYm90LnRyYW5zZm9ybWVycy5ndWlsZChib3QsIHNuYWtlbGl6ZShyZXMpKSxcbiAgICAgICk7XG4gICAgfSxcbiAgICBnZXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZDogYXN5bmMgKGNvbW1hbmRJZCwgZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkQXBwbGljYXRpb25Db21tYW5kKGNvbW1hbmRJZCwgZ3VpbGRJZCkpKTtcbiAgICB9LFxuICAgIGdldEd1aWxkQXBwbGljYXRpb25Db21tYW5kczogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRzKGd1aWxkSWQsIG9wdGlvbnMpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUocmVzKSkpO1xuICAgIH0sXG4gICAgZ2V0R3VpbGRQcmV2aWV3OiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkUHJldmlldyhndWlsZElkKTtcbiAgICAgIC8vIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnh4eChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRHdWlsZFByZXZpZXcoZ3VpbGRJZCkpKVxuICAgIH0sXG4gICAgZ2V0R3VpbGRTdGlja2VyOiBhc3luYyAoZ3VpbGRJZCwgc3RpY2tlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zdGlja2VyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkU3RpY2tlcihndWlsZElkLCBzdGlja2VySWQpKSk7XG4gICAgfSxcbiAgICBnZXRHdWlsZFN0aWNrZXJzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRHdWlsZFN0aWNrZXJzKGd1aWxkSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5zdGlja2VyKGJvdCwgc25ha2VsaXplKHJlcykpKTtcbiAgICB9LFxuICAgIGdldEd1aWxkVGVtcGxhdGU6IGFzeW5jICh0ZW1wbGF0ZUNvZGUpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnRlbXBsYXRlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkVGVtcGxhdGUodGVtcGxhdGVDb2RlKSkpO1xuICAgIH0sXG4gICAgZ2V0R3VpbGRUZW1wbGF0ZXM6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkVGVtcGxhdGVzKGd1aWxkSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy50ZW1wbGF0ZShib3QsIHNuYWtlbGl6ZShyZXMpKSk7XG4gICAgfSxcbiAgICBnZXRHdWlsZFdlYmhvb2tzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRHdWlsZFdlYmhvb2tzKGd1aWxkSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy53ZWJob29rKGJvdCwgc25ha2VsaXplKHJlcykpKTtcbiAgICB9LFxuICAgIGdldEludGVncmF0aW9uczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0SW50ZWdyYXRpb25zKGd1aWxkSWQpKS5tYXAoKHJlcykgPT5cbiAgICAgICAgYm90LnRyYW5zZm9ybWVycy5pbnRlZ3JhdGlvbihib3QsIHNuYWtlbGl6ZSh7IC4uLnJlcywgZ3VpbGRJZDogZ3VpbGRJZC50b1N0cmluZygpIH0pKSxcbiAgICAgICk7XG4gICAgfSxcbiAgICBnZXRJbnZpdGU6IGFzeW5jIChpbnZpdGVDb2RlLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5pbnZpdGUoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0SW52aXRlKGludml0ZUNvZGUsIG9wdGlvbnMpKSk7XG4gICAgfSxcbiAgICBnZXRJbnZpdGVzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRJbnZpdGVzKGd1aWxkSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5pbnZpdGUoYm90LCBzbmFrZWxpemUocmVzKSkpO1xuICAgIH0sXG4gICAgZ2V0TWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldE1lc3NhZ2UoY2hhbm5lbElkLCBtZXNzYWdlSWQpKSk7XG4gICAgfSxcbiAgICBnZXRNZXNzYWdlczogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRNZXNzYWdlcyhjaGFubmVsSWQsIG9wdGlvbnMpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgc25ha2VsaXplKHJlcykpKTtcbiAgICB9LFxuICAgIGdldFN0aWNrZXJQYWNrOiBhc3luYyAoc3RpY2tlclBhY2tJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3RpY2tlclBhY2soYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0U3RpY2tlclBhY2soc3RpY2tlclBhY2tJZCkpKTtcbiAgICB9LFxuICAgIGdldFN0aWNrZXJQYWNrczogYXN5bmMgKCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRTdGlja2VyUGFja3MoKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuc3RpY2tlclBhY2soYm90LCBzbmFrZWxpemUocmVzKSkpO1xuICAgIH0sXG4gICAgZ2V0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlOiBhc3luYyAodG9rZW4pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlKHRva2VuKSkpO1xuICAgIH0sXG4gICAgZ2V0Q2hhbm5lbFBpbnM6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IHJlcyA9IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRDaGFubmVsUGlucyhjaGFubmVsSWQsIG9wdGlvbnMpKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaGFzTW9yZTogcmVzLmhhc19tb3JlLFxuICAgICAgICBpdGVtczogcmVzLml0ZW1zLm1hcCgoaXRlbSkgPT4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlUGluKGJvdCwgaXRlbSkpLFxuICAgICAgfTtcbiAgICB9LFxuICAgIGdldFBpbm5lZE1lc3NhZ2VzOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldFBpbm5lZE1lc3NhZ2VzKGNoYW5uZWxJZCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBzbmFrZWxpemUocmVzKSkpO1xuICAgIH0sXG4gICAgZ2V0UHJpdmF0ZUFyY2hpdmVkVGhyZWFkczogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldFByaXZhdGVBcmNoaXZlZFRocmVhZHMoY2hhbm5lbElkLCBvcHRpb25zKTtcbiAgICB9LFxuICAgIGdldFByaXZhdGVKb2luZWRBcmNoaXZlZFRocmVhZHM6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRQcml2YXRlSm9pbmVkQXJjaGl2ZWRUaHJlYWRzKGNoYW5uZWxJZCwgb3B0aW9ucyk7XG4gICAgfSxcbiAgICBnZXRQcnVuZUNvdW50OiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldFBydW5lQ291bnQoZ3VpbGRJZCwgb3B0aW9ucyk7XG4gICAgfSxcbiAgICBnZXRQdWJsaWNBcmNoaXZlZFRocmVhZHM6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRQdWJsaWNBcmNoaXZlZFRocmVhZHMoY2hhbm5lbElkLCBvcHRpb25zKTtcbiAgICB9LFxuICAgIGdldFJvbGVzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRSb2xlcyhndWlsZElkKSkubWFwKChyb2xlKSA9PiBib3QudHJhbnNmb3JtZXJzLnJvbGUoYm90LCByb2xlLCB7IGd1aWxkSWQgfSkpO1xuICAgIH0sXG4gICAgZ2V0Um9sZTogYXN5bmMgKGd1aWxkSWQsIHJvbGVJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRSb2xlKGd1aWxkSWQsIHJvbGVJZCkpLCB7IGd1aWxkSWQgfSk7XG4gICAgfSxcbiAgICBnZXRTY2hlZHVsZWRFdmVudDogYXN5bmMgKGd1aWxkSWQsIGV2ZW50SWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnNjaGVkdWxlZEV2ZW50KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFNjaGVkdWxlZEV2ZW50KGd1aWxkSWQsIGV2ZW50SWQsIG9wdGlvbnMpKSk7XG4gICAgfSxcbiAgICBnZXRTY2hlZHVsZWRFdmVudHM6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldFNjaGVkdWxlZEV2ZW50cyhndWlsZElkLCBvcHRpb25zKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuc2NoZWR1bGVkRXZlbnQoYm90LCBzbmFrZWxpemUocmVzKSkpO1xuICAgIH0sXG4gICAgZ2V0U2NoZWR1bGVkRXZlbnRVc2VyczogYXN5bmMgKGd1aWxkSWQsIGV2ZW50SWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0U2NoZWR1bGVkRXZlbnRVc2VycyhndWlsZElkLCBldmVudElkLCBvcHRpb25zKSkubWFwKCh1KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdXNlcjogYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgc25ha2VsaXplKHUudXNlcikpLFxuICAgICAgICAgIG1lbWJlcjogdS5tZW1iZXIgJiYgYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBzbmFrZWxpemUodS5tZW1iZXIpLCB7IGd1aWxkSWQsIHVzZXJJZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UodS51c2VyLmlkKSB9KSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgZ2V0U2Vzc2lvbkluZm86IGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmdhdGV3YXlCb3QoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0U2Vzc2lvbkluZm8oKSkpO1xuICAgIH0sXG4gICAgZ2V0U3RhZ2VJbnN0YW5jZTogYXN5bmMgKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3RhZ2VJbnN0YW5jZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRTdGFnZUluc3RhbmNlKGNoYW5uZWxJZCkpKTtcbiAgICB9LFxuICAgIGdldE93blZvaWNlU3RhdGU6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy52b2ljZVN0YXRlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldE93blZvaWNlU3RhdGUoZ3VpbGRJZCkpLCB7IGd1aWxkSWQgfSk7XG4gICAgfSxcbiAgICBnZXRVc2VyVm9pY2VTdGF0ZTogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudm9pY2VTdGF0ZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRVc2VyVm9pY2VTdGF0ZShndWlsZElkLCB1c2VySWQpKSwgeyBndWlsZElkIH0pO1xuICAgIH0sXG4gICAgZ2V0U3RpY2tlcjogYXN5bmMgKHN0aWNrZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3RpY2tlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRTdGlja2VyKHN0aWNrZXJJZCkpKTtcbiAgICB9LFxuICAgIGdldFRocmVhZE1lbWJlcjogYXN5bmMgKGNoYW5uZWxJZCwgdXNlcklkLCBvcHRpb25zLCBleHRyYSkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudGhyZWFkTWVtYmVyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFRocmVhZE1lbWJlcihjaGFubmVsSWQsIHVzZXJJZCwgb3B0aW9ucykpLCBleHRyYSk7XG4gICAgfSxcbiAgICBnZXRUaHJlYWRNZW1iZXJzOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zLCBleHRyYSkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRUaHJlYWRNZW1iZXJzKGNoYW5uZWxJZCwgb3B0aW9ucykpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLnRocmVhZE1lbWJlcihib3QsIHNuYWtlbGl6ZShyZXMpLCBleHRyYSkpO1xuICAgIH0sXG4gICAgZ2V0UmVhY3Rpb25zOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldFJlYWN0aW9ucyhjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhY3Rpb24sIG9wdGlvbnMpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgc25ha2VsaXplKHJlcykpKTtcbiAgICB9LFxuICAgIGdldFVzZXI6IGFzeW5jIChpZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRVc2VyKGlkKSkpO1xuICAgIH0sXG4gICAgZ2V0Q3VycmVudFVzZXI6IGFzeW5jIChiZWFyZXJUb2tlbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRDdXJyZW50VXNlcihiZWFyZXJUb2tlbikpKTtcbiAgICB9LFxuICAgIGdldFVzZXJDb25uZWN0aW9uczogYXN5bmMgKGJlYXJlclRva2VuKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0VXNlckNvbm5lY3Rpb25zKGJlYXJlclRva2VuKTtcbiAgICB9LFxuICAgIGdldFVzZXJBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uOiBhc3luYyAoYmVhcmVyVG9rZW4sIGFwcGxpY2F0aW9uSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbihiZWFyZXJUb2tlbiwgYXBwbGljYXRpb25JZCk7XG4gICAgfSxcbiAgICBnZXRWYW5pdHlVcmw6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0VmFuaXR5VXJsKGd1aWxkSWQpO1xuICAgIH0sXG4gICAgZ2V0Vm9pY2VSZWdpb25zOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRWb2ljZVJlZ2lvbnMoZ3VpbGRJZCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLnZvaWNlUmVnaW9uKGJvdCwgc25ha2VsaXplKHJlcykpKTtcbiAgICB9LFxuICAgIGdldFdlYmhvb2s6IGFzeW5jICh3ZWJob29rSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlYmhvb2soYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0V2ViaG9vayh3ZWJob29rSWQpKSk7XG4gICAgfSxcbiAgICBnZXRXZWJob29rTWVzc2FnZTogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4sIG1lc3NhZ2VJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRXZWJob29rTWVzc2FnZSh3ZWJob29rSWQsIHRva2VuLCBtZXNzYWdlSWQsIG9wdGlvbnMpKSk7XG4gICAgfSxcbiAgICBnZXRXZWJob29rV2l0aFRva2VuOiBhc3luYyAod2ViaG9va0lkLCB0b2tlbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMud2ViaG9vayhib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRXZWJob29rV2l0aFRva2VuKHdlYmhvb2tJZCwgdG9rZW4pKSk7XG4gICAgfSxcbiAgICBnZXRXZWxjb21lU2NyZWVuOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMud2VsY29tZVNjcmVlbihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRXZWxjb21lU2NyZWVuKGd1aWxkSWQpKSk7XG4gICAgfSxcbiAgICBnZXRXaWRnZXQ6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy53aWRnZXQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0V2lkZ2V0KGd1aWxkSWQpKSk7XG4gICAgfSxcbiAgICBnZXRXaWRnZXRTZXR0aW5nczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndpZGdldFNldHRpbmdzKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFdpZGdldFNldHRpbmdzKGd1aWxkSWQpKSk7XG4gICAgfSxcbiAgICBwdWJsaXNoTWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LnB1Ymxpc2hNZXNzYWdlKGNoYW5uZWxJZCwgbWVzc2FnZUlkKSkpO1xuICAgIH0sXG4gICAgc2VuZE1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3Quc2VuZE1lc3NhZ2UoY2hhbm5lbElkLCBvcHRpb25zKSkpO1xuICAgIH0sXG4gICAgc2VuZEZvbGxvd3VwTWVzc2FnZTogYXN5bmMgKHRva2VuLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LnNlbmRGb2xsb3d1cE1lc3NhZ2UodG9rZW4sIG9wdGlvbnMpKSk7XG4gICAgfSxcbiAgICBzdGFydFRocmVhZFdpdGhNZXNzYWdlOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5zdGFydFRocmVhZFdpdGhNZXNzYWdlKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCBvcHRpb25zLCByZWFzb24pKSk7XG4gICAgfSxcbiAgICBzdGFydFRocmVhZFdpdGhvdXRNZXNzYWdlOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3Quc3RhcnRUaHJlYWRXaXRob3V0TWVzc2FnZShjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikpKTtcbiAgICB9LFxuICAgIHN5bmNHdWlsZFRlbXBsYXRlOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudGVtcGxhdGUoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3Quc3luY0d1aWxkVGVtcGxhdGUoZ3VpbGRJZCkpKTtcbiAgICB9LFxuICAgIHVwc2VydEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZHM6IGFzeW5jIChjb21tYW5kcywgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC51cHNlcnRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzKGNvbW1hbmRzLCBvcHRpb25zKSkubWFwKChyZXMpID0+XG4gICAgICAgIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kKGJvdCwgc25ha2VsaXplKHJlcykpLFxuICAgICAgKTtcbiAgICB9LFxuICAgIHVwc2VydEd1aWxkQXBwbGljYXRpb25Db21tYW5kczogYXN5bmMgKGd1aWxkSWQsIGNvbW1hbmRzLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LnVwc2VydEd1aWxkQXBwbGljYXRpb25Db21tYW5kcyhndWlsZElkLCBjb21tYW5kcywgb3B0aW9ucykpLm1hcCgocmVzKSA9PlxuICAgICAgICBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShyZXMpKSxcbiAgICAgICk7XG4gICAgfSxcbiAgICBlZGl0Q3VycmVudE1lbWJlcjogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRDdXJyZW50TWVtYmVyKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpLCB7IGd1aWxkSWQsIHVzZXJJZDogYm90LmlkIH0pO1xuICAgIH0sXG4gICAgZWRpdE1lbWJlcjogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdE1lbWJlcihndWlsZElkLCB1c2VySWQsIG9wdGlvbnMsIHJlYXNvbikpLCB7IGd1aWxkSWQsIHVzZXJJZCB9KTtcbiAgICB9LFxuICAgIGdldEN1cnJlbnRNZW1iZXI6IGFzeW5jIChndWlsZElkLCBiZWFyZXJUb2tlbikgPT4ge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgYm90LnJlc3QuZ2V0Q3VycmVudE1lbWJlcihndWlsZElkLCBiZWFyZXJUb2tlbik7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBzbmFrZWxpemUocmVzKSwgeyBndWlsZElkLCB1c2VySWQ6IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHJlcy51c2VyLmlkKSB9KTtcbiAgICB9LFxuICAgIGdldE1lbWJlcjogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldE1lbWJlcihndWlsZElkLCB1c2VySWQpKSwgeyBndWlsZElkLCB1c2VySWQgfSk7XG4gICAgfSxcbiAgICBnZXRNZW1iZXJzOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRNZW1iZXJzKGd1aWxkSWQsIG9wdGlvbnMpKS5tYXAoKHJlcykgPT5cbiAgICAgICAgYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBzbmFrZWxpemUocmVzKSwgeyBndWlsZElkLCB1c2VySWQ6IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHJlcy51c2VyLmlkKSB9KSxcbiAgICAgICk7XG4gICAgfSxcbiAgICBwcnVuZU1lbWJlcnM6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5wcnVuZU1lbWJlcnMoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKTtcbiAgICB9LFxuICAgIHNlYXJjaE1lbWJlcnM6IGFzeW5jIChndWlsZElkLCBxdWVyeSwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5zZWFyY2hNZW1iZXJzKGd1aWxkSWQsIHF1ZXJ5LCBvcHRpb25zKSkubWFwKChyZXMpID0+XG4gICAgICAgIGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgc25ha2VsaXplKHJlcyksIHsgZ3VpbGRJZCwgdXNlcklkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShyZXMudXNlci5pZCkgfSksXG4gICAgICApO1xuICAgIH0sXG4gICAgYnVsa0Jhbk1lbWJlcnM6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGJvdC5yZXN0LmJ1bGtCYW5NZW1iZXJzKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbik7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGJhbm5lZFVzZXJzOiByZXMuYmFubmVkVXNlcnMubWFwKCh4KSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh4KSksXG4gICAgICAgIGZhaWxlZFVzZXJzOiByZXMuZmFpbGVkVXNlcnMubWFwKCh4KSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh4KSksXG4gICAgICB9O1xuICAgIH0sXG4gICAgZ2V0QXBwbGljYXRpb25BY3Rpdml0eUluc3RhbmNlOiBhc3luYyAoYXBwbGljYXRpb25JZCwgaW5zdGFuY2VJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldEFwcGxpY2F0aW9uQWN0aXZpdHlJbnN0YW5jZShhcHBsaWNhdGlvbklkLCBpbnN0YW5jZUlkKTtcbiAgICB9LFxuICAgIGxpc3RBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uc01ldGFkYXRhUmVjb3JkczogYXN5bmMgKGFwcGxpY2F0aW9uSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5saXN0QXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbnNNZXRhZGF0YVJlY29yZHMoYXBwbGljYXRpb25JZCk7XG4gICAgfSxcbiAgICB1cGRhdGVBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uc01ldGFkYXRhUmVjb3JkczogYXN5bmMgKGFwcGxpY2F0aW9uSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC51cGRhdGVBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uc01ldGFkYXRhUmVjb3JkcyhhcHBsaWNhdGlvbklkLCBvcHRpb25zKTtcbiAgICB9LFxuICAgIGNyZWF0ZUxvYmJ5OiBhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubG9iYnkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlTG9iYnkob3B0aW9ucykpKTtcbiAgICB9LFxuICAgIGdldExvYmJ5OiBhc3luYyAobG9iYnlJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubG9iYnkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0TG9iYnkobG9iYnlJZCkpKTtcbiAgICB9LFxuICAgIG1vZGlmeUxvYmJ5OiBhc3luYyAobG9iYnlJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubG9iYnkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QubW9kaWZ5TG9iYnkobG9iYnlJZCwgb3B0aW9ucykpKTtcbiAgICB9LFxuICAgIGFkZE1lbWJlclRvTG9iYnk6IGFzeW5jIChsb2JieUlkLCB1c2VySWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmxvYmJ5TWVtYmVyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmFkZE1lbWJlclRvTG9iYnkobG9iYnlJZCwgdXNlcklkLCBvcHRpb25zKSkpO1xuICAgIH0sXG4gICAgbGlua0NoYW5uZWxUb0xvYmJ5OiBhc3luYyAobG9iYnlJZCwgYmVhcmVyVG9rZW4sIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmxvYmJ5KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmxpbmtDaGFubmVsVG9Mb2JieShsb2JieUlkLCBiZWFyZXJUb2tlbiwgb3B0aW9ucykpKTtcbiAgICB9LFxuICAgIHVubGlua0NoYW5uZWxUb0xvYmJ5OiBhc3luYyAobG9iYnlJZCwgYmVhcmVyVG9rZW4pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmxvYmJ5KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LnVubGlua0NoYW5uZWxUb0xvYmJ5KGxvYmJ5SWQsIGJlYXJlclRva2VuKSkpO1xuICAgIH0sXG4gICAgZ2V0VGFyZ2V0VXNlcnM6IGFzeW5jIChpbnZpdGVDb2RlKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0VGFyZ2V0VXNlcnMoaW52aXRlQ29kZSk7XG4gICAgfSxcbiAgICB1cGRhdGVUYXJnZXRVc2VyczogYXN5bmMgKGludml0ZUNvZGUsIHRhcmdldFVzZXJzRmlsZSkgPT4ge1xuICAgICAgYXdhaXQgYm90LnJlc3QudXBkYXRlVGFyZ2V0VXNlcnMoaW52aXRlQ29kZSwgdGFyZ2V0VXNlcnNGaWxlKTtcbiAgICB9LFxuICAgIGdldFRhcmdldFVzZXJzSm9iU3RhdHVzOiBhc3luYyAoaW52aXRlQ29kZSkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldFRhcmdldFVzZXJzSm9iU3RhdHVzKGludml0ZUNvZGUpO1xuICAgIH0sXG4gICAgLy8gQWxsIHVzZWxlc3Mgdm9pZCByZXR1cm4gZnVuY3Rpb25zIGhlcmVcbiAgICBhZGRSZWFjdGlvbjogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmFkZFJlYWN0aW9uKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbik7XG4gICAgfSxcbiAgICBhZGRSZWFjdGlvbnM6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhY3Rpb25zLCBvcmRlcmVkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuYWRkUmVhY3Rpb25zKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbnMsIG9yZGVyZWQpO1xuICAgIH0sXG4gICAgYWRkUm9sZTogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCwgcm9sZUlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5hZGRSb2xlKGd1aWxkSWQsIHVzZXJJZCwgcm9sZUlkLCByZWFzb24pO1xuICAgIH0sXG4gICAgYWRkVGhyZWFkTWVtYmVyOiBhc3luYyAoY2hhbm5lbElkLCB1c2VySWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5hZGRUaHJlYWRNZW1iZXIoY2hhbm5lbElkLCB1c2VySWQpO1xuICAgIH0sXG4gICAgYWRkRG1SZWNpcGllbnQ6IGFzeW5jIChjaGFubmVsSWQsIHVzZXJJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmFkZERtUmVjaXBpZW50KGNoYW5uZWxJZCwgdXNlcklkLCBvcHRpb25zKTtcbiAgICB9LFxuICAgIGFkZEd1aWxkTWVtYmVyOiBhc3luYyAoZ3VpbGRJZCwgdXNlcklkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuYWRkR3VpbGRNZW1iZXIoZ3VpbGRJZCwgdXNlcklkLCBvcHRpb25zKTtcbiAgICB9LFxuICAgIGRlbGV0ZUF1dG9tb2RSdWxlOiBhc3luYyAoZ3VpbGRJZCwgcnVsZUlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVBdXRvbW9kUnVsZShndWlsZElkLCBydWxlSWQsIHJlYXNvbik7XG4gICAgfSxcbiAgICBkZWxldGVDaGFubmVsOiBhc3luYyAoY2hhbm5lbElkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVDaGFubmVsKGNoYW5uZWxJZCwgcmVhc29uKTtcbiAgICB9LFxuICAgIGRlbGV0ZUNoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGU6IGFzeW5jIChjaGFubmVsSWQsIG92ZXJ3cml0ZUlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlKGNoYW5uZWxJZCwgb3ZlcndyaXRlSWQsIHJlYXNvbik7XG4gICAgfSxcbiAgICBkZWxldGVFbW9qaTogYXN5bmMgKGd1aWxkSWQsIGlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVFbW9qaShndWlsZElkLCBpZCwgcmVhc29uKTtcbiAgICB9LFxuICAgIGRlbGV0ZUFwcGxpY2F0aW9uRW1vamk6IGFzeW5jIChpZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUFwcGxpY2F0aW9uRW1vamkoaWQpO1xuICAgIH0sXG4gICAgZGVsZXRlRm9sbG93dXBNZXNzYWdlOiBhc3luYyAodG9rZW4sIG1lc3NhZ2VJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUZvbGxvd3VwTWVzc2FnZSh0b2tlbiwgbWVzc2FnZUlkKTtcbiAgICB9LFxuICAgIGRlbGV0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogYXN5bmMgKGNvbW1hbmRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZChjb21tYW5kSWQpO1xuICAgIH0sXG4gICAgZGVsZXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQ6IGFzeW5jIChjb21tYW5kSWQsIGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZChjb21tYW5kSWQsIGd1aWxkSWQpO1xuICAgIH0sXG4gICAgZGVsZXRlR3VpbGRTdGlja2VyOiBhc3luYyAoZ3VpbGRJZCwgc3RpY2tlcklkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVHdWlsZFN0aWNrZXIoZ3VpbGRJZCwgc3RpY2tlcklkLCByZWFzb24pO1xuICAgIH0sXG4gICAgZGVsZXRlR3VpbGRUZW1wbGF0ZTogYXN5bmMgKGd1aWxkSWQsIHRlbXBsYXRlQ29kZSkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUd1aWxkVGVtcGxhdGUoZ3VpbGRJZCwgdGVtcGxhdGVDb2RlKTtcbiAgICB9LFxuICAgIGRlbGV0ZUludGVncmF0aW9uOiBhc3luYyAoZ3VpbGRJZCwgaW50ZWdyYXRpb25JZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlSW50ZWdyYXRpb24oZ3VpbGRJZCwgaW50ZWdyYXRpb25JZCwgcmVhc29uKTtcbiAgICB9LFxuICAgIGRlbGV0ZUludml0ZTogYXN5bmMgKGludml0ZUNvZGUsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUludml0ZShpbnZpdGVDb2RlLCByZWFzb24pO1xuICAgIH0sXG4gICAgZGVsZXRlTWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVNZXNzYWdlKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFzb24pO1xuICAgIH0sXG4gICAgZGVsZXRlTWVzc2FnZXM6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZHMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZU1lc3NhZ2VzKGNoYW5uZWxJZCwgbWVzc2FnZUlkcywgcmVhc29uKTtcbiAgICB9LFxuICAgIGRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZTogYXN5bmMgKHRva2VuKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlT3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlKHRva2VuKTtcbiAgICB9LFxuICAgIGRlbGV0ZU93blJlYWN0aW9uOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlT3duUmVhY3Rpb24oY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uKTtcbiAgICB9LFxuICAgIGRlbGV0ZVJlYWN0aW9uc0FsbDogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlUmVhY3Rpb25zQWxsKGNoYW5uZWxJZCwgbWVzc2FnZUlkKTtcbiAgICB9LFxuICAgIGRlbGV0ZVJlYWN0aW9uc0Vtb2ppOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlUmVhY3Rpb25zRW1vamkoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uKTtcbiAgICB9LFxuICAgIGRlbGV0ZVJvbGU6IGFzeW5jIChndWlsZElkLCByb2xlSWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZVJvbGUoZ3VpbGRJZCwgcm9sZUlkLCByZWFzb24pO1xuICAgIH0sXG4gICAgZGVsZXRlU2NoZWR1bGVkRXZlbnQ6IGFzeW5jIChndWlsZElkLCBldmVudElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlU2NoZWR1bGVkRXZlbnQoZ3VpbGRJZCwgZXZlbnRJZCk7XG4gICAgfSxcbiAgICBkZWxldGVTdGFnZUluc3RhbmNlOiBhc3luYyAoY2hhbm5lbElkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVTdGFnZUluc3RhbmNlKGNoYW5uZWxJZCwgcmVhc29uKTtcbiAgICB9LFxuICAgIGRlbGV0ZVVzZXJSZWFjdGlvbjogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCB1c2VySWQsIHJlYWN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlVXNlclJlYWN0aW9uKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCB1c2VySWQsIHJlYWN0aW9uKTtcbiAgICB9LFxuICAgIGRlbGV0ZVdlYmhvb2s6IGFzeW5jICh3ZWJob29rSWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZVdlYmhvb2sod2ViaG9va0lkLCByZWFzb24pO1xuICAgIH0sXG4gICAgZGVsZXRlV2ViaG9va01lc3NhZ2U6IGFzeW5jICh3ZWJob29rSWQsIHRva2VuLCBtZXNzYWdlSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVXZWJob29rTWVzc2FnZSh3ZWJob29rSWQsIHRva2VuLCBtZXNzYWdlSWQsIG9wdGlvbnMpO1xuICAgIH0sXG4gICAgZGVsZXRlV2ViaG9va1dpdGhUb2tlbjogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVXZWJob29rV2l0aFRva2VuKHdlYmhvb2tJZCwgdG9rZW4pO1xuICAgIH0sXG4gICAgZWRpdENoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGVzOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5lZGl0Q2hhbm5lbFBlcm1pc3Npb25PdmVycmlkZXMoY2hhbm5lbElkLCBvcHRpb25zLCByZWFzb24pO1xuICAgIH0sXG4gICAgZWRpdENoYW5uZWxQb3NpdGlvbnM6IGFzeW5jIChndWlsZElkLCBjaGFubmVsUG9zaXRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZWRpdENoYW5uZWxQb3NpdGlvbnMoZ3VpbGRJZCwgY2hhbm5lbFBvc2l0aW9ucyk7XG4gICAgfSxcbiAgICBlZGl0T3duVm9pY2VTdGF0ZTogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5lZGl0T3duVm9pY2VTdGF0ZShndWlsZElkLCBvcHRpb25zKTtcbiAgICB9LFxuICAgIGVkaXRVc2VyVm9pY2VTdGF0ZTogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5lZGl0VXNlclZvaWNlU3RhdGUoZ3VpbGRJZCwgb3B0aW9ucyk7XG4gICAgfSxcbiAgICBlZGl0VXNlckFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb246IGFzeW5jIChiZWFyZXJUb2tlbiwgYXBwbGljYXRpb25JZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmVkaXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbihiZWFyZXJUb2tlbiwgYXBwbGljYXRpb25JZCwgb3B0aW9ucyk7XG4gICAgfSxcbiAgICBqb2luVGhyZWFkOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3Quam9pblRocmVhZChjaGFubmVsSWQpO1xuICAgIH0sXG4gICAgbGVhdmVHdWlsZDogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5sZWF2ZUd1aWxkKGd1aWxkSWQpO1xuICAgIH0sXG4gICAgbGVhdmVUaHJlYWQ6IGFzeW5jIChjaGFubmVsSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5sZWF2ZVRocmVhZChjaGFubmVsSWQpO1xuICAgIH0sXG4gICAgcmVtb3ZlUm9sZTogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCwgcm9sZUlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5yZW1vdmVSb2xlKGd1aWxkSWQsIHVzZXJJZCwgcm9sZUlkLCByZWFzb24pO1xuICAgIH0sXG4gICAgcmVtb3ZlVGhyZWFkTWVtYmVyOiBhc3luYyAoY2hhbm5lbElkLCB1c2VySWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5yZW1vdmVUaHJlYWRNZW1iZXIoY2hhbm5lbElkLCB1c2VySWQpO1xuICAgIH0sXG4gICAgcmVtb3ZlRG1SZWNpcGllbnQ6IGFzeW5jIChjaGFubmVsSWQsIHVzZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LnJlbW92ZURtUmVjaXBpZW50KGNoYW5uZWxJZCwgdXNlcklkKTtcbiAgICB9LFxuICAgIHNlbmRJbnRlcmFjdGlvblJlc3BvbnNlOiBhc3luYyAoaW50ZXJhY3Rpb25JZCwgdG9rZW4sIG9wdGlvbnMsIHBhcmFtcykgPT4ge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBib3QucmVzdC5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZShpbnRlcmFjdGlvbklkLCB0b2tlbiwgb3B0aW9ucywgcGFyYW1zKTtcblxuICAgICAgaWYgKCFyZXNwb25zZSkgcmV0dXJuO1xuXG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UoYm90LCBzbmFrZWxpemUocmVzcG9uc2UpKTtcbiAgICB9LFxuICAgIHRyaWdnZXJUeXBpbmdJbmRpY2F0b3I6IGFzeW5jIChjaGFubmVsSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC50cmlnZ2VyVHlwaW5nSW5kaWNhdG9yKGNoYW5uZWxJZCk7XG4gICAgfSxcbiAgICBiYW5NZW1iZXI6IGFzeW5jIChndWlsZElkLCB1c2VySWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmJhbk1lbWJlcihndWlsZElkLCB1c2VySWQsIG9wdGlvbnMsIHJlYXNvbik7XG4gICAgfSxcblxuICAgIGtpY2tNZW1iZXI6IGFzeW5jIChndWlsZElkLCB1c2VySWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmtpY2tNZW1iZXIoZ3VpbGRJZCwgdXNlcklkLCByZWFzb24pO1xuICAgIH0sXG4gICAgcGluTWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5waW5NZXNzYWdlKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFzb24pO1xuICAgIH0sXG4gICAgdW5iYW5NZW1iZXI6IGFzeW5jIChndWlsZElkLCB1c2VySWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LnVuYmFuTWVtYmVyKGd1aWxkSWQsIHVzZXJJZCwgcmVhc29uKTtcbiAgICB9LFxuICAgIHVucGluTWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC51bnBpbk1lc3NhZ2UoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYXNvbik7XG4gICAgfSxcbiAgICBnZXRHdWlsZE9uYm9hcmRpbmc6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5ndWlsZE9uYm9hcmRpbmcoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRPbmJvYXJkaW5nKGd1aWxkSWQpKSk7XG4gICAgfSxcbiAgICBlZGl0R3VpbGRPbmJvYXJkaW5nOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5ndWlsZE9uYm9hcmRpbmcoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEd1aWxkT25ib2FyZGluZyhndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSk7XG4gICAgfSxcbiAgICBsaXN0RW50aXRsZW1lbnRzOiBhc3luYyAoYXBwbGljYXRpb25JZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5saXN0RW50aXRsZW1lbnRzKGFwcGxpY2F0aW9uSWQsIG9wdGlvbnMpKS5tYXAoKGVudGl0bGVtZW50KSA9PlxuICAgICAgICBib3QudHJhbnNmb3JtZXJzLmVudGl0bGVtZW50KGJvdCwgc25ha2VsaXplKGVudGl0bGVtZW50KSksXG4gICAgICApO1xuICAgIH0sXG4gICAgZ2V0RW50aXRsZW1lbnQ6IGFzeW5jIChhcHBsaWNhdGlvbklkLCBlbnRpdGxlbWVudElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5lbnRpdGxlbWVudChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRFbnRpdGxlbWVudChhcHBsaWNhdGlvbklkLCBlbnRpdGxlbWVudElkKSkpO1xuICAgIH0sXG4gICAgY3JlYXRlVGVzdEVudGl0bGVtZW50OiBhc3luYyAoYXBwbGljYXRpb25JZCwgYm9keSkgPT4ge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBjcmVhdGVUZXN0RW50aXRsZW1lbnQgZ2l2ZXMgYSBwYXJ0aWFsLCBhbmQgdGhpcyBtZXRob2QgcmV0dXJucyBhIHBhcnRpYWxcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmVudGl0bGVtZW50KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZVRlc3RFbnRpdGxlbWVudChhcHBsaWNhdGlvbklkLCBib2R5KSkpIGFzIFBhcnRpYWw8XG4gICAgICAgIHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmVudGl0bGVtZW50XG4gICAgICA+O1xuICAgIH0sXG4gICAgZGVsZXRlVGVzdEVudGl0bGVtZW50OiBhc3luYyAoYXBwbGljYXRpb25JZCwgZW50aXRsZW1lbnRJZCkgPT4ge1xuICAgICAgYXdhaXQgYm90LnJlc3QuZGVsZXRlVGVzdEVudGl0bGVtZW50KGFwcGxpY2F0aW9uSWQsIGVudGl0bGVtZW50SWQpO1xuICAgIH0sXG4gICAgbGlzdFNrdXM6IGFzeW5jIChhcHBsaWNhdGlvbklkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0Lmxpc3RTa3VzKGFwcGxpY2F0aW9uSWQpKS5tYXAoKHNrdSkgPT4gYm90LnRyYW5zZm9ybWVycy5za3UoYm90LCBzbmFrZWxpemUoc2t1KSkpO1xuICAgIH0sXG4gICAgZ2V0U3Vic2NyaXB0aW9uOiBhc3luYyAoc2t1SWQsIHN1YnNjcmlwdGlvbklkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zdWJzY3JpcHRpb24oYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0U3Vic2NyaXB0aW9uKHNrdUlkLCBzdWJzY3JpcHRpb25JZCkpKTtcbiAgICB9LFxuICAgIGxpc3RTdWJzY3JpcHRpb25zOiBhc3luYyAoc2t1SWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QubGlzdFN1YnNjcmlwdGlvbnMoc2t1SWQsIG9wdGlvbnMpKS5tYXAoKHN1YnNjcmlwdGlvbikgPT4gYm90LnRyYW5zZm9ybWVycy5zdWJzY3JpcHRpb24oYm90LCBzbmFrZWxpemUoc3Vic2NyaXB0aW9uKSkpO1xuICAgIH0sXG4gICAgc2VuZFNvdW5kYm9hcmRTb3VuZDogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgYXdhaXQgYm90LnJlc3Quc2VuZFNvdW5kYm9hcmRTb3VuZChjaGFubmVsSWQsIG9wdGlvbnMpO1xuICAgIH0sXG4gICAgbGlzdERlZmF1bHRTb3VuZGJvYXJkU291bmRzOiBhc3luYyAoKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0Lmxpc3REZWZhdWx0U291bmRib2FyZFNvdW5kcygpKS5tYXAoKHNvdW5kKSA9PiBib3QudHJhbnNmb3JtZXJzLnNvdW5kYm9hcmRTb3VuZChib3QsIHNuYWtlbGl6ZShzb3VuZCkpKTtcbiAgICB9LFxuICAgIGxpc3RHdWlsZFNvdW5kYm9hcmRTb3VuZHM6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBib3QucmVzdC5saXN0R3VpbGRTb3VuZGJvYXJkU291bmRzKGd1aWxkSWQpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBpdGVtczogcmVzLml0ZW1zLm1hcCgoc291bmQpID0+IGJvdC50cmFuc2Zvcm1lcnMuc291bmRib2FyZFNvdW5kKGJvdCwgc25ha2VsaXplKHNvdW5kKSkpLFxuICAgICAgfTtcbiAgICB9LFxuICAgIGdldEd1aWxkU291bmRib2FyZFNvdW5kOiBhc3luYyAoZ3VpbGRJZCwgc291bmRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc291bmRib2FyZFNvdW5kKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkU291bmRib2FyZFNvdW5kKGd1aWxkSWQsIHNvdW5kSWQpKSk7XG4gICAgfSxcbiAgICBjcmVhdGVHdWlsZFNvdW5kYm9hcmRTb3VuZDogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc291bmRib2FyZFNvdW5kKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUd1aWxkU291bmRib2FyZFNvdW5kKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpKTtcbiAgICB9LFxuICAgIG1vZGlmeUd1aWxkU291bmRib2FyZFNvdW5kOiBhc3luYyAoZ3VpbGRJZCwgc291bmRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zb3VuZGJvYXJkU291bmQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QubW9kaWZ5R3VpbGRTb3VuZGJvYXJkU291bmQoZ3VpbGRJZCwgc291bmRJZCwgb3B0aW9ucywgcmVhc29uKSkpO1xuICAgIH0sXG4gICAgZGVsZXRlR3VpbGRTb3VuZGJvYXJkU291bmQ6IGFzeW5jIChndWlsZElkLCBzb3VuZElkLCByZWFzb24pID0+IHtcbiAgICAgIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUd1aWxkU291bmRib2FyZFNvdW5kKGd1aWxkSWQsIHNvdW5kSWQsIHJlYXNvbik7XG4gICAgfSxcbiAgICBkZWxldGVMb2JieTogYXN5bmMgKGxvYmJ5SWQpID0+IHtcbiAgICAgIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUxvYmJ5KGxvYmJ5SWQpO1xuICAgIH0sXG4gICAgcmVtb3ZlTWVtYmVyRnJvbUxvYmJ5OiBhc3luYyAobG9iYnlJZCwgdXNlcklkKSA9PiB7XG4gICAgICBhd2FpdCBib3QucmVzdC5yZW1vdmVNZW1iZXJGcm9tTG9iYnkobG9iYnlJZCwgdXNlcklkKTtcbiAgICB9LFxuICAgIGxlYXZlTG9iYnk6IGFzeW5jIChsb2JieUlkLCBiZWFyZXJUb2tlbikgPT4ge1xuICAgICAgYXdhaXQgYm90LnJlc3QubGVhdmVMb2JieShsb2JieUlkLCBiZWFyZXJUb2tlbik7XG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgQm90SGVscGVyczxUUHJvcHMgZXh0ZW5kcyBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgVEJlaGF2aW9yIGV4dGVuZHMgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj4gPSB7XG4gIGNyZWF0ZUF1dG9tb2RSdWxlOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IENyZWF0ZUF1dG9Nb2RlcmF0aW9uUnVsZU9wdGlvbnMsXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8QXV0b01vZGVyYXRpb25SdWxlLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBjcmVhdGVDaGFubmVsOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVHdWlsZENoYW5uZWwsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxDaGFubmVsLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBjcmVhdGVFbW9qaTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlR3VpbGRFbW9qaSwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEVtb2ppLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBjcmVhdGVBcHBsaWNhdGlvbkVtb2ppOiAob3B0aW9uczogQ3JlYXRlQXBwbGljYXRpb25FbW9qaSkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxFbW9qaSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgY3JlYXRlRm9ydW1UaHJlYWQ6IChcbiAgICBjaGFubmVsSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBDcmVhdGVGb3J1bVBvc3RXaXRoTWVzc2FnZSxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxDaGFubmVsLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBjcmVhdGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQ6IChcbiAgICBjb21tYW5kOiBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmQsXG4gICAgb3B0aW9ucz86IENyZWF0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxBcHBsaWNhdGlvbkNvbW1hbmQsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGNyZWF0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kOiAoXG4gICAgY29tbWFuZDogQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kLFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zPzogQ3JlYXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25zLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8QXBwbGljYXRpb25Db21tYW5kLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBjcmVhdGVHdWlsZFN0aWNrZXI6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogQ3JlYXRlR3VpbGRTdGlja2VyT3B0aW9ucyxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTdGlja2VyLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBjcmVhdGVHdWlsZFRlbXBsYXRlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVUZW1wbGF0ZSkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxUZW1wbGF0ZSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgY3JlYXRlSW52aXRlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBDcmVhdGVDaGFubmVsSW52aXRlLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEludml0ZT4+O1xuICBnZXRHdWlsZFJvbGVNZW1iZXJDb3VudHM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8UmVjb3JkPHN0cmluZywgbnVtYmVyPj47XG4gIGNyZWF0ZVJvbGU6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENyZWF0ZUd1aWxkUm9sZSwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFJvbGUsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGNyZWF0ZVNjaGVkdWxlZEV2ZW50OiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IENyZWF0ZVNjaGVkdWxlZEV2ZW50LFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFNjaGVkdWxlZEV2ZW50LCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBjcmVhdGVTdGFnZUluc3RhbmNlOiAob3B0aW9uczogQ3JlYXRlU3RhZ2VJbnN0YW5jZSwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFN0YWdlSW5zdGFuY2UsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGNyZWF0ZVdlYmhvb2s6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlV2ViaG9vaywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFdlYmhvb2ssIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGVkaXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uczogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBjb21tYW5kSWQ6IEJpZ1N0cmluZyxcbiAgICBiZWFyZXJUb2tlbjogc3RyaW5nLFxuICAgIG9wdGlvbnM6IENhbWVsaXplPERpc2NvcmRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucz5bXSxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEd1aWxkQXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnMsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGVkaXRBdXRvbW9kUnVsZTogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBydWxlSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBQYXJ0aWFsPEVkaXRBdXRvTW9kZXJhdGlvblJ1bGVPcHRpb25zPixcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxBdXRvTW9kZXJhdGlvblJ1bGUsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGVkaXRCb3RQcm9maWxlOiAob3B0aW9uczoge1xuICAgIHVzZXJuYW1lPzogc3RyaW5nO1xuICAgIGJvdEF2YXRhclVSTD86IHN0cmluZyB8IG51bGw7XG4gICAgYm90QmFubmVyVVJMPzogc3RyaW5nIHwgbnVsbDtcbiAgfSkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxVc2VyLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBlZGl0Q2hhbm5lbDogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBNb2RpZnlDaGFubmVsLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZWRpdEVtb2ppOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBpZDogQmlnU3RyaW5nLCBvcHRpb25zOiBNb2RpZnlHdWlsZEVtb2ppLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8RW1vamksIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGVkaXRBcHBsaWNhdGlvbkVtb2ppOiAoaWQ6IEJpZ1N0cmluZywgb3B0aW9uczogTW9kaWZ5QXBwbGljYXRpb25FbW9qaSkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxFbW9qaSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZWRpdEZvbGxvd3VwTWVzc2FnZTogKFxuICAgIHRva2VuOiBzdHJpbmcsXG4gICAgbWVzc2FnZUlkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogSW50ZXJhY3Rpb25DYWxsYmFja0RhdGEsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBlZGl0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kOiAoXG4gICAgY29tbWFuZElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8QXBwbGljYXRpb25Db21tYW5kLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBlZGl0R3VpbGQ6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IE1vZGlmeUd1aWxkLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8R3VpbGQsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGVkaXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZDogKFxuICAgIGNvbW1hbmRJZDogQmlnU3RyaW5nLFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmQsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxBcHBsaWNhdGlvbkNvbW1hbmQsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGVkaXRHdWlsZFN0aWNrZXI6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgc3RpY2tlcklkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogQXRMZWFzdE9uZTxFZGl0R3VpbGRTdGlja2VyT3B0aW9ucz4sXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U3RpY2tlciwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZWRpdEd1aWxkVGVtcGxhdGU6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgdGVtcGxhdGVDb2RlOiBzdHJpbmcsXG4gICAgb3B0aW9uczogTW9kaWZ5R3VpbGRUZW1wbGF0ZSxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFRlbXBsYXRlLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBlZGl0TWVzc2FnZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogRWRpdE1lc3NhZ2UpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZWRpdE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZTogKHRva2VuOiBzdHJpbmcsIG9wdGlvbnM6IEludGVyYWN0aW9uQ2FsbGJhY2tEYXRhKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGVkaXRSb2xlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCByb2xlSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogRWRpdEd1aWxkUm9sZSwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFJvbGUsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGVkaXRSb2xlUG9zaXRpb25zOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBNb2RpZnlSb2xlUG9zaXRpb25zW10sIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxSb2xlLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT47XG4gIGVkaXRTY2hlZHVsZWRFdmVudDogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBldmVudElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogUGFydGlhbDxFZGl0U2NoZWR1bGVkRXZlbnQ+LFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFNjaGVkdWxlZEV2ZW50LCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBlZGl0U3RhZ2VJbnN0YW5jZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCB0b3BpYzogc3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U3RhZ2VJbnN0YW5jZSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZWRpdFdlYmhvb2s6ICh3ZWJob29rSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogTW9kaWZ5V2ViaG9vaywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFdlYmhvb2ssIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGVkaXRXZWJob29rTWVzc2FnZTogKFxuICAgIHdlYmhvb2tJZDogQmlnU3RyaW5nLFxuICAgIHRva2VuOiBzdHJpbmcsXG4gICAgbWVzc2FnZUlkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogRWRpdFdlYmhvb2tNZXNzYWdlT3B0aW9ucyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGVkaXRXZWJob29rV2l0aFRva2VuOiAoXG4gICAgd2ViaG9va0lkOiBCaWdTdHJpbmcsXG4gICAgdG9rZW46IHN0cmluZyxcbiAgICBvcHRpb25zOiBPbWl0PE1vZGlmeVdlYmhvb2ssICdjaGFubmVsSWQnPixcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFdlYmhvb2ssIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGVkaXRXZWxjb21lU2NyZWVuOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IE1vZGlmeUd1aWxkV2VsY29tZVNjcmVlbixcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxXZWxjb21lU2NyZWVuLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBlZGl0V2lkZ2V0U2V0dGluZ3M6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogQ2FtZWxpemU8RGlzY29yZEd1aWxkV2lkZ2V0U2V0dGluZ3M+LFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEd1aWxkV2lkZ2V0U2V0dGluZ3MsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGVkaXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbjogKFxuICAgIGJlYXJlclRva2VuOiBzdHJpbmcsXG4gICAgYXBwbGljYXRpb25JZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IENhbWVsaXplPERpc2NvcmRBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uPixcbiAgKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uPj47XG4gIGV4ZWN1dGVXZWJob29rOiAoXG4gICAgd2ViaG9va0lkOiBCaWdTdHJpbmcsXG4gICAgdG9rZW46IHN0cmluZyxcbiAgICBvcHRpb25zOiBFeGVjdXRlV2ViaG9vayxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPiB8IHVuZGVmaW5lZD47XG4gIGZvbGxvd0Fubm91bmNlbWVudDogKHNvdXJjZUNoYW5uZWxJZDogQmlnU3RyaW5nLCB0YXJnZXRDaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkRm9sbG93ZWRDaGFubmVsPj47XG4gIGdldEFjdGl2ZVRocmVhZHM6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICkgPT4gUHJvbWlzZTx7IHRocmVhZHM6IFNldHVwRGVzaXJlZFByb3BzPENoYW5uZWwsIFRQcm9wcywgVEJlaGF2aW9yPltdOyBtZW1iZXJzOiBTZXR1cERlc2lyZWRQcm9wczxUaHJlYWRNZW1iZXIsIFRQcm9wcywgVEJlaGF2aW9yPltdIH0+O1xuICBnZXRBcHBsaWNhdGlvbkluZm86ICgpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8QXBwbGljYXRpb24sIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGVkaXRBcHBsaWNhdGlvbkluZm86IChib2R5OiBFZGl0QXBwbGljYXRpb24pID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8QXBwbGljYXRpb24sIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGdldEN1cnJlbnRBdXRoZW50aWNhdGlvbkluZm86IChiZWFyZXJUb2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRDdXJyZW50QXV0aG9yaXphdGlvbj4+O1xuICBleGNoYW5nZVRva2VuOiAoXG4gICAgY2xpZW50SWQ6IEJpZ1N0cmluZyxcbiAgICBjbGllbnRTZWNyZXQ6IHN0cmluZyxcbiAgICBvcHRpb25zOiBDYW1lbGl6ZTxEaXNjb3JkVG9rZW5FeGNoYW5nZT4sXG4gICkgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQWNjZXNzVG9rZW5SZXNwb25zZT4+O1xuICByZXZva2VUb2tlbjogKGNsaWVudElkOiBCaWdTdHJpbmcsIGNsaWVudFNlY3JldDogc3RyaW5nLCBvcHRpb25zOiBDYW1lbGl6ZTxEaXNjb3JkVG9rZW5SZXZvY2F0aW9uPikgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZ2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbjogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBjb21tYW5kSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zPzogR2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbk9wdGlvbnMsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBnZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uczogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zPzogR2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbk9wdGlvbnMsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT47XG4gIGdldEF1ZGl0TG9nOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogR2V0R3VpbGRBdWRpdExvZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQXVkaXRMb2c+PjtcbiAgZ2V0QXV0b21vZFJ1bGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHJ1bGVJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEF1dG9Nb2RlcmF0aW9uUnVsZSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0QXV0b21vZFJ1bGVzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEF1dG9Nb2RlcmF0aW9uUnVsZSwgVFByb3BzLCBUQmVoYXZpb3I+W10+O1xuICBnZXRBdmFpbGFibGVWb2ljZVJlZ2lvbnM6ICgpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Vm9pY2VSZWdpb24sIFRQcm9wcywgVEJlaGF2aW9yPltdPjtcbiAgZ2V0QmFuOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQmFuPj47XG4gIGdldEJhbnM6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBHZXRCYW5zKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRCYW4+W10+O1xuICBnZXRDaGFubmVsOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0Q2hhbm5lbEludml0ZXM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxJbnZpdGUsIFRQcm9wcywgVEJlaGF2aW9yPltdPjtcbiAgZ2V0Q2hhbm5lbHM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+W10+O1xuICBnZXRDaGFubmVsV2ViaG9va3M6IChjaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxXZWJob29rLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT47XG4gIGdldERtQ2hhbm5lbDogKHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPENoYW5uZWwsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGdldEdyb3VwRG1DaGFubmVsOiAob3B0aW9uczogQ3JlYXRlR3JvdXBEbU9wdGlvbnMpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0RW1vamk6IChndWlsZElkOiBCaWdTdHJpbmcsIGVtb2ppSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxFbW9qaSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0QXBwbGljYXRpb25FbW9qaTogKGVtb2ppSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxFbW9qaSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0RW1vamlzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEVtb2ppLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT47XG4gIGdldEFwcGxpY2F0aW9uRW1vamlzOiAoKSA9PiBQcm9taXNlPHsgaXRlbXM6IFNldHVwRGVzaXJlZFByb3BzPEVtb2ppLCBUUHJvcHMsIFRCZWhhdmlvcj5bXSB9PjtcbiAgZ2V0Rm9sbG93dXBNZXNzYWdlOiAodG9rZW46IHN0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0R2F0ZXdheUJvdDogKCkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxHZXRHYXRld2F5Qm90LCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBnZXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQ6IChjb21tYW5kSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxBcHBsaWNhdGlvbkNvbW1hbmQsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGdldEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZHM6IChcbiAgICBvcHRpb25zPzogR2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kc09wdGlvbnMsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxBcHBsaWNhdGlvbkNvbW1hbmQsIFRQcm9wcywgVEJlaGF2aW9yPltdPjtcbiAgZ2V0R3VpbGQ6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiB7IGNvdW50cz86IGJvb2xlYW4gfSkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxHdWlsZCwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0R3VpbGRzOiAoYmVhcmVyVG9rZW46IHN0cmluZywgb3B0aW9ucz86IEdldFVzZXJHdWlsZHMpID0+IFByb21pc2U8UGFydGlhbDxTZXR1cERlc2lyZWRQcm9wczxHdWlsZCwgVFByb3BzLCBUQmVoYXZpb3I+PltdPjtcbiAgZ2V0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQ6IChjb21tYW5kSWQ6IEJpZ1N0cmluZywgZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEFwcGxpY2F0aW9uQ29tbWFuZCwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRzOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM/OiBHZXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZHNPcHRpb25zLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8QXBwbGljYXRpb25Db21tYW5kLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT47XG4gIGdldEd1aWxkUHJldmlldzogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkR3VpbGRQcmV2aWV3Pj47XG4gIGdldEd1aWxkU3RpY2tlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgc3RpY2tlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U3RpY2tlciwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0R3VpbGRTdGlja2VyczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTdGlja2VyLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT47XG4gIGdldEd1aWxkVGVtcGxhdGU6ICh0ZW1wbGF0ZUNvZGU6IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxUZW1wbGF0ZSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0R3VpbGRUZW1wbGF0ZXM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8VGVtcGxhdGUsIFRQcm9wcywgVEJlaGF2aW9yPltdPjtcbiAgZ2V0R3VpbGRXZWJob29rczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxXZWJob29rLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT47XG4gIGdldEludGVncmF0aW9uczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxJbnRlZ3JhdGlvbiwgVFByb3BzLCBUQmVoYXZpb3I+W10+O1xuICBnZXRJbnZpdGU6IChpbnZpdGVDb2RlOiBzdHJpbmcsIG9wdGlvbnM/OiBHZXRJbnZpdGUpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8SW52aXRlLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBnZXRJbnZpdGVzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEludml0ZSwgVFByb3BzLCBUQmVoYXZpb3I+W10+O1xuICBnZXRNZXNzYWdlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGdldE1lc3NhZ2VzOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBHZXRNZXNzYWdlc09wdGlvbnMpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+W10+O1xuICBnZXRTdGlja2VyUGFjazogKHN0aWNrZXJQYWNrSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTdGlja2VyUGFjaywgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0U3RpY2tlclBhY2tzOiAoKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFN0aWNrZXJQYWNrLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT47XG4gIGdldE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZTogKHRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0Q2hhbm5lbFBpbnM6IChcbiAgICBjaGFubmVsSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zPzogR2V0Q2hhbm5lbFBpbnNPcHRpb25zLFxuICApID0+IFByb21pc2U8eyBpdGVtczogU2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZVBpbiwgVFByb3BzLCBUQmVoYXZpb3I+W107IGhhc01vcmU6IGJvb2xlYW4gfT47XG4gIC8qKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIEJvdEhlbHBlcnMuZ2V0Q2hhbm5lbFBpbnN9IGluc3RlYWQgKi9cbiAgZ2V0UGlubmVkTWVzc2FnZXM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT47XG4gIGdldFByaXZhdGVBcmNoaXZlZFRocmVhZHM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IExpc3RBcmNoaXZlZFRocmVhZHMpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZExpc3RBcmNoaXZlZFRocmVhZHM+PjtcbiAgZ2V0UHJpdmF0ZUpvaW5lZEFyY2hpdmVkVGhyZWFkczogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogTGlzdEFyY2hpdmVkVGhyZWFkcykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkTGlzdEFyY2hpdmVkVGhyZWFkcz4+O1xuICBnZXRQcnVuZUNvdW50OiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogR2V0R3VpbGRQcnVuZUNvdW50UXVlcnkpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZFBydW5lZENvdW50Pj47XG4gIGdldFB1YmxpY0FyY2hpdmVkVGhyZWFkczogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogTGlzdEFyY2hpdmVkVGhyZWFkcykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkTGlzdEFyY2hpdmVkVGhyZWFkcz4+O1xuICBnZXRSb2xlczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxSb2xlLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT47XG4gIGdldFJvbGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHJvbGVJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFJvbGUsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGdldFNjaGVkdWxlZEV2ZW50OiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIGV2ZW50SWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zPzogeyB3aXRoVXNlckNvdW50PzogYm9vbGVhbiB9LFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U2NoZWR1bGVkRXZlbnQsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGdldFNjaGVkdWxlZEV2ZW50czogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IEdldFNjaGVkdWxlZEV2ZW50cykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTY2hlZHVsZWRFdmVudCwgVFByb3BzLCBUQmVoYXZpb3I+W10+O1xuICBnZXRTY2hlZHVsZWRFdmVudFVzZXJzOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIGV2ZW50SWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zPzogR2V0U2NoZWR1bGVkRXZlbnRVc2VycyxcbiAgKSA9PiBQcm9taXNlPEFycmF5PHsgdXNlcjogU2V0dXBEZXNpcmVkUHJvcHM8VXNlciwgVFByb3BzLCBUQmVoYXZpb3I+OyBtZW1iZXI/OiBTZXR1cERlc2lyZWRQcm9wczxNZW1iZXIsIFRQcm9wcywgVEJlaGF2aW9yPiB9Pj47XG4gIGdldFNlc3Npb25JbmZvOiAoKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEdldEdhdGV3YXlCb3QsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGdldFN0YWdlSW5zdGFuY2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTdGFnZUluc3RhbmNlLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBnZXRPd25Wb2ljZVN0YXRlOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFZvaWNlU3RhdGUsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGdldFVzZXJWb2ljZVN0YXRlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxWb2ljZVN0YXRlLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBnZXRTdGlja2VyOiAoc3RpY2tlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U3RpY2tlciwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0VGhyZWFkTWVtYmVyOiAoXG4gICAgY2hhbm5lbElkOiBCaWdTdHJpbmcsXG4gICAgdXNlcklkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9ucz86IEdldFRocmVhZE1lbWJlcixcbiAgICBleHRyYT86IFRocmVhZE1lbWJlclRyYW5zZm9ybWVyRXh0cmEsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxUaHJlYWRNZW1iZXIsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGdldFRocmVhZE1lbWJlcnM6IChcbiAgICBjaGFubmVsSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zPzogTGlzdFRocmVhZE1lbWJlcnMsXG4gICAgZXh0cmE/OiBUaHJlYWRNZW1iZXJUcmFuc2Zvcm1lckV4dHJhLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8VGhyZWFkTWVtYmVyLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT47XG4gIGdldFJlYWN0aW9uczogKFxuICAgIGNoYW5uZWxJZDogQmlnU3RyaW5nLFxuICAgIG1lc3NhZ2VJZDogQmlnU3RyaW5nLFxuICAgIHJlYWN0aW9uOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IEdldFJlYWN0aW9ucyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFVzZXIsIFRQcm9wcywgVEJlaGF2aW9yPltdPjtcbiAgZ2V0VXNlcjogKGlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8VXNlciwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0Q3VycmVudFVzZXI6IChiZWFyZXJUb2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFVzZXIsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGdldFVzZXJDb25uZWN0aW9uczogKGJlYXJlclRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZENvbm5lY3Rpb24+W10+O1xuICBnZXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbjogKGJlYXJlclRva2VuOiBzdHJpbmcsIGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbj4+O1xuICBnZXRWYW5pdHlVcmw6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZFZhbml0eVVybD4+O1xuICBnZXRWb2ljZVJlZ2lvbnM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Vm9pY2VSZWdpb24sIFRQcm9wcywgVEJlaGF2aW9yPltdPjtcbiAgZ2V0V2ViaG9vazogKHdlYmhvb2tJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFdlYmhvb2ssIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGdldFdlYmhvb2tNZXNzYWdlOiAoXG4gICAgd2ViaG9va0lkOiBCaWdTdHJpbmcsXG4gICAgdG9rZW46IHN0cmluZyxcbiAgICBtZXNzYWdlSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zPzogR2V0V2ViaG9va01lc3NhZ2VPcHRpb25zLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0V2ViaG9va1dpdGhUb2tlbjogKHdlYmhvb2tJZDogQmlnU3RyaW5nLCB0b2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFdlYmhvb2ssIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGdldFdlbGNvbWVTY3JlZW46IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8V2VsY29tZVNjcmVlbiwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0V2lkZ2V0OiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEd1aWxkV2lkZ2V0LCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBnZXRXaWRnZXRTZXR0aW5nczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxHdWlsZFdpZGdldFNldHRpbmdzLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBwdWJsaXNoTWVzc2FnZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBzZW5kTWVzc2FnZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVNZXNzYWdlT3B0aW9ucykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBzZW5kRm9sbG93dXBNZXNzYWdlOiAodG9rZW46IHN0cmluZywgb3B0aW9uczogSW50ZXJhY3Rpb25DYWxsYmFja0RhdGEpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgc3RhcnRUaHJlYWRXaXRoTWVzc2FnZTogKFxuICAgIGNoYW5uZWxJZDogQmlnU3RyaW5nLFxuICAgIG1lc3NhZ2VJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IFN0YXJ0VGhyZWFkV2l0aE1lc3NhZ2UsXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgc3RhcnRUaHJlYWRXaXRob3V0TWVzc2FnZTogKFxuICAgIGNoYW5uZWxJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IFN0YXJ0VGhyZWFkV2l0aG91dE1lc3NhZ2UsXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgc3luY0d1aWxkVGVtcGxhdGU6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8VGVtcGxhdGUsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIHVwc2VydEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZHM6IChcbiAgICBjb21tYW5kczogQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kW10sXG4gICAgb3B0aW9ucz86IFVwc2VydEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxBcHBsaWNhdGlvbkNvbW1hbmQsIFRQcm9wcywgVEJlaGF2aW9yPltdPjtcbiAgdXBzZXJ0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRzOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIGNvbW1hbmRzOiBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmRbXSxcbiAgICBvcHRpb25zPzogVXBzZXJ0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25zLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8QXBwbGljYXRpb25Db21tYW5kLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT47XG4gIGVkaXRDdXJyZW50TWVtYmVyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBNb2RpZnlDdXJyZW50TWVtYmVyLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVtYmVyLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBlZGl0TWVtYmVyOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIHVzZXJJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IE1vZGlmeUd1aWxkTWVtYmVyLFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lbWJlciwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0Q3VycmVudE1lbWJlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgYmVhcmVyVG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZW1iZXIsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGdldE1lbWJlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVtYmVyLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBnZXRNZW1iZXJzOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBMaXN0R3VpbGRNZW1iZXJzKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lbWJlciwgVFByb3BzLCBUQmVoYXZpb3I+W10+O1xuICBwcnVuZU1lbWJlcnM6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEJlZ2luR3VpbGRQcnVuZSwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHsgcHJ1bmVkOiBudW1iZXIgfCBudWxsIH0+O1xuICBzZWFyY2hNZW1iZXJzOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIHF1ZXJ5OiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IE9taXQ8U2VhcmNoTWVtYmVycywgJ3F1ZXJ5Jz4sXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZW1iZXIsIFRQcm9wcywgVEJlaGF2aW9yPltdPjtcbiAgYnVsa0Jhbk1lbWJlcnM6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENyZWF0ZUd1aWxkQnVsa0JhbiwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHsgYmFubmVkVXNlcnM6IGJpZ2ludFtdOyBmYWlsZWRVc2VyczogYmlnaW50W10gfT47XG4gIGdldEFwcGxpY2F0aW9uQWN0aXZpdHlJbnN0YW5jZTogKGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZywgaW5zdGFuY2VJZDogc3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRBY3Rpdml0eUluc3RhbmNlPj47XG4gIGxpc3RBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uc01ldGFkYXRhUmVjb3JkczogKGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbk1ldGFkYXRhPltdPjtcbiAgdXBkYXRlQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbnNNZXRhZGF0YVJlY29yZHM6IChcbiAgICBhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogQ2FtZWxpemU8RGlzY29yZEFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb25NZXRhZGF0YT5bXSxcbiAgKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uTWV0YWRhdGE+W10+O1xuICBjcmVhdGVMb2JieTogKG9wdGlvbnM6IENyZWF0ZUxvYmJ5KSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPExvYmJ5LCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBnZXRMb2JieTogKGxvYmJ5SWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxMb2JieSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgbW9kaWZ5TG9iYnk6IChsb2JieUlkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IE1vZGlmeUxvYmJ5KSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPExvYmJ5LCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBhZGRNZW1iZXJUb0xvYmJ5OiAobG9iYnlJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQWRkTG9iYnlNZW1iZXIpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TG9iYnlNZW1iZXIsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGxpbmtDaGFubmVsVG9Mb2JieTogKGxvYmJ5SWQ6IEJpZ1N0cmluZywgYmVhcmVyVG9rZW46IHN0cmluZywgb3B0aW9uczogTGlua0NoYW5uZWxUb0xvYmJ5KSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPExvYmJ5LCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICB1bmxpbmtDaGFubmVsVG9Mb2JieTogKGxvYmJ5SWQ6IEJpZ1N0cmluZywgYmVhcmVyVG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxMb2JieSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0VGFyZ2V0VXNlcnM6IChpbnZpdGVDb2RlOiBzdHJpbmcpID0+IFByb21pc2U8c3RyaW5nPjtcbiAgdXBkYXRlVGFyZ2V0VXNlcnM6IChpbnZpdGVDb2RlOiBzdHJpbmcsIHRhcmdldFVzZXJzRmlsZTogQmxvYikgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZ2V0VGFyZ2V0VXNlcnNKb2JTdGF0dXM6IChpbnZpdGVDb2RlOiBzdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZFRhcmdldFVzZXJzSm9iU3RhdHVzPj47XG4gIC8vIGZ1bmN0aW9ucyByZXR1cm4gVm9pZCBzbyBkb250IG5lZWQgYW55IHNwZWNpYWwgaGFuZGxpbmdcbiAgYWRkUmVhY3Rpb246IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIHJlYWN0aW9uOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIGFkZFJlYWN0aW9uczogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgcmVhY3Rpb25zOiBzdHJpbmdbXSwgb3JkZXJlZD86IGJvb2xlYW4pID0+IFByb21pc2U8dm9pZD47XG4gIGFkZFJvbGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nLCByb2xlSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBhZGRUaHJlYWRNZW1iZXI6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIGFkZERtUmVjaXBpZW50OiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBBZGREbVJlY2lwaWVudE9wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG4gIGFkZEd1aWxkTWVtYmVyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQWRkR3VpbGRNZW1iZXJPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBkZWxldGVBdXRvbW9kUnVsZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgcnVsZUlkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZGVsZXRlQ2hhbm5lbDogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIGRlbGV0ZUNoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGU6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3ZlcndyaXRlSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBkZWxldGVFbW9qaTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgaWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBkZWxldGVBcHBsaWNhdGlvbkVtb2ppOiAoaWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZGVsZXRlRm9sbG93dXBNZXNzYWdlOiAodG9rZW46IHN0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIGRlbGV0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogKGNvbW1hbmRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBkZWxldGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZDogKGNvbW1hbmRJZDogQmlnU3RyaW5nLCBndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIGRlbGV0ZUd1aWxkU3RpY2tlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgc3RpY2tlcklkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZGVsZXRlR3VpbGRUZW1wbGF0ZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdGVtcGxhdGVDb2RlOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIGRlbGV0ZUludGVncmF0aW9uOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBpbnRlZ3JhdGlvbklkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZGVsZXRlSW52aXRlOiAoaW52aXRlQ29kZTogc3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIGRlbGV0ZU1lc3NhZ2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZGVsZXRlTWVzc2FnZXM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkczogQmlnU3RyaW5nW10sIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZGVsZXRlT3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlOiAodG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZGVsZXRlT3duUmVhY3Rpb246IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIHJlYWN0aW9uOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIGRlbGV0ZVJlYWN0aW9uc0FsbDogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZGVsZXRlUmVhY3Rpb25zRW1vamk6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIHJlYWN0aW9uOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIGRlbGV0ZVJvbGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHJvbGVJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIGRlbGV0ZVNjaGVkdWxlZEV2ZW50OiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBldmVudElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIGRlbGV0ZVN0YWdlSW5zdGFuY2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBkZWxldGVVc2VyUmVhY3Rpb246IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nLCByZWFjdGlvbjogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBkZWxldGVXZWJob29rOiAod2ViaG9va0lkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZGVsZXRlV2ViaG9va01lc3NhZ2U6ICh3ZWJob29rSWQ6IEJpZ1N0cmluZywgdG9rZW46IHN0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBEZWxldGVXZWJob29rTWVzc2FnZU9wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG4gIGRlbGV0ZVdlYmhvb2tXaXRoVG9rZW46ICh3ZWJob29rSWQ6IEJpZ1N0cmluZywgdG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZWRpdENoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGVzOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEVkaXRDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlc09wdGlvbnMsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZWRpdENoYW5uZWxQb3NpdGlvbnM6IChndWlsZElkOiBCaWdTdHJpbmcsIGNoYW5uZWxQb3NpdGlvbnM6IE1vZGlmeUd1aWxkQ2hhbm5lbFBvc2l0aW9uc1tdKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBlZGl0T3duVm9pY2VTdGF0ZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogRWRpdE93blZvaWNlU3RhdGUpID0+IFByb21pc2U8dm9pZD47XG4gIGVkaXRVc2VyVm9pY2VTdGF0ZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogRWRpdFVzZXJWb2ljZVN0YXRlKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBqb2luVGhyZWFkOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIGxlYXZlR3VpbGQ6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIGxlYXZlVGhyZWFkOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIHJlbW92ZVJvbGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nLCByb2xlSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICByZW1vdmVUaHJlYWRNZW1iZXI6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIHJlbW92ZURtUmVjaXBpZW50OiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBzZW5kSW50ZXJhY3Rpb25SZXNwb25zZTogKFxuICAgIGludGVyYWN0aW9uSWQ6IEJpZ1N0cmluZyxcbiAgICB0b2tlbjogc3RyaW5nLFxuICAgIG9wdGlvbnM6IEludGVyYWN0aW9uUmVzcG9uc2UsXG4gICAgcGFyYW1zPzogSW50ZXJhY3Rpb25DYWxsYmFja09wdGlvbnMsXG4gICkgPT4gUHJvbWlzZTx2b2lkIHwgU2V0dXBEZXNpcmVkUHJvcHM8SW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICB0cmlnZ2VyVHlwaW5nSW5kaWNhdG9yOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIGJhbk1lbWJlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBDcmVhdGVHdWlsZEJhbiwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBraWNrTWVtYmVyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBwaW5NZXNzYWdlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIHVuYmFuTWVtYmVyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICB1bnBpbk1lc3NhZ2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZ2V0R3VpbGRPbmJvYXJkaW5nOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEd1aWxkT25ib2FyZGluZywgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZWRpdEd1aWxkT25ib2FyZGluZzogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBFZGl0R3VpbGRPbmJvYXJkaW5nLFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEd1aWxkT25ib2FyZGluZywgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgbGlzdEVudGl0bGVtZW50czogKGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IEdldEVudGl0bGVtZW50cykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxFbnRpdGxlbWVudCwgVFByb3BzLCBUQmVoYXZpb3I+W10+O1xuICBnZXRFbnRpdGxlbWVudDogKGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZywgZW50aXRsZW1lbnRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEVudGl0bGVtZW50LCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBjcmVhdGVUZXN0RW50aXRsZW1lbnQ6IChcbiAgICBhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcsXG4gICAgYm9keTogQ3JlYXRlVGVzdEVudGl0bGVtZW50LFxuICApID0+IFByb21pc2U8UGFydGlhbDxTZXR1cERlc2lyZWRQcm9wczxFbnRpdGxlbWVudCwgVFByb3BzLCBUQmVoYXZpb3I+Pj47XG4gIGRlbGV0ZVRlc3RFbnRpdGxlbWVudDogKGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZywgZW50aXRsZW1lbnRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBsaXN0U2t1czogKGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTa3UsIFRQcm9wcywgVEJlaGF2aW9yPltdPjtcbiAgbGlzdFN1YnNjcmlwdGlvbnM6IChza3VJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogTGlzdFNrdVN1YnNjcmlwdGlvbnNPcHRpb25zKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFN1YnNjcmlwdGlvbiwgVFByb3BzLCBUQmVoYXZpb3I+W10+O1xuICBnZXRTdWJzY3JpcHRpb246IChza3VJZDogQmlnU3RyaW5nLCBzdWJzY3JpcHRpb25JZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFN1YnNjcmlwdGlvbiwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgc2VuZFNvdW5kYm9hcmRTb3VuZDogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBTZW5kU291bmRib2FyZFNvdW5kKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBsaXN0RGVmYXVsdFNvdW5kYm9hcmRTb3VuZHM6ICgpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U291bmRib2FyZFNvdW5kLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT47XG4gIGxpc3RHdWlsZFNvdW5kYm9hcmRTb3VuZHM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8eyBpdGVtczogU2V0dXBEZXNpcmVkUHJvcHM8U291bmRib2FyZFNvdW5kLCBUUHJvcHMsIFRCZWhhdmlvcj5bXSB9PjtcbiAgZ2V0R3VpbGRTb3VuZGJvYXJkU291bmQ6IChndWlsZElkOiBCaWdTdHJpbmcsIHNvdW5kSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTb3VuZGJvYXJkU291bmQsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGNyZWF0ZUd1aWxkU291bmRib2FyZFNvdW5kOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IENyZWF0ZUd1aWxkU291bmRib2FyZFNvdW5kLFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFNvdW5kYm9hcmRTb3VuZCwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgbW9kaWZ5R3VpbGRTb3VuZGJvYXJkU291bmQ6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgc291bmRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IE1vZGlmeUd1aWxkU291bmRib2FyZFNvdW5kLFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFNvdW5kYm9hcmRTb3VuZCwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZGVsZXRlR3VpbGRTb3VuZGJvYXJkU291bmQ6IChndWlsZElkOiBCaWdTdHJpbmcsIHNvdW5kSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBkZWxldGVMb2JieTogKGxvYmJ5SWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgcmVtb3ZlTWVtYmVyRnJvbUxvYmJ5OiAobG9iYnlJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgbGVhdmVMb2JieTogKGxvYmJ5SWQ6IEJpZ1N0cmluZywgYmVhcmVyVG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbn07XG4iXSwibmFtZXMiOlsic25ha2VsaXplIiwiY3JlYXRlQm90SGVscGVycyIsImJvdCIsImNyZWF0ZUF1dG9tb2RSdWxlIiwiZ3VpbGRJZCIsIm9wdGlvbnMiLCJyZWFzb24iLCJ0cmFuc2Zvcm1lcnMiLCJhdXRvbW9kUnVsZSIsInJlc3QiLCJjcmVhdGVDaGFubmVsIiwiY2hhbm5lbCIsImNyZWF0ZUVtb2ppIiwiZW1vamkiLCJjcmVhdGVBcHBsaWNhdGlvbkVtb2ppIiwiY3JlYXRlRm9ydW1UaHJlYWQiLCJjaGFubmVsSWQiLCJjcmVhdGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQiLCJjb21tYW5kIiwiYXBwbGljYXRpb25Db21tYW5kIiwiY3JlYXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQiLCJjcmVhdGVHdWlsZFN0aWNrZXIiLCJzdGlja2VyIiwiY3JlYXRlR3VpbGRUZW1wbGF0ZSIsInRlbXBsYXRlIiwiY3JlYXRlSW52aXRlIiwiZ2V0R3VpbGRSb2xlTWVtYmVyQ291bnRzIiwiY3JlYXRlUm9sZSIsInJvbGUiLCJjcmVhdGVTY2hlZHVsZWRFdmVudCIsInNjaGVkdWxlZEV2ZW50IiwiY3JlYXRlU3RhZ2VJbnN0YW5jZSIsInN0YWdlSW5zdGFuY2UiLCJjcmVhdGVXZWJob29rIiwid2ViaG9vayIsImVkaXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucyIsImNvbW1hbmRJZCIsImJlYXJlclRva2VuIiwiYXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbiIsImVkaXRBdXRvbW9kUnVsZSIsInJ1bGVJZCIsImVkaXRCb3RQcm9maWxlIiwidXNlciIsImVkaXRDaGFubmVsIiwiZWRpdEVtb2ppIiwiaWQiLCJlZGl0QXBwbGljYXRpb25FbW9qaSIsImVkaXRGb2xsb3d1cE1lc3NhZ2UiLCJ0b2tlbiIsIm1lc3NhZ2VJZCIsIm1lc3NhZ2UiLCJlZGl0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kIiwiZWRpdEd1aWxkIiwiZ3VpbGQiLCJlZGl0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQiLCJlZGl0R3VpbGRTdGlja2VyIiwic3RpY2tlcklkIiwiZWRpdEd1aWxkVGVtcGxhdGUiLCJ0ZW1wbGF0ZUNvZGUiLCJlZGl0TWVzc2FnZSIsImVkaXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UiLCJlZGl0Um9sZSIsInJvbGVJZCIsImVkaXRSb2xlUG9zaXRpb25zIiwibWFwIiwiZWRpdFNjaGVkdWxlZEV2ZW50IiwiZXZlbnRJZCIsImVkaXRTdGFnZUluc3RhbmNlIiwidG9waWMiLCJlZGl0V2ViaG9vayIsIndlYmhvb2tJZCIsImVkaXRXZWJob29rTWVzc2FnZSIsImVkaXRXZWJob29rV2l0aFRva2VuIiwiZWRpdFdlbGNvbWVTY3JlZW4iLCJ3ZWxjb21lU2NyZWVuIiwiZWRpdFdpZGdldFNldHRpbmdzIiwid2lkZ2V0U2V0dGluZ3MiLCJleGVjdXRlV2ViaG9vayIsInJlc3VsdCIsImZvbGxvd0Fubm91bmNlbWVudCIsInNvdXJjZUNoYW5uZWxJZCIsInRhcmdldENoYW5uZWxJZCIsImdldEFjdGl2ZVRocmVhZHMiLCJ0aHJlYWRzIiwidGhyZWFkIiwibWVtYmVycyIsIm1lbWJlciIsInRocmVhZE1lbWJlciIsImdldEFwcGxpY2F0aW9uSW5mbyIsImFwcGxpY2F0aW9uIiwiZWRpdEFwcGxpY2F0aW9uSW5mbyIsImJvZHkiLCJnZXRDdXJyZW50QXV0aGVudGljYXRpb25JbmZvIiwiZXhjaGFuZ2VUb2tlbiIsImNsaWVudElkIiwiY2xpZW50U2VjcmV0IiwicmV2b2tlVG9rZW4iLCJnZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uIiwicmVzIiwic25ha2VkUmVzIiwiZ2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnMiLCJnZXRBdWRpdExvZyIsImdldEF1dG9tb2RSdWxlIiwiZ2V0QXV0b21vZFJ1bGVzIiwiZ2V0QXZhaWxhYmxlVm9pY2VSZWdpb25zIiwidm9pY2VSZWdpb24iLCJnZXRCYW4iLCJ1c2VySWQiLCJnZXRCYW5zIiwiZ2V0Q2hhbm5lbCIsImdldENoYW5uZWxJbnZpdGVzIiwiaW52aXRlIiwiZ2V0Q2hhbm5lbHMiLCJnZXRDaGFubmVsV2ViaG9va3MiLCJnZXREbUNoYW5uZWwiLCJnZXRHcm91cERtQ2hhbm5lbCIsImdldEVtb2ppIiwiZW1vamlJZCIsImdldEFwcGxpY2F0aW9uRW1vamkiLCJnZXRFbW9qaXMiLCJnZXRBcHBsaWNhdGlvbkVtb2ppcyIsIml0ZW1zIiwiaXRlbSIsImdldEZvbGxvd3VwTWVzc2FnZSIsImdldEdhdGV3YXlCb3QiLCJnYXRld2F5Qm90IiwiZ2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kIiwiZ2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kcyIsImdldEd1aWxkIiwiZ2V0R3VpbGRzIiwiZ2V0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQiLCJnZXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZHMiLCJnZXRHdWlsZFByZXZpZXciLCJnZXRHdWlsZFN0aWNrZXIiLCJnZXRHdWlsZFN0aWNrZXJzIiwiZ2V0R3VpbGRUZW1wbGF0ZSIsImdldEd1aWxkVGVtcGxhdGVzIiwiZ2V0R3VpbGRXZWJob29rcyIsImdldEludGVncmF0aW9ucyIsImludGVncmF0aW9uIiwidG9TdHJpbmciLCJnZXRJbnZpdGUiLCJpbnZpdGVDb2RlIiwiZ2V0SW52aXRlcyIsImdldE1lc3NhZ2UiLCJnZXRNZXNzYWdlcyIsImdldFN0aWNrZXJQYWNrIiwic3RpY2tlclBhY2tJZCIsInN0aWNrZXJQYWNrIiwiZ2V0U3RpY2tlclBhY2tzIiwiZ2V0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlIiwiZ2V0Q2hhbm5lbFBpbnMiLCJoYXNNb3JlIiwiaGFzX21vcmUiLCJtZXNzYWdlUGluIiwiZ2V0UGlubmVkTWVzc2FnZXMiLCJnZXRQcml2YXRlQXJjaGl2ZWRUaHJlYWRzIiwiZ2V0UHJpdmF0ZUpvaW5lZEFyY2hpdmVkVGhyZWFkcyIsImdldFBydW5lQ291bnQiLCJnZXRQdWJsaWNBcmNoaXZlZFRocmVhZHMiLCJnZXRSb2xlcyIsImdldFJvbGUiLCJnZXRTY2hlZHVsZWRFdmVudCIsImdldFNjaGVkdWxlZEV2ZW50cyIsImdldFNjaGVkdWxlZEV2ZW50VXNlcnMiLCJ1Iiwic25vd2ZsYWtlIiwiZ2V0U2Vzc2lvbkluZm8iLCJnZXRTdGFnZUluc3RhbmNlIiwiZ2V0T3duVm9pY2VTdGF0ZSIsInZvaWNlU3RhdGUiLCJnZXRVc2VyVm9pY2VTdGF0ZSIsImdldFN0aWNrZXIiLCJnZXRUaHJlYWRNZW1iZXIiLCJleHRyYSIsImdldFRocmVhZE1lbWJlcnMiLCJnZXRSZWFjdGlvbnMiLCJyZWFjdGlvbiIsImdldFVzZXIiLCJnZXRDdXJyZW50VXNlciIsImdldFVzZXJDb25uZWN0aW9ucyIsImdldFVzZXJBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uIiwiYXBwbGljYXRpb25JZCIsImdldFZhbml0eVVybCIsImdldFZvaWNlUmVnaW9ucyIsImdldFdlYmhvb2siLCJnZXRXZWJob29rTWVzc2FnZSIsImdldFdlYmhvb2tXaXRoVG9rZW4iLCJnZXRXZWxjb21lU2NyZWVuIiwiZ2V0V2lkZ2V0Iiwid2lkZ2V0IiwiZ2V0V2lkZ2V0U2V0dGluZ3MiLCJwdWJsaXNoTWVzc2FnZSIsInNlbmRNZXNzYWdlIiwic2VuZEZvbGxvd3VwTWVzc2FnZSIsInN0YXJ0VGhyZWFkV2l0aE1lc3NhZ2UiLCJzdGFydFRocmVhZFdpdGhvdXRNZXNzYWdlIiwic3luY0d1aWxkVGVtcGxhdGUiLCJ1cHNlcnRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzIiwiY29tbWFuZHMiLCJ1cHNlcnRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZHMiLCJlZGl0Q3VycmVudE1lbWJlciIsImVkaXRNZW1iZXIiLCJnZXRDdXJyZW50TWVtYmVyIiwiZ2V0TWVtYmVyIiwiZ2V0TWVtYmVycyIsInBydW5lTWVtYmVycyIsInNlYXJjaE1lbWJlcnMiLCJxdWVyeSIsImJ1bGtCYW5NZW1iZXJzIiwiYmFubmVkVXNlcnMiLCJ4IiwiZmFpbGVkVXNlcnMiLCJnZXRBcHBsaWNhdGlvbkFjdGl2aXR5SW5zdGFuY2UiLCJpbnN0YW5jZUlkIiwibGlzdEFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb25zTWV0YWRhdGFSZWNvcmRzIiwidXBkYXRlQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbnNNZXRhZGF0YVJlY29yZHMiLCJjcmVhdGVMb2JieSIsImxvYmJ5IiwiZ2V0TG9iYnkiLCJsb2JieUlkIiwibW9kaWZ5TG9iYnkiLCJhZGRNZW1iZXJUb0xvYmJ5IiwibG9iYnlNZW1iZXIiLCJsaW5rQ2hhbm5lbFRvTG9iYnkiLCJ1bmxpbmtDaGFubmVsVG9Mb2JieSIsImdldFRhcmdldFVzZXJzIiwidXBkYXRlVGFyZ2V0VXNlcnMiLCJ0YXJnZXRVc2Vyc0ZpbGUiLCJnZXRUYXJnZXRVc2Vyc0pvYlN0YXR1cyIsImFkZFJlYWN0aW9uIiwiYWRkUmVhY3Rpb25zIiwicmVhY3Rpb25zIiwib3JkZXJlZCIsImFkZFJvbGUiLCJhZGRUaHJlYWRNZW1iZXIiLCJhZGREbVJlY2lwaWVudCIsImFkZEd1aWxkTWVtYmVyIiwiZGVsZXRlQXV0b21vZFJ1bGUiLCJkZWxldGVDaGFubmVsIiwiZGVsZXRlQ2hhbm5lbFBlcm1pc3Npb25PdmVycmlkZSIsIm92ZXJ3cml0ZUlkIiwiZGVsZXRlRW1vamkiLCJkZWxldGVBcHBsaWNhdGlvbkVtb2ppIiwiZGVsZXRlRm9sbG93dXBNZXNzYWdlIiwiZGVsZXRlR2xvYmFsQXBwbGljYXRpb25Db21tYW5kIiwiZGVsZXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQiLCJkZWxldGVHdWlsZFN0aWNrZXIiLCJkZWxldGVHdWlsZFRlbXBsYXRlIiwiZGVsZXRlSW50ZWdyYXRpb24iLCJpbnRlZ3JhdGlvbklkIiwiZGVsZXRlSW52aXRlIiwiZGVsZXRlTWVzc2FnZSIsImRlbGV0ZU1lc3NhZ2VzIiwibWVzc2FnZUlkcyIsImRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSIsImRlbGV0ZU93blJlYWN0aW9uIiwiZGVsZXRlUmVhY3Rpb25zQWxsIiwiZGVsZXRlUmVhY3Rpb25zRW1vamkiLCJkZWxldGVSb2xlIiwiZGVsZXRlU2NoZWR1bGVkRXZlbnQiLCJkZWxldGVTdGFnZUluc3RhbmNlIiwiZGVsZXRlVXNlclJlYWN0aW9uIiwiZGVsZXRlV2ViaG9vayIsImRlbGV0ZVdlYmhvb2tNZXNzYWdlIiwiZGVsZXRlV2ViaG9va1dpdGhUb2tlbiIsImVkaXRDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlcyIsImVkaXRDaGFubmVsUG9zaXRpb25zIiwiY2hhbm5lbFBvc2l0aW9ucyIsImVkaXRPd25Wb2ljZVN0YXRlIiwiZWRpdFVzZXJWb2ljZVN0YXRlIiwiZWRpdFVzZXJBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uIiwiam9pblRocmVhZCIsImxlYXZlR3VpbGQiLCJsZWF2ZVRocmVhZCIsInJlbW92ZVJvbGUiLCJyZW1vdmVUaHJlYWRNZW1iZXIiLCJyZW1vdmVEbVJlY2lwaWVudCIsInNlbmRJbnRlcmFjdGlvblJlc3BvbnNlIiwiaW50ZXJhY3Rpb25JZCIsInBhcmFtcyIsInJlc3BvbnNlIiwiaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlIiwidHJpZ2dlclR5cGluZ0luZGljYXRvciIsImJhbk1lbWJlciIsImtpY2tNZW1iZXIiLCJwaW5NZXNzYWdlIiwidW5iYW5NZW1iZXIiLCJ1bnBpbk1lc3NhZ2UiLCJnZXRHdWlsZE9uYm9hcmRpbmciLCJndWlsZE9uYm9hcmRpbmciLCJlZGl0R3VpbGRPbmJvYXJkaW5nIiwibGlzdEVudGl0bGVtZW50cyIsImVudGl0bGVtZW50IiwiZ2V0RW50aXRsZW1lbnQiLCJlbnRpdGxlbWVudElkIiwiY3JlYXRlVGVzdEVudGl0bGVtZW50IiwiZGVsZXRlVGVzdEVudGl0bGVtZW50IiwibGlzdFNrdXMiLCJza3UiLCJnZXRTdWJzY3JpcHRpb24iLCJza3VJZCIsInN1YnNjcmlwdGlvbklkIiwic3Vic2NyaXB0aW9uIiwibGlzdFN1YnNjcmlwdGlvbnMiLCJzZW5kU291bmRib2FyZFNvdW5kIiwibGlzdERlZmF1bHRTb3VuZGJvYXJkU291bmRzIiwic291bmQiLCJzb3VuZGJvYXJkU291bmQiLCJsaXN0R3VpbGRTb3VuZGJvYXJkU291bmRzIiwiZ2V0R3VpbGRTb3VuZGJvYXJkU291bmQiLCJzb3VuZElkIiwiY3JlYXRlR3VpbGRTb3VuZGJvYXJkU291bmQiLCJtb2RpZnlHdWlsZFNvdW5kYm9hcmRTb3VuZCIsImRlbGV0ZUd1aWxkU291bmRib2FyZFNvdW5kIiwiZGVsZXRlTG9iYnkiLCJyZW1vdmVNZW1iZXJGcm9tTG9iYnkiLCJsZWF2ZUxvYmJ5Il0sIm1hcHBpbmdzIjoiQUEwR0EsU0FBU0EsU0FBUyxRQUFRLG9CQUFvQjtBQTBDOUMsT0FBTyxTQUFTQyxpQkFDZEMsR0FBMkI7SUFFM0IsT0FBTztRQUNMQyxtQkFBbUIsT0FBT0MsU0FBU0MsU0FBU0M7WUFDMUMsT0FBT0osSUFBSUssWUFBWSxDQUFDQyxXQUFXLENBQUNOLEtBQUtGLFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDTixpQkFBaUIsQ0FBQ0MsU0FBU0MsU0FBU0M7UUFDeEc7UUFDQUksZUFBZSxPQUFPTixTQUFTQyxTQUFTQztZQUN0QyxPQUFPSixJQUFJSyxZQUFZLENBQUNJLE9BQU8sQ0FBQ1QsS0FBS0YsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUNDLGFBQWEsQ0FBQ04sU0FBU0MsU0FBU0MsVUFBVTtnQkFBRUY7WUFBUTtRQUNwSDtRQUNBUSxhQUFhLE9BQU9SLFNBQVNDLFNBQVNDO1lBQ3BDLE9BQU9KLElBQUlLLFlBQVksQ0FBQ00sS0FBSyxDQUFDWCxL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
|
|
766
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9oZWxwZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQWRkRG1SZWNpcGllbnRPcHRpb25zLFxuICBBZGRHdWlsZE1lbWJlck9wdGlvbnMsXG4gIEFkZExvYmJ5TWVtYmVyLFxuICBBdExlYXN0T25lLFxuICBCZWdpbkd1aWxkUHJ1bmUsXG4gIEJpZ1N0cmluZyxcbiAgQnVsa1VwZGF0ZUxvYmJ5TWVtYmVyLFxuICBDYW1lbGl6ZSxcbiAgQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kLFxuICBDcmVhdGVBcHBsaWNhdGlvbkVtb2ppLFxuICBDcmVhdGVBdXRvTW9kZXJhdGlvblJ1bGVPcHRpb25zLFxuICBDcmVhdGVDaGFubmVsSW52aXRlLFxuICBDcmVhdGVGb3J1bVBvc3RXaXRoTWVzc2FnZSxcbiAgQ3JlYXRlR2xvYmFsQXBwbGljYXRpb25Db21tYW5kT3B0aW9ucyxcbiAgQ3JlYXRlR3JvdXBEbU9wdGlvbnMsXG4gIENyZWF0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kT3B0aW9ucyxcbiAgQ3JlYXRlR3VpbGRCYW4sXG4gIENyZWF0ZUd1aWxkQnVsa0JhbixcbiAgQ3JlYXRlR3VpbGRDaGFubmVsLFxuICBDcmVhdGVHdWlsZEVtb2ppLFxuICBDcmVhdGVHdWlsZFJvbGUsXG4gIENyZWF0ZUd1aWxkU291bmRib2FyZFNvdW5kLFxuICBDcmVhdGVHdWlsZFN0aWNrZXJPcHRpb25zLFxuICBDcmVhdGVMb2JieSxcbiAgQ3JlYXRlTWVzc2FnZU9wdGlvbnMsXG4gIENyZWF0ZU9ySm9pbkxvYmJ5LFxuICBDcmVhdGVTY2hlZHVsZWRFdmVudCxcbiAgQ3JlYXRlU3RhZ2VJbnN0YW5jZSxcbiAgQ3JlYXRlVGVtcGxhdGUsXG4gIENyZWF0ZVRlc3RFbnRpdGxlbWVudCxcbiAgQ3JlYXRlV2ViaG9vayxcbiAgRGVsZXRlV2ViaG9va01lc3NhZ2VPcHRpb25zLFxuICBEaXNjb3JkQWNjZXNzVG9rZW5SZXNwb25zZSxcbiAgRGlzY29yZEFjdGl2aXR5SW5zdGFuY2UsXG4gIERpc2NvcmRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucyxcbiAgRGlzY29yZEFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb24sXG4gIERpc2NvcmRBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uTWV0YWRhdGEsXG4gIERpc2NvcmRBdWRpdExvZyxcbiAgRGlzY29yZEJhbixcbiAgRGlzY29yZENvbm5lY3Rpb24sXG4gIERpc2NvcmRDdXJyZW50QXV0aG9yaXphdGlvbixcbiAgRGlzY29yZEZvbGxvd2VkQ2hhbm5lbCxcbiAgRGlzY29yZEd1aWxkUHJldmlldyxcbiAgRGlzY29yZEd1aWxkV2lkZ2V0U2V0dGluZ3MsXG4gIERpc2NvcmRJbnZpdGUsXG4gIERpc2NvcmRMaXN0QXJjaGl2ZWRUaHJlYWRzLFxuICBEaXNjb3JkUHJ1bmVkQ291bnQsXG4gIERpc2NvcmRTZWFyY2hHdWlsZE1lc3NhZ2VzLFxuICBEaXNjb3JkU2VhcmNoR3VpbGRNZXNzYWdlc0luZGV4aW5nLFxuICBEaXNjb3JkVGFyZ2V0VXNlcnNKb2JTdGF0dXMsXG4gIERpc2NvcmRUb2tlbkV4Y2hhbmdlLFxuICBEaXNjb3JkVG9rZW5SZXZvY2F0aW9uLFxuICBEaXNjb3JkVmFuaXR5VXJsLFxuICBFZGl0QXBwbGljYXRpb24sXG4gIEVkaXRBdXRvTW9kZXJhdGlvblJ1bGVPcHRpb25zLFxuICBFZGl0Q2hhbm5lbFBlcm1pc3Npb25PdmVycmlkZXNPcHRpb25zLFxuICBFZGl0R3VpbGRPbmJvYXJkaW5nLFxuICBFZGl0R3VpbGRSb2xlLFxuICBFZGl0R3VpbGRTdGlja2VyT3B0aW9ucyxcbiAgRWRpdE1lc3NhZ2UsXG4gIEVkaXRPd25Wb2ljZVN0YXRlLFxuICBFZGl0U2NoZWR1bGVkRXZlbnQsXG4gIEVkaXRVc2VyVm9pY2VTdGF0ZSxcbiAgRWRpdFdlYmhvb2tNZXNzYWdlT3B0aW9ucyxcbiAgRXhlY3V0ZVdlYmhvb2ssXG4gIEdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25PcHRpb25zLFxuICBHZXRCYW5zLFxuICBHZXRDaGFubmVsUGluc09wdGlvbnMsXG4gIEdldEVudGl0bGVtZW50cyxcbiAgR2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kc09wdGlvbnMsXG4gIEdldEd1aWxkQXBwbGljYXRpb25Db21tYW5kc09wdGlvbnMsXG4gIEdldEd1aWxkQXVkaXRMb2csXG4gIEdldEd1aWxkUHJ1bmVDb3VudFF1ZXJ5LFxuICBHZXRJbnZpdGUsXG4gIEdldExvYmJ5TWVzc2FnZXMsXG4gIEdldE1lc3NhZ2VzT3B0aW9ucyxcbiAgR2V0UmVhY3Rpb25zLFxuICBHZXRTY2hlZHVsZWRFdmVudHMsXG4gIEdldFNjaGVkdWxlZEV2ZW50VXNlcnMsXG4gIEdldFRocmVhZE1lbWJlcixcbiAgR2V0VXNlckd1aWxkcyxcbiAgR2V0V2ViaG9va01lc3NhZ2VPcHRpb25zLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrRGF0YSxcbiAgSW50ZXJhY3Rpb25DYWxsYmFja09wdGlvbnMsXG4gIEludGVyYWN0aW9uUmVzcG9uc2UsXG4gIExpbmtDaGFubmVsVG9Mb2JieSxcbiAgTGlzdEFyY2hpdmVkVGhyZWFkcyxcbiAgTGlzdEd1aWxkTWVtYmVycyxcbiAgTGlzdFNrdVN1YnNjcmlwdGlvbnNPcHRpb25zLFxuICBMaXN0VGhyZWFkTWVtYmVycyxcbiAgTW9kaWZ5QXBwbGljYXRpb25FbW9qaSxcbiAgTW9kaWZ5Q2hhbm5lbCxcbiAgTW9kaWZ5Q3VycmVudE1lbWJlcixcbiAgTW9kaWZ5R3VpbGQsXG4gIE1vZGlmeUd1aWxkQ2hhbm5lbFBvc2l0aW9ucyxcbiAgTW9kaWZ5R3VpbGRFbW9qaSxcbiAgTW9kaWZ5R3VpbGRNZW1iZXIsXG4gIE1vZGlmeUd1aWxkU291bmRib2FyZFNvdW5kLFxuICBNb2RpZnlHdWlsZFRlbXBsYXRlLFxuICBNb2RpZnlHdWlsZFdlbGNvbWVTY3JlZW4sXG4gIE1vZGlmeUxvYmJ5LFxuICBNb2RpZnlSb2xlUG9zaXRpb25zLFxuICBNb2RpZnlXZWJob29rLFxuICBTZWFyY2hHdWlsZE1lc3NhZ2VzT3B0aW9ucyxcbiAgU2VhcmNoTWVtYmVycyxcbiAgU2VuZExvYmJ5TWVzc2FnZSxcbiAgU2VuZFNvdW5kYm9hcmRTb3VuZCxcbiAgU3RhcnRUaHJlYWRXaXRoTWVzc2FnZSxcbiAgU3RhcnRUaHJlYWRXaXRob3V0TWVzc2FnZSxcbiAgVXBzZXJ0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kT3B0aW9ucyxcbiAgVXBzZXJ0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25zLFxufSBmcm9tICdAZGlzY29yZGVuby90eXBlcyc7XG5pbXBvcnQgeyBzbmFrZWxpemUgfSBmcm9tICdAZGlzY29yZGVuby91dGlscyc7XG5pbXBvcnQgdHlwZSB7IEJvdCB9IGZyb20gJy4vYm90LmpzJztcbmltcG9ydCB0eXBlIHsgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvciwgU2V0dXBEZXNpcmVkUHJvcHMsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzIH0gZnJvbSAnLi9kZXNpcmVkUHJvcGVydGllcy5qcyc7XG5pbXBvcnQgdHlwZSB7IFRocmVhZE1lbWJlclRyYW5zZm9ybWVyRXh0cmEgfSBmcm9tICcuL3RyYW5zZm9ybWVycy90aHJlYWRNZW1iZXIuanMnO1xuaW1wb3J0IHR5cGUge1xuICBBcHBsaWNhdGlvbixcbiAgQXBwbGljYXRpb25Db21tYW5kLFxuICBBdXRvTW9kZXJhdGlvblJ1bGUsXG4gIENoYW5uZWwsXG4gIEVtb2ppLFxuICBFbnRpdGxlbWVudCxcbiAgR2V0R2F0ZXdheUJvdCxcbiAgR3VpbGQsXG4gIEd1aWxkQXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnMsXG4gIEd1aWxkT25ib2FyZGluZyxcbiAgR3VpbGRXaWRnZXQsXG4gIEd1aWxkV2lkZ2V0U2V0dGluZ3MsXG4gIEludGVncmF0aW9uLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UsXG4gIEludml0ZSxcbiAgTG9iYnksXG4gIExvYmJ5SW52aXRlLFxuICBMb2JieU1lbWJlcixcbiAgTG9iYnlNZXNzYWdlLFxuICBNZW1iZXIsXG4gIE1lc3NhZ2UsXG4gIE1lc3NhZ2VQaW4sXG4gIFJvbGUsXG4gIFNjaGVkdWxlZEV2ZW50LFxuICBTa3UsXG4gIFNvdW5kYm9hcmRTb3VuZCxcbiAgU3RhZ2VJbnN0YW5jZSxcbiAgU3RpY2tlcixcbiAgU3RpY2tlclBhY2ssXG4gIFN1YnNjcmlwdGlvbixcbiAgVGVtcGxhdGUsXG4gIFRocmVhZE1lbWJlcixcbiAgVXNlcixcbiAgVm9pY2VSZWdpb24sXG4gIFZvaWNlU3RhdGUsXG4gIFdlYmhvb2ssXG4gIFdlbGNvbWVTY3JlZW4sXG59IGZyb20gJy4vdHJhbnNmb3JtZXJzL3R5cGVzLmpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJvdEhlbHBlcnM8VFByb3BzIGV4dGVuZHMgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIFRCZWhhdmlvciBleHRlbmRzIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+KFxuICBib3Q6IEJvdDxUUHJvcHMsIFRCZWhhdmlvcj4sXG4pOiBCb3RIZWxwZXJzPFRQcm9wcywgVEJlaGF2aW9yPiB7XG4gIHJldHVybiB7XG4gICAgY3JlYXRlQXV0b21vZFJ1bGU6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmF1dG9Nb2RlcmF0aW9uUnVsZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVBdXRvbW9kUnVsZShndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSk7XG4gICAgfSxcbiAgICBjcmVhdGVDaGFubmVsOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUNoYW5uZWwoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSksIHsgZ3VpbGRJZCB9KTtcbiAgICB9LFxuICAgIGNyZWF0ZUVtb2ppOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVFbW9qaShndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSk7XG4gICAgfSxcbiAgICBjcmVhdGVBcHBsaWNhdGlvbkVtb2ppOiBhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlQXBwbGljYXRpb25FbW9qaShvcHRpb25zKSkpO1xuICAgIH0sXG4gICAgY3JlYXRlRm9ydW1UaHJlYWQ6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVGb3J1bVRocmVhZChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikpKTtcbiAgICB9LFxuICAgIGNyZWF0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogYXN5bmMgKGNvbW1hbmQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQoY29tbWFuZCwgb3B0aW9ucykpKTtcbiAgICB9LFxuICAgIGNyZWF0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kOiBhc3luYyAoY29tbWFuZCwgZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kKGNvbW1hbmQsIGd1aWxkSWQsIG9wdGlvbnMpKSk7XG4gICAgfSxcbiAgICBjcmVhdGVHdWlsZFN0aWNrZXI6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnN0aWNrZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlR3VpbGRTdGlja2VyKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpKTtcbiAgICB9LFxuICAgIGNyZWF0ZUd1aWxkVGVtcGxhdGU6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy50ZW1wbGF0ZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVHdWlsZFRlbXBsYXRlKGd1aWxkSWQsIG9wdGlvbnMpKSk7XG4gICAgfSxcbiAgICBjcmVhdGVJbnZpdGU6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUludml0ZShjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbik7XG4gICAgfSxcbiAgICBnZXRHdWlsZFJvbGVNZW1iZXJDb3VudHM6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRSb2xlTWVtYmVyQ291bnRzKGd1aWxkSWQpO1xuICAgIH0sXG4gICAgY3JlYXRlUm9sZTogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVSb2xlKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpLCB7IGd1aWxkSWQgfSk7XG4gICAgfSxcbiAgICBjcmVhdGVTY2hlZHVsZWRFdmVudDogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc2NoZWR1bGVkRXZlbnQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlU2NoZWR1bGVkRXZlbnQoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSkpO1xuICAgIH0sXG4gICAgY3JlYXRlU3RhZ2VJbnN0YW5jZTogYXN5bmMgKG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3RhZ2VJbnN0YW5jZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVTdGFnZUluc3RhbmNlKG9wdGlvbnMsIHJlYXNvbikpKTtcbiAgICB9LFxuICAgIGNyZWF0ZVdlYmhvb2s6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMud2ViaG9vayhib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVXZWJob29rKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSkpO1xuICAgIH0sXG4gICAgZWRpdEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zOiBhc3luYyAoZ3VpbGRJZCwgY29tbWFuZElkLCBiZWFyZXJUb2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucyhcbiAgICAgICAgYm90LFxuICAgICAgICBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zKGd1aWxkSWQsIGNvbW1hbmRJZCwgYmVhcmVyVG9rZW4sIG9wdGlvbnMpKSxcbiAgICAgICk7XG4gICAgfSxcbiAgICBlZGl0QXV0b21vZFJ1bGU6IGFzeW5jIChndWlsZElkLCBydWxlSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXV0b01vZGVyYXRpb25SdWxlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRBdXRvbW9kUnVsZShndWlsZElkLCBydWxlSWQsIG9wdGlvbnMsIHJlYXNvbikpKTtcbiAgICB9LFxuICAgIGVkaXRCb3RQcm9maWxlOiBhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0Qm90UHJvZmlsZShvcHRpb25zKSkpO1xuICAgIH0sXG4gICAgZWRpdENoYW5uZWw6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0Q2hhbm5lbChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikpKTtcbiAgICB9LFxuICAgIGVkaXRFbW9qaTogYXN5bmMgKGd1aWxkSWQsIGlkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRFbW9qaShndWlsZElkLCBpZCwgb3B0aW9ucywgcmVhc29uKSkpO1xuICAgIH0sXG4gICAgZWRpdEFwcGxpY2F0aW9uRW1vamk6IGFzeW5jIChpZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEFwcGxpY2F0aW9uRW1vamkoaWQsIG9wdGlvbnMpKSk7XG4gICAgfSxcbiAgICBlZGl0Rm9sbG93dXBNZXNzYWdlOiBhc3luYyAodG9rZW4sIG1lc3NhZ2VJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0Rm9sbG93dXBNZXNzYWdlKHRva2VuLCBtZXNzYWdlSWQsIG9wdGlvbnMpKSk7XG4gICAgfSxcbiAgICBlZGl0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kOiBhc3luYyAoY29tbWFuZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZChjb21tYW5kSWQsIG9wdGlvbnMpKSk7XG4gICAgfSxcbiAgICBlZGl0R3VpbGQ6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmd1aWxkKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRHdWlsZChndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSk7XG4gICAgfSxcbiAgICBlZGl0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQ6IGFzeW5jIChjb21tYW5kSWQsIGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQoY29tbWFuZElkLCBndWlsZElkLCBvcHRpb25zKSkpO1xuICAgIH0sXG4gICAgZWRpdEd1aWxkU3RpY2tlcjogYXN5bmMgKGd1aWxkSWQsIHN0aWNrZXJJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zdGlja2VyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRHdWlsZFN0aWNrZXIoZ3VpbGRJZCwgc3RpY2tlcklkLCBvcHRpb25zLCByZWFzb24pKSk7XG4gICAgfSxcbiAgICBlZGl0R3VpbGRUZW1wbGF0ZTogYXN5bmMgKGd1aWxkSWQsIHRlbXBsYXRlQ29kZSwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudGVtcGxhdGUoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEd1aWxkVGVtcGxhdGUoZ3VpbGRJZCwgdGVtcGxhdGVDb2RlLCBvcHRpb25zKSkpO1xuICAgIH0sXG4gICAgZWRpdE1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0TWVzc2FnZShjaGFubmVsSWQsIG1lc3NhZ2VJZCwgb3B0aW9ucykpKTtcbiAgICB9LFxuICAgIGVkaXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2U6IGFzeW5jICh0b2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlKHRva2VuLCBvcHRpb25zKSkpO1xuICAgIH0sXG4gICAgZWRpdFJvbGU6IGFzeW5jIChndWlsZElkLCByb2xlSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0Um9sZShndWlsZElkLCByb2xlSWQsIG9wdGlvbnMsIHJlYXNvbikpLCB7IGd1aWxkSWQgfSk7XG4gICAgfSxcbiAgICBlZGl0Um9sZVBvc2l0aW9uczogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0Um9sZVBvc2l0aW9ucyhndWlsZElkLCBvcHRpb25zLCByZWFzb24pKS5tYXAoKHJvbGUpID0+IGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHJvbGUsIHsgZ3VpbGRJZCB9KSk7XG4gICAgfSxcbiAgICBlZGl0U2NoZWR1bGVkRXZlbnQ6IGFzeW5jIChndWlsZElkLCBldmVudElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnNjaGVkdWxlZEV2ZW50KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRTY2hlZHVsZWRFdmVudChndWlsZElkLCBldmVudElkLCBvcHRpb25zLCByZWFzb24pKSk7XG4gICAgfSxcbiAgICBlZGl0U3RhZ2VJbnN0YW5jZTogYXN5bmMgKGNoYW5uZWxJZCwgdG9waWMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3RhZ2VJbnN0YW5jZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0U3RhZ2VJbnN0YW5jZShjaGFubmVsSWQsIHRvcGljLCByZWFzb24pKSk7XG4gICAgfSxcbiAgICBlZGl0V2ViaG9vazogYXN5bmMgKHdlYmhvb2tJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy53ZWJob29rKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRXZWJob29rKHdlYmhvb2tJZCwgb3B0aW9ucywgcmVhc29uKSkpO1xuICAgIH0sXG4gICAgZWRpdFdlYmhvb2tNZXNzYWdlOiBhc3luYyAod2ViaG9va0lkLCB0b2tlbiwgbWVzc2FnZUlkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRXZWJob29rTWVzc2FnZSh3ZWJob29rSWQsIHRva2VuLCBtZXNzYWdlSWQsIG9wdGlvbnMpKSk7XG4gICAgfSxcbiAgICBlZGl0V2ViaG9va1dpdGhUb2tlbjogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4sIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlYmhvb2soYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdFdlYmhvb2tXaXRoVG9rZW4od2ViaG9va0lkLCB0b2tlbiwgb3B0aW9ucykpKTtcbiAgICB9LFxuICAgIGVkaXRXZWxjb21lU2NyZWVuOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy53ZWxjb21lU2NyZWVuKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRXZWxjb21lU2NyZWVuKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpKTtcbiAgICB9LFxuICAgIGVkaXRXaWRnZXRTZXR0aW5nczogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMud2lkZ2V0U2V0dGluZ3MoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdFdpZGdldFNldHRpbmdzKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpKTtcbiAgICB9LFxuICAgIGV4ZWN1dGVXZWJob29rOiBhc3luYyAod2ViaG9va0lkLCB0b2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYm90LnJlc3QuZXhlY3V0ZVdlYmhvb2sod2ViaG9va0lkLCB0b2tlbiwgb3B0aW9ucyk7XG4gICAgICBpZiAoIXJlc3VsdCkgcmV0dXJuO1xuXG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgc25ha2VsaXplKHJlc3VsdCkpO1xuICAgIH0sXG4gICAgZm9sbG93QW5ub3VuY2VtZW50OiBhc3luYyAoc291cmNlQ2hhbm5lbElkLCB0YXJnZXRDaGFubmVsSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5mb2xsb3dBbm5vdW5jZW1lbnQoc291cmNlQ2hhbm5lbElkLCB0YXJnZXRDaGFubmVsSWQpO1xuICAgIH0sXG4gICAgZ2V0QWN0aXZlVGhyZWFkczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGJvdC5yZXN0LmdldEFjdGl2ZVRocmVhZHMoZ3VpbGRJZCk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0aHJlYWRzOiByZXN1bHQudGhyZWFkcy5tYXAoKHRocmVhZCkgPT4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgc25ha2VsaXplKHRocmVhZCksIHsgZ3VpbGRJZCB9KSksXG4gICAgICAgIG1lbWJlcnM6IHJlc3VsdC5tZW1iZXJzLm1hcCgobWVtYmVyKSA9PiBib3QudHJhbnNmb3JtZXJzLnRocmVhZE1lbWJlcihib3QsIHNuYWtlbGl6ZShtZW1iZXIpLCB7IGd1aWxkSWQgfSkpLFxuICAgICAgfTtcbiAgICB9LFxuICAgIGdldEFwcGxpY2F0aW9uSW5mbzogYXN5bmMgKCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb24oYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0QXBwbGljYXRpb25JbmZvKCkpKTtcbiAgICB9LFxuICAgIGVkaXRBcHBsaWNhdGlvbkluZm86IGFzeW5jIChib2R5KSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0QXBwbGljYXRpb25JbmZvKGJvZHkpKSk7XG4gICAgfSxcbiAgICBnZXRDdXJyZW50QXV0aGVudGljYXRpb25JbmZvOiBhc3luYyAoYmVhcmVyVG9rZW4pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRDdXJyZW50QXV0aGVudGljYXRpb25JbmZvKGJlYXJlclRva2VuKTtcbiAgICB9LFxuICAgIGV4Y2hhbmdlVG9rZW46IGFzeW5jIChjbGllbnRJZCwgY2xpZW50U2VjcmV0LCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZXhjaGFuZ2VUb2tlbihjbGllbnRJZCwgY2xpZW50U2VjcmV0LCBvcHRpb25zKTtcbiAgICB9LFxuICAgIHJldm9rZVRva2VuOiBhc3luYyAoY2xpZW50SWQsIGNsaWVudFNlY3JldCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LnJldm9rZVRva2VuKGNsaWVudElkLCBjbGllbnRTZWNyZXQsIG9wdGlvbnMpO1xuICAgIH0sXG4gICAgZ2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbjogYXN5bmMgKGd1aWxkSWQsIGNvbW1hbmRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgYm90LnJlc3QuZ2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbihndWlsZElkLCBjb21tYW5kSWQsIG9wdGlvbnMpO1xuICAgICAgY29uc3Qgc25ha2VkUmVzID0gc25ha2VsaXplKHJlcyk7XG5cbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmd1aWxkQXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnMoYm90LCBzbmFrZWRSZXMpO1xuICAgIH0sXG4gICAgZ2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnM6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zKGd1aWxkSWQsIG9wdGlvbnMpKS5tYXAoKHJlcykgPT5cbiAgICAgICAgYm90LnRyYW5zZm9ybWVycy5ndWlsZEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zKGJvdCwgc25ha2VsaXplKHJlcykpLFxuICAgICAgKTtcbiAgICB9LFxuICAgIGdldEF1ZGl0TG9nOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldEF1ZGl0TG9nKGd1aWxkSWQsIG9wdGlvbnMpO1xuICAgIH0sXG4gICAgZ2V0QXV0b21vZFJ1bGU6IGFzeW5jIChndWlsZElkLCBydWxlSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmF1dG9Nb2RlcmF0aW9uUnVsZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRBdXRvbW9kUnVsZShndWlsZElkLCBydWxlSWQpKSk7XG4gICAgfSxcbiAgICBnZXRBdXRvbW9kUnVsZXM6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldEF1dG9tb2RSdWxlcyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuYXV0b01vZGVyYXRpb25SdWxlKGJvdCwgc25ha2VsaXplKHJlcykpKTtcbiAgICB9LFxuICAgIGdldEF2YWlsYWJsZVZvaWNlUmVnaW9uczogYXN5bmMgKCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRBdmFpbGFibGVWb2ljZVJlZ2lvbnMoKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMudm9pY2VSZWdpb24oYm90LCBzbmFrZWxpemUocmVzKSkpO1xuICAgIH0sXG4gICAgZ2V0QmFuOiBhc3luYyAoZ3VpbGRJZCwgdXNlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0QmFuKGd1aWxkSWQsIHVzZXJJZCk7XG4gICAgfSxcbiAgICBnZXRCYW5zOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldEJhbnMoZ3VpbGRJZCwgb3B0aW9ucyk7XG4gICAgfSxcbiAgICBnZXRDaGFubmVsOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldENoYW5uZWwoY2hhbm5lbElkKSkpO1xuICAgIH0sXG4gICAgZ2V0Q2hhbm5lbEludml0ZXM6IGFzeW5jIChjaGFubmVsSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0Q2hhbm5lbEludml0ZXMoY2hhbm5lbElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuaW52aXRlKGJvdCwgc25ha2VsaXplKHJlcykpKTtcbiAgICB9LFxuICAgIGdldENoYW5uZWxzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRDaGFubmVscyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHNuYWtlbGl6ZShyZXMpLCB7IGd1aWxkSWQgfSkpO1xuICAgIH0sXG4gICAgZ2V0Q2hhbm5lbFdlYmhvb2tzOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldENoYW5uZWxXZWJob29rcyhjaGFubmVsSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy53ZWJob29rKGJvdCwgc25ha2VsaXplKHJlcykpKTtcbiAgICB9LFxuICAgIGdldERtQ2hhbm5lbDogYXN5bmMgKHVzZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXREbUNoYW5uZWwodXNlcklkKSkpO1xuICAgIH0sXG4gICAgZ2V0R3JvdXBEbUNoYW5uZWw6IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEdyb3VwRG1DaGFubmVsKG9wdGlvbnMpKSk7XG4gICAgfSxcbiAgICBnZXRFbW9qaTogYXN5bmMgKGd1aWxkSWQsIGVtb2ppSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEVtb2ppKGd1aWxkSWQsIGVtb2ppSWQpKSk7XG4gICAgfSxcbiAgICBnZXRBcHBsaWNhdGlvbkVtb2ppOiBhc3luYyAoZW1vamlJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0QXBwbGljYXRpb25FbW9qaShlbW9qaUlkKSkpO1xuICAgIH0sXG4gICAgZ2V0RW1vamlzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRFbW9qaXMoZ3VpbGRJZCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgc25ha2VsaXplKHJlcykpKTtcbiAgICB9LFxuICAgIGdldEFwcGxpY2F0aW9uRW1vamlzOiBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBib3QucmVzdC5nZXRBcHBsaWNhdGlvbkVtb2ppcygpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBpdGVtczogcmVzLml0ZW1zLm1hcCgoaXRlbSkgPT4gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHNuYWtlbGl6ZShpdGVtKSkpLFxuICAgICAgfTtcbiAgICB9LFxuICAgIGdldEZvbGxvd3VwTWVzc2FnZTogYXN5bmMgKHRva2VuLCBtZXNzYWdlSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0Rm9sbG93dXBNZXNzYWdlKHRva2VuLCBtZXNzYWdlSWQpKSk7XG4gICAgfSxcbiAgICBnZXRHYXRld2F5Qm90OiBhc3luYyAoKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5nYXRld2F5Qm90KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEdhdGV3YXlCb3QoKSkpO1xuICAgIH0sXG4gICAgZ2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kOiBhc3luYyAoY29tbWFuZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kKGNvbW1hbmRJZCkpKTtcbiAgICB9LFxuICAgIGdldEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZHM6IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZHMob3B0aW9ucykpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShyZXMpKSk7XG4gICAgfSxcbiAgICBnZXRHdWlsZDogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmd1aWxkKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkKGd1aWxkSWQsIG9wdGlvbnMpKSk7XG4gICAgfSxcbiAgICBnZXRHdWlsZHM6IGFzeW5jIChiZWFyZXJUb2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRHdWlsZHMoYmVhcmVyVG9rZW4sIG9wdGlvbnMpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5ndWlsZChib3QsIHNuYWtlbGl6ZShyZXMpLCB7IHBhcnRpYWw6IHRydWUgfSkpO1xuICAgIH0sXG4gICAgZ2V0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQ6IGFzeW5jIChjb21tYW5kSWQsIGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZChjb21tYW5kSWQsIGd1aWxkSWQpKSk7XG4gICAgfSxcbiAgICBnZXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZHM6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkQXBwbGljYXRpb25Db21tYW5kcyhndWlsZElkLCBvcHRpb25zKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kKGJvdCwgc25ha2VsaXplKHJlcykpKTtcbiAgICB9LFxuICAgIGdldEd1aWxkUHJldmlldzogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRHdWlsZFByZXZpZXcoZ3VpbGRJZCk7XG4gICAgICAvLyByZXR1cm4gYm90LnRyYW5zZm9ybWVycy54eHgoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRQcmV2aWV3KGd1aWxkSWQpKSlcbiAgICB9LFxuICAgIGdldEd1aWxkU3RpY2tlcjogYXN5bmMgKGd1aWxkSWQsIHN0aWNrZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3RpY2tlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRHdWlsZFN0aWNrZXIoZ3VpbGRJZCwgc3RpY2tlcklkKSkpO1xuICAgIH0sXG4gICAgZ2V0R3VpbGRTdGlja2VyczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRTdGlja2VycyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuc3RpY2tlcihib3QsIHNuYWtlbGl6ZShyZXMpKSk7XG4gICAgfSxcbiAgICBnZXRHdWlsZFRlbXBsYXRlOiBhc3luYyAodGVtcGxhdGVDb2RlKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy50ZW1wbGF0ZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRHdWlsZFRlbXBsYXRlKHRlbXBsYXRlQ29kZSkpKTtcbiAgICB9LFxuICAgIGdldEd1aWxkVGVtcGxhdGVzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRHdWlsZFRlbXBsYXRlcyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMudGVtcGxhdGUoYm90LCBzbmFrZWxpemUocmVzKSkpO1xuICAgIH0sXG4gICAgZ2V0R3VpbGRXZWJob29rczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRXZWJob29rcyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMud2ViaG9vayhib3QsIHNuYWtlbGl6ZShyZXMpKSk7XG4gICAgfSxcbiAgICBnZXRJbnRlZ3JhdGlvbnM6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldEludGVncmF0aW9ucyhndWlsZElkKSkubWFwKChyZXMpID0+XG4gICAgICAgIGJvdC50cmFuc2Zvcm1lcnMuaW50ZWdyYXRpb24oYm90LCBzbmFrZWxpemUoeyAuLi5yZXMsIGd1aWxkSWQ6IGd1aWxkSWQudG9TdHJpbmcoKSB9KSksXG4gICAgICApO1xuICAgIH0sXG4gICAgZ2V0SW52aXRlOiBhc3luYyAoaW52aXRlQ29kZSwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuaW52aXRlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEludml0ZShpbnZpdGVDb2RlLCBvcHRpb25zKSkpO1xuICAgIH0sXG4gICAgZ2V0SW52aXRlczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0SW52aXRlcyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuaW52aXRlKGJvdCwgc25ha2VsaXplKHJlcykpKTtcbiAgICB9LFxuICAgIGdldE1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRNZXNzYWdlKGNoYW5uZWxJZCwgbWVzc2FnZUlkKSkpO1xuICAgIH0sXG4gICAgZ2V0TWVzc2FnZXM6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0TWVzc2FnZXMoY2hhbm5lbElkLCBvcHRpb25zKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHNuYWtlbGl6ZShyZXMpKSk7XG4gICAgfSxcbiAgICBnZXRTdGlja2VyUGFjazogYXN5bmMgKHN0aWNrZXJQYWNrSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnN0aWNrZXJQYWNrKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFN0aWNrZXJQYWNrKHN0aWNrZXJQYWNrSWQpKSk7XG4gICAgfSxcbiAgICBnZXRTdGlja2VyUGFja3M6IGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0U3RpY2tlclBhY2tzKCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLnN0aWNrZXJQYWNrKGJvdCwgc25ha2VsaXplKHJlcykpKTtcbiAgICB9LFxuICAgIGdldE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZTogYXN5bmMgKHRva2VuKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSh0b2tlbikpKTtcbiAgICB9LFxuICAgIGdldENoYW5uZWxQaW5zOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zKSA9PiB7XG4gICAgICBjb25zdCByZXMgPSBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0Q2hhbm5lbFBpbnMoY2hhbm5lbElkLCBvcHRpb25zKSk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGhhc01vcmU6IHJlcy5oYXNfbW9yZSxcbiAgICAgICAgaXRlbXM6IHJlcy5pdGVtcy5tYXAoKGl0ZW0pID0+IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZVBpbihib3QsIGl0ZW0pKSxcbiAgICAgIH07XG4gICAgfSxcbiAgICBnZXRQaW5uZWRNZXNzYWdlczogYXN5bmMgKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRQaW5uZWRNZXNzYWdlcyhjaGFubmVsSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgc25ha2VsaXplKHJlcykpKTtcbiAgICB9LFxuICAgIGdldFByaXZhdGVBcmNoaXZlZFRocmVhZHM6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRQcml2YXRlQXJjaGl2ZWRUaHJlYWRzKGNoYW5uZWxJZCwgb3B0aW9ucyk7XG4gICAgfSxcbiAgICBnZXRQcml2YXRlSm9pbmVkQXJjaGl2ZWRUaHJlYWRzOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0UHJpdmF0ZUpvaW5lZEFyY2hpdmVkVGhyZWFkcyhjaGFubmVsSWQsIG9wdGlvbnMpO1xuICAgIH0sXG4gICAgZ2V0UHJ1bmVDb3VudDogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRQcnVuZUNvdW50KGd1aWxkSWQsIG9wdGlvbnMpO1xuICAgIH0sXG4gICAgZ2V0UHVibGljQXJjaGl2ZWRUaHJlYWRzOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0UHVibGljQXJjaGl2ZWRUaHJlYWRzKGNoYW5uZWxJZCwgb3B0aW9ucyk7XG4gICAgfSxcbiAgICBnZXRSb2xlczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0Um9sZXMoZ3VpbGRJZCkpLm1hcCgocm9sZSkgPT4gYm90LnRyYW5zZm9ybWVycy5yb2xlKGJvdCwgcm9sZSwgeyBndWlsZElkIH0pKTtcbiAgICB9LFxuICAgIGdldFJvbGU6IGFzeW5jIChndWlsZElkLCByb2xlSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnJvbGUoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0Um9sZShndWlsZElkLCByb2xlSWQpKSwgeyBndWlsZElkIH0pO1xuICAgIH0sXG4gICAgZ2V0U2NoZWR1bGVkRXZlbnQ6IGFzeW5jIChndWlsZElkLCBldmVudElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zY2hlZHVsZWRFdmVudChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRTY2hlZHVsZWRFdmVudChndWlsZElkLCBldmVudElkLCBvcHRpb25zKSkpO1xuICAgIH0sXG4gICAgZ2V0U2NoZWR1bGVkRXZlbnRzOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRTY2hlZHVsZWRFdmVudHMoZ3VpbGRJZCwgb3B0aW9ucykpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLnNjaGVkdWxlZEV2ZW50KGJvdCwgc25ha2VsaXplKHJlcykpKTtcbiAgICB9LFxuICAgIGdldFNjaGVkdWxlZEV2ZW50VXNlcnM6IGFzeW5jIChndWlsZElkLCBldmVudElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldFNjaGVkdWxlZEV2ZW50VXNlcnMoZ3VpbGRJZCwgZXZlbnRJZCwgb3B0aW9ucykpLm1hcCgodSkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHVzZXI6IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHNuYWtlbGl6ZSh1LnVzZXIpKSxcbiAgICAgICAgICBtZW1iZXI6IHUubWVtYmVyICYmIGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgc25ha2VsaXplKHUubWVtYmVyKSwgeyBndWlsZElkLCB1c2VySWQ6IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHUudXNlci5pZCkgfSksXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9LFxuICAgIGdldFNlc3Npb25JbmZvOiBhc3luYyAoKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5nYXRld2F5Qm90KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFNlc3Npb25JbmZvKCkpKTtcbiAgICB9LFxuICAgIGdldFN0YWdlSW5zdGFuY2U6IGFzeW5jIChjaGFubmVsSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnN0YWdlSW5zdGFuY2UoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0U3RhZ2VJbnN0YW5jZShjaGFubmVsSWQpKSk7XG4gICAgfSxcbiAgICBnZXRPd25Wb2ljZVN0YXRlOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudm9pY2VTdGF0ZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRPd25Wb2ljZVN0YXRlKGd1aWxkSWQpKSwgeyBndWlsZElkIH0pO1xuICAgIH0sXG4gICAgZ2V0VXNlclZvaWNlU3RhdGU6IGFzeW5jIChndWlsZElkLCB1c2VySWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnZvaWNlU3RhdGUoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0VXNlclZvaWNlU3RhdGUoZ3VpbGRJZCwgdXNlcklkKSksIHsgZ3VpbGRJZCB9KTtcbiAgICB9LFxuICAgIGdldFN0aWNrZXI6IGFzeW5jIChzdGlja2VySWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnN0aWNrZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0U3RpY2tlcihzdGlja2VySWQpKSk7XG4gICAgfSxcbiAgICBnZXRUaHJlYWRNZW1iZXI6IGFzeW5jIChjaGFubmVsSWQsIHVzZXJJZCwgb3B0aW9ucywgZXh0cmEpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnRocmVhZE1lbWJlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRUaHJlYWRNZW1iZXIoY2hhbm5lbElkLCB1c2VySWQsIG9wdGlvbnMpKSwgZXh0cmEpO1xuICAgIH0sXG4gICAgZ2V0VGhyZWFkTWVtYmVyczogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucywgZXh0cmEpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0VGhyZWFkTWVtYmVycyhjaGFubmVsSWQsIG9wdGlvbnMpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy50aHJlYWRNZW1iZXIoYm90LCBzbmFrZWxpemUocmVzKSwgZXh0cmEpKTtcbiAgICB9LFxuICAgIGdldFJlYWN0aW9uczogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbiwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRSZWFjdGlvbnMoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uLCBvcHRpb25zKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHNuYWtlbGl6ZShyZXMpKSk7XG4gICAgfSxcbiAgICBnZXRVc2VyOiBhc3luYyAoaWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0VXNlcihpZCkpKTtcbiAgICB9LFxuICAgIGdldEN1cnJlbnRVc2VyOiBhc3luYyAoYmVhcmVyVG9rZW4pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0Q3VycmVudFVzZXIoYmVhcmVyVG9rZW4pKSk7XG4gICAgfSxcbiAgICBnZXRVc2VyQ29ubmVjdGlvbnM6IGFzeW5jIChiZWFyZXJUb2tlbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldFVzZXJDb25uZWN0aW9ucyhiZWFyZXJUb2tlbik7XG4gICAgfSxcbiAgICBnZXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbjogYXN5bmMgKGJlYXJlclRva2VuLCBhcHBsaWNhdGlvbklkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0VXNlckFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb24oYmVhcmVyVG9rZW4sIGFwcGxpY2F0aW9uSWQpO1xuICAgIH0sXG4gICAgZ2V0VmFuaXR5VXJsOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldFZhbml0eVVybChndWlsZElkKTtcbiAgICB9LFxuICAgIGdldFZvaWNlUmVnaW9uczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0Vm9pY2VSZWdpb25zKGd1aWxkSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy52b2ljZVJlZ2lvbihib3QsIHNuYWtlbGl6ZShyZXMpKSk7XG4gICAgfSxcbiAgICBnZXRXZWJob29rOiBhc3luYyAod2ViaG9va0lkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy53ZWJob29rKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFdlYmhvb2sod2ViaG9va0lkKSkpO1xuICAgIH0sXG4gICAgZ2V0V2ViaG9va01lc3NhZ2U6IGFzeW5jICh3ZWJob29rSWQsIHRva2VuLCBtZXNzYWdlSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0V2ViaG9va01lc3NhZ2Uod2ViaG9va0lkLCB0b2tlbiwgbWVzc2FnZUlkLCBvcHRpb25zKSkpO1xuICAgIH0sXG4gICAgZ2V0V2ViaG9va1dpdGhUb2tlbjogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlYmhvb2soYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0V2ViaG9va1dpdGhUb2tlbih3ZWJob29rSWQsIHRva2VuKSkpO1xuICAgIH0sXG4gICAgZ2V0V2VsY29tZVNjcmVlbjogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlbGNvbWVTY3JlZW4oYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0V2VsY29tZVNjcmVlbihndWlsZElkKSkpO1xuICAgIH0sXG4gICAgZ2V0V2lkZ2V0OiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMud2lkZ2V0KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFdpZGdldChndWlsZElkKSkpO1xuICAgIH0sXG4gICAgZ2V0V2lkZ2V0U2V0dGluZ3M6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy53aWRnZXRTZXR0aW5ncyhib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRXaWRnZXRTZXR0aW5ncyhndWlsZElkKSkpO1xuICAgIH0sXG4gICAgcHVibGlzaE1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5wdWJsaXNoTWVzc2FnZShjaGFubmVsSWQsIG1lc3NhZ2VJZCkpKTtcbiAgICB9LFxuICAgIHNlYXJjaEd1aWxkTWVzc2FnZXM6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBib3QucmVzdC5zZWFyY2hHdWlsZE1lc3NhZ2VzKGd1aWxkSWQsIG9wdGlvbnMpO1xuICAgICAgaWYgKCdjb2RlJyBpbiByZXN1bHQpIHJldHVybiByZXN1bHQ7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5yZXN1bHQsXG4gICAgICAgIG1lc3NhZ2VzOiByZXN1bHQubWVzc2FnZXMubWFwKChtZXNzYWdlcykgPT4gbWVzc2FnZXMubWFwKChtZXNzYWdlKSA9PiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBzbmFrZWxpemUobWVzc2FnZSkpKSksXG4gICAgICAgIHRocmVhZHM6IHJlc3VsdC50aHJlYWRzPy5tYXAoKHRocmVhZCkgPT4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgc25ha2VsaXplKHRocmVhZCksIHsgZ3VpbGRJZCB9KSksXG4gICAgICAgIG1lbWJlcnM6IHJlc3VsdC5tZW1iZXJzPy5tYXAoKG1lbWJlcikgPT4gYm90LnRyYW5zZm9ybWVycy50aHJlYWRNZW1iZXIoYm90LCBzbmFrZWxpemUobWVtYmVyKSwgeyBndWlsZElkIH0pKSxcbiAgICAgIH07XG4gICAgfSxcbiAgICBzZW5kTWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5zZW5kTWVzc2FnZShjaGFubmVsSWQsIG9wdGlvbnMpKSk7XG4gICAgfSxcbiAgICBzZW5kRm9sbG93dXBNZXNzYWdlOiBhc3luYyAodG9rZW4sIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3Quc2VuZEZvbGxvd3VwTWVzc2FnZSh0b2tlbiwgb3B0aW9ucykpKTtcbiAgICB9LFxuICAgIHN0YXJ0VGhyZWFkV2l0aE1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LnN0YXJ0VGhyZWFkV2l0aE1lc3NhZ2UoY2hhbm5lbElkLCBtZXNzYWdlSWQsIG9wdGlvbnMsIHJlYXNvbikpKTtcbiAgICB9LFxuICAgIHN0YXJ0VGhyZWFkV2l0aG91dE1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5zdGFydFRocmVhZFdpdGhvdXRNZXNzYWdlKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSkpO1xuICAgIH0sXG4gICAgc3luY0d1aWxkVGVtcGxhdGU6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy50ZW1wbGF0ZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5zeW5jR3VpbGRUZW1wbGF0ZShndWlsZElkKSkpO1xuICAgIH0sXG4gICAgdXBzZXJ0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kczogYXN5bmMgKGNvbW1hbmRzLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LnVwc2VydEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZHMoY29tbWFuZHMsIG9wdGlvbnMpKS5tYXAoKHJlcykgPT5cbiAgICAgICAgYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUocmVzKSksXG4gICAgICApO1xuICAgIH0sXG4gICAgdXBzZXJ0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRzOiBhc3luYyAoZ3VpbGRJZCwgY29tbWFuZHMsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QudXBzZXJ0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRzKGd1aWxkSWQsIGNvbW1hbmRzLCBvcHRpb25zKSkubWFwKChyZXMpID0+XG4gICAgICAgIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kKGJvdCwgc25ha2VsaXplKHJlcykpLFxuICAgICAgKTtcbiAgICB9LFxuICAgIGVkaXRDdXJyZW50TWVtYmVyOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEN1cnJlbnRNZW1iZXIoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSksIHsgZ3VpbGRJZCwgdXNlcklkOiBib3QuaWQgfSk7XG4gICAgfSxcbiAgICBlZGl0TWVtYmVyOiBhc3luYyAoZ3VpbGRJZCwgdXNlcklkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0TWVtYmVyKGd1aWxkSWQsIHVzZXJJZCwgb3B0aW9ucywgcmVhc29uKSksIHsgZ3VpbGRJZCwgdXNlcklkIH0pO1xuICAgIH0sXG4gICAgZ2V0Q3VycmVudE1lbWJlcjogYXN5bmMgKGd1aWxkSWQsIGJlYXJlclRva2VuKSA9PiB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBib3QucmVzdC5nZXRDdXJyZW50TWVtYmVyKGd1aWxkSWQsIGJlYXJlclRva2VuKTtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHNuYWtlbGl6ZShyZXMpLCB7IGd1aWxkSWQsIHVzZXJJZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocmVzLnVzZXIuaWQpIH0pO1xuICAgIH0sXG4gICAgZ2V0TWVtYmVyOiBhc3luYyAoZ3VpbGRJZCwgdXNlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0TWVtYmVyKGd1aWxkSWQsIHVzZXJJZCkpLCB7IGd1aWxkSWQsIHVzZXJJZCB9KTtcbiAgICB9LFxuICAgIGdldE1lbWJlcnM6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldE1lbWJlcnMoZ3VpbGRJZCwgb3B0aW9ucykpLm1hcCgocmVzKSA9PlxuICAgICAgICBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHNuYWtlbGl6ZShyZXMpLCB7IGd1aWxkSWQsIHVzZXJJZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocmVzLnVzZXIuaWQpIH0pLFxuICAgICAgKTtcbiAgICB9LFxuICAgIHBydW5lTWVtYmVyczogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LnBydW5lTWVtYmVycyhndWlsZElkLCBvcHRpb25zLCByZWFzb24pO1xuICAgIH0sXG4gICAgc2VhcmNoTWVtYmVyczogYXN5bmMgKGd1aWxkSWQsIHF1ZXJ5LCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LnNlYXJjaE1lbWJlcnMoZ3VpbGRJZCwgcXVlcnksIG9wdGlvbnMpKS5tYXAoKHJlcykgPT5cbiAgICAgICAgYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBzbmFrZWxpemUocmVzKSwgeyBndWlsZElkLCB1c2VySWQ6IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHJlcy51c2VyLmlkKSB9KSxcbiAgICAgICk7XG4gICAgfSxcbiAgICBidWxrQmFuTWVtYmVyczogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgYm90LnJlc3QuYnVsa0Jhbk1lbWJlcnMoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYmFubmVkVXNlcnM6IHJlcy5iYW5uZWRVc2Vycy5tYXAoKHgpID0+IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHgpKSxcbiAgICAgICAgZmFpbGVkVXNlcnM6IHJlcy5mYWlsZWRVc2Vycy5tYXAoKHgpID0+IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHgpKSxcbiAgICAgIH07XG4gICAgfSxcbiAgICBnZXRBcHBsaWNhdGlvbkFjdGl2aXR5SW5zdGFuY2U6IGFzeW5jIChhcHBsaWNhdGlvbklkLCBpbnN0YW5jZUlkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0QXBwbGljYXRpb25BY3Rpdml0eUluc3RhbmNlKGFwcGxpY2F0aW9uSWQsIGluc3RhbmNlSWQpO1xuICAgIH0sXG4gICAgbGlzdEFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb25zTWV0YWRhdGFSZWNvcmRzOiBhc3luYyAoYXBwbGljYXRpb25JZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0Lmxpc3RBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uc01ldGFkYXRhUmVjb3JkcyhhcHBsaWNhdGlvbklkKTtcbiAgICB9LFxuICAgIHVwZGF0ZUFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb25zTWV0YWRhdGFSZWNvcmRzOiBhc3luYyAoYXBwbGljYXRpb25JZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LnVwZGF0ZUFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb25zTWV0YWRhdGFSZWNvcmRzKGFwcGxpY2F0aW9uSWQsIG9wdGlvbnMpO1xuICAgIH0sXG4gICAgY3JlYXRlTG9iYnk6IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5sb2JieShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVMb2JieShvcHRpb25zKSkpO1xuICAgIH0sXG4gICAgY3JlYXRlT3JKb2luTG9iYnk6IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5sb2JieShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVPckpvaW5Mb2JieShvcHRpb25zKSkpO1xuICAgIH0sXG4gICAgZ2V0TG9iYnk6IGFzeW5jIChsb2JieUlkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5sb2JieShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRMb2JieShsb2JieUlkKSkpO1xuICAgIH0sXG4gICAgbW9kaWZ5TG9iYnk6IGFzeW5jIChsb2JieUlkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5sb2JieShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5tb2RpZnlMb2JieShsb2JieUlkLCBvcHRpb25zKSkpO1xuICAgIH0sXG4gICAgYWRkTWVtYmVyVG9Mb2JieTogYXN5bmMgKGxvYmJ5SWQsIHVzZXJJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubG9iYnlNZW1iZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuYWRkTWVtYmVyVG9Mb2JieShsb2JieUlkLCB1c2VySWQsIG9wdGlvbnMpKSk7XG4gICAgfSxcbiAgICBidWxrVXBkYXRlTG9iYnlNZW1iZXJzOiBhc3luYyAobG9iYnlJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5idWxrVXBkYXRlTG9iYnlNZW1iZXJzKGxvYmJ5SWQsIG9wdGlvbnMpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5sb2JieU1lbWJlcihib3QsIHNuYWtlbGl6ZShyZXMpKSk7XG4gICAgfSxcbiAgICBsaW5rQ2hhbm5lbFRvTG9iYnk6IGFzeW5jIChsb2JieUlkLCBiZWFyZXJUb2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubG9iYnkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QubGlua0NoYW5uZWxUb0xvYmJ5KGxvYmJ5SWQsIGJlYXJlclRva2VuLCBvcHRpb25zKSkpO1xuICAgIH0sXG4gICAgdW5saW5rQ2hhbm5lbFRvTG9iYnk6IGFzeW5jIChsb2JieUlkLCBiZWFyZXJUb2tlbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubG9iYnkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QudW5saW5rQ2hhbm5lbFRvTG9iYnkobG9iYnlJZCwgYmVhcmVyVG9rZW4pKSk7XG4gICAgfSxcbiAgICB1cGRhdGVMb2JieU1lc3NhZ2VNb2RlcmF0aW9uTWV0YWRhdGE6IGFzeW5jIChsb2JieUlkLCBtZXNzYWdlSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC51cGRhdGVMb2JieU1lc3NhZ2VNb2RlcmF0aW9uTWV0YWRhdGEobG9iYnlJZCwgbWVzc2FnZUlkLCBvcHRpb25zKTtcbiAgICB9LFxuICAgIHNlbmRMb2JieU1lc3NhZ2U6IGFzeW5jIChiZWFyZXJUb2tlbiwgbG9iYnlJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubG9iYnlNZXNzYWdlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LnNlbmRMb2JieU1lc3NhZ2UoYmVhcmVyVG9rZW4sIGxvYmJ5SWQsIG9wdGlvbnMpKSk7XG4gICAgfSxcbiAgICBnZXRMb2JieU1lc3NhZ2VzOiBhc3luYyAoYmVhcmVyVG9rZW4sIGxvYmJ5SWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0TG9iYnlNZXNzYWdlcyhiZWFyZXJUb2tlbiwgbG9iYnlJZCwgb3B0aW9ucykpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLmxvYmJ5TWVzc2FnZShib3QsIHNuYWtlbGl6ZShyZXMpKSk7XG4gICAgfSxcbiAgICBjcmVhdGVMb2JieUNoYW5uZWxJbnZpdGVGb3JTZWxmOiBhc3luYyAoYmVhcmVyVG9rZW4sIGxvYmJ5SWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmxvYmJ5SW52aXRlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUxvYmJ5Q2hhbm5lbEludml0ZUZvclNlbGYoYmVhcmVyVG9rZW4sIGxvYmJ5SWQpKSk7XG4gICAgfSxcbiAgICBjcmVhdGVMb2JieUNoYW5uZWxJbnZpdGVGb3JVc2VyOiBhc3luYyAobG9iYnlJZCwgdXNlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5sb2JieUludml0ZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVMb2JieUNoYW5uZWxJbnZpdGVGb3JVc2VyKGxvYmJ5SWQsIHVzZXJJZCkpKTtcbiAgICB9LFxuICAgIGdldFRhcmdldFVzZXJzOiBhc3luYyAoaW52aXRlQ29kZSkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldFRhcmdldFVzZXJzKGludml0ZUNvZGUpO1xuICAgIH0sXG4gICAgdXBkYXRlVGFyZ2V0VXNlcnM6IGFzeW5jIChpbnZpdGVDb2RlLCB0YXJnZXRVc2Vyc0ZpbGUpID0+IHtcbiAgICAgIGF3YWl0IGJvdC5yZXN0LnVwZGF0ZVRhcmdldFVzZXJzKGludml0ZUNvZGUsIHRhcmdldFVzZXJzRmlsZSk7XG4gICAgfSxcbiAgICBnZXRUYXJnZXRVc2Vyc0pvYlN0YXR1czogYXN5bmMgKGludml0ZUNvZGUpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRUYXJnZXRVc2Vyc0pvYlN0YXR1cyhpbnZpdGVDb2RlKTtcbiAgICB9LFxuICAgIC8vIEFsbCB1c2VsZXNzIHZvaWQgcmV0dXJuIGZ1bmN0aW9ucyBoZXJlXG4gICAgYWRkUmVhY3Rpb246IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5hZGRSZWFjdGlvbihjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhY3Rpb24pO1xuICAgIH0sXG4gICAgYWRkUmVhY3Rpb25zOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9ucywgb3JkZXJlZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmFkZFJlYWN0aW9ucyhjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhY3Rpb25zLCBvcmRlcmVkKTtcbiAgICB9LFxuICAgIGFkZFJvbGU6IGFzeW5jIChndWlsZElkLCB1c2VySWQsIHJvbGVJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuYWRkUm9sZShndWlsZElkLCB1c2VySWQsIHJvbGVJZCwgcmVhc29uKTtcbiAgICB9LFxuICAgIGFkZFRocmVhZE1lbWJlcjogYXN5bmMgKGNoYW5uZWxJZCwgdXNlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuYWRkVGhyZWFkTWVtYmVyKGNoYW5uZWxJZCwgdXNlcklkKTtcbiAgICB9LFxuICAgIGFkZERtUmVjaXBpZW50OiBhc3luYyAoY2hhbm5lbElkLCB1c2VySWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5hZGREbVJlY2lwaWVudChjaGFubmVsSWQsIHVzZXJJZCwgb3B0aW9ucyk7XG4gICAgfSxcbiAgICBhZGRHdWlsZE1lbWJlcjogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmFkZEd1aWxkTWVtYmVyKGd1aWxkSWQsIHVzZXJJZCwgb3B0aW9ucyk7XG4gICAgfSxcbiAgICBkZWxldGVBdXRvbW9kUnVsZTogYXN5bmMgKGd1aWxkSWQsIHJ1bGVJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlQXV0b21vZFJ1bGUoZ3VpbGRJZCwgcnVsZUlkLCByZWFzb24pO1xuICAgIH0sXG4gICAgZGVsZXRlQ2hhbm5lbDogYXN5bmMgKGNoYW5uZWxJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlQ2hhbm5lbChjaGFubmVsSWQsIHJlYXNvbik7XG4gICAgfSxcbiAgICBkZWxldGVDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlOiBhc3luYyAoY2hhbm5lbElkLCBvdmVyd3JpdGVJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlQ2hhbm5lbFBlcm1pc3Npb25PdmVycmlkZShjaGFubmVsSWQsIG92ZXJ3cml0ZUlkLCByZWFzb24pO1xuICAgIH0sXG4gICAgZGVsZXRlRW1vamk6IGFzeW5jIChndWlsZElkLCBpZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlRW1vamkoZ3VpbGRJZCwgaWQsIHJlYXNvbik7XG4gICAgfSxcbiAgICBkZWxldGVBcHBsaWNhdGlvbkVtb2ppOiBhc3luYyAoaWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVBcHBsaWNhdGlvbkVtb2ppKGlkKTtcbiAgICB9LFxuICAgIGRlbGV0ZUZvbGxvd3VwTWVzc2FnZTogYXN5bmMgKHRva2VuLCBtZXNzYWdlSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVGb2xsb3d1cE1lc3NhZ2UodG9rZW4sIG1lc3NhZ2VJZCk7XG4gICAgfSxcbiAgICBkZWxldGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQ6IGFzeW5jIChjb21tYW5kSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQoY29tbWFuZElkKTtcbiAgICB9LFxuICAgIGRlbGV0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kOiBhc3luYyAoY29tbWFuZElkLCBndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQoY29tbWFuZElkLCBndWlsZElkKTtcbiAgICB9LFxuICAgIGRlbGV0ZUd1aWxkU3RpY2tlcjogYXN5bmMgKGd1aWxkSWQsIHN0aWNrZXJJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlR3VpbGRTdGlja2VyKGd1aWxkSWQsIHN0aWNrZXJJZCwgcmVhc29uKTtcbiAgICB9LFxuICAgIGRlbGV0ZUd1aWxkVGVtcGxhdGU6IGFzeW5jIChndWlsZElkLCB0ZW1wbGF0ZUNvZGUpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVHdWlsZFRlbXBsYXRlKGd1aWxkSWQsIHRlbXBsYXRlQ29kZSk7XG4gICAgfSxcbiAgICBkZWxldGVJbnRlZ3JhdGlvbjogYXN5bmMgKGd1aWxkSWQsIGludGVncmF0aW9uSWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUludGVncmF0aW9uKGd1aWxkSWQsIGludGVncmF0aW9uSWQsIHJlYXNvbik7XG4gICAgfSxcbiAgICBkZWxldGVJbnZpdGU6IGFzeW5jIChpbnZpdGVDb2RlLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVJbnZpdGUoaW52aXRlQ29kZSwgcmVhc29uKTtcbiAgICB9LFxuICAgIGRlbGV0ZU1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlTWVzc2FnZShjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhc29uKTtcbiAgICB9LFxuICAgIGRlbGV0ZU1lc3NhZ2VzOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWRzLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVNZXNzYWdlcyhjaGFubmVsSWQsIG1lc3NhZ2VJZHMsIHJlYXNvbik7XG4gICAgfSxcbiAgICBkZWxldGVPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2U6IGFzeW5jICh0b2tlbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSh0b2tlbik7XG4gICAgfSxcbiAgICBkZWxldGVPd25SZWFjdGlvbjogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZU93blJlYWN0aW9uKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbik7XG4gICAgfSxcbiAgICBkZWxldGVSZWFjdGlvbnNBbGw6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZVJlYWN0aW9uc0FsbChjaGFubmVsSWQsIG1lc3NhZ2VJZCk7XG4gICAgfSxcbiAgICBkZWxldGVSZWFjdGlvbnNFbW9qaTogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZVJlYWN0aW9uc0Vtb2ppKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbik7XG4gICAgfSxcbiAgICBkZWxldGVSb2xlOiBhc3luYyAoZ3VpbGRJZCwgcm9sZUlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVSb2xlKGd1aWxkSWQsIHJvbGVJZCwgcmVhc29uKTtcbiAgICB9LFxuICAgIGRlbGV0ZVNjaGVkdWxlZEV2ZW50OiBhc3luYyAoZ3VpbGRJZCwgZXZlbnRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZVNjaGVkdWxlZEV2ZW50KGd1aWxkSWQsIGV2ZW50SWQpO1xuICAgIH0sXG4gICAgZGVsZXRlU3RhZ2VJbnN0YW5jZTogYXN5bmMgKGNoYW5uZWxJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlU3RhZ2VJbnN0YW5jZShjaGFubmVsSWQsIHJlYXNvbik7XG4gICAgfSxcbiAgICBkZWxldGVVc2VyUmVhY3Rpb246IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgdXNlcklkLCByZWFjdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZVVzZXJSZWFjdGlvbihjaGFubmVsSWQsIG1lc3NhZ2VJZCwgdXNlcklkLCByZWFjdGlvbik7XG4gICAgfSxcbiAgICBkZWxldGVXZWJob29rOiBhc3luYyAod2ViaG9va0lkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVXZWJob29rKHdlYmhvb2tJZCwgcmVhc29uKTtcbiAgICB9LFxuICAgIGRlbGV0ZVdlYmhvb2tNZXNzYWdlOiBhc3luYyAod2ViaG9va0lkLCB0b2tlbiwgbWVzc2FnZUlkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlV2ViaG9va01lc3NhZ2Uod2ViaG9va0lkLCB0b2tlbiwgbWVzc2FnZUlkLCBvcHRpb25zKTtcbiAgICB9LFxuICAgIGRlbGV0ZVdlYmhvb2tXaXRoVG9rZW46IGFzeW5jICh3ZWJob29rSWQsIHRva2VuKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlV2ViaG9va1dpdGhUb2tlbih3ZWJob29rSWQsIHRva2VuKTtcbiAgICB9LFxuICAgIGVkaXRDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlczogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZWRpdENoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGVzKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKTtcbiAgICB9LFxuICAgIGVkaXRDaGFubmVsUG9zaXRpb25zOiBhc3luYyAoZ3VpbGRJZCwgY2hhbm5lbFBvc2l0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmVkaXRDaGFubmVsUG9zaXRpb25zKGd1aWxkSWQsIGNoYW5uZWxQb3NpdGlvbnMpO1xuICAgIH0sXG4gICAgZWRpdE93blZvaWNlU3RhdGU6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZWRpdE93blZvaWNlU3RhdGUoZ3VpbGRJZCwgb3B0aW9ucyk7XG4gICAgfSxcbiAgICBlZGl0VXNlclZvaWNlU3RhdGU6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZWRpdFVzZXJWb2ljZVN0YXRlKGd1aWxkSWQsIG9wdGlvbnMpO1xuICAgIH0sXG4gICAgZWRpdFVzZXJBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uOiBhc3luYyAoYmVhcmVyVG9rZW4sIGFwcGxpY2F0aW9uSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5lZGl0VXNlckFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb24oYmVhcmVyVG9rZW4sIGFwcGxpY2F0aW9uSWQsIG9wdGlvbnMpO1xuICAgIH0sXG4gICAgZGVsZXRlQ3VycmVudFVzZXJBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uOiBhc3luYyAoYmVhcmVyVG9rZW4sIGFwcGxpY2F0aW9uSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVDdXJyZW50VXNlckFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb24oYmVhcmVyVG9rZW4sIGFwcGxpY2F0aW9uSWQpO1xuICAgIH0sXG4gICAgam9pblRocmVhZDogYXN5bmMgKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmpvaW5UaHJlYWQoY2hhbm5lbElkKTtcbiAgICB9LFxuICAgIGxlYXZlR3VpbGQ6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QubGVhdmVHdWlsZChndWlsZElkKTtcbiAgICB9LFxuICAgIGxlYXZlVGhyZWFkOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QubGVhdmVUaHJlYWQoY2hhbm5lbElkKTtcbiAgICB9LFxuICAgIHJlbW92ZVJvbGU6IGFzeW5jIChndWlsZElkLCB1c2VySWQsIHJvbGVJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QucmVtb3ZlUm9sZShndWlsZElkLCB1c2VySWQsIHJvbGVJZCwgcmVhc29uKTtcbiAgICB9LFxuICAgIHJlbW92ZVRocmVhZE1lbWJlcjogYXN5bmMgKGNoYW5uZWxJZCwgdXNlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QucmVtb3ZlVGhyZWFkTWVtYmVyKGNoYW5uZWxJZCwgdXNlcklkKTtcbiAgICB9LFxuICAgIHJlbW92ZURtUmVjaXBpZW50OiBhc3luYyAoY2hhbm5lbElkLCB1c2VySWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5yZW1vdmVEbVJlY2lwaWVudChjaGFubmVsSWQsIHVzZXJJZCk7XG4gICAgfSxcbiAgICBzZW5kSW50ZXJhY3Rpb25SZXNwb25zZTogYXN5bmMgKGludGVyYWN0aW9uSWQsIHRva2VuLCBvcHRpb25zLCBwYXJhbXMpID0+IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYm90LnJlc3Quc2VuZEludGVyYWN0aW9uUmVzcG9uc2UoaW50ZXJhY3Rpb25JZCwgdG9rZW4sIG9wdGlvbnMsIHBhcmFtcyk7XG5cbiAgICAgIGlmICghcmVzcG9uc2UpIHJldHVybjtcblxuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlKGJvdCwgc25ha2VsaXplKHJlc3BvbnNlKSk7XG4gICAgfSxcbiAgICB0cmlnZ2VyVHlwaW5nSW5kaWNhdG9yOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QudHJpZ2dlclR5cGluZ0luZGljYXRvcihjaGFubmVsSWQpO1xuICAgIH0sXG4gICAgYmFuTWVtYmVyOiBhc3luYyAoZ3VpbGRJZCwgdXNlcklkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5iYW5NZW1iZXIoZ3VpbGRJZCwgdXNlcklkLCBvcHRpb25zLCByZWFzb24pO1xuICAgIH0sXG5cbiAgICBraWNrTWVtYmVyOiBhc3luYyAoZ3VpbGRJZCwgdXNlcklkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5raWNrTWVtYmVyKGd1aWxkSWQsIHVzZXJJZCwgcmVhc29uKTtcbiAgICB9LFxuICAgIHBpbk1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QucGluTWVzc2FnZShjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhc29uKTtcbiAgICB9LFxuICAgIHVuYmFuTWVtYmVyOiBhc3luYyAoZ3VpbGRJZCwgdXNlcklkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC51bmJhbk1lbWJlcihndWlsZElkLCB1c2VySWQsIHJlYXNvbik7XG4gICAgfSxcbiAgICB1bnBpbk1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QudW5waW5NZXNzYWdlKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFzb24pO1xuICAgIH0sXG4gICAgZ2V0R3VpbGRPbmJvYXJkaW5nOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGRPbmJvYXJkaW5nKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkT25ib2FyZGluZyhndWlsZElkKSkpO1xuICAgIH0sXG4gICAgZWRpdEd1aWxkT25ib2FyZGluZzogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGRPbmJvYXJkaW5nKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRHdWlsZE9uYm9hcmRpbmcoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSkpO1xuICAgIH0sXG4gICAgbGlzdEVudGl0bGVtZW50czogYXN5bmMgKGFwcGxpY2F0aW9uSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QubGlzdEVudGl0bGVtZW50cyhhcHBsaWNhdGlvbklkLCBvcHRpb25zKSkubWFwKChlbnRpdGxlbWVudCkgPT5cbiAgICAgICAgYm90LnRyYW5zZm9ybWVycy5lbnRpdGxlbWVudChib3QsIHNuYWtlbGl6ZShlbnRpdGxlbWVudCkpLFxuICAgICAgKTtcbiAgICB9LFxuICAgIGdldEVudGl0bGVtZW50OiBhc3luYyAoYXBwbGljYXRpb25JZCwgZW50aXRsZW1lbnRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZW50aXRsZW1lbnQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0RW50aXRsZW1lbnQoYXBwbGljYXRpb25JZCwgZW50aXRsZW1lbnRJZCkpKTtcbiAgICB9LFxuICAgIGNyZWF0ZVRlc3RFbnRpdGxlbWVudDogYXN5bmMgKGFwcGxpY2F0aW9uSWQsIGJvZHkpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmVudGl0bGVtZW50KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZVRlc3RFbnRpdGxlbWVudChhcHBsaWNhdGlvbklkLCBib2R5KSksIHsgcGFydGlhbDogdHJ1ZSB9KTtcbiAgICB9LFxuICAgIGRlbGV0ZVRlc3RFbnRpdGxlbWVudDogYXN5bmMgKGFwcGxpY2F0aW9uSWQsIGVudGl0bGVtZW50SWQpID0+IHtcbiAgICAgIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZVRlc3RFbnRpdGxlbWVudChhcHBsaWNhdGlvbklkLCBlbnRpdGxlbWVudElkKTtcbiAgICB9LFxuICAgIGxpc3RTa3VzOiBhc3luYyAoYXBwbGljYXRpb25JZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5saXN0U2t1cyhhcHBsaWNhdGlvbklkKSkubWFwKChza3UpID0+IGJvdC50cmFuc2Zvcm1lcnMuc2t1KGJvdCwgc25ha2VsaXplKHNrdSkpKTtcbiAgICB9LFxuICAgIGdldFN1YnNjcmlwdGlvbjogYXN5bmMgKHNrdUlkLCBzdWJzY3JpcHRpb25JZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3Vic2NyaXB0aW9uKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFN1YnNjcmlwdGlvbihza3VJZCwgc3Vic2NyaXB0aW9uSWQpKSk7XG4gICAgfSxcbiAgICBsaXN0U3Vic2NyaXB0aW9uczogYXN5bmMgKHNrdUlkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0Lmxpc3RTdWJzY3JpcHRpb25zKHNrdUlkLCBvcHRpb25zKSkubWFwKChzdWJzY3JpcHRpb24pID0+IGJvdC50cmFuc2Zvcm1lcnMuc3Vic2NyaXB0aW9uKGJvdCwgc25ha2VsaXplKHN1YnNjcmlwdGlvbikpKTtcbiAgICB9LFxuICAgIHNlbmRTb3VuZGJvYXJkU291bmQ6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIGF3YWl0IGJvdC5yZXN0LnNlbmRTb3VuZGJvYXJkU291bmQoY2hhbm5lbElkLCBvcHRpb25zKTtcbiAgICB9LFxuICAgIGxpc3REZWZhdWx0U291bmRib2FyZFNvdW5kczogYXN5bmMgKCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5saXN0RGVmYXVsdFNvdW5kYm9hcmRTb3VuZHMoKSkubWFwKChzb3VuZCkgPT4gYm90LnRyYW5zZm9ybWVycy5zb3VuZGJvYXJkU291bmQoYm90LCBzbmFrZWxpemUoc291bmQpKSk7XG4gICAgfSxcbiAgICBsaXN0R3VpbGRTb3VuZGJvYXJkU291bmRzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgYm90LnJlc3QubGlzdEd1aWxkU291bmRib2FyZFNvdW5kcyhndWlsZElkKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaXRlbXM6IHJlcy5pdGVtcy5tYXAoKHNvdW5kKSA9PiBib3QudHJhbnNmb3JtZXJzLnNvdW5kYm9hcmRTb3VuZChib3QsIHNuYWtlbGl6ZShzb3VuZCkpKSxcbiAgICAgIH07XG4gICAgfSxcbiAgICBnZXRHdWlsZFNvdW5kYm9hcmRTb3VuZDogYXN5bmMgKGd1aWxkSWQsIHNvdW5kSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnNvdW5kYm9hcmRTb3VuZChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRHdWlsZFNvdW5kYm9hcmRTb3VuZChndWlsZElkLCBzb3VuZElkKSkpO1xuICAgIH0sXG4gICAgY3JlYXRlR3VpbGRTb3VuZGJvYXJkU291bmQ6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnNvdW5kYm9hcmRTb3VuZChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVHdWlsZFNvdW5kYm9hcmRTb3VuZChndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSk7XG4gICAgfSxcbiAgICBtb2RpZnlHdWlsZFNvdW5kYm9hcmRTb3VuZDogYXN5bmMgKGd1aWxkSWQsIHNvdW5kSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc291bmRib2FyZFNvdW5kKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0Lm1vZGlmeUd1aWxkU291bmRib2FyZFNvdW5kKGd1aWxkSWQsIHNvdW5kSWQsIG9wdGlvbnMsIHJlYXNvbikpKTtcbiAgICB9LFxuICAgIGRlbGV0ZUd1aWxkU291bmRib2FyZFNvdW5kOiBhc3luYyAoZ3VpbGRJZCwgc291bmRJZCwgcmVhc29uKSA9PiB7XG4gICAgICBhd2FpdCBib3QucmVzdC5kZWxldGVHdWlsZFNvdW5kYm9hcmRTb3VuZChndWlsZElkLCBzb3VuZElkLCByZWFzb24pO1xuICAgIH0sXG4gICAgZGVsZXRlTG9iYnk6IGFzeW5jIChsb2JieUlkKSA9PiB7XG4gICAgICBhd2FpdCBib3QucmVzdC5kZWxldGVMb2JieShsb2JieUlkKTtcbiAgICB9LFxuICAgIHJlbW92ZU1lbWJlckZyb21Mb2JieTogYXN5bmMgKGxvYmJ5SWQsIHVzZXJJZCkgPT4ge1xuICAgICAgYXdhaXQgYm90LnJlc3QucmVtb3ZlTWVtYmVyRnJvbUxvYmJ5KGxvYmJ5SWQsIHVzZXJJZCk7XG4gICAgfSxcbiAgICBsZWF2ZUxvYmJ5OiBhc3luYyAobG9iYnlJZCwgYmVhcmVyVG9rZW4pID0+IHtcbiAgICAgIGF3YWl0IGJvdC5yZXN0LmxlYXZlTG9iYnkobG9iYnlJZCwgYmVhcmVyVG9rZW4pO1xuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIEJvdEhlbHBlcnM8VFByb3BzIGV4dGVuZHMgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIFRCZWhhdmlvciBleHRlbmRzIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+ID0ge1xuICBjcmVhdGVBdXRvbW9kUnVsZTogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBDcmVhdGVBdXRvTW9kZXJhdGlvblJ1bGVPcHRpb25zLFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEF1dG9Nb2RlcmF0aW9uUnVsZSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgY3JlYXRlQ2hhbm5lbDogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlR3VpbGRDaGFubmVsLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgY3JlYXRlRW1vamk6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENyZWF0ZUd1aWxkRW1vamksIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxFbW9qaSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgY3JlYXRlQXBwbGljYXRpb25FbW9qaTogKG9wdGlvbnM6IENyZWF0ZUFwcGxpY2F0aW9uRW1vamkpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8RW1vamksIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGNyZWF0ZUZvcnVtVGhyZWFkOiAoXG4gICAgY2hhbm5lbElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogQ3JlYXRlRm9ydW1Qb3N0V2l0aE1lc3NhZ2UsXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgY3JlYXRlR2xvYmFsQXBwbGljYXRpb25Db21tYW5kOiAoXG4gICAgY29tbWFuZDogQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kLFxuICAgIG9wdGlvbnM/OiBDcmVhdGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25zLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8QXBwbGljYXRpb25Db21tYW5kLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBjcmVhdGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZDogKFxuICAgIGNvbW1hbmQ6IENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9ucz86IENyZWF0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kT3B0aW9ucyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEFwcGxpY2F0aW9uQ29tbWFuZCwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgY3JlYXRlR3VpbGRTdGlja2VyOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IENyZWF0ZUd1aWxkU3RpY2tlck9wdGlvbnMsXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U3RpY2tlciwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgY3JlYXRlR3VpbGRUZW1wbGF0ZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlVGVtcGxhdGUpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8VGVtcGxhdGUsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGNyZWF0ZUludml0ZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogQ3JlYXRlQ2hhbm5lbEludml0ZSwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRJbnZpdGU+PjtcbiAgZ2V0R3VpbGRSb2xlTWVtYmVyQ291bnRzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIG51bWJlcj4+O1xuICBjcmVhdGVSb2xlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVHdWlsZFJvbGUsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxSb2xlLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBjcmVhdGVTY2hlZHVsZWRFdmVudDogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBDcmVhdGVTY2hlZHVsZWRFdmVudCxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTY2hlZHVsZWRFdmVudCwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgY3JlYXRlU3RhZ2VJbnN0YW5jZTogKG9wdGlvbnM6IENyZWF0ZVN0YWdlSW5zdGFuY2UsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTdGFnZUluc3RhbmNlLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBjcmVhdGVXZWJob29rOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENyZWF0ZVdlYmhvb2ssIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxXZWJob29rLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBlZGl0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnM6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgY29tbWFuZElkOiBCaWdTdHJpbmcsXG4gICAgYmVhcmVyVG9rZW46IHN0cmluZyxcbiAgICBvcHRpb25zOiBDYW1lbGl6ZTxEaXNjb3JkQXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnM+W10sXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBlZGl0QXV0b21vZFJ1bGU6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgcnVsZUlkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogUGFydGlhbDxFZGl0QXV0b01vZGVyYXRpb25SdWxlT3B0aW9ucz4sXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8QXV0b01vZGVyYXRpb25SdWxlLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBlZGl0Qm90UHJvZmlsZTogKG9wdGlvbnM6IHtcbiAgICB1c2VybmFtZT86IHN0cmluZztcbiAgICBib3RBdmF0YXJVUkw/OiBzdHJpbmcgfCBudWxsO1xuICAgIGJvdEJhbm5lclVSTD86IHN0cmluZyB8IG51bGw7XG4gIH0pID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8VXNlciwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZWRpdENoYW5uZWw6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogTW9kaWZ5Q2hhbm5lbCwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPENoYW5uZWwsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGVkaXRFbW9qaTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgaWQ6IEJpZ1N0cmluZywgb3B0aW9uczogTW9kaWZ5R3VpbGRFbW9qaSwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEVtb2ppLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBlZGl0QXBwbGljYXRpb25FbW9qaTogKGlkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IE1vZGlmeUFwcGxpY2F0aW9uRW1vamkpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8RW1vamksIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGVkaXRGb2xsb3d1cE1lc3NhZ2U6IChcbiAgICB0b2tlbjogc3RyaW5nLFxuICAgIG1lc3NhZ2VJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IEludGVyYWN0aW9uQ2FsbGJhY2tEYXRhLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZWRpdEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogKFxuICAgIGNvbW1hbmRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEFwcGxpY2F0aW9uQ29tbWFuZCwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZWRpdEd1aWxkOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBNb2RpZnlHdWlsZCwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEd1aWxkLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBlZGl0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQ6IChcbiAgICBjb21tYW5kSWQ6IEJpZ1N0cmluZyxcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8QXBwbGljYXRpb25Db21tYW5kLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBlZGl0R3VpbGRTdGlja2VyOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIHN0aWNrZXJJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IEF0TGVhc3RPbmU8RWRpdEd1aWxkU3RpY2tlck9wdGlvbnM+LFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFN0aWNrZXIsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGVkaXRHdWlsZFRlbXBsYXRlOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIHRlbXBsYXRlQ29kZTogc3RyaW5nLFxuICAgIG9wdGlvbnM6IE1vZGlmeUd1aWxkVGVtcGxhdGUsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxUZW1wbGF0ZSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZWRpdE1lc3NhZ2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEVkaXRNZXNzYWdlKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGVkaXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2U6ICh0b2tlbjogc3RyaW5nLCBvcHRpb25zOiBJbnRlcmFjdGlvbkNhbGxiYWNrRGF0YSkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBlZGl0Um9sZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgcm9sZUlkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEVkaXRHdWlsZFJvbGUsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxSb2xlLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBlZGl0Um9sZVBvc2l0aW9uczogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogTW9kaWZ5Um9sZVBvc2l0aW9uc1tdLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Um9sZSwgVFByb3BzLCBUQmVoYXZpb3I+W10+O1xuICBlZGl0U2NoZWR1bGVkRXZlbnQ6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgZXZlbnRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IFBhcnRpYWw8RWRpdFNjaGVkdWxlZEV2ZW50PixcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTY2hlZHVsZWRFdmVudCwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZWRpdFN0YWdlSW5zdGFuY2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgdG9waWM6IHN0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFN0YWdlSW5zdGFuY2UsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGVkaXRXZWJob29rOiAod2ViaG9va0lkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IE1vZGlmeVdlYmhvb2ssIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxXZWJob29rLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBlZGl0V2ViaG9va01lc3NhZ2U6IChcbiAgICB3ZWJob29rSWQ6IEJpZ1N0cmluZyxcbiAgICB0b2tlbjogc3RyaW5nLFxuICAgIG1lc3NhZ2VJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IEVkaXRXZWJob29rTWVzc2FnZU9wdGlvbnMsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBlZGl0V2ViaG9va1dpdGhUb2tlbjogKFxuICAgIHdlYmhvb2tJZDogQmlnU3RyaW5nLFxuICAgIHRva2VuOiBzdHJpbmcsXG4gICAgb3B0aW9uczogT21pdDxNb2RpZnlXZWJob29rLCAnY2hhbm5lbElkJz4sXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxXZWJob29rLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBlZGl0V2VsY29tZVNjcmVlbjogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBNb2RpZnlHdWlsZFdlbGNvbWVTY3JlZW4sXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8V2VsY29tZVNjcmVlbiwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZWRpdFdpZGdldFNldHRpbmdzOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IENhbWVsaXplPERpc2NvcmRHdWlsZFdpZGdldFNldHRpbmdzPixcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxHdWlsZFdpZGdldFNldHRpbmdzLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBlZGl0VXNlckFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb246IChcbiAgICBiZWFyZXJUb2tlbjogc3RyaW5nLFxuICAgIGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBDYW1lbGl6ZTxEaXNjb3JkQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbj4sXG4gICkgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbj4+O1xuICBkZWxldGVDdXJyZW50VXNlckFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb246IChiZWFyZXJUb2tlbjogc3RyaW5nLCBhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIGV4ZWN1dGVXZWJob29rOiAoXG4gICAgd2ViaG9va0lkOiBCaWdTdHJpbmcsXG4gICAgdG9rZW46IHN0cmluZyxcbiAgICBvcHRpb25zOiBFeGVjdXRlV2ViaG9vayxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPiB8IHVuZGVmaW5lZD47XG4gIGZvbGxvd0Fubm91bmNlbWVudDogKHNvdXJjZUNoYW5uZWxJZDogQmlnU3RyaW5nLCB0YXJnZXRDaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkRm9sbG93ZWRDaGFubmVsPj47XG4gIGdldEFjdGl2ZVRocmVhZHM6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICkgPT4gUHJvbWlzZTx7IHRocmVhZHM6IFNldHVwRGVzaXJlZFByb3BzPENoYW5uZWwsIFRQcm9wcywgVEJlaGF2aW9yPltdOyBtZW1iZXJzOiBTZXR1cERlc2lyZWRQcm9wczxUaHJlYWRNZW1iZXIsIFRQcm9wcywgVEJlaGF2aW9yPltdIH0+O1xuICBnZXRBcHBsaWNhdGlvbkluZm86ICgpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8QXBwbGljYXRpb24sIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGVkaXRBcHBsaWNhdGlvbkluZm86IChib2R5OiBFZGl0QXBwbGljYXRpb24pID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8QXBwbGljYXRpb24sIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGdldEN1cnJlbnRBdXRoZW50aWNhdGlvbkluZm86IChiZWFyZXJUb2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRDdXJyZW50QXV0aG9yaXphdGlvbj4+O1xuICBleGNoYW5nZVRva2VuOiAoXG4gICAgY2xpZW50SWQ6IEJpZ1N0cmluZyxcbiAgICBjbGllbnRTZWNyZXQ6IHN0cmluZyxcbiAgICBvcHRpb25zOiBDYW1lbGl6ZTxEaXNjb3JkVG9rZW5FeGNoYW5nZT4sXG4gICkgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQWNjZXNzVG9rZW5SZXNwb25zZT4+O1xuICByZXZva2VUb2tlbjogKGNsaWVudElkOiBCaWdTdHJpbmcsIGNsaWVudFNlY3JldDogc3RyaW5nLCBvcHRpb25zOiBDYW1lbGl6ZTxEaXNjb3JkVG9rZW5SZXZvY2F0aW9uPikgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZ2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbjogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBjb21tYW5kSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zPzogR2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbk9wdGlvbnMsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBnZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uczogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zPzogR2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbk9wdGlvbnMsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT47XG4gIGdldEF1ZGl0TG9nOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogR2V0R3VpbGRBdWRpdExvZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQXVkaXRMb2c+PjtcbiAgZ2V0QXV0b21vZFJ1bGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHJ1bGVJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEF1dG9Nb2RlcmF0aW9uUnVsZSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0QXV0b21vZFJ1bGVzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEF1dG9Nb2RlcmF0aW9uUnVsZSwgVFByb3BzLCBUQmVoYXZpb3I+W10+O1xuICBnZXRBdmFpbGFibGVWb2ljZVJlZ2lvbnM6ICgpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Vm9pY2VSZWdpb24sIFRQcm9wcywgVEJlaGF2aW9yPltdPjtcbiAgZ2V0QmFuOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQmFuPj47XG4gIGdldEJhbnM6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBHZXRCYW5zKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRCYW4+W10+O1xuICBnZXRDaGFubmVsOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0Q2hhbm5lbEludml0ZXM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxJbnZpdGUsIFRQcm9wcywgVEJlaGF2aW9yPltdPjtcbiAgZ2V0Q2hhbm5lbHM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+W10+O1xuICBnZXRDaGFubmVsV2ViaG9va3M6IChjaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxXZWJob29rLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT47XG4gIGdldERtQ2hhbm5lbDogKHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPENoYW5uZWwsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGdldEdyb3VwRG1DaGFubmVsOiAob3B0aW9uczogQ3JlYXRlR3JvdXBEbU9wdGlvbnMpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0RW1vamk6IChndWlsZElkOiBCaWdTdHJpbmcsIGVtb2ppSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxFbW9qaSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0QXBwbGljYXRpb25FbW9qaTogKGVtb2ppSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxFbW9qaSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0RW1vamlzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEVtb2ppLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT47XG4gIGdldEFwcGxpY2F0aW9uRW1vamlzOiAoKSA9PiBQcm9taXNlPHsgaXRlbXM6IFNldHVwRGVzaXJlZFByb3BzPEVtb2ppLCBUUHJvcHMsIFRCZWhhdmlvcj5bXSB9PjtcbiAgZ2V0Rm9sbG93dXBNZXNzYWdlOiAodG9rZW46IHN0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0R2F0ZXdheUJvdDogKCkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxHZXRHYXRld2F5Qm90LCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBnZXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQ6IChjb21tYW5kSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxBcHBsaWNhdGlvbkNvbW1hbmQsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGdldEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZHM6IChcbiAgICBvcHRpb25zPzogR2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kc09wdGlvbnMsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxBcHBsaWNhdGlvbkNvbW1hbmQsIFRQcm9wcywgVEJlaGF2aW9yPltdPjtcbiAgZ2V0R3VpbGQ6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiB7IGNvdW50cz86IGJvb2xlYW4gfSkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxHdWlsZCwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0R3VpbGRzOiAoYmVhcmVyVG9rZW46IHN0cmluZywgb3B0aW9ucz86IEdldFVzZXJHdWlsZHMpID0+IFByb21pc2U8UGFydGlhbDxTZXR1cERlc2lyZWRQcm9wczxHdWlsZCwgVFByb3BzLCBUQmVoYXZpb3I+PltdPjtcbiAgZ2V0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQ6IChjb21tYW5kSWQ6IEJpZ1N0cmluZywgZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEFwcGxpY2F0aW9uQ29tbWFuZCwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRzOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM/OiBHZXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZHNPcHRpb25zLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8QXBwbGljYXRpb25Db21tYW5kLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT47XG4gIGdldEd1aWxkUHJldmlldzogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkR3VpbGRQcmV2aWV3Pj47XG4gIGdldEd1aWxkU3RpY2tlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgc3RpY2tlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U3RpY2tlciwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0R3VpbGRTdGlja2VyczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTdGlja2VyLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT47XG4gIGdldEd1aWxkVGVtcGxhdGU6ICh0ZW1wbGF0ZUNvZGU6IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxUZW1wbGF0ZSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0R3VpbGRUZW1wbGF0ZXM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8VGVtcGxhdGUsIFRQcm9wcywgVEJlaGF2aW9yPltdPjtcbiAgZ2V0R3VpbGRXZWJob29rczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxXZWJob29rLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT47XG4gIGdldEludGVncmF0aW9uczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxJbnRlZ3JhdGlvbiwgVFByb3BzLCBUQmVoYXZpb3I+W10+O1xuICBnZXRJbnZpdGU6IChpbnZpdGVDb2RlOiBzdHJpbmcsIG9wdGlvbnM/OiBHZXRJbnZpdGUpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8SW52aXRlLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBnZXRJbnZpdGVzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEludml0ZSwgVFByb3BzLCBUQmVoYXZpb3I+W10+O1xuICBnZXRNZXNzYWdlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGdldE1lc3NhZ2VzOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBHZXRNZXNzYWdlc09wdGlvbnMpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+W10+O1xuICBzZWFyY2hHdWlsZE1lc3NhZ2VzOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM/OiBTZWFyY2hHdWlsZE1lc3NhZ2VzT3B0aW9ucyxcbiAgKSA9PiBQcm9taXNlPFxuICAgIHwgQ2FtZWxpemU8RGlzY29yZFNlYXJjaEd1aWxkTWVzc2FnZXNJbmRleGluZz5cbiAgICB8IChPbWl0PENhbWVsaXplPERpc2NvcmRTZWFyY2hHdWlsZE1lc3NhZ2VzPiwgJ21lc3NhZ2VzJyB8ICd0aHJlYWRzJyB8ICdtZW1iZXJzJz4gJiB7XG4gICAgICAgIG1lc3NhZ2VzOiBTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlLCBUUHJvcHMsIFRCZWhhdmlvcj5bXVtdO1xuICAgICAgICB0aHJlYWRzPzogU2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+W107XG4gICAgICAgIG1lbWJlcnM/OiBTZXR1cERlc2lyZWRQcm9wczxUaHJlYWRNZW1iZXIsIFRQcm9wcywgVEJlaGF2aW9yPltdO1xuICAgICAgfSlcbiAgPjtcbiAgZ2V0U3RpY2tlclBhY2s6IChzdGlja2VyUGFja0lkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U3RpY2tlclBhY2ssIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGdldFN0aWNrZXJQYWNrczogKCkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTdGlja2VyUGFjaywgVFByb3BzLCBUQmVoYXZpb3I+W10+O1xuICBnZXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2U6ICh0b2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGdldENoYW5uZWxQaW5zOiAoXG4gICAgY2hhbm5lbElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9ucz86IEdldENoYW5uZWxQaW5zT3B0aW9ucyxcbiAgKSA9PiBQcm9taXNlPHsgaXRlbXM6IFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2VQaW4sIFRQcm9wcywgVEJlaGF2aW9yPltdOyBoYXNNb3JlOiBib29sZWFuIH0+O1xuICAvKiogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBCb3RIZWxwZXJzLmdldENoYW5uZWxQaW5zfSBpbnN0ZWFkICovXG4gIGdldFBpbm5lZE1lc3NhZ2VzOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+W10+O1xuICBnZXRQcml2YXRlQXJjaGl2ZWRUaHJlYWRzOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBMaXN0QXJjaGl2ZWRUaHJlYWRzKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRMaXN0QXJjaGl2ZWRUaHJlYWRzPj47XG4gIGdldFByaXZhdGVKb2luZWRBcmNoaXZlZFRocmVhZHM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IExpc3RBcmNoaXZlZFRocmVhZHMpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZExpc3RBcmNoaXZlZFRocmVhZHM+PjtcbiAgZ2V0UHJ1bmVDb3VudDogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IEdldEd1aWxkUHJ1bmVDb3VudFF1ZXJ5KSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRQcnVuZWRDb3VudD4+O1xuICBnZXRQdWJsaWNBcmNoaXZlZFRocmVhZHM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IExpc3RBcmNoaXZlZFRocmVhZHMpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZExpc3RBcmNoaXZlZFRocmVhZHM+PjtcbiAgZ2V0Um9sZXM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Um9sZSwgVFByb3BzLCBUQmVoYXZpb3I+W10+O1xuICBnZXRSb2xlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCByb2xlSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxSb2xlLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBnZXRTY2hlZHVsZWRFdmVudDogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBldmVudElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9ucz86IHsgd2l0aFVzZXJDb3VudD86IGJvb2xlYW4gfSxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFNjaGVkdWxlZEV2ZW50LCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBnZXRTY2hlZHVsZWRFdmVudHM6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBHZXRTY2hlZHVsZWRFdmVudHMpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U2NoZWR1bGVkRXZlbnQsIFRQcm9wcywgVEJlaGF2aW9yPltdPjtcbiAgZ2V0U2NoZWR1bGVkRXZlbnRVc2VyczogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBldmVudElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9ucz86IEdldFNjaGVkdWxlZEV2ZW50VXNlcnMsXG4gICkgPT4gUHJvbWlzZTxBcnJheTx7IHVzZXI6IFNldHVwRGVzaXJlZFByb3BzPFVzZXIsIFRQcm9wcywgVEJlaGF2aW9yPjsgbWVtYmVyPzogU2V0dXBEZXNpcmVkUHJvcHM8TWVtYmVyLCBUUHJvcHMsIFRCZWhhdmlvcj4gfT4+O1xuICBnZXRTZXNzaW9uSW5mbzogKCkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxHZXRHYXRld2F5Qm90LCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBnZXRTdGFnZUluc3RhbmNlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U3RhZ2VJbnN0YW5jZSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0T3duVm9pY2VTdGF0ZTogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxWb2ljZVN0YXRlLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBnZXRVc2VyVm9pY2VTdGF0ZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Vm9pY2VTdGF0ZSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0U3RpY2tlcjogKHN0aWNrZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFN0aWNrZXIsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGdldFRocmVhZE1lbWJlcjogKFxuICAgIGNoYW5uZWxJZDogQmlnU3RyaW5nLFxuICAgIHVzZXJJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM/OiBHZXRUaHJlYWRNZW1iZXIsXG4gICAgZXh0cmE/OiBUaHJlYWRNZW1iZXJUcmFuc2Zvcm1lckV4dHJhLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8VGhyZWFkTWVtYmVyLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBnZXRUaHJlYWRNZW1iZXJzOiAoXG4gICAgY2hhbm5lbElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9ucz86IExpc3RUaHJlYWRNZW1iZXJzLFxuICAgIGV4dHJhPzogVGhyZWFkTWVtYmVyVHJhbnNmb3JtZXJFeHRyYSxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFRocmVhZE1lbWJlciwgVFByb3BzLCBUQmVoYXZpb3I+W10+O1xuICBnZXRSZWFjdGlvbnM6IChcbiAgICBjaGFubmVsSWQ6IEJpZ1N0cmluZyxcbiAgICBtZXNzYWdlSWQ6IEJpZ1N0cmluZyxcbiAgICByZWFjdGlvbjogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBHZXRSZWFjdGlvbnMsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxVc2VyLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT47XG4gIGdldFVzZXI6IChpZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFVzZXIsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGdldEN1cnJlbnRVc2VyOiAoYmVhcmVyVG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxVc2VyLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBnZXRVc2VyQ29ubmVjdGlvbnM6IChiZWFyZXJUb2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRDb25uZWN0aW9uPltdPjtcbiAgZ2V0VXNlckFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb246IChiZWFyZXJUb2tlbjogc3RyaW5nLCBhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb24+PjtcbiAgZ2V0VmFuaXR5VXJsOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRWYW5pdHlVcmw+PjtcbiAgZ2V0Vm9pY2VSZWdpb25zOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFZvaWNlUmVnaW9uLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT47XG4gIGdldFdlYmhvb2s6ICh3ZWJob29rSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxXZWJob29rLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBnZXRXZWJob29rTWVzc2FnZTogKFxuICAgIHdlYmhvb2tJZDogQmlnU3RyaW5nLFxuICAgIHRva2VuOiBzdHJpbmcsXG4gICAgbWVzc2FnZUlkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9ucz86IEdldFdlYmhvb2tNZXNzYWdlT3B0aW9ucyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGdldFdlYmhvb2tXaXRoVG9rZW46ICh3ZWJob29rSWQ6IEJpZ1N0cmluZywgdG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxXZWJob29rLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBnZXRXZWxjb21lU2NyZWVuOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFdlbGNvbWVTY3JlZW4sIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGdldFdpZGdldDogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxHdWlsZFdpZGdldCwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0V2lkZ2V0U2V0dGluZ3M6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8R3VpbGRXaWRnZXRTZXR0aW5ncywgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgcHVibGlzaE1lc3NhZ2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgc2VuZE1lc3NhZ2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlTWVzc2FnZU9wdGlvbnMpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgc2VuZEZvbGxvd3VwTWVzc2FnZTogKHRva2VuOiBzdHJpbmcsIG9wdGlvbnM6IEludGVyYWN0aW9uQ2FsbGJhY2tEYXRhKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIHN0YXJ0VGhyZWFkV2l0aE1lc3NhZ2U6IChcbiAgICBjaGFubmVsSWQ6IEJpZ1N0cmluZyxcbiAgICBtZXNzYWdlSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBTdGFydFRocmVhZFdpdGhNZXNzYWdlLFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPENoYW5uZWwsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIHN0YXJ0VGhyZWFkV2l0aG91dE1lc3NhZ2U6IChcbiAgICBjaGFubmVsSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBTdGFydFRocmVhZFdpdGhvdXRNZXNzYWdlLFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPENoYW5uZWwsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIHN5bmNHdWlsZFRlbXBsYXRlOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFRlbXBsYXRlLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICB1cHNlcnRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzOiAoXG4gICAgY29tbWFuZHM6IENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZFtdLFxuICAgIG9wdGlvbnM/OiBVcHNlcnRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25zLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8QXBwbGljYXRpb25Db21tYW5kLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT47XG4gIHVwc2VydEd1aWxkQXBwbGljYXRpb25Db21tYW5kczogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBjb21tYW5kczogQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kW10sXG4gICAgb3B0aW9ucz86IFVwc2VydEd1aWxkQXBwbGljYXRpb25Db21tYW5kT3B0aW9ucyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEFwcGxpY2F0aW9uQ29tbWFuZCwgVFByb3BzLCBUQmVoYXZpb3I+W10+O1xuICBlZGl0Q3VycmVudE1lbWJlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogTW9kaWZ5Q3VycmVudE1lbWJlciwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lbWJlciwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZWRpdE1lbWJlcjogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICB1c2VySWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBNb2RpZnlHdWlsZE1lbWJlcixcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZW1iZXIsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGdldEN1cnJlbnRNZW1iZXI6IChndWlsZElkOiBCaWdTdHJpbmcsIGJlYXJlclRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVtYmVyLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBnZXRNZW1iZXI6IChndWlsZElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lbWJlciwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0TWVtYmVyczogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogTGlzdEd1aWxkTWVtYmVycykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZW1iZXIsIFRQcm9wcywgVEJlaGF2aW9yPltdPjtcbiAgcHJ1bmVNZW1iZXJzOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBCZWdpbkd1aWxkUHJ1bmUsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx7IHBydW5lZDogbnVtYmVyIHwgbnVsbCB9PjtcbiAgc2VhcmNoTWVtYmVyczogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBxdWVyeTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBPbWl0PFNlYXJjaE1lbWJlcnMsICdxdWVyeSc+LFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVtYmVyLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT47XG4gIGJ1bGtCYW5NZW1iZXJzOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVHdWlsZEJ1bGtCYW4sIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx7IGJhbm5lZFVzZXJzOiBiaWdpbnRbXTsgZmFpbGVkVXNlcnM6IGJpZ2ludFtdIH0+O1xuICBnZXRBcHBsaWNhdGlvbkFjdGl2aXR5SW5zdGFuY2U6IChhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcsIGluc3RhbmNlSWQ6IHN0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQWN0aXZpdHlJbnN0YW5jZT4+O1xuICBsaXN0QXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbnNNZXRhZGF0YVJlY29yZHM6IChhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb25NZXRhZGF0YT5bXT47XG4gIHVwZGF0ZUFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb25zTWV0YWRhdGFSZWNvcmRzOiAoXG4gICAgYXBwbGljYXRpb25JZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IENhbWVsaXplPERpc2NvcmRBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uTWV0YWRhdGE+W10sXG4gICkgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbk1ldGFkYXRhPltdPjtcbiAgY3JlYXRlTG9iYnk6IChvcHRpb25zOiBDcmVhdGVMb2JieSkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxMb2JieSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgY3JlYXRlT3JKb2luTG9iYnk6IChvcHRpb25zOiBDcmVhdGVPckpvaW5Mb2JieSkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxMb2JieSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0TG9iYnk6IChsb2JieUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TG9iYnksIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIG1vZGlmeUxvYmJ5OiAobG9iYnlJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBNb2RpZnlMb2JieSkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxMb2JieSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgYWRkTWVtYmVyVG9Mb2JieTogKGxvYmJ5SWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEFkZExvYmJ5TWVtYmVyKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPExvYmJ5TWVtYmVyLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBidWxrVXBkYXRlTG9iYnlNZW1iZXJzOiAobG9iYnlJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBCdWxrVXBkYXRlTG9iYnlNZW1iZXJbXSkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxMb2JieU1lbWJlciwgVFByb3BzLCBUQmVoYXZpb3I+W10+O1xuICBsaW5rQ2hhbm5lbFRvTG9iYnk6IChsb2JieUlkOiBCaWdTdHJpbmcsIGJlYXJlclRva2VuOiBzdHJpbmcsIG9wdGlvbnM6IExpbmtDaGFubmVsVG9Mb2JieSkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxMb2JieSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgdW5saW5rQ2hhbm5lbFRvTG9iYnk6IChsb2JieUlkOiBCaWdTdHJpbmcsIGJlYXJlclRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TG9iYnksIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIHVwZGF0ZUxvYmJ5TWVzc2FnZU1vZGVyYXRpb25NZXRhZGF0YTogKGxvYmJ5SWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pID0+IFByb21pc2U8dm9pZD47XG4gIGdldFRhcmdldFVzZXJzOiAoaW52aXRlQ29kZTogc3RyaW5nKSA9PiBQcm9taXNlPHN0cmluZz47XG4gIHVwZGF0ZVRhcmdldFVzZXJzOiAoaW52aXRlQ29kZTogc3RyaW5nLCB0YXJnZXRVc2Vyc0ZpbGU6IEJsb2IpID0+IFByb21pc2U8dm9pZD47XG4gIGdldFRhcmdldFVzZXJzSm9iU3RhdHVzOiAoaW52aXRlQ29kZTogc3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRUYXJnZXRVc2Vyc0pvYlN0YXR1cz4+O1xuICBzZW5kTG9iYnlNZXNzYWdlOiAoXG4gICAgYmVhcmVyVG9rZW46IHN0cmluZyxcbiAgICBsb2JieUlkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogU2VuZExvYmJ5TWVzc2FnZSxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPExvYmJ5TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgZ2V0TG9iYnlNZXNzYWdlczogKFxuICAgIGJlYXJlclRva2VuOiBzdHJpbmcsXG4gICAgbG9iYnlJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM/OiBHZXRMb2JieU1lc3NhZ2VzLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TG9iYnlNZXNzYWdlLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT47XG4gIGNyZWF0ZUxvYmJ5Q2hhbm5lbEludml0ZUZvclNlbGY6IChiZWFyZXJUb2tlbjogc3RyaW5nLCBsb2JieUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TG9iYnlJbnZpdGUsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGNyZWF0ZUxvYmJ5Q2hhbm5lbEludml0ZUZvclVzZXI6IChsb2JieUlkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPExvYmJ5SW52aXRlLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICAvLyBmdW5jdGlvbnMgcmV0dXJuIFZvaWQgc28gZG9udCBuZWVkIGFueSBzcGVjaWFsIGhhbmRsaW5nXG4gIGFkZFJlYWN0aW9uOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCByZWFjdGlvbjogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBhZGRSZWFjdGlvbnM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIHJlYWN0aW9uczogc3RyaW5nW10sIG9yZGVyZWQ/OiBib29sZWFuKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBhZGRSb2xlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgcm9sZUlkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgYWRkVGhyZWFkTWVtYmVyOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBhZGREbVJlY2lwaWVudDogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQWRkRG1SZWNpcGllbnRPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBhZGRHdWlsZE1lbWJlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEFkZEd1aWxkTWVtYmVyT3B0aW9ucykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZGVsZXRlQXV0b21vZFJ1bGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHJ1bGVJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIGRlbGV0ZUNoYW5uZWw6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBkZWxldGVDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG92ZXJ3cml0ZUlkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZGVsZXRlRW1vamk6IChndWlsZElkOiBCaWdTdHJpbmcsIGlkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZGVsZXRlQXBwbGljYXRpb25FbW9qaTogKGlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIGRlbGV0ZUZvbGxvd3VwTWVzc2FnZTogKHRva2VuOiBzdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBkZWxldGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQ6IChjb21tYW5kSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZGVsZXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQ6IChjb21tYW5kSWQ6IEJpZ1N0cmluZywgZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBkZWxldGVHdWlsZFN0aWNrZXI6IChndWlsZElkOiBCaWdTdHJpbmcsIHN0aWNrZXJJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIGRlbGV0ZUd1aWxkVGVtcGxhdGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHRlbXBsYXRlQ29kZTogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBkZWxldGVJbnRlZ3JhdGlvbjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgaW50ZWdyYXRpb25JZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIGRlbGV0ZUludml0ZTogKGludml0ZUNvZGU6IHN0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBkZWxldGVNZXNzYWdlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIGRlbGV0ZU1lc3NhZ2VzOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZHM6IEJpZ1N0cmluZ1tdLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIGRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZTogKHRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIGRlbGV0ZU93blJlYWN0aW9uOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCByZWFjdGlvbjogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBkZWxldGVSZWFjdGlvbnNBbGw6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIGRlbGV0ZVJlYWN0aW9uc0Vtb2ppOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCByZWFjdGlvbjogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBkZWxldGVSb2xlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCByb2xlSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBkZWxldGVTY2hlZHVsZWRFdmVudDogKGd1aWxkSWQ6IEJpZ1N0cmluZywgZXZlbnRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBkZWxldGVTdGFnZUluc3RhbmNlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZGVsZXRlVXNlclJlYWN0aW9uOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgcmVhY3Rpb246IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZGVsZXRlV2ViaG9vazogKHdlYmhvb2tJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIGRlbGV0ZVdlYmhvb2tNZXNzYWdlOiAod2ViaG9va0lkOiBCaWdTdHJpbmcsIHRva2VuOiBzdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogRGVsZXRlV2ViaG9va01lc3NhZ2VPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBkZWxldGVXZWJob29rV2l0aFRva2VuOiAod2ViaG9va0lkOiBCaWdTdHJpbmcsIHRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIGVkaXRDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlczogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBFZGl0Q2hhbm5lbFBlcm1pc3Npb25PdmVycmlkZXNPcHRpb25zLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIGVkaXRDaGFubmVsUG9zaXRpb25zOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBjaGFubmVsUG9zaXRpb25zOiBNb2RpZnlHdWlsZENoYW5uZWxQb3NpdGlvbnNbXSkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZWRpdE93blZvaWNlU3RhdGU6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEVkaXRPd25Wb2ljZVN0YXRlKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBlZGl0VXNlclZvaWNlU3RhdGU6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEVkaXRVc2VyVm9pY2VTdGF0ZSkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgam9pblRocmVhZDogKGNoYW5uZWxJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBsZWF2ZUd1aWxkOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBsZWF2ZVRocmVhZDogKGNoYW5uZWxJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICByZW1vdmVSb2xlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgcm9sZUlkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgcmVtb3ZlVGhyZWFkTWVtYmVyOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICByZW1vdmVEbVJlY2lwaWVudDogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgc2VuZEludGVyYWN0aW9uUmVzcG9uc2U6IChcbiAgICBpbnRlcmFjdGlvbklkOiBCaWdTdHJpbmcsXG4gICAgdG9rZW46IHN0cmluZyxcbiAgICBvcHRpb25zOiBJbnRlcmFjdGlvblJlc3BvbnNlLFxuICAgIHBhcmFtcz86IEludGVyYWN0aW9uQ2FsbGJhY2tPcHRpb25zLFxuICApID0+IFByb21pc2U8dm9pZCB8IFNldHVwRGVzaXJlZFByb3BzPEludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgdHJpZ2dlclR5cGluZ0luZGljYXRvcjogKGNoYW5uZWxJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBiYW5NZW1iZXI6IChndWlsZElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogQ3JlYXRlR3VpbGRCYW4sIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbiAga2lja01lbWJlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgcGluTWVzc2FnZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICB1bmJhbk1lbWJlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgdW5waW5NZXNzYWdlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIGdldEd1aWxkT25ib2FyZGluZzogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxHdWlsZE9uYm9hcmRpbmcsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGVkaXRHdWlsZE9uYm9hcmRpbmc6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogRWRpdEd1aWxkT25ib2FyZGluZyxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxHdWlsZE9uYm9hcmRpbmcsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGxpc3RFbnRpdGxlbWVudHM6IChhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBHZXRFbnRpdGxlbWVudHMpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8RW50aXRsZW1lbnQsIFRQcm9wcywgVEJlaGF2aW9yPltdPjtcbiAgZ2V0RW50aXRsZW1lbnQ6IChhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcsIGVudGl0bGVtZW50SWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxFbnRpdGxlbWVudCwgVFByb3BzLCBUQmVoYXZpb3I+PjtcbiAgY3JlYXRlVGVzdEVudGl0bGVtZW50OiAoXG4gICAgYXBwbGljYXRpb25JZDogQmlnU3RyaW5nLFxuICAgIGJvZHk6IENyZWF0ZVRlc3RFbnRpdGxlbWVudCxcbiAgKSA9PiBQcm9taXNlPFBhcnRpYWw8U2V0dXBEZXNpcmVkUHJvcHM8RW50aXRsZW1lbnQsIFRQcm9wcywgVEJlaGF2aW9yPj4+O1xuICBkZWxldGVUZXN0RW50aXRsZW1lbnQ6IChhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcsIGVudGl0bGVtZW50SWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgbGlzdFNrdXM6IChhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U2t1LCBUUHJvcHMsIFRCZWhhdmlvcj5bXT47XG4gIGxpc3RTdWJzY3JpcHRpb25zOiAoc2t1SWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IExpc3RTa3VTdWJzY3JpcHRpb25zT3B0aW9ucykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTdWJzY3JpcHRpb24sIFRQcm9wcywgVEJlaGF2aW9yPltdPjtcbiAgZ2V0U3Vic2NyaXB0aW9uOiAoc2t1SWQ6IEJpZ1N0cmluZywgc3Vic2NyaXB0aW9uSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTdWJzY3JpcHRpb24sIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIHNlbmRTb3VuZGJvYXJkU291bmQ6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogU2VuZFNvdW5kYm9hcmRTb3VuZCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgbGlzdERlZmF1bHRTb3VuZGJvYXJkU291bmRzOiAoKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFNvdW5kYm9hcmRTb3VuZCwgVFByb3BzLCBUQmVoYXZpb3I+W10+O1xuICBsaXN0R3VpbGRTb3VuZGJvYXJkU291bmRzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHsgaXRlbXM6IFNldHVwRGVzaXJlZFByb3BzPFNvdW5kYm9hcmRTb3VuZCwgVFByb3BzLCBUQmVoYXZpb3I+W10gfT47XG4gIGdldEd1aWxkU291bmRib2FyZFNvdW5kOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBzb3VuZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U291bmRib2FyZFNvdW5kLCBUUHJvcHMsIFRCZWhhdmlvcj4+O1xuICBjcmVhdGVHdWlsZFNvdW5kYm9hcmRTb3VuZDogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBDcmVhdGVHdWlsZFNvdW5kYm9hcmRTb3VuZCxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTb3VuZGJvYXJkU291bmQsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIG1vZGlmeUd1aWxkU291bmRib2FyZFNvdW5kOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIHNvdW5kSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBNb2RpZnlHdWlsZFNvdW5kYm9hcmRTb3VuZCxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTb3VuZGJvYXJkU291bmQsIFRQcm9wcywgVEJlaGF2aW9yPj47XG4gIGRlbGV0ZUd1aWxkU291bmRib2FyZFNvdW5kOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBzb3VuZElkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZGVsZXRlTG9iYnk6IChsb2JieUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIHJlbW92ZU1lbWJlckZyb21Mb2JieTogKGxvYmJ5SWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIGxlYXZlTG9iYnk6IChsb2JieUlkOiBCaWdTdHJpbmcsIGJlYXJlclRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG59O1xuIl0sIm5hbWVzIjpbInNuYWtlbGl6ZSIsImNyZWF0ZUJvdEhlbHBlcnMiLCJib3QiLCJjcmVhdGVBdXRvbW9kUnVsZSIsImd1aWxkSWQiLCJvcHRpb25zIiwicmVhc29uIiwidHJhbnNmb3JtZXJzIiwiYXV0b01vZGVyYXRpb25SdWxlIiwicmVzdCIsImNyZWF0ZUNoYW5uZWwiLCJjaGFubmVsIiwiY3JlYXRlRW1vamkiLCJlbW9qaSIsImNyZWF0ZUFwcGxpY2F0aW9uRW1vamkiLCJjcmVhdGVGb3J1bVRocmVhZCIsImNoYW5uZWxJZCIsImNyZWF0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZCIsImNvbW1hbmQiLCJhcHBsaWNhdGlvbkNvbW1hbmQiLCJjcmVhdGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZCIsImNyZWF0ZUd1aWxkU3RpY2tlciIsInN0aWNrZXIiLCJjcmVhdGVHdWlsZFRlbXBsYXRlIiwidGVtcGxhdGUiLCJjcmVhdGVJbnZpdGUiLCJnZXRHdWlsZFJvbGVNZW1iZXJDb3VudHMiLCJjcmVhdGVSb2xlIiwicm9sZSIsImNyZWF0ZVNjaGVkdWxlZEV2ZW50Iiwic2NoZWR1bGVkRXZlbnQiLCJjcmVhdGVTdGFnZUluc3RhbmNlIiwic3RhZ2VJbnN0YW5jZSIsImNyZWF0ZVdlYmhvb2siLCJ3ZWJob29rIiwiZWRpdEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zIiwiY29tbWFuZElkIiwiYmVhcmVyVG9rZW4iLCJndWlsZEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zIiwiZWRpdEF1dG9tb2RSdWxlIiwicnVsZUlkIiwiZWRpdEJvdFByb2ZpbGUiLCJ1c2VyIiwiZWRpdENoYW5uZWwiLCJlZGl0RW1vamkiLCJpZCIsImVkaXRBcHBsaWNhdGlvbkVtb2ppIiwiZWRpdEZvbGxvd3VwTWVzc2FnZSIsInRva2VuIiwibWVzc2FnZUlkIiwibWVzc2FnZSIsImVkaXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQiLCJlZGl0R3VpbGQiLCJndWlsZCIsImVkaXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZCIsImVkaXRHdWlsZFN0aWNrZXIiLCJzdGlja2VySWQiLCJlZGl0R3VpbGRUZW1wbGF0ZSIsInRlbXBsYXRlQ29kZSIsImVkaXRNZXNzYWdlIiwiZWRpdE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSIsImVkaXRSb2xlIiwicm9sZUlkIiwiZWRpdFJvbGVQb3NpdGlvbnMiLCJtYXAiLCJlZGl0U2NoZWR1bGVkRXZlbnQiLCJldmVudElkIiwiZWRpdFN0YWdlSW5zdGFuY2UiLCJ0b3BpYyIsImVkaXRXZWJob29rIiwid2ViaG9va0lkIiwiZWRpdFdlYmhvb2tNZXNzYWdlIiwiZWRpdFdlYmhvb2tXaXRoVG9rZW4iLCJlZGl0V2VsY29tZVNjcmVlbiIsIndlbGNvbWVTY3JlZW4iLCJlZGl0V2lkZ2V0U2V0dGluZ3MiLCJ3aWRnZXRTZXR0aW5ncyIsImV4ZWN1dGVXZWJob29rIiwicmVzdWx0IiwiZm9sbG93QW5ub3VuY2VtZW50Iiwic291cmNlQ2hhbm5lbElkIiwidGFyZ2V0Q2hhbm5lbElkIiwiZ2V0QWN0aXZlVGhyZWFkcyIsInRocmVhZHMiLCJ0aHJlYWQiLCJtZW1iZXJzIiwibWVtYmVyIiwidGhyZWFkTWVtYmVyIiwiZ2V0QXBwbGljYXRpb25JbmZvIiwiYXBwbGljYXRpb24iLCJlZGl0QXBwbGljYXRpb25JbmZvIiwiYm9keSIsImdldEN1cnJlbnRBdXRoZW50aWNhdGlvbkluZm8iLCJleGNoYW5nZVRva2VuIiwiY2xpZW50SWQiLCJjbGllbnRTZWNyZXQiLCJyZXZva2VUb2tlbiIsImdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb24iLCJyZXMiLCJzbmFrZWRSZXMiLCJnZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucyIsImdldEF1ZGl0TG9nIiwiZ2V0QXV0b21vZFJ1bGUiLCJnZXRBdXRvbW9kUnVsZXMiLCJnZXRBdmFpbGFibGVWb2ljZVJlZ2lvbnMiLCJ2b2ljZVJlZ2lvbiIsImdldEJhbiIsInVzZXJJZCIsImdldEJhbnMiLCJnZXRDaGFubmVsIiwiZ2V0Q2hhbm5lbEludml0ZXMiLCJpbnZpdGUiLCJnZXRDaGFubmVscyIsImdldENoYW5uZWxXZWJob29rcyIsImdldERtQ2hhbm5lbCIsImdldEdyb3VwRG1DaGFubmVsIiwiZ2V0RW1vamkiLCJlbW9qaUlkIiwiZ2V0QXBwbGljYXRpb25FbW9qaSIsImdldEVtb2ppcyIsImdldEFwcGxpY2F0aW9uRW1vamlzIiwiaXRlbXMiLCJpdGVtIiwiZ2V0Rm9sbG93dXBNZXNzYWdlIiwiZ2V0R2F0ZXdheUJvdCIsImdhdGV3YXlCb3QiLCJnZXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQiLCJnZXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzIiwiZ2V0R3VpbGQiLCJnZXRHdWlsZHMiLCJwYXJ0aWFsIiwiZ2V0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQiLCJnZXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZHMiLCJnZXRHdWlsZFByZXZpZXciLCJnZXRHdWlsZFN0aWNrZXIiLCJnZXRHdWlsZFN0aWNrZXJzIiwiZ2V0R3VpbGRUZW1wbGF0ZSIsImdldEd1aWxkVGVtcGxhdGVzIiwiZ2V0R3VpbGRXZWJob29rcyIsImdldEludGVncmF0aW9ucyIsImludGVncmF0aW9uIiwidG9TdHJpbmciLCJnZXRJbnZpdGUiLCJpbnZpdGVDb2RlIiwiZ2V0SW52aXRlcyIsImdldE1lc3NhZ2UiLCJnZXRNZXNzYWdlcyIsImdldFN0aWNrZXJQYWNrIiwic3RpY2tlclBhY2tJZCIsInN0aWNrZXJQYWNrIiwiZ2V0U3RpY2tlclBhY2tzIiwiZ2V0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlIiwiZ2V0Q2hhbm5lbFBpbnMiLCJoYXNNb3JlIiwiaGFzX21vcmUiLCJtZXNzYWdlUGluIiwiZ2V0UGlubmVkTWVzc2FnZXMiLCJnZXRQcml2YXRlQXJjaGl2ZWRUaHJlYWRzIiwiZ2V0UHJpdmF0ZUpvaW5lZEFyY2hpdmVkVGhyZWFkcyIsImdldFBydW5lQ291bnQiLCJnZXRQdWJsaWNBcmNoaXZlZFRocmVhZHMiLCJnZXRSb2xlcyIsImdldFJvbGUiLCJnZXRTY2hlZHVsZWRFdmVudCIsImdldFNjaGVkdWxlZEV2ZW50cyIsImdldFNjaGVkdWxlZEV2ZW50VXNlcnMiLCJ1Iiwic25vd2ZsYWtlIiwiZ2V0U2Vzc2lvbkluZm8iLCJnZXRTdGFnZUluc3RhbmNlIiwiZ2V0T3duVm9pY2VTdGF0ZSIsInZvaWNlU3RhdGUiLCJnZXRVc2VyVm9pY2VTdGF0ZSIsImdldFN0aWNrZXIiLCJnZXRUaHJlYWRNZW1iZXIiLCJleHRyYSIsImdldFRocmVhZE1lbWJlcnMiLCJnZXRSZWFjdGlvbnMiLCJyZWFjdGlvbiIsImdldFVzZXIiLCJnZXRDdXJyZW50VXNlciIsImdldFVzZXJDb25uZWN0aW9ucyIsImdldFVzZXJBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uIiwiYXBwbGljYXRpb25JZCIsImdldFZhbml0eVVybCIsImdldFZvaWNlUmVnaW9ucyIsImdldFdlYmhvb2siLCJnZXRXZWJob29rTWVzc2FnZSIsImdldFdlYmhvb2tXaXRoVG9rZW4iLCJnZXRXZWxjb21lU2NyZWVuIiwiZ2V0V2lkZ2V0Iiwid2lkZ2V0IiwiZ2V0V2lkZ2V0U2V0dGluZ3MiLCJwdWJsaXNoTWVzc2FnZSIsInNlYXJjaEd1aWxkTWVzc2FnZXMiLCJtZXNzYWdlcyIsInNlbmRNZXNzYWdlIiwic2VuZEZvbGxvd3VwTWVzc2FnZSIsInN0YXJ0VGhyZWFkV2l0aE1lc3NhZ2UiLCJzdGFydFRocmVhZFdpdGhvdXRNZXNzYWdlIiwic3luY0d1aWxkVGVtcGxhdGUiLCJ1cHNlcnRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzIiwiY29tbWFuZHMiLCJ1cHNlcnRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZHMiLCJlZGl0Q3VycmVudE1lbWJlciIsImVkaXRNZW1iZXIiLCJnZXRDdXJyZW50TWVtYmVyIiwiZ2V0TWVtYmVyIiwiZ2V0TWVtYmVycyIsInBydW5lTWVtYmVycyIsInNlYXJjaE1lbWJlcnMiLCJxdWVyeSIsImJ1bGtCYW5NZW1iZXJzIiwiYmFubmVkVXNlcnMiLCJ4IiwiZmFpbGVkVXNlcnMiLCJnZXRBcHBsaWNhdGlvbkFjdGl2aXR5SW5zdGFuY2UiLCJpbnN0YW5jZUlkIiwibGlzdEFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb25zTWV0YWRhdGFSZWNvcmRzIiwidXBkYXRlQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbnNNZXRhZGF0YVJlY29yZHMiLCJjcmVhdGVMb2JieSIsImxvYmJ5IiwiY3JlYXRlT3JKb2luTG9iYnkiLCJnZXRMb2JieSIsImxvYmJ5SWQiLCJtb2RpZnlMb2JieSIsImFkZE1lbWJlclRvTG9iYnkiLCJsb2JieU1lbWJlciIsImJ1bGtVcGRhdGVMb2JieU1lbWJlcnMiLCJsaW5rQ2hhbm5lbFRvTG9iYnkiLCJ1bmxpbmtDaGFubmVsVG9Mb2JieSIsInVwZGF0ZUxvYmJ5TWVzc2FnZU1vZGVyYXRpb25NZXRhZGF0YSIsInNlbmRMb2JieU1lc3NhZ2UiLCJsb2JieU1lc3NhZ2UiLCJnZXRMb2JieU1lc3NhZ2VzIiwiY3JlYXRlTG9iYnlDaGFubmVsSW52aXRlRm9yU2VsZiIsImxvYmJ5SW52aXRlIiwiY3JlYXRlTG9iYnlDaGFubmVsSW52aXRlRm9yVXNlciIsImdldFRhcmdldFVzZXJzIiwidXBkYXRlVGFyZ2V0VXNlcnMiLCJ0YXJnZXRVc2Vyc0ZpbGUiLCJnZXRUYXJnZXRVc2Vyc0pvYlN0YXR1cyIsImFkZFJlYWN0aW9uIiwiYWRkUmVhY3Rpb25zIiwicmVhY3Rpb25zIiwib3JkZXJlZCIsImFkZFJvbGUiLCJhZGRUaHJlYWRNZW1iZXIiLCJhZGREbVJlY2lwaWVudCIsImFkZEd1aWxkTWVtYmVyIiwiZGVsZXRlQXV0b21vZFJ1bGUiLCJkZWxldGVDaGFubmVsIiwiZGVsZXRlQ2hhbm5lbFBlcm1pc3Npb25PdmVycmlkZSIsIm92ZXJ3cml0ZUlkIiwiZGVsZXRlRW1vamkiLCJkZWxldGVBcHBsaWNhdGlvbkVtb2ppIiwiZGVsZXRlRm9sbG93dXBNZXNzYWdlIiwiZGVsZXRlR2xvYmFsQXBwbGljYXRpb25Db21tYW5kIiwiZGVsZXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQiLCJkZWxldGVHdWlsZFN0aWNrZXIiLCJkZWxldGVHdWlsZFRlbXBsYXRlIiwiZGVsZXRlSW50ZWdyYXRpb24iLCJpbnRlZ3JhdGlvbklkIiwiZGVsZXRlSW52aXRlIiwiZGVsZXRlTWVzc2FnZSIsImRlbGV0ZU1lc3NhZ2VzIiwibWVzc2FnZUlkcyIsImRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSIsImRlbGV0ZU93blJlYWN0aW9uIiwiZGVsZXRlUmVhY3Rpb25zQWxsIiwiZGVsZXRlUmVhY3Rpb25zRW1vamkiLCJkZWxldGVSb2xlIiwiZGVsZXRlU2NoZWR1bGVkRXZlbnQiLCJkZWxldGVTdGFnZUluc3RhbmNlIiwiZGVsZXRlVXNlclJlYWN0aW9uIiwiZGVsZXRlV2ViaG9vayIsImRlbGV0ZVdlYmhvb2tNZXNzYWdlIiwiZGVsZXRlV2ViaG9va1dpdGhUb2tlbiIsImVkaXRDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlcyIsImVkaXRDaGFubmVsUG9zaXRpb25zIiwiY2hhbm5lbFBvc2l0aW9ucyIsImVkaXRPd25Wb2ljZVN0YXRlIiwiZWRpdFVzZXJWb2ljZVN0YXRlIiwiZWRpdFVzZXJBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uIiwiZGVsZXRlQ3VycmVudFVzZXJBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uIiwiam9pblRocmVhZCIsImxlYXZlR3VpbGQiLCJsZWF2ZVRocmVhZCIsInJlbW92ZVJvbGUiLCJyZW1vdmVUaHJlYWRNZW1iZXIiLCJyZW1vdmVEbVJlY2lwaWVudCIsInNlbmRJbnRlcmFjdGlvblJlc3BvbnNlIiwiaW50ZXJhY3Rpb25JZCIsInBhcmFtcyIsInJlc3BvbnNlIiwiaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlIiwidHJpZ2dlclR5cGluZ0luZGljYXRvciIsImJhbk1lbWJlciIsImtpY2tNZW1iZXIiLCJwaW5NZXNzYWdlIiwidW5iYW5NZW1iZXIiLCJ1bnBpbk1lc3NhZ2UiLCJnZXRHdWlsZE9uYm9hcmRpbmciLCJndWlsZE9uYm9hcmRpbmciLCJlZGl0R3VpbGRPbmJvYXJkaW5nIiwibGlzdEVudGl0bGVtZW50cyIsImVudGl0bGVtZW50IiwiZ2V0RW50aXRsZW1lbnQiLCJlbnRpdGxlbWVudElkIiwiY3JlYXRlVGVzdEVudGl0bGVtZW50IiwiZGVsZXRlVGVzdEVudGl0bGVtZW50IiwibGlzdFNrdXMiLCJza3UiLCJnZXRTdWJzY3JpcHRpb24iLCJza3VJZCIsInN1YnNjcmlwdGlvbklkIiwic3Vic2NyaXB0aW9uIiwibGlzdFN1YnNjcmlwdGlvbnMiLCJzZW5kU291bmRib2FyZFNvdW5kIiwibGlzdERlZmF1bHRTb3VuZGJvYXJkU291bmRzIiwic291bmQiLCJzb3VuZGJvYXJkU291bmQiLCJsaXN0R3VpbGRTb3VuZGJvYXJkU291bmRzIiwiZ2V0R3VpbGRTb3VuZGJvYXJkU291bmQiLCJzb3VuZElkIiwiY3JlYXRlR3VpbGRTb3VuZGJvYXJkU291bmQiLCJtb2RpZnlHdWlsZFNvdW5kYm9hcmRTb3VuZCIsImRlbGV0ZUd1aWxkU291bmRib2FyZFNvdW5k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
|