@discordeno/bot 20.0.0 → 21.0.0-next.0efc454

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/cjs/bot.cjs +1 -1
  2. package/dist/cjs/commandOptionsParser.cjs +2 -2
  3. package/dist/cjs/desiredProperties.cjs +10 -1
  4. package/dist/cjs/helpers.cjs +7 -1
  5. package/dist/cjs/transformers/guild.cjs +2 -1
  6. package/dist/cjs/transformers/incidentsData.cjs +21 -0
  7. package/dist/cjs/transformers/index.cjs +4 -3
  8. package/dist/cjs/transformers/interaction.cjs +3 -3
  9. package/dist/cjs/transformers/subscription.cjs +2 -1
  10. package/dist/cjs/transformers.cjs +4 -1
  11. package/dist/esm/bot.js +2 -7
  12. package/dist/esm/commandOptionsParser.js +2 -2
  13. package/dist/esm/desiredProperties.js +10 -1
  14. package/dist/esm/events.js +1 -1
  15. package/dist/esm/helpers.js +7 -1
  16. package/dist/esm/transformers/guild.js +2 -1
  17. package/dist/esm/transformers/incidentsData.js +11 -0
  18. package/dist/esm/transformers/index.js +5 -4
  19. package/dist/esm/transformers/interaction.js +3 -3
  20. package/dist/esm/transformers/subscription.js +2 -1
  21. package/dist/esm/transformers/types.js +1 -1
  22. package/dist/esm/transformers.js +4 -1
  23. package/dist/types/bot.d.ts +1 -0
  24. package/dist/types/bot.d.ts.map +1 -1
  25. package/dist/types/commandOptionsParser.d.ts +11 -2
  26. package/dist/types/commandOptionsParser.d.ts.map +1 -1
  27. package/dist/types/desiredProperties.d.ts +3 -2
  28. package/dist/types/desiredProperties.d.ts.map +1 -1
  29. package/dist/types/events.d.ts +51 -52
  30. package/dist/types/events.d.ts.map +1 -1
  31. package/dist/types/helpers.d.ts +100 -97
  32. package/dist/types/helpers.d.ts.map +1 -1
  33. package/dist/types/transformers/guild.d.ts.map +1 -1
  34. package/dist/types/transformers/incidentsData.d.ts +4 -0
  35. package/dist/types/transformers/incidentsData.d.ts.map +1 -0
  36. package/dist/types/transformers/index.d.ts +4 -3
  37. package/dist/types/transformers/index.d.ts.map +1 -1
  38. package/dist/types/transformers/subscription.d.ts.map +1 -1
  39. package/dist/types/transformers/types.d.ts +16 -2
  40. package/dist/types/transformers/types.d.ts.map +1 -1
  41. package/dist/types/transformers.d.ts +156 -154
  42. package/dist/types/transformers.d.ts.map +1 -1
  43. package/package.json +23 -18
@@ -549,6 +549,12 @@ export function createBotHelpers(bot) {
549
549
  getApplicationActivityInstance: async (applicationId, instanceId)=>{
550
550
  return await bot.rest.getApplicationActivityInstance(applicationId, instanceId);
551
551
  },
552
+ listApplicationRoleConnectionsMetadataRecords: async (applicationId)=>{
553
+ return await bot.rest.listApplicationRoleConnectionsMetadataRecords(applicationId);
554
+ },
555
+ updateApplicationRoleConnectionsMetadataRecords: async (applicationId, options)=>{
556
+ return await bot.rest.updateApplicationRoleConnectionsMetadataRecords(applicationId, options);
557
+ },
552
558
  // All useless void return functions here
553
559
  addReaction: async (channelId, messageId, reaction)=>{
554
560
  return await bot.rest.addReaction(channelId, messageId, reaction);
@@ -763,4 +769,4 @@ export function createBotHelpers(bot) {
763
769
  };
764
770
  }
765
771
 
766
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQWRkRG1SZWNpcGllbnRPcHRpb25zLFxuICBBZGRHdWlsZE1lbWJlck9wdGlvbnMsXG4gIEF0TGVhc3RPbmUsXG4gIEJlZ2luR3VpbGRQcnVuZSxcbiAgQmlnU3RyaW5nLFxuICBDYW1lbGl6ZSxcbiAgQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kLFxuICBDcmVhdGVBcHBsaWNhdGlvbkVtb2ppLFxuICBDcmVhdGVBdXRvTW9kZXJhdGlvblJ1bGVPcHRpb25zLFxuICBDcmVhdGVDaGFubmVsSW52aXRlLFxuICBDcmVhdGVFbnRpdGxlbWVudCxcbiAgQ3JlYXRlRm9ydW1Qb3N0V2l0aE1lc3NhZ2UsXG4gIENyZWF0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMsXG4gIENyZWF0ZUd1aWxkLFxuICBDcmVhdGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMsXG4gIENyZWF0ZUd1aWxkQmFuLFxuICBDcmVhdGVHdWlsZEJ1bGtCYW4sXG4gIENyZWF0ZUd1aWxkQ2hhbm5lbCxcbiAgQ3JlYXRlR3VpbGRFbW9qaSxcbiAgQ3JlYXRlR3VpbGRGcm9tVGVtcGxhdGUsXG4gIENyZWF0ZUd1aWxkUm9sZSxcbiAgQ3JlYXRlR3VpbGRTb3VuZGJvYXJkU291bmQsXG4gIENyZWF0ZUd1aWxkU3RpY2tlck9wdGlvbnMsXG4gIENyZWF0ZU1lc3NhZ2VPcHRpb25zLFxuICBDcmVhdGVTY2hlZHVsZWRFdmVudCxcbiAgQ3JlYXRlU3RhZ2VJbnN0YW5jZSxcbiAgQ3JlYXRlVGVtcGxhdGUsXG4gIENyZWF0ZVdlYmhvb2ssXG4gIERlbGV0ZVdlYmhvb2tNZXNzYWdlT3B0aW9ucyxcbiAgRGlzY29yZEFjY2Vzc1Rva2VuUmVzcG9uc2UsXG4gIERpc2NvcmRBY3Rpdml0eUluc3RhbmNlLFxuICBEaXNjb3JkQXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnMsXG4gIERpc2NvcmRBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uLFxuICBEaXNjb3JkQXJjaGl2ZWRUaHJlYWRzLFxuICBEaXNjb3JkQXVkaXRMb2csXG4gIERpc2NvcmRCYW4sXG4gIERpc2NvcmRDb25uZWN0aW9uLFxuICBEaXNjb3JkQ3VycmVudEF1dGhvcml6YXRpb24sXG4gIERpc2NvcmRGb2xsb3dlZENoYW5uZWwsXG4gIERpc2NvcmRHZXRHYXRld2F5Qm90LFxuICBEaXNjb3JkR3VpbGRQcmV2aWV3LFxuICBEaXNjb3JkR3VpbGRXaWRnZXRTZXR0aW5ncyxcbiAgRGlzY29yZEludml0ZSxcbiAgRGlzY29yZEludml0ZU1ldGFkYXRhLFxuICBEaXNjb3JkTWVzc2FnZSxcbiAgRGlzY29yZE1vZGlmeUd1aWxkV2VsY29tZVNjcmVlbixcbiAgRGlzY29yZFBydW5lZENvdW50LFxuICBEaXNjb3JkVG9rZW5FeGNoYW5nZSxcbiAgRGlzY29yZFRva2VuUmV2b2NhdGlvbixcbiAgRGlzY29yZFZhbml0eVVybCxcbiAgRGlzY29yZFZvaWNlUmVnaW9uLFxuICBFZGl0QXBwbGljYXRpb24sXG4gIEVkaXRBdXRvTW9kZXJhdGlvblJ1bGVPcHRpb25zLFxuICBFZGl0Qm90TWVtYmVyT3B0aW9ucyxcbiAgRWRpdENoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGVzT3B0aW9ucyxcbiAgRWRpdEd1aWxkT25ib2FyZGluZyxcbiAgRWRpdEd1aWxkUm9sZSxcbiAgRWRpdEd1aWxkU3RpY2tlck9wdGlvbnMsXG4gIEVkaXRNZXNzYWdlLFxuICBFZGl0T3duVm9pY2VTdGF0ZSxcbiAgRWRpdFNjaGVkdWxlZEV2ZW50LFxuICBFZGl0VXNlclZvaWNlU3RhdGUsXG4gIEV4ZWN1dGVXZWJob29rLFxuICBHZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uT3B0aW9ucyxcbiAgR2V0QmFucyxcbiAgR2V0RW50aXRsZW1lbnRzLFxuICBHZXRHcm91cERtT3B0aW9ucyxcbiAgR2V0R3VpbGRBdWRpdExvZyxcbiAgR2V0R3VpbGRQcnVuZUNvdW50UXVlcnksXG4gIEdldEludml0ZSxcbiAgR2V0TWVzc2FnZXNPcHRpb25zLFxuICBHZXRSZWFjdGlvbnMsXG4gIEdldFNjaGVkdWxlZEV2ZW50VXNlcnMsXG4gIEdldFNjaGVkdWxlZEV2ZW50cyxcbiAgR2V0VXNlckd1aWxkcyxcbiAgR2V0V2ViaG9va01lc3NhZ2VPcHRpb25zLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrRGF0YSxcbiAgSW50ZXJhY3Rpb25DYWxsYmFja09wdGlvbnMsXG4gIEludGVyYWN0aW9uUmVzcG9uc2UsXG4gIExpc3RBcmNoaXZlZFRocmVhZHMsXG4gIExpc3RHdWlsZE1lbWJlcnMsXG4gIExpc3RTa3VTdWJzY3JpcHRpb25zT3B0aW9ucyxcbiAgTWZhTGV2ZWxzLFxuICBNb2RpZnlBcHBsaWNhdGlvbkVtb2ppLFxuICBNb2RpZnlDaGFubmVsLFxuICBNb2RpZnlHdWlsZCxcbiAgTW9kaWZ5R3VpbGRDaGFubmVsUG9zaXRpb25zLFxuICBNb2RpZnlHdWlsZEVtb2ppLFxuICBNb2RpZnlHdWlsZE1lbWJlcixcbiAgTW9kaWZ5R3VpbGRTb3VuZGJvYXJkU291bmQsXG4gIE1vZGlmeUd1aWxkVGVtcGxhdGUsXG4gIE1vZGlmeVJvbGVQb3NpdGlvbnMsXG4gIE1vZGlmeVdlYmhvb2ssXG4gIFNlYXJjaE1lbWJlcnMsXG4gIFNlbmRTb3VuZGJvYXJkU291bmQsXG4gIFN0YXJ0VGhyZWFkV2l0aE1lc3NhZ2UsXG4gIFN0YXJ0VGhyZWFkV2l0aG91dE1lc3NhZ2UsXG4gIFVwc2VydEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMsXG4gIFVwc2VydEd1aWxkQXBwbGljYXRpb25Db21tYW5kT3B0aW9ucyxcbn0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBzbmFrZWxpemUgfSBmcm9tICdAZGlzY29yZGVuby91dGlscydcbmltcG9ydCB0eXBlIHsgQm90IH0gZnJvbSAnLi9ib3QuanMnXG5pbXBvcnQgdHlwZSB7IERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3IsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzIH0gZnJvbSAnLi9kZXNpcmVkUHJvcGVydGllcy5qcydcbmltcG9ydCB0eXBlIHtcbiAgQXBwbGljYXRpb24sXG4gIEFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgQXV0b01vZGVyYXRpb25SdWxlLFxuICBHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zLFxuICBHdWlsZFdpZGdldCxcbiAgR3VpbGRXaWRnZXRTZXR0aW5ncyxcbiAgSW50ZWdyYXRpb24sXG4gIFN0aWNrZXJQYWNrLFxuICBUZW1wbGF0ZSxcbiAgVGhyZWFkTWVtYmVyLFxuICBXZWxjb21lU2NyZWVuLFxufSBmcm9tICcuL3RyYW5zZm9ybWVycy9pbmRleC5qcydcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJvdEhlbHBlcnM8VFByb3BzIGV4dGVuZHMgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIFRCZWhhdmlvciBleHRlbmRzIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+KFxuICBib3Q6IEJvdDxUUHJvcHMsIFRCZWhhdmlvcj4sXG4pOiBCb3RIZWxwZXJzPFRQcm9wcywgVEJlaGF2aW9yPiB7XG4gIHJldHVybiB7XG4gICAgY3JlYXRlQXV0b21vZFJ1bGU6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmF1dG9tb2RSdWxlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUF1dG9tb2RSdWxlKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgY3JlYXRlQ2hhbm5lbDogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUNoYW5uZWwoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSksIGd1aWxkSWQgfSlcbiAgICB9LFxuICAgIGNyZWF0ZUVtb2ppOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVFbW9qaShndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGNyZWF0ZUFwcGxpY2F0aW9uRW1vamk6IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVBcHBsaWNhdGlvbkVtb2ppKG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGNyZWF0ZUZvcnVtVGhyZWFkOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVGb3J1bVRocmVhZChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikpIH0pXG4gICAgfSxcbiAgICBjcmVhdGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQ6IGFzeW5jIChjb21tYW5kLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlR2xvYmFsQXBwbGljYXRpb25Db21tYW5kKGNvbW1hbmQsIG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGNyZWF0ZUd1aWxkOiBhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGQoYm90LCB7IGd1aWxkOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlR3VpbGQob3B0aW9ucykpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBjcmVhdGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZDogYXN5bmMgKGNvbW1hbmQsIGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZChjb21tYW5kLCBndWlsZElkLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBjcmVhdGVHdWlsZEZyb21UZW1wbGF0ZTogYXN5bmMgKHRlbXBsYXRlQ29kZSwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGQoYm90LCB7IGd1aWxkOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlR3VpbGRGcm9tVGVtcGxhdGUodGVtcGxhdGVDb2RlLCBvcHRpb25zKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIGNyZWF0ZUd1aWxkU3RpY2tlcjogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3RpY2tlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVHdWlsZFN0aWNrZXIoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBjcmVhdGVHdWlsZFRlbXBsYXRlOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudGVtcGxhdGUoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlR3VpbGRUZW1wbGF0ZShndWlsZElkLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBjcmVhdGVJbnZpdGU6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUludml0ZShjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbilcbiAgICB9LFxuICAgIGNyZWF0ZVJvbGU6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnJvbGUoYm90LCB7IHJvbGU6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVSb2xlKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpLCBndWlsZElkIH0pXG4gICAgfSxcbiAgICBjcmVhdGVTY2hlZHVsZWRFdmVudDogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc2NoZWR1bGVkRXZlbnQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlU2NoZWR1bGVkRXZlbnQoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBjcmVhdGVTdGFnZUluc3RhbmNlOiBhc3luYyAob3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zdGFnZUluc3RhbmNlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZVN0YWdlSW5zdGFuY2Uob3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBjcmVhdGVXZWJob29rOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlYmhvb2soYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlV2ViaG9vayhjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgZWRpdEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zOiBhc3luYyAoZ3VpbGRJZCwgY29tbWFuZElkLCBiZWFyZXJUb2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbihcbiAgICAgICAgYm90LFxuICAgICAgICBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zKGd1aWxkSWQsIGNvbW1hbmRJZCwgYmVhcmVyVG9rZW4sIG9wdGlvbnMpKSxcbiAgICAgIClcbiAgICB9LFxuICAgIGVkaXRBdXRvbW9kUnVsZTogYXN5bmMgKGd1aWxkSWQsIHJ1bGVJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hdXRvbW9kUnVsZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0QXV0b21vZFJ1bGUoZ3VpbGRJZCwgcnVsZUlkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGVkaXRCb3RQcm9maWxlOiBhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0Qm90UHJvZmlsZShvcHRpb25zKSkpXG4gICAgfSxcbiAgICBlZGl0Q2hhbm5lbDogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdENoYW5uZWwoY2hhbm5lbElkLCBvcHRpb25zLCByZWFzb24pKSB9KVxuICAgIH0sXG4gICAgZWRpdEVtb2ppOiBhc3luYyAoZ3VpbGRJZCwgaWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEVtb2ppKGd1aWxkSWQsIGlkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGVkaXRBcHBsaWNhdGlvbkVtb2ppOiBhc3luYyAoaWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRBcHBsaWNhdGlvbkVtb2ppKGlkLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBlZGl0Rm9sbG93dXBNZXNzYWdlOiBhc3luYyAodG9rZW4sIG1lc3NhZ2VJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRGb2xsb3d1cE1lc3NhZ2UodG9rZW4sIG1lc3NhZ2VJZCwgb3B0aW9ucykpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBlZGl0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kOiBhc3luYyAoY29tbWFuZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZChjb21tYW5kSWQsIG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGVkaXRHdWlsZDogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGQoYm90LCB7IGd1aWxkOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEd1aWxkKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBlZGl0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQ6IGFzeW5jIChjb21tYW5kSWQsIGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQoY29tbWFuZElkLCBndWlsZElkLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBlZGl0R3VpbGRTdGlja2VyOiBhc3luYyAoZ3VpbGRJZCwgc3RpY2tlcklkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnN0aWNrZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEd1aWxkU3RpY2tlcihndWlsZElkLCBzdGlja2VySWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgZWRpdEd1aWxkVGVtcGxhdGU6IGFzeW5jIChndWlsZElkLCB0ZW1wbGF0ZUNvZGUsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnRlbXBsYXRlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRHdWlsZFRlbXBsYXRlKGd1aWxkSWQsIHRlbXBsYXRlQ29kZSwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgZWRpdE1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHtcbiAgICAgICAgbWVzc2FnZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRNZXNzYWdlKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCBvcHRpb25zKSkgYXMgRGlzY29yZE1lc3NhZ2UsXG4gICAgICAgIHNoYXJkSWQ6IDAsXG4gICAgICB9KVxuICAgIH0sXG4gICAgZWRpdE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZTogYXN5bmMgKHRva2VuLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSh0b2tlbiwgb3B0aW9ucykpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBlZGl0T3JpZ2luYWxXZWJob29rTWVzc2FnZTogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4sIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7XG4gICAgICAgIG1lc3NhZ2U6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0T3JpZ2luYWxXZWJob29rTWVzc2FnZSh3ZWJob29rSWQsIHRva2VuLCBvcHRpb25zKSkgYXMgRGlzY29yZE1lc3NhZ2UsXG4gICAgICAgIHNoYXJkSWQ6IDAsXG4gICAgICB9KVxuICAgIH0sXG4gICAgZWRpdFJvbGU6IGFzeW5jIChndWlsZElkLCByb2xlSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHsgcm9sZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRSb2xlKGd1aWxkSWQsIHJvbGVJZCwgb3B0aW9ucywgcmVhc29uKSksIGd1aWxkSWQgfSlcbiAgICB9LFxuICAgIGVkaXRSb2xlUG9zaXRpb25zOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRSb2xlUG9zaXRpb25zKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpLm1hcCgocm9sZSkgPT4gYm90LnRyYW5zZm9ybWVycy5yb2xlKGJvdCwgeyByb2xlLCBndWlsZElkIH0pKVxuICAgIH0sXG4gICAgZWRpdFNjaGVkdWxlZEV2ZW50OiBhc3luYyAoZ3VpbGRJZCwgZXZlbnRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zY2hlZHVsZWRFdmVudChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0U2NoZWR1bGVkRXZlbnQoZ3VpbGRJZCwgZXZlbnRJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBlZGl0U3RhZ2VJbnN0YW5jZTogYXN5bmMgKGNoYW5uZWxJZCwgdG9waWMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3RhZ2VJbnN0YW5jZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0U3RhZ2VJbnN0YW5jZShjaGFubmVsSWQsIHRvcGljLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGVkaXRXZWJob29rOiBhc3luYyAod2ViaG9va0lkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlYmhvb2soYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdFdlYmhvb2sod2ViaG9va0lkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGVkaXRXZWJob29rTWVzc2FnZTogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4sIG1lc3NhZ2VJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHtcbiAgICAgICAgbWVzc2FnZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRXZWJob29rTWVzc2FnZSh3ZWJob29rSWQsIHRva2VuLCBtZXNzYWdlSWQsIG9wdGlvbnMpKSBhcyBEaXNjb3JkTWVzc2FnZSxcbiAgICAgICAgc2hhcmRJZDogMCxcbiAgICAgIH0pXG4gICAgfSxcbiAgICBlZGl0V2ViaG9va1dpdGhUb2tlbjogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4sIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlYmhvb2soYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdFdlYmhvb2tXaXRoVG9rZW4od2ViaG9va0lkLCB0b2tlbiwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgZWRpdFdlbGNvbWVTY3JlZW46IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlbGNvbWVTY3JlZW4oYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdFdlbGNvbWVTY3JlZW4oZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBlZGl0V2lkZ2V0U2V0dGluZ3M6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndpZGdldFNldHRpbmdzKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRXaWRnZXRTZXR0aW5ncyhndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGV4ZWN1dGVXZWJob29rOiBhc3luYyAod2ViaG9va0lkLCB0b2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYm90LnJlc3QuZXhlY3V0ZVdlYmhvb2sod2ViaG9va0lkLCB0b2tlbiwgb3B0aW9ucylcbiAgICAgIGlmICghcmVzdWx0KSByZXR1cm5cblxuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogc25ha2VsaXplKHJlc3VsdCkgYXMgRGlzY29yZE1lc3NhZ2UsIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIGZvbGxvd0Fubm91bmNlbWVudDogYXN5bmMgKHNvdXJjZUNoYW5uZWxJZCwgdGFyZ2V0Q2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZm9sbG93QW5ub3VuY2VtZW50KHNvdXJjZUNoYW5uZWxJZCwgdGFyZ2V0Q2hhbm5lbElkKVxuICAgIH0sXG4gICAgZ2V0QWN0aXZlVGhyZWFkczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGJvdC5yZXN0LmdldEFjdGl2ZVRocmVhZHMoZ3VpbGRJZClcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRocmVhZHM6IHJlc3VsdC50aHJlYWRzLm1hcCgodGhyZWFkKSA9PiBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGd1aWxkSWQsIGNoYW5uZWw6IHNuYWtlbGl6ZSh0aHJlYWQpIH0pKSxcbiAgICAgICAgbWVtYmVyczogcmVzdWx0Lm1lbWJlcnMubWFwKChtZW1iZXIpID0+IGJvdC50cmFuc2Zvcm1lcnMudGhyZWFkTWVtYmVyKGJvdCwgc25ha2VsaXplKG1lbWJlcikpKSxcbiAgICAgIH1cbiAgICB9LFxuICAgIGdldEFwcGxpY2F0aW9uSW5mbzogYXN5bmMgKCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb24oYm90LCB7IGFwcGxpY2F0aW9uOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0QXBwbGljYXRpb25JbmZvKCkpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBlZGl0QXBwbGljYXRpb25JbmZvOiBhc3luYyAoYm9keSkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb24oYm90LCB7IGFwcGxpY2F0aW9uOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEFwcGxpY2F0aW9uSW5mbyhib2R5KSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIGdldEN1cnJlbnRBdXRoZW50aWNhdGlvbkluZm86IGFzeW5jIChiZWFyZXJUb2tlbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldEN1cnJlbnRBdXRoZW50aWNhdGlvbkluZm8oYmVhcmVyVG9rZW4pXG4gICAgfSxcbiAgICBleGNoYW5nZVRva2VuOiBhc3luYyAoY2xpZW50SWQsIGNsaWVudFNlY3JldCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmV4Y2hhbmdlVG9rZW4oY2xpZW50SWQsIGNsaWVudFNlY3JldCwgb3B0aW9ucylcbiAgICB9LFxuICAgIHJldm9rZVRva2VuOiBhc3luYyAoY2xpZW50SWQsIGNsaWVudFNlY3JldCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LnJldm9rZVRva2VuKGNsaWVudElkLCBjbGllbnRTZWNyZXQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBnZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uOiBhc3luYyAoZ3VpbGRJZCwgY29tbWFuZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBib3QucmVzdC5nZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uKGd1aWxkSWQsIGNvbW1hbmRJZCwgb3B0aW9ucylcbiAgICAgIGNvbnN0IHNuYWtlZFJlcyA9IHNuYWtlbGl6ZShyZXMpXG5cbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb24oYm90LCBzbmFrZWRSZXMpXG4gICAgfSxcbiAgICBnZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uczogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnMoZ3VpbGRJZCwgb3B0aW9ucykpLm1hcCgocmVzKSA9PlxuICAgICAgICBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb24oYm90LCBzbmFrZWxpemUocmVzKSksXG4gICAgICApXG4gICAgfSxcbiAgICBnZXRBdWRpdExvZzogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRBdWRpdExvZyhndWlsZElkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgZ2V0QXV0b21vZFJ1bGU6IGFzeW5jIChndWlsZElkLCBydWxlSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmF1dG9tb2RSdWxlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEF1dG9tb2RSdWxlKGd1aWxkSWQsIHJ1bGVJZCkpKVxuICAgIH0sXG4gICAgZ2V0QXV0b21vZFJ1bGVzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRBdXRvbW9kUnVsZXMoZ3VpbGRJZCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLmF1dG9tb2RSdWxlKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0QXZhaWxhYmxlVm9pY2VSZWdpb25zOiBhc3luYyAoKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldEF2YWlsYWJsZVZvaWNlUmVnaW9ucygpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy52b2ljZVJlZ2lvbihib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldEJhbjogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldEJhbihndWlsZElkLCB1c2VySWQpXG4gICAgfSxcbiAgICBnZXRCYW5zOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldEJhbnMoZ3VpbGRJZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGdldENoYW5uZWw6IGFzeW5jIChjaGFubmVsSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRDaGFubmVsKGNoYW5uZWxJZCkpIH0pXG4gICAgfSxcbiAgICBnZXRDaGFubmVsSW52aXRlczogYXN5bmMgKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldENoYW5uZWxJbnZpdGVzKGNoYW5uZWxJZClcbiAgICAgIC8vIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0Q2hhbm5lbEludml0ZXMoY2hhbm5lbElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuaW52aXRlKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0Q2hhbm5lbHM6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldENoYW5uZWxzKGd1aWxkSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBzbmFrZWxpemUocmVzKSwgZ3VpbGRJZCB9KSlcbiAgICB9LFxuICAgIGdldENoYW5uZWxXZWJob29rczogYXN5bmMgKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRDaGFubmVsV2ViaG9va3MoY2hhbm5lbElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMud2ViaG9vayhib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldERtQ2hhbm5lbDogYXN5bmMgKHVzZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldERtQ2hhbm5lbCh1c2VySWQpKSB9KVxuICAgIH0sXG4gICAgZ2V0R3JvdXBEbUNoYW5uZWw6IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R3JvdXBEbUNoYW5uZWwob3B0aW9ucykpIH0pXG4gICAgfSxcbiAgICBnZXRFbW9qaTogYXN5bmMgKGd1aWxkSWQsIGVtb2ppSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEVtb2ppKGd1aWxkSWQsIGVtb2ppSWQpKSlcbiAgICB9LFxuICAgIGdldEFwcGxpY2F0aW9uRW1vamk6IGFzeW5jIChlbW9qaUlkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRBcHBsaWNhdGlvbkVtb2ppKGVtb2ppSWQpKSlcbiAgICB9LFxuICAgIGdldEVtb2ppczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0RW1vamlzKGd1aWxkSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldEFwcGxpY2F0aW9uRW1vamlzOiBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBib3QucmVzdC5nZXRBcHBsaWNhdGlvbkVtb2ppcygpXG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGl0ZW1zOiByZXMuaXRlbXMubWFwKChpdGVtKSA9PiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgc25ha2VsaXplKGl0ZW0pKSksXG4gICAgICB9XG4gICAgfSxcbiAgICBnZXRGb2xsb3d1cE1lc3NhZ2U6IGFzeW5jICh0b2tlbiwgbWVzc2FnZUlkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0Rm9sbG93dXBNZXNzYWdlKHRva2VuLCBtZXNzYWdlSWQpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgZ2V0R2F0ZXdheUJvdDogYXN5bmMgKCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZ2F0ZXdheUJvdChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRHYXRld2F5Qm90KCkpKVxuICAgIH0sXG4gICAgZ2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kOiBhc3luYyAoY29tbWFuZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kKGNvbW1hbmRJZCkpKVxuICAgIH0sXG4gICAgZ2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kczogYXN5bmMgKCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzKCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldEd1aWxkOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGQoYm90LCB7IGd1aWxkOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGQoZ3VpbGRJZCwgb3B0aW9ucykpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBnZXRHdWlsZHM6IGFzeW5jIChiZWFyZXJUb2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRHdWlsZHMoYmVhcmVyVG9rZW4sIG9wdGlvbnMpKS5tYXA8UGFydGlhbDx0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5ndWlsZD4+KChyZXMpID0+XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgZ2V0R3VpbGRzIHJldHVybnMgcGFydGlhbCBndWlsZHNcbiAgICAgICAgYm90LnRyYW5zZm9ybWVycy5ndWlsZChib3QsIHsgZ3VpbGQ6IHNuYWtlbGl6ZShyZXMpLCBzaGFyZElkOiAwIH0pLFxuICAgICAgKVxuICAgIH0sXG4gICAgZ2V0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQ6IGFzeW5jIChjb21tYW5kSWQsIGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZChjb21tYW5kSWQsIGd1aWxkSWQpKSlcbiAgICB9LFxuICAgIGdldEd1aWxkQXBwbGljYXRpb25Db21tYW5kczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRzKGd1aWxkSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRHdWlsZFByZXZpZXc6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRQcmV2aWV3KGd1aWxkSWQpXG4gICAgICAvLyByZXR1cm4gYm90LnRyYW5zZm9ybWVycy54eHgoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRQcmV2aWV3KGd1aWxkSWQpKSlcbiAgICB9LFxuICAgIGdldEd1aWxkU3RpY2tlcjogYXN5bmMgKGd1aWxkSWQsIHN0aWNrZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3RpY2tlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRHdWlsZFN0aWNrZXIoZ3VpbGRJZCwgc3RpY2tlcklkKSkpXG4gICAgfSxcbiAgICBnZXRHdWlsZFN0aWNrZXJzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRHdWlsZFN0aWNrZXJzKGd1aWxkSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5zdGlja2VyKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0R3VpbGRUZW1wbGF0ZTogYXN5bmMgKHRlbXBsYXRlQ29kZSkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudGVtcGxhdGUoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRUZW1wbGF0ZSh0ZW1wbGF0ZUNvZGUpKSlcbiAgICB9LFxuICAgIGdldEd1aWxkVGVtcGxhdGVzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRHdWlsZFRlbXBsYXRlcyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMudGVtcGxhdGUoYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRHdWlsZFdlYmhvb2tzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRHdWlsZFdlYmhvb2tzKGd1aWxkSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy53ZWJob29rKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0SW50ZWdyYXRpb25zOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRJbnRlZ3JhdGlvbnMoZ3VpbGRJZCkpLm1hcCgocmVzKSA9PlxuICAgICAgICBib3QudHJhbnNmb3JtZXJzLmludGVncmF0aW9uKGJvdCwgc25ha2VsaXplKHsgLi4ucmVzLCBndWlsZElkOiBndWlsZElkLnRvU3RyaW5nKCkgfSkpLFxuICAgICAgKVxuICAgIH0sXG4gICAgZ2V0SW52aXRlOiBhc3luYyAoaW52aXRlQ29kZSwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuaW52aXRlKGJvdCwgeyBpbnZpdGU6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRJbnZpdGUoaW52aXRlQ29kZSwgb3B0aW9ucykpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBnZXRJbnZpdGVzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRJbnZpdGVzKGd1aWxkSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5pbnZpdGUoYm90LCB7IGludml0ZTogc25ha2VsaXplKHJlcyksIHNoYXJkSWQ6IDAgfSkpXG4gICAgfSxcbiAgICBnZXRNZXNzYWdlOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRNZXNzYWdlKGNoYW5uZWxJZCwgbWVzc2FnZUlkKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIGdldE1lc3NhZ2VzOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldE1lc3NhZ2VzKGNoYW5uZWxJZCwgb3B0aW9ucykpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHNuYWtlbGl6ZShyZXMpLCBzaGFyZElkOiAwIH0pKVxuICAgIH0sXG4gICAgZ2V0U3RpY2tlclBhY2s6IGFzeW5jIChzdGlja2VyUGFja0lkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zdGlja2VyUGFjayhib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRTdGlja2VyUGFjayhzdGlja2VyUGFja0lkKSkpXG4gICAgfSxcbiAgICBnZXRTdGlja2VyUGFja3M6IGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0U3RpY2tlclBhY2tzKCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLnN0aWNrZXJQYWNrKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlOiBhc3luYyAodG9rZW4pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UodG9rZW4pKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgZ2V0UGlubmVkTWVzc2FnZXM6IGFzeW5jIChjaGFubmVsSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0UGlubmVkTWVzc2FnZXMoY2hhbm5lbElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogc25ha2VsaXplKHJlcyksIHNoYXJkSWQ6IDAgfSkpXG4gICAgfSxcbiAgICBnZXRQcml2YXRlQXJjaGl2ZWRUaHJlYWRzOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0UHJpdmF0ZUFyY2hpdmVkVGhyZWFkcyhjaGFubmVsSWQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBnZXRQcml2YXRlSm9pbmVkQXJjaGl2ZWRUaHJlYWRzOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0UHJpdmF0ZUpvaW5lZEFyY2hpdmVkVGhyZWFkcyhjaGFubmVsSWQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBnZXRQcnVuZUNvdW50OiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldFBydW5lQ291bnQoZ3VpbGRJZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGdldFB1YmxpY0FyY2hpdmVkVGhyZWFkczogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldFB1YmxpY0FyY2hpdmVkVGhyZWFkcyhjaGFubmVsSWQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBnZXRSb2xlczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0Um9sZXMoZ3VpbGRJZCkpLm1hcCgocm9sZSkgPT4gYm90LnRyYW5zZm9ybWVycy5yb2xlKGJvdCwgeyByb2xlLCBndWlsZElkIH0pKVxuICAgIH0sXG4gICAgZ2V0Um9sZTogYXN5bmMgKGd1aWxkSWQsIHJvbGVJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHsgcm9sZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFJvbGUoZ3VpbGRJZCwgcm9sZUlkKSksIGd1aWxkSWQgfSlcbiAgICB9LFxuICAgIGdldFNjaGVkdWxlZEV2ZW50OiBhc3luYyAoZ3VpbGRJZCwgZXZlbnRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc2NoZWR1bGVkRXZlbnQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0U2NoZWR1bGVkRXZlbnQoZ3VpbGRJZCwgZXZlbnRJZCwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgZ2V0U2NoZWR1bGVkRXZlbnRzOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRTY2hlZHVsZWRFdmVudHMoZ3VpbGRJZCwgb3B0aW9ucykpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLnNjaGVkdWxlZEV2ZW50KGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0U2NoZWR1bGVkRXZlbnRVc2VyczogYXN5bmMgKGd1aWxkSWQsIGV2ZW50SWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0U2NoZWR1bGVkRXZlbnRVc2VycyhndWlsZElkLCBldmVudElkLCBvcHRpb25zKSkubWFwKCh1KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdXNlcjogYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgc25ha2VsaXplKHUudXNlcikpLFxuICAgICAgICAgIG1lbWJlcjogdS5tZW1iZXIgJiYgYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBzbmFrZWxpemUodS5tZW1iZXIpLCBndWlsZElkLCBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh1LnVzZXIuaWQpKSxcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9LFxuICAgIGdldFNlc3Npb25JbmZvOiBhc3luYyAoKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5nYXRld2F5Qm90KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFNlc3Npb25JbmZvKCkpKVxuICAgIH0sXG4gICAgZ2V0U3RhZ2VJbnN0YW5jZTogYXN5bmMgKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3RhZ2VJbnN0YW5jZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRTdGFnZUluc3RhbmNlKGNoYW5uZWxJZCkpKVxuICAgIH0sXG4gICAgZ2V0T3duVm9pY2VTdGF0ZTogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnZvaWNlU3RhdGUoYm90LCB7IGd1aWxkSWQsIHZvaWNlU3RhdGU6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRPd25Wb2ljZVN0YXRlKGd1aWxkSWQpKSB9KVxuICAgIH0sXG4gICAgZ2V0VXNlclZvaWNlU3RhdGU6IGFzeW5jIChndWlsZElkLCB1c2VySWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnZvaWNlU3RhdGUoYm90LCB7IGd1aWxkSWQsIHZvaWNlU3RhdGU6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRVc2VyVm9pY2VTdGF0ZShndWlsZElkLCB1c2VySWQpKSB9KVxuICAgIH0sXG4gICAgZ2V0U3RpY2tlcjogYXN5bmMgKHN0aWNrZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3RpY2tlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRTdGlja2VyKHN0aWNrZXJJZCkpKVxuICAgIH0sXG4gICAgZ2V0VGhyZWFkTWVtYmVyOiBhc3luYyAoY2hhbm5lbElkLCB1c2VySWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnRocmVhZE1lbWJlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRUaHJlYWRNZW1iZXIoY2hhbm5lbElkLCB1c2VySWQpKSlcbiAgICB9LFxuICAgIGdldFRocmVhZE1lbWJlcnM6IGFzeW5jIChjaGFubmVsSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0VGhyZWFkTWVtYmVycyhjaGFubmVsSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy50aHJlYWRNZW1iZXIoYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRSZWFjdGlvbnM6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhY3Rpb24sIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0UmVhY3Rpb25zKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbiwgb3B0aW9ucykpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRVc2VyOiBhc3luYyAoaWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0VXNlcihpZCkpKVxuICAgIH0sXG4gICAgZ2V0Q3VycmVudFVzZXI6IGFzeW5jIChiZWFyZXJUb2tlbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRDdXJyZW50VXNlcihiZWFyZXJUb2tlbikpKVxuICAgIH0sXG4gICAgZ2V0VXNlckNvbm5lY3Rpb25zOiBhc3luYyAoYmVhcmVyVG9rZW4pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRVc2VyQ29ubmVjdGlvbnMoYmVhcmVyVG9rZW4pXG4gICAgfSxcbiAgICBnZXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbjogYXN5bmMgKGJlYXJlclRva2VuLCBhcHBsaWNhdGlvbklkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0VXNlckFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb24oYmVhcmVyVG9rZW4sIGFwcGxpY2F0aW9uSWQpXG4gICAgfSxcbiAgICBnZXRWYW5pdHlVcmw6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0VmFuaXR5VXJsKGd1aWxkSWQpXG4gICAgfSxcbiAgICBnZXRWb2ljZVJlZ2lvbnM6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldFZvaWNlUmVnaW9ucyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMudm9pY2VSZWdpb24oYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRXZWJob29rOiBhc3luYyAod2ViaG9va0lkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy53ZWJob29rKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFdlYmhvb2sod2ViaG9va0lkKSkpXG4gICAgfSxcbiAgICBnZXRXZWJob29rTWVzc2FnZTogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4sIG1lc3NhZ2VJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFdlYmhvb2tNZXNzYWdlKHdlYmhvb2tJZCwgdG9rZW4sIG1lc3NhZ2VJZCwgb3B0aW9ucykpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBnZXRXZWJob29rV2l0aFRva2VuOiBhc3luYyAod2ViaG9va0lkLCB0b2tlbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMud2ViaG9vayhib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRXZWJob29rV2l0aFRva2VuKHdlYmhvb2tJZCwgdG9rZW4pKSlcbiAgICB9LFxuICAgIGdldFdlbGNvbWVTY3JlZW46IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy53ZWxjb21lU2NyZWVuKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFdlbGNvbWVTY3JlZW4oZ3VpbGRJZCkpKVxuICAgIH0sXG4gICAgZ2V0V2lkZ2V0OiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMud2lkZ2V0KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFdpZGdldChndWlsZElkKSkpXG4gICAgfSxcbiAgICBnZXRXaWRnZXRTZXR0aW5nczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndpZGdldFNldHRpbmdzKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFdpZGdldFNldHRpbmdzKGd1aWxkSWQpKSlcbiAgICB9LFxuICAgIHB1Ymxpc2hNZXNzYWdlOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5wdWJsaXNoTWVzc2FnZShjaGFubmVsSWQsIG1lc3NhZ2VJZCkpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBzZW5kTWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LnNlbmRNZXNzYWdlKGNoYW5uZWxJZCwgb3B0aW9ucykpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBzZW5kRm9sbG93dXBNZXNzYWdlOiBhc3luYyAodG9rZW4sIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5zZW5kRm9sbG93dXBNZXNzYWdlKHRva2VuLCBvcHRpb25zKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIHN0YXJ0VGhyZWFkV2l0aE1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwge1xuICAgICAgICBjaGFubmVsOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3Quc3RhcnRUaHJlYWRXaXRoTWVzc2FnZShjaGFubmVsSWQsIG1lc3NhZ2VJZCwgb3B0aW9ucywgcmVhc29uKSksXG4gICAgICB9KVxuICAgIH0sXG4gICAgc3RhcnRUaHJlYWRXaXRob3V0TWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3Quc3RhcnRUaHJlYWRXaXRob3V0TWVzc2FnZShjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikpIH0pXG4gICAgfSxcbiAgICBzeW5jR3VpbGRUZW1wbGF0ZTogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnRlbXBsYXRlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LnN5bmNHdWlsZFRlbXBsYXRlKGd1aWxkSWQpKSlcbiAgICB9LFxuICAgIHVwc2VydEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZHM6IGFzeW5jIChjb21tYW5kcywgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC51cHNlcnRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzKGNvbW1hbmRzLCBvcHRpb25zKSkubWFwKChyZXMpID0+XG4gICAgICAgIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kKGJvdCwgc25ha2VsaXplKHJlcykpLFxuICAgICAgKVxuICAgIH0sXG4gICAgdXBzZXJ0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRzOiBhc3luYyAoZ3VpbGRJZCwgY29tbWFuZHMsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QudXBzZXJ0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRzKGd1aWxkSWQsIGNvbW1hbmRzLCBvcHRpb25zKSkubWFwKChyZXMpID0+XG4gICAgICAgIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kKGJvdCwgc25ha2VsaXplKHJlcykpLFxuICAgICAgKVxuICAgIH0sXG4gICAgZWRpdEJvdE1lbWJlcjogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRCb3RNZW1iZXIoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSksIGd1aWxkSWQsIGJvdC5pZClcbiAgICB9LFxuICAgIGVkaXRNZW1iZXI6IGFzeW5jIChndWlsZElkLCB1c2VySWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRNZW1iZXIoZ3VpbGRJZCwgdXNlcklkLCBvcHRpb25zLCByZWFzb24pKSwgZ3VpbGRJZCwgdXNlcklkKVxuICAgIH0sXG4gICAgZ2V0TWVtYmVyOiBhc3luYyAoZ3VpbGRJZCwgdXNlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0TWVtYmVyKGd1aWxkSWQsIHVzZXJJZCkpLCBndWlsZElkLCB1c2VySWQpXG4gICAgfSxcbiAgICBnZXRDdXJyZW50TWVtYmVyOiBhc3luYyAoZ3VpbGRJZCwgYmVhcmVyVG9rZW4pID0+IHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGJvdC5yZXN0LmdldEN1cnJlbnRNZW1iZXIoZ3VpbGRJZCwgYmVhcmVyVG9rZW4pXG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBzbmFrZWxpemUocmVzKSwgZ3VpbGRJZCwgYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocmVzLnVzZXIuaWQpKVxuICAgIH0sXG4gICAgZ2V0TWVtYmVyczogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0TWVtYmVycyhndWlsZElkLCBvcHRpb25zKSkubWFwKChyZXMpID0+XG4gICAgICAgIGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgc25ha2VsaXplKHJlcyksIGd1aWxkSWQsIGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHJlcy51c2VyLmlkKSksXG4gICAgICApXG4gICAgfSxcbiAgICBwcnVuZU1lbWJlcnM6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5wcnVuZU1lbWJlcnMoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKVxuICAgIH0sXG4gICAgc2VhcmNoTWVtYmVyczogYXN5bmMgKGd1aWxkSWQsIHF1ZXJ5LCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LnNlYXJjaE1lbWJlcnMoZ3VpbGRJZCwgcXVlcnksIG9wdGlvbnMpKS5tYXAoKHJlcykgPT5cbiAgICAgICAgYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBzbmFrZWxpemUocmVzKSwgZ3VpbGRJZCwgYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocmVzLnVzZXIuaWQpKSxcbiAgICAgIClcbiAgICB9LFxuICAgIGJ1bGtCYW5NZW1iZXJzOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBib3QucmVzdC5idWxrQmFuTWVtYmVycyhndWlsZElkLCBvcHRpb25zLCByZWFzb24pXG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGJhbm5lZFVzZXJzOiByZXMuYmFubmVkVXNlcnMubWFwKCh4KSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh4KSksXG4gICAgICAgIGZhaWxlZFVzZXJzOiByZXMuZmFpbGVkVXNlcnMubWFwKCh4KSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh4KSksXG4gICAgICB9XG4gICAgfSxcbiAgICBnZXRBcHBsaWNhdGlvbkFjdGl2aXR5SW5zdGFuY2U6IGFzeW5jIChhcHBsaWNhdGlvbklkLCBpbnN0YW5jZUlkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0QXBwbGljYXRpb25BY3Rpdml0eUluc3RhbmNlKGFwcGxpY2F0aW9uSWQsIGluc3RhbmNlSWQpXG4gICAgfSxcbiAgICAvLyBBbGwgdXNlbGVzcyB2b2lkIHJldHVybiBmdW5jdGlvbnMgaGVyZVxuICAgIGFkZFJlYWN0aW9uOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuYWRkUmVhY3Rpb24oY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uKVxuICAgIH0sXG4gICAgYWRkUmVhY3Rpb25zOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9ucywgb3JkZXJlZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmFkZFJlYWN0aW9ucyhjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhY3Rpb25zLCBvcmRlcmVkKVxuICAgIH0sXG4gICAgYWRkUm9sZTogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCwgcm9sZUlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5hZGRSb2xlKGd1aWxkSWQsIHVzZXJJZCwgcm9sZUlkLCByZWFzb24pXG4gICAgfSxcbiAgICBhZGRUaHJlYWRNZW1iZXI6IGFzeW5jIChjaGFubmVsSWQsIHVzZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmFkZFRocmVhZE1lbWJlcihjaGFubmVsSWQsIHVzZXJJZClcbiAgICB9LFxuICAgIGFkZERtUmVjaXBpZW50OiBhc3luYyAoY2hhbm5lbElkLCB1c2VySWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5hZGREbVJlY2lwaWVudChjaGFubmVsSWQsIHVzZXJJZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGFkZEd1aWxkTWVtYmVyOiBhc3luYyAoZ3VpbGRJZCwgdXNlcklkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuYWRkR3VpbGRNZW1iZXIoZ3VpbGRJZCwgdXNlcklkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgZGVsZXRlQXV0b21vZFJ1bGU6IGFzeW5jIChndWlsZElkLCBydWxlSWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUF1dG9tb2RSdWxlKGd1aWxkSWQsIHJ1bGVJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlQ2hhbm5lbDogYXN5bmMgKGNoYW5uZWxJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlQ2hhbm5lbChjaGFubmVsSWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZUNoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGU6IGFzeW5jIChjaGFubmVsSWQsIG92ZXJ3cml0ZUlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlKGNoYW5uZWxJZCwgb3ZlcndyaXRlSWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZUVtb2ppOiBhc3luYyAoZ3VpbGRJZCwgaWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUVtb2ppKGd1aWxkSWQsIGlkLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVBcHBsaWNhdGlvbkVtb2ppOiBhc3luYyAoaWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVBcHBsaWNhdGlvbkVtb2ppKGlkKVxuICAgIH0sXG4gICAgZGVsZXRlRm9sbG93dXBNZXNzYWdlOiBhc3luYyAodG9rZW4sIG1lc3NhZ2VJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUZvbGxvd3VwTWVzc2FnZSh0b2tlbiwgbWVzc2FnZUlkKVxuICAgIH0sXG4gICAgZGVsZXRlR2xvYmFsQXBwbGljYXRpb25Db21tYW5kOiBhc3luYyAoY29tbWFuZElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlR2xvYmFsQXBwbGljYXRpb25Db21tYW5kKGNvbW1hbmRJZClcbiAgICB9LFxuICAgIGRlbGV0ZUd1aWxkOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUd1aWxkKGd1aWxkSWQpXG4gICAgfSxcbiAgICBkZWxldGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZDogYXN5bmMgKGNvbW1hbmRJZCwgZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kKGNvbW1hbmRJZCwgZ3VpbGRJZClcbiAgICB9LFxuICAgIGRlbGV0ZUd1aWxkU3RpY2tlcjogYXN5bmMgKGd1aWxkSWQsIHN0aWNrZXJJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlR3VpbGRTdGlja2VyKGd1aWxkSWQsIHN0aWNrZXJJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlR3VpbGRUZW1wbGF0ZTogYXN5bmMgKGd1aWxkSWQsIHRlbXBsYXRlQ29kZSkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUd1aWxkVGVtcGxhdGUoZ3VpbGRJZCwgdGVtcGxhdGVDb2RlKVxuICAgIH0sXG4gICAgZGVsZXRlSW50ZWdyYXRpb246IGFzeW5jIChndWlsZElkLCBpbnRlZ3JhdGlvbklkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVJbnRlZ3JhdGlvbihndWlsZElkLCBpbnRlZ3JhdGlvbklkLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVJbnZpdGU6IGFzeW5jIChpbnZpdGVDb2RlLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVJbnZpdGUoaW52aXRlQ29kZSwgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlTWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVNZXNzYWdlKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVNZXNzYWdlczogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkcywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlTWVzc2FnZXMoY2hhbm5lbElkLCBtZXNzYWdlSWRzLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2U6IGFzeW5jICh0b2tlbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSh0b2tlbilcbiAgICB9LFxuICAgIGRlbGV0ZU93blJlYWN0aW9uOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlT3duUmVhY3Rpb24oY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uKVxuICAgIH0sXG4gICAgZGVsZXRlUmVhY3Rpb25zQWxsOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVSZWFjdGlvbnNBbGwoY2hhbm5lbElkLCBtZXNzYWdlSWQpXG4gICAgfSxcbiAgICBkZWxldGVSZWFjdGlvbnNFbW9qaTogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZVJlYWN0aW9uc0Vtb2ppKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbilcbiAgICB9LFxuICAgIGRlbGV0ZVJvbGU6IGFzeW5jIChndWlsZElkLCByb2xlSWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZVJvbGUoZ3VpbGRJZCwgcm9sZUlkLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVTY2hlZHVsZWRFdmVudDogYXN5bmMgKGd1aWxkSWQsIGV2ZW50SWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVTY2hlZHVsZWRFdmVudChndWlsZElkLCBldmVudElkKVxuICAgIH0sXG4gICAgZGVsZXRlU3RhZ2VJbnN0YW5jZTogYXN5bmMgKGNoYW5uZWxJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlU3RhZ2VJbnN0YW5jZShjaGFubmVsSWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZVVzZXJSZWFjdGlvbjogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCB1c2VySWQsIHJlYWN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlVXNlclJlYWN0aW9uKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCB1c2VySWQsIHJlYWN0aW9uKVxuICAgIH0sXG4gICAgZGVsZXRlV2ViaG9vazogYXN5bmMgKHdlYmhvb2tJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlV2ViaG9vayh3ZWJob29rSWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZVdlYmhvb2tNZXNzYWdlOiBhc3luYyAod2ViaG9va0lkLCB0b2tlbiwgbWVzc2FnZUlkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlV2ViaG9va01lc3NhZ2Uod2ViaG9va0lkLCB0b2tlbiwgbWVzc2FnZUlkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgZGVsZXRlV2ViaG9va1dpdGhUb2tlbjogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVXZWJob29rV2l0aFRva2VuKHdlYmhvb2tJZCwgdG9rZW4pXG4gICAgfSxcbiAgICBlZGl0Q2hhbm5lbFBlcm1pc3Npb25PdmVycmlkZXM6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmVkaXRDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlcyhjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbilcbiAgICB9LFxuICAgIGVkaXRDaGFubmVsUG9zaXRpb25zOiBhc3luYyAoZ3VpbGRJZCwgY2hhbm5lbFBvc2l0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmVkaXRDaGFubmVsUG9zaXRpb25zKGd1aWxkSWQsIGNoYW5uZWxQb3NpdGlvbnMpXG4gICAgfSxcbiAgICBlZGl0R3VpbGRNZmFMZXZlbDogYXN5bmMgKGd1aWxkSWQsIG1mYUxldmVsLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5lZGl0R3VpbGRNZmFMZXZlbChndWlsZElkLCBtZmFMZXZlbCwgcmVhc29uKVxuICAgIH0sXG4gICAgZWRpdE93blZvaWNlU3RhdGU6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZWRpdE93blZvaWNlU3RhdGUoZ3VpbGRJZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGVkaXRVc2VyVm9pY2VTdGF0ZTogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5lZGl0VXNlclZvaWNlU3RhdGUoZ3VpbGRJZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGVkaXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbjogYXN5bmMgKGJlYXJlclRva2VuLCBhcHBsaWNhdGlvbklkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZWRpdFVzZXJBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uKGJlYXJlclRva2VuLCBhcHBsaWNhdGlvbklkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgam9pblRocmVhZDogYXN5bmMgKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmpvaW5UaHJlYWQoY2hhbm5lbElkKVxuICAgIH0sXG4gICAgbGVhdmVHdWlsZDogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5sZWF2ZUd1aWxkKGd1aWxkSWQpXG4gICAgfSxcbiAgICBsZWF2ZVRocmVhZDogYXN5bmMgKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmxlYXZlVGhyZWFkKGNoYW5uZWxJZClcbiAgICB9LFxuICAgIHJlbW92ZVJvbGU6IGFzeW5jIChndWlsZElkLCB1c2VySWQsIHJvbGVJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QucmVtb3ZlUm9sZShndWlsZElkLCB1c2VySWQsIHJvbGVJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgcmVtb3ZlVGhyZWFkTWVtYmVyOiBhc3luYyAoY2hhbm5lbElkLCB1c2VySWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5yZW1vdmVUaHJlYWRNZW1iZXIoY2hhbm5lbElkLCB1c2VySWQpXG4gICAgfSxcbiAgICByZW1vdmVEbVJlY2lwaWVudDogYXN5bmMgKGNoYW5uZWxJZCwgdXNlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QucmVtb3ZlRG1SZWNpcGllbnQoY2hhbm5lbElkLCB1c2VySWQpXG4gICAgfSxcbiAgICBzZW5kSW50ZXJhY3Rpb25SZXNwb25zZTogYXN5bmMgKGludGVyYWN0aW9uSWQsIHRva2VuLCBvcHRpb25zLCBwYXJhbXMpID0+IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYm90LnJlc3Quc2VuZEludGVyYWN0aW9uUmVzcG9uc2UoaW50ZXJhY3Rpb25JZCwgdG9rZW4sIG9wdGlvbnMsIHBhcmFtcylcblxuICAgICAgaWYgKCFyZXNwb25zZSkgcmV0dXJuXG5cbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZShib3QsIHsgaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlOiBzbmFrZWxpemUocmVzcG9uc2UpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICB0cmlnZ2VyVHlwaW5nSW5kaWNhdG9yOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QudHJpZ2dlclR5cGluZ0luZGljYXRvcihjaGFubmVsSWQpXG4gICAgfSxcbiAgICBiYW5NZW1iZXI6IGFzeW5jIChndWlsZElkLCB1c2VySWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmJhbk1lbWJlcihndWlsZElkLCB1c2VySWQsIG9wdGlvbnMsIHJlYXNvbilcbiAgICB9LFxuXG4gICAga2lja01lbWJlcjogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3Qua2lja01lbWJlcihndWlsZElkLCB1c2VySWQsIHJlYXNvbilcbiAgICB9LFxuICAgIHBpbk1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QucGluTWVzc2FnZShjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgdW5iYW5NZW1iZXI6IGFzeW5jIChndWlsZElkLCB1c2VySWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LnVuYmFuTWVtYmVyKGd1aWxkSWQsIHVzZXJJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgdW5waW5NZXNzYWdlOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LnVucGluTWVzc2FnZShjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgZ2V0R3VpbGRPbmJvYXJkaW5nOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGRPbmJvYXJkaW5nKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkT25ib2FyZGluZyhndWlsZElkKSkpXG4gICAgfSxcbiAgICBlZGl0R3VpbGRPbmJvYXJkaW5nOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5ndWlsZE9uYm9hcmRpbmcoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEd1aWxkT25ib2FyZGluZyhndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGxpc3RFbnRpdGxlbWVudHM6IGFzeW5jIChhcHBsaWNhdGlvbklkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0Lmxpc3RFbnRpdGxlbWVudHMoYXBwbGljYXRpb25JZCwgb3B0aW9ucykpLm1hcCgoZW50aXRsZW1lbnQpID0+IGJvdC50cmFuc2Zvcm1lcnMuZW50aXRsZW1lbnQoYm90LCBzbmFrZWxpemUoZW50aXRsZW1lbnQpKSlcbiAgICB9LFxuICAgIGdldEVudGl0bGVtZW50OiBhc3luYyAoYXBwbGljYXRpb25JZCwgZW50aXRsZW1lbnRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZW50aXRsZW1lbnQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0RW50aXRsZW1lbnQoYXBwbGljYXRpb25JZCwgZW50aXRsZW1lbnRJZCkpKVxuICAgIH0sXG4gICAgY3JlYXRlVGVzdEVudGl0bGVtZW50OiBhc3luYyAoYXBwbGljYXRpb25JZCwgYm9keSkgPT4ge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBjcmVhdGVUZXN0RW50aXRsZW1lbnQgZ2l2ZXMgYSBwYXJ0aWFsLCBhbmQgdGhpcyBtZXRob2QgcmV0dXJucyBhIHBhcnRpYWxcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmVudGl0bGVtZW50KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZVRlc3RFbnRpdGxlbWVudChhcHBsaWNhdGlvbklkLCBib2R5KSkpIGFzIFBhcnRpYWw8XG4gICAgICAgIHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmVudGl0bGVtZW50XG4gICAgICA+XG4gICAgfSxcbiAgICBkZWxldGVUZXN0RW50aXRsZW1lbnQ6IGFzeW5jIChhcHBsaWNhdGlvbklkLCBlbnRpdGxlbWVudElkKSA9PiB7XG4gICAgICBhd2FpdCBib3QucmVzdC5kZWxldGVUZXN0RW50aXRsZW1lbnQoYXBwbGljYXRpb25JZCwgZW50aXRsZW1lbnRJZClcbiAgICB9LFxuICAgIGxpc3RTa3VzOiBhc3luYyAoYXBwbGljYXRpb25JZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5saXN0U2t1cyhhcHBsaWNhdGlvbklkKSkubWFwKChza3UpID0+IGJvdC50cmFuc2Zvcm1lcnMuc2t1KGJvdCwgc25ha2VsaXplKHNrdSkpKVxuICAgIH0sXG4gICAgZ2V0U3Vic2NyaXB0aW9uOiBhc3luYyAoc2t1SWQsIHN1YnNjcmlwdGlvbklkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zdWJzY3JpcHRpb24oYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0U3Vic2NyaXB0aW9uKHNrdUlkLCBzdWJzY3JpcHRpb25JZCkpKVxuICAgIH0sXG4gICAgbGlzdFN1YnNjcmlwdGlvbnM6IGFzeW5jIChza3VJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5saXN0U3Vic2NyaXB0aW9ucyhza3VJZCwgb3B0aW9ucykpLm1hcCgoc3Vic2NyaXB0aW9uKSA9PiBib3QudHJhbnNmb3JtZXJzLnN1YnNjcmlwdGlvbihib3QsIHNuYWtlbGl6ZShzdWJzY3JpcHRpb24pKSlcbiAgICB9LFxuICAgIHNlbmRTb3VuZGJvYXJkU291bmQ6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIGF3YWl0IGJvdC5yZXN0LnNlbmRTb3VuZGJvYXJkU291bmQoY2hhbm5lbElkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgbGlzdERlZmF1bHRTb3VuZGJvYXJkU291bmRzOiBhc3luYyAoKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0Lmxpc3REZWZhdWx0U291bmRib2FyZFNvdW5kcygpKS5tYXAoKHNvdW5kKSA9PiBib3QudHJhbnNmb3JtZXJzLnNvdW5kYm9hcmRTb3VuZChib3QsIHNuYWtlbGl6ZShzb3VuZCkpKVxuICAgIH0sXG4gICAgbGlzdEd1aWxkU291bmRib2FyZFNvdW5kczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGJvdC5yZXN0Lmxpc3RHdWlsZFNvdW5kYm9hcmRTb3VuZHMoZ3VpbGRJZClcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaXRlbXM6IHJlcy5pdGVtcy5tYXAoKHNvdW5kKSA9PiBib3QudHJhbnNmb3JtZXJzLnNvdW5kYm9hcmRTb3VuZChib3QsIHNuYWtlbGl6ZShzb3VuZCkpKSxcbiAgICAgIH1cbiAgICB9LFxuICAgIGdldEd1aWxkU291bmRib2FyZFNvdW5kOiBhc3luYyAoZ3VpbGRJZCwgc291bmRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc291bmRib2FyZFNvdW5kKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkU291bmRib2FyZFNvdW5kKGd1aWxkSWQsIHNvdW5kSWQpKSlcbiAgICB9LFxuICAgIGNyZWF0ZUd1aWxkU291bmRib2FyZFNvdW5kOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zb3VuZGJvYXJkU291bmQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlR3VpbGRTb3VuZGJvYXJkU291bmQoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBtb2RpZnlHdWlsZFNvdW5kYm9hcmRTb3VuZDogYXN5bmMgKGd1aWxkSWQsIHNvdW5kSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc291bmRib2FyZFNvdW5kKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0Lm1vZGlmeUd1aWxkU291bmRib2FyZFNvdW5kKGd1aWxkSWQsIHNvdW5kSWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgZGVsZXRlR3VpbGRTb3VuZGJvYXJkU291bmQ6IGFzeW5jIChndWlsZElkLCBzb3VuZElkLCByZWFzb24pID0+IHtcbiAgICAgIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUd1aWxkU291bmRib2FyZFNvdW5kKGd1aWxkSWQsIHNvdW5kSWQsIHJlYXNvbilcbiAgICB9LFxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQm90SGVscGVyczxcbiAgVFByb3BzIGV4dGVuZHMgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsXG4gIFRCZWhhdmlvciBleHRlbmRzIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3IsXG4gIC8vIFRoaXMgaXMganVzdCBhbiBhbGlhcywgbm90IGFuIGFjdHVhbCBwYXJhbWV0ZXJcbiAgVEJvdCBleHRlbmRzIEJvdDxUUHJvcHMsIFRCZWhhdmlvcj4gPSBCb3Q8VFByb3BzLCBUQmVoYXZpb3I+LFxuPiB7XG4gIGNyZWF0ZUF1dG9tb2RSdWxlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVBdXRvTW9kZXJhdGlvblJ1bGVPcHRpb25zLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8QXV0b01vZGVyYXRpb25SdWxlPlxuICBjcmVhdGVDaGFubmVsOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVHdWlsZENoYW5uZWwsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnY2hhbm5lbCddPlxuICBjcmVhdGVFbW9qaTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlR3VpbGRFbW9qaSwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydlbW9qaSddPlxuICBjcmVhdGVBcHBsaWNhdGlvbkVtb2ppOiAob3B0aW9uczogQ3JlYXRlQXBwbGljYXRpb25FbW9qaSkgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnZW1vamknXT5cbiAgY3JlYXRlRm9ydW1UaHJlYWQ6IChcbiAgICBjaGFubmVsSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBDcmVhdGVGb3J1bVBvc3RXaXRoTWVzc2FnZSxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnY2hhbm5lbCddPlxuICBjcmVhdGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQ6IChjb21tYW5kOiBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmQsIG9wdGlvbnM/OiBDcmVhdGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25zKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uQ29tbWFuZD5cbiAgY3JlYXRlR3VpbGQ6IChvcHRpb25zOiBDcmVhdGVHdWlsZCkgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnZ3VpbGQnXT5cbiAgY3JlYXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQ6IChcbiAgICBjb21tYW5kOiBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmQsXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM/OiBDcmVhdGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMsXG4gICkgPT4gUHJvbWlzZTxBcHBsaWNhdGlvbkNvbW1hbmQ+XG4gIGNyZWF0ZUd1aWxkRnJvbVRlbXBsYXRlOiAodGVtcGxhdGVDb2RlOiBzdHJpbmcsIG9wdGlvbnM6IENyZWF0ZUd1aWxkRnJvbVRlbXBsYXRlKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydndWlsZCddPlxuICBjcmVhdGVHdWlsZFN0aWNrZXI6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogQ3JlYXRlR3VpbGRTdGlja2VyT3B0aW9ucyxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnc3RpY2tlciddPlxuICBjcmVhdGVHdWlsZFRlbXBsYXRlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVUZW1wbGF0ZSkgPT4gUHJvbWlzZTxUZW1wbGF0ZT5cbiAgY3JlYXRlSW52aXRlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBDcmVhdGVDaGFubmVsSW52aXRlLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEludml0ZT4+XG4gIGNyZWF0ZVJvbGU6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENyZWF0ZUd1aWxkUm9sZSwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydyb2xlJ10+XG4gIGNyZWF0ZVNjaGVkdWxlZEV2ZW50OiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IENyZWF0ZVNjaGVkdWxlZEV2ZW50LFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydzY2hlZHVsZWRFdmVudCddPlxuICBjcmVhdGVTdGFnZUluc3RhbmNlOiAob3B0aW9uczogQ3JlYXRlU3RhZ2VJbnN0YW5jZSwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydzdGFnZUluc3RhbmNlJ10+XG4gIGNyZWF0ZVdlYmhvb2s6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlV2ViaG9vaywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWyd3ZWJob29rJ10+XG4gIGVkaXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uczogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBjb21tYW5kSWQ6IEJpZ1N0cmluZyxcbiAgICBiZWFyZXJUb2tlbjogc3RyaW5nLFxuICAgIG9wdGlvbnM6IENhbWVsaXplPERpc2NvcmRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucz5bXSxcbiAgKSA9PiBQcm9taXNlPEd1aWxkQXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnM+XG4gIGVkaXRBdXRvbW9kUnVsZTogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBydWxlSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBQYXJ0aWFsPEVkaXRBdXRvTW9kZXJhdGlvblJ1bGVPcHRpb25zPixcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxBdXRvTW9kZXJhdGlvblJ1bGU+XG4gIGVkaXRCb3RQcm9maWxlOiAob3B0aW9uczogeyB1c2VybmFtZT86IHN0cmluZzsgYm90QXZhdGFyVVJMPzogc3RyaW5nIHwgbnVsbCB9KSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWyd1c2VyJ10+XG4gIGVkaXRDaGFubmVsOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IE1vZGlmeUNoYW5uZWwsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnY2hhbm5lbCddPlxuICBlZGl0RW1vamk6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgaWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBNb2RpZnlHdWlsZEVtb2ppLFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydlbW9qaSddPlxuICBlZGl0QXBwbGljYXRpb25FbW9qaTogKGlkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IE1vZGlmeUFwcGxpY2F0aW9uRW1vamkpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ2Vtb2ppJ10+XG4gIGVkaXRGb2xsb3d1cE1lc3NhZ2U6IChcbiAgICB0b2tlbjogc3RyaW5nLFxuICAgIG1lc3NhZ2VJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IEludGVyYWN0aW9uQ2FsbGJhY2tEYXRhLFxuICApID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ21lc3NhZ2UnXT5cbiAgZWRpdEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogKGNvbW1hbmRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmQpID0+IFByb21pc2U8QXBwbGljYXRpb25Db21tYW5kPlxuICBlZGl0R3VpbGQ6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IE1vZGlmeUd1aWxkLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ2d1aWxkJ10+XG4gIGVkaXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZDogKGNvbW1hbmRJZDogQmlnU3RyaW5nLCBndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZCkgPT4gUHJvbWlzZTxBcHBsaWNhdGlvbkNvbW1hbmQ+XG4gIGVkaXRHdWlsZFN0aWNrZXI6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgc3RpY2tlcklkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogQXRMZWFzdE9uZTxFZGl0R3VpbGRTdGlja2VyT3B0aW9ucz4sXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ3N0aWNrZXInXT5cbiAgZWRpdEd1aWxkVGVtcGxhdGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHRlbXBsYXRlQ29kZTogc3RyaW5nLCBvcHRpb25zOiBNb2RpZnlHdWlsZFRlbXBsYXRlKSA9PiBQcm9taXNlPFRlbXBsYXRlPlxuICBlZGl0TWVzc2FnZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogRWRpdE1lc3NhZ2UpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ21lc3NhZ2UnXT5cbiAgZWRpdE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZTogKHRva2VuOiBzdHJpbmcsIG9wdGlvbnM6IEludGVyYWN0aW9uQ2FsbGJhY2tEYXRhKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZXNzYWdlJ10+XG4gIGVkaXRPcmlnaW5hbFdlYmhvb2tNZXNzYWdlOiAoXG4gICAgd2ViaG9va0lkOiBCaWdTdHJpbmcsXG4gICAgdG9rZW46IHN0cmluZyxcbiAgICBvcHRpb25zOiBJbnRlcmFjdGlvbkNhbGxiYWNrRGF0YSAmIHsgdGhyZWFkSWQ/OiBCaWdTdHJpbmcgfSxcbiAgKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZXNzYWdlJ10+XG4gIGVkaXRSb2xlOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIHJvbGVJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IEVkaXRHdWlsZFJvbGUsXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ3JvbGUnXT5cbiAgZWRpdFJvbGVQb3NpdGlvbnM6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogTW9kaWZ5Um9sZVBvc2l0aW9uc1tdLFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydyb2xlJ11bXT5cbiAgZWRpdFNjaGVkdWxlZEV2ZW50OiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIGV2ZW50SWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBQYXJ0aWFsPEVkaXRTY2hlZHVsZWRFdmVudD4sXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ3NjaGVkdWxlZEV2ZW50J10+XG4gIGVkaXRTdGFnZUluc3RhbmNlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIHRvcGljOiBzdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnc3RhZ2VJbnN0YW5jZSddPlxuICBlZGl0V2ViaG9vazogKHdlYmhvb2tJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBNb2RpZnlXZWJob29rLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ3dlYmhvb2snXT5cbiAgZWRpdFdlYmhvb2tNZXNzYWdlOiAoXG4gICAgd2ViaG9va0lkOiBCaWdTdHJpbmcsXG4gICAgdG9rZW46IHN0cmluZyxcbiAgICBtZXNzYWdlSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBJbnRlcmFjdGlvbkNhbGxiYWNrRGF0YSAmIHsgdGhyZWFkSWQ/OiBCaWdTdHJpbmcgfSxcbiAgKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZXNzYWdlJ10+XG4gIGVkaXRXZWJob29rV2l0aFRva2VuOiAoXG4gICAgd2ViaG9va0lkOiBCaWdTdHJpbmcsXG4gICAgdG9rZW46IHN0cmluZyxcbiAgICBvcHRpb25zOiBPbWl0PE1vZGlmeVdlYmhvb2ssICdjaGFubmVsSWQnPixcbiAgKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWyd3ZWJob29rJ10+XG4gIGVkaXRXZWxjb21lU2NyZWVuOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDYW1lbGl6ZTxEaXNjb3JkTW9kaWZ5R3VpbGRXZWxjb21lU2NyZWVuPiwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFdlbGNvbWVTY3JlZW4+XG4gIGVkaXRXaWRnZXRTZXR0aW5nczogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ2FtZWxpemU8RGlzY29yZEd1aWxkV2lkZ2V0U2V0dGluZ3M+LCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8R3VpbGRXaWRnZXRTZXR0aW5ncz5cbiAgZWRpdFVzZXJBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uOiAoXG4gICAgYmVhcmVyVG9rZW46IHN0cmluZyxcbiAgICBhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogQ2FtZWxpemU8RGlzY29yZEFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb24+LFxuICApID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb24+PlxuICBleGVjdXRlV2ViaG9vazogKFxuICAgIHdlYmhvb2tJZDogQmlnU3RyaW5nLFxuICAgIHRva2VuOiBzdHJpbmcsXG4gICAgb3B0aW9uczogRXhlY3V0ZVdlYmhvb2ssXG4gICkgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnbWVzc2FnZSddIHwgdW5kZWZpbmVkPlxuICBmb2xsb3dBbm5vdW5jZW1lbnQ6IChzb3VyY2VDaGFubmVsSWQ6IEJpZ1N0cmluZywgdGFyZ2V0Q2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEZvbGxvd2VkQ2hhbm5lbD4+XG4gIGdldEFjdGl2ZVRocmVhZHM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8eyB0aHJlYWRzOiBUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnY2hhbm5lbCddW107IG1lbWJlcnM6IFRocmVhZE1lbWJlcltdIH0+XG4gIGdldEFwcGxpY2F0aW9uSW5mbzogKCkgPT4gUHJvbWlzZTxBcHBsaWNhdGlvbj5cbiAgZWRpdEFwcGxpY2F0aW9uSW5mbzogKGJvZHk6IEVkaXRBcHBsaWNhdGlvbikgPT4gUHJvbWlzZTxBcHBsaWNhdGlvbj5cbiAgZ2V0Q3VycmVudEF1dGhlbnRpY2F0aW9uSW5mbzogKGJlYXJlclRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEN1cnJlbnRBdXRob3JpemF0aW9uPj5cbiAgZXhjaGFuZ2VUb2tlbjogKGNsaWVudElkOiBCaWdTdHJpbmcsIGNsaWVudFNlY3JldDogc3RyaW5nLCBvcHRpb25zOiBDYW1lbGl6ZTxEaXNjb3JkVG9rZW5FeGNoYW5nZT4pID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEFjY2Vzc1Rva2VuUmVzcG9uc2U+PlxuICByZXZva2VUb2tlbjogKGNsaWVudElkOiBCaWdTdHJpbmcsIGNsaWVudFNlY3JldDogc3RyaW5nLCBvcHRpb25zOiBDYW1lbGl6ZTxEaXNjb3JkVG9rZW5SZXZvY2F0aW9uPikgPT4gUHJvbWlzZTx2b2lkPlxuICBnZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIGNvbW1hbmRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM/OiBHZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uT3B0aW9ucyxcbiAgKSA9PiBQcm9taXNlPEd1aWxkQXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnM+XG4gIGdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM/OiBHZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uT3B0aW9ucyxcbiAgKSA9PiBQcm9taXNlPEd1aWxkQXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnNbXT5cbiAgZ2V0QXVkaXRMb2c6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBHZXRHdWlsZEF1ZGl0TG9nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRBdWRpdExvZz4+XG4gIGdldEF1dG9tb2RSdWxlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBydWxlSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxBdXRvTW9kZXJhdGlvblJ1bGU+XG4gIGdldEF1dG9tb2RSdWxlczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxBdXRvTW9kZXJhdGlvblJ1bGVbXT5cbiAgZ2V0QXZhaWxhYmxlVm9pY2VSZWdpb25zOiAoKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRWb2ljZVJlZ2lvbj5bXT5cbiAgZ2V0QmFuOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQmFuPj5cbiAgZ2V0QmFuczogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IEdldEJhbnMpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEJhbj5bXT5cbiAgZ2V0Q2hhbm5lbDogKGNoYW5uZWxJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydjaGFubmVsJ10+XG4gIGdldENoYW5uZWxJbnZpdGVzOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEludml0ZU1ldGFkYXRhPltdPlxuICBnZXRDaGFubmVsczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnY2hhbm5lbCddW10+XG4gIGdldENoYW5uZWxXZWJob29rczogKGNoYW5uZWxJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWyd3ZWJob29rJ11bXT5cbiAgZ2V0RG1DaGFubmVsOiAodXNlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ2NoYW5uZWwnXT5cbiAgZ2V0R3JvdXBEbUNoYW5uZWw6IChvcHRpb25zOiBHZXRHcm91cERtT3B0aW9ucykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnY2hhbm5lbCddPlxuICBnZXRFbW9qaTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgZW1vamlJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydlbW9qaSddPlxuICBnZXRBcHBsaWNhdGlvbkVtb2ppOiAoZW1vamlJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydlbW9qaSddPlxuICBnZXRFbW9qaXM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ2Vtb2ppJ11bXT5cbiAgZ2V0QXBwbGljYXRpb25FbW9qaXM6ICgpID0+IFByb21pc2U8eyBpdGVtczogVEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ2Vtb2ppJ11bXSB9PlxuICBnZXRGb2xsb3d1cE1lc3NhZ2U6ICh0b2tlbjogc3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnbWVzc2FnZSddPlxuICBnZXRHYXRld2F5Qm90OiAoKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRHZXRHYXRld2F5Qm90Pj5cbiAgZ2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kOiAoY29tbWFuZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8QXBwbGljYXRpb25Db21tYW5kPlxuICBnZXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzOiAoKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uQ29tbWFuZFtdPlxuICBnZXRHdWlsZDogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IHsgY291bnRzPzogYm9vbGVhbiB9KSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydndWlsZCddPlxuICBnZXRHdWlsZHM6IChiZWFyZXJUb2tlbjogc3RyaW5nLCBvcHRpb25zPzogR2V0VXNlckd1aWxkcykgPT4gUHJvbWlzZTxQYXJ0aWFsPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydndWlsZCddPltdPlxuICBnZXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZDogKGNvbW1hbmRJZDogQmlnU3RyaW5nLCBndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8QXBwbGljYXRpb25Db21tYW5kPlxuICBnZXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZHM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8QXBwbGljYXRpb25Db21tYW5kW10+XG4gIGdldEd1aWxkUHJldmlldzogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkR3VpbGRQcmV2aWV3Pj5cbiAgZ2V0R3VpbGRTdGlja2VyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBzdGlja2VySWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnc3RpY2tlciddPlxuICBnZXRHdWlsZFN0aWNrZXJzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydzdGlja2VyJ11bXT5cbiAgZ2V0R3VpbGRUZW1wbGF0ZTogKHRlbXBsYXRlQ29kZTogc3RyaW5nKSA9PiBQcm9taXNlPFRlbXBsYXRlPlxuICBnZXRHdWlsZFRlbXBsYXRlczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxUZW1wbGF0ZVtdPlxuICBnZXRHdWlsZFdlYmhvb2tzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWyd3ZWJob29rJ11bXT5cbiAgZ2V0SW50ZWdyYXRpb25zOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPEludGVncmF0aW9uW10+XG4gIGdldEludml0ZTogKGludml0ZUNvZGU6IHN0cmluZywgb3B0aW9ucz86IEdldEludml0ZSkgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnaW52aXRlJ10+XG4gIGdldEludml0ZXM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ2ludml0ZSddW10+XG4gIGdldE1lc3NhZ2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ21lc3NhZ2UnXT5cbiAgZ2V0TWVzc2FnZXM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IEdldE1lc3NhZ2VzT3B0aW9ucykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnbWVzc2FnZSddW10+XG4gIGdldFN0aWNrZXJQYWNrOiAoc3RpY2tlclBhY2tJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFN0aWNrZXJQYWNrPlxuICBnZXRTdGlja2VyUGFja3M6ICgpID0+IFByb21pc2U8U3RpY2tlclBhY2tbXT5cbiAgZ2V0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlOiAodG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnbWVzc2FnZSddPlxuICBnZXRQaW5uZWRNZXNzYWdlczogKGNoYW5uZWxJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZXNzYWdlJ11bXT5cbiAgZ2V0UHJpdmF0ZUFyY2hpdmVkVGhyZWFkczogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogTGlzdEFyY2hpdmVkVGhyZWFkcykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQXJjaGl2ZWRUaHJlYWRzPj5cbiAgZ2V0UHJpdmF0ZUpvaW5lZEFyY2hpdmVkVGhyZWFkczogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogTGlzdEFyY2hpdmVkVGhyZWFkcykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQXJjaGl2ZWRUaHJlYWRzPj5cbiAgZ2V0UHJ1bmVDb3VudDogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IEdldEd1aWxkUHJ1bmVDb3VudFF1ZXJ5KSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRQcnVuZWRDb3VudD4+XG4gIGdldFB1YmxpY0FyY2hpdmVkVGhyZWFkczogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogTGlzdEFyY2hpdmVkVGhyZWFkcykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQXJjaGl2ZWRUaHJlYWRzPj5cbiAgZ2V0Um9sZXM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ3JvbGUnXVtdPlxuICBnZXRSb2xlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCByb2xlSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsncm9sZSddPlxuICBnZXRTY2hlZHVsZWRFdmVudDogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBldmVudElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9ucz86IHsgd2l0aFVzZXJDb3VudD86IGJvb2xlYW4gfSxcbiAgKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydzY2hlZHVsZWRFdmVudCddPlxuICBnZXRTY2hlZHVsZWRFdmVudHM6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBHZXRTY2hlZHVsZWRFdmVudHMpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ3NjaGVkdWxlZEV2ZW50J11bXT5cbiAgZ2V0U2NoZWR1bGVkRXZlbnRVc2VyczogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBldmVudElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9ucz86IEdldFNjaGVkdWxlZEV2ZW50VXNlcnMsXG4gICkgPT4gUHJvbWlzZTxBcnJheTx7IHVzZXI6IFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWyd1c2VyJ107IG1lbWJlcj86IFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZW1iZXInXSB9Pj5cbiAgZ2V0U2Vzc2lvbkluZm86ICgpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEdldEdhdGV3YXlCb3Q+PlxuICBnZXRTdGFnZUluc3RhbmNlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ3N0YWdlSW5zdGFuY2UnXT5cbiAgZ2V0T3duVm9pY2VTdGF0ZTogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsndm9pY2VTdGF0ZSddPlxuICBnZXRVc2VyVm9pY2VTdGF0ZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ3ZvaWNlU3RhdGUnXT5cbiAgZ2V0U3RpY2tlcjogKHN0aWNrZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydzdGlja2VyJ10+XG4gIGdldFRocmVhZE1lbWJlcjogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxUaHJlYWRNZW1iZXI+XG4gIGdldFRocmVhZE1lbWJlcnM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxUaHJlYWRNZW1iZXJbXT5cbiAgZ2V0UmVhY3Rpb25zOiAoXG4gICAgY2hhbm5lbElkOiBCaWdTdHJpbmcsXG4gICAgbWVzc2FnZUlkOiBCaWdTdHJpbmcsXG4gICAgcmVhY3Rpb246IHN0cmluZyxcbiAgICBvcHRpb25zPzogR2V0UmVhY3Rpb25zLFxuICApID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ3VzZXInXVtdPlxuICBnZXRVc2VyOiAoaWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsndXNlciddPlxuICBnZXRDdXJyZW50VXNlcjogKGJlYXJlclRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ3VzZXInXT5cbiAgZ2V0VXNlckNvbm5lY3Rpb25zOiAoYmVhcmVyVG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQ29ubmVjdGlvbj5bXT5cbiAgZ2V0VXNlckFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb246IChiZWFyZXJUb2tlbjogc3RyaW5nLCBhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb24+PlxuICBnZXRWYW5pdHlVcmw6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZFZhbml0eVVybD4+XG4gIGdldFZvaWNlUmVnaW9uczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkVm9pY2VSZWdpb24+W10+XG4gIGdldFdlYmhvb2s6ICh3ZWJob29rSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnd2ViaG9vayddPlxuICBnZXRXZWJob29rTWVzc2FnZTogKFxuICAgIHdlYmhvb2tJZDogQmlnU3RyaW5nLFxuICAgIHRva2VuOiBzdHJpbmcsXG4gICAgbWVzc2FnZUlkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9ucz86IEdldFdlYmhvb2tNZXNzYWdlT3B0aW9ucyxcbiAgKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZXNzYWdlJ10+XG4gIGdldFdlYmhvb2tXaXRoVG9rZW46ICh3ZWJob29rSWQ6IEJpZ1N0cmluZywgdG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnd2ViaG9vayddPlxuICBnZXRXZWxjb21lU2NyZWVuOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFdlbGNvbWVTY3JlZW4+XG4gIGdldFdpZGdldDogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxHdWlsZFdpZGdldD5cbiAgZ2V0V2lkZ2V0U2V0dGluZ3M6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8R3VpbGRXaWRnZXRTZXR0aW5ncz5cbiAgcHVibGlzaE1lc3NhZ2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ21lc3NhZ2UnXT5cbiAgc2VuZE1lc3NhZ2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlTWVzc2FnZU9wdGlvbnMpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ21lc3NhZ2UnXT5cbiAgc2VuZEZvbGxvd3VwTWVzc2FnZTogKHRva2VuOiBzdHJpbmcsIG9wdGlvbnM6IEludGVyYWN0aW9uQ2FsbGJhY2tEYXRhKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZXNzYWdlJ10+XG4gIHN0YXJ0VGhyZWFkV2l0aE1lc3NhZ2U6IChcbiAgICBjaGFubmVsSWQ6IEJpZ1N0cmluZyxcbiAgICBtZXNzYWdlSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBTdGFydFRocmVhZFdpdGhNZXNzYWdlLFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydjaGFubmVsJ10+XG4gIHN0YXJ0VGhyZWFkV2l0aG91dE1lc3NhZ2U6IChcbiAgICBjaGFubmVsSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBTdGFydFRocmVhZFdpdGhvdXRNZXNzYWdlLFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydjaGFubmVsJ10+XG4gIHN5bmNHdWlsZFRlbXBsYXRlOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFRlbXBsYXRlPlxuICB1cHNlcnRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzOiAoXG4gICAgY29tbWFuZHM6IENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZFtdLFxuICAgIG9wdGlvbnM/OiBVcHNlcnRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25zLFxuICApID0+IFByb21pc2U8QXBwbGljYXRpb25Db21tYW5kW10+XG4gIHVwc2VydEd1aWxkQXBwbGljYXRpb25Db21tYW5kczogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBjb21tYW5kczogQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kW10sXG4gICAgb3B0aW9ucz86IFVwc2VydEd1aWxkQXBwbGljYXRpb25Db21tYW5kT3B0aW9ucyxcbiAgKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uQ29tbWFuZFtdPlxuICBlZGl0Qm90TWVtYmVyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBFZGl0Qm90TWVtYmVyT3B0aW9ucywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZW1iZXInXT5cbiAgZWRpdE1lbWJlcjogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICB1c2VySWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBNb2RpZnlHdWlsZE1lbWJlcixcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnbWVtYmVyJ10+XG4gIGdldE1lbWJlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ21lbWJlciddPlxuICBnZXRDdXJyZW50TWVtYmVyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBiZWFyZXJUb2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZW1iZXInXT5cbiAgZ2V0TWVtYmVyczogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogTGlzdEd1aWxkTWVtYmVycykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnbWVtYmVyJ11bXT5cbiAgcHJ1bmVNZW1iZXJzOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBCZWdpbkd1aWxkUHJ1bmUsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx7IHBydW5lZDogbnVtYmVyIHwgbnVsbCB9PlxuICBzZWFyY2hNZW1iZXJzOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIHF1ZXJ5OiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IE9taXQ8U2VhcmNoTWVtYmVycywgJ3F1ZXJ5Jz4sXG4gICkgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnbWVtYmVyJ11bXT5cbiAgYnVsa0Jhbk1lbWJlcnM6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENyZWF0ZUd1aWxkQnVsa0JhbiwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHsgYmFubmVkVXNlcnM6IGJpZ2ludFtdOyBmYWlsZWRVc2VyczogYmlnaW50W10gfT5cbiAgZ2V0QXBwbGljYXRpb25BY3Rpdml0eUluc3RhbmNlOiAoYXBwbGljYXRpb25JZDogQmlnU3RyaW5nLCBpbnN0YW5jZUlkOiBzdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEFjdGl2aXR5SW5zdGFuY2U+PlxuICAvLyBmdW5jdGlvbnMgcmV0dXJuIFZvaWQgc28gZG9udCBuZWVkIGFueSBzcGVjaWFsIGhhbmRsaW5nXG4gIGFkZFJlYWN0aW9uOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCByZWFjdGlvbjogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGFkZFJlYWN0aW9uczogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgcmVhY3Rpb25zOiBzdHJpbmdbXSwgb3JkZXJlZD86IGJvb2xlYW4pID0+IFByb21pc2U8dm9pZD5cbiAgYWRkUm9sZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIHJvbGVJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgYWRkVGhyZWFkTWVtYmVyOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGFkZERtUmVjaXBpZW50OiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBBZGREbVJlY2lwaWVudE9wdGlvbnMpID0+IFByb21pc2U8dm9pZD5cbiAgYWRkR3VpbGRNZW1iZXI6IChndWlsZElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBBZGRHdWlsZE1lbWJlck9wdGlvbnMpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlQXV0b21vZFJ1bGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHJ1bGVJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlQ2hhbm5lbDogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlQ2hhbm5lbFBlcm1pc3Npb25PdmVycmlkZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvdmVyd3JpdGVJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlRW1vamk6IChndWlsZElkOiBCaWdTdHJpbmcsIGlkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVBcHBsaWNhdGlvbkVtb2ppOiAoaWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVGb2xsb3d1cE1lc3NhZ2U6ICh0b2tlbjogc3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQ6IChjb21tYW5kSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVHdWlsZDogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZDogKGNvbW1hbmRJZDogQmlnU3RyaW5nLCBndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlR3VpbGRTdGlja2VyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBzdGlja2VySWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUd1aWxkVGVtcGxhdGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHRlbXBsYXRlQ29kZTogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUludGVncmF0aW9uOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBpbnRlZ3JhdGlvbklkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVJbnZpdGU6IChpbnZpdGVDb2RlOiBzdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVNZXNzYWdlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlTWVzc2FnZXM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkczogQmlnU3RyaW5nW10sIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2U6ICh0b2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZU93blJlYWN0aW9uOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCByZWFjdGlvbjogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZVJlYWN0aW9uc0FsbDogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVSZWFjdGlvbnNFbW9qaTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgcmVhY3Rpb246IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVSb2xlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCByb2xlSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZVNjaGVkdWxlZEV2ZW50OiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBldmVudElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlU3RhZ2VJbnN0YW5jZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlVXNlclJlYWN0aW9uOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgcmVhY3Rpb246IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVXZWJob29rOiAod2ViaG9va0lkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVXZWJob29rTWVzc2FnZTogKHdlYmhvb2tJZDogQmlnU3RyaW5nLCB0b2tlbjogc3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IERlbGV0ZVdlYmhvb2tNZXNzYWdlT3B0aW9ucykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVXZWJob29rV2l0aFRva2VuOiAod2ViaG9va0lkOiBCaWdTdHJpbmcsIHRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZWRpdENoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGVzOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEVkaXRDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlc09wdGlvbnMsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBlZGl0Q2hhbm5lbFBvc2l0aW9uczogKGd1aWxkSWQ6IEJpZ1N0cmluZywgY2hhbm5lbFBvc2l0aW9uczogTW9kaWZ5R3VpbGRDaGFubmVsUG9zaXRpb25zW10pID0+IFByb21pc2U8dm9pZD5cbiAgZWRpdEd1aWxkTWZhTGV2ZWw6IChndWlsZElkOiBCaWdTdHJpbmcsIG1mYUxldmVsOiBNZmFMZXZlbHMsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBlZGl0T3duVm9pY2VTdGF0ZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogRWRpdE93blZvaWNlU3RhdGUpID0+IFByb21pc2U8dm9pZD5cbiAgZWRpdFVzZXJWb2ljZVN0YXRlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBFZGl0VXNlclZvaWNlU3RhdGUpID0+IFByb21pc2U8dm9pZD5cbiAgam9pblRocmVhZDogKGNoYW5uZWxJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGxlYXZlR3VpbGQ6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgbGVhdmVUaHJlYWQ6IChjaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICByZW1vdmVSb2xlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgcm9sZUlkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICByZW1vdmVUaHJlYWRNZW1iZXI6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgcmVtb3ZlRG1SZWNpcGllbnQ6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgc2VuZEludGVyYWN0aW9uUmVzcG9uc2U6IChcbiAgICBpbnRlcmFjdGlvbklkOiBCaWdTdHJpbmcsXG4gICAgdG9rZW46IHN0cmluZyxcbiAgICBvcHRpb25zOiBJbnRlcmFjdGlvblJlc3BvbnNlLFxuICAgIHBhcmFtcz86IEludGVyYWN0aW9uQ2FsbGJhY2tPcHRpb25zLFxuICApID0+IFByb21pc2U8dm9pZCB8IFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydpbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UnXT5cbiAgdHJpZ2dlclR5cGluZ0luZGljYXRvcjogKGNoYW5uZWxJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGJhbk1lbWJlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBDcmVhdGVHdWlsZEJhbiwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGtpY2tNZW1iZXI6IChndWlsZElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgcGluTWVzc2FnZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIHVuYmFuTWVtYmVyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIHVucGluTWVzc2FnZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGdldEd1aWxkT25ib2FyZGluZzogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnZ3VpbGRPbmJvYXJkaW5nJ10+XG4gIGVkaXRHdWlsZE9uYm9hcmRpbmc6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogRWRpdEd1aWxkT25ib2FyZGluZyxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnZ3VpbGRPbmJvYXJkaW5nJ10+XG4gIGxpc3RFbnRpdGxlbWVudHM6IChhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBHZXRFbnRpdGxlbWVudHMpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ2VudGl0bGVtZW50J11bXT5cbiAgZ2V0RW50aXRsZW1lbnQ6IChhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcsIGVudGl0bGVtZW50SWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnZW50aXRsZW1lbnQnXT5cbiAgY3JlYXRlVGVzdEVudGl0bGVtZW50OiAoXG4gICAgYXBwbGljYXRpb25JZDogQmlnU3RyaW5nLFxuICAgIGJvZHk6IENyZWF0ZUVudGl0bGVtZW50LFxuICApID0+IFByb21pc2U8UGFydGlhbDxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnZW50aXRsZW1lbnQnXT4+XG4gIGRlbGV0ZVRlc3RFbnRpdGxlbWVudDogKGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZywgZW50aXRsZW1lbnRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGxpc3RTa3VzOiAoYXBwbGljYXRpb25JZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydza3UnXVtdPlxuICBsaXN0U3Vic2NyaXB0aW9uczogKHNrdUlkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBMaXN0U2t1U3Vic2NyaXB0aW9uc09wdGlvbnMpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ3N1YnNjcmlwdGlvbiddW10+XG4gIGdldFN1YnNjcmlwdGlvbjogKHNrdUlkOiBCaWdTdHJpbmcsIHN1YnNjcmlwdGlvbklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ3N1YnNjcmlwdGlvbiddPlxuICBzZW5kU291bmRib2FyZFNvdW5kOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IFNlbmRTb3VuZGJvYXJkU291bmQpID0+IFByb21pc2U8dm9pZD5cbiAgbGlzdERlZmF1bHRTb3VuZGJvYXJkU291bmRzOiAoKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydzb3VuZGJvYXJkU291bmQnXVtdPlxuICBsaXN0R3VpbGRTb3VuZGJvYXJkU291bmRzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHsgaXRlbXM6IFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydzb3VuZGJvYXJkU291bmQnXVtdIH0+XG4gIGdldEd1aWxkU291bmRib2FyZFNvdW5kOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBzb3VuZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ3NvdW5kYm9hcmRTb3VuZCddPlxuICBjcmVhdGVHdWlsZFNvdW5kYm9hcmRTb3VuZDogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBDcmVhdGVHdWlsZFNvdW5kYm9hcmRTb3VuZCxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnc291bmRib2FyZFNvdW5kJ10+XG4gIG1vZGlmeUd1aWxkU291bmRib2FyZFNvdW5kOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIHNvdW5kSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBNb2RpZnlHdWlsZFNvdW5kYm9hcmRTb3VuZCxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnc291bmRib2FyZFNvdW5kJ10+XG4gIGRlbGV0ZUd1aWxkU291bmRib2FyZFNvdW5kOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBzb3VuZElkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxufVxuIl0sIm5hbWVzIjpbInNuYWtlbGl6ZSIsImNyZWF0ZUJvdEhlbHBlcnMiLCJib3QiLCJjcmVhdGVBdXRvbW9kUnVsZSIsImd1aWxkSWQiLCJvcHRpb25zIiwicmVhc29uIiwidHJhbnNmb3JtZXJzIiwiYXV0b21vZFJ1bGUiLCJyZXN0IiwiY3JlYXRlQ2hhbm5lbCIsImNoYW5uZWwiLCJjcmVhdGVFbW9qaSIsImVtb2ppIiwiY3JlYXRlQXBwbGljYXRpb25FbW9qaSIsImNyZWF0ZUZvcnVtVGhyZWFkIiwiY2hhbm5lbElkIiwiY3JlYXRlR2xvYmFsQXBwbGljYXRpb25Db21tYW5kIiwiY29tbWFuZCIsImFwcGxpY2F0aW9uQ29tbWFuZCIsImNyZWF0ZUd1aWxkIiwiZ3VpbGQiLCJzaGFyZElkIiwiY3JlYXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQiLCJjcmVhdGVHdWlsZEZyb21UZW1wbGF0ZSIsInRlbXBsYXRlQ29kZSIsImNyZWF0ZUd1aWxkU3RpY2tlciIsInN0aWNrZXIiLCJjcmVhdGVHdWlsZFRlbXBsYXRlIiwidGVtcGxhdGUiLCJjcmVhdGVJbnZpdGUiLCJjcmVhdGVSb2xlIiwicm9sZSIsImNyZWF0ZVNjaGVkdWxlZEV2ZW50Iiwic2NoZWR1bGVkRXZlbnQiLCJjcmVhdGVTdGFnZUluc3RhbmNlIiwic3RhZ2VJbnN0YW5jZSIsImNyZWF0ZVdlYmhvb2siLCJ3ZWJob29rIiwiZWRpdEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zIiwiY29tbWFuZElkIiwiYmVhcmVyVG9rZW4iLCJhcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uIiwiZWRpdEF1dG9tb2RSdWxlIiwicnVsZUlkIiwiZWRpdEJvdFByb2ZpbGUiLCJ1c2VyIiwiZWRpdENoYW5uZWwiLCJlZGl0RW1vamkiLCJpZCIsImVkaXRBcHBsaWNhdGlvbkVtb2ppIiwiZWRpdEZvbGxvd3VwTWVzc2FnZSIsInRva2VuIiwibWVzc2FnZUlkIiwibWVzc2FnZSIsImVkaXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQiLCJlZGl0R3VpbGQiLCJlZGl0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQiLCJlZGl0R3VpbGRTdGlja2VyIiwic3RpY2tlcklkIiwiZWRpdEd1aWxkVGVtcGxhdGUiLCJlZGl0TWVzc2FnZSIsImVkaXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UiLCJlZGl0T3JpZ2luYWxXZWJob29rTWVzc2FnZSIsIndlYmhvb2tJZCIsImVkaXRSb2xlIiwicm9sZUlkIiwiZWRpdFJvbGVQb3NpdGlvbnMiLCJtYXAiLCJlZGl0U2NoZWR1bGVkRXZlbnQiLCJldmVudElkIiwiZWRpdFN0YWdlSW5zdGFuY2UiLCJ0b3BpYyIsImVkaXRXZWJob29rIiwiZWRpdFdlYmhvb2tNZXNzYWdlIiwiZWRpdFdlYmhvb2tXaXRoVG9rZW4iLCJlZGl0V2VsY29tZVNjcmVlbiIsIndlbGNvbWVTY3JlZW4iLCJlZGl0V2lkZ2V0U2V0dGluZ3MiLCJ3aWRnZXRTZXR0aW5ncyIsImV4ZWN1dGVXZWJob29rIiwicmVzdWx0IiwiZm9sbG93QW5ub3VuY2VtZW50Iiwic291cmNlQ2hhbm5lbElkIiwidGFyZ2V0Q2hhbm5lbElkIiwiZ2V0QWN0aXZlVGhyZWFkcyIsInRocmVhZHMiLCJ0aHJlYWQiLCJtZW1iZXJzIiwibWVtYmVyIiwidGhyZWFkTWVtYmVyIiwiZ2V0QXBwbGljYXRpb25JbmZvIiwiYXBwbGljYXRpb24iLCJlZGl0QXBwbGljYXRpb25JbmZvIiwiYm9keSIsImdldEN1cnJlbnRBdXRoZW50aWNhdGlvbkluZm8iLCJleGNoYW5nZVRva2VuIiwiY2xpZW50SWQiLCJjbGllbnRTZWNyZXQiLCJyZXZva2VUb2tlbiIsImdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb24iLCJyZXMiLCJzbmFrZWRSZXMiLCJnZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucyIsImdldEF1ZGl0TG9nIiwiZ2V0QXV0b21vZFJ1bGUiLCJnZXRBdXRvbW9kUnVsZXMiLCJnZXRBdmFpbGFibGVWb2ljZVJlZ2lvbnMiLCJ2b2ljZVJlZ2lvbiIsImdldEJhbiIsInVzZXJJZCIsImdldEJhbnMiLCJnZXRDaGFubmVsIiwiZ2V0Q2hhbm5lbEludml0ZXMiLCJnZXRDaGFubmVscyIsImdldENoYW5uZWxXZWJob29rcyIsImdldERtQ2hhbm5lbCIsImdldEdyb3VwRG1DaGFubmVsIiwiZ2V0RW1vamkiLCJlbW9qaUlkIiwiZ2V0QXBwbGljYXRpb25FbW9qaSIsImdldEVtb2ppcyIsImdldEFwcGxpY2F0aW9uRW1vamlzIiwiaXRlbXMiLCJpdGVtIiwiZ2V0Rm9sbG93dXBNZXNzYWdlIiwiZ2V0R2F0ZXdheUJvdCIsImdhdGV3YXlCb3QiLCJnZXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQiLCJnZXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzIiwiZ2V0R3VpbGQiLCJnZXRHdWlsZHMiLCJnZXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZCIsImdldEd1aWxkQXBwbGljYXRpb25Db21tYW5kcyIsImdldEd1aWxkUHJldmlldyIsImdldEd1aWxkU3RpY2tlciIsImdldEd1aWxkU3RpY2tlcnMiLCJnZXRHdWlsZFRlbXBsYXRlIiwiZ2V0R3VpbGRUZW1wbGF0ZXMiLCJnZXRHdWlsZFdlYmhvb2tzIiwiZ2V0SW50ZWdyYXRpb25zIiwiaW50ZWdyYXRpb24iLCJ0b1N0cmluZyIsImdldEludml0ZSIsImludml0ZUNvZGUiLCJpbnZpdGUiLCJnZXRJbnZpdGVzIiwiZ2V0TWVzc2FnZSIsImdldE1lc3NhZ2VzIiwiZ2V0U3RpY2tlclBhY2siLCJzdGlja2VyUGFja0lkIiwic3RpY2tlclBhY2siLCJnZXRTdGlja2VyUGFja3MiLCJnZXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UiLCJnZXRQaW5uZWRNZXNzYWdlcyIsImdldFByaXZhdGVBcmNoaXZlZFRocmVhZHMiLCJnZXRQcml2YXRlSm9pbmVkQXJjaGl2ZWRUaHJlYWRzIiwiZ2V0UHJ1bmVDb3VudCIsImdldFB1YmxpY0FyY2hpdmVkVGhyZWFkcyIsImdldFJvbGVzIiwiZ2V0Um9sZSIsImdldFNjaGVkdWxlZEV2ZW50IiwiZ2V0U2NoZWR1bGVkRXZlbnRzIiwiZ2V0U2NoZWR1bGVkRXZlbnRVc2VycyIsInUiLCJzbm93Zmxha2UiLCJnZXRTZXNzaW9uSW5mbyIsImdldFN0YWdlSW5zdGFuY2UiLCJnZXRPd25Wb2ljZVN0YXRlIiwidm9pY2VTdGF0ZSIsImdldFVzZXJWb2ljZVN0YXRlIiwiZ2V0U3RpY2tlciIsImdldFRocmVhZE1lbWJlciIsImdldFRocmVhZE1lbWJlcnMiLCJnZXRSZWFjdGlvbnMiLCJyZWFjdGlvbiIsImdldFVzZXIiLCJnZXRDdXJyZW50VXNlciIsImdldFVzZXJDb25uZWN0aW9ucyIsImdldFVzZXJBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uIiwiYXBwbGljYXRpb25JZCIsImdldFZhbml0eVVybCIsImdldFZvaWNlUmVnaW9ucyIsImdldFdlYmhvb2siLCJnZXRXZWJob29rTWVzc2FnZSIsImdldFdlYmhvb2tXaXRoVG9rZW4iLCJnZXRXZWxjb21lU2NyZWVuIiwiZ2V0V2lkZ2V0Iiwid2lkZ2V0IiwiZ2V0V2lkZ2V0U2V0dGluZ3MiLCJwdWJsaXNoTWVzc2FnZSIsInNlbmRNZXNzYWdlIiwic2VuZEZvbGxvd3VwTWVzc2FnZSIsInN0YXJ0VGhyZWFkV2l0aE1lc3NhZ2UiLCJzdGFydFRocmVhZFdpdGhvdXRNZXNzYWdlIiwic3luY0d1aWxkVGVtcGxhdGUiLCJ1cHNlcnRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzIiwiY29tbWFuZHMiLCJ1cHNlcnRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZHMiLCJlZGl0Qm90TWVtYmVyIiwiZWRpdE1lbWJlciIsImdldE1lbWJlciIsImdldEN1cnJlbnRNZW1iZXIiLCJnZXRNZW1iZXJzIiwicHJ1bmVNZW1iZXJzIiwic2VhcmNoTWVtYmVycyIsInF1ZXJ5IiwiYnVsa0Jhbk1lbWJlcnMiLCJiYW5uZWRVc2VycyIsIngiLCJmYWlsZWRVc2VycyIsImdldEFwcGxpY2F0aW9uQWN0aXZpdHlJbnN0YW5jZSIsImluc3RhbmNlSWQiLCJhZGRSZWFjdGlvbiIsImFkZFJlYWN0aW9ucyIsInJlYWN0aW9ucyIsIm9yZGVyZWQiLCJhZGRSb2xlIiwiYWRkVGhyZWFkTWVtYmVyIiwiYWRkRG1SZWNpcGllbnQiLCJhZGRHdWlsZE1lbWJlciIsImRlbGV0ZUF1dG9tb2RSdWxlIiwiZGVsZXRlQ2hhbm5lbCIsImRlbGV0ZUNoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGUiLCJvdmVyd3JpdGVJZCIsImRlbGV0ZUVtb2ppIiwiZGVsZXRlQXBwbGljYXRpb25FbW9qaSIsImRlbGV0ZUZvbGxvd3VwTWVzc2FnZSIsImRlbGV0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZCIsImRlbGV0ZUd1aWxkIiwiZGVsZXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQiLCJkZWxldGVHdWlsZFN0aWNrZXIiLCJkZWxldGVHdWlsZFRlbXBsYXRlIiwiZGVsZXRlSW50ZWdyYXRpb24iLCJpbnRlZ3JhdGlvbklkIiwiZGVsZXRlSW52aXRlIiwiZGVsZXRlTWVzc2FnZSIsImRlbGV0ZU1lc3NhZ2VzIiwibWVzc2FnZUlkcyIsImRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSIsImRlbGV0ZU93blJlYWN0aW9uIiwiZGVsZXRlUmVhY3Rpb25zQWxsIiwiZGVsZXRlUmVhY3Rpb25zRW1vamkiLCJkZWxldGVSb2xlIiwiZGVsZXRlU2NoZWR1bGVkRXZlbnQiLCJkZWxldGVTdGFnZUluc3RhbmNlIiwiZGVsZXRlVXNlclJlYWN0aW9uIiwiZGVsZXRlV2ViaG9vayIsImRlbGV0ZVdlYmhvb2tNZXNzYWdlIiwiZGVsZXRlV2ViaG9va1dpdGhUb2tlbiIsImVkaXRDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlcyIsImVkaXRDaGFubmVsUG9zaXRpb25zIiwiY2hhbm5lbFBvc2l0aW9ucyIsImVkaXRHdWlsZE1mYUxldmVsIiwibWZhTGV2ZWwiLCJlZGl0T3duVm9pY2VTdGF0ZSIsImVkaXRVc2VyVm9pY2VTdGF0ZSIsImVkaXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbiIsImpvaW5UaHJlYWQiLCJsZWF2ZUd1aWxkIiwibGVhdmVUaHJlYWQiLCJyZW1vdmVSb2xlIiwicmVtb3ZlVGhyZWFkTWVtYmVyIiwicmVtb3ZlRG1SZWNpcGllbnQiLCJzZW5kSW50ZXJhY3Rpb25SZXNwb25zZSIsImludGVyYWN0aW9uSWQiLCJwYXJhbXMiLCJyZXNwb25zZSIsImludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSIsInRyaWdnZXJUeXBpbmdJbmRpY2F0b3IiLCJiYW5NZW1iZXIiLCJraWNrTWVtYmVyIiwicGluTWVzc2FnZSIsInVuYmFuTWVtYmVyIiwidW5waW5NZXNzYWdlIiwiZ2V0R3VpbGRPbmJvYXJkaW5nIiwiZ3VpbGRPbmJvYXJkaW5nIiwiZWRpdEd1aWxkT25ib2FyZGluZyIsImxpc3RFbnRpdGxlbWVudHMiLCJlbnRpdGxlbWVudCIsImdldEVudGl0bGVtZW50IiwiZW50aXRsZW1lbnRJZCIsImNyZWF0ZVRlc3RFbnRpdGxlbWVudCIsImRlbGV0ZVRlc3RFbnRpdGxlbWVudCIsImxpc3RTa3VzIiwic2t1IiwiZ2V0U3Vic2NyaXB0aW9uIiwic2t1SWQiLCJzdWJzY3JpcHRpb25JZCIsInN1YnNjcmlwdGlvbiIsImxpc3RTdWJzY3JpcHRpb25zIiwic2VuZFNvdW5kYm9hcmRTb3VuZCIsImxpc3REZWZhdWx0U291bmRib2FyZFNvdW5kcyIsInNvdW5kIiwic291bmRib2FyZFNvdW5kIiwibGlzdEd1aWxkU291bmRib2FyZFNvdW5kcyIsImdldEd1aWxkU291bmRib2FyZFNvdW5kIiwic291bmRJZCIsImNyZWF0ZUd1aWxkU291bmRib2FyZFNvdW5kIiwibW9k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
772
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQWRkRG1SZWNpcGllbnRPcHRpb25zLFxuICBBZGRHdWlsZE1lbWJlck9wdGlvbnMsXG4gIEF0TGVhc3RPbmUsXG4gIEJlZ2luR3VpbGRQcnVuZSxcbiAgQmlnU3RyaW5nLFxuICBDYW1lbGl6ZSxcbiAgQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kLFxuICBDcmVhdGVBcHBsaWNhdGlvbkVtb2ppLFxuICBDcmVhdGVBdXRvTW9kZXJhdGlvblJ1bGVPcHRpb25zLFxuICBDcmVhdGVDaGFubmVsSW52aXRlLFxuICBDcmVhdGVFbnRpdGxlbWVudCxcbiAgQ3JlYXRlRm9ydW1Qb3N0V2l0aE1lc3NhZ2UsXG4gIENyZWF0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMsXG4gIENyZWF0ZUd1aWxkLFxuICBDcmVhdGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMsXG4gIENyZWF0ZUd1aWxkQmFuLFxuICBDcmVhdGVHdWlsZEJ1bGtCYW4sXG4gIENyZWF0ZUd1aWxkQ2hhbm5lbCxcbiAgQ3JlYXRlR3VpbGRFbW9qaSxcbiAgQ3JlYXRlR3VpbGRGcm9tVGVtcGxhdGUsXG4gIENyZWF0ZUd1aWxkUm9sZSxcbiAgQ3JlYXRlR3VpbGRTb3VuZGJvYXJkU291bmQsXG4gIENyZWF0ZUd1aWxkU3RpY2tlck9wdGlvbnMsXG4gIENyZWF0ZU1lc3NhZ2VPcHRpb25zLFxuICBDcmVhdGVTY2hlZHVsZWRFdmVudCxcbiAgQ3JlYXRlU3RhZ2VJbnN0YW5jZSxcbiAgQ3JlYXRlVGVtcGxhdGUsXG4gIENyZWF0ZVdlYmhvb2ssXG4gIERlbGV0ZVdlYmhvb2tNZXNzYWdlT3B0aW9ucyxcbiAgRGlzY29yZEFjY2Vzc1Rva2VuUmVzcG9uc2UsXG4gIERpc2NvcmRBY3Rpdml0eUluc3RhbmNlLFxuICBEaXNjb3JkQXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnMsXG4gIERpc2NvcmRBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uLFxuICBEaXNjb3JkQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbk1ldGFkYXRhLFxuICBEaXNjb3JkQXJjaGl2ZWRUaHJlYWRzLFxuICBEaXNjb3JkQXVkaXRMb2csXG4gIERpc2NvcmRCYW4sXG4gIERpc2NvcmRDb25uZWN0aW9uLFxuICBEaXNjb3JkQ3VycmVudEF1dGhvcml6YXRpb24sXG4gIERpc2NvcmRGb2xsb3dlZENoYW5uZWwsXG4gIERpc2NvcmRHZXRHYXRld2F5Qm90LFxuICBEaXNjb3JkR3VpbGRQcmV2aWV3LFxuICBEaXNjb3JkR3VpbGRXaWRnZXRTZXR0aW5ncyxcbiAgRGlzY29yZEludml0ZSxcbiAgRGlzY29yZEludml0ZU1ldGFkYXRhLFxuICBEaXNjb3JkTWVzc2FnZSxcbiAgRGlzY29yZE1vZGlmeUd1aWxkV2VsY29tZVNjcmVlbixcbiAgRGlzY29yZFBydW5lZENvdW50LFxuICBEaXNjb3JkVG9rZW5FeGNoYW5nZSxcbiAgRGlzY29yZFRva2VuUmV2b2NhdGlvbixcbiAgRGlzY29yZFZhbml0eVVybCxcbiAgRGlzY29yZFZvaWNlUmVnaW9uLFxuICBFZGl0QXBwbGljYXRpb24sXG4gIEVkaXRBdXRvTW9kZXJhdGlvblJ1bGVPcHRpb25zLFxuICBFZGl0Qm90TWVtYmVyT3B0aW9ucyxcbiAgRWRpdENoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGVzT3B0aW9ucyxcbiAgRWRpdEd1aWxkT25ib2FyZGluZyxcbiAgRWRpdEd1aWxkUm9sZSxcbiAgRWRpdEd1aWxkU3RpY2tlck9wdGlvbnMsXG4gIEVkaXRNZXNzYWdlLFxuICBFZGl0T3duVm9pY2VTdGF0ZSxcbiAgRWRpdFNjaGVkdWxlZEV2ZW50LFxuICBFZGl0VXNlclZvaWNlU3RhdGUsXG4gIEV4ZWN1dGVXZWJob29rLFxuICBHZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uT3B0aW9ucyxcbiAgR2V0QmFucyxcbiAgR2V0RW50aXRsZW1lbnRzLFxuICBHZXRHcm91cERtT3B0aW9ucyxcbiAgR2V0R3VpbGRBdWRpdExvZyxcbiAgR2V0R3VpbGRQcnVuZUNvdW50UXVlcnksXG4gIEdldEludml0ZSxcbiAgR2V0TWVzc2FnZXNPcHRpb25zLFxuICBHZXRSZWFjdGlvbnMsXG4gIEdldFNjaGVkdWxlZEV2ZW50VXNlcnMsXG4gIEdldFNjaGVkdWxlZEV2ZW50cyxcbiAgR2V0VXNlckd1aWxkcyxcbiAgR2V0V2ViaG9va01lc3NhZ2VPcHRpb25zLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrRGF0YSxcbiAgSW50ZXJhY3Rpb25DYWxsYmFja09wdGlvbnMsXG4gIEludGVyYWN0aW9uUmVzcG9uc2UsXG4gIExpc3RBcmNoaXZlZFRocmVhZHMsXG4gIExpc3RHdWlsZE1lbWJlcnMsXG4gIExpc3RTa3VTdWJzY3JpcHRpb25zT3B0aW9ucyxcbiAgTWZhTGV2ZWxzLFxuICBNb2RpZnlBcHBsaWNhdGlvbkVtb2ppLFxuICBNb2RpZnlDaGFubmVsLFxuICBNb2RpZnlHdWlsZCxcbiAgTW9kaWZ5R3VpbGRDaGFubmVsUG9zaXRpb25zLFxuICBNb2RpZnlHdWlsZEVtb2ppLFxuICBNb2RpZnlHdWlsZE1lbWJlcixcbiAgTW9kaWZ5R3VpbGRTb3VuZGJvYXJkU291bmQsXG4gIE1vZGlmeUd1aWxkVGVtcGxhdGUsXG4gIE1vZGlmeVJvbGVQb3NpdGlvbnMsXG4gIE1vZGlmeVdlYmhvb2ssXG4gIFNlYXJjaE1lbWJlcnMsXG4gIFNlbmRTb3VuZGJvYXJkU291bmQsXG4gIFN0YXJ0VGhyZWFkV2l0aE1lc3NhZ2UsXG4gIFN0YXJ0VGhyZWFkV2l0aG91dE1lc3NhZ2UsXG4gIFVwc2VydEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMsXG4gIFVwc2VydEd1aWxkQXBwbGljYXRpb25Db21tYW5kT3B0aW9ucyxcbn0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBzbmFrZWxpemUgfSBmcm9tICdAZGlzY29yZGVuby91dGlscydcbmltcG9ydCB0eXBlIHsgQm90IH0gZnJvbSAnLi9ib3QuanMnXG5pbXBvcnQgdHlwZSB7IERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3IsIFNldHVwRGVzaXJlZFByb3BzLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcyB9IGZyb20gJy4vZGVzaXJlZFByb3BlcnRpZXMuanMnXG5pbXBvcnQgdHlwZSB7XG4gIEFwcGxpY2F0aW9uLFxuICBBcHBsaWNhdGlvbkNvbW1hbmQsXG4gIEF1dG9Nb2RlcmF0aW9uUnVsZSxcbiAgQ2hhbm5lbCxcbiAgRW1vamksXG4gIEVudGl0bGVtZW50LFxuICBHdWlsZCxcbiAgR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucyxcbiAgR3VpbGRPbmJvYXJkaW5nLFxuICBHdWlsZFdpZGdldCxcbiAgR3VpbGRXaWRnZXRTZXR0aW5ncyxcbiAgSW50ZWdyYXRpb24sXG4gIEludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSxcbiAgSW52aXRlLFxuICBNZW1iZXIsXG4gIE1lc3NhZ2UsXG4gIFJvbGUsXG4gIFNjaGVkdWxlZEV2ZW50LFxuICBTa3UsXG4gIFNvdW5kYm9hcmRTb3VuZCxcbiAgU3RhZ2VJbnN0YW5jZSxcbiAgU3RpY2tlcixcbiAgU3RpY2tlclBhY2ssXG4gIFN1YnNjcmlwdGlvbixcbiAgVGVtcGxhdGUsXG4gIFRocmVhZE1lbWJlcixcbiAgVXNlcixcbiAgVm9pY2VTdGF0ZSxcbiAgV2ViaG9vayxcbiAgV2VsY29tZVNjcmVlbixcbn0gZnJvbSAnLi90cmFuc2Zvcm1lcnMvaW5kZXguanMnXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCb3RIZWxwZXJzPFRQcm9wcyBleHRlbmRzIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBUQmVoYXZpb3IgZXh0ZW5kcyBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPihcbiAgYm90OiBCb3Q8VFByb3BzLCBUQmVoYXZpb3I+LFxuKTogQm90SGVscGVyczxUUHJvcHMsIFRCZWhhdmlvcj4ge1xuICByZXR1cm4ge1xuICAgIGNyZWF0ZUF1dG9tb2RSdWxlOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hdXRvbW9kUnVsZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVBdXRvbW9kUnVsZShndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGNyZWF0ZUNoYW5uZWw6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVDaGFubmVsKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpLCBndWlsZElkIH0pXG4gICAgfSxcbiAgICBjcmVhdGVFbW9qaTogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlRW1vamkoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBjcmVhdGVBcHBsaWNhdGlvbkVtb2ppOiBhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlQXBwbGljYXRpb25FbW9qaShvcHRpb25zKSkpXG4gICAgfSxcbiAgICBjcmVhdGVGb3J1bVRocmVhZDogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlRm9ydW1UaHJlYWQoY2hhbm5lbElkLCBvcHRpb25zLCByZWFzb24pKSB9KVxuICAgIH0sXG4gICAgY3JlYXRlR2xvYmFsQXBwbGljYXRpb25Db21tYW5kOiBhc3luYyAoY29tbWFuZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZChjb21tYW5kLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBjcmVhdGVHdWlsZDogYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmd1aWxkKGJvdCwgeyBndWlsZDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUd1aWxkKG9wdGlvbnMpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgY3JlYXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQ6IGFzeW5jIChjb21tYW5kLCBndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQoY29tbWFuZCwgZ3VpbGRJZCwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgY3JlYXRlR3VpbGRGcm9tVGVtcGxhdGU6IGFzeW5jICh0ZW1wbGF0ZUNvZGUsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmd1aWxkKGJvdCwgeyBndWlsZDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUd1aWxkRnJvbVRlbXBsYXRlKHRlbXBsYXRlQ29kZSwgb3B0aW9ucykpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBjcmVhdGVHdWlsZFN0aWNrZXI6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnN0aWNrZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlR3VpbGRTdGlja2VyKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgY3JlYXRlR3VpbGRUZW1wbGF0ZTogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnRlbXBsYXRlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUd1aWxkVGVtcGxhdGUoZ3VpbGRJZCwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgY3JlYXRlSW52aXRlOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5jcmVhdGVJbnZpdGUoY2hhbm5lbElkLCBvcHRpb25zLCByZWFzb24pXG4gICAgfSxcbiAgICBjcmVhdGVSb2xlOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5yb2xlKGJvdCwgeyByb2xlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlUm9sZShndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSwgZ3VpbGRJZCB9KVxuICAgIH0sXG4gICAgY3JlYXRlU2NoZWR1bGVkRXZlbnQ6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnNjaGVkdWxlZEV2ZW50KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZVNjaGVkdWxlZEV2ZW50KGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgY3JlYXRlU3RhZ2VJbnN0YW5jZTogYXN5bmMgKG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3RhZ2VJbnN0YW5jZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVTdGFnZUluc3RhbmNlKG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgY3JlYXRlV2ViaG9vazogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy53ZWJob29rKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZVdlYmhvb2soY2hhbm5lbElkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGVkaXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uczogYXN5bmMgKGd1aWxkSWQsIGNvbW1hbmRJZCwgYmVhcmVyVG9rZW4sIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb24oXG4gICAgICAgIGJvdCxcbiAgICAgICAgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucyhndWlsZElkLCBjb21tYW5kSWQsIGJlYXJlclRva2VuLCBvcHRpb25zKSksXG4gICAgICApXG4gICAgfSxcbiAgICBlZGl0QXV0b21vZFJ1bGU6IGFzeW5jIChndWlsZElkLCBydWxlSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXV0b21vZFJ1bGUoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEF1dG9tb2RSdWxlKGd1aWxkSWQsIHJ1bGVJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBlZGl0Qm90UHJvZmlsZTogYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEJvdFByb2ZpbGUob3B0aW9ucykpKVxuICAgIH0sXG4gICAgZWRpdENoYW5uZWw6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRDaGFubmVsKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSkgfSlcbiAgICB9LFxuICAgIGVkaXRFbW9qaTogYXN5bmMgKGd1aWxkSWQsIGlkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRFbW9qaShndWlsZElkLCBpZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBlZGl0QXBwbGljYXRpb25FbW9qaTogYXN5bmMgKGlkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0QXBwbGljYXRpb25FbW9qaShpZCwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgZWRpdEZvbGxvd3VwTWVzc2FnZTogYXN5bmMgKHRva2VuLCBtZXNzYWdlSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0Rm9sbG93dXBNZXNzYWdlKHRva2VuLCBtZXNzYWdlSWQsIG9wdGlvbnMpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgZWRpdEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogYXN5bmMgKGNvbW1hbmRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQoY29tbWFuZElkLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBlZGl0R3VpbGQ6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmd1aWxkKGJvdCwgeyBndWlsZDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRHdWlsZChndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgZWRpdEd1aWxkQXBwbGljYXRpb25Db21tYW5kOiBhc3luYyAoY29tbWFuZElkLCBndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEd1aWxkQXBwbGljYXRpb25Db21tYW5kKGNvbW1hbmRJZCwgZ3VpbGRJZCwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgZWRpdEd1aWxkU3RpY2tlcjogYXN5bmMgKGd1aWxkSWQsIHN0aWNrZXJJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zdGlja2VyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRHdWlsZFN0aWNrZXIoZ3VpbGRJZCwgc3RpY2tlcklkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGVkaXRHdWlsZFRlbXBsYXRlOiBhc3luYyAoZ3VpbGRJZCwgdGVtcGxhdGVDb2RlLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy50ZW1wbGF0ZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0R3VpbGRUZW1wbGF0ZShndWlsZElkLCB0ZW1wbGF0ZUNvZGUsIG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGVkaXRNZXNzYWdlOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7XG4gICAgICAgIG1lc3NhZ2U6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0TWVzc2FnZShjaGFubmVsSWQsIG1lc3NhZ2VJZCwgb3B0aW9ucykpIGFzIERpc2NvcmRNZXNzYWdlLFxuICAgICAgICBzaGFyZElkOiAwLFxuICAgICAgfSlcbiAgICB9LFxuICAgIGVkaXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2U6IGFzeW5jICh0b2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UodG9rZW4sIG9wdGlvbnMpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgZWRpdE9yaWdpbmFsV2ViaG9va01lc3NhZ2U6IGFzeW5jICh3ZWJob29rSWQsIHRva2VuLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwge1xuICAgICAgICBtZXNzYWdlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdE9yaWdpbmFsV2ViaG9va01lc3NhZ2Uod2ViaG9va0lkLCB0b2tlbiwgb3B0aW9ucykpIGFzIERpc2NvcmRNZXNzYWdlLFxuICAgICAgICBzaGFyZElkOiAwLFxuICAgICAgfSlcbiAgICB9LFxuICAgIGVkaXRSb2xlOiBhc3luYyAoZ3VpbGRJZCwgcm9sZUlkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnJvbGUoYm90LCB7IHJvbGU6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0Um9sZShndWlsZElkLCByb2xlSWQsIG9wdGlvbnMsIHJlYXNvbikpLCBndWlsZElkIH0pXG4gICAgfSxcbiAgICBlZGl0Um9sZVBvc2l0aW9uczogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0Um9sZVBvc2l0aW9ucyhndWlsZElkLCBvcHRpb25zLCByZWFzb24pKS5tYXAoKHJvbGUpID0+IGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHsgcm9sZSwgZ3VpbGRJZCB9KSlcbiAgICB9LFxuICAgIGVkaXRTY2hlZHVsZWRFdmVudDogYXN5bmMgKGd1aWxkSWQsIGV2ZW50SWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc2NoZWR1bGVkRXZlbnQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdFNjaGVkdWxlZEV2ZW50KGd1aWxkSWQsIGV2ZW50SWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgZWRpdFN0YWdlSW5zdGFuY2U6IGFzeW5jIChjaGFubmVsSWQsIHRvcGljLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnN0YWdlSW5zdGFuY2UoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdFN0YWdlSW5zdGFuY2UoY2hhbm5lbElkLCB0b3BpYywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBlZGl0V2ViaG9vazogYXN5bmMgKHdlYmhvb2tJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy53ZWJob29rKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRXZWJob29rKHdlYmhvb2tJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBlZGl0V2ViaG9va01lc3NhZ2U6IGFzeW5jICh3ZWJob29rSWQsIHRva2VuLCBtZXNzYWdlSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7XG4gICAgICAgIG1lc3NhZ2U6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0V2ViaG9va01lc3NhZ2Uod2ViaG9va0lkLCB0b2tlbiwgbWVzc2FnZUlkLCBvcHRpb25zKSkgYXMgRGlzY29yZE1lc3NhZ2UsXG4gICAgICAgIHNoYXJkSWQ6IDAsXG4gICAgICB9KVxuICAgIH0sXG4gICAgZWRpdFdlYmhvb2tXaXRoVG9rZW46IGFzeW5jICh3ZWJob29rSWQsIHRva2VuLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy53ZWJob29rKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRXZWJob29rV2l0aFRva2VuKHdlYmhvb2tJZCwgdG9rZW4sIG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGVkaXRXZWxjb21lU2NyZWVuOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy53ZWxjb21lU2NyZWVuKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRXZWxjb21lU2NyZWVuKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgZWRpdFdpZGdldFNldHRpbmdzOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy53aWRnZXRTZXR0aW5ncyhib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0V2lkZ2V0U2V0dGluZ3MoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBleGVjdXRlV2ViaG9vazogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4sIG9wdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGJvdC5yZXN0LmV4ZWN1dGVXZWJob29rKHdlYmhvb2tJZCwgdG9rZW4sIG9wdGlvbnMpXG4gICAgICBpZiAoIXJlc3VsdCkgcmV0dXJuXG5cbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHNuYWtlbGl6ZShyZXN1bHQpIGFzIERpc2NvcmRNZXNzYWdlLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBmb2xsb3dBbm5vdW5jZW1lbnQ6IGFzeW5jIChzb3VyY2VDaGFubmVsSWQsIHRhcmdldENoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmZvbGxvd0Fubm91bmNlbWVudChzb3VyY2VDaGFubmVsSWQsIHRhcmdldENoYW5uZWxJZClcbiAgICB9LFxuICAgIGdldEFjdGl2ZVRocmVhZHM6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBib3QucmVzdC5nZXRBY3RpdmVUaHJlYWRzKGd1aWxkSWQpXG4gICAgICByZXR1cm4ge1xuICAgICAgICB0aHJlYWRzOiByZXN1bHQudGhyZWFkcy5tYXAoKHRocmVhZCkgPT4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBndWlsZElkLCBjaGFubmVsOiBzbmFrZWxpemUodGhyZWFkKSB9KSksXG4gICAgICAgIG1lbWJlcnM6IHJlc3VsdC5tZW1iZXJzLm1hcCgobWVtYmVyKSA9PiBib3QudHJhbnNmb3JtZXJzLnRocmVhZE1lbWJlcihib3QsIHNuYWtlbGl6ZShtZW1iZXIpKSksXG4gICAgICB9XG4gICAgfSxcbiAgICBnZXRBcHBsaWNhdGlvbkluZm86IGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uKGJvdCwgeyBhcHBsaWNhdGlvbjogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEFwcGxpY2F0aW9uSW5mbygpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgZWRpdEFwcGxpY2F0aW9uSW5mbzogYXN5bmMgKGJvZHkpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uKGJvdCwgeyBhcHBsaWNhdGlvbjogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRBcHBsaWNhdGlvbkluZm8oYm9keSkpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBnZXRDdXJyZW50QXV0aGVudGljYXRpb25JbmZvOiBhc3luYyAoYmVhcmVyVG9rZW4pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRDdXJyZW50QXV0aGVudGljYXRpb25JbmZvKGJlYXJlclRva2VuKVxuICAgIH0sXG4gICAgZXhjaGFuZ2VUb2tlbjogYXN5bmMgKGNsaWVudElkLCBjbGllbnRTZWNyZXQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5leGNoYW5nZVRva2VuKGNsaWVudElkLCBjbGllbnRTZWNyZXQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICByZXZva2VUb2tlbjogYXN5bmMgKGNsaWVudElkLCBjbGllbnRTZWNyZXQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5yZXZva2VUb2tlbihjbGllbnRJZCwgY2xpZW50U2VjcmV0LCBvcHRpb25zKVxuICAgIH0sXG4gICAgZ2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbjogYXN5bmMgKGd1aWxkSWQsIGNvbW1hbmRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgYm90LnJlc3QuZ2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbihndWlsZElkLCBjb21tYW5kSWQsIG9wdGlvbnMpXG4gICAgICBjb25zdCBzbmFrZWRSZXMgPSBzbmFrZWxpemUocmVzKVxuXG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uKGJvdCwgc25ha2VkUmVzKVxuICAgIH0sXG4gICAgZ2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnM6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zKGd1aWxkSWQsIG9wdGlvbnMpKS5tYXAoKHJlcykgPT5cbiAgICAgICAgYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uKGJvdCwgc25ha2VsaXplKHJlcykpLFxuICAgICAgKVxuICAgIH0sXG4gICAgZ2V0QXVkaXRMb2c6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0QXVkaXRMb2coZ3VpbGRJZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGdldEF1dG9tb2RSdWxlOiBhc3luYyAoZ3VpbGRJZCwgcnVsZUlkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hdXRvbW9kUnVsZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRBdXRvbW9kUnVsZShndWlsZElkLCBydWxlSWQpKSlcbiAgICB9LFxuICAgIGdldEF1dG9tb2RSdWxlczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0QXV0b21vZFJ1bGVzKGd1aWxkSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5hdXRvbW9kUnVsZShib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldEF2YWlsYWJsZVZvaWNlUmVnaW9uczogYXN5bmMgKCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRBdmFpbGFibGVWb2ljZVJlZ2lvbnMoKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMudm9pY2VSZWdpb24oYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRCYW46IGFzeW5jIChndWlsZElkLCB1c2VySWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRCYW4oZ3VpbGRJZCwgdXNlcklkKVxuICAgIH0sXG4gICAgZ2V0QmFuczogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRCYW5zKGd1aWxkSWQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBnZXRDaGFubmVsOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0Q2hhbm5lbChjaGFubmVsSWQpKSB9KVxuICAgIH0sXG4gICAgZ2V0Q2hhbm5lbEludml0ZXM6IGFzeW5jIChjaGFubmVsSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRDaGFubmVsSW52aXRlcyhjaGFubmVsSWQpXG4gICAgICAvLyByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldENoYW5uZWxJbnZpdGVzKGNoYW5uZWxJZCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLmludml0ZShib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldENoYW5uZWxzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRDaGFubmVscyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbDogc25ha2VsaXplKHJlcyksIGd1aWxkSWQgfSkpXG4gICAgfSxcbiAgICBnZXRDaGFubmVsV2ViaG9va3M6IGFzeW5jIChjaGFubmVsSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0Q2hhbm5lbFdlYmhvb2tzKGNoYW5uZWxJZCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLndlYmhvb2soYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXREbUNoYW5uZWw6IGFzeW5jICh1c2VySWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXREbUNoYW5uZWwodXNlcklkKSkgfSlcbiAgICB9LFxuICAgIGdldEdyb3VwRG1DaGFubmVsOiBhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEdyb3VwRG1DaGFubmVsKG9wdGlvbnMpKSB9KVxuICAgIH0sXG4gICAgZ2V0RW1vamk6IGFzeW5jIChndWlsZElkLCBlbW9qaUlkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRFbW9qaShndWlsZElkLCBlbW9qaUlkKSkpXG4gICAgfSxcbiAgICBnZXRBcHBsaWNhdGlvbkVtb2ppOiBhc3luYyAoZW1vamlJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0QXBwbGljYXRpb25FbW9qaShlbW9qaUlkKSkpXG4gICAgfSxcbiAgICBnZXRFbW9qaXM6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldEVtb2ppcyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRBcHBsaWNhdGlvbkVtb2ppczogYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgYm90LnJlc3QuZ2V0QXBwbGljYXRpb25FbW9qaXMoKVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBpdGVtczogcmVzLml0ZW1zLm1hcCgoaXRlbSkgPT4gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHNuYWtlbGl6ZShpdGVtKSkpLFxuICAgICAgfVxuICAgIH0sXG4gICAgZ2V0Rm9sbG93dXBNZXNzYWdlOiBhc3luYyAodG9rZW4sIG1lc3NhZ2VJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEZvbGxvd3VwTWVzc2FnZSh0b2tlbiwgbWVzc2FnZUlkKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIGdldEdhdGV3YXlCb3Q6IGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmdhdGV3YXlCb3QoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R2F0ZXdheUJvdCgpKSlcbiAgICB9LFxuICAgIGdldEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogYXN5bmMgKGNvbW1hbmRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZChjb21tYW5kSWQpKSlcbiAgICB9LFxuICAgIGdldEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZHM6IGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kcygpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRHdWlsZDogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmd1aWxkKGJvdCwgeyBndWlsZDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkKGd1aWxkSWQsIG9wdGlvbnMpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgZ2V0R3VpbGRzOiBhc3luYyAoYmVhcmVyVG9rZW4sIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRzKGJlYXJlclRva2VuLCBvcHRpb25zKSkubWFwPFBhcnRpYWw8dHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuZ3VpbGQ+PigocmVzKSA9PlxuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIGdldEd1aWxkcyByZXR1cm5zIHBhcnRpYWwgZ3VpbGRzXG4gICAgICAgIGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGQoYm90LCB7IGd1aWxkOiBzbmFrZWxpemUocmVzKSwgc2hhcmRJZDogMCB9KSxcbiAgICAgIClcbiAgICB9LFxuICAgIGdldEd1aWxkQXBwbGljYXRpb25Db21tYW5kOiBhc3luYyAoY29tbWFuZElkLCBndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQoY29tbWFuZElkLCBndWlsZElkKSkpXG4gICAgfSxcbiAgICBnZXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZHM6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkQXBwbGljYXRpb25Db21tYW5kcyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0R3VpbGRQcmV2aWV3OiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkUHJldmlldyhndWlsZElkKVxuICAgICAgLy8gcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMueHh4KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkUHJldmlldyhndWlsZElkKSkpXG4gICAgfSxcbiAgICBnZXRHdWlsZFN0aWNrZXI6IGFzeW5jIChndWlsZElkLCBzdGlja2VySWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnN0aWNrZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRTdGlja2VyKGd1aWxkSWQsIHN0aWNrZXJJZCkpKVxuICAgIH0sXG4gICAgZ2V0R3VpbGRTdGlja2VyczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRTdGlja2VycyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuc3RpY2tlcihib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldEd1aWxkVGVtcGxhdGU6IGFzeW5jICh0ZW1wbGF0ZUNvZGUpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnRlbXBsYXRlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkVGVtcGxhdGUodGVtcGxhdGVDb2RlKSkpXG4gICAgfSxcbiAgICBnZXRHdWlsZFRlbXBsYXRlczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRUZW1wbGF0ZXMoZ3VpbGRJZCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLnRlbXBsYXRlKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0R3VpbGRXZWJob29rczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRXZWJob29rcyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMud2ViaG9vayhib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldEludGVncmF0aW9uczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0SW50ZWdyYXRpb25zKGd1aWxkSWQpKS5tYXAoKHJlcykgPT5cbiAgICAgICAgYm90LnRyYW5zZm9ybWVycy5pbnRlZ3JhdGlvbihib3QsIHNuYWtlbGl6ZSh7IC4uLnJlcywgZ3VpbGRJZDogZ3VpbGRJZC50b1N0cmluZygpIH0pKSxcbiAgICAgIClcbiAgICB9LFxuICAgIGdldEludml0ZTogYXN5bmMgKGludml0ZUNvZGUsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmludml0ZShib3QsIHsgaW52aXRlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0SW52aXRlKGludml0ZUNvZGUsIG9wdGlvbnMpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgZ2V0SW52aXRlczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0SW52aXRlcyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuaW52aXRlKGJvdCwgeyBpbnZpdGU6IHNuYWtlbGl6ZShyZXMpLCBzaGFyZElkOiAwIH0pKVxuICAgIH0sXG4gICAgZ2V0TWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0TWVzc2FnZShjaGFubmVsSWQsIG1lc3NhZ2VJZCkpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBnZXRNZXNzYWdlczogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRNZXNzYWdlcyhjaGFubmVsSWQsIG9wdGlvbnMpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiBzbmFrZWxpemUocmVzKSwgc2hhcmRJZDogMCB9KSlcbiAgICB9LFxuICAgIGdldFN0aWNrZXJQYWNrOiBhc3luYyAoc3RpY2tlclBhY2tJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3RpY2tlclBhY2soYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0U3RpY2tlclBhY2soc3RpY2tlclBhY2tJZCkpKVxuICAgIH0sXG4gICAgZ2V0U3RpY2tlclBhY2tzOiBhc3luYyAoKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldFN0aWNrZXJQYWNrcygpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5zdGlja2VyUGFjayhib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZTogYXN5bmMgKHRva2VuKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlKHRva2VuKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIGdldFBpbm5lZE1lc3NhZ2VzOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldFBpbm5lZE1lc3NhZ2VzKGNoYW5uZWxJZCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHNuYWtlbGl6ZShyZXMpLCBzaGFyZElkOiAwIH0pKVxuICAgIH0sXG4gICAgZ2V0UHJpdmF0ZUFyY2hpdmVkVGhyZWFkczogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldFByaXZhdGVBcmNoaXZlZFRocmVhZHMoY2hhbm5lbElkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgZ2V0UHJpdmF0ZUpvaW5lZEFyY2hpdmVkVGhyZWFkczogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldFByaXZhdGVKb2luZWRBcmNoaXZlZFRocmVhZHMoY2hhbm5lbElkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgZ2V0UHJ1bmVDb3VudDogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRQcnVuZUNvdW50KGd1aWxkSWQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBnZXRQdWJsaWNBcmNoaXZlZFRocmVhZHM6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRQdWJsaWNBcmNoaXZlZFRocmVhZHMoY2hhbm5lbElkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgZ2V0Um9sZXM6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFJvbGVzKGd1aWxkSWQpKS5tYXAoKHJvbGUpID0+IGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHsgcm9sZSwgZ3VpbGRJZCB9KSlcbiAgICB9LFxuICAgIGdldFJvbGU6IGFzeW5jIChndWlsZElkLCByb2xlSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnJvbGUoYm90LCB7IHJvbGU6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRSb2xlKGd1aWxkSWQsIHJvbGVJZCkpLCBndWlsZElkIH0pXG4gICAgfSxcbiAgICBnZXRTY2hlZHVsZWRFdmVudDogYXN5bmMgKGd1aWxkSWQsIGV2ZW50SWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnNjaGVkdWxlZEV2ZW50KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFNjaGVkdWxlZEV2ZW50KGd1aWxkSWQsIGV2ZW50SWQsIG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGdldFNjaGVkdWxlZEV2ZW50czogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0U2NoZWR1bGVkRXZlbnRzKGd1aWxkSWQsIG9wdGlvbnMpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5zY2hlZHVsZWRFdmVudChib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldFNjaGVkdWxlZEV2ZW50VXNlcnM6IGFzeW5jIChndWlsZElkLCBldmVudElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldFNjaGVkdWxlZEV2ZW50VXNlcnMoZ3VpbGRJZCwgZXZlbnRJZCwgb3B0aW9ucykpLm1hcCgodSkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHVzZXI6IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHNuYWtlbGl6ZSh1LnVzZXIpKSxcbiAgICAgICAgICBtZW1iZXI6IHUubWVtYmVyICYmIGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgc25ha2VsaXplKHUubWVtYmVyKSwgZ3VpbGRJZCwgYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UodS51c2VyLmlkKSksXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSxcbiAgICBnZXRTZXNzaW9uSW5mbzogYXN5bmMgKCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZ2F0ZXdheUJvdChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRTZXNzaW9uSW5mbygpKSlcbiAgICB9LFxuICAgIGdldFN0YWdlSW5zdGFuY2U6IGFzeW5jIChjaGFubmVsSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnN0YWdlSW5zdGFuY2UoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0U3RhZ2VJbnN0YW5jZShjaGFubmVsSWQpKSlcbiAgICB9LFxuICAgIGdldE93blZvaWNlU3RhdGU6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy52b2ljZVN0YXRlKGJvdCwgeyBndWlsZElkLCB2b2ljZVN0YXRlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0T3duVm9pY2VTdGF0ZShndWlsZElkKSkgfSlcbiAgICB9LFxuICAgIGdldFVzZXJWb2ljZVN0YXRlOiBhc3luYyAoZ3VpbGRJZCwgdXNlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy52b2ljZVN0YXRlKGJvdCwgeyBndWlsZElkLCB2b2ljZVN0YXRlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0VXNlclZvaWNlU3RhdGUoZ3VpbGRJZCwgdXNlcklkKSkgfSlcbiAgICB9LFxuICAgIGdldFN0aWNrZXI6IGFzeW5jIChzdGlja2VySWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnN0aWNrZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0U3RpY2tlcihzdGlja2VySWQpKSlcbiAgICB9LFxuICAgIGdldFRocmVhZE1lbWJlcjogYXN5bmMgKGNoYW5uZWxJZCwgdXNlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy50aHJlYWRNZW1iZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0VGhyZWFkTWVtYmVyKGNoYW5uZWxJZCwgdXNlcklkKSkpXG4gICAgfSxcbiAgICBnZXRUaHJlYWRNZW1iZXJzOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldFRocmVhZE1lbWJlcnMoY2hhbm5lbElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMudGhyZWFkTWVtYmVyKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0UmVhY3Rpb25zOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldFJlYWN0aW9ucyhjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhY3Rpb24sIG9wdGlvbnMpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0VXNlcjogYXN5bmMgKGlkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFVzZXIoaWQpKSlcbiAgICB9LFxuICAgIGdldEN1cnJlbnRVc2VyOiBhc3luYyAoYmVhcmVyVG9rZW4pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0Q3VycmVudFVzZXIoYmVhcmVyVG9rZW4pKSlcbiAgICB9LFxuICAgIGdldFVzZXJDb25uZWN0aW9uczogYXN5bmMgKGJlYXJlclRva2VuKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0VXNlckNvbm5lY3Rpb25zKGJlYXJlclRva2VuKVxuICAgIH0sXG4gICAgZ2V0VXNlckFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb246IGFzeW5jIChiZWFyZXJUb2tlbiwgYXBwbGljYXRpb25JZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldFVzZXJBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uKGJlYXJlclRva2VuLCBhcHBsaWNhdGlvbklkKVxuICAgIH0sXG4gICAgZ2V0VmFuaXR5VXJsOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldFZhbml0eVVybChndWlsZElkKVxuICAgIH0sXG4gICAgZ2V0Vm9pY2VSZWdpb25zOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRWb2ljZVJlZ2lvbnMoZ3VpbGRJZCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLnZvaWNlUmVnaW9uKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0V2ViaG9vazogYXN5bmMgKHdlYmhvb2tJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMud2ViaG9vayhib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRXZWJob29rKHdlYmhvb2tJZCkpKVxuICAgIH0sXG4gICAgZ2V0V2ViaG9va01lc3NhZ2U6IGFzeW5jICh3ZWJob29rSWQsIHRva2VuLCBtZXNzYWdlSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRXZWJob29rTWVzc2FnZSh3ZWJob29rSWQsIHRva2VuLCBtZXNzYWdlSWQsIG9wdGlvbnMpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgZ2V0V2ViaG9va1dpdGhUb2tlbjogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlYmhvb2soYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0V2ViaG9va1dpdGhUb2tlbih3ZWJob29rSWQsIHRva2VuKSkpXG4gICAgfSxcbiAgICBnZXRXZWxjb21lU2NyZWVuOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMud2VsY29tZVNjcmVlbihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRXZWxjb21lU2NyZWVuKGd1aWxkSWQpKSlcbiAgICB9LFxuICAgIGdldFdpZGdldDogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndpZGdldChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRXaWRnZXQoZ3VpbGRJZCkpKVxuICAgIH0sXG4gICAgZ2V0V2lkZ2V0U2V0dGluZ3M6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy53aWRnZXRTZXR0aW5ncyhib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRXaWRnZXRTZXR0aW5ncyhndWlsZElkKSkpXG4gICAgfSxcbiAgICBwdWJsaXNoTWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QucHVibGlzaE1lc3NhZ2UoY2hhbm5lbElkLCBtZXNzYWdlSWQpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgc2VuZE1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5zZW5kTWVzc2FnZShjaGFubmVsSWQsIG9wdGlvbnMpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgc2VuZEZvbGxvd3VwTWVzc2FnZTogYXN5bmMgKHRva2VuLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3Quc2VuZEZvbGxvd3VwTWVzc2FnZSh0b2tlbiwgb3B0aW9ucykpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBzdGFydFRocmVhZFdpdGhNZXNzYWdlOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHtcbiAgICAgICAgY2hhbm5lbDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LnN0YXJ0VGhyZWFkV2l0aE1lc3NhZ2UoY2hhbm5lbElkLCBtZXNzYWdlSWQsIG9wdGlvbnMsIHJlYXNvbikpLFxuICAgICAgfSlcbiAgICB9LFxuICAgIHN0YXJ0VGhyZWFkV2l0aG91dE1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LnN0YXJ0VGhyZWFkV2l0aG91dE1lc3NhZ2UoY2hhbm5lbElkLCBvcHRpb25zLCByZWFzb24pKSB9KVxuICAgIH0sXG4gICAgc3luY0d1aWxkVGVtcGxhdGU6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy50ZW1wbGF0ZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5zeW5jR3VpbGRUZW1wbGF0ZShndWlsZElkKSkpXG4gICAgfSxcbiAgICB1cHNlcnRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzOiBhc3luYyAoY29tbWFuZHMsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QudXBzZXJ0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kcyhjb21tYW5kcywgb3B0aW9ucykpLm1hcCgocmVzKSA9PlxuICAgICAgICBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShyZXMpKSxcbiAgICAgIClcbiAgICB9LFxuICAgIHVwc2VydEd1aWxkQXBwbGljYXRpb25Db21tYW5kczogYXN5bmMgKGd1aWxkSWQsIGNvbW1hbmRzLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LnVwc2VydEd1aWxkQXBwbGljYXRpb25Db21tYW5kcyhndWlsZElkLCBjb21tYW5kcywgb3B0aW9ucykpLm1hcCgocmVzKSA9PlxuICAgICAgICBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShyZXMpKSxcbiAgICAgIClcbiAgICB9LFxuICAgIGVkaXRCb3RNZW1iZXI6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0Qm90TWVtYmVyKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpLCBndWlsZElkLCBib3QuaWQpXG4gICAgfSxcbiAgICBlZGl0TWVtYmVyOiBhc3luYyAoZ3VpbGRJZCwgdXNlcklkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0TWVtYmVyKGd1aWxkSWQsIHVzZXJJZCwgb3B0aW9ucywgcmVhc29uKSksIGd1aWxkSWQsIHVzZXJJZClcbiAgICB9LFxuICAgIGdldE1lbWJlcjogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldE1lbWJlcihndWlsZElkLCB1c2VySWQpKSwgZ3VpbGRJZCwgdXNlcklkKVxuICAgIH0sXG4gICAgZ2V0Q3VycmVudE1lbWJlcjogYXN5bmMgKGd1aWxkSWQsIGJlYXJlclRva2VuKSA9PiB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBib3QucmVzdC5nZXRDdXJyZW50TWVtYmVyKGd1aWxkSWQsIGJlYXJlclRva2VuKVxuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgc25ha2VsaXplKHJlcyksIGd1aWxkSWQsIGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHJlcy51c2VyLmlkKSlcbiAgICB9LFxuICAgIGdldE1lbWJlcnM6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldE1lbWJlcnMoZ3VpbGRJZCwgb3B0aW9ucykpLm1hcCgocmVzKSA9PlxuICAgICAgICBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHNuYWtlbGl6ZShyZXMpLCBndWlsZElkLCBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShyZXMudXNlci5pZCkpLFxuICAgICAgKVxuICAgIH0sXG4gICAgcHJ1bmVNZW1iZXJzOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QucHJ1bmVNZW1iZXJzKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbilcbiAgICB9LFxuICAgIHNlYXJjaE1lbWJlcnM6IGFzeW5jIChndWlsZElkLCBxdWVyeSwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5zZWFyY2hNZW1iZXJzKGd1aWxkSWQsIHF1ZXJ5LCBvcHRpb25zKSkubWFwKChyZXMpID0+XG4gICAgICAgIGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgc25ha2VsaXplKHJlcyksIGd1aWxkSWQsIGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHJlcy51c2VyLmlkKSksXG4gICAgICApXG4gICAgfSxcbiAgICBidWxrQmFuTWVtYmVyczogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgYm90LnJlc3QuYnVsa0Jhbk1lbWJlcnMoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBiYW5uZWRVc2VyczogcmVzLmJhbm5lZFVzZXJzLm1hcCgoeCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoeCkpLFxuICAgICAgICBmYWlsZWRVc2VyczogcmVzLmZhaWxlZFVzZXJzLm1hcCgoeCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoeCkpLFxuICAgICAgfVxuICAgIH0sXG4gICAgZ2V0QXBwbGljYXRpb25BY3Rpdml0eUluc3RhbmNlOiBhc3luYyAoYXBwbGljYXRpb25JZCwgaW5zdGFuY2VJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldEFwcGxpY2F0aW9uQWN0aXZpdHlJbnN0YW5jZShhcHBsaWNhdGlvbklkLCBpbnN0YW5jZUlkKVxuICAgIH0sXG4gICAgbGlzdEFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb25zTWV0YWRhdGFSZWNvcmRzOiBhc3luYyAoYXBwbGljYXRpb25JZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0Lmxpc3RBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uc01ldGFkYXRhUmVjb3JkcyhhcHBsaWNhdGlvbklkKVxuICAgIH0sXG4gICAgdXBkYXRlQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbnNNZXRhZGF0YVJlY29yZHM6IGFzeW5jIChhcHBsaWNhdGlvbklkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QudXBkYXRlQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbnNNZXRhZGF0YVJlY29yZHMoYXBwbGljYXRpb25JZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIC8vIEFsbCB1c2VsZXNzIHZvaWQgcmV0dXJuIGZ1bmN0aW9ucyBoZXJlXG4gICAgYWRkUmVhY3Rpb246IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5hZGRSZWFjdGlvbihjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhY3Rpb24pXG4gICAgfSxcbiAgICBhZGRSZWFjdGlvbnM6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhY3Rpb25zLCBvcmRlcmVkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuYWRkUmVhY3Rpb25zKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbnMsIG9yZGVyZWQpXG4gICAgfSxcbiAgICBhZGRSb2xlOiBhc3luYyAoZ3VpbGRJZCwgdXNlcklkLCByb2xlSWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmFkZFJvbGUoZ3VpbGRJZCwgdXNlcklkLCByb2xlSWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGFkZFRocmVhZE1lbWJlcjogYXN5bmMgKGNoYW5uZWxJZCwgdXNlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuYWRkVGhyZWFkTWVtYmVyKGNoYW5uZWxJZCwgdXNlcklkKVxuICAgIH0sXG4gICAgYWRkRG1SZWNpcGllbnQ6IGFzeW5jIChjaGFubmVsSWQsIHVzZXJJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmFkZERtUmVjaXBpZW50KGNoYW5uZWxJZCwgdXNlcklkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgYWRkR3VpbGRNZW1iZXI6IGFzeW5jIChndWlsZElkLCB1c2VySWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5hZGRHdWlsZE1lbWJlcihndWlsZElkLCB1c2VySWQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBkZWxldGVBdXRvbW9kUnVsZTogYXN5bmMgKGd1aWxkSWQsIHJ1bGVJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlQXV0b21vZFJ1bGUoZ3VpbGRJZCwgcnVsZUlkLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVDaGFubmVsOiBhc3luYyAoY2hhbm5lbElkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVDaGFubmVsKGNoYW5uZWxJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlQ2hhbm5lbFBlcm1pc3Npb25PdmVycmlkZTogYXN5bmMgKGNoYW5uZWxJZCwgb3ZlcndyaXRlSWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUNoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGUoY2hhbm5lbElkLCBvdmVyd3JpdGVJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlRW1vamk6IGFzeW5jIChndWlsZElkLCBpZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlRW1vamkoZ3VpbGRJZCwgaWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZUFwcGxpY2F0aW9uRW1vamk6IGFzeW5jIChpZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUFwcGxpY2F0aW9uRW1vamkoaWQpXG4gICAgfSxcbiAgICBkZWxldGVGb2xsb3d1cE1lc3NhZ2U6IGFzeW5jICh0b2tlbiwgbWVzc2FnZUlkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlRm9sbG93dXBNZXNzYWdlKHRva2VuLCBtZXNzYWdlSWQpXG4gICAgfSxcbiAgICBkZWxldGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQ6IGFzeW5jIChjb21tYW5kSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQoY29tbWFuZElkKVxuICAgIH0sXG4gICAgZGVsZXRlR3VpbGQ6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlR3VpbGQoZ3VpbGRJZClcbiAgICB9LFxuICAgIGRlbGV0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kOiBhc3luYyAoY29tbWFuZElkLCBndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQoY29tbWFuZElkLCBndWlsZElkKVxuICAgIH0sXG4gICAgZGVsZXRlR3VpbGRTdGlja2VyOiBhc3luYyAoZ3VpbGRJZCwgc3RpY2tlcklkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVHdWlsZFN0aWNrZXIoZ3VpbGRJZCwgc3RpY2tlcklkLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVHdWlsZFRlbXBsYXRlOiBhc3luYyAoZ3VpbGRJZCwgdGVtcGxhdGVDb2RlKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlR3VpbGRUZW1wbGF0ZShndWlsZElkLCB0ZW1wbGF0ZUNvZGUpXG4gICAgfSxcbiAgICBkZWxldGVJbnRlZ3JhdGlvbjogYXN5bmMgKGd1aWxkSWQsIGludGVncmF0aW9uSWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUludGVncmF0aW9uKGd1aWxkSWQsIGludGVncmF0aW9uSWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZUludml0ZTogYXN5bmMgKGludml0ZUNvZGUsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUludml0ZShpbnZpdGVDb2RlLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVNZXNzYWdlOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZU1lc3NhZ2UoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZU1lc3NhZ2VzOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWRzLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVNZXNzYWdlcyhjaGFubmVsSWQsIG1lc3NhZ2VJZHMsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZTogYXN5bmMgKHRva2VuKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlT3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlKHRva2VuKVxuICAgIH0sXG4gICAgZGVsZXRlT3duUmVhY3Rpb246IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVPd25SZWFjdGlvbihjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhY3Rpb24pXG4gICAgfSxcbiAgICBkZWxldGVSZWFjdGlvbnNBbGw6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZVJlYWN0aW9uc0FsbChjaGFubmVsSWQsIG1lc3NhZ2VJZClcbiAgICB9LFxuICAgIGRlbGV0ZVJlYWN0aW9uc0Vtb2ppOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlUmVhY3Rpb25zRW1vamkoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uKVxuICAgIH0sXG4gICAgZGVsZXRlUm9sZTogYXN5bmMgKGd1aWxkSWQsIHJvbGVJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlUm9sZShndWlsZElkLCByb2xlSWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZVNjaGVkdWxlZEV2ZW50OiBhc3luYyAoZ3VpbGRJZCwgZXZlbnRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZVNjaGVkdWxlZEV2ZW50KGd1aWxkSWQsIGV2ZW50SWQpXG4gICAgfSxcbiAgICBkZWxldGVTdGFnZUluc3RhbmNlOiBhc3luYyAoY2hhbm5lbElkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVTdGFnZUluc3RhbmNlKGNoYW5uZWxJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlVXNlclJlYWN0aW9uOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHVzZXJJZCwgcmVhY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVVc2VyUmVhY3Rpb24oY2hhbm5lbElkLCBtZXNzYWdlSWQsIHVzZXJJZCwgcmVhY3Rpb24pXG4gICAgfSxcbiAgICBkZWxldGVXZWJob29rOiBhc3luYyAod2ViaG9va0lkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVXZWJob29rKHdlYmhvb2tJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlV2ViaG9va01lc3NhZ2U6IGFzeW5jICh3ZWJob29rSWQsIHRva2VuLCBtZXNzYWdlSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVXZWJob29rTWVzc2FnZSh3ZWJob29rSWQsIHRva2VuLCBtZXNzYWdlSWQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBkZWxldGVXZWJob29rV2l0aFRva2VuOiBhc3luYyAod2ViaG9va0lkLCB0b2tlbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZVdlYmhvb2tXaXRoVG9rZW4od2ViaG9va0lkLCB0b2tlbilcbiAgICB9LFxuICAgIGVkaXRDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlczogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZWRpdENoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGVzKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKVxuICAgIH0sXG4gICAgZWRpdENoYW5uZWxQb3NpdGlvbnM6IGFzeW5jIChndWlsZElkLCBjaGFubmVsUG9zaXRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZWRpdENoYW5uZWxQb3NpdGlvbnMoZ3VpbGRJZCwgY2hhbm5lbFBvc2l0aW9ucylcbiAgICB9LFxuICAgIGVkaXRHdWlsZE1mYUxldmVsOiBhc3luYyAoZ3VpbGRJZCwgbWZhTGV2ZWwsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmVkaXRHdWlsZE1mYUxldmVsKGd1aWxkSWQsIG1mYUxldmVsLCByZWFzb24pXG4gICAgfSxcbiAgICBlZGl0T3duVm9pY2VTdGF0ZTogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5lZGl0T3duVm9pY2VTdGF0ZShndWlsZElkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgZWRpdFVzZXJWb2ljZVN0YXRlOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmVkaXRVc2VyVm9pY2VTdGF0ZShndWlsZElkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgZWRpdFVzZXJBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uOiBhc3luYyAoYmVhcmVyVG9rZW4sIGFwcGxpY2F0aW9uSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5lZGl0VXNlckFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb24oYmVhcmVyVG9rZW4sIGFwcGxpY2F0aW9uSWQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBqb2luVGhyZWFkOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3Quam9pblRocmVhZChjaGFubmVsSWQpXG4gICAgfSxcbiAgICBsZWF2ZUd1aWxkOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmxlYXZlR3VpbGQoZ3VpbGRJZClcbiAgICB9LFxuICAgIGxlYXZlVGhyZWFkOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QubGVhdmVUaHJlYWQoY2hhbm5lbElkKVxuICAgIH0sXG4gICAgcmVtb3ZlUm9sZTogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCwgcm9sZUlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5yZW1vdmVSb2xlKGd1aWxkSWQsIHVzZXJJZCwgcm9sZUlkLCByZWFzb24pXG4gICAgfSxcbiAgICByZW1vdmVUaHJlYWRNZW1iZXI6IGFzeW5jIChjaGFubmVsSWQsIHVzZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LnJlbW92ZVRocmVhZE1lbWJlcihjaGFubmVsSWQsIHVzZXJJZClcbiAgICB9LFxuICAgIHJlbW92ZURtUmVjaXBpZW50OiBhc3luYyAoY2hhbm5lbElkLCB1c2VySWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5yZW1vdmVEbVJlY2lwaWVudChjaGFubmVsSWQsIHVzZXJJZClcbiAgICB9LFxuICAgIHNlbmRJbnRlcmFjdGlvblJlc3BvbnNlOiBhc3luYyAoaW50ZXJhY3Rpb25JZCwgdG9rZW4sIG9wdGlvbnMsIHBhcmFtcykgPT4ge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBib3QucmVzdC5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZShpbnRlcmFjdGlvbklkLCB0b2tlbiwgb3B0aW9ucywgcGFyYW1zKVxuXG4gICAgICBpZiAoIXJlc3BvbnNlKSByZXR1cm5cblxuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlKGJvdCwgeyBpbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2U6IHNuYWtlbGl6ZShyZXNwb25zZSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIHRyaWdnZXJUeXBpbmdJbmRpY2F0b3I6IGFzeW5jIChjaGFubmVsSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC50cmlnZ2VyVHlwaW5nSW5kaWNhdG9yKGNoYW5uZWxJZClcbiAgICB9LFxuICAgIGJhbk1lbWJlcjogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuYmFuTWVtYmVyKGd1aWxkSWQsIHVzZXJJZCwgb3B0aW9ucywgcmVhc29uKVxuICAgIH0sXG5cbiAgICBraWNrTWVtYmVyOiBhc3luYyAoZ3VpbGRJZCwgdXNlcklkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5raWNrTWVtYmVyKGd1aWxkSWQsIHVzZXJJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgcGluTWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5waW5NZXNzYWdlKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFzb24pXG4gICAgfSxcbiAgICB1bmJhbk1lbWJlcjogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QudW5iYW5NZW1iZXIoZ3VpbGRJZCwgdXNlcklkLCByZWFzb24pXG4gICAgfSxcbiAgICB1bnBpbk1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QudW5waW5NZXNzYWdlKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFzb24pXG4gICAgfSxcbiAgICBnZXRHdWlsZE9uYm9hcmRpbmc6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5ndWlsZE9uYm9hcmRpbmcoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRPbmJvYXJkaW5nKGd1aWxkSWQpKSlcbiAgICB9LFxuICAgIGVkaXRHdWlsZE9uYm9hcmRpbmc6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmd1aWxkT25ib2FyZGluZyhib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0R3VpbGRPbmJvYXJkaW5nKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgbGlzdEVudGl0bGVtZW50czogYXN5bmMgKGFwcGxpY2F0aW9uSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QubGlzdEVudGl0bGVtZW50cyhhcHBsaWNhdGlvbklkLCBvcHRpb25zKSkubWFwKChlbnRpdGxlbWVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5lbnRpdGxlbWVudChib3QsIHNuYWtlbGl6ZShlbnRpdGxlbWVudCkpKVxuICAgIH0sXG4gICAgZ2V0RW50aXRsZW1lbnQ6IGFzeW5jIChhcHBsaWNhdGlvbklkLCBlbnRpdGxlbWVudElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5lbnRpdGxlbWVudChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRFbnRpdGxlbWVudChhcHBsaWNhdGlvbklkLCBlbnRpdGxlbWVudElkKSkpXG4gICAgfSxcbiAgICBjcmVhdGVUZXN0RW50aXRsZW1lbnQ6IGFzeW5jIChhcHBsaWNhdGlvbklkLCBib2R5KSA9PiB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIGNyZWF0ZVRlc3RFbnRpdGxlbWVudCBnaXZlcyBhIHBhcnRpYWwsIGFuZCB0aGlzIG1ldGhvZCByZXR1cm5zIGEgcGFydGlhbFxuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZW50aXRsZW1lbnQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlVGVzdEVudGl0bGVtZW50KGFwcGxpY2F0aW9uSWQsIGJvZHkpKSkgYXMgUGFydGlhbDxcbiAgICAgICAgdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuZW50aXRsZW1lbnRcbiAgICAgID5cbiAgICB9LFxuICAgIGRlbGV0ZVRlc3RFbnRpdGxlbWVudDogYXN5bmMgKGFwcGxpY2F0aW9uSWQsIGVudGl0bGVtZW50SWQpID0+IHtcbiAgICAgIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZVRlc3RFbnRpdGxlbWVudChhcHBsaWNhdGlvbklkLCBlbnRpdGxlbWVudElkKVxuICAgIH0sXG4gICAgbGlzdFNrdXM6IGFzeW5jIChhcHBsaWNhdGlvbklkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0Lmxpc3RTa3VzKGFwcGxpY2F0aW9uSWQpKS5tYXAoKHNrdSkgPT4gYm90LnRyYW5zZm9ybWVycy5za3UoYm90LCBzbmFrZWxpemUoc2t1KSkpXG4gICAgfSxcbiAgICBnZXRTdWJzY3JpcHRpb246IGFzeW5jIChza3VJZCwgc3Vic2NyaXB0aW9uSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnN1YnNjcmlwdGlvbihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRTdWJzY3JpcHRpb24oc2t1SWQsIHN1YnNjcmlwdGlvbklkKSkpXG4gICAgfSxcbiAgICBsaXN0U3Vic2NyaXB0aW9uczogYXN5bmMgKHNrdUlkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0Lmxpc3RTdWJzY3JpcHRpb25zKHNrdUlkLCBvcHRpb25zKSkubWFwKChzdWJzY3JpcHRpb24pID0+IGJvdC50cmFuc2Zvcm1lcnMuc3Vic2NyaXB0aW9uKGJvdCwgc25ha2VsaXplKHN1YnNjcmlwdGlvbikpKVxuICAgIH0sXG4gICAgc2VuZFNvdW5kYm9hcmRTb3VuZDogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgYXdhaXQgYm90LnJlc3Quc2VuZFNvdW5kYm9hcmRTb3VuZChjaGFubmVsSWQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBsaXN0RGVmYXVsdFNvdW5kYm9hcmRTb3VuZHM6IGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QubGlzdERlZmF1bHRTb3VuZGJvYXJkU291bmRzKCkpLm1hcCgoc291bmQpID0+IGJvdC50cmFuc2Zvcm1lcnMuc291bmRib2FyZFNvdW5kKGJvdCwgc25ha2VsaXplKHNvdW5kKSkpXG4gICAgfSxcbiAgICBsaXN0R3VpbGRTb3VuZGJvYXJkU291bmRzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgYm90LnJlc3QubGlzdEd1aWxkU291bmRib2FyZFNvdW5kcyhndWlsZElkKVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBpdGVtczogcmVzLml0ZW1zLm1hcCgoc291bmQpID0+IGJvdC50cmFuc2Zvcm1lcnMuc291bmRib2FyZFNvdW5kKGJvdCwgc25ha2VsaXplKHNvdW5kKSkpLFxuICAgICAgfVxuICAgIH0sXG4gICAgZ2V0R3VpbGRTb3VuZGJvYXJkU291bmQ6IGFzeW5jIChndWlsZElkLCBzb3VuZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zb3VuZGJvYXJkU291bmQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRTb3VuZGJvYXJkU291bmQoZ3VpbGRJZCwgc291bmRJZCkpKVxuICAgIH0sXG4gICAgY3JlYXRlR3VpbGRTb3VuZGJvYXJkU291bmQ6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnNvdW5kYm9hcmRTb3VuZChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVHdWlsZFNvdW5kYm9hcmRTb3VuZChndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIG1vZGlmeUd1aWxkU291bmRib2FyZFNvdW5kOiBhc3luYyAoZ3VpbGRJZCwgc291bmRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zb3VuZGJvYXJkU291bmQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QubW9kaWZ5R3VpbGRTb3VuZGJvYXJkU291bmQoZ3VpbGRJZCwgc291bmRJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBkZWxldGVHdWlsZFNvdW5kYm9hcmRTb3VuZDogYXN5bmMgKGd1aWxkSWQsIHNvdW5kSWQsIHJlYXNvbikgPT4ge1xuICAgICAgYXdhaXQgYm90LnJlc3QuZGVsZXRlR3VpbGRTb3VuZGJvYXJkU291bmQoZ3VpbGRJZCwgc291bmRJZCwgcmVhc29uKVxuICAgIH0sXG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgQm90SGVscGVyczxUUHJvcHMgZXh0ZW5kcyBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgVEJlaGF2aW9yIGV4dGVuZHMgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj4gPSB7XG4gIGNyZWF0ZUF1dG9tb2RSdWxlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVBdXRvTW9kZXJhdGlvblJ1bGVPcHRpb25zLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8QXV0b01vZGVyYXRpb25SdWxlPlxuICBjcmVhdGVDaGFubmVsOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVHdWlsZENoYW5uZWwsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxDaGFubmVsLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGNyZWF0ZUVtb2ppOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVHdWlsZEVtb2ppLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8RW1vamksIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgY3JlYXRlQXBwbGljYXRpb25FbW9qaTogKG9wdGlvbnM6IENyZWF0ZUFwcGxpY2F0aW9uRW1vamkpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8RW1vamksIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgY3JlYXRlRm9ydW1UaHJlYWQ6IChcbiAgICBjaGFubmVsSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBDcmVhdGVGb3J1bVBvc3RXaXRoTWVzc2FnZSxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxDaGFubmVsLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGNyZWF0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogKGNvbW1hbmQ6IENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZCwgb3B0aW9ucz86IENyZWF0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMpID0+IFByb21pc2U8QXBwbGljYXRpb25Db21tYW5kPlxuICBjcmVhdGVHdWlsZDogKG9wdGlvbnM6IENyZWF0ZUd1aWxkKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEd1aWxkLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGNyZWF0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kOiAoXG4gICAgY29tbWFuZDogQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kLFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zPzogQ3JlYXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25zLFxuICApID0+IFByb21pc2U8QXBwbGljYXRpb25Db21tYW5kPlxuICBjcmVhdGVHdWlsZEZyb21UZW1wbGF0ZTogKHRlbXBsYXRlQ29kZTogc3RyaW5nLCBvcHRpb25zOiBDcmVhdGVHdWlsZEZyb21UZW1wbGF0ZSkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxHdWlsZCwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBjcmVhdGVHdWlsZFN0aWNrZXI6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogQ3JlYXRlR3VpbGRTdGlja2VyT3B0aW9ucyxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTdGlja2VyLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGNyZWF0ZUd1aWxkVGVtcGxhdGU6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENyZWF0ZVRlbXBsYXRlKSA9PiBQcm9taXNlPFRlbXBsYXRlPlxuICBjcmVhdGVJbnZpdGU6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IENyZWF0ZUNoYW5uZWxJbnZpdGUsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkSW52aXRlPj5cbiAgY3JlYXRlUm9sZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlR3VpbGRSb2xlLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Um9sZSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBjcmVhdGVTY2hlZHVsZWRFdmVudDogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBDcmVhdGVTY2hlZHVsZWRFdmVudCxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTY2hlZHVsZWRFdmVudCwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBjcmVhdGVTdGFnZUluc3RhbmNlOiAob3B0aW9uczogQ3JlYXRlU3RhZ2VJbnN0YW5jZSwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFN0YWdlSW5zdGFuY2UsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgY3JlYXRlV2ViaG9vazogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVXZWJob29rLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8V2ViaG9vaywgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBlZGl0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnM6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgY29tbWFuZElkOiBCaWdTdHJpbmcsXG4gICAgYmVhcmVyVG9rZW46IHN0cmluZyxcbiAgICBvcHRpb25zOiBDYW1lbGl6ZTxEaXNjb3JkQXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnM+W10sXG4gICkgPT4gUHJvbWlzZTxHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zPlxuICBlZGl0QXV0b21vZFJ1bGU6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgcnVsZUlkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogUGFydGlhbDxFZGl0QXV0b01vZGVyYXRpb25SdWxlT3B0aW9ucz4sXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8QXV0b01vZGVyYXRpb25SdWxlPlxuICBlZGl0Qm90UHJvZmlsZTogKG9wdGlvbnM6IHsgdXNlcm5hbWU/OiBzdHJpbmc7IGJvdEF2YXRhclVSTD86IHN0cmluZyB8IG51bGw7IGJvdEJhbm5lclVSTD86IHN0cmluZyB8IG51bGwgfSkgPT4gUHJvbWlzZTxcbiAgICBTZXR1cERlc2lyZWRQcm9wczxVc2VyLCBUUHJvcHMsIFRCZWhhdmlvcj5cbiAgPlxuICBlZGl0Q2hhbm5lbDogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBNb2RpZnlDaGFubmVsLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBlZGl0RW1vamk6IChndWlsZElkOiBCaWdTdHJpbmcsIGlkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IE1vZGlmeUd1aWxkRW1vamksIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxFbW9qaSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBlZGl0QXBwbGljYXRpb25FbW9qaTogKGlkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IE1vZGlmeUFwcGxpY2F0aW9uRW1vamkpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8RW1vamksIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZWRpdEZvbGxvd3VwTWVzc2FnZTogKFxuICAgIHRva2VuOiBzdHJpbmcsXG4gICAgbWVzc2FnZUlkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogSW50ZXJhY3Rpb25DYWxsYmFja0RhdGEsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGVkaXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQ6IChjb21tYW5kSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uQ29tbWFuZD5cbiAgZWRpdEd1aWxkOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBNb2RpZnlHdWlsZCwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEd1aWxkLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGVkaXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZDogKGNvbW1hbmRJZDogQmlnU3RyaW5nLCBndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZCkgPT4gUHJvbWlzZTxBcHBsaWNhdGlvbkNvbW1hbmQ+XG4gIGVkaXRHdWlsZFN0aWNrZXI6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgc3RpY2tlcklkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogQXRMZWFzdE9uZTxFZGl0R3VpbGRTdGlja2VyT3B0aW9ucz4sXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U3RpY2tlciwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBlZGl0R3VpbGRUZW1wbGF0ZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdGVtcGxhdGVDb2RlOiBzdHJpbmcsIG9wdGlvbnM6IE1vZGlmeUd1aWxkVGVtcGxhdGUpID0+IFByb21pc2U8VGVtcGxhdGU+XG4gIGVkaXRNZXNzYWdlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBFZGl0TWVzc2FnZSkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGVkaXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2U6ICh0b2tlbjogc3RyaW5nLCBvcHRpb25zOiBJbnRlcmFjdGlvbkNhbGxiYWNrRGF0YSkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGVkaXRPcmlnaW5hbFdlYmhvb2tNZXNzYWdlOiAoXG4gICAgd2ViaG9va0lkOiBCaWdTdHJpbmcsXG4gICAgdG9rZW46IHN0cmluZyxcbiAgICBvcHRpb25zOiBJbnRlcmFjdGlvbkNhbGxiYWNrRGF0YSAmIHsgdGhyZWFkSWQ/OiBCaWdTdHJpbmcgfSxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZWRpdFJvbGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHJvbGVJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBFZGl0R3VpbGRSb2xlLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Um9sZSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBlZGl0Um9sZVBvc2l0aW9uczogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogTW9kaWZ5Um9sZVBvc2l0aW9uc1tdLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Um9sZSwgVFByb3BzLCBUQmVoYXZpb3I+W10+XG4gIGVkaXRTY2hlZHVsZWRFdmVudDogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBldmVudElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogUGFydGlhbDxFZGl0U2NoZWR1bGVkRXZlbnQ+LFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFNjaGVkdWxlZEV2ZW50LCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGVkaXRTdGFnZUluc3RhbmNlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIHRvcGljOiBzdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTdGFnZUluc3RhbmNlLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGVkaXRXZWJob29rOiAod2ViaG9va0lkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IE1vZGlmeVdlYmhvb2ssIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxXZWJob29rLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGVkaXRXZWJob29rTWVzc2FnZTogKFxuICAgIHdlYmhvb2tJZDogQmlnU3RyaW5nLFxuICAgIHRva2VuOiBzdHJpbmcsXG4gICAgbWVzc2FnZUlkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogSW50ZXJhY3Rpb25DYWxsYmFja0RhdGEgJiB7IHRocmVhZElkPzogQmlnU3RyaW5nIH0sXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGVkaXRXZWJob29rV2l0aFRva2VuOiAoXG4gICAgd2ViaG9va0lkOiBCaWdTdHJpbmcsXG4gICAgdG9rZW46IHN0cmluZyxcbiAgICBvcHRpb25zOiBPbWl0PE1vZGlmeVdlYmhvb2ssICdjaGFubmVsSWQnPixcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFdlYmhvb2ssIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZWRpdFdlbGNvbWVTY3JlZW46IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENhbWVsaXplPERpc2NvcmRNb2RpZnlHdWlsZFdlbGNvbWVTY3JlZW4+LCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8V2VsY29tZVNjcmVlbj5cbiAgZWRpdFdpZGdldFNldHRpbmdzOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDYW1lbGl6ZTxEaXNjb3JkR3VpbGRXaWRnZXRTZXR0aW5ncz4sIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxHdWlsZFdpZGdldFNldHRpbmdzPlxuICBlZGl0VXNlckFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb246IChcbiAgICBiZWFyZXJUb2tlbjogc3RyaW5nLFxuICAgIGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBDYW1lbGl6ZTxEaXNjb3JkQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbj4sXG4gICkgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbj4+XG4gIGV4ZWN1dGVXZWJob29rOiAod2ViaG9va0lkOiBCaWdTdHJpbmcsIHRva2VuOiBzdHJpbmcsIG9wdGlvbnM6IEV4ZWN1dGVXZWJob29rKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPiB8IHVuZGVmaW5lZD5cbiAgZm9sbG93QW5ub3VuY2VtZW50OiAoc291cmNlQ2hhbm5lbElkOiBCaWdTdHJpbmcsIHRhcmdldENoYW5uZWxJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRGb2xsb3dlZENoYW5uZWw+PlxuICBnZXRBY3RpdmVUaHJlYWRzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHsgdGhyZWFkczogU2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+W107IG1lbWJlcnM6IFRocmVhZE1lbWJlcltdIH0+XG4gIGdldEFwcGxpY2F0aW9uSW5mbzogKCkgPT4gUHJvbWlzZTxBcHBsaWNhdGlvbj5cbiAgZWRpdEFwcGxpY2F0aW9uSW5mbzogKGJvZHk6IEVkaXRBcHBsaWNhdGlvbikgPT4gUHJvbWlzZTxBcHBsaWNhdGlvbj5cbiAgZ2V0Q3VycmVudEF1dGhlbnRpY2F0aW9uSW5mbzogKGJlYXJlclRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEN1cnJlbnRBdXRob3JpemF0aW9uPj5cbiAgZXhjaGFuZ2VUb2tlbjogKGNsaWVudElkOiBCaWdTdHJpbmcsIGNsaWVudFNlY3JldDogc3RyaW5nLCBvcHRpb25zOiBDYW1lbGl6ZTxEaXNjb3JkVG9rZW5FeGNoYW5nZT4pID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEFjY2Vzc1Rva2VuUmVzcG9uc2U+PlxuICByZXZva2VUb2tlbjogKGNsaWVudElkOiBCaWdTdHJpbmcsIGNsaWVudFNlY3JldDogc3RyaW5nLCBvcHRpb25zOiBDYW1lbGl6ZTxEaXNjb3JkVG9rZW5SZXZvY2F0aW9uPikgPT4gUHJvbWlzZTx2b2lkPlxuICBnZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIGNvbW1hbmRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM/OiBHZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uT3B0aW9ucyxcbiAgKSA9PiBQcm9taXNlPEd1aWxkQXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnM+XG4gIGdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM/OiBHZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uT3B0aW9ucyxcbiAgKSA9PiBQcm9taXNlPEd1aWxkQXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnNbXT5cbiAgZ2V0QXVkaXRMb2c6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBHZXRHdWlsZEF1ZGl0TG9nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRBdWRpdExvZz4+XG4gIGdldEF1dG9tb2RSdWxlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBydWxlSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxBdXRvTW9kZXJhdGlvblJ1bGU+XG4gIGdldEF1dG9tb2RSdWxlczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxBdXRvTW9kZXJhdGlvblJ1bGVbXT5cbiAgZ2V0QXZhaWxhYmxlVm9pY2VSZWdpb25zOiAoKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRWb2ljZVJlZ2lvbj5bXT5cbiAgZ2V0QmFuOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQmFuPj5cbiAgZ2V0QmFuczogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IEdldEJhbnMpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEJhbj5bXT5cbiAgZ2V0Q2hhbm5lbDogKGNoYW5uZWxJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPENoYW5uZWwsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0Q2hhbm5lbEludml0ZXM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkSW52aXRlTWV0YWRhdGE+W10+XG4gIGdldENoYW5uZWxzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPENoYW5uZWwsIFRQcm9wcywgVEJlaGF2aW9yPltdPlxuICBnZXRDaGFubmVsV2ViaG9va3M6IChjaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxXZWJob29rLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT5cbiAgZ2V0RG1DaGFubmVsOiAodXNlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRHcm91cERtQ2hhbm5lbDogKG9wdGlvbnM6IEdldEdyb3VwRG1PcHRpb25zKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPENoYW5uZWwsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0RW1vamk6IChndWlsZElkOiBCaWdTdHJpbmcsIGVtb2ppSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxFbW9qaSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRBcHBsaWNhdGlvbkVtb2ppOiAoZW1vamlJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEVtb2ppLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldEVtb2ppczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxFbW9qaSwgVFByb3BzLCBUQmVoYXZpb3I+W10+XG4gIGdldEFwcGxpY2F0aW9uRW1vamlzOiAoKSA9PiBQcm9taXNlPHsgaXRlbXM6IFNldHVwRGVzaXJlZFByb3BzPEVtb2ppLCBUUHJvcHMsIFRCZWhhdmlvcj5bXSB9PlxuICBnZXRGb2xsb3d1cE1lc3NhZ2U6ICh0b2tlbjogc3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldEdhdGV3YXlCb3Q6ICgpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEdldEdhdGV3YXlCb3Q+PlxuICBnZXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQ6IChjb21tYW5kSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxBcHBsaWNhdGlvbkNvbW1hbmQ+XG4gIGdldEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZHM6ICgpID0+IFByb21pc2U8QXBwbGljYXRpb25Db21tYW5kW10+XG4gIGdldEd1aWxkOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogeyBjb3VudHM/OiBib29sZWFuIH0pID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8R3VpbGQsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0R3VpbGRzOiAoYmVhcmVyVG9rZW46IHN0cmluZywgb3B0aW9ucz86IEdldFVzZXJHdWlsZHMpID0+IFByb21pc2U8UGFydGlhbDxTZXR1cERlc2lyZWRQcm9wczxHdWlsZCwgVFByb3BzLCBUQmVoYXZpb3I+PltdPlxuICBnZXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZDogKGNvbW1hbmRJZDogQmlnU3RyaW5nLCBndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8QXBwbGljYXRpb25Db21tYW5kPlxuICBnZXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZHM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8QXBwbGljYXRpb25Db21tYW5kW10+XG4gIGdldEd1aWxkUHJldmlldzogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkR3VpbGRQcmV2aWV3Pj5cbiAgZ2V0R3VpbGRTdGlja2VyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBzdGlja2VySWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTdGlja2VyLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldEd1aWxkU3RpY2tlcnM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U3RpY2tlciwgVFByb3BzLCBUQmVoYXZpb3I+W10+XG4gIGdldEd1aWxkVGVtcGxhdGU6ICh0ZW1wbGF0ZUNvZGU6IHN0cmluZykgPT4gUHJvbWlzZTxUZW1wbGF0ZT5cbiAgZ2V0R3VpbGRUZW1wbGF0ZXM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8VGVtcGxhdGVbXT5cbiAgZ2V0R3VpbGRXZWJob29rczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxXZWJob29rLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT5cbiAgZ2V0SW50ZWdyYXRpb25zOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPEludGVncmF0aW9uW10+XG4gIGdldEludml0ZTogKGludml0ZUNvZGU6IHN0cmluZywgb3B0aW9ucz86IEdldEludml0ZSkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxJbnZpdGUsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0SW52aXRlczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxJbnZpdGUsIFRQcm9wcywgVEJlaGF2aW9yPltdPlxuICBnZXRNZXNzYWdlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0TWVzc2FnZXM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IEdldE1lc3NhZ2VzT3B0aW9ucykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT5cbiAgZ2V0U3RpY2tlclBhY2s6IChzdGlja2VyUGFja0lkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U3RpY2tlclBhY2s+XG4gIGdldFN0aWNrZXJQYWNrczogKCkgPT4gUHJvbWlzZTxTdGlja2VyUGFja1tdPlxuICBnZXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2U6ICh0b2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0UGlubmVkTWVzc2FnZXM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT5cbiAgZ2V0UHJpdmF0ZUFyY2hpdmVkVGhyZWFkczogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogTGlzdEFyY2hpdmVkVGhyZWFkcykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQXJjaGl2ZWRUaHJlYWRzPj5cbiAgZ2V0UHJpdmF0ZUpvaW5lZEFyY2hpdmVkVGhyZWFkczogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogTGlzdEFyY2hpdmVkVGhyZWFkcykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQXJjaGl2ZWRUaHJlYWRzPj5cbiAgZ2V0UHJ1bmVDb3VudDogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IEdldEd1aWxkUHJ1bmVDb3VudFF1ZXJ5KSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRQcnVuZWRDb3VudD4+XG4gIGdldFB1YmxpY0FyY2hpdmVkVGhyZWFkczogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogTGlzdEFyY2hpdmVkVGhyZWFkcykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQXJjaGl2ZWRUaHJlYWRzPj5cbiAgZ2V0Um9sZXM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Um9sZSwgVFByb3BzLCBUQmVoYXZpb3I+W10+XG4gIGdldFJvbGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHJvbGVJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFJvbGUsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0U2NoZWR1bGVkRXZlbnQ6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgZXZlbnRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7IHdpdGhVc2VyQ291bnQ/OiBib29sZWFuIH0sXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTY2hlZHVsZWRFdmVudCwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRTY2hlZHVsZWRFdmVudHM6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBHZXRTY2hlZHVsZWRFdmVudHMpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U2NoZWR1bGVkRXZlbnQsIFRQcm9wcywgVEJlaGF2aW9yPltdPlxuICBnZXRTY2hlZHVsZWRFdmVudFVzZXJzOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIGV2ZW50SWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zPzogR2V0U2NoZWR1bGVkRXZlbnRVc2VycyxcbiAgKSA9PiBQcm9taXNlPEFycmF5PHsgdXNlcjogU2V0dXBEZXNpcmVkUHJvcHM8VXNlciwgVFByb3BzLCBUQmVoYXZpb3I+OyBtZW1iZXI/OiBTZXR1cERlc2lyZWRQcm9wczxNZW1iZXIsIFRQcm9wcywgVEJlaGF2aW9yPiB9Pj5cbiAgZ2V0U2Vzc2lvbkluZm86ICgpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEdldEdhdGV3YXlCb3Q+PlxuICBnZXRTdGFnZUluc3RhbmNlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U3RhZ2VJbnN0YW5jZSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRPd25Wb2ljZVN0YXRlOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFZvaWNlU3RhdGUsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0VXNlclZvaWNlU3RhdGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFZvaWNlU3RhdGUsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0U3RpY2tlcjogKHN0aWNrZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFN0aWNrZXIsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0VGhyZWFkTWVtYmVyOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFRocmVhZE1lbWJlcj5cbiAgZ2V0VGhyZWFkTWVtYmVyczogKGNoYW5uZWxJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFRocmVhZE1lbWJlcltdPlxuICBnZXRSZWFjdGlvbnM6IChcbiAgICBjaGFubmVsSWQ6IEJpZ1N0cmluZyxcbiAgICBtZXNzYWdlSWQ6IEJpZ1N0cmluZyxcbiAgICByZWFjdGlvbjogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBHZXRSZWFjdGlvbnMsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxVc2VyLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT5cbiAgZ2V0VXNlcjogKGlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8VXNlciwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRDdXJyZW50VXNlcjogKGJlYXJlclRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8VXNlciwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRVc2VyQ29ubmVjdGlvbnM6IChiZWFyZXJUb2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRDb25uZWN0aW9uPltdPlxuICBnZXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbjogKGJlYXJlclRva2VuOiBzdHJpbmcsIGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbj4+XG4gIGdldFZhbml0eVVybDogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkVmFuaXR5VXJsPj5cbiAgZ2V0Vm9pY2VSZWdpb25zOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRWb2ljZVJlZ2lvbj5bXT5cbiAgZ2V0V2ViaG9vazogKHdlYmhvb2tJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFdlYmhvb2ssIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0V2ViaG9va01lc3NhZ2U6IChcbiAgICB3ZWJob29rSWQ6IEJpZ1N0cmluZyxcbiAgICB0b2tlbjogc3RyaW5nLFxuICAgIG1lc3NhZ2VJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM/OiBHZXRXZWJob29rTWVzc2FnZU9wdGlvbnMsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldFdlYmhvb2tXaXRoVG9rZW46ICh3ZWJob29rSWQ6IEJpZ1N0cmluZywgdG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxXZWJob29rLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldFdlbGNvbWVTY3JlZW46IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8V2VsY29tZVNjcmVlbj5cbiAgZ2V0V2lkZ2V0OiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPEd1aWxkV2lkZ2V0PlxuICBnZXRXaWRnZXRTZXR0aW5nczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxHdWlsZFdpZGdldFNldHRpbmdzPlxuICBwdWJsaXNoTWVzc2FnZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIHNlbmRNZXNzYWdlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENyZWF0ZU1lc3NhZ2VPcHRpb25zKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgc2VuZEZvbGxvd3VwTWVzc2FnZTogKHRva2VuOiBzdHJpbmcsIG9wdGlvbnM6IEludGVyYWN0aW9uQ2FsbGJhY2tEYXRhKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgc3RhcnRUaHJlYWRXaXRoTWVzc2FnZTogKFxuICAgIGNoYW5uZWxJZDogQmlnU3RyaW5nLFxuICAgIG1lc3NhZ2VJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IFN0YXJ0VGhyZWFkV2l0aE1lc3NhZ2UsXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBzdGFydFRocmVhZFdpdGhvdXRNZXNzYWdlOiAoXG4gICAgY2hhbm5lbElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogU3RhcnRUaHJlYWRXaXRob3V0TWVzc2FnZSxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxDaGFubmVsLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIHN5bmNHdWlsZFRlbXBsYXRlOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFRlbXBsYXRlPlxuICB1cHNlcnRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzOiAoXG4gICAgY29tbWFuZHM6IENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZFtdLFxuICAgIG9wdGlvbnM/OiBVcHNlcnRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25zLFxuICApID0+IFByb21pc2U8QXBwbGljYXRpb25Db21tYW5kW10+XG4gIHVwc2VydEd1aWxkQXBwbGljYXRpb25Db21tYW5kczogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBjb21tYW5kczogQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kW10sXG4gICAgb3B0aW9ucz86IFVwc2VydEd1aWxkQXBwbGljYXRpb25Db21tYW5kT3B0aW9ucyxcbiAgKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uQ29tbWFuZFtdPlxuICBlZGl0Qm90TWVtYmVyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBFZGl0Qm90TWVtYmVyT3B0aW9ucywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lbWJlciwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBlZGl0TWVtYmVyOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIHVzZXJJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IE1vZGlmeUd1aWxkTWVtYmVyLFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lbWJlciwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRNZW1iZXI6IChndWlsZElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lbWJlciwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRDdXJyZW50TWVtYmVyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBiZWFyZXJUb2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lbWJlciwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRNZW1iZXJzOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBMaXN0R3VpbGRNZW1iZXJzKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lbWJlciwgVFByb3BzLCBUQmVoYXZpb3I+W10+XG4gIHBydW5lTWVtYmVyczogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQmVnaW5HdWlsZFBydW5lLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8eyBwcnVuZWQ6IG51bWJlciB8IG51bGwgfT5cbiAgc2VhcmNoTWVtYmVyczogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBxdWVyeTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBPbWl0PFNlYXJjaE1lbWJlcnMsICdxdWVyeSc+LFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVtYmVyLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT5cbiAgYnVsa0Jhbk1lbWJlcnM6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENyZWF0ZUd1aWxkQnVsa0JhbiwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHsgYmFubmVkVXNlcnM6IGJpZ2ludFtdOyBmYWlsZWRVc2VyczogYmlnaW50W10gfT5cbiAgZ2V0QXBwbGljYXRpb25BY3Rpdml0eUluc3RhbmNlOiAoYXBwbGljYXRpb25JZDogQmlnU3RyaW5nLCBpbnN0YW5jZUlkOiBzdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEFjdGl2aXR5SW5zdGFuY2U+PlxuICBsaXN0QXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbnNNZXRhZGF0YVJlY29yZHM6IChhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb25NZXRhZGF0YT5bXT5cbiAgdXBkYXRlQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbnNNZXRhZGF0YVJlY29yZHM6IChcbiAgICBhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogQ2FtZWxpemU8RGlzY29yZEFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb25NZXRhZGF0YT5bXSxcbiAgKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uTWV0YWRhdGE+W10+XG4gIC8vIGZ1bmN0aW9ucyByZXR1cm4gVm9pZCBzbyBkb250IG5lZWQgYW55IHNwZWNpYWwgaGFuZGxpbmdcbiAgYWRkUmVhY3Rpb246IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIHJlYWN0aW9uOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgYWRkUmVhY3Rpb25zOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCByZWFjdGlvbnM6IHN0cmluZ1tdLCBvcmRlcmVkPzogYm9vbGVhbikgPT4gUHJvbWlzZTx2b2lkPlxuICBhZGRSb2xlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgcm9sZUlkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBhZGRUaHJlYWRNZW1iZXI6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgYWRkRG1SZWNpcGllbnQ6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEFkZERtUmVjaXBpZW50T3B0aW9ucykgPT4gUHJvbWlzZTx2b2lkPlxuICBhZGRHdWlsZE1lbWJlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEFkZEd1aWxkTWVtYmVyT3B0aW9ucykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVBdXRvbW9kUnVsZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgcnVsZUlkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVDaGFubmVsOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG92ZXJ3cml0ZUlkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVFbW9qaTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgaWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUFwcGxpY2F0aW9uRW1vamk6IChpZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUZvbGxvd3VwTWVzc2FnZTogKHRva2VuOiBzdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogKGNvbW1hbmRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUd1aWxkOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kOiAoY29tbWFuZElkOiBCaWdTdHJpbmcsIGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVHdWlsZFN0aWNrZXI6IChndWlsZElkOiBCaWdTdHJpbmcsIHN0aWNrZXJJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlR3VpbGRUZW1wbGF0ZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdGVtcGxhdGVDb2RlOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlSW50ZWdyYXRpb246IChndWlsZElkOiBCaWdTdHJpbmcsIGludGVncmF0aW9uSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUludml0ZTogKGludml0ZUNvZGU6IHN0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZU1lc3NhZ2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVNZXNzYWdlczogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWRzOiBCaWdTdHJpbmdbXSwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZTogKHRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlT3duUmVhY3Rpb246IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIHJlYWN0aW9uOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlUmVhY3Rpb25zQWxsOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZVJlYWN0aW9uc0Vtb2ppOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCByZWFjdGlvbjogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZVJvbGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHJvbGVJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlU2NoZWR1bGVkRXZlbnQ6IChndWlsZElkOiBCaWdTdHJpbmcsIGV2ZW50SWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVTdGFnZUluc3RhbmNlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVVc2VyUmVhY3Rpb246IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nLCByZWFjdGlvbjogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZVdlYmhvb2s6ICh3ZWJob29rSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZVdlYmhvb2tNZXNzYWdlOiAod2ViaG9va0lkOiBCaWdTdHJpbmcsIHRva2VuOiBzdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogRGVsZXRlV2ViaG9va01lc3NhZ2VPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZVdlYmhvb2tXaXRoVG9rZW46ICh3ZWJob29rSWQ6IEJpZ1N0cmluZywgdG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBlZGl0Q2hhbm5lbFBlcm1pc3Npb25PdmVycmlkZXM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogRWRpdENoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGVzT3B0aW9ucywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGVkaXRDaGFubmVsUG9zaXRpb25zOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBjaGFubmVsUG9zaXRpb25zOiBNb2RpZnlHdWlsZENoYW5uZWxQb3NpdGlvbnNbXSkgPT4gUHJvbWlzZTx2b2lkPlxuICBlZGl0R3VpbGRNZmFMZXZlbDogKGd1aWxkSWQ6IEJpZ1N0cmluZywgbWZhTGV2ZWw6IE1mYUxldmVscywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGVkaXRPd25Wb2ljZVN0YXRlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBFZGl0T3duVm9pY2VTdGF0ZSkgPT4gUHJvbWlzZTx2b2lkPlxuICBlZGl0VXNlclZvaWNlU3RhdGU6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEVkaXRVc2VyVm9pY2VTdGF0ZSkgPT4gUHJvbWlzZTx2b2lkPlxuICBqb2luVGhyZWFkOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgbGVhdmVHdWlsZDogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBsZWF2ZVRocmVhZDogKGNoYW5uZWxJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIHJlbW92ZVJvbGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nLCByb2xlSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIHJlbW92ZVRocmVhZE1lbWJlcjogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICByZW1vdmVEbVJlY2lwaWVudDogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBzZW5kSW50ZXJhY3Rpb25SZXNwb25zZTogKFxuICAgIGludGVyYWN0aW9uSWQ6IEJpZ1N0cmluZyxcbiAgICB0b2tlbjogc3RyaW5nLFxuICAgIG9wdGlvbnM6IEludGVyYWN0aW9uUmVzcG9uc2UsXG4gICAgcGFyYW1zPzogSW50ZXJhY3Rpb25DYWxsYmFja09wdGlvbnMsXG4gICkgPT4gUHJvbWlzZTx2b2lkIHwgU2V0dXBEZXNpcmVkUHJvcHM8SW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIHRyaWdnZXJUeXBpbmdJbmRpY2F0b3I6IChjaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBiYW5NZW1iZXI6IChndWlsZElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogQ3JlYXRlR3VpbGRCYW4sIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBraWNrTWVtYmVyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIHBpbk1lc3NhZ2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICB1bmJhbk1lbWJlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICB1bnBpbk1lc3NhZ2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBnZXRHdWlsZE9uYm9hcmRpbmc6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8R3VpbGRPbmJvYXJkaW5nLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGVkaXRHdWlsZE9uYm9hcmRpbmc6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogRWRpdEd1aWxkT25ib2FyZGluZyxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxHdWlsZE9uYm9hcmRpbmcsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgbGlzdEVudGl0bGVtZW50czogKGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IEdldEVudGl0bGVtZW50cykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxFbnRpdGxlbWVudCwgVFByb3BzLCBUQmVoYXZpb3I+W10+XG4gIGdldEVudGl0bGVtZW50OiAoYXBwbGljYXRpb25JZDogQmlnU3RyaW5nLCBlbnRpdGxlbWVudElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8RW50aXRsZW1lbnQsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgY3JlYXRlVGVzdEVudGl0bGVtZW50OiAoYXBwbGljYXRpb25JZDogQmlnU3RyaW5nLCBib2R5OiBDcmVhdGVFbnRpdGxlbWVudCkgPT4gUHJvbWlzZTxQYXJ0aWFsPFNldHVwRGVzaXJlZFByb3BzPEVudGl0bGVtZW50LCBUUHJvcHMsIFRCZWhhdmlvcj4+PlxuICBkZWxldGVUZXN0RW50aXRsZW1lbnQ6IChhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcsIGVudGl0bGVtZW50SWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBsaXN0U2t1czogKGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTa3UsIFRQcm9wcywgVEJlaGF2aW9yPltdPlxuICBsaXN0U3Vic2NyaXB0aW9uczogKHNrdUlkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBMaXN0U2t1U3Vic2NyaXB0aW9uc09wdGlvbnMpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U3Vic2NyaXB0aW9uLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT5cbiAgZ2V0U3Vic2NyaXB0aW9uOiAoc2t1SWQ6IEJpZ1N0cmluZywgc3Vic2NyaXB0aW9uSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTdWJzY3JpcHRpb24sIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgc2VuZFNvdW5kYm9hcmRTb3VuZDogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBTZW5kU291bmRib2FyZFNvdW5kKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGxpc3REZWZhdWx0U291bmRib2FyZFNvdW5kczogKCkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTb3VuZGJvYXJkU291bmQsIFRQcm9wcywgVEJlaGF2aW9yPltdPlxuICBsaXN0R3VpbGRTb3VuZGJvYXJkU291bmRzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHsgaXRlbXM6IFNldHVwRGVzaXJlZFByb3BzPFNvdW5kYm9hcmRTb3VuZCwgVFByb3BzLCBUQmVoYXZpb3I+W10gfT5cbiAgZ2V0R3VpbGRTb3VuZGJvYXJkU291bmQ6IChndWlsZElkOiBCaWdTdHJpbmcsIHNvdW5kSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTb3VuZGJvYXJkU291bmQsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgY3JlYXRlR3VpbGRTb3VuZGJvYXJkU291bmQ6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogQ3JlYXRlR3VpbGRTb3VuZGJvYXJkU291bmQsXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U291bmRib2FyZFNvdW5kLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIG1vZGlmeUd1aWxkU291bmRib2FyZFNvdW5kOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIHNvdW5kSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBNb2RpZnlHdWlsZFNvdW5kYm9hcmRTb3VuZCxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTb3VuZGJvYXJkU291bmQsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZGVsZXRlR3VpbGRTb3VuZGJvYXJkU291bmQ6IChndWlsZElkOiBCaWdTdHJpbmcsIHNvdW5kSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG59XG4iXSwibmFtZXMiOlsic25ha2VsaXplIiwiY3JlYXRlQm90SGVscGVycyIsImJvdCIsImNyZWF0ZUF1dG9tb2RSdWxlIiwiZ3VpbGRJZCIsIm9wdGlvbnMiLCJyZWFzb24iLCJ0cmFuc2Zvcm1lcnMiLCJhdXRvbW9kUnVsZSIsInJlc3QiLCJjcmVhdGVDaGFubmVsIiwiY2hhbm5lbCIsImNyZWF0ZUVtb2ppIiwiZW1vamkiLCJjcmVhdGVBcHBsaWNhdGlvbkVtb2ppIiwiY3JlYXRlRm9ydW1UaHJlYWQiLCJjaGFubmVsSWQiLCJjcmVhdGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQiLCJjb21tYW5kIiwiYXBwbGljYXRpb25Db21tYW5kIiwiY3JlYXRlR3VpbGQiLCJndWlsZCIsInNoYXJkSWQiLCJjcmVhdGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZCIsImNyZWF0ZUd1aWxkRnJvbVRlbXBsYXRlIiwidGVtcGxhdGVDb2RlIiwiY3JlYXRlR3VpbGRTdGlja2VyIiwic3RpY2tlciIsImNyZWF0ZUd1aWxkVGVtcGxhdGUiLCJ0ZW1wbGF0ZSIsImNyZWF0ZUludml0ZSIsImNyZWF0ZVJvbGUiLCJyb2xlIiwiY3JlYXRlU2NoZWR1bGVkRXZlbnQiLCJzY2hlZHVsZWRFdmVudCIsImNyZWF0ZVN0YWdlSW5zdGFuY2UiLCJzdGFnZUluc3RhbmNlIiwiY3JlYXRlV2ViaG9vayIsIndlYmhvb2siLCJlZGl0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnMiLCJjb21tYW5kSWQiLCJiZWFyZXJUb2tlbiIsImFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb24iLCJlZGl0QXV0b21vZFJ1bGUiLCJydWxlSWQiLCJlZGl0Qm90UHJvZmlsZSIsInVzZXIiLCJlZGl0Q2hhbm5lbCIsImVkaXRFbW9qaSIsImlkIiwiZWRpdEFwcGxpY2F0aW9uRW1vamkiLCJlZGl0Rm9sbG93dXBNZXNzYWdlIiwidG9rZW4iLCJtZXNzYWdlSWQiLCJtZXNzYWdlIiwiZWRpdEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZCIsImVkaXRHdWlsZCIsImVkaXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZCIsImVkaXRHdWlsZFN0aWNrZXIiLCJzdGlja2VySWQiLCJlZGl0R3VpbGRUZW1wbGF0ZSIsImVkaXRNZXNzYWdlIiwiZWRpdE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSIsImVkaXRPcmlnaW5hbFdlYmhvb2tNZXNzYWdlIiwid2ViaG9va0lkIiwiZWRpdFJvbGUiLCJyb2xlSWQiLCJlZGl0Um9sZVBvc2l0aW9ucyIsIm1hcCIsImVkaXRTY2hlZHVsZWRFdmVudCIsImV2ZW50SWQiLCJlZGl0U3RhZ2VJbnN0YW5jZSIsInRvcGljIiwiZWRpdFdlYmhvb2siLCJlZGl0V2ViaG9va01lc3NhZ2UiLCJlZGl0V2ViaG9va1dpdGhUb2tlbiIsImVkaXRXZWxjb21lU2NyZWVuIiwid2VsY29tZVNjcmVlbiIsImVkaXRXaWRnZXRTZXR0aW5ncyIsIndpZGdldFNldHRpbmdzIiwiZXhlY3V0ZVdlYmhvb2siLCJyZXN1bHQiLCJmb2xsb3dBbm5vdW5jZW1lbnQiLCJzb3VyY2VDaGFubmVsSWQiLCJ0YXJnZXRDaGFubmVsSWQiLCJnZXRBY3RpdmVUaHJlYWRzIiwidGhyZWFkcyIsInRocmVhZCIsIm1lbWJlcnMiLCJtZW1iZXIiLCJ0aHJlYWRNZW1iZXIiLCJnZXRBcHBsaWNhdGlvbkluZm8iLCJhcHBsaWNhdGlvbiIsImVkaXRBcHBsaWNhdGlvbkluZm8iLCJib2R5IiwiZ2V0Q3VycmVudEF1dGhlbnRpY2F0aW9uSW5mbyIsImV4Y2hhbmdlVG9rZW4iLCJjbGllbnRJZCIsImNsaWVudFNlY3JldCIsInJldm9rZVRva2VuIiwiZ2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbiIsInJlcyIsInNuYWtlZFJlcyIsImdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zIiwiZ2V0QXVkaXRMb2ciLCJnZXRBdXRvbW9kUnVsZSIsImdldEF1dG9tb2RSdWxlcyIsImdldEF2YWlsYWJsZVZvaWNlUmVnaW9ucyIsInZvaWNlUmVnaW9uIiwiZ2V0QmFuIiwidXNlcklkIiwiZ2V0QmFucyIsImdldENoYW5uZWwiLCJnZXRDaGFubmVsSW52aXRlcyIsImdldENoYW5uZWxzIiwiZ2V0Q2hhbm5lbFdlYmhvb2tzIiwiZ2V0RG1DaGFubmVsIiwiZ2V0R3JvdXBEbUNoYW5uZWwiLCJnZXRFbW9qaSIsImVtb2ppSWQiLCJnZXRBcHBsaWNhdGlvbkVtb2ppIiwiZ2V0RW1vamlzIiwiZ2V0QXBwbGljYXRpb25FbW9qaXMiLCJpdGVtcyIsIml0ZW0iLCJnZXRGb2xsb3d1cE1lc3NhZ2UiLCJnZXRHYXRld2F5Qm90IiwiZ2F0ZXdheUJvdCIsImdldEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZCIsImdldEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZHMiLCJnZXRHdWlsZCIsImdldEd1aWxkcyIsImdldEd1aWxkQXBwbGljYXRpb25Db21tYW5kIiwiZ2V0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRzIiwiZ2V0R3VpbGRQcmV2aWV3IiwiZ2V0R3VpbGRTdGlja2VyIiwiZ2V0R3VpbGRTdGlja2VycyIsImdldEd1aWxkVGVtcGxhdGUiLCJnZXRHdWlsZFRlbXBsYXRlcyIsImdldEd1aWxkV2ViaG9va3MiLCJnZXRJbnRlZ3JhdGlvbnMiLCJpbnRlZ3JhdGlvbiIsInRvU3RyaW5nIiwiZ2V0SW52aXRlIiwiaW52aXRlQ29kZSIsImludml0ZSIsImdldEludml0ZXMiLCJnZXRNZXNzYWdlIiwiZ2V0TWVzc2FnZXMiLCJnZXRTdGlja2VyUGFjayIsInN0aWNrZXJQYWNrSWQiLCJzdGlja2VyUGFjayIsImdldFN0aWNrZXJQYWNrcyIsImdldE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSIsImdldFBpbm5lZE1lc3NhZ2VzIiwiZ2V0UHJpdmF0ZUFyY2hpdmVkVGhyZWFkcyIsImdldFByaXZhdGVKb2luZWRBcmNoaXZlZFRocmVhZHMiLCJnZXRQcnVuZUNvdW50IiwiZ2V0UHVibGljQXJjaGl2ZWRUaHJlYWRzIiwiZ2V0Um9sZXMiLCJnZXRSb2xlIiwiZ2V0U2NoZWR1bGVkRXZlbnQiLCJnZXRTY2hlZHVsZWRFdmVudHMiLCJnZXRTY2hlZHVsZWRFdmVudFVzZXJzIiwidSIsInNub3dmbGFrZSIsImdldFNlc3Npb25JbmZvIiwiZ2V0U3RhZ2VJbnN0YW5jZSIsImdldE93blZvaWNlU3RhdGUiLCJ2b2ljZVN0YXRlIiwiZ2V0VXNlclZvaWNlU3RhdGUiLCJnZXRTdGlja2VyIiwiZ2V0VGhyZWFkTWVtYmVyIiwiZ2V0VGhyZWFkTWVtYmVycyIsImdldFJlYWN0aW9ucyIsInJlYWN0aW9uIiwiZ2V0VXNlciIsImdldEN1cnJlbnRVc2VyIiwiZ2V0VXNlckNvbm5lY3Rpb25zIiwiZ2V0VXNlckFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb24iLCJhcHBsaWNhdGlvbklkIiwiZ2V0VmFuaXR5VXJsIiwiZ2V0Vm9pY2VSZWdpb25zIiwiZ2V0V2ViaG9vayIsImdldFdlYmhvb2tNZXNzYWdlIiwiZ2V0V2ViaG9va1dpdGhUb2tlbiIsImdldFdlbGNvbWVTY3JlZW4iLCJnZXRXaWRnZXQiLCJ3aWRnZXQiLCJnZXRXaWRnZXRTZXR0aW5ncyIsInB1Ymxpc2hNZXNzYWdlIiwic2VuZE1lc3NhZ2UiLCJzZW5kRm9sbG93dXBNZXNzYWdlIiwic3RhcnRUaHJlYWRXaXRoTWVzc2FnZSIsInN0YXJ0VGhyZWFkV2l0aG91dE1lc3NhZ2UiLCJzeW5jR3VpbGRUZW1wbGF0ZSIsInVwc2VydEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZHMiLCJjb21tYW5kcyIsInVwc2VydEd1aWxkQXBwbGljYXRpb25Db21tYW5kcyIsImVkaXRCb3RNZW1iZXIiLCJlZGl0TWVtYmVyIiwiZ2V0TWVtYmVyIiwiZ2V0Q3VycmVudE1lbWJlciIsImdldE1lbWJlcnMiLCJwcnVuZU1lbWJlcnMiLCJzZWFyY2hNZW1iZXJzIiwicXVlcnkiLCJidWxrQmFuTWVtYmVycyIsImJhbm5lZFVzZXJzIiwieCIsImZhaWxlZFVzZXJzIiwiZ2V0QXBwbGljYXRpb25BY3Rpdml0eUluc3RhbmNlIiwiaW5zdGFuY2VJZCIsImxpc3RBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uc01ldGFkYXRhUmVjb3JkcyIsInVwZGF0ZUFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb25zTWV0YWRhdGFSZWNvcmRzIiwiYWRkUmVhY3Rpb24iLCJhZGRSZWFjdGlvbnMiLCJyZWFjdGlvbnMiLCJvcmRlcmVkIiwiYWRkUm9sZSIsImFkZFRocmVhZE1lbWJlciIsImFkZERtUmVjaXBpZW50IiwiYWRkR3VpbGRNZW1iZXIiLCJkZWxldGVBdXRvbW9kUnVsZSIsImRlbGV0ZUNoYW5uZWwiLCJkZWxldGVDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlIiwib3ZlcndyaXRlSWQiLCJkZWxldGVFbW9qaSIsImRlbGV0ZUFwcGxpY2F0aW9uRW1vamkiLCJkZWxldGVGb2xsb3d1cE1lc3NhZ2UiLCJkZWxldGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQiLCJkZWxldGVHdWlsZCIsImRlbGV0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kIiwiZGVsZXRlR3VpbGRTdGlja2VyIiwiZGVsZXRlR3VpbGRUZW1wbGF0ZSIsImRlbGV0ZUludGVncmF0aW9uIiwiaW50ZWdyYXRpb25JZCIsImRlbGV0ZUludml0ZSIsImRlbGV0ZU1lc3NhZ2UiLCJkZWxldGVNZXNzYWdlcyIsIm1lc3NhZ2VJZHMiLCJkZWxldGVPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UiLCJkZWxldGVPd25SZWFjdGlvbiIsImRlbGV0ZVJlYWN0aW9uc0FsbCIsImRlbGV0ZVJlYWN0aW9uc0Vtb2ppIiwiZGVsZXRlUm9sZSIsImRlbGV0ZVNjaGVkdWxlZEV2ZW50IiwiZGVsZXRlU3RhZ2VJbnN0YW5jZSIsImRlbGV0ZVVzZXJSZWFjdGlvbiIsImRlbGV0ZVdlYmhvb2siLCJkZWxldGVXZWJob29rTWVzc2FnZSIsImRlbGV0ZVdlYmhvb2tXaXRoVG9rZW4iLCJlZGl0Q2hhbm5lbFBlcm1pc3Npb25PdmVycmlkZXMiLCJlZGl0Q2hhbm5lbFBvc2l0aW9ucyIsImNoYW5uZWxQb3NpdGlvbnMiLCJlZGl0R3VpbGRNZmFMZXZlbCIsIm1mYUxldmVsIiwiZWRpdE93blZvaWNlU3RhdGUiLCJlZGl0VXNlclZvaWNlU3RhdGUiLCJlZGl0VXNlckFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb24iLCJqb2luVGhyZWFkIiwibGVhdmVHdWlsZCIsImxlYXZlVGhyZWFkIiwicmVtb3ZlUm9sZSIsInJlbW92ZVRocmVhZE1lbWJlciIsInJlbW92ZURtUmVjaXBpZW50Iiwic2VuZEludGVyYWN0aW9uUmVzcG9uc2UiLCJpbnRlcmFjdGlvbklkIiwicGFyYW1zIiwicmVzcG9uc2UiLCJpbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UiLCJ0cmlnZ2VyVHlwaW5nSW5kaWNhdG9yIiwiYmFuTWVtYmVyIiwia2lja01lbWJlciIsInBpbk1lc3NhZ2UiLCJ1bmJhbk1lbWJlciIsInVucGluTWVzc2FnZSIsImdldEd1aWxkT25ib2FyZGluZyIsImd1aWxkT25ib2FyZGluZyIsImVkaXRHdWlsZE9uYm9hcmRpbmciLCJsaXN0RW50aXRsZW1lbnRzIiwiZW50aXRsZW1lbnQiLCJnZXRFbnRpdGxlbWVudCIsImVudGl0bGVtZW50SWQiLCJjcmVhdGVUZXN0RW50aXRsZW1lbnQiLCJkZWxldGVUZXN0RW50aXRsZW1lbnQiLCJsaXN0U2t1cyIsInNrdSIsImdldFN1YnNjcmlwdGlvbiIsInNrdUlkIiwic3Vic2NyaXB0aW9uSWQiLCJzdWJzY3JpcHRpb24iLCJsaXN0U3Vic2NyaXB0aW9ucyIsInNlbmRTb3VuZGJvYXJkU291bmQiLCJsaXN0RGVmYXVsdFNvdW5kYm9hcmRTb3VuZHMiLCJzb3VuZCIsInNvdW5kYm9hcmRTb3VuZCIsImxpc3RHdWlsZFNvdW5kYm9hcmRTb3VuZHMiLCJnZXRHdWlsZFNvdW5kYm9hcmRTb3VuZCIsInNvdW5kSWQiLCJjcmVhdGVHdWlsZFNvdW5kYm9hcmRTb3VuZCIsIm1vZGlmeUd1aWxkU291bmRib2FyZFNvdW5kIiwiZGVsZXRlR3VpbGRTb3VuZGJvYXJkU291bmQiXSwibWFwcGluZ3MiOiJBQXNHQSxTQUFTQSxTQUFTLFFBQVEsb0JBQW1CO0FBb0M3QyxPQUFPLFNBQVNDLGlCQUNkQyxHQUEyQjtJQUUzQixPQUFPO1FBQ0xDLG1CQUFtQixPQUFPQyxTQUFTQyxTQUFTQztZQUMxQyxPQUFPSixJQUFJSyxZQUFZLENBQUNDLFdBQVcsQ0FBQ04sS0FBS0YsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUNOLGlCQUFpQixDQUFDQyxTQUFTQyxTQUFTQztRQUN4RztRQUNBSSxlQUFlLE9BQU9OLFNB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