@discordeno/bot 21.0.0-next.22012fc → 21.0.0-next.24703f1

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.
@@ -806,4 +806,4 @@ function createBotHelpers(bot) {
806
806
  };
807
807
  }
808
808
 
809
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQWRkRG1SZWNpcGllbnRPcHRpb25zLFxuICBBZGRHdWlsZE1lbWJlck9wdGlvbnMsXG4gIEFkZExvYmJ5TWVtYmVyLFxuICBBdExlYXN0T25lLFxuICBCZWdpbkd1aWxkUHJ1bmUsXG4gIEJpZ1N0cmluZyxcbiAgQ2FtZWxpemUsXG4gIENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgQ3JlYXRlQXBwbGljYXRpb25FbW9qaSxcbiAgQ3JlYXRlQXV0b01vZGVyYXRpb25SdWxlT3B0aW9ucyxcbiAgQ3JlYXRlQ2hhbm5lbEludml0ZSxcbiAgQ3JlYXRlRW50aXRsZW1lbnQsXG4gIENyZWF0ZUZvcnVtUG9zdFdpdGhNZXNzYWdlLFxuICBDcmVhdGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25zLFxuICBDcmVhdGVHdWlsZCxcbiAgQ3JlYXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25zLFxuICBDcmVhdGVHdWlsZEJhbixcbiAgQ3JlYXRlR3VpbGRCdWxrQmFuLFxuICBDcmVhdGVHdWlsZENoYW5uZWwsXG4gIENyZWF0ZUd1aWxkRW1vamksXG4gIENyZWF0ZUd1aWxkRnJvbVRlbXBsYXRlLFxuICBDcmVhdGVHdWlsZFJvbGUsXG4gIENyZWF0ZUd1aWxkU291bmRib2FyZFNvdW5kLFxuICBDcmVhdGVHdWlsZFN0aWNrZXJPcHRpb25zLFxuICBDcmVhdGVMb2JieSxcbiAgQ3JlYXRlTWVzc2FnZU9wdGlvbnMsXG4gIENyZWF0ZVNjaGVkdWxlZEV2ZW50LFxuICBDcmVhdGVTdGFnZUluc3RhbmNlLFxuICBDcmVhdGVUZW1wbGF0ZSxcbiAgQ3JlYXRlV2ViaG9vayxcbiAgRGVsZXRlV2ViaG9va01lc3NhZ2VPcHRpb25zLFxuICBEaXNjb3JkQWNjZXNzVG9rZW5SZXNwb25zZSxcbiAgRGlzY29yZEFjdGl2aXR5SW5zdGFuY2UsXG4gIERpc2NvcmRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucyxcbiAgRGlzY29yZEFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb24sXG4gIERpc2NvcmRBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uTWV0YWRhdGEsXG4gIERpc2NvcmRBcmNoaXZlZFRocmVhZHMsXG4gIERpc2NvcmRBdWRpdExvZyxcbiAgRGlzY29yZEJhbixcbiAgRGlzY29yZENvbm5lY3Rpb24sXG4gIERpc2NvcmRDdXJyZW50QXV0aG9yaXphdGlvbixcbiAgRGlzY29yZEZvbGxvd2VkQ2hhbm5lbCxcbiAgRGlzY29yZEdldEdhdGV3YXlCb3QsXG4gIERpc2NvcmRHdWlsZFByZXZpZXcsXG4gIERpc2NvcmRHdWlsZFdpZGdldFNldHRpbmdzLFxuICBEaXNjb3JkSW52aXRlLFxuICBEaXNjb3JkSW52aXRlTWV0YWRhdGEsXG4gIERpc2NvcmRNZXNzYWdlLFxuICBEaXNjb3JkTW9kaWZ5R3VpbGRXZWxjb21lU2NyZWVuLFxuICBEaXNjb3JkUHJ1bmVkQ291bnQsXG4gIERpc2NvcmRUb2tlbkV4Y2hhbmdlLFxuICBEaXNjb3JkVG9rZW5SZXZvY2F0aW9uLFxuICBEaXNjb3JkVmFuaXR5VXJsLFxuICBEaXNjb3JkVm9pY2VSZWdpb24sXG4gIEVkaXRBcHBsaWNhdGlvbixcbiAgRWRpdEF1dG9Nb2RlcmF0aW9uUnVsZU9wdGlvbnMsXG4gIEVkaXRCb3RNZW1iZXJPcHRpb25zLFxuICBFZGl0Q2hhbm5lbFBlcm1pc3Npb25PdmVycmlkZXNPcHRpb25zLFxuICBFZGl0R3VpbGRPbmJvYXJkaW5nLFxuICBFZGl0R3VpbGRSb2xlLFxuICBFZGl0R3VpbGRTdGlja2VyT3B0aW9ucyxcbiAgRWRpdE1lc3NhZ2UsXG4gIEVkaXRPd25Wb2ljZVN0YXRlLFxuICBFZGl0U2NoZWR1bGVkRXZlbnQsXG4gIEVkaXRVc2VyVm9pY2VTdGF0ZSxcbiAgRXhlY3V0ZVdlYmhvb2ssXG4gIEdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25PcHRpb25zLFxuICBHZXRCYW5zLFxuICBHZXRFbnRpdGxlbWVudHMsXG4gIEdldEdyb3VwRG1PcHRpb25zLFxuICBHZXRHdWlsZEF1ZGl0TG9nLFxuICBHZXRHdWlsZFBydW5lQ291bnRRdWVyeSxcbiAgR2V0SW52aXRlLFxuICBHZXRNZXNzYWdlc09wdGlvbnMsXG4gIEdldFJlYWN0aW9ucyxcbiAgR2V0U2NoZWR1bGVkRXZlbnRVc2VycyxcbiAgR2V0U2NoZWR1bGVkRXZlbnRzLFxuICBHZXRUaHJlYWRNZW1iZXIsXG4gIEdldFVzZXJHdWlsZHMsXG4gIEdldFdlYmhvb2tNZXNzYWdlT3B0aW9ucyxcbiAgSW50ZXJhY3Rpb25DYWxsYmFja0RhdGEsXG4gIEludGVyYWN0aW9uQ2FsbGJhY2tPcHRpb25zLFxuICBJbnRlcmFjdGlvblJlc3BvbnNlLFxuICBMaW5rQ2hhbm5lbFRvTG9iYnksXG4gIExpc3RBcmNoaXZlZFRocmVhZHMsXG4gIExpc3RHdWlsZE1lbWJlcnMsXG4gIExpc3RTa3VTdWJzY3JpcHRpb25zT3B0aW9ucyxcbiAgTGlzdFRocmVhZE1lbWJlcnMsXG4gIE1mYUxldmVscyxcbiAgTW9kaWZ5QXBwbGljYXRpb25FbW9qaSxcbiAgTW9kaWZ5Q2hhbm5lbCxcbiAgTW9kaWZ5R3VpbGQsXG4gIE1vZGlmeUd1aWxkQ2hhbm5lbFBvc2l0aW9ucyxcbiAgTW9kaWZ5R3VpbGRFbW9qaSxcbiAgTW9kaWZ5R3VpbGRNZW1iZXIsXG4gIE1vZGlmeUd1aWxkU291bmRib2FyZFNvdW5kLFxuICBNb2RpZnlHdWlsZFRlbXBsYXRlLFxuICBNb2RpZnlMb2JieSxcbiAgTW9kaWZ5Um9sZVBvc2l0aW9ucyxcbiAgTW9kaWZ5V2ViaG9vayxcbiAgU2VhcmNoTWVtYmVycyxcbiAgU2VuZFNvdW5kYm9hcmRTb3VuZCxcbiAgU3RhcnRUaHJlYWRXaXRoTWVzc2FnZSxcbiAgU3RhcnRUaHJlYWRXaXRob3V0TWVzc2FnZSxcbiAgVXBzZXJ0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kT3B0aW9ucyxcbiAgVXBzZXJ0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25zLFxufSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IHNuYWtlbGl6ZSB9IGZyb20gJ0BkaXNjb3JkZW5vL3V0aWxzJ1xuaW1wb3J0IHR5cGUgeyBCb3QgfSBmcm9tICcuL2JvdC5qcydcbmltcG9ydCB0eXBlIHsgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvciwgU2V0dXBEZXNpcmVkUHJvcHMsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzIH0gZnJvbSAnLi9kZXNpcmVkUHJvcGVydGllcy5qcydcbmltcG9ydCB0eXBlIHtcbiAgQXBwbGljYXRpb24sXG4gIEFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgQXV0b01vZGVyYXRpb25SdWxlLFxuICBDaGFubmVsLFxuICBFbW9qaSxcbiAgRW50aXRsZW1lbnQsXG4gIEd1aWxkLFxuICBHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zLFxuICBHdWlsZE9uYm9hcmRpbmcsXG4gIEd1aWxkV2lkZ2V0LFxuICBHdWlsZFdpZGdldFNldHRpbmdzLFxuICBJbnRlZ3JhdGlvbixcbiAgSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLFxuICBJbnZpdGUsXG4gIExvYmJ5LFxuICBMb2JieU1lbWJlcixcbiAgTWVtYmVyLFxuICBNZXNzYWdlLFxuICBSb2xlLFxuICBTY2hlZHVsZWRFdmVudCxcbiAgU2t1LFxuICBTb3VuZGJvYXJkU291bmQsXG4gIFN0YWdlSW5zdGFuY2UsXG4gIFN0aWNrZXIsXG4gIFN0aWNrZXJQYWNrLFxuICBTdWJzY3JpcHRpb24sXG4gIFRlbXBsYXRlLFxuICBUaHJlYWRNZW1iZXIsXG4gIFVzZXIsXG4gIFZvaWNlU3RhdGUsXG4gIFdlYmhvb2ssXG4gIFdlbGNvbWVTY3JlZW4sXG59IGZyb20gJy4vdHJhbnNmb3JtZXJzL2luZGV4LmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQm90SGVscGVyczxUUHJvcHMgZXh0ZW5kcyBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgVEJlaGF2aW9yIGV4dGVuZHMgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj4oXG4gIGJvdDogQm90PFRQcm9wcywgVEJlaGF2aW9yPixcbik6IEJvdEhlbHBlcnM8VFByb3BzLCBUQmVoYXZpb3I+IHtcbiAgcmV0dXJuIHtcbiAgICBjcmVhdGVBdXRvbW9kUnVsZTogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXV0b21vZFJ1bGUoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlQXV0b21vZFJ1bGUoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBjcmVhdGVDaGFubmVsOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlQ2hhbm5lbChndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSwgZ3VpbGRJZCB9KVxuICAgIH0sXG4gICAgY3JlYXRlRW1vamk6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUVtb2ppKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgY3JlYXRlQXBwbGljYXRpb25FbW9qaTogYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUFwcGxpY2F0aW9uRW1vamkob3B0aW9ucykpKVxuICAgIH0sXG4gICAgY3JlYXRlRm9ydW1UaHJlYWQ6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUZvcnVtVGhyZWFkKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSkgfSlcbiAgICB9LFxuICAgIGNyZWF0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogYXN5bmMgKGNvbW1hbmQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQoY29tbWFuZCwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgY3JlYXRlR3VpbGQ6IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5ndWlsZChib3QsIHsgZ3VpbGQ6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVHdWlsZChvcHRpb25zKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIGNyZWF0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kOiBhc3luYyAoY29tbWFuZCwgZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kKGNvbW1hbmQsIGd1aWxkSWQsIG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGNyZWF0ZUd1aWxkRnJvbVRlbXBsYXRlOiBhc3luYyAodGVtcGxhdGVDb2RlLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5ndWlsZChib3QsIHsgZ3VpbGQ6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVHdWlsZEZyb21UZW1wbGF0ZSh0ZW1wbGF0ZUNvZGUsIG9wdGlvbnMpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgY3JlYXRlR3VpbGRTdGlja2VyOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zdGlja2VyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUd1aWxkU3RpY2tlcihndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGNyZWF0ZUd1aWxkVGVtcGxhdGU6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy50ZW1wbGF0ZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVHdWlsZFRlbXBsYXRlKGd1aWxkSWQsIG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGNyZWF0ZUludml0ZTogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuY3JlYXRlSW52aXRlKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKVxuICAgIH0sXG4gICAgY3JlYXRlUm9sZTogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHsgcm9sZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZVJvbGUoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSksIGd1aWxkSWQgfSlcbiAgICB9LFxuICAgIGNyZWF0ZVNjaGVkdWxlZEV2ZW50OiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zY2hlZHVsZWRFdmVudChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVTY2hlZHVsZWRFdmVudChndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGNyZWF0ZVN0YWdlSW5zdGFuY2U6IGFzeW5jIChvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnN0YWdlSW5zdGFuY2UoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlU3RhZ2VJbnN0YW5jZShvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGNyZWF0ZVdlYmhvb2s6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMud2ViaG9vayhib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVXZWJob29rKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBlZGl0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnM6IGFzeW5jIChndWlsZElkLCBjb21tYW5kSWQsIGJlYXJlclRva2VuLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uKFxuICAgICAgICBib3QsXG4gICAgICAgIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnMoZ3VpbGRJZCwgY29tbWFuZElkLCBiZWFyZXJUb2tlbiwgb3B0aW9ucykpLFxuICAgICAgKVxuICAgIH0sXG4gICAgZWRpdEF1dG9tb2RSdWxlOiBhc3luYyAoZ3VpbGRJZCwgcnVsZUlkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmF1dG9tb2RSdWxlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRBdXRvbW9kUnVsZShndWlsZElkLCBydWxlSWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgZWRpdEJvdFByb2ZpbGU6IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRCb3RQcm9maWxlKG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGVkaXRDaGFubmVsOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0Q2hhbm5lbChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikpIH0pXG4gICAgfSxcbiAgICBlZGl0RW1vamk6IGFzeW5jIChndWlsZElkLCBpZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0RW1vamkoZ3VpbGRJZCwgaWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgZWRpdEFwcGxpY2F0aW9uRW1vamk6IGFzeW5jIChpZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEFwcGxpY2F0aW9uRW1vamkoaWQsIG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGVkaXRGb2xsb3d1cE1lc3NhZ2U6IGFzeW5jICh0b2tlbiwgbWVzc2FnZUlkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEZvbGxvd3VwTWVzc2FnZSh0b2tlbiwgbWVzc2FnZUlkLCBvcHRpb25zKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIGVkaXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQ6IGFzeW5jIChjb21tYW5kSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kKGNvbW1hbmRJZCwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgZWRpdEd1aWxkOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5ndWlsZChib3QsIHsgZ3VpbGQ6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0R3VpbGQoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIGVkaXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZDogYXN5bmMgKGNvbW1hbmRJZCwgZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZChjb21tYW5kSWQsIGd1aWxkSWQsIG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGVkaXRHdWlsZFN0aWNrZXI6IGFzeW5jIChndWlsZElkLCBzdGlja2VySWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3RpY2tlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0R3VpbGRTdGlja2VyKGd1aWxkSWQsIHN0aWNrZXJJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBlZGl0R3VpbGRUZW1wbGF0ZTogYXN5bmMgKGd1aWxkSWQsIHRlbXBsYXRlQ29kZSwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudGVtcGxhdGUoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEd1aWxkVGVtcGxhdGUoZ3VpbGRJZCwgdGVtcGxhdGVDb2RlLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBlZGl0TWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwge1xuICAgICAgICBtZXNzYWdlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdE1lc3NhZ2UoY2hhbm5lbElkLCBtZXNzYWdlSWQsIG9wdGlvbnMpKSBhcyBEaXNjb3JkTWVzc2FnZSxcbiAgICAgICAgc2hhcmRJZDogMCxcbiAgICAgIH0pXG4gICAgfSxcbiAgICBlZGl0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlOiBhc3luYyAodG9rZW4sIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlKHRva2VuLCBvcHRpb25zKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIGVkaXRPcmlnaW5hbFdlYmhvb2tNZXNzYWdlOiBhc3luYyAod2ViaG9va0lkLCB0b2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHtcbiAgICAgICAgbWVzc2FnZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRPcmlnaW5hbFdlYmhvb2tNZXNzYWdlKHdlYmhvb2tJZCwgdG9rZW4sIG9wdGlvbnMpKSBhcyBEaXNjb3JkTWVzc2FnZSxcbiAgICAgICAgc2hhcmRJZDogMCxcbiAgICAgIH0pXG4gICAgfSxcbiAgICBlZGl0Um9sZTogYXN5bmMgKGd1aWxkSWQsIHJvbGVJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5yb2xlKGJvdCwgeyByb2xlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdFJvbGUoZ3VpbGRJZCwgcm9sZUlkLCBvcHRpb25zLCByZWFzb24pKSwgZ3VpbGRJZCB9KVxuICAgIH0sXG4gICAgZWRpdFJvbGVQb3NpdGlvbnM6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdFJvbGVQb3NpdGlvbnMoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSkubWFwKChyb2xlKSA9PiBib3QudHJhbnNmb3JtZXJzLnJvbGUoYm90LCB7IHJvbGUsIGd1aWxkSWQgfSkpXG4gICAgfSxcbiAgICBlZGl0U2NoZWR1bGVkRXZlbnQ6IGFzeW5jIChndWlsZElkLCBldmVudElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnNjaGVkdWxlZEV2ZW50KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRTY2hlZHVsZWRFdmVudChndWlsZElkLCBldmVudElkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGVkaXRTdGFnZUluc3RhbmNlOiBhc3luYyAoY2hhbm5lbElkLCB0b3BpYywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zdGFnZUluc3RhbmNlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRTdGFnZUluc3RhbmNlKGNoYW5uZWxJZCwgdG9waWMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgZWRpdFdlYmhvb2s6IGFzeW5jICh3ZWJob29rSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMud2ViaG9vayhib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0V2ViaG9vayh3ZWJob29rSWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgZWRpdFdlYmhvb2tNZXNzYWdlOiBhc3luYyAod2ViaG9va0lkLCB0b2tlbiwgbWVzc2FnZUlkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwge1xuICAgICAgICBtZXNzYWdlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdFdlYmhvb2tNZXNzYWdlKHdlYmhvb2tJZCwgdG9rZW4sIG1lc3NhZ2VJZCwgb3B0aW9ucykpIGFzIERpc2NvcmRNZXNzYWdlLFxuICAgICAgICBzaGFyZElkOiAwLFxuICAgICAgfSlcbiAgICB9LFxuICAgIGVkaXRXZWJob29rV2l0aFRva2VuOiBhc3luYyAod2ViaG9va0lkLCB0b2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMud2ViaG9vayhib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0V2ViaG9va1dpdGhUb2tlbih3ZWJob29rSWQsIHRva2VuLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBlZGl0V2VsY29tZVNjcmVlbjogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMud2VsY29tZVNjcmVlbihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0V2VsY29tZVNjcmVlbihndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGVkaXRXaWRnZXRTZXR0aW5nczogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMud2lkZ2V0U2V0dGluZ3MoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdFdpZGdldFNldHRpbmdzKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgZXhlY3V0ZVdlYmhvb2s6IGFzeW5jICh3ZWJob29rSWQsIHRva2VuLCBvcHRpb25zKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBib3QucmVzdC5leGVjdXRlV2ViaG9vayh3ZWJob29rSWQsIHRva2VuLCBvcHRpb25zKVxuICAgICAgaWYgKCFyZXN1bHQpIHJldHVyblxuXG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiBzbmFrZWxpemUocmVzdWx0KSBhcyBEaXNjb3JkTWVzc2FnZSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgZm9sbG93QW5ub3VuY2VtZW50OiBhc3luYyAoc291cmNlQ2hhbm5lbElkLCB0YXJnZXRDaGFubmVsSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5mb2xsb3dBbm5vdW5jZW1lbnQoc291cmNlQ2hhbm5lbElkLCB0YXJnZXRDaGFubmVsSWQpXG4gICAgfSxcbiAgICBnZXRBY3RpdmVUaHJlYWRzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYm90LnJlc3QuZ2V0QWN0aXZlVGhyZWFkcyhndWlsZElkKVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdGhyZWFkczogcmVzdWx0LnRocmVhZHMubWFwKCh0aHJlYWQpID0+IGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgZ3VpbGRJZCwgY2hhbm5lbDogc25ha2VsaXplKHRocmVhZCkgfSkpLFxuICAgICAgICBtZW1iZXJzOiByZXN1bHQubWVtYmVycy5tYXAoKG1lbWJlcikgPT4gYm90LnRyYW5zZm9ybWVycy50aHJlYWRNZW1iZXIoYm90LCBzbmFrZWxpemUobWVtYmVyKSkpLFxuICAgICAgfVxuICAgIH0sXG4gICAgZ2V0QXBwbGljYXRpb25JbmZvOiBhc3luYyAoKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbihib3QsIHsgYXBwbGljYXRpb246IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRBcHBsaWNhdGlvbkluZm8oKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIGVkaXRBcHBsaWNhdGlvbkluZm86IGFzeW5jIChib2R5KSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbihib3QsIHsgYXBwbGljYXRpb246IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0QXBwbGljYXRpb25JbmZvKGJvZHkpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgZ2V0Q3VycmVudEF1dGhlbnRpY2F0aW9uSW5mbzogYXN5bmMgKGJlYXJlclRva2VuKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0Q3VycmVudEF1dGhlbnRpY2F0aW9uSW5mbyhiZWFyZXJUb2tlbilcbiAgICB9LFxuICAgIGV4Y2hhbmdlVG9rZW46IGFzeW5jIChjbGllbnRJZCwgY2xpZW50U2VjcmV0LCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZXhjaGFuZ2VUb2tlbihjbGllbnRJZCwgY2xpZW50U2VjcmV0LCBvcHRpb25zKVxuICAgIH0sXG4gICAgcmV2b2tlVG9rZW46IGFzeW5jIChjbGllbnRJZCwgY2xpZW50U2VjcmV0LCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QucmV2b2tlVG9rZW4oY2xpZW50SWQsIGNsaWVudFNlY3JldCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb246IGFzeW5jIChndWlsZElkLCBjb21tYW5kSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGJvdC5yZXN0LmdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb24oZ3VpbGRJZCwgY29tbWFuZElkLCBvcHRpb25zKVxuICAgICAgY29uc3Qgc25ha2VkUmVzID0gc25ha2VsaXplKHJlcylcblxuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbihib3QsIHNuYWtlZFJlcylcbiAgICB9LFxuICAgIGdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucyhndWlsZElkLCBvcHRpb25zKSkubWFwKChyZXMpID0+XG4gICAgICAgIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbihib3QsIHNuYWtlbGl6ZShyZXMpKSxcbiAgICAgIClcbiAgICB9LFxuICAgIGdldEF1ZGl0TG9nOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldEF1ZGl0TG9nKGd1aWxkSWQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBnZXRBdXRvbW9kUnVsZTogYXN5bmMgKGd1aWxkSWQsIHJ1bGVJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXV0b21vZFJ1bGUoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0QXV0b21vZFJ1bGUoZ3VpbGRJZCwgcnVsZUlkKSkpXG4gICAgfSxcbiAgICBnZXRBdXRvbW9kUnVsZXM6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldEF1dG9tb2RSdWxlcyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuYXV0b21vZFJ1bGUoYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRBdmFpbGFibGVWb2ljZVJlZ2lvbnM6IGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0QXZhaWxhYmxlVm9pY2VSZWdpb25zKCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLnZvaWNlUmVnaW9uKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0QmFuOiBhc3luYyAoZ3VpbGRJZCwgdXNlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0QmFuKGd1aWxkSWQsIHVzZXJJZClcbiAgICB9LFxuICAgIGdldEJhbnM6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0QmFucyhndWlsZElkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgZ2V0Q2hhbm5lbDogYXN5bmMgKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldENoYW5uZWwoY2hhbm5lbElkKSkgfSlcbiAgICB9LFxuICAgIGdldENoYW5uZWxJbnZpdGVzOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0Q2hhbm5lbEludml0ZXMoY2hhbm5lbElkKVxuICAgICAgLy8gcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRDaGFubmVsSW52aXRlcyhjaGFubmVsSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5pbnZpdGUoYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRDaGFubmVsczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0Q2hhbm5lbHMoZ3VpbGRJZCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHNuYWtlbGl6ZShyZXMpLCBndWlsZElkIH0pKVxuICAgIH0sXG4gICAgZ2V0Q2hhbm5lbFdlYmhvb2tzOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldENoYW5uZWxXZWJob29rcyhjaGFubmVsSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy53ZWJob29rKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0RG1DaGFubmVsOiBhc3luYyAodXNlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0RG1DaGFubmVsKHVzZXJJZCkpIH0pXG4gICAgfSxcbiAgICBnZXRHcm91cERtQ2hhbm5lbDogYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRHcm91cERtQ2hhbm5lbChvcHRpb25zKSkgfSlcbiAgICB9LFxuICAgIGdldEVtb2ppOiBhc3luYyAoZ3VpbGRJZCwgZW1vamlJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0RW1vamkoZ3VpbGRJZCwgZW1vamlJZCkpKVxuICAgIH0sXG4gICAgZ2V0QXBwbGljYXRpb25FbW9qaTogYXN5bmMgKGVtb2ppSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEFwcGxpY2F0aW9uRW1vamkoZW1vamlJZCkpKVxuICAgIH0sXG4gICAgZ2V0RW1vamlzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRFbW9qaXMoZ3VpbGRJZCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0QXBwbGljYXRpb25FbW9qaXM6IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGJvdC5yZXN0LmdldEFwcGxpY2F0aW9uRW1vamlzKClcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaXRlbXM6IHJlcy5pdGVtcy5tYXAoKGl0ZW0pID0+IGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCBzbmFrZWxpemUoaXRlbSkpKSxcbiAgICAgIH1cbiAgICB9LFxuICAgIGdldEZvbGxvd3VwTWVzc2FnZTogYXN5bmMgKHRva2VuLCBtZXNzYWdlSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRGb2xsb3d1cE1lc3NhZ2UodG9rZW4sIG1lc3NhZ2VJZCkpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBnZXRHYXRld2F5Qm90OiBhc3luYyAoKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5nYXRld2F5Qm90KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEdhdGV3YXlCb3QoKSkpXG4gICAgfSxcbiAgICBnZXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQ6IGFzeW5jIChjb21tYW5kSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQoY29tbWFuZElkKSkpXG4gICAgfSxcbiAgICBnZXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzOiBhc3luYyAoKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZHMoKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0R3VpbGQ6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5ndWlsZChib3QsIHsgZ3VpbGQ6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRHdWlsZChndWlsZElkLCBvcHRpb25zKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIGdldEd1aWxkczogYXN5bmMgKGJlYXJlclRva2VuLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkcyhiZWFyZXJUb2tlbiwgb3B0aW9ucykpLm1hcDxQYXJ0aWFsPHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmd1aWxkPj4oKHJlcykgPT5cbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBnZXRHdWlsZHMgcmV0dXJucyBwYXJ0aWFsIGd1aWxkc1xuICAgICAgICBib3QudHJhbnNmb3JtZXJzLmd1aWxkKGJvdCwgeyBndWlsZDogc25ha2VsaXplKHJlcyksIHNoYXJkSWQ6IDAgfSksXG4gICAgICApXG4gICAgfSxcbiAgICBnZXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZDogYXN5bmMgKGNvbW1hbmRJZCwgZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkQXBwbGljYXRpb25Db21tYW5kKGNvbW1hbmRJZCwgZ3VpbGRJZCkpKVxuICAgIH0sXG4gICAgZ2V0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZHMoZ3VpbGRJZCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldEd1aWxkUHJldmlldzogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRHdWlsZFByZXZpZXcoZ3VpbGRJZClcbiAgICAgIC8vIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnh4eChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRHdWlsZFByZXZpZXcoZ3VpbGRJZCkpKVxuICAgIH0sXG4gICAgZ2V0R3VpbGRTdGlja2VyOiBhc3luYyAoZ3VpbGRJZCwgc3RpY2tlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zdGlja2VyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkU3RpY2tlcihndWlsZElkLCBzdGlja2VySWQpKSlcbiAgICB9LFxuICAgIGdldEd1aWxkU3RpY2tlcnM6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkU3RpY2tlcnMoZ3VpbGRJZCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLnN0aWNrZXIoYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRHdWlsZFRlbXBsYXRlOiBhc3luYyAodGVtcGxhdGVDb2RlKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy50ZW1wbGF0ZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRHdWlsZFRlbXBsYXRlKHRlbXBsYXRlQ29kZSkpKVxuICAgIH0sXG4gICAgZ2V0R3VpbGRUZW1wbGF0ZXM6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkVGVtcGxhdGVzKGd1aWxkSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy50ZW1wbGF0ZShib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldEd1aWxkV2ViaG9va3M6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkV2ViaG9va3MoZ3VpbGRJZCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLndlYmhvb2soYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRJbnRlZ3JhdGlvbnM6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldEludGVncmF0aW9ucyhndWlsZElkKSkubWFwKChyZXMpID0+XG4gICAgICAgIGJvdC50cmFuc2Zvcm1lcnMuaW50ZWdyYXRpb24oYm90LCBzbmFrZWxpemUoeyAuLi5yZXMsIGd1aWxkSWQ6IGd1aWxkSWQudG9TdHJpbmcoKSB9KSksXG4gICAgICApXG4gICAgfSxcbiAgICBnZXRJbnZpdGU6IGFzeW5jIChpbnZpdGVDb2RlLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5pbnZpdGUoYm90LCB7IGludml0ZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEludml0ZShpbnZpdGVDb2RlLCBvcHRpb25zKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIGdldEludml0ZXM6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldEludml0ZXMoZ3VpbGRJZCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLmludml0ZShib3QsIHsgaW52aXRlOiBzbmFrZWxpemUocmVzKSwgc2hhcmRJZDogMCB9KSlcbiAgICB9LFxuICAgIGdldE1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldE1lc3NhZ2UoY2hhbm5lbElkLCBtZXNzYWdlSWQpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgZ2V0TWVzc2FnZXM6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0TWVzc2FnZXMoY2hhbm5lbElkLCBvcHRpb25zKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogc25ha2VsaXplKHJlcyksIHNoYXJkSWQ6IDAgfSkpXG4gICAgfSxcbiAgICBnZXRTdGlja2VyUGFjazogYXN5bmMgKHN0aWNrZXJQYWNrSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnN0aWNrZXJQYWNrKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFN0aWNrZXJQYWNrKHN0aWNrZXJQYWNrSWQpKSlcbiAgICB9LFxuICAgIGdldFN0aWNrZXJQYWNrczogYXN5bmMgKCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRTdGlja2VyUGFja3MoKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuc3RpY2tlclBhY2soYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2U6IGFzeW5jICh0b2tlbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSh0b2tlbikpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBnZXRQaW5uZWRNZXNzYWdlczogYXN5bmMgKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRQaW5uZWRNZXNzYWdlcyhjaGFubmVsSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiBzbmFrZWxpemUocmVzKSwgc2hhcmRJZDogMCB9KSlcbiAgICB9LFxuICAgIGdldFByaXZhdGVBcmNoaXZlZFRocmVhZHM6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRQcml2YXRlQXJjaGl2ZWRUaHJlYWRzKGNoYW5uZWxJZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGdldFByaXZhdGVKb2luZWRBcmNoaXZlZFRocmVhZHM6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRQcml2YXRlSm9pbmVkQXJjaGl2ZWRUaHJlYWRzKGNoYW5uZWxJZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGdldFBydW5lQ291bnQ6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0UHJ1bmVDb3VudChndWlsZElkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgZ2V0UHVibGljQXJjaGl2ZWRUaHJlYWRzOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0UHVibGljQXJjaGl2ZWRUaHJlYWRzKGNoYW5uZWxJZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGdldFJvbGVzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRSb2xlcyhndWlsZElkKSkubWFwKChyb2xlKSA9PiBib3QudHJhbnNmb3JtZXJzLnJvbGUoYm90LCB7IHJvbGUsIGd1aWxkSWQgfSkpXG4gICAgfSxcbiAgICBnZXRSb2xlOiBhc3luYyAoZ3VpbGRJZCwgcm9sZUlkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5yb2xlKGJvdCwgeyByb2xlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0Um9sZShndWlsZElkLCByb2xlSWQpKSwgZ3VpbGRJZCB9KVxuICAgIH0sXG4gICAgZ2V0U2NoZWR1bGVkRXZlbnQ6IGFzeW5jIChndWlsZElkLCBldmVudElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zY2hlZHVsZWRFdmVudChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRTY2hlZHVsZWRFdmVudChndWlsZElkLCBldmVudElkLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBnZXRTY2hlZHVsZWRFdmVudHM6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldFNjaGVkdWxlZEV2ZW50cyhndWlsZElkLCBvcHRpb25zKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuc2NoZWR1bGVkRXZlbnQoYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRTY2hlZHVsZWRFdmVudFVzZXJzOiBhc3luYyAoZ3VpbGRJZCwgZXZlbnRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRTY2hlZHVsZWRFdmVudFVzZXJzKGd1aWxkSWQsIGV2ZW50SWQsIG9wdGlvbnMpKS5tYXAoKHUpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB1c2VyOiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBzbmFrZWxpemUodS51c2VyKSksXG4gICAgICAgICAgbWVtYmVyOiB1Lm1lbWJlciAmJiBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHNuYWtlbGl6ZSh1Lm1lbWJlciksIGd1aWxkSWQsIGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHUudXNlci5pZCkpLFxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0sXG4gICAgZ2V0U2Vzc2lvbkluZm86IGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmdhdGV3YXlCb3QoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0U2Vzc2lvbkluZm8oKSkpXG4gICAgfSxcbiAgICBnZXRTdGFnZUluc3RhbmNlOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zdGFnZUluc3RhbmNlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFN0YWdlSW5zdGFuY2UoY2hhbm5lbElkKSkpXG4gICAgfSxcbiAgICBnZXRPd25Wb2ljZVN0YXRlOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudm9pY2VTdGF0ZShib3QsIHsgZ3VpbGRJZCwgdm9pY2VTdGF0ZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldE93blZvaWNlU3RhdGUoZ3VpbGRJZCkpIH0pXG4gICAgfSxcbiAgICBnZXRVc2VyVm9pY2VTdGF0ZTogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudm9pY2VTdGF0ZShib3QsIHsgZ3VpbGRJZCwgdm9pY2VTdGF0ZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFVzZXJWb2ljZVN0YXRlKGd1aWxkSWQsIHVzZXJJZCkpIH0pXG4gICAgfSxcbiAgICBnZXRTdGlja2VyOiBhc3luYyAoc3RpY2tlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zdGlja2VyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFN0aWNrZXIoc3RpY2tlcklkKSkpXG4gICAgfSxcbiAgICBnZXRUaHJlYWRNZW1iZXI6IGFzeW5jIChjaGFubmVsSWQsIHVzZXJJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudGhyZWFkTWVtYmVyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFRocmVhZE1lbWJlcihjaGFubmVsSWQsIHVzZXJJZCwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgZ2V0VGhyZWFkTWVtYmVyczogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRUaHJlYWRNZW1iZXJzKGNoYW5uZWxJZCwgb3B0aW9ucykpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLnRocmVhZE1lbWJlcihib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldFJlYWN0aW9uczogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbiwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRSZWFjdGlvbnMoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uLCBvcHRpb25zKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldFVzZXI6IGFzeW5jIChpZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRVc2VyKGlkKSkpXG4gICAgfSxcbiAgICBnZXRDdXJyZW50VXNlcjogYXN5bmMgKGJlYXJlclRva2VuKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEN1cnJlbnRVc2VyKGJlYXJlclRva2VuKSkpXG4gICAgfSxcbiAgICBnZXRVc2VyQ29ubmVjdGlvbnM6IGFzeW5jIChiZWFyZXJUb2tlbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldFVzZXJDb25uZWN0aW9ucyhiZWFyZXJUb2tlbilcbiAgICB9LFxuICAgIGdldFVzZXJBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uOiBhc3luYyAoYmVhcmVyVG9rZW4sIGFwcGxpY2F0aW9uSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbihiZWFyZXJUb2tlbiwgYXBwbGljYXRpb25JZClcbiAgICB9LFxuICAgIGdldFZhbml0eVVybDogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRWYW5pdHlVcmwoZ3VpbGRJZClcbiAgICB9LFxuICAgIGdldFZvaWNlUmVnaW9uczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0Vm9pY2VSZWdpb25zKGd1aWxkSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy52b2ljZVJlZ2lvbihib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldFdlYmhvb2s6IGFzeW5jICh3ZWJob29rSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlYmhvb2soYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0V2ViaG9vayh3ZWJob29rSWQpKSlcbiAgICB9LFxuICAgIGdldFdlYmhvb2tNZXNzYWdlOiBhc3luYyAod2ViaG9va0lkLCB0b2tlbiwgbWVzc2FnZUlkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0V2ViaG9va01lc3NhZ2Uod2ViaG9va0lkLCB0b2tlbiwgbWVzc2FnZUlkLCBvcHRpb25zKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIGdldFdlYmhvb2tXaXRoVG9rZW46IGFzeW5jICh3ZWJob29rSWQsIHRva2VuKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy53ZWJob29rKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFdlYmhvb2tXaXRoVG9rZW4od2ViaG9va0lkLCB0b2tlbikpKVxuICAgIH0sXG4gICAgZ2V0V2VsY29tZVNjcmVlbjogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlbGNvbWVTY3JlZW4oYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0V2VsY29tZVNjcmVlbihndWlsZElkKSkpXG4gICAgfSxcbiAgICBnZXRXaWRnZXQ6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy53aWRnZXQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0V2lkZ2V0KGd1aWxkSWQpKSlcbiAgICB9LFxuICAgIGdldFdpZGdldFNldHRpbmdzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMud2lkZ2V0U2V0dGluZ3MoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0V2lkZ2V0U2V0dGluZ3MoZ3VpbGRJZCkpKVxuICAgIH0sXG4gICAgcHVibGlzaE1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LnB1Ymxpc2hNZXNzYWdlKGNoYW5uZWxJZCwgbWVzc2FnZUlkKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIHNlbmRNZXNzYWdlOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3Quc2VuZE1lc3NhZ2UoY2hhbm5lbElkLCBvcHRpb25zKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIHNlbmRGb2xsb3d1cE1lc3NhZ2U6IGFzeW5jICh0b2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LnNlbmRGb2xsb3d1cE1lc3NhZ2UodG9rZW4sIG9wdGlvbnMpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgc3RhcnRUaHJlYWRXaXRoTWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7XG4gICAgICAgIGNoYW5uZWw6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5zdGFydFRocmVhZFdpdGhNZXNzYWdlKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCBvcHRpb25zLCByZWFzb24pKSxcbiAgICAgIH0pXG4gICAgfSxcbiAgICBzdGFydFRocmVhZFdpdGhvdXRNZXNzYWdlOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5zdGFydFRocmVhZFdpdGhvdXRNZXNzYWdlKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSkgfSlcbiAgICB9LFxuICAgIHN5bmNHdWlsZFRlbXBsYXRlOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudGVtcGxhdGUoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3Quc3luY0d1aWxkVGVtcGxhdGUoZ3VpbGRJZCkpKVxuICAgIH0sXG4gICAgdXBzZXJ0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kczogYXN5bmMgKGNvbW1hbmRzLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LnVwc2VydEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZHMoY29tbWFuZHMsIG9wdGlvbnMpKS5tYXAoKHJlcykgPT5cbiAgICAgICAgYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUocmVzKSksXG4gICAgICApXG4gICAgfSxcbiAgICB1cHNlcnRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZHM6IGFzeW5jIChndWlsZElkLCBjb21tYW5kcywgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC51cHNlcnRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZHMoZ3VpbGRJZCwgY29tbWFuZHMsIG9wdGlvbnMpKS5tYXAoKHJlcykgPT5cbiAgICAgICAgYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUocmVzKSksXG4gICAgICApXG4gICAgfSxcbiAgICBlZGl0Qm90TWVtYmVyOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEJvdE1lbWJlcihndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSwgZ3VpbGRJZCwgYm90LmlkKVxuICAgIH0sXG4gICAgZWRpdE1lbWJlcjogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdE1lbWJlcihndWlsZElkLCB1c2VySWQsIG9wdGlvbnMsIHJlYXNvbikpLCBndWlsZElkLCB1c2VySWQpXG4gICAgfSxcbiAgICBnZXRNZW1iZXI6IGFzeW5jIChndWlsZElkLCB1c2VySWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRNZW1iZXIoZ3VpbGRJZCwgdXNlcklkKSksIGd1aWxkSWQsIHVzZXJJZClcbiAgICB9LFxuICAgIGdldEN1cnJlbnRNZW1iZXI6IGFzeW5jIChndWlsZElkLCBiZWFyZXJUb2tlbikgPT4ge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgYm90LnJlc3QuZ2V0Q3VycmVudE1lbWJlcihndWlsZElkLCBiZWFyZXJUb2tlbilcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHNuYWtlbGl6ZShyZXMpLCBndWlsZElkLCBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShyZXMudXNlci5pZCkpXG4gICAgfSxcbiAgICBnZXRNZW1iZXJzOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRNZW1iZXJzKGd1aWxkSWQsIG9wdGlvbnMpKS5tYXAoKHJlcykgPT5cbiAgICAgICAgYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBzbmFrZWxpemUocmVzKSwgZ3VpbGRJZCwgYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocmVzLnVzZXIuaWQpKSxcbiAgICAgIClcbiAgICB9LFxuICAgIHBydW5lTWVtYmVyczogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LnBydW5lTWVtYmVycyhndWlsZElkLCBvcHRpb25zLCByZWFzb24pXG4gICAgfSxcbiAgICBzZWFyY2hNZW1iZXJzOiBhc3luYyAoZ3VpbGRJZCwgcXVlcnksIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3Quc2VhcmNoTWVtYmVycyhndWlsZElkLCBxdWVyeSwgb3B0aW9ucykpLm1hcCgocmVzKSA9PlxuICAgICAgICBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHNuYWtlbGl6ZShyZXMpLCBndWlsZElkLCBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShyZXMudXNlci5pZCkpLFxuICAgICAgKVxuICAgIH0sXG4gICAgYnVsa0Jhbk1lbWJlcnM6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGJvdC5yZXN0LmJ1bGtCYW5NZW1iZXJzKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbilcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYmFubmVkVXNlcnM6IHJlcy5iYW5uZWRVc2Vycy5tYXAoKHgpID0+IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHgpKSxcbiAgICAgICAgZmFpbGVkVXNlcnM6IHJlcy5mYWlsZWRVc2Vycy5tYXAoKHgpID0+IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHgpKSxcbiAgICAgIH1cbiAgICB9LFxuICAgIGdldEFwcGxpY2F0aW9uQWN0aXZpdHlJbnN0YW5jZTogYXN5bmMgKGFwcGxpY2F0aW9uSWQsIGluc3RhbmNlSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRBcHBsaWNhdGlvbkFjdGl2aXR5SW5zdGFuY2UoYXBwbGljYXRpb25JZCwgaW5zdGFuY2VJZClcbiAgICB9LFxuICAgIGxpc3RBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uc01ldGFkYXRhUmVjb3JkczogYXN5bmMgKGFwcGxpY2F0aW9uSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5saXN0QXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbnNNZXRhZGF0YVJlY29yZHMoYXBwbGljYXRpb25JZClcbiAgICB9LFxuICAgIHVwZGF0ZUFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb25zTWV0YWRhdGFSZWNvcmRzOiBhc3luYyAoYXBwbGljYXRpb25JZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LnVwZGF0ZUFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb25zTWV0YWRhdGFSZWNvcmRzKGFwcGxpY2F0aW9uSWQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBjcmVhdGVMb2JieTogYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmxvYmJ5KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUxvYmJ5KG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGdldExvYmJ5OiBhc3luYyAobG9iYnlJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubG9iYnkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0TG9iYnkobG9iYnlJZCkpKVxuICAgIH0sXG4gICAgbW9kaWZ5TG9iYnk6IGFzeW5jIChsb2JieUlkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5sb2JieShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5tb2RpZnlMb2JieShsb2JieUlkLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBhZGRNZW1iZXJUb0xvYmJ5OiBhc3luYyAobG9iYnlJZCwgdXNlcklkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5sb2JieU1lbWJlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5hZGRNZW1iZXJUb0xvYmJ5KGxvYmJ5SWQsIHVzZXJJZCwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgbGlua0NoYW5uZWxUb0xvYmJ5OiBhc3luYyAobG9iYnlJZCwgYmVhcmVyVG9rZW4sIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmxvYmJ5KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmxpbmtDaGFubmVsVG9Mb2JieShsb2JieUlkLCBiZWFyZXJUb2tlbiwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgdW5saW5rQ2hhbm5lbFRvTG9iYnk6IGFzeW5jIChsb2JieUlkLCBiZWFyZXJUb2tlbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubG9iYnkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QudW5saW5rQ2hhbm5lbFRvTG9iYnkobG9iYnlJZCwgYmVhcmVyVG9rZW4pKSlcbiAgICB9LFxuICAgIC8vIEFsbCB1c2VsZXNzIHZvaWQgcmV0dXJuIGZ1bmN0aW9ucyBoZXJlXG4gICAgYWRkUmVhY3Rpb246IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhY3Rpb24pID0+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+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnNvdW5kYm9hcmRTb3VuZChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVHdWlsZFNvdW5kYm9hcmRTb3VuZChndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIG1vZGlmeUd1aWxkU291bmRib2FyZFNvdW5kOiBhc3luYyAoZ3VpbGRJZCwgc291bmRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zb3VuZGJvYXJkU291bmQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QubW9kaWZ5R3VpbGRTb3VuZGJvYXJkU291bmQoZ3VpbGRJZCwgc291bmRJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBkZWxldGVHdWlsZFNvdW5kYm9hcmRTb3VuZDogYXN5bmMgKGd1aWxkSWQsIHNvdW5kSWQsIHJlYXNvbikgPT4ge1xuICAgICAgYXdhaXQgYm90LnJlc3QuZGVsZXRlR3VpbGRTb3VuZGJvYXJkU291bmQoZ3VpbGRJZCwgc291bmRJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlTG9iYnk6IGFzeW5jIChsb2JieUlkKSA9PiB7XG4gICAgICBhd2FpdCBib3QucmVzdC5kZWxldGVMb2JieShsb2JieUlkKVxuICAgIH0sXG4gICAgcmVtb3ZlTWVtYmVyRnJvbUxvYmJ5OiBhc3luYyAobG9iYnlJZCwgdXNlcklkKSA9PiB7XG4gICAgICBhd2FpdCBib3QucmVzdC5yZW1vdmVNZW1iZXJGcm9tTG9iYnkobG9iYnlJZCwgdXNlcklkKVxuICAgIH0sXG4gICAgbGVhdmVMb2JieTogYXN5bmMgKGxvYmJ5SWQsIGJlYXJlclRva2VuKSA9PiB7XG4gICAgICBhd2FpdCBib3QucmVzdC5sZWF2ZUxvYmJ5KGxvYmJ5SWQsIGJlYXJlclRva2VuKVxuICAgIH0sXG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgQm90SGVscGVyczxUUHJvcHMgZXh0ZW5kcyBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgVEJlaGF2aW9yIGV4dGVuZHMgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj4gPSB7XG4gIGNyZWF0ZUF1dG9tb2RSdWxlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVBdXRvTW9kZXJhdGlvblJ1bGVPcHRpb25zLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8QXV0b01vZGVyYXRpb25SdWxlPlxuICBjcmVhdGVDaGFubmVsOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVHdWlsZENoYW5uZWwsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxDaGFubmVsLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGNyZWF0ZUVtb2ppOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVHdWlsZEVtb2ppLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8RW1vamksIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgY3JlYXRlQXBwbGljYXRpb25FbW9qaTogKG9wdGlvbnM6IENyZWF0ZUFwcGxpY2F0aW9uRW1vamkpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8RW1vamksIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgY3JlYXRlRm9ydW1UaHJlYWQ6IChcbiAgICBjaGFubmVsSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBDcmVhdGVGb3J1bVBvc3RXaXRoTWVzc2FnZSxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxDaGFubmVsLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGNyZWF0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogKGNvbW1hbmQ6IENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZCwgb3B0aW9ucz86IENyZWF0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMpID0+IFByb21pc2U8QXBwbGljYXRpb25Db21tYW5kPlxuICAvKiogQGRlcHJlY2F0ZWQgKi9cbiAgY3JlYXRlR3VpbGQ6IChvcHRpb25zOiBDcmVhdGVHdWlsZCkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxHdWlsZCwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBjcmVhdGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZDogKFxuICAgIGNvbW1hbmQ6IENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9ucz86IENyZWF0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kT3B0aW9ucyxcbiAgKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uQ29tbWFuZD5cbiAgLyoqIEBkZXByZWNhdGVkICovXG4gIGNyZWF0ZUd1aWxkRnJvbVRlbXBsYXRlOiAodGVtcGxhdGVDb2RlOiBzdHJpbmcsIG9wdGlvbnM6IENyZWF0ZUd1aWxkRnJvbVRlbXBsYXRlKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEd1aWxkLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGNyZWF0ZUd1aWxkU3RpY2tlcjogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBDcmVhdGVHdWlsZFN0aWNrZXJPcHRpb25zLFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFN0aWNrZXIsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgY3JlYXRlR3VpbGRUZW1wbGF0ZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlVGVtcGxhdGUpID0+IFByb21pc2U8VGVtcGxhdGU+XG4gIGNyZWF0ZUludml0ZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogQ3JlYXRlQ2hhbm5lbEludml0ZSwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRJbnZpdGU+PlxuICBjcmVhdGVSb2xlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVHdWlsZFJvbGUsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxSb2xlLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGNyZWF0ZVNjaGVkdWxlZEV2ZW50OiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IENyZWF0ZVNjaGVkdWxlZEV2ZW50LFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFNjaGVkdWxlZEV2ZW50LCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGNyZWF0ZVN0YWdlSW5zdGFuY2U6IChvcHRpb25zOiBDcmVhdGVTdGFnZUluc3RhbmNlLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U3RhZ2VJbnN0YW5jZSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBjcmVhdGVXZWJob29rOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENyZWF0ZVdlYmhvb2ssIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxXZWJob29rLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGVkaXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uczogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBjb21tYW5kSWQ6IEJpZ1N0cmluZyxcbiAgICBiZWFyZXJUb2tlbjogc3RyaW5nLFxuICAgIG9wdGlvbnM6IENhbWVsaXplPERpc2NvcmRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucz5bXSxcbiAgKSA9PiBQcm9taXNlPEd1aWxkQXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnM+XG4gIGVkaXRBdXRvbW9kUnVsZTogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBydWxlSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBQYXJ0aWFsPEVkaXRBdXRvTW9kZXJhdGlvblJ1bGVPcHRpb25zPixcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxBdXRvTW9kZXJhdGlvblJ1bGU+XG4gIGVkaXRCb3RQcm9maWxlOiAob3B0aW9uczogeyB1c2VybmFtZT86IHN0cmluZzsgYm90QXZhdGFyVVJMPzogc3RyaW5nIHwgbnVsbDsgYm90QmFubmVyVVJMPzogc3RyaW5nIHwgbnVsbCB9KSA9PiBQcm9taXNlPFxuICAgIFNldHVwRGVzaXJlZFByb3BzPFVzZXIsIFRQcm9wcywgVEJlaGF2aW9yPlxuICA+XG4gIGVkaXRDaGFubmVsOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IE1vZGlmeUNoYW5uZWwsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxDaGFubmVsLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGVkaXRFbW9qaTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgaWQ6IEJpZ1N0cmluZywgb3B0aW9uczogTW9kaWZ5R3VpbGRFbW9qaSwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEVtb2ppLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGVkaXRBcHBsaWNhdGlvbkVtb2ppOiAoaWQ6IEJpZ1N0cmluZywgb3B0aW9uczogTW9kaWZ5QXBwbGljYXRpb25FbW9qaSkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxFbW9qaSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBlZGl0Rm9sbG93dXBNZXNzYWdlOiAoXG4gICAgdG9rZW46IHN0cmluZyxcbiAgICBtZXNzYWdlSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBJbnRlcmFjdGlvbkNhbGxiYWNrRGF0YSxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZWRpdEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogKGNvbW1hbmRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmQpID0+IFByb21pc2U8QXBwbGljYXRpb25Db21tYW5kPlxuICBlZGl0R3VpbGQ6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IE1vZGlmeUd1aWxkLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8R3VpbGQsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZWRpdEd1aWxkQXBwbGljYXRpb25Db21tYW5kOiAoY29tbWFuZElkOiBCaWdTdHJpbmcsIGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uQ29tbWFuZD5cbiAgZWRpdEd1aWxkU3RpY2tlcjogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBzdGlja2VySWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBBdExlYXN0T25lPEVkaXRHdWlsZFN0aWNrZXJPcHRpb25zPixcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTdGlja2VyLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGVkaXRHdWlsZFRlbXBsYXRlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB0ZW1wbGF0ZUNvZGU6IHN0cmluZywgb3B0aW9uczogTW9kaWZ5R3VpbGRUZW1wbGF0ZSkgPT4gUHJvbWlzZTxUZW1wbGF0ZT5cbiAgZWRpdE1lc3NhZ2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEVkaXRNZXNzYWdlKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZWRpdE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZTogKHRva2VuOiBzdHJpbmcsIG9wdGlvbnM6IEludGVyYWN0aW9uQ2FsbGJhY2tEYXRhKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZWRpdE9yaWdpbmFsV2ViaG9va01lc3NhZ2U6IChcbiAgICB3ZWJob29rSWQ6IEJpZ1N0cmluZyxcbiAgICB0b2tlbjogc3RyaW5nLFxuICAgIG9wdGlvbnM6IEludGVyYWN0aW9uQ2FsbGJhY2tEYXRhICYgeyB0aHJlYWRJZD86IEJpZ1N0cmluZyB9LFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBlZGl0Um9sZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgcm9sZUlkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEVkaXRHdWlsZFJvbGUsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxSb2xlLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGVkaXRSb2xlUG9zaXRpb25zOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBNb2RpZnlSb2xlUG9zaXRpb25zW10sIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxSb2xlLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT5cbiAgZWRpdFNjaGVkdWxlZEV2ZW50OiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIGV2ZW50SWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBQYXJ0aWFsPEVkaXRTY2hlZHVsZWRFdmVudD4sXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U2NoZWR1bGVkRXZlbnQsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZWRpdFN0YWdlSW5zdGFuY2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgdG9waWM6IHN0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFN0YWdlSW5zdGFuY2UsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZWRpdFdlYmhvb2s6ICh3ZWJob29rSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogTW9kaWZ5V2ViaG9vaywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFdlYmhvb2ssIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZWRpdFdlYmhvb2tNZXNzYWdlOiAoXG4gICAgd2ViaG9va0lkOiBCaWdTdHJpbmcsXG4gICAgdG9rZW46IHN0cmluZyxcbiAgICBtZXNzYWdlSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBJbnRlcmFjdGlvbkNhbGxiYWNrRGF0YSAmIHsgdGhyZWFkSWQ/OiBCaWdTdHJpbmcgfSxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZWRpdFdlYmhvb2tXaXRoVG9rZW46IChcbiAgICB3ZWJob29rSWQ6IEJpZ1N0cmluZyxcbiAgICB0b2tlbjogc3RyaW5nLFxuICAgIG9wdGlvbnM6IE9taXQ8TW9kaWZ5V2ViaG9vaywgJ2NoYW5uZWxJZCc+LFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8V2ViaG9vaywgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBlZGl0V2VsY29tZVNjcmVlbjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ2FtZWxpemU8RGlzY29yZE1vZGlmeUd1aWxkV2VsY29tZVNjcmVlbj4sIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxXZWxjb21lU2NyZWVuPlxuICBlZGl0V2lkZ2V0U2V0dGluZ3M6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENhbWVsaXplPERpc2NvcmRHdWlsZFdpZGdldFNldHRpbmdzPiwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPEd1aWxkV2lkZ2V0U2V0dGluZ3M+XG4gIGVkaXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbjogKFxuICAgIGJlYXJlclRva2VuOiBzdHJpbmcsXG4gICAgYXBwbGljYXRpb25JZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IENhbWVsaXplPERpc2NvcmRBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uPixcbiAgKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uPj5cbiAgZXhlY3V0ZVdlYmhvb2s6ICh3ZWJob29rSWQ6IEJpZ1N0cmluZywgdG9rZW46IHN0cmluZywgb3B0aW9uczogRXhlY3V0ZVdlYmhvb2spID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+IHwgdW5kZWZpbmVkPlxuICBmb2xsb3dBbm5vdW5jZW1lbnQ6IChzb3VyY2VDaGFubmVsSWQ6IEJpZ1N0cmluZywgdGFyZ2V0Q2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEZvbGxvd2VkQ2hhbm5lbD4+XG4gIGdldEFjdGl2ZVRocmVhZHM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8eyB0aHJlYWRzOiBTZXR1cERlc2lyZWRQcm9wczxDaGFubmVsLCBUUHJvcHMsIFRCZWhhdmlvcj5bXTsgbWVtYmVyczogVGhyZWFkTWVtYmVyW10gfT5cbiAgZ2V0QXBwbGljYXRpb25JbmZvOiAoKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uPlxuICBlZGl0QXBwbGljYXRpb25JbmZvOiAoYm9keTogRWRpdEFwcGxpY2F0aW9uKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uPlxuICBnZXRDdXJyZW50QXV0aGVudGljYXRpb25JbmZvOiAoYmVhcmVyVG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQ3VycmVudEF1dGhvcml6YXRpb24+PlxuICBleGNoYW5nZVRva2VuOiAoY2xpZW50SWQ6IEJpZ1N0cmluZywgY2xpZW50U2VjcmV0OiBzdHJpbmcsIG9wdGlvbnM6IENhbWVsaXplPERpc2NvcmRUb2tlbkV4Y2hhbmdlPikgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQWNjZXNzVG9rZW5SZXNwb25zZT4+XG4gIHJldm9rZVRva2VuOiAoY2xpZW50SWQ6IEJpZ1N0cmluZywgY2xpZW50U2VjcmV0OiBzdHJpbmcsIG9wdGlvbnM6IENhbWVsaXplPERpc2NvcmRUb2tlblJldm9jYXRpb24+KSA9PiBQcm9taXNlPHZvaWQ+XG4gIGdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb246IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgY29tbWFuZElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9ucz86IEdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25PcHRpb25zLFxuICApID0+IFByb21pc2U8R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucz5cbiAgZ2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnM6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9ucz86IEdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25PcHRpb25zLFxuICApID0+IFByb21pc2U8R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uc1tdPlxuICBnZXRBdWRpdExvZzogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IEdldEd1aWxkQXVkaXRMb2cpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEF1ZGl0TG9nPj5cbiAgZ2V0QXV0b21vZFJ1bGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHJ1bGVJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPEF1dG9Nb2RlcmF0aW9uUnVsZT5cbiAgZ2V0QXV0b21vZFJ1bGVzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPEF1dG9Nb2RlcmF0aW9uUnVsZVtdPlxuICBnZXRBdmFpbGFibGVWb2ljZVJlZ2lvbnM6ICgpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZFZvaWNlUmVnaW9uPltdPlxuICBnZXRCYW46IChndWlsZElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRCYW4+PlxuICBnZXRCYW5zOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogR2V0QmFucykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQmFuPltdPlxuICBnZXRDaGFubmVsOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRDaGFubmVsSW52aXRlczogKGNoYW5uZWxJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRJbnZpdGVNZXRhZGF0YT5bXT5cbiAgZ2V0Q2hhbm5lbHM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+W10+XG4gIGdldENoYW5uZWxXZWJob29rczogKGNoYW5uZWxJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFdlYmhvb2ssIFRQcm9wcywgVEJlaGF2aW9yPltdPlxuICBnZXREbUNoYW5uZWw6ICh1c2VySWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxDaGFubmVsLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldEdyb3VwRG1DaGFubmVsOiAob3B0aW9uczogR2V0R3JvdXBEbU9wdGlvbnMpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRFbW9qaTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgZW1vamlJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEVtb2ppLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldEFwcGxpY2F0aW9uRW1vamk6IChlbW9qaUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8RW1vamksIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0RW1vamlzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEVtb2ppLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT5cbiAgZ2V0QXBwbGljYXRpb25FbW9qaXM6ICgpID0+IFByb21pc2U8eyBpdGVtczogU2V0dXBEZXNpcmVkUHJvcHM8RW1vamksIFRQcm9wcywgVEJlaGF2aW9yPltdIH0+XG4gIGdldEZvbGxvd3VwTWVzc2FnZTogKHRva2VuOiBzdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0R2F0ZXdheUJvdDogKCkgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkR2V0R2F0ZXdheUJvdD4+XG4gIGdldEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogKGNvbW1hbmRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uQ29tbWFuZD5cbiAgZ2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kczogKCkgPT4gUHJvbWlzZTxBcHBsaWNhdGlvbkNvbW1hbmRbXT5cbiAgZ2V0R3VpbGQ6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiB7IGNvdW50cz86IGJvb2xlYW4gfSkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxHdWlsZCwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRHdWlsZHM6IChiZWFyZXJUb2tlbjogc3RyaW5nLCBvcHRpb25zPzogR2V0VXNlckd1aWxkcykgPT4gUHJvbWlzZTxQYXJ0aWFsPFNldHVwRGVzaXJlZFByb3BzPEd1aWxkLCBUUHJvcHMsIFRCZWhhdmlvcj4+W10+XG4gIGdldEd1aWxkQXBwbGljYXRpb25Db21tYW5kOiAoY29tbWFuZElkOiBCaWdTdHJpbmcsIGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxBcHBsaWNhdGlvbkNvbW1hbmQ+XG4gIGdldEd1aWxkQXBwbGljYXRpb25Db21tYW5kczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxBcHBsaWNhdGlvbkNvbW1hbmRbXT5cbiAgZ2V0R3VpbGRQcmV2aWV3OiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRHdWlsZFByZXZpZXc+PlxuICBnZXRHdWlsZFN0aWNrZXI6IChndWlsZElkOiBCaWdTdHJpbmcsIHN0aWNrZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFN0aWNrZXIsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0R3VpbGRTdGlja2VyczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTdGlja2VyLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT5cbiAgZ2V0R3VpbGRUZW1wbGF0ZTogKHRlbXBsYXRlQ29kZTogc3RyaW5nKSA9PiBQcm9taXNlPFRlbXBsYXRlPlxuICBnZXRHdWlsZFRlbXBsYXRlczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxUZW1wbGF0ZVtdPlxuICBnZXRHdWlsZFdlYmhvb2tzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFdlYmhvb2ssIFRQcm9wcywgVEJlaGF2aW9yPltdPlxuICBnZXRJbnRlZ3JhdGlvbnM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8SW50ZWdyYXRpb25bXT5cbiAgZ2V0SW52aXRlOiAoaW52aXRlQ29kZTogc3RyaW5nLCBvcHRpb25zPzogR2V0SW52aXRlKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEludml0ZSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRJbnZpdGVzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEludml0ZSwgVFByb3BzLCBUQmVoYXZpb3I+W10+XG4gIGdldE1lc3NhZ2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRNZXNzYWdlczogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogR2V0TWVzc2FnZXNPcHRpb25zKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPltdPlxuICBnZXRTdGlja2VyUGFjazogKHN0aWNrZXJQYWNrSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTdGlja2VyUGFjaz5cbiAgZ2V0U3RpY2tlclBhY2tzOiAoKSA9PiBQcm9taXNlPFN0aWNrZXJQYWNrW10+XG4gIGdldE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZTogKHRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRQaW5uZWRNZXNzYWdlczogKGNoYW5uZWxJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPltdPlxuICBnZXRQcml2YXRlQXJjaGl2ZWRUaHJlYWRzOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBMaXN0QXJjaGl2ZWRUaHJlYWRzKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRBcmNoaXZlZFRocmVhZHM+PlxuICBnZXRQcml2YXRlSm9pbmVkQXJjaGl2ZWRUaHJlYWRzOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBMaXN0QXJjaGl2ZWRUaHJlYWRzKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRBcmNoaXZlZFRocmVhZHM+PlxuICBnZXRQcnVuZUNvdW50OiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogR2V0R3VpbGRQcnVuZUNvdW50UXVlcnkpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZFBydW5lZENvdW50Pj5cbiAgZ2V0UHVibGljQXJjaGl2ZWRUaHJlYWRzOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBMaXN0QXJjaGl2ZWRUaHJlYWRzKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRBcmNoaXZlZFRocmVhZHM+PlxuICBnZXRSb2xlczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxSb2xlLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT5cbiAgZ2V0Um9sZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgcm9sZUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Um9sZSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRTY2hlZHVsZWRFdmVudDogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBldmVudElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9ucz86IHsgd2l0aFVzZXJDb3VudD86IGJvb2xlYW4gfSxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFNjaGVkdWxlZEV2ZW50LCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldFNjaGVkdWxlZEV2ZW50czogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IEdldFNjaGVkdWxlZEV2ZW50cykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTY2hlZHVsZWRFdmVudCwgVFByb3BzLCBUQmVoYXZpb3I+W10+XG4gIGdldFNjaGVkdWxlZEV2ZW50VXNlcnM6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgZXZlbnRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM/OiBHZXRTY2hlZHVsZWRFdmVudFVzZXJzLFxuICApID0+IFByb21pc2U8QXJyYXk8eyB1c2VyOiBTZXR1cERlc2lyZWRQcm9wczxVc2VyLCBUUHJvcHMsIFRCZWhhdmlvcj47IG1lbWJlcj86IFNldHVwRGVzaXJlZFByb3BzPE1lbWJlciwgVFByb3BzLCBUQmVoYXZpb3I+IH0+PlxuICBnZXRTZXNzaW9uSW5mbzogKCkgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkR2V0R2F0ZXdheUJvdD4+XG4gIGdldFN0YWdlSW5zdGFuY2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTdGFnZUluc3RhbmNlLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldE93blZvaWNlU3RhdGU6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Vm9pY2VTdGF0ZSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRVc2VyVm9pY2VTdGF0ZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Vm9pY2VTdGF0ZSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRTdGlja2VyOiAoc3RpY2tlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U3RpY2tlciwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRUaHJlYWRNZW1iZXI6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBHZXRUaHJlYWRNZW1iZXIpID0+IFByb21pc2U8VGhyZWFkTWVtYmVyPlxuICBnZXRUaHJlYWRNZW1iZXJzOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBMaXN0VGhyZWFkTWVtYmVycykgPT4gUHJvbWlzZTxUaHJlYWRNZW1iZXJbXT5cbiAgZ2V0UmVhY3Rpb25zOiAoXG4gICAgY2hhbm5lbElkOiBCaWdTdHJpbmcsXG4gICAgbWVzc2FnZUlkOiBCaWdTdHJpbmcsXG4gICAgcmVhY3Rpb246IHN0cmluZyxcbiAgICBvcHRpb25zPzogR2V0UmVhY3Rpb25zLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8VXNlciwgVFByb3BzLCBUQmVoYXZpb3I+W10+XG4gIGdldFVzZXI6IChpZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFVzZXIsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0Q3VycmVudFVzZXI6IChiZWFyZXJUb2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFVzZXIsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0VXNlckNvbm5lY3Rpb25zOiAoYmVhcmVyVG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQ29ubmVjdGlvbj5bXT5cbiAgZ2V0VXNlckFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb246IChiZWFyZXJUb2tlbjogc3RyaW5nLCBhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb24+PlxuICBnZXRWYW5pdHlVcmw6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZFZhbml0eVVybD4+XG4gIGdldFZvaWNlUmVnaW9uczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkVm9pY2VSZWdpb24+W10+XG4gIGdldFdlYmhvb2s6ICh3ZWJob29rSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxXZWJob29rLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldFdlYmhvb2tNZXNzYWdlOiAoXG4gICAgd2ViaG9va0lkOiBCaWdTdHJpbmcsXG4gICAgdG9rZW46IHN0cmluZyxcbiAgICBtZXNzYWdlSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zPzogR2V0V2ViaG9va01lc3NhZ2VPcHRpb25zLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRXZWJob29rV2l0aFRva2VuOiAod2ViaG9va0lkOiBCaWdTdHJpbmcsIHRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8V2ViaG9vaywgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRXZWxjb21lU2NyZWVuOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFdlbGNvbWVTY3JlZW4+XG4gIGdldFdpZGdldDogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxHdWlsZFdpZGdldD5cbiAgZ2V0V2lkZ2V0U2V0dGluZ3M6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8R3VpbGRXaWRnZXRTZXR0aW5ncz5cbiAgcHVibGlzaE1lc3NhZ2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBzZW5kTWVzc2FnZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVNZXNzYWdlT3B0aW9ucykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIHNlbmRGb2xsb3d1cE1lc3NhZ2U6ICh0b2tlbjogc3RyaW5nLCBvcHRpb25zOiBJbnRlcmFjdGlvbkNhbGxiYWNrRGF0YSkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIHN0YXJ0VGhyZWFkV2l0aE1lc3NhZ2U6IChcbiAgICBjaGFubmVsSWQ6IEJpZ1N0cmluZyxcbiAgICBtZXNzYWdlSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBTdGFydFRocmVhZFdpdGhNZXNzYWdlLFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPENoYW5uZWwsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgc3RhcnRUaHJlYWRXaXRob3V0TWVzc2FnZTogKFxuICAgIGNoYW5uZWxJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IFN0YXJ0VGhyZWFkV2l0aG91dE1lc3NhZ2UsXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBzeW5jR3VpbGRUZW1wbGF0ZTogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxUZW1wbGF0ZT5cbiAgdXBzZXJ0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kczogKFxuICAgIGNvbW1hbmRzOiBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmRbXSxcbiAgICBvcHRpb25zPzogVXBzZXJ0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kT3B0aW9ucyxcbiAgKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uQ29tbWFuZFtdPlxuICB1cHNlcnRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZHM6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgY29tbWFuZHM6IENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZFtdLFxuICAgIG9wdGlvbnM/OiBVcHNlcnRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMsXG4gICkgPT4gUHJvbWlzZTxBcHBsaWNhdGlvbkNvbW1hbmRbXT5cbiAgZWRpdEJvdE1lbWJlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogRWRpdEJvdE1lbWJlck9wdGlvbnMsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZW1iZXIsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZWRpdE1lbWJlcjogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICB1c2VySWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBNb2RpZnlHdWlsZE1lbWJlcixcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZW1iZXIsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0TWVtYmVyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZW1iZXIsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0Q3VycmVudE1lbWJlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgYmVhcmVyVG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZW1iZXIsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0TWVtYmVyczogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogTGlzdEd1aWxkTWVtYmVycykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZW1iZXIsIFRQcm9wcywgVEJlaGF2aW9yPltdPlxuICBwcnVuZU1lbWJlcnM6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEJlZ2luR3VpbGRQcnVuZSwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHsgcHJ1bmVkOiBudW1iZXIgfCBudWxsIH0+XG4gIHNlYXJjaE1lbWJlcnM6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgcXVlcnk6IHN0cmluZyxcbiAgICBvcHRpb25zPzogT21pdDxTZWFyY2hNZW1iZXJzLCAncXVlcnknPixcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lbWJlciwgVFByb3BzLCBUQmVoYXZpb3I+W10+XG4gIGJ1bGtCYW5NZW1iZXJzOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVHdWlsZEJ1bGtCYW4sIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx7IGJhbm5lZFVzZXJzOiBiaWdpbnRbXTsgZmFpbGVkVXNlcnM6IGJpZ2ludFtdIH0+XG4gIGdldEFwcGxpY2F0aW9uQWN0aXZpdHlJbnN0YW5jZTogKGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZywgaW5zdGFuY2VJZDogc3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRBY3Rpdml0eUluc3RhbmNlPj5cbiAgbGlzdEFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb25zTWV0YWRhdGFSZWNvcmRzOiAoYXBwbGljYXRpb25JZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uTWV0YWRhdGE+W10+XG4gIHVwZGF0ZUFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb25zTWV0YWRhdGFSZWNvcmRzOiAoXG4gICAgYXBwbGljYXRpb25JZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IENhbWVsaXplPERpc2NvcmRBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uTWV0YWRhdGE+W10sXG4gICkgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbk1ldGFkYXRhPltdPlxuICBjcmVhdGVMb2JieTogKG9wdGlvbnM6IENyZWF0ZUxvYmJ5KSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPExvYmJ5LCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldExvYmJ5OiAobG9iYnlJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPExvYmJ5LCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIG1vZGlmeUxvYmJ5OiAobG9iYnlJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBNb2RpZnlMb2JieSkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxMb2JieSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBhZGRNZW1iZXJUb0xvYmJ5OiAobG9iYnlJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQWRkTG9iYnlNZW1iZXIpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TG9iYnlNZW1iZXIsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgbGlua0NoYW5uZWxUb0xvYmJ5OiAobG9iYnlJZDogQmlnU3RyaW5nLCBiZWFyZXJUb2tlbjogc3RyaW5nLCBvcHRpb25zOiBMaW5rQ2hhbm5lbFRvTG9iYnkpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TG9iYnksIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgdW5saW5rQ2hhbm5lbFRvTG9iYnk6IChsb2JieUlkOiBCaWdTdHJpbmcsIGJlYXJlclRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TG9iYnksIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgLy8gZnVuY3Rpb25zIHJldHVybiBWb2lkIHNvIGRvbnQgbmVlZCBhbnkgc3BlY2lhbCBoYW5kbGluZ1xuICBhZGRSZWFjdGlvbjogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgcmVhY3Rpb246IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBhZGRSZWFjdGlvbnM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIHJlYWN0aW9uczogc3RyaW5nW10sIG9yZGVyZWQ/OiBib29sZWFuKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGFkZFJvbGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nLCByb2xlSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGFkZFRocmVhZE1lbWJlcjogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBhZGREbVJlY2lwaWVudDogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQWRkRG1SZWNpcGllbnRPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGFkZEd1aWxkTWVtYmVyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQWRkR3VpbGRNZW1iZXJPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUF1dG9tb2RSdWxlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBydWxlSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUNoYW5uZWw6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUNoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGU6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3ZlcndyaXRlSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUVtb2ppOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBpZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlQXBwbGljYXRpb25FbW9qaTogKGlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlRm9sbG93dXBNZXNzYWdlOiAodG9rZW46IHN0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlR2xvYmFsQXBwbGljYXRpb25Db21tYW5kOiAoY29tbWFuZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlR3VpbGQ6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQ6IChjb21tYW5kSWQ6IEJpZ1N0cmluZywgZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUd1aWxkU3RpY2tlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgc3RpY2tlcklkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVHdWlsZFRlbXBsYXRlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB0ZW1wbGF0ZUNvZGU6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVJbnRlZ3JhdGlvbjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgaW50ZWdyYXRpb25JZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlSW52aXRlOiAoaW52aXRlQ29kZTogc3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlTWVzc2FnZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZU1lc3NhZ2VzOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZHM6IEJpZ1N0cmluZ1tdLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlT3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlOiAodG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVPd25SZWFjdGlvbjogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgcmVhY3Rpb246IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVSZWFjdGlvbnNBbGw6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlUmVhY3Rpb25zRW1vamk6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIHJlYWN0aW9uOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlUm9sZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgcm9sZUlkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVTY2hlZHVsZWRFdmVudDogKGd1aWxkSWQ6IEJpZ1N0cmluZywgZXZlbnRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZVN0YWdlSW5zdGFuY2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZVVzZXJSZWFjdGlvbjogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIHJlYWN0aW9uOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlV2ViaG9vazogKHdlYmhvb2tJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlV2ViaG9va01lc3NhZ2U6ICh3ZWJob29rSWQ6IEJpZ1N0cmluZywgdG9rZW46IHN0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBEZWxldGVXZWJob29rTWVzc2FnZU9wdGlvbnMpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlV2ViaG9va1dpdGhUb2tlbjogKHdlYmhvb2tJZDogQmlnU3RyaW5nLCB0b2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGVkaXRDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlczogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBFZGl0Q2hhbm5lbFBlcm1pc3Npb25PdmVycmlkZXNPcHRpb25zLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZWRpdENoYW5uZWxQb3NpdGlvbnM6IChndWlsZElkOiBCaWdTdHJpbmcsIGNoYW5uZWxQb3NpdGlvbnM6IE1vZGlmeUd1aWxkQ2hhbm5lbFBvc2l0aW9uc1tdKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGVkaXRHdWlsZE1mYUxldmVsOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBtZmFMZXZlbDogTWZhTGV2ZWxzLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZWRpdE93blZvaWNlU3RhdGU6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEVkaXRPd25Wb2ljZVN0YXRlKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGVkaXRVc2VyVm9pY2VTdGF0ZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogRWRpdFVzZXJWb2ljZVN0YXRlKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGpvaW5UaHJlYWQ6IChjaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBsZWF2ZUd1aWxkOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGxlYXZlVGhyZWFkOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgcmVtb3ZlUm9sZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIHJvbGVJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgcmVtb3ZlVGhyZWFkTWVtYmVyOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIHJlbW92ZURtUmVjaXBpZW50OiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIHNlbmRJbnRlcmFjdGlvblJlc3BvbnNlOiAoXG4gICAgaW50ZXJhY3Rpb25JZDogQmlnU3RyaW5nLFxuICAgIHRva2VuOiBzdHJpbmcsXG4gICAgb3B0aW9uczogSW50ZXJhY3Rpb25SZXNwb25zZSxcbiAgICBwYXJhbXM/OiBJbnRlcmFjdGlvbkNhbGxiYWNrT3B0aW9ucyxcbiAgKSA9PiBQcm9taXNlPHZvaWQgfCBTZXR1cERlc2lyZWRQcm9wczxJbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgdHJpZ2dlclR5cGluZ0luZGljYXRvcjogKGNoYW5uZWxJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGJhbk1lbWJlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBDcmVhdGVHdWlsZEJhbiwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGtpY2tNZW1iZXI6IChndWlsZElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgcGluTWVzc2FnZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIHVuYmFuTWVtYmVyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIHVucGluTWVzc2FnZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGdldEd1aWxkT25ib2FyZGluZzogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxHdWlsZE9uYm9hcmRpbmcsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZWRpdEd1aWxkT25ib2FyZGluZzogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBFZGl0R3VpbGRPbmJvYXJkaW5nLFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEd1aWxkT25ib2FyZGluZywgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBsaXN0RW50aXRsZW1lbnRzOiAoYXBwbGljYXRpb25JZDogQmlnU3RyaW5nLCBvcHRpb25zPzogR2V0RW50aXRsZW1lbnRzKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEVudGl0bGVtZW50LCBUUHJvcHMsIFRCZWhhdmlvcj5bXT5cbiAgZ2V0RW50aXRsZW1lbnQ6IChhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcsIGVudGl0bGVtZW50SWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxFbnRpdGxlbWVudCwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBjcmVhdGVUZXN0RW50aXRsZW1lbnQ6IChhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcsIGJvZHk6IENyZWF0ZUVudGl0bGVtZW50KSA9PiBQcm9taXNlPFBhcnRpYWw8U2V0dXBEZXNpcmVkUHJvcHM8RW50aXRsZW1lbnQsIFRQcm9wcywgVEJlaGF2aW9yPj4+XG4gIGRlbGV0ZVRlc3RFbnRpdGxlbWVudDogKGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZywgZW50aXRsZW1lbnRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGxpc3RTa3VzOiAoYXBwbGljYXRpb25JZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFNrdSwgVFByb3BzLCBUQmVoYXZpb3I+W10+XG4gIGxpc3RTdWJzY3JpcHRpb25zOiAoc2t1SWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IExpc3RTa3VTdWJzY3JpcHRpb25zT3B0aW9ucykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTdWJzY3JpcHRpb24sIFRQcm9wcywgVEJlaGF2aW9yPltdPlxuICBnZXRTdWJzY3JpcHRpb246IChza3VJZDogQmlnU3RyaW5nLCBzdWJzY3JpcHRpb25JZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFN1YnNjcmlwdGlvbiwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBzZW5kU291bmRib2FyZFNvdW5kOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IFNlbmRTb3VuZGJvYXJkU291bmQpID0+IFByb21pc2U8dm9pZD5cbiAgbGlzdERlZmF1bHRTb3VuZGJvYXJkU291bmRzOiAoKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFNvdW5kYm9hcmRTb3VuZCwgVFByb3BzLCBUQmVoYXZpb3I+W10+XG4gIGxpc3RHdWlsZFNvdW5kYm9hcmRTb3VuZHM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8eyBpdGVtczogU2V0dXBEZXNpcmVkUHJvcHM8U291bmRib2FyZFNvdW5kLCBUUHJvcHMsIFRCZWhhdmlvcj5bXSB9PlxuICBnZXRHdWlsZFNvdW5kYm9hcmRTb3VuZDogKGd1aWxkSWQ6IEJpZ1N0cmluZywgc291bmRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFNvdW5kYm9hcmRTb3VuZCwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBjcmVhdGVHdWlsZFNvdW5kYm9hcmRTb3VuZDogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBDcmVhdGVHdWlsZFNvdW5kYm9hcmRTb3VuZCxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTb3VuZGJvYXJkU291bmQsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgbW9kaWZ5R3VpbGRTb3VuZGJvYXJkU291bmQ6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgc291bmRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IE1vZGlmeUd1aWxkU291bmRib2FyZFNvdW5kLFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFNvdW5kYm9hcmRTb3VuZCwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBkZWxldGVHdWlsZFNvdW5kYm9hcmRTb3VuZDogKGd1aWxkSWQ6IEJpZ1N0cmluZywgc291bmRJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlTG9iYnk6IChsb2JieUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgcmVtb3ZlTWVtYmVyRnJvbUxvYmJ5OiAobG9iYnlJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBsZWF2ZUxvYmJ5OiAobG9iYnlJZDogQmlnU3RyaW5nLCBiZWFyZXJUb2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG59XG4iXSwibmFtZXMiOlsiY3JlYXRlQm90SGVscGVycyIsImJvdCIsImNyZWF0ZUF1dG9tb2RSdWxlIiwiZ3VpbGRJZCIsIm9wdGlvbnMiLCJyZWFzb24iLCJ0cmFuc2Zvcm1lcnMiLCJhdXRvbW9kUnVsZSIsInNuYWtlbGl6ZSIsInJlc3QiLCJjcmVhdGVDaGFubmVsIiwiY2hhbm5lbCIsImNyZWF0ZUVtb2ppIiwiZW1vamkiLCJjcmVhdGVBcHBsaWNhdGlvbkVtb2ppIiwiY3JlYXRlRm9ydW1UaHJlYWQiLCJjaGFubmVsSWQiLCJjcmVhdGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQiLCJjb21tYW5kIiwiYXBwbGljYXRpb25Db21tYW5kIiwiY3JlYXRlR3VpbGQiLCJndWlsZCIsInNoYXJkSWQiLCJjcmVhdGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZCIsImNyZWF0ZUd1aWxkRnJvbVRlbXBsYXRlIiwidGVtcGxhdGVDb2RlIiwiY3JlYXRlR3VpbGRTdGlja2VyIiwic3RpY2tlciIsImNyZWF0ZUd1aWxkVGVtcGxhdGUiLCJ0ZW1wbGF0ZSIsImNyZWF0ZUludml0ZSIsImNyZWF0ZVJvbGUiLCJyb2xlIiwiY3JlYXRlU2NoZWR1bGVkRXZlbnQiLCJzY2hlZHVsZWRFdmVudCIsImNyZWF0ZVN0YWdlSW5zdGFuY2UiLCJzdGFnZUluc3RhbmNlIiwiY3JlYXRlV2ViaG9vayIsIndlYmhvb2siLCJlZGl0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnMiLCJjb21tYW5kSWQiLCJiZWFyZXJUb2tlbiIsImFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb24iLCJlZGl0QXV0b21vZFJ1bGUiLCJydWxlSWQiLCJlZGl0Qm90UHJvZmlsZSIsInVzZXIiLCJlZGl0Q2hhbm5lbCIsImVkaXRFbW9qaSIsImlkIiwiZWRpdEFwcGxpY2F0aW9uRW1vamkiLCJlZGl0Rm9sbG93dXBNZXNzYWdlIiwidG9rZW4iLCJtZXNzYWdlSWQiLCJtZXNzYWdlIiwiZWRpdEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZCIsImVkaXRHdWlsZCIsImVkaXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZCIsImVkaXRHdWlsZFN0aWNrZXIiLCJzdGlja2VySWQiLCJlZGl0R3VpbGRUZW1wbGF0ZSIsImVkaXRNZXNzYWdlIiwiZWRpdE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSIsImVkaXRPcmlnaW5hbFdlYmhvb2tNZXNzYWdlIiwid2ViaG9va0lkIiwiZWRpdFJvbGUiLCJyb2xlSWQiLCJlZGl0Um9sZVBvc2l0aW9ucyIsIm1hcCIsImVkaXRTY2hlZHVsZWRFdmVudCIsImV2ZW50SWQiLCJlZGl0U3RhZ2VJbnN0YW5jZSIsInRvcGljIiwiZWRpdFdlYmhvb2siLCJlZGl0V2ViaG9va01lc3NhZ2UiLCJlZGl0V2ViaG9va1dpdGhUb2tlbiIsImVkaXRXZWxjb21lU2NyZWVuIiwid2VsY29tZVNjcmVlbiIsImVkaXRXaWRnZXRTZXR0aW5ncyIsIndpZGdldFNldHRpbmdzIiwiZXhlY3V0ZVdlYmhvb2siLCJyZXN1bHQiLCJmb2xsb3dBbm5vdW5jZW1lbnQiLCJzb3VyY2VDaGFubmVsSWQiLCJ0YXJnZXRDaGFubmVsSWQiLCJnZXRBY3RpdmVUaHJlYWRzIiwidGhyZWFkcyIsInRocmVhZCIsIm1lbWJlcnMiLCJtZW1iZXIiLCJ0aHJlYWRNZW1iZXIiLCJnZXRBcHBsaWNhdGlvbkluZm8iLCJhcHBsaWNhdGlvbiIsImVkaXRBcHBsaWNhdGlvbkluZm8iLCJib2R5IiwiZ2V0Q3VycmVudEF1dGhlbnRpY2F0aW9uSW5mbyIsImV4Y2hhbmdlVG9rZW4iLCJjbGllbnRJZCIsImNsaWVudFNlY3JldCIsInJldm9rZVRva2VuIiwiZ2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbiIsInJlcyIsInNuYWtlZFJlcyIsImdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zIiwiZ2V0QXVkaXRMb2ciLCJnZXRBdXRvbW9kUnVsZSIsImdldEF1dG9tb2RSdWxlcyIsImdldEF2YWlsYWJsZVZvaWNlUmVnaW9ucyIsInZvaWNlUmVnaW9uIiwiZ2V0QmFuIiwidXNlcklkIiwiZ2V0QmFucyIsImdldENoYW5uZWwiLCJnZXRDaGFubmVsSW52aXRlcyIsImdldENoYW5uZWxzIiwiZ2V0Q2hhbm5lbFdlYmhvb2tzIiwiZ2V0RG1DaGFubmVsIiwiZ2V0R3JvdXBEbUNoYW5uZWwiLCJnZXRFbW9qaSIsImVtb2ppSWQiLCJnZXRBcHBsaWNhdGlvbkVtb2ppIiwiZ2V0RW1vamlzIiwiZ2V0QXBwbGljYXRpb25FbW9qaXMiLCJpdGVtcyIsIml0ZW0iLCJnZXRGb2xsb3d1cE1lc3NhZ2UiLCJnZXRHYXRld2F5Qm90IiwiZ2F0ZXdheUJvdCIsImdldEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZCIsImdldEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZHMiLCJnZXRHdWlsZCIsImdldEd1aWxkcyIsImdldEd1aWxkQXBwbGljYXRpb25Db21tYW5kIiwiZ2V0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRzIiwiZ2V0R3VpbGRQcmV2aWV3IiwiZ2V0R3VpbGRTdGlja2VyIiwiZ2V0R3VpbGRTdGlja2VycyIsImdldEd1aWxkVGVtcGxhdGUiLCJnZXRHdWlsZFRlbXBsYXRlcyIsImdldEd1aWxkV2ViaG9va3MiLCJnZXRJbnRlZ3JhdGlvbnMiLCJpbnRlZ3JhdGlvbiIsInRvU3RyaW5nIiwiZ2V0SW52aXRlIiwiaW52aXRlQ29kZSIsImludml0ZSIsImdldEludml0ZXMiLCJnZXRNZXNzYWdlIiwiZ2V0TWVzc2FnZXMiLCJnZXRTdGlja2VyUGFjayIsInN0aWNrZXJQYWNrSWQiLCJzdGlja2VyUGFjayIsImdldFN0aWNrZXJQYWNrcyIsImdldE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSIsImdldFBpbm5lZE1lc3NhZ2VzIiwiZ2V0UHJpdmF0ZUFyY2hpdmVkVGhyZWFkcyIsImdldFByaXZhdGVKb2luZWRBcmNoaXZlZFRocmVhZHMiLCJnZXRQcnVuZUNvdW50IiwiZ2V0UHVibGljQXJjaGl2ZWRUaHJlYWRzIiwiZ2V0Um9sZXMiLCJnZXRSb2xlIiwiZ2V0U2NoZWR1bGVkRXZlbnQiLCJnZXRTY2hlZHVsZWRFdmVudHMiLCJnZXRTY2hlZHVsZWRFdmVudFVzZXJzIiwidSIsInNub3dmbGFrZSIsImdldFNlc3Npb25JbmZvIiwiZ2V0U3RhZ2VJbnN0YW5jZSIsImdldE93blZvaWNlU3RhdGUiLCJ2b2ljZVN0YXRlIiwiZ2V0VXNlclZvaWNlU3RhdGUiLCJnZXRTdGlja2VyIiwiZ2V0VGhyZWFkTWVtYmVyIiwiZ2V0VGhyZWFkTWVtYmVycyIsImdldFJlYWN0aW9ucyIsInJlYWN0aW9uIiwiZ2V0VXNlciIsImdldEN1cnJlbnRVc2VyIiwiZ2V0VXNlckNvbm5lY3Rpb25zIiwiZ2V0VXNlckFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb24iLCJhcHBsaWNhdGlvbklkIiwiZ2V0VmFuaXR5VXJsIiwiZ2V0Vm9pY2VSZWdpb25zIiwiZ2V0V2ViaG9vayIsImdldFdlYmhvb2tNZXNzYWdlIiwiZ2V0V2ViaG9va1dpdGhUb2tlbiIsImdldFdlbGNvbWVTY3JlZW4iLCJnZXRXaWRnZXQiLCJ3aWRnZXQiLCJnZXRXaWRnZXRTZXR0aW5ncyIsInB1Ymxpc2hNZXNzYWdlIiwic2VuZE1lc3NhZ2UiLCJzZW5kRm9sbG93dXBNZXNzYWdlIiwic3RhcnRUaHJlYWRXaXRoTWVzc2FnZSIsInN0YXJ0VGhyZWFkV2l0aG91dE1lc3NhZ2UiLCJzeW5jR3VpbGRUZW1wbGF0ZSIsInVwc2VydEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZHMiLCJjb21tYW5kcyIsInVwc2VydEd1aWxkQXBwbGljYXRpb25Db21tYW5kcyIsImVkaXRCb3RNZW1iZXIiLCJlZGl0TWVtYmVyIiwiZ2V0TWVtYmVyIiwiZ2V0Q3VycmVudE1lbWJlciIsImdldE1lbWJlcnMiLCJwcnVuZU1lbWJlcnMiLCJzZWFyY2hNZW1iZXJzIiwicXVlcnkiLCJidWxrQmFuTWVtYmVycyIsImJhbm5lZFVzZXJzIiwieCIsImZhaWxlZFVzZXJzIiwiZ2V0QXBwbGljYXRpb25BY3Rpdml0eUluc3RhbmNlIiwiaW5zdGFuY2VJZCIsImxpc3RBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uc01ldGFkYXRhUmVjb3JkcyIsInVwZGF0ZUFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb25zTWV0YWRhdGFSZWNvcmRzIiwiY3JlYXRlTG9iYnkiLCJsb2JieSIsImdldExvYmJ5IiwibG9iYnlJZCIsIm1vZGlmeUxvYmJ5IiwiYWRkTWVtYmVyVG9Mb2JieSIsImxvYmJ5TWVtYmVyIiwibGlua0NoYW5uZWxUb0xvYmJ5IiwidW5saW5rQ2hhbm5lbFRvTG9iYnkiLCJhZGRSZWFjdGlvbiIsImFkZFJlYWN0aW9ucyIsInJlYWN0aW9ucyIsIm9yZGVyZWQiLCJhZGRSb2xlIiwiYWRkVGhyZWFkTWVtYmVyIiwiYWRkRG1SZWNpcGllbnQiLCJhZGRHdWlsZE1lbWJlciIsImRlbGV0ZUF1dG9tb2RSdWxlIiwiZGVsZXRlQ2hhbm5lbCIsImRlbGV0ZUNoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGUiLCJvdmVyd3JpdGVJZCIsImRlbGV0ZUVtb2ppIiwiZGVsZXRlQXBwbGljYXRpb25FbW9qaSIsImRlbGV0ZUZvbGxvd3VwTWVzc2FnZSIsImRlbGV0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZCIsImRlbGV0ZUd1aWxkIiwiZGVsZXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQiLCJkZWxldGVHdWlsZFN0aWNrZXIiLCJkZWxldGVHdWlsZFRlbXBsYXRlIiwiZGVsZXRlSW50ZWdyYXRpb24iLCJpbnRlZ3JhdGlvbklkIiwiZGVsZXRlSW52aXRlIiwiZGVsZXRlTWVzc2FnZSIsImRlbGV0ZU1lc3NhZ2VzIiwibWVzc2FnZUlkcyIsImRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSIsImRlbGV0ZU93blJlYWN0aW9uIiwiZGVsZXRlUmVhY3Rpb25zQWxsIiwiZGVsZXRlUmVhY3Rpb25zRW1vamkiLCJkZWxldGVSb2xlIiwiZGVsZXRlU2NoZWR1bGVkRXZlbnQiLCJkZWxldGVTdGFnZUluc3RhbmNlIiwiZGVsZXRlVXNlclJlYWN0aW9uIiwiZGVsZXRlV2ViaG9vayIsImRlbGV0ZVdlYmhvb2tNZXNzYWdlIiwiZGVsZXRlV2ViaG9va1dpdGhUb2tlbiIsImVkaXRDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlcyIsImVkaXRDaGFubmVsUG9zaXRpb25zIiwiY2hhbm5lbFBvc2l0aW9ucyIsImVkaXRHdWlsZE1mYUxldmVsIiwibWZhTGV2ZWwiLCJlZGl0T3duVm9pY2VTdGF0ZSIsImVkaXRVc2VyVm9pY2VTdGF0ZSIsImVkaXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbiIsImpvaW5UaHJlYWQiLCJsZWF2ZUd1aWxkIiwibGVhdmVUaHJlYWQiLCJyZW1vdmVSb2xlIiwicmVtb3ZlVGhyZWFkTWVtYmVyIiwicmVtb3ZlRG1SZWNpcGllbnQiLCJzZW5kSW50ZXJhY3Rpb25SZXNwb25zZSIsImludGVyYWN0aW9uSWQiLCJwYXJhbXMiLCJyZXNwb25zZSIsImludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSIsInRyaWdnZXJUeXBpbmdJbmRpY2F0b3IiLCJiYW5NZW1iZXIiLCJraWNrTWVtYmVyIiwicGluTWVzc2FnZSIsInVuYmFuTWVtYmVyIiwidW5waW5NZXNzYWdlIiwiZ2V0R3VpbGRPbmJvYXJkaW5nIiwiZ3VpbGRPbmJvYXJkaW5nIiwiZWRpdEd1aWxkT25ib2FyZGluZyIsImxpc3RFbnRpdGxlbWVudHMiLCJlbnRpdGxlbWVudCIsImdldEVudGl0bGVtZW50IiwiZW50aXRsZW1lbnRJZCIsImNyZWF0ZVRlc3RFbnRpdGxlbWVudCIsImRlbGV0ZVRlc3RFbnRpdGxlbWVudCIsImxpc3RTa3VzIiwic2t1IiwiZ2V0U3Vic2NyaXB0aW9uIiwic2t1SWQiLCJzdWJzY3JpcHRpb25JZCIsInN1YnNjcmlwdGlvbiIsImxpc3RTdWJzY3JpcHRpb25zIiwic2VuZFNvdW5kYm9hcmRTb3VuZCIsImxpc3REZWZhdWx0U291bmRib2FyZFNvdW5kcyIsInNvdW5kIiwic291bmRib2FyZFNvdW5kIiwibGlzdEd1aWxkU291bmRib2FyZFNvdW5kcyIsImdldEd1aWxkU291bmRib2FyZFNvdW5kIiwic291bmRJZCIsImNyZWF0ZUd1aWxkU291bmRib2FyZFNvdW5kIiwibW9kaWZ5R3VpbGRTb3VuZGJvYXJkU291bmQiLCJkZWxldGVHdWlsZFNvdW5kYm9hcmRTb3VuZCIsImRlbGV0ZUxvYmJ5IiwicmVtb3ZlTWVtYmVyRnJvbUxvYmJ5IiwibGVhdmVMb2JieSJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFrSmdCQTs7O2VBQUFBOzs7dUJBdENVO0FBc0NuQixTQUFTQSxpQkFDZEMsR0FBMkI7SUFFM0IsT0FBTztRQUNMQyxtQkFBbUIsT0FBT0MsU0FBU0MsU0FBU0M7WUFDMUMsT0FBT0osSUFBSUssWUFBWSxDQUFDQyxXQUFXLENBQUNOLEtBQUtPLElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDUCxpQkFBaUIsQ0FBQ0MsU0FBU0MsU0FBU0M7UUFDeEc7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
809
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQWRkRG1SZWNpcGllbnRPcHRpb25zLFxuICBBZGRHdWlsZE1lbWJlck9wdGlvbnMsXG4gIEFkZExvYmJ5TWVtYmVyLFxuICBBdExlYXN0T25lLFxuICBCZWdpbkd1aWxkUHJ1bmUsXG4gIEJpZ1N0cmluZyxcbiAgQ2FtZWxpemUsXG4gIENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgQ3JlYXRlQXBwbGljYXRpb25FbW9qaSxcbiAgQ3JlYXRlQXV0b01vZGVyYXRpb25SdWxlT3B0aW9ucyxcbiAgQ3JlYXRlQ2hhbm5lbEludml0ZSxcbiAgQ3JlYXRlRW50aXRsZW1lbnQsXG4gIENyZWF0ZUZvcnVtUG9zdFdpdGhNZXNzYWdlLFxuICBDcmVhdGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25zLFxuICBDcmVhdGVHdWlsZCxcbiAgQ3JlYXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25zLFxuICBDcmVhdGVHdWlsZEJhbixcbiAgQ3JlYXRlR3VpbGRCdWxrQmFuLFxuICBDcmVhdGVHdWlsZENoYW5uZWwsXG4gIENyZWF0ZUd1aWxkRW1vamksXG4gIENyZWF0ZUd1aWxkRnJvbVRlbXBsYXRlLFxuICBDcmVhdGVHdWlsZFJvbGUsXG4gIENyZWF0ZUd1aWxkU291bmRib2FyZFNvdW5kLFxuICBDcmVhdGVHdWlsZFN0aWNrZXJPcHRpb25zLFxuICBDcmVhdGVMb2JieSxcbiAgQ3JlYXRlTWVzc2FnZU9wdGlvbnMsXG4gIENyZWF0ZVNjaGVkdWxlZEV2ZW50LFxuICBDcmVhdGVTdGFnZUluc3RhbmNlLFxuICBDcmVhdGVUZW1wbGF0ZSxcbiAgQ3JlYXRlV2ViaG9vayxcbiAgRGVsZXRlV2ViaG9va01lc3NhZ2VPcHRpb25zLFxuICBEaXNjb3JkQWNjZXNzVG9rZW5SZXNwb25zZSxcbiAgRGlzY29yZEFjdGl2aXR5SW5zdGFuY2UsXG4gIERpc2NvcmRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucyxcbiAgRGlzY29yZEFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb24sXG4gIERpc2NvcmRBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uTWV0YWRhdGEsXG4gIERpc2NvcmRBdWRpdExvZyxcbiAgRGlzY29yZEJhbixcbiAgRGlzY29yZENvbm5lY3Rpb24sXG4gIERpc2NvcmRDdXJyZW50QXV0aG9yaXphdGlvbixcbiAgRGlzY29yZEZvbGxvd2VkQ2hhbm5lbCxcbiAgRGlzY29yZEdldEdhdGV3YXlCb3QsXG4gIERpc2NvcmRHdWlsZFByZXZpZXcsXG4gIERpc2NvcmRHdWlsZFdpZGdldFNldHRpbmdzLFxuICBEaXNjb3JkSW52aXRlLFxuICBEaXNjb3JkSW52aXRlTWV0YWRhdGEsXG4gIERpc2NvcmRMaXN0QXJjaGl2ZWRUaHJlYWRzLFxuICBEaXNjb3JkTWVzc2FnZSxcbiAgRGlzY29yZE1vZGlmeUd1aWxkV2VsY29tZVNjcmVlbixcbiAgRGlzY29yZFBydW5lZENvdW50LFxuICBEaXNjb3JkVG9rZW5FeGNoYW5nZSxcbiAgRGlzY29yZFRva2VuUmV2b2NhdGlvbixcbiAgRGlzY29yZFZhbml0eVVybCxcbiAgRGlzY29yZFZvaWNlUmVnaW9uLFxuICBFZGl0QXBwbGljYXRpb24sXG4gIEVkaXRBdXRvTW9kZXJhdGlvblJ1bGVPcHRpb25zLFxuICBFZGl0Qm90TWVtYmVyT3B0aW9ucyxcbiAgRWRpdENoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGVzT3B0aW9ucyxcbiAgRWRpdEd1aWxkT25ib2FyZGluZyxcbiAgRWRpdEd1aWxkUm9sZSxcbiAgRWRpdEd1aWxkU3RpY2tlck9wdGlvbnMsXG4gIEVkaXRNZXNzYWdlLFxuICBFZGl0T3duVm9pY2VTdGF0ZSxcbiAgRWRpdFNjaGVkdWxlZEV2ZW50LFxuICBFZGl0VXNlclZvaWNlU3RhdGUsXG4gIEV4ZWN1dGVXZWJob29rLFxuICBHZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uT3B0aW9ucyxcbiAgR2V0QmFucyxcbiAgR2V0RW50aXRsZW1lbnRzLFxuICBHZXRHcm91cERtT3B0aW9ucyxcbiAgR2V0R3VpbGRBdWRpdExvZyxcbiAgR2V0R3VpbGRQcnVuZUNvdW50UXVlcnksXG4gIEdldEludml0ZSxcbiAgR2V0TWVzc2FnZXNPcHRpb25zLFxuICBHZXRSZWFjdGlvbnMsXG4gIEdldFNjaGVkdWxlZEV2ZW50VXNlcnMsXG4gIEdldFNjaGVkdWxlZEV2ZW50cyxcbiAgR2V0VGhyZWFkTWVtYmVyLFxuICBHZXRVc2VyR3VpbGRzLFxuICBHZXRXZWJob29rTWVzc2FnZU9wdGlvbnMsXG4gIEludGVyYWN0aW9uQ2FsbGJhY2tEYXRhLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrT3B0aW9ucyxcbiAgSW50ZXJhY3Rpb25SZXNwb25zZSxcbiAgTGlua0NoYW5uZWxUb0xvYmJ5LFxuICBMaXN0QXJjaGl2ZWRUaHJlYWRzLFxuICBMaXN0R3VpbGRNZW1iZXJzLFxuICBMaXN0U2t1U3Vic2NyaXB0aW9uc09wdGlvbnMsXG4gIExpc3RUaHJlYWRNZW1iZXJzLFxuICBNZmFMZXZlbHMsXG4gIE1vZGlmeUFwcGxpY2F0aW9uRW1vamksXG4gIE1vZGlmeUNoYW5uZWwsXG4gIE1vZGlmeUd1aWxkLFxuICBNb2RpZnlHdWlsZENoYW5uZWxQb3NpdGlvbnMsXG4gIE1vZGlmeUd1aWxkRW1vamksXG4gIE1vZGlmeUd1aWxkTWVtYmVyLFxuICBNb2RpZnlHdWlsZFNvdW5kYm9hcmRTb3VuZCxcbiAgTW9kaWZ5R3VpbGRUZW1wbGF0ZSxcbiAgTW9kaWZ5TG9iYnksXG4gIE1vZGlmeVJvbGVQb3NpdGlvbnMsXG4gIE1vZGlmeVdlYmhvb2ssXG4gIFNlYXJjaE1lbWJlcnMsXG4gIFNlbmRTb3VuZGJvYXJkU291bmQsXG4gIFN0YXJ0VGhyZWFkV2l0aE1lc3NhZ2UsXG4gIFN0YXJ0VGhyZWFkV2l0aG91dE1lc3NhZ2UsXG4gIFVwc2VydEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMsXG4gIFVwc2VydEd1aWxkQXBwbGljYXRpb25Db21tYW5kT3B0aW9ucyxcbn0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBzbmFrZWxpemUgfSBmcm9tICdAZGlzY29yZGVuby91dGlscydcbmltcG9ydCB0eXBlIHsgQm90IH0gZnJvbSAnLi9ib3QuanMnXG5pbXBvcnQgdHlwZSB7IERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3IsIFNldHVwRGVzaXJlZFByb3BzLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcyB9IGZyb20gJy4vZGVzaXJlZFByb3BlcnRpZXMuanMnXG5pbXBvcnQgdHlwZSB7XG4gIEFwcGxpY2F0aW9uLFxuICBBcHBsaWNhdGlvbkNvbW1hbmQsXG4gIEF1dG9Nb2RlcmF0aW9uUnVsZSxcbiAgQ2hhbm5lbCxcbiAgRW1vamksXG4gIEVudGl0bGVtZW50LFxuICBHdWlsZCxcbiAgR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucyxcbiAgR3VpbGRPbmJvYXJkaW5nLFxuICBHdWlsZFdpZGdldCxcbiAgR3VpbGRXaWRnZXRTZXR0aW5ncyxcbiAgSW50ZWdyYXRpb24sXG4gIEludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSxcbiAgSW52aXRlLFxuICBMb2JieSxcbiAgTG9iYnlNZW1iZXIsXG4gIE1lbWJlcixcbiAgTWVzc2FnZSxcbiAgUm9sZSxcbiAgU2NoZWR1bGVkRXZlbnQsXG4gIFNrdSxcbiAgU291bmRib2FyZFNvdW5kLFxuICBTdGFnZUluc3RhbmNlLFxuICBTdGlja2VyLFxuICBTdGlja2VyUGFjayxcbiAgU3Vic2NyaXB0aW9uLFxuICBUZW1wbGF0ZSxcbiAgVGhyZWFkTWVtYmVyLFxuICBVc2VyLFxuICBWb2ljZVN0YXRlLFxuICBXZWJob29rLFxuICBXZWxjb21lU2NyZWVuLFxufSBmcm9tICcuL3RyYW5zZm9ybWVycy9pbmRleC5qcydcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJvdEhlbHBlcnM8VFByb3BzIGV4dGVuZHMgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIFRCZWhhdmlvciBleHRlbmRzIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+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+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnZvaWNlU3RhdGUoYm90LCB7IGd1aWxkSWQsIHZvaWNlU3RhdGU6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRVc2VyVm9pY2VTdGF0ZShndWlsZElkLCB1c2VySWQpKSB9KVxuICAgIH0sXG4gICAgZ2V0U3RpY2tlcjogYXN5bmMgKHN0aWNrZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3RpY2tlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRTdGlja2VyKHN0aWNrZXJJZCkpKVxuICAgIH0sXG4gICAgZ2V0VGhyZWFkTWVtYmVyOiBhc3luYyAoY2hhbm5lbElkLCB1c2VySWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnRocmVhZE1lbWJlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRUaHJlYWRNZW1iZXIoY2hhbm5lbElkLCB1c2VySWQsIG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGdldFRocmVhZE1lbWJlcnM6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0VGhyZWFkTWVtYmVycyhjaGFubmVsSWQsIG9wdGlvbnMpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy50aHJlYWRNZW1iZXIoYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRSZWFjdGlvbnM6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhY3Rpb24sIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0UmVhY3Rpb25zKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbiwgb3B0aW9ucykpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRVc2VyOiBhc3luYyAoaWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0VXNlcihpZCkpKVxuICAgIH0sXG4gICAgZ2V0Q3VycmVudFVzZXI6IGFzeW5jIChiZWFyZXJUb2tlbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRDdXJyZW50VXNlcihiZWFyZXJUb2tlbikpKVxuICAgIH0sXG4gICAgZ2V0VXNlckNvbm5lY3Rpb25zOiBhc3luYyAoYmVhcmVyVG9rZW4pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRVc2VyQ29ubmVjdGlvbnMoYmVhcmVyVG9rZW4pXG4gICAgfSxcbiAgICBnZXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbjogYXN5bmMgKGJlYXJlclRva2VuLCBhcHBsaWNhdGlvbklkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0VXNlckFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb24oYmVhcmVyVG9rZW4sIGFwcGxpY2F0aW9uSWQpXG4gICAgfSxcbiAgICBnZXRWYW5pdHlVcmw6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0VmFuaXR5VXJsKGd1aWxkSWQpXG4gICAgfSxcbiAgICBnZXRWb2ljZVJlZ2lvbnM6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldFZvaWNlUmVnaW9ucyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMudm9pY2VSZWdpb24oYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRXZWJob29rOiBhc3luYyAod2ViaG9va0lkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy53ZWJob29rKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFdlYmhvb2sod2ViaG9va0lkKSkpXG4gICAgfSxcbiAgICBnZXRXZWJob29rTWVzc2FnZTogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4sIG1lc3NhZ2VJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFdlYmhvb2tNZXNzYWdlKHdlYmhvb2tJZCwgdG9rZW4sIG1lc3NhZ2VJZCwgb3B0aW9ucykpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBnZXRXZWJob29rV2l0aFRva2VuOiBhc3luYyAod2ViaG9va0lkLCB0b2tlbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMud2ViaG9vayhib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRXZWJob29rV2l0aFRva2VuKHdlYmhvb2tJZCwgdG9rZW4pKSlcbiAgICB9LFxuICAgIGdldFdlbGNvbWVTY3JlZW46IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy53ZWxjb21lU2NyZWVuKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFdlbGNvbWVTY3JlZW4oZ3VpbGRJZCkpKVxuICAgIH0sXG4gICAgZ2V0V2lkZ2V0OiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMud2lkZ2V0KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFdpZGdldChndWlsZElkKSkpXG4gICAgfSxcbiAgICBnZXRXaWRnZXRTZXR0aW5nczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndpZGdldFNldHRpbmdzKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFdpZGdldFNldHRpbmdzKGd1aWxkSWQpKSlcbiAgICB9LFxuICAgIHB1Ymxpc2hNZXNzYWdlOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5wdWJsaXNoTWVzc2FnZShjaGFubmVsSWQsIG1lc3NhZ2VJZCkpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBzZW5kTWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LnNlbmRNZXNzYWdlKGNoYW5uZWxJZCwgb3B0aW9ucykpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBzZW5kRm9sbG93dXBNZXNzYWdlOiBhc3luYyAodG9rZW4sIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5zZW5kRm9sbG93dXBNZXNzYWdlKHRva2VuLCBvcHRpb25zKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIHN0YXJ0VGhyZWFkV2l0aE1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwge1xuICAgICAgICBjaGFubmVsOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3Quc3RhcnRUaHJlYWRXaXRoTWVzc2FnZShjaGFubmVsSWQsIG1lc3NhZ2VJZCwgb3B0aW9ucywgcmVhc29uKSksXG4gICAgICB9KVxuICAgIH0sXG4gICAgc3RhcnRUaHJlYWRXaXRob3V0TWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3Quc3RhcnRUaHJlYWRXaXRob3V0TWVzc2FnZShjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikpIH0pXG4gICAgfSxcbiAgICBzeW5jR3VpbGRUZW1wbGF0ZTogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnRlbXBsYXRlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LnN5bmNHdWlsZFRlbXBsYXRlKGd1aWxkSWQpKSlcbiAgICB9LFxuICAgIHVwc2VydEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZHM6IGFzeW5jIChjb21tYW5kcywgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC51cHNlcnRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzKGNvbW1hbmRzLCBvcHRpb25zKSkubWFwKChyZXMpID0+XG4gICAgICAgIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kKGJvdCwgc25ha2VsaXplKHJlcykpLFxuICAgICAgKVxuICAgIH0sXG4gICAgdXBzZXJ0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRzOiBhc3luYyAoZ3VpbGRJZCwgY29tbWFuZHMsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QudXBzZXJ0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRzKGd1aWxkSWQsIGNvbW1hbmRzLCBvcHRpb25zKSkubWFwKChyZXMpID0+XG4gICAgICAgIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kKGJvdCwgc25ha2VsaXplKHJlcykpLFxuICAgICAgKVxuICAgIH0sXG4gICAgZWRpdEJvdE1lbWJlcjogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRCb3RNZW1iZXIoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSksIGd1aWxkSWQsIGJvdC5pZClcbiAgICB9LFxuICAgIGVkaXRNZW1iZXI6IGFzeW5jIChndWlsZElkLCB1c2VySWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRNZW1iZXIoZ3VpbGRJZCwgdXNlcklkLCBvcHRpb25zLCByZWFzb24pKSwgZ3VpbGRJZCwgdXNlcklkKVxuICAgIH0sXG4gICAgZ2V0TWVtYmVyOiBhc3luYyAoZ3VpbGRJZCwgdXNlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0TWVtYmVyKGd1aWxkSWQsIHVzZXJJZCkpLCBndWlsZElkLCB1c2VySWQpXG4gICAgfSxcbiAgICBnZXRDdXJyZW50TWVtYmVyOiBhc3luYyAoZ3VpbGRJZCwgYmVhcmVyVG9rZW4pID0+IHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGJvdC5yZXN0LmdldEN1cnJlbnRNZW1iZXIoZ3VpbGRJZCwgYmVhcmVyVG9rZW4pXG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBzbmFrZWxpemUocmVzKSwgZ3VpbGRJZCwgYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocmVzLnVzZXIuaWQpKVxuICAgIH0sXG4gICAgZ2V0TWVtYmVyczogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0TWVtYmVycyhndWlsZElkLCBvcHRpb25zKSkubWFwKChyZXMpID0+XG4gICAgICAgIGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgc25ha2VsaXplKHJlcyksIGd1aWxkSWQsIGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHJlcy51c2VyLmlkKSksXG4gICAgICApXG4gICAgfSxcbiAgICBwcnVuZU1lbWJlcnM6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5wcnVuZU1lbWJlcnMoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKVxuICAgIH0sXG4gICAgc2VhcmNoTWVtYmVyczogYXN5bmMgKGd1aWxkSWQsIHF1ZXJ5LCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LnNlYXJjaE1lbWJlcnMoZ3VpbGRJZCwgcXVlcnksIG9wdGlvbnMpKS5tYXAoKHJlcykgPT5cbiAgICAgICAgYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBzbmFrZWxpemUocmVzKSwgZ3VpbGRJZCwgYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocmVzLnVzZXIuaWQpKSxcbiAgICAgIClcbiAgICB9LFxuICAgIGJ1bGtCYW5NZW1iZXJzOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBib3QucmVzdC5idWxrQmFuTWVtYmVycyhndWlsZElkLCBvcHRpb25zLCByZWFzb24pXG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGJhbm5lZFVzZXJzOiByZXMuYmFubmVkVXNlcnMubWFwKCh4KSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh4KSksXG4gICAgICAgIGZhaWxlZFVzZXJzOiByZXMuZmFpbGVkVXNlcnMubWFwKCh4KSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh4KSksXG4gICAgICB9XG4gICAgfSxcbiAgICBnZXRBcHBsaWNhdGlvbkFjdGl2aXR5SW5zdGFuY2U6IGFzeW5jIChhcHBsaWNhdGlvbklkLCBpbnN0YW5jZUlkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0QXBwbGljYXRpb25BY3Rpdml0eUluc3RhbmNlKGFwcGxpY2F0aW9uSWQsIGluc3RhbmNlSWQpXG4gICAgfSxcbiAgICBsaXN0QXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbnNNZXRhZGF0YVJlY29yZHM6IGFzeW5jIChhcHBsaWNhdGlvbklkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QubGlzdEFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb25zTWV0YWRhdGFSZWNvcmRzKGFwcGxpY2F0aW9uSWQpXG4gICAgfSxcbiAgICB1cGRhdGVBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uc01ldGFkYXRhUmVjb3JkczogYXN5bmMgKGFwcGxpY2F0aW9uSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC51cGRhdGVBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uc01ldGFkYXRhUmVjb3JkcyhhcHBsaWNhdGlvbklkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgY3JlYXRlTG9iYnk6IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5sb2JieShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVMb2JieShvcHRpb25zKSkpXG4gICAgfSxcbiAgICBnZXRMb2JieTogYXN5bmMgKGxvYmJ5SWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmxvYmJ5KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldExvYmJ5KGxvYmJ5SWQpKSlcbiAgICB9LFxuICAgIG1vZGlmeUxvYmJ5OiBhc3luYyAobG9iYnlJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubG9iYnkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QubW9kaWZ5TG9iYnkobG9iYnlJZCwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgYWRkTWVtYmVyVG9Mb2JieTogYXN5bmMgKGxvYmJ5SWQsIHVzZXJJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubG9iYnlNZW1iZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuYWRkTWVtYmVyVG9Mb2JieShsb2JieUlkLCB1c2VySWQsIG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGxpbmtDaGFubmVsVG9Mb2JieTogYXN5bmMgKGxvYmJ5SWQsIGJlYXJlclRva2VuLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5sb2JieShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5saW5rQ2hhbm5lbFRvTG9iYnkobG9iYnlJZCwgYmVhcmVyVG9rZW4sIG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIHVubGlua0NoYW5uZWxUb0xvYmJ5OiBhc3luYyAobG9iYnlJZCwgYmVhcmVyVG9rZW4pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmxvYmJ5KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LnVubGlua0NoYW5uZWxUb0xvYmJ5KGxvYmJ5SWQsIGJlYXJlclRva2VuKSkpXG4gICAgfSxcbiAgICAvLyBBbGwgdXNlbGVzcyB2b2lkIHJldHVybiBmdW5jdGlvbnMgaGVyZVxuICAgIGFkZFJlYWN0aW9uOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuYWRkUmVhY3Rpb24oY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uKVxuICAgIH0sXG4gICAgYWRkUmVhY3Rpb25zOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9ucywgb3JkZXJlZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmFkZFJlYWN0aW9ucyhjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhY3Rpb25zLCBvcmRlcmVkKVxuICAgIH0sXG4gICAgYWRkUm9sZTogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCwgcm9sZUlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5hZGRSb2xlKGd1aWxkSWQsIHVzZXJJZCwgcm9sZUlkLCByZWFzb24pXG4gICAgfSxcbiAgICBhZGRUaHJlYWRNZW1iZXI6IGFzeW5jIChjaGFubmVsSWQsIHVzZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmFkZFRocmVhZE1lbWJlcihjaGFubmVsSWQsIHVzZXJJZClcbiAgICB9LFxuICAgIGFkZERtUmVjaXBpZW50OiBhc3luYyAoY2hhbm5lbElkLCB1c2VySWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5hZGREbVJlY2lwaWVudChjaGFubmVsSWQsIHVzZXJJZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGFkZEd1aWxkTWVtYmVyOiBhc3luYyAoZ3VpbGRJZCwgdXNlcklkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuYWRkR3VpbGRNZW1iZXIoZ3VpbGRJZCwgdXNlcklkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgZGVsZXRlQXV0b21vZFJ1bGU6IGFzeW5jIChndWlsZElkLCBydWxlSWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUF1dG9tb2RSdWxlKGd1aWxkSWQsIHJ1bGVJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlQ2hhbm5lbDogYXN5bmMgKGNoYW5uZWxJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlQ2hhbm5lbChjaGFubmVsSWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZUNoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGU6IGFzeW5jIChjaGFubmVsSWQsIG92ZXJ3cml0ZUlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlKGNoYW5uZWxJZCwgb3ZlcndyaXRlSWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZUVtb2ppOiBhc3luYyAoZ3VpbGRJZCwgaWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUVtb2ppKGd1aWxkSWQsIGlkLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVBcHBsaWNhdGlvbkVtb2ppOiBhc3luYyAoaWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVBcHBsaWNhdGlvbkVtb2ppKGlkKVxuICAgIH0sXG4gICAgZGVsZXRlRm9sbG93dXBNZXNzYWdlOiBhc3luYyAodG9rZW4sIG1lc3NhZ2VJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUZvbGxvd3VwTWVzc2FnZSh0b2tlbiwgbWVzc2FnZUlkKVxuICAgIH0sXG4gICAgZGVsZXRlR2xvYmFsQXBwbGljYXRpb25Db21tYW5kOiBhc3luYyAoY29tbWFuZElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlR2xvYmFsQXBwbGljYXRpb25Db21tYW5kKGNvbW1hbmRJZClcbiAgICB9LFxuICAgIGRlbGV0ZUd1aWxkOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUd1aWxkKGd1aWxkSWQpXG4gICAgfSxcbiAgICBkZWxldGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZDogYXN5bmMgKGNvbW1hbmRJZCwgZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kKGNvbW1hbmRJZCwgZ3VpbGRJZClcbiAgICB9LFxuICAgIGRlbGV0ZUd1aWxkU3RpY2tlcjogYXN5bmMgKGd1aWxkSWQsIHN0aWNrZXJJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlR3VpbGRTdGlja2VyKGd1aWxkSWQsIHN0aWNrZXJJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlR3VpbGRUZW1wbGF0ZTogYXN5bmMgKGd1aWxkSWQsIHRlbXBsYXRlQ29kZSkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUd1aWxkVGVtcGxhdGUoZ3VpbGRJZCwgdGVtcGxhdGVDb2RlKVxuICAgIH0sXG4gICAgZGVsZXRlSW50ZWdyYXRpb246IGFzeW5jIChndWlsZElkLCBpbnRlZ3JhdGlvbklkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVJbnRlZ3JhdGlvbihndWlsZElkLCBpbnRlZ3JhdGlvbklkLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVJbnZpdGU6IGFzeW5jIChpbnZpdGVDb2RlLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVJbnZpdGUoaW52aXRlQ29kZSwgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlTWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVNZXNzYWdlKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVNZXNzYWdlczogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkcywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlTWVzc2FnZXMoY2hhbm5lbElkLCBtZXNzYWdlSWRzLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2U6IGFzeW5jICh0b2tlbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSh0b2tlbilcbiAgICB9LFxuICAgIGRlbGV0ZU93blJlYWN0aW9uOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlT3duUmVhY3Rpb24oY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uKVxuICAgIH0sXG4gICAgZGVsZXRlUmVhY3Rpb25zQWxsOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVSZWFjdGlvbnNBbGwoY2hhbm5lbElkLCBtZXNzYWdlSWQpXG4gICAgfSxcbiAgICBkZWxldGVSZWFjdGlvbnNFbW9qaTogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZVJlYWN0aW9uc0Vtb2ppKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbilcbiAgICB9LFxuICAgIGRlbGV0ZVJvbGU6IGFzeW5jIChndWlsZElkLCByb2xlSWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZVJvbGUoZ3VpbGRJZCwgcm9sZUlkLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVTY2hlZHVsZWRFdmVudDogYXN5bmMgKGd1aWxkSWQsIGV2ZW50SWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVTY2hlZHVsZWRFdmVudChndWlsZElkLCBldmVudElkKVxuICAgIH0sXG4gICAgZGVsZXRlU3RhZ2VJbnN0YW5jZTogYXN5bmMgKGNoYW5uZWxJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlU3RhZ2VJbnN0YW5jZShjaGFubmVsSWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZVVzZXJSZWFjdGlvbjogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCB1c2VySWQsIHJlYWN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlVXNlclJlYWN0aW9uKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCB1c2VySWQsIHJlYWN0aW9uKVxuICAgIH0sXG4gICAgZGVsZXRlV2ViaG9vazogYXN5bmMgKHdlYmhvb2tJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlV2ViaG9vayh3ZWJob29rSWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZVdlYmhvb2tNZXNzYWdlOiBhc3luYyAod2ViaG9va0lkLCB0b2tlbiwgbWVzc2FnZUlkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlV2ViaG9va01lc3NhZ2Uod2ViaG9va0lkLCB0b2tlbiwgbWVzc2FnZUlkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgZGVsZXRlV2ViaG9va1dpdGhUb2tlbjogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVXZWJob29rV2l0aFRva2VuKHdlYmhvb2tJZCwgdG9rZW4pXG4gICAgfSxcbiAgICBlZGl0Q2hhbm5lbFBlcm1pc3Npb25PdmVycmlkZXM6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmVkaXRDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlcyhjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbilcbiAgICB9LFxuICAgIGVkaXRDaGFubmVsUG9zaXRpb25zOiBhc3luYyAoZ3VpbGRJZCwgY2hhbm5lbFBvc2l0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmVkaXRDaGFubmVsUG9zaXRpb25zKGd1aWxkSWQsIGNoYW5uZWxQb3NpdGlvbnMpXG4gICAgfSxcbiAgICBlZGl0R3VpbGRNZmFMZXZlbDogYXN5bmMgKGd1aWxkSWQsIG1mYUxldmVsLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5lZGl0R3VpbGRNZmFMZXZlbChndWlsZElkLCBtZmFMZXZlbCwgcmVhc29uKVxuICAgIH0sXG4gICAgZWRpdE93blZvaWNlU3RhdGU6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZWRpdE93blZvaWNlU3RhdGUoZ3VpbGRJZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGVkaXRVc2VyVm9pY2VTdGF0ZTogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5lZGl0VXNlclZvaWNlU3RhdGUoZ3VpbGRJZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGVkaXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbjogYXN5bmMgKGJlYXJlclRva2VuLCBhcHBsaWNhdGlvbklkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZWRpdFVzZXJBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uKGJlYXJlclRva2VuLCBhcHBsaWNhdGlvbklkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgam9pblRocmVhZDogYXN5bmMgKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmpvaW5UaHJlYWQoY2hhbm5lbElkKVxuICAgIH0sXG4gICAgbGVhdmVHdWlsZDogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5sZWF2ZUd1aWxkKGd1aWxkSWQpXG4gICAgfSxcbiAgICBsZWF2ZVRocmVhZDogYXN5bmMgKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmxlYXZlVGhyZWFkKGNoYW5uZWxJZClcbiAgICB9LFxuICAgIHJlbW92ZVJvbGU6IGFzeW5jIChndWlsZElkLCB1c2VySWQsIHJvbGVJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QucmVtb3ZlUm9sZShndWlsZElkLCB1c2VySWQsIHJvbGVJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgcmVtb3ZlVGhyZWFkTWVtYmVyOiBhc3luYyAoY2hhbm5lbElkLCB1c2VySWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5yZW1vdmVUaHJlYWRNZW1iZXIoY2hhbm5lbElkLCB1c2VySWQpXG4gICAgfSxcbiAgICByZW1vdmVEbVJlY2lwaWVudDogYXN5bmMgKGNoYW5uZWxJZCwgdXNlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QucmVtb3ZlRG1SZWNpcGllbnQoY2hhbm5lbElkLCB1c2VySWQpXG4gICAgfSxcbiAgICBzZW5kSW50ZXJhY3Rpb25SZXNwb25zZTogYXN5bmMgKGludGVyYWN0aW9uSWQsIHRva2VuLCBvcHRpb25zLCBwYXJhbXMpID0+IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYm90LnJlc3Quc2VuZEludGVyYWN0aW9uUmVzcG9uc2UoaW50ZXJhY3Rpb25JZCwgdG9rZW4sIG9wdGlvbnMsIHBhcmFtcylcblxuICAgICAgaWYgKCFyZXNwb25zZSkgcmV0dXJuXG5cbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZShib3QsIHsgaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlOiBzbmFrZWxpemUocmVzcG9uc2UpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICB0cmlnZ2VyVHlwaW5nSW5kaWNhdG9yOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QudHJpZ2dlclR5cGluZ0luZGljYXRvcihjaGFubmVsSWQpXG4gICAgfSxcbiAgICBiYW5NZW1iZXI6IGFzeW5jIChndWlsZElkLCB1c2VySWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmJhbk1lbWJlcihndWlsZElkLCB1c2VySWQsIG9wdGlvbnMsIHJlYXNvbilcbiAgICB9LFxuXG4gICAga2lja01lbWJlcjogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3Qua2lja01lbWJlcihndWlsZElkLCB1c2VySWQsIHJlYXNvbilcbiAgICB9LFxuICAgIHBpbk1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QucGluTWVzc2FnZShjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgdW5iYW5NZW1iZXI6IGFzeW5jIChndWlsZElkLCB1c2VySWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LnVuYmFuTWVtYmVyKGd1aWxkSWQsIHVzZXJJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgdW5waW5NZXNzYWdlOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LnVucGluTWVzc2FnZShjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgZ2V0R3VpbGRPbmJvYXJkaW5nOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGRPbmJvYXJkaW5nKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkT25ib2FyZGluZyhndWlsZElkKSkpXG4gICAgfSxcbiAgICBlZGl0R3VpbGRPbmJvYXJkaW5nOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5ndWlsZE9uYm9hcmRpbmcoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEd1aWxkT25ib2FyZGluZyhndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGxpc3RFbnRpdGxlbWVudHM6IGFzeW5jIChhcHBsaWNhdGlvbklkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0Lmxpc3RFbnRpdGxlbWVudHMoYXBwbGljYXRpb25JZCwgb3B0aW9ucykpLm1hcCgoZW50aXRsZW1lbnQpID0+IGJvdC50cmFuc2Zvcm1lcnMuZW50aXRsZW1lbnQoYm90LCBzbmFrZWxpemUoZW50aXRsZW1lbnQpKSlcbiAgICB9LFxuICAgIGdldEVudGl0bGVtZW50OiBhc3luYyAoYXBwbGljYXRpb25JZCwgZW50aXRsZW1lbnRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZW50aXRsZW1lbnQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0RW50aXRsZW1lbnQoYXBwbGljYXRpb25JZCwgZW50aXRsZW1lbnRJZCkpKVxuICAgIH0sXG4gICAgY3JlYXRlVGVzdEVudGl0bGVtZW50OiBhc3luYyAoYXBwbGljYXRpb25JZCwgYm9keSkgPT4ge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBjcmVhdGVUZXN0RW50aXRsZW1lbnQgZ2l2ZXMgYSBwYXJ0aWFsLCBhbmQgdGhpcyBtZXRob2QgcmV0dXJucyBhIHBhcnRpYWxcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmVudGl0bGVtZW50KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZVRlc3RFbnRpdGxlbWVudChhcHBsaWNhdGlvbklkLCBib2R5KSkpIGFzIFBhcnRpYWw8XG4gICAgICAgIHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmVudGl0bGVtZW50XG4gICAgICA+XG4gICAgfSxcbiAgICBkZWxldGVUZXN0RW50aXRsZW1lbnQ6IGFzeW5jIChhcHBsaWNhdGlvbklkLCBlbnRpdGxlbWVudElkKSA9PiB7XG4gICAgICBhd2FpdCBib3QucmVzdC5kZWxldGVUZXN0RW50aXRsZW1lbnQoYXBwbGljYXRpb25JZCwgZW50aXRsZW1lbnRJZClcbiAgICB9LFxuICAgIGxpc3RTa3VzOiBhc3luYyAoYXBwbGljYXRpb25JZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5saXN0U2t1cyhhcHBsaWNhdGlvbklkKSkubWFwKChza3UpID0+IGJvdC50cmFuc2Zvcm1lcnMuc2t1KGJvdCwgc25ha2VsaXplKHNrdSkpKVxuICAgIH0sXG4gICAgZ2V0U3Vic2NyaXB0aW9uOiBhc3luYyAoc2t1SWQsIHN1YnNjcmlwdGlvbklkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zdWJzY3JpcHRpb24oYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0U3Vic2NyaXB0aW9uKHNrdUlkLCBzdWJzY3JpcHRpb25JZCkpKVxuICAgIH0sXG4gICAgbGlzdFN1YnNjcmlwdGlvbnM6IGFzeW5jIChza3VJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5saXN0U3Vic2NyaXB0aW9ucyhza3VJZCwgb3B0aW9ucykpLm1hcCgoc3Vic2NyaXB0aW9uKSA9PiBib3QudHJhbnNmb3JtZXJzLnN1YnNjcmlwdGlvbihib3QsIHNuYWtlbGl6ZShzdWJzY3JpcHRpb24pKSlcbiAgICB9LFxuICAgIHNlbmRTb3VuZGJvYXJkU291bmQ6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIGF3YWl0IGJvdC5yZXN0LnNlbmRTb3VuZGJvYXJkU291bmQoY2hhbm5lbElkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgbGlzdERlZmF1bHRTb3VuZGJvYXJkU291bmRzOiBhc3luYyAoKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0Lmxpc3REZWZhdWx0U291bmRib2FyZFNvdW5kcygpKS5tYXAoKHNvdW5kKSA9PiBib3QudHJhbnNmb3JtZXJzLnNvdW5kYm9hcmRTb3VuZChib3QsIHNuYWtlbGl6ZShzb3VuZCkpKVxuICAgIH0sXG4gICAgbGlzdEd1aWxkU291bmRib2FyZFNvdW5kczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGJvdC5yZXN0Lmxpc3RHdWlsZFNvdW5kYm9hcmRTb3VuZHMoZ3VpbGRJZClcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaXRlbXM6IHJlcy5pdGVtcy5tYXAoKHNvdW5kKSA9PiBib3QudHJhbnNmb3JtZXJzLnNvdW5kYm9hcmRTb3VuZChib3QsIHNuYWtlbGl6ZShzb3VuZCkpKSxcbiAgICAgIH1cbiAgICB9LFxuICAgIGdldEd1aWxkU291bmRib2FyZFNvdW5kOiBhc3luYyAoZ3VpbGRJZCwgc291bmRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc291bmRib2FyZFNvdW5kKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkU291bmRib2FyZFNvdW5kKGd1aWxkSWQsIHNvdW5kSWQpKSlcbiAgICB9LFxuICAgIGNyZWF0ZUd1aWxkU291bmRib2FyZFNvdW5kOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zb3VuZGJvYXJkU291bmQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlR3VpbGRTb3VuZGJvYXJkU291bmQoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBtb2RpZnlHdWlsZFNvdW5kYm9hcmRTb3VuZDogYXN5bmMgKGd1aWxkSWQsIHNvdW5kSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc291bmRib2FyZFNvdW5kKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0Lm1vZGlmeUd1aWxkU291bmRib2FyZFNvdW5kKGd1aWxkSWQsIHNvdW5kSWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgZGVsZXRlR3VpbGRTb3VuZGJvYXJkU291bmQ6IGFzeW5jIChndWlsZElkLCBzb3VuZElkLCByZWFzb24pID0+IHtcbiAgICAgIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUd1aWxkU291bmRib2FyZFNvdW5kKGd1aWxkSWQsIHNvdW5kSWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZUxvYmJ5OiBhc3luYyAobG9iYnlJZCkgPT4ge1xuICAgICAgYXdhaXQgYm90LnJlc3QuZGVsZXRlTG9iYnkobG9iYnlJZClcbiAgICB9LFxuICAgIHJlbW92ZU1lbWJlckZyb21Mb2JieTogYXN5bmMgKGxvYmJ5SWQsIHVzZXJJZCkgPT4ge1xuICAgICAgYXdhaXQgYm90LnJlc3QucmVtb3ZlTWVtYmVyRnJvbUxvYmJ5KGxvYmJ5SWQsIHVzZXJJZClcbiAgICB9LFxuICAgIGxlYXZlTG9iYnk6IGFzeW5jIChsb2JieUlkLCBiZWFyZXJUb2tlbikgPT4ge1xuICAgICAgYXdhaXQgYm90LnJlc3QubGVhdmVMb2JieShsb2JieUlkLCBiZWFyZXJUb2tlbilcbiAgICB9LFxuICB9XG59XG5cbmV4cG9ydCB0eXBlIEJvdEhlbHBlcnM8VFByb3BzIGV4dGVuZHMgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIFRCZWhhdmlvciBleHRlbmRzIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+ID0ge1xuICBjcmVhdGVBdXRvbW9kUnVsZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlQXV0b01vZGVyYXRpb25SdWxlT3B0aW9ucywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPEF1dG9Nb2RlcmF0aW9uUnVsZT5cbiAgY3JlYXRlQ2hhbm5lbDogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlR3VpbGRDaGFubmVsLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBjcmVhdGVFbW9qaTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlR3VpbGRFbW9qaSwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEVtb2ppLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGNyZWF0ZUFwcGxpY2F0aW9uRW1vamk6IChvcHRpb25zOiBDcmVhdGVBcHBsaWNhdGlvbkVtb2ppKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEVtb2ppLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGNyZWF0ZUZvcnVtVGhyZWFkOiAoXG4gICAgY2hhbm5lbElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogQ3JlYXRlRm9ydW1Qb3N0V2l0aE1lc3NhZ2UsXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBjcmVhdGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQ6IChjb21tYW5kOiBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmQsIG9wdGlvbnM/OiBDcmVhdGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25zKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uQ29tbWFuZD5cbiAgLyoqIEBkZXByZWNhdGVkICovXG4gIGNyZWF0ZUd1aWxkOiAob3B0aW9uczogQ3JlYXRlR3VpbGQpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8R3VpbGQsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgY3JlYXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQ6IChcbiAgICBjb21tYW5kOiBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmQsXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM/OiBDcmVhdGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMsXG4gICkgPT4gUHJvbWlzZTxBcHBsaWNhdGlvbkNvbW1hbmQ+XG4gIC8qKiBAZGVwcmVjYXRlZCAqL1xuICBjcmVhdGVHdWlsZEZyb21UZW1wbGF0ZTogKHRlbXBsYXRlQ29kZTogc3RyaW5nLCBvcHRpb25zOiBDcmVhdGVHdWlsZEZyb21UZW1wbGF0ZSkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxHdWlsZCwgVFByb3BzLCBUQmVoYXZpb3I+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+XG4gIGdldFN0aWNrZXJQYWNrczogKCkgPT4gUHJvbWlzZTxTdGlja2VyUGFja1tdPlxuICBnZXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2U6ICh0b2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0UGlubmVkTWVzc2FnZXM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT5cbiAgZ2V0UHJpdmF0ZUFyY2hpdmVkVGhyZWFkczogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogTGlzdEFyY2hpdmVkVGhyZWFkcykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkTGlzdEFyY2hpdmVkVGhyZWFkcz4+XG4gIGdldFByaXZhdGVKb2luZWRBcmNoaXZlZFRocmVhZHM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IExpc3RBcmNoaXZlZFRocmVhZHMpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZExpc3RBcmNoaXZlZFRocmVhZHM+PlxuICBnZXRQcnVuZUNvdW50OiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogR2V0R3VpbGRQcnVuZUNvdW50UXVlcnkpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZFBydW5lZENvdW50Pj5cbiAgZ2V0UHVibGljQXJjaGl2ZWRUaHJlYWRzOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBMaXN0QXJjaGl2ZWRUaHJlYWRzKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRMaXN0QXJjaGl2ZWRUaHJlYWRzPj5cbiAgZ2V0Um9sZXM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Um9sZSwgVFByb3BzLCBUQmVoYXZpb3I+W10+XG4gIGdldFJvbGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHJvbGVJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFJvbGUsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0U2NoZWR1bGVkRXZlbnQ6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgZXZlbnRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7IHdpdGhVc2VyQ291bnQ/OiBib29sZWFuIH0sXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTY2hlZHVsZWRFdmVudCwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRTY2hlZHVsZWRFdmVudHM6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBHZXRTY2hlZHVsZWRFdmVudHMpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U2NoZWR1bGVkRXZlbnQsIFRQcm9wcywgVEJlaGF2aW9yPltdPlxuICBnZXRTY2hlZHVsZWRFdmVudFVzZXJzOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIGV2ZW50SWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zPzogR2V0U2NoZWR1bGVkRXZlbnRVc2VycyxcbiAgKSA9PiBQcm9taXNlPEFycmF5PHsgdXNlcjogU2V0dXBEZXNpcmVkUHJvcHM8VXNlciwgVFByb3BzLCBUQmVoYXZpb3I+OyBtZW1iZXI/OiBTZXR1cERlc2lyZWRQcm9wczxNZW1iZXIsIFRQcm9wcywgVEJlaGF2aW9yPiB9Pj5cbiAgZ2V0U2Vzc2lvbkluZm86ICgpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEdldEdhdGV3YXlCb3Q+PlxuICBnZXRTdGFnZUluc3RhbmNlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U3RhZ2VJbnN0YW5jZSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRPd25Wb2ljZVN0YXRlOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFZvaWNlU3RhdGUsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0VXNlclZvaWNlU3RhdGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFZvaWNlU3RhdGUsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0U3RpY2tlcjogKHN0aWNrZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFN0aWNrZXIsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0VGhyZWFkTWVtYmVyOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogR2V0VGhyZWFkTWVtYmVyKSA9PiBQcm9taXNlPFRocmVhZE1lbWJlcj5cbiAgZ2V0VGhyZWFkTWVtYmVyczogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogTGlzdFRocmVhZE1lbWJlcnMpID0+IFByb21pc2U8VGhyZWFkTWVtYmVyW10+XG4gIGdldFJlYWN0aW9uczogKFxuICAgIGNoYW5uZWxJZDogQmlnU3RyaW5nLFxuICAgIG1lc3NhZ2VJZDogQmlnU3RyaW5nLFxuICAgIHJlYWN0aW9uOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IEdldFJlYWN0aW9ucyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFVzZXIsIFRQcm9wcywgVEJlaGF2aW9yPltdPlxuICBnZXRVc2VyOiAoaWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxVc2VyLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldEN1cnJlbnRVc2VyOiAoYmVhcmVyVG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxVc2VyLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldFVzZXJDb25uZWN0aW9uczogKGJlYXJlclRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZENvbm5lY3Rpb24+W10+XG4gIGdldFVzZXJBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uOiAoYmVhcmVyVG9rZW46IHN0cmluZywgYXBwbGljYXRpb25JZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uPj5cbiAgZ2V0VmFuaXR5VXJsOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRWYW5pdHlVcmw+PlxuICBnZXRWb2ljZVJlZ2lvbnM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZFZvaWNlUmVnaW9uPltdPlxuICBnZXRXZWJob29rOiAod2ViaG9va0lkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8V2ViaG9vaywgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRXZWJob29rTWVzc2FnZTogKFxuICAgIHdlYmhvb2tJZDogQmlnU3RyaW5nLFxuICAgIHRva2VuOiBzdHJpbmcsXG4gICAgbWVzc2FnZUlkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9ucz86IEdldFdlYmhvb2tNZXNzYWdlT3B0aW9ucyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0V2ViaG9va1dpdGhUb2tlbjogKHdlYmhvb2tJZDogQmlnU3RyaW5nLCB0b2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFdlYmhvb2ssIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0V2VsY29tZVNjcmVlbjogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxXZWxjb21lU2NyZWVuPlxuICBnZXRXaWRnZXQ6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8R3VpbGRXaWRnZXQ+XG4gIGdldFdpZGdldFNldHRpbmdzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPEd1aWxkV2lkZ2V0U2V0dGluZ3M+XG4gIHB1Ymxpc2hNZXNzYWdlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgc2VuZE1lc3NhZ2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlTWVzc2FnZU9wdGlvbnMpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBzZW5kRm9sbG93dXBNZXNzYWdlOiAodG9rZW46IHN0cmluZywgb3B0aW9uczogSW50ZXJhY3Rpb25DYWxsYmFja0RhdGEpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBzdGFydFRocmVhZFdpdGhNZXNzYWdlOiAoXG4gICAgY2hhbm5lbElkOiBCaWdTdHJpbmcsXG4gICAgbWVzc2FnZUlkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogU3RhcnRUaHJlYWRXaXRoTWVzc2FnZSxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxDaGFubmVsLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIHN0YXJ0VGhyZWFkV2l0aG91dE1lc3NhZ2U6IChcbiAgICBjaGFubmVsSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBTdGFydFRocmVhZFdpdGhvdXRNZXNzYWdlLFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPENoYW5uZWwsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgc3luY0d1aWxkVGVtcGxhdGU6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8VGVtcGxhdGU+XG4gIHVwc2VydEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZHM6IChcbiAgICBjb21tYW5kczogQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kW10sXG4gICAgb3B0aW9ucz86IFVwc2VydEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMsXG4gICkgPT4gUHJvbWlzZTxBcHBsaWNhdGlvbkNvbW1hbmRbXT5cbiAgdXBzZXJ0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRzOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIGNvbW1hbmRzOiBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmRbXSxcbiAgICBvcHRpb25zPzogVXBzZXJ0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25zLFxuICApID0+IFByb21pc2U8QXBwbGljYXRpb25Db21tYW5kW10+XG4gIGVkaXRCb3RNZW1iZXI6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEVkaXRCb3RNZW1iZXJPcHRpb25zLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVtYmVyLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGVkaXRNZW1iZXI6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgdXNlcklkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogTW9kaWZ5R3VpbGRNZW1iZXIsXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVtYmVyLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldE1lbWJlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVtYmVyLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldEN1cnJlbnRNZW1iZXI6IChndWlsZElkOiBCaWdTdHJpbmcsIGJlYXJlclRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVtYmVyLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldE1lbWJlcnM6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IExpc3RHdWlsZE1lbWJlcnMpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVtYmVyLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT5cbiAgcHJ1bmVNZW1iZXJzOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBCZWdpbkd1aWxkUHJ1bmUsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx7IHBydW5lZDogbnVtYmVyIHwgbnVsbCB9PlxuICBzZWFyY2hNZW1iZXJzOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIHF1ZXJ5OiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IE9taXQ8U2VhcmNoTWVtYmVycywgJ3F1ZXJ5Jz4sXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZW1iZXIsIFRQcm9wcywgVEJlaGF2aW9yPltdPlxuICBidWxrQmFuTWVtYmVyczogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlR3VpbGRCdWxrQmFuLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8eyBiYW5uZWRVc2VyczogYmlnaW50W107IGZhaWxlZFVzZXJzOiBiaWdpbnRbXSB9PlxuICBnZXRBcHBsaWNhdGlvbkFjdGl2aXR5SW5zdGFuY2U6IChhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcsIGluc3RhbmNlSWQ6IHN0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQWN0aXZpdHlJbnN0YW5jZT4+XG4gIGxpc3RBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uc01ldGFkYXRhUmVjb3JkczogKGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbk1ldGFkYXRhPltdPlxuICB1cGRhdGVBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uc01ldGFkYXRhUmVjb3JkczogKFxuICAgIGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBDYW1lbGl6ZTxEaXNjb3JkQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbk1ldGFkYXRhPltdLFxuICApID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb25NZXRhZGF0YT5bXT5cbiAgY3JlYXRlTG9iYnk6IChvcHRpb25zOiBDcmVhdGVMb2JieSkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxMb2JieSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRMb2JieTogKGxvYmJ5SWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxMb2JieSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBtb2RpZnlMb2JieTogKGxvYmJ5SWQ6IEJpZ1N0cmluZywgb3B0aW9uczogTW9kaWZ5TG9iYnkpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TG9iYnksIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgYWRkTWVtYmVyVG9Mb2JieTogKGxvYmJ5SWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEFkZExvYmJ5TWVtYmVyKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPExvYmJ5TWVtYmVyLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGxpbmtDaGFubmVsVG9Mb2JieTogKGxvYmJ5SWQ6IEJpZ1N0cmluZywgYmVhcmVyVG9rZW46IHN0cmluZywgb3B0aW9uczogTGlua0NoYW5uZWxUb0xvYmJ5KSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPExvYmJ5LCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIHVubGlua0NoYW5uZWxUb0xvYmJ5OiAobG9iYnlJZDogQmlnU3RyaW5nLCBiZWFyZXJUb2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPExvYmJ5LCBUUHJvcHMsIFRCZWhhdmlvcj4+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+XG4gIGRlbGV0ZUxvYmJ5OiAobG9iYnlJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIHJlbW92ZU1lbWJlckZyb21Mb2JieTogKGxvYmJ5SWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgbGVhdmVMb2JieTogKGxvYmJ5SWQ6IEJpZ1N0cmluZywgYmVhcmVyVG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxufVxuIl0sIm5hbWVzIjpbImNyZWF0ZUJvdEhlbHBlcnMiLCJib3QiLCJjcmVhdGVBdXRvbW9kUnVsZSIsImd1aWxkSWQiLCJvcHRpb25zIiwicmVhc29uIiwidHJhbnNmb3JtZXJzIiwiYXV0b21vZFJ1bGUiLCJzbmFrZWxpemUiLCJyZXN0IiwiY3JlYXRlQ2hhbm5lbCIsImNoYW5uZWwiLCJjcmVhdGVFbW9qaSIsImVtb2ppIiwiY3JlYXRlQXBwbGljYXRpb25FbW9qaSIsImNyZWF0ZUZvcnVtVGhyZWFkIiwiY2hhbm5lbElkIiwiY3JlYXRlR2xvYmFsQXBwbGljYXRpb25Db21tYW5kIiwiY29tbWFuZCIsImFwcGxpY2F0aW9uQ29tbWFuZCIsImNyZWF0ZUd1aWxkIiwiZ3VpbGQiLCJzaGFyZElkIiwiY3JlYXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQiLCJjcmVhdGVHdWlsZEZyb21UZW1wbGF0ZSIsInRlbXBsYXRlQ29kZSIsImNyZWF0ZUd1aWxkU3RpY2tlciIsInN0aWNrZXIiLCJjcmVhdGVHdWlsZFRlbXBsYXRlIiwidGVtcGxhdGUiLCJjcmVhdGVJbnZpdGUiLCJjcmVhdGVSb2xlIiwicm9sZSIsImNyZWF0ZVNjaGVkdWxlZEV2ZW50Iiwic2NoZWR1bGVkRXZlbnQiLCJjcmVhdGVTdGFnZUluc3RhbmNlIiwic3RhZ2VJbnN0YW5jZSIsImNyZWF0ZVdlYmhvb2siLCJ3ZWJob29rIiwiZWRpdEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zIiwiY29tbWFuZElkIiwiYmVhcmVyVG9rZW4iLCJhcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uIiwiZWRpdEF1dG9tb2RSdWxlIiwicnVsZUlkIiwiZWRpdEJvdFByb2ZpbGUiLCJ1c2VyIiwiZWRpdENoYW5uZWwiLCJlZGl0RW1vamkiLCJpZCIsImVkaXRBcHBsaWNhdGlvbkVtb2ppIiwiZWRpdEZvbGxvd3VwTWVzc2FnZSIsInRva2VuIiwibWVzc2FnZUlkIiwibWVzc2FnZSIsImVkaXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQiLCJlZGl0R3VpbGQiLCJlZGl0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQiLCJlZGl0R3VpbGRTdGlja2VyIiwic3RpY2tlcklkIiwiZWRpdEd1aWxkVGVtcGxhdGUiLCJlZGl0TWVzc2FnZSIsImVkaXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UiLCJlZGl0T3JpZ2luYWxXZWJob29rTWVzc2FnZSIsIndlYmhvb2tJZCIsImVkaXRSb2xlIiwicm9sZUlkIiwiZWRpdFJvbGVQb3NpdGlvbnMiLCJtYXAiLCJlZGl0U2NoZWR1bGVkRXZlbnQiLCJldmVudElkIiwiZWRpdFN0YWdlSW5zdGFuY2UiLCJ0b3BpYyIsImVkaXRXZWJob29rIiwiZWRpdFdlYmhvb2tNZXNzYWdlIiwiZWRpdFdlYmhvb2tXaXRoVG9rZW4iLCJlZGl0V2VsY29tZVNjcmVlbiIsIndlbGNvbWVTY3JlZW4iLCJlZGl0V2lkZ2V0U2V0dGluZ3MiLCJ3aWRnZXRTZXR0aW5ncyIsImV4ZWN1dGVXZWJob29rIiwicmVzdWx0IiwiZm9sbG93QW5ub3VuY2VtZW50Iiwic291cmNlQ2hhbm5lbElkIiwidGFyZ2V0Q2hhbm5lbElkIiwiZ2V0QWN0aXZlVGhyZWFkcyIsInRocmVhZHMiLCJ0aHJlYWQiLCJtZW1iZXJzIiwibWVtYmVyIiwidGhyZWFkTWVtYmVyIiwiZ2V0QXBwbGljYXRpb25JbmZvIiwiYXBwbGljYXRpb24iLCJlZGl0QXBwbGljYXRpb25JbmZvIiwiYm9keSIsImdldEN1cnJlbnRBdXRoZW50aWNhdGlvbkluZm8iLCJleGNoYW5nZVRva2VuIiwiY2xpZW50SWQiLCJjbGllbnRTZWNyZXQiLCJyZXZva2VUb2tlbiIsImdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb24iLCJyZXMiLCJzbmFrZWRSZXMiLCJnZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucyIsImdldEF1ZGl0TG9nIiwiZ2V0QXV0b21vZFJ1bGUiLCJnZXRBdXRvbW9kUnVsZXMiLCJnZXRBdmFpbGFibGVWb2ljZVJlZ2lvbnMiLCJ2b2ljZVJlZ2lvbiIsImdldEJhbiIsInVzZXJJZCIsImdldEJhbnMiLCJnZXRDaGFubmVsIiwiZ2V0Q2hhbm5lbEludml0ZXMiLCJnZXRDaGFubmVscyIsImdldENoYW5uZWxXZWJob29rcyIsImdldERtQ2hhbm5lbCIsImdldEdyb3VwRG1DaGFubmVsIiwiZ2V0RW1vamkiLCJlbW9qaUlkIiwiZ2V0QXBwbGljYXRpb25FbW9qaSIsImdldEVtb2ppcyIsImdldEFwcGxpY2F0aW9uRW1vamlzIiwiaXRlbXMiLCJpdGVtIiwiZ2V0Rm9sbG93dXBNZXNzYWdlIiwiZ2V0R2F0ZXdheUJvdCIsImdhdGV3YXlCb3QiLCJnZXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQiLCJnZXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzIiwiZ2V0R3VpbGQiLCJnZXRHdWlsZHMiLCJnZXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZCIsImdldEd1aWxkQXBwbGljYXRpb25Db21tYW5kcyIsImdldEd1aWxkUHJldmlldyIsImdldEd1aWxkU3RpY2tlciIsImdldEd1aWxkU3RpY2tlcnMiLCJnZXRHdWlsZFRlbXBsYXRlIiwiZ2V0R3VpbGRUZW1wbGF0ZXMiLCJnZXRHdWlsZFdlYmhvb2tzIiwiZ2V0SW50ZWdyYXRpb25zIiwiaW50ZWdyYXRpb24iLCJ0b1N0cmluZyIsImdldEludml0ZSIsImludml0ZUNvZGUiLCJpbnZpdGUiLCJnZXRJbnZpdGVzIiwiZ2V0TWVzc2FnZSIsImdldE1lc3NhZ2VzIiwiZ2V0U3RpY2tlclBhY2siLCJzdGlja2VyUGFja0lkIiwic3RpY2tlclBhY2siLCJnZXRTdGlja2VyUGFja3MiLCJnZXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UiLCJnZXRQaW5uZWRNZXNzYWdlcyIsImdldFByaXZhdGVBcmNoaXZlZFRocmVhZHMiLCJnZXRQcml2YXRlSm9pbmVkQXJjaGl2ZWRUaHJlYWRzIiwiZ2V0UHJ1bmVDb3VudCIsImdldFB1YmxpY0FyY2hpdmVkVGhyZWFkcyIsImdldFJvbGVzIiwiZ2V0Um9sZSIsImdldFNjaGVkdWxlZEV2ZW50IiwiZ2V0U2NoZWR1bGVkRXZlbnRzIiwiZ2V0U2NoZWR1bGVkRXZlbnRVc2VycyIsInUiLCJzbm93Zmxha2UiLCJnZXRTZXNzaW9uSW5mbyIsImdldFN0YWdlSW5zdGFuY2UiLCJnZXRPd25Wb2ljZVN0YXRlIiwidm9pY2VTdGF0ZSIsImdldFVzZXJWb2ljZVN0YXRlIiwiZ2V0U3RpY2tlciIsImdldFRocmVhZE1lbWJlciIsImdldFRocmVhZE1lbWJlcnMiLCJnZXRSZWFjdGlvbnMiLCJyZWFjdGlvbiIsImdldFVzZXIiLCJnZXRDdXJyZW50VXNlciIsImdldFVzZXJDb25uZWN0aW9ucyIsImdldFVzZXJBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uIiwiYXBwbGljYXRpb25JZCIsImdldFZhbml0eVVybCIsImdldFZvaWNlUmVnaW9ucyIsImdldFdlYmhvb2siLCJnZXRXZWJob29rTWVzc2FnZSIsImdldFdlYmhvb2tXaXRoVG9rZW4iLCJnZXRXZWxjb21lU2NyZWVuIiwiZ2V0V2lkZ2V0Iiwid2lkZ2V0IiwiZ2V0V2lkZ2V0U2V0dGluZ3MiLCJwdWJsaXNoTWVzc2FnZSIsInNlbmRNZXNzYWdlIiwic2VuZEZvbGxvd3VwTWVzc2FnZSIsInN0YXJ0VGhyZWFkV2l0aE1lc3NhZ2UiLCJzdGFydFRocmVhZFdpdGhvdXRNZXNzYWdlIiwic3luY0d1aWxkVGVtcGxhdGUiLCJ1cHNlcnRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzIiwiY29tbWFuZHMiLCJ1cHNlcnRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZHMiLCJlZGl0Qm90TWVtYmVyIiwiZWRpdE1lbWJlciIsImdldE1lbWJlciIsImdldEN1cnJlbnRNZW1iZXIiLCJnZXRNZW1iZXJzIiwicHJ1bmVNZW1iZXJzIiwic2VhcmNoTWVtYmVycyIsInF1ZXJ5IiwiYnVsa0Jhbk1lbWJlcnMiLCJiYW5uZWRVc2VycyIsIngiLCJmYWlsZWRVc2VycyIsImdldEFwcGxpY2F0aW9uQWN0aXZpdHlJbnN0YW5jZSIsImluc3RhbmNlSWQiLCJsaXN0QXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbnNNZXRhZGF0YVJlY29yZHMiLCJ1cGRhdGVBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uc01ldGFkYXRhUmVjb3JkcyIsImNyZWF0ZUxvYmJ5IiwibG9iYnkiLCJnZXRMb2JieSIsImxvYmJ5SWQiLCJtb2RpZnlMb2JieSIsImFkZE1lbWJlclRvTG9iYnkiLCJsb2JieU1lbWJlciIsImxpbmtDaGFubmVsVG9Mb2JieSIsInVubGlua0NoYW5uZWxUb0xvYmJ5IiwiYWRkUmVhY3Rpb24iLCJhZGRSZWFjdGlvbnMiLCJyZWFjdGlvbnMiLCJvcmRlcmVkIiwiYWRkUm9sZSIsImFkZFRocmVhZE1lbWJlciIsImFkZERtUmVjaXBpZW50IiwiYWRkR3VpbGRNZW1iZXIiLCJkZWxldGVBdXRvbW9kUnVsZSIsImRlbGV0ZUNoYW5uZWwiLCJkZWxldGVDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlIiwib3ZlcndyaXRlSWQiLCJkZWxldGVFbW9qaSIsImRlbGV0ZUFwcGxpY2F0aW9uRW1vamkiLCJkZWxldGVGb2xsb3d1cE1lc3NhZ2UiLCJkZWxldGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQiLCJkZWxldGVHdWlsZCIsImRlbGV0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kIiwiZGVsZXRlR3VpbGRTdGlja2VyIiwiZGVsZXRlR3VpbGRUZW1wbGF0ZSIsImRlbGV0ZUludGVncmF0aW9uIiwiaW50ZWdyYXRpb25JZCIsImRlbGV0ZUludml0ZSIsImRlbGV0ZU1lc3NhZ2UiLCJkZWxldGVNZXNzYWdlcyIsIm1lc3NhZ2VJZHMiLCJkZWxldGVPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UiLCJkZWxldGVPd25SZWFjdGlvbiIsImRlbGV0ZVJlYWN0aW9uc0FsbCIsImRlbGV0ZVJlYWN0aW9uc0Vtb2ppIiwiZGVsZXRlUm9sZSIsImRlbGV0ZVNjaGVkdWxlZEV2ZW50IiwiZGVsZXRlU3RhZ2VJbnN0YW5jZSIsImRlbGV0ZVVzZXJSZWFjdGlvbiIsImRlbGV0ZVdlYmhvb2siLCJkZWxldGVXZWJob29rTWVzc2FnZSIsImRlbGV0ZVdlYmhvb2tXaXRoVG9rZW4iLCJlZGl0Q2hhbm5lbFBlcm1pc3Npb25PdmVycmlkZXMiLCJlZGl0Q2hhbm5lbFBvc2l0aW9ucyIsImNoYW5uZWxQb3NpdGlvbnMiLCJlZGl0R3VpbGRNZmFMZXZlbCIsIm1mYUxldmVsIiwiZWRpdE93blZvaWNlU3RhdGUiLCJlZGl0VXNlclZvaWNlU3RhdGUiLCJlZGl0VXNlckFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb24iLCJqb2luVGhyZWFkIiwibGVhdmVHdWlsZCIsImxlYXZlVGhyZWFkIiwicmVtb3ZlUm9sZSIsInJlbW92ZVRocmVhZE1lbWJlciIsInJlbW92ZURtUmVjaXBpZW50Iiwic2VuZEludGVyYWN0aW9uUmVzcG9uc2UiLCJpbnRlcmFjdGlvbklkIiwicGFyYW1zIiwicmVzcG9uc2UiLCJpbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UiLCJ0cmlnZ2VyVHlwaW5nSW5kaWNhdG9yIiwiYmFuTWVtYmVyIiwia2lja01lbWJlciIsInBpbk1lc3NhZ2UiLCJ1bmJhbk1lbWJlciIsInVucGluTWVzc2FnZSIsImdldEd1aWxkT25ib2FyZGluZyIsImd1aWxkT25ib2FyZGluZyIsImVkaXRHdWlsZE9uYm9hcmRpbmciLCJsaXN0RW50aXRsZW1lbnRzIiwiZW50aXRsZW1lbnQiLCJnZXRFbnRpdGxlbWVudCIsImVudGl0bGVtZW50SWQiLCJjcmVhdGVUZXN0RW50aXRsZW1lbnQiLCJkZWxldGVUZXN0RW50aXRsZW1lbnQiLCJsaXN0U2t1cyIsInNrdSIsImdldFN1YnNjcmlwdGlvbiIsInNrdUlkIiwic3Vic2NyaXB0aW9uSWQiLCJzdWJzY3JpcHRpb24iLCJsaXN0U3Vic2NyaXB0aW9ucyIsInNlbmRTb3VuZGJvYXJkU291bmQiLCJsaXN0RGVmYXVsdFNvdW5kYm9hcmRTb3VuZHMiLCJzb3VuZCIsInNvdW5kYm9hcmRTb3VuZCIsImxpc3RHdWlsZFNvdW5kYm9hcmRTb3VuZHMiLCJnZXRHdWlsZFNvdW5kYm9hcmRTb3VuZCIsInNvdW5kSWQiLCJjcmVhdGVHdWlsZFNvdW5kYm9hcmRTb3VuZCIsIm1vZGlmeUd1aWxkU291bmRib2FyZFNvdW5kIiwiZGVsZXRlR3VpbGRTb3VuZGJvYXJkU291bmQiLCJkZWxldGVMb2JieSIsInJlbW92ZU1lbWJlckZyb21Mb2JieSIsImxlYXZlTG9iYnkiXSwibWFwcGluZ3MiOiI7Ozs7K0JBa0pnQkE7OztlQUFBQTs7O3VCQXRDVTtBQXNDbkIsU0FBU0EsaUJBQ2RDLEdBQTJCO0lBRTNCLE9BQU87UUFDTEMsbUJBQW1CLE9BQU9DLFNBQVNDLFNBQVNDO1lBQzFDLE9BQU9KLElBQUlLLFlBQVksQ0FBQ0MsV0FBVyxDQUFDTixLQUFLTyxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQ1AsaUJBQWlCLENBQUNDLFNBQVNDLFNBQVNDO1FBQ3hHO1FBQ0FLLGVBQWUsT0FBT1AsU0FBU0MsU0FBU0M7WUFDdEMsT0FBT0osSUFBSUssWUFBWSxDQUFDSyxPQUFPLENBQUNWLEtBQUs7Z0JBQUVVLFNBQVNILElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDQyxhQUFhLENBQUNQLFNBQVNDLFNBQVNDO2dCQUFVRjtZQUFRO1FBQzdIO1FBQ0FTLGFBQWEsT0FBT1QsU0FBU0MsU0FBU0M7WUFDcEMsT0FBT0osSUFBSUssWUFBWSxDQUFDTyxLQUFLLENBQUNaLEtBQUtPLElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDRyxXQUFXLENBQUNULFNBQVNDLFNBQVNDO1FBQzVGO1FBQ0FTLHdCQUF3QixPQUFPVjtZQUM3QixPQUFPSCxJQUFJSyxZQUFZLENBQUNPLEtBQUssQ0FBQ1osS0FBS08sSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUNLLHNCQUFzQixDQUFDVjtRQUNyRjtRQUNBVyxtQkFBbUIsT0FBT0MsV0FBV1osU0FBU0M7WUFDNUMsT0FBT0osSUFBSUssWUFBWSxDQUFDSyxPQUFPLENBQUNWLEtBQUs7Z0JBQUVVLFNBQVNILElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDTSxpQkFBaUIsQ0FBQ0MsV0FBV1osU0FBU0M7WUFBUztRQUMxSDtRQUNBWSxnQ0FBZ0MsT0FBT0MsU0FBU2Q7WUFDOUMsT0FBT0gsSUFBSUssWUFBWSxDQUFDYSxrQkFBa0IsQ0FBQ2xCLEtBQUtPLElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDUSw4QkFBOEIsQ0FBQ0MsU0FBU2Q7UUFDbkg7UUFDQWdCLGFBQWEsT0FBT2hCO1lBQ2xCLE9BQU9ILElBQUlLLFlBQVksQ0FBQ2UsS0FBSyxDQUFDcEIsS0FBSztnQkFBRW9CLE9BQU9iLElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDVyxXQUFXLENBQUNoQjtnQkFBV2tCLFNBQVM7WUFBRTtRQUN6RztRQUNBQywrQkFBK0IsT0FBT0wsU0FBU2YsU0FBU0M7WUFDdEQsT0FBT0gsSUFBSUssWUFBWSxDQUFDYSxrQkFBa0IsQ0FBQ2xCLEtBQUtPLElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDYyw2QkFBNkIsQ0FBQ0wsU0FBU2YsU0FBU0M7UUFDM0g7UUFDQW9CLHlCQUF5QixPQUFPQyxjQUFjckI7WUFDNUMsT0FBT0gsSUFBSUssWUFBWSxDQUFDZSxLQUFLLENBQUNwQixLQUFLO2dCQUFFb0IsT0FBT2IsSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUNlLHVCQUF1QixDQUFDQyxjQUFjckI7Z0JBQVdrQixTQUFTO1lBQUU7UUFDbkk7UUFDQUksb0JBQW9CLE9BQU92QixTQUFTQyxTQUFTQztZQUMzQyxPQUFPSixJQUFJSyxZQUFZLENBQUNxQixPQUFPLENBQUMxQixLQUFLTyxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQ2lCLGtCQUFrQixDQUFDdkIsU0FBU0MsU0FBU0M7UUFDckc7UUFDQXVCLHFCQUFxQixPQUFPekIsU0FBU0M7WUFDbkMsT0FBT0gsSUFBSUssWUFBWSxDQUFDdUIsUUFBUSxDQUFDNUIsS0FBS08sSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUNtQixtQkFBbUIsQ0FBQ3pCLFNBQVNDO1FBQzlGO1FBQ0EwQixjQUFjLE9BQU9kLFdBQVdaLFNBQVNDO1lBQ3ZDLE9BQU8sTUFBTUosSUFBSVEsSUFBSSxDQUFDcUIsWUFBWSxDQUFDZCxXQUFXWixTQUFTQztRQUN6RDtRQUNBMEIsWUFBWSxPQUFPNUIsU0FBU0MsU0FBU0M7WUFDbkMsT0FBT0osSUFBSUssWUFBWSxDQUFDMEIsSUFBSSxDQUFDL0IsS0FBSztnQkFBRStCLE1BQU14QixJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQ3NCLFVBQVUsQ0FBQzVCLFNBQVNDLFNBQVNDO2dCQUFVRjtZQUFRO1FBQ3BIO1FBQ0E4QixzQkFBc0IsT0FBTzlCLFNBQVNDLFNBQVNDO1lBQzdDLE9BQU9KLElBQUlLLFlBQVksQ0FBQzRCLGNBQWMsQ0FBQ2pDLEtBQUtPLElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDd0Isb0JBQW9CLENBQUM5QixTQUFTQyxTQUFTQztRQUM5RztRQUNBOEIscUJBQXFCLE9BQU8vQixTQUFTQztZQUNuQyxPQUFPSixJQUFJSyxZQUFZLENBQUM4QixhQUFhLENBQUNuQyxLQUFLTyxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQzBCLG1CQUFtQixDQUFDL0IsU0FBU0M7UUFDbkc7UUFDQWdDLGVBQWUsT0FBT3JCLFdBQVdaLFNBQVNDO1lBQ3hDLE9BQU9KLElBQUlLLFlBQVksQ0FBQ2dDLE9BQU8sQ0FBQ3JDLEtBQUtPLElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDNEIsYUFBYSxDQUFDckIsV0FBV1osU0FBU0M7UUFDbEc7UUFDQWtDLG1DQUFtQyxPQUFPcEMsU0FBU3FDLFdBQVdDLGFBQWFyQztZQUN6RSxPQUFPSCxJQUFJSyxZQUFZLENBQUNvQyw0QkFBNEIsQ0FDbER6QyxLQUNBTyxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQzhCLGlDQUFpQyxDQUFDcEMsU0FBU3FDLFdBQVdDLGFBQWFyQztRQUVoRztRQUNBdUMsaUJBQWlCLE9BQU94QyxTQUFTeUMsUUFBUXhDLFNBQVNDO1lBQ2hELE9BQU9KLElBQUlLLFlBQVksQ0FBQ0MsV0FBVyxDQUFDTixLQUFLTyxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQ2tDLGVBQWUsQ0FBQ3hDLFNBQVN5QyxRQUFReEMsU0FBU0M7UUFDOUc7UUFDQXdDLGdCQUFnQixPQUFPekM7WUFDckIsT0FBT0gsSUFBSUssWUFBWSxDQUFDd0MsSUFBSSxDQUFDN0MsS0FBS08sSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUNvQyxjQUFjLENBQUN6QztRQUM1RTtRQUNBMkMsYUFBYSxPQUFPL0IsV0FBV1osU0FBU0M7WUFDdEMsT0FBT0osSUFBSUssWUFBWSxDQUFDSyxPQUFPLENBQUNWLEtBQUs7Z0JBQUVVLFNBQVNILElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDc0MsV0FBVyxDQUFDL0IsV0FBV1osU0FBU0M7WUFBUztRQUNwSDtRQUNBMkMsV0FBVyxPQUFPN0MsU0FBUzhDLElBQUk3QyxTQUFTQztZQUN0QyxPQUFPSixJQUFJSyxZQUFZLENBQUNPLEtBQUssQ0FBQ1osS0FBS08sSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUN1QyxTQUFTLENBQUM3QyxTQUFTOEMsSUFBSTdDLFNBQVNDO1FBQzlGO1FBQ0E2QyxzQkFBc0IsT0FBT0QsSUFBSTdDO1lBQy9CLE9BQU9ILElBQUlLLFlBQVksQ0FBQ08sS0FBSyxDQUFDWixLQUFLTyxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQ3lDLG9CQUFvQixDQUFDRCxJQUFJN0M7UUFDdkY7UUFDQStDLHFCQUFxQixPQUFPQyxPQUFPQyxXQUFXakQ7WUFDNUMsT0FBT0gsSUFBSUssWUFBWSxDQUFDZ0QsT0FBTyxDQUFDckQsS0FBSztnQkFBRXFELFNBQVM5QyxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQzBDLG1CQUFtQixDQUFDQyxPQUFPQyxXQUFXakQ7Z0JBQVdrQixTQUFTO1lBQUU7UUFDdkk7UUFDQWlDLDhCQUE4QixPQUFPZixXQUFXcEM7WUFDOUMsT0FBT0gsSUFBSUssWUFBWSxDQUFDYSxrQkFBa0IsQ0FBQ2xCLEtBQUtPLElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDOEMsNEJBQTRCLENBQUNmLFdBQVdwQztRQUNuSDtRQUNBb0QsV0FBVyxPQUFPckQsU0FBU0MsU0FBU0M7WUFDbEMsT0FBT0osSUFBSUssWUFBWSxDQUFDZSxLQUFLLENBQUNwQixLQUFLO2dCQUFFb0IsT0FBT2IsSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUMrQyxTQUFTLENBQUNyRCxTQUFTQyxTQUFTQztnQkFBVWlCLFNBQVM7WUFBRTtRQUN4SDtRQUNBbUMsNkJBQTZCLE9BQU9qQixXQUFXckMsU0FBU0M7WUFDdEQsT0FBT0gsSUFBSUssWUFBWSxDQUFDYSxrQkFBa0IsQ0FBQ2xCLEtBQUtPLElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDZ0QsMkJBQTJCLENBQUNqQixXQUFXckMsU0FBU0M7UUFDM0g7UUFDQXNELGtCQUFrQixPQUFPdkQsU0FBU3dELFdBQVd2RCxTQUFTQztZQUNwRCxPQUFPSixJQUFJSyxZQUFZLENBQUNxQixPQUFPLENBQUMxQixLQUFLTyxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQ2lELGdCQUFnQixDQUFDdkQsU0FBU3dELFdBQVd2RCxTQUFTQztRQUM5RztRQUNBdUQsbUJBQW1CLE9BQU96RCxTQUFTc0IsY0FBY3JCO1lBQy9DLE9BQU9ILElBQUlLLFlBQVksQ0FBQ3VCLFFBQVEsQ0FBQzVCLEtBQUtPLElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDbUQsaUJBQWlCLENBQUN6RCxTQUFTc0IsY0FBY3JCO1FBQzFHO1FBQ0F5RCxhQUFhLE9BQU83QyxXQUFXcUMsV0FBV2pEO1lBQ3hDLE9BQU9ILElBQUlLLFlBQVksQ0FBQ2dELE9BQU8sQ0FBQ3JELEtBQUs7Z0JBQ25DcUQsU0FBUzlDLElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDb0QsV0FBVyxDQUFDN0MsV0FBV3FDLFdBQVdqRDtnQkFDcEVrQixTQUFTO1lBQ1g7UUFDRjtRQUNBd0MsaUNBQWlDLE9BQU9WLE9BQU9oRDtZQUM3QyxPQUFPSCxJQUFJSyxZQUFZLENBQUNnRCxPQUFPLENBQUNyRCxLQUFLO2dCQUFFcUQsU0FBUzlDLElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDcUQsK0JBQStCLENBQUNWLE9BQU9oRDtnQkFBV2tCLFNBQVM7WUFBRTtRQUN4STtRQUNBeUMsNEJBQTRCLE9BQU9DLFdBQVdaLE9BQU9oRDtZQUNuRCxPQUFPSCxJQUFJSyxZQUFZLENBQUNnRCxPQUFPLENBQUNyRCxLQUFLO2dCQUNuQ3FELFNBQVM5QyxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQ3NELDBCQUEwQixDQUFDQyxXQUFXWixPQUFPaEQ7Z0JBQy9Fa0IsU0FBUztZQUNYO1FBQ0Y7UUFDQTJDLFVBQVUsT0FBTzlELFNBQVMrRCxRQUFROUQsU0FBU0M7WUFDekMsT0FBT0osSUFBSUssWUFBWSxDQUFDMEIsSUFBSSxDQUFDL0IsS0FBSztnQkFBRStCLE1BQU14QixJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQ3dELFFBQVEsQ0FBQzlELFNBQVMrRCxRQUFROUQsU0FBU0M7Z0JBQVVGO1lBQVE7UUFDMUg7UUFDQWdFLG1CQUFtQixPQUFPaEUsU0FBU0MsU0FBU0M7WUFDMUMsT0FBT0csSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUMwRCxpQkFBaUIsQ0FBQ2hFLFNBQVNDLFNBQVNDLFNBQVMrRCxHQUFHLENBQUMsQ0FBQ3BDLE9BQVMvQixJQUFJSyxZQUFZLENBQUMwQixJQUFJLENBQUMvQixLQUFLO29CQUFFK0I7b0JBQU03QjtnQkFBUTtRQUN4STtRQUNBa0Usb0JBQW9CLE9BQU9sRSxTQUFTbUUsU0FBU2xFLFNBQVNDO1lBQ3BELE9BQU9KLElBQUlLLFlBQVksQ0FBQzRCLGNBQWMsQ0FBQ2pDLEtBQUtPLElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDNEQsa0JBQWtCLENBQUNsRSxTQUFTbUUsU0FBU2xFLFNBQVNDO1FBQ3JIO1FBQ0FrRSxtQkFBbUIsT0FBT3ZELFdBQVd3RCxPQUFPbkU7WUFDMUMsT0FBT0osSUFBSUssWUFBWSxDQUFDOEIsYUFBYSxDQUFDbkMsS0FBS08sSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUM4RCxpQkFBaUIsQ0FBQ3ZELFdBQVd3RCxPQUFPbkU7UUFDMUc7UUFDQW9FLGFBQWEsT0FBT1QsV0FBVzVELFNBQVNDO1lBQ3RDLE9BQU9KLElBQUlLLFlBQVksQ0FBQ2dDLE9BQU8sQ0FBQ3JDLEtBQUtPLElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDZ0UsV0FBVyxDQUFDVCxXQUFXNUQsU0FBU0M7UUFDaEc7UUFDQXFFLG9CQUFvQixPQUFPVixXQUFXWixPQUFPQyxXQUFXakQ7WUFDdEQsT0FBT0gsSUFBSUssWUFBWSxDQUFDZ0QsT0FBTyxDQUFDckQsS0FBSztnQkFDbkNxRCxTQUFTOUMsSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUNpRSxrQkFBa0IsQ0FBQ1YsV0FBV1osT0FBT0MsV0FBV2pEO2dCQUNsRmtCLFNBQVM7WUFDWDtRQUNGO1FBQ0FxRCxzQkFBc0IsT0FBT1gsV0FBV1osT0FBT2hEO1lBQzdDLE9BQU9ILElBQUlLLFlBQVksQ0FBQ2dDLE9BQU8sQ0FBQ3JDLEtBQUtPLElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDa0Usb0JBQW9CLENBQUNYLFdBQVdaLE9BQU9oRDtRQUN2RztRQUNBd0UsbUJBQW1CLE9BQU96RSxTQUFTQyxTQUFTQztZQUMxQyxPQUFPSixJQUFJSyxZQUFZLENBQUN1RSxhQUFhLENBQUM1RSxLQUFLTyxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQ21FLGlCQUFpQixDQUFDekUsU0FBU0MsU0FBU0M7UUFDMUc7UUFDQXlFLG9CQUFvQixPQUFPM0UsU0FBU0MsU0FBU0M7WUFDM0MsT0FBT0osSUFBSUssWUFBWSxDQUFDeUUsY0FBYyxDQUFDOUUsS0FBS08sSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUNxRSxrQkFBa0IsQ0FBQzNFLFNBQVNDLFNBQVNDO1FBQzVHO1FBQ0EyRSxnQkFBZ0IsT0FBT2hCLFdBQVdaLE9BQU9oRDtZQUN2QyxNQUFNNkUsU0FBUyxNQUFNaEYsSUFBSVEsSUFBSSxDQUFDdUUsY0FBYyxDQUFDaEIsV0FBV1osT0FBT2hEO1lBQy9ELElBQUksQ0FBQzZFLFFBQVE7WUFFYixPQUFPaEYsSUFBSUssWUFBWSxDQUFDZ0QsT0FBTyxDQUFDckQsS0FBSztnQkFBRXFELFNBQVM5QyxJQUFBQSxnQkFBUyxFQUFDeUU7Z0JBQTJCM0QsU0FBUztZQUFFO1FBQ2xHO1FBQ0E0RCxvQkFBb0IsT0FBT0MsaUJBQWlCQztZQUMxQyxPQUFPLE1BQU1uRixJQUFJUSxJQUFJLENBQUN5RSxrQkFBa0IsQ0FBQ0MsaUJBQWlCQztRQUM1RDtRQUNBQyxrQkFBa0IsT0FBT2xGO1lBQ3ZCLE1BQU04RSxTQUFTLE1BQU1oRixJQUFJUSxJQUFJLENBQUM0RSxnQkFBZ0IsQ0FBQ2xGO1lBQy9DLE9BQU87Z0JBQ0xtRixTQUFTTCxPQUFPSyxPQUFPLENBQUNsQixHQUFHLENBQUMsQ0FBQ21CLFNBQVd0RixJQUFJSyxZQUFZLENBQUNLLE9BQU8sQ0FBQ1YsS0FBSzt3QkFBRUU7d0JBQVNRLFNBQVNILElBQUFBLGdCQUFTLEVBQUMrRTtvQkFBUTtnQkFDNUdDLFNBQVNQLE9BQU9PLE9BQU8sQ0FBQ3BCLEdBQUcsQ0FBQyxDQUFDcUIsU0FBV3hGLElBQUlLLFlBQVksQ0FBQ29GLFlBQVksQ0FBQ3pGLEtBQUtPLElBQUFBLGdCQUFTLEVBQUNpRjtZQUN2RjtRQUNGO1FBQ0FFLG9CQUFvQjtZQUNsQixPQUFPMUYsSUFBSUssWUFBWSxDQUFDc0YsV0FBVyxDQUFDM0YsS0FBSztnQkFBRTJGLGFBQWFwRixJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQ2tGLGtCQUFrQjtnQkFBS3JFLFNBQVM7WUFBRTtRQUNySDtRQUNBdUUscUJBQXFCLE9BQU9DO1lBQzFCLE9BQU83RixJQUFJSyxZQUFZLENBQUNzRixXQUFXLENBQUMzRixLQUFLO2dCQUFFMkYsYUFBYXBGLElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDb0YsbUJBQW1CLENBQUNDO2dCQUFReEUsU0FBUztZQUFFO1FBQzFIO1FBQ0F5RSw4QkFBOEIsT0FBT3REO1lBQ25DLE9BQU8sTUFBTXhDLElBQUlRLElBQUksQ0FBQ3NGLDRCQUE0QixDQUFDdEQ7UUFDckQ7UUFDQXVELGVBQWUsT0FBT0MsVUFBVUMsY0FBYzlGO1lBQzVDLE9BQU8sTUFBTUgsSUFBSVEsSUFBSSxDQUFDdUYsYUFBYSxDQUFDQyxVQUFVQyxjQUFjOUY7UUFDOUQ7UUFDQStGLGFBQWEsT0FBT0YsVUFBVUMsY0FBYzlGO1lBQzFDLE9BQU8sTUFBTUgsSUFBSVEsSUFBSSxDQUFDMEYsV0FBVyxDQUFDRixVQUFVQyxjQUFjOUY7UUFDNUQ7UUFDQWdHLGlDQUFpQyxPQUFPakcsU0FBU3FDLFdBQVdwQztZQUMxRCxNQUFNaUcsTUFBTSxNQUFNcEcsSUFBSVEsSUFBSSxDQUFDMkYsK0JBQStCLENBQUNqRyxTQUFTcUMsV0FBV3BDO1lBQy9FLE1BQU1rRyxZQUFZOUYsSUFBQUEsZ0JBQVMsRUFBQzZGO1lBRTVCLE9BQU9wRyxJQUFJSyxZQUFZLENBQUNvQyw0QkFBNEIsQ0FBQ3pDLEtBQUtxRztRQUM1RDtRQUNBQyxrQ0FBa0MsT0FBT3BHLFNBQVNDO1lBQ2hELE9BQU8sQUFBQyxDQUFBLE1BQU1ILElBQUlRLElBQUksQ0FBQzhGLGdDQUFnQyxDQUFDcEcsU0FBU0MsUUFBTyxFQUFHZ0UsR0FBRyxDQUFDLENBQUNpQyxNQUM5RXBHLElBQUlLLFlBQVksQ0FBQ29DLDRCQUE0QixDQUFDekMsS0FBS08sSUFBQUEsZ0JBQVMsRUFBQzZGO1FBRWpFO1FBQ0FHLGFBQWEsT0FBT3JHLFNBQVNDO1lBQzNCLE9BQU8sTUFBTUgsSUFBSVEsSUFBSSxDQUFDK0YsV0FBVyxDQUFDckcsU0FBU0M7UUFDN0M7UUFDQXFHLGdCQUFnQixPQUFPdEcsU0FBU3lDO1lBQzlCLE9BQU8zQyxJQUFJSyxZQUFZLENBQUNDLFdBQVcsQ0FBQ04sS0FBS08sSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUNnRyxjQUFjLENBQUN0RyxTQUFTeUM7UUFDNUY7UUFDQThELGlCQUFpQixPQUFPdkc7WUFDdEIsT0FBTyxBQUFDLENBQUEsTUFBTUYsSUFBSVEsSUFBSSxDQUFDaUcsZUFBZSxDQUFDdkcsUUFBTyxFQUFHaUUsR0FBRyxDQUFDLENBQUNpQyxNQUFRcEcsSUFBSUssWUFBWSxDQUFDQyxXQUFXLENBQUNOLEtBQUtPLElBQUFBLGdCQUFTLEVBQUM2RjtRQUM1RztRQUNBTSwwQkFBMEI7WUFDeEIsT0FBTyxBQUFDLENBQUEsTUFBTTFHLElBQUlRLElBQUksQ0FBQ2tHLHdCQUF3QixFQUFDLEVBQUd2QyxHQUFHLENBQUMsQ0FBQ2lDLE1BQVFwRyxJQUFJSyxZQUFZLENBQUNzRyxXQUFXLENBQUMzRyxLQUFLTyxJQUFBQSxnQkFBUyxFQUFDNkY7UUFDOUc7UUFDQVEsUUFBUSxPQUFPMUcsU0FBUzJHO1lBQ3RCLE9BQU8sTUFBTTdHLElBQUlRLElBQUksQ0FBQ29HLE1BQU0sQ0FBQzFHLFNBQVMyRztRQUN4QztRQUNBQyxTQUFTLE9BQU81RyxTQUFTQztZQUN2QixPQUFPLE1BQU1ILElBQUlRLElBQUksQ0FBQ3NHLE9BQU8sQ0FBQzVHLFNBQVNDO1FBQ3pDO1FBQ0E0RyxZQUFZLE9BQU9oRztZQUNqQixPQUFPZixJQUFJSyxZQUFZLENBQUNLLE9BQU8sQ0FBQ1YsS0FBSztnQkFBRVUsU0FBU0gsSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUN1RyxVQUFVLENBQUNoRztZQUFZO1FBQ2xHO1FBQ0FpRyxtQkFBbUIsT0FBT2pHO1lBQ3hCLE9BQU8sTUFBTWYsSUFBSVEsSUFBSSxDQUFDd0csaUJBQWlCLENBQUNqRztRQUN4QyxrSEFBa0g7UUFDcEg7UUFDQWtHLGFBQWEsT0FBTy9HO1lBQ2xCLE9BQU8sQUFBQyxDQUFBLE1BQU1GLElBQUlRLElBQUksQ0FBQ3lHLFdBQVcsQ0FBQy9HLFFBQU8sRUFBR2lFLEdBQUcsQ0FBQyxDQUFDaUMsTUFBUXBHLElBQUlLLFlBQVksQ0FBQ0ssT0FBTyxDQUFDVixLQUFLO29CQUFFVSxTQUFTSCxJQUFBQSxnQkFBUyxFQUFDNkY7b0JBQU1sRztnQkFBUTtRQUM3SDtRQUNBZ0gsb0JBQW9CLE9BQU9uRztZQUN6QixPQUFPLEFBQUMsQ0FBQSxNQUFNZixJQUFJUSxJQUFJLENBQUMwRyxrQkFBa0IsQ0FBQ25HLFVBQVMsRUFBR29ELEdBQUcsQ0FBQyxDQUFDaUMsTUFBUXBHLElBQUlLLFlBQVksQ0FBQ2dDLE9BQU8sQ0FBQ3JDLEtBQUtPLElBQUFBLGdCQUFTLEVBQUM2RjtRQUM3RztRQUNBZSxjQUFjLE9BQU9OO1lBQ25CLE9BQU83RyxJQUFJSyxZQUFZLENBQUNLLE9BQU8sQ0FBQ1YsS0FBSztnQkFBRVUsU0FBU0gsSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUMyRyxZQUFZLENBQUNOO1lBQVM7UUFDakc7UUFDQU8sbUJBQW1CLE9BQU9qSDtZQUN4QixPQUFPSCxJQUFJSyxZQUFZLENBQUNLLE9BQU8sQ0FBQ1YsS0FBSztnQkFBRVUsU0FBU0gsSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUM0RyxpQkFBaUIsQ0FBQ2pIO1lBQVU7UUFDdkc7UUFDQWtILFVBQVUsT0FBT25ILFNBQVNvSDtZQUN4QixPQUFPdEgsSUFBSUssWUFBWSxDQUFDTyxLQUFLLENBQUNaLEtBQUtPLElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDNkcsUUFBUSxDQUFDbkgsU0FBU29IO1FBQ2hGO1FBQ0FDLHFCQUFxQixPQUFPRDtZQUMxQixPQUFPdEgsSUFBSUssWUFBWSxDQUFDTyxLQUFLLENBQUNaLEtBQUtPLElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDK0csbUJBQW1CLENBQUNEO1FBQ2xGO1FBQ0FFLFdBQVcsT0FBT3RIO1lBQ2hCLE9BQU8sQUFBQyxDQUFBLE1BQU1GLElBQUlRLElBQUksQ0FBQ2dILFNBQVMsQ0FBQ3RILFFBQU8sRUFBR2lFLEdBQUcsQ0FBQyxDQUFDaUMsTUFBUXBHLElBQUlLLFlBQVksQ0FBQ08sS0FBSyxDQUFDWixLQUFLTyxJQUFBQSxnQkFBUyxFQUFDNkY7UUFDaEc7UUFDQXFCLHNCQUFzQjtZQUNwQixNQUFNckIsTUFBTSxNQUFNcEcsSUFBSVEsSUFBSSxDQUFDaUgsb0JBQW9CO1lBRS9DLE9BQU87Z0JBQ0xDLE9BQU90QixJQUFJc0IsS0FBSyxDQUFDdkQsR0FBRyxDQUFDLENBQUN3RCxPQUFTM0gsSUFBSUssWUFBWSxDQUFDTyxLQUFLLENBQUNaLEtBQUtPLElBQUFBLGdCQUFTLEVBQUNvSDtZQUN2RTtRQUNGO1FBQ0FDLG9CQUFvQixPQUFPekUsT0FBT0M7WUFDaEMsT0FBT3BELElBQUlLLFlBQVksQ0FBQ2dELE9BQU8sQ0FBQ3JELEtBQUs7Z0JBQUVxRCxTQUFTOUMsSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUNvSCxrQkFBa0IsQ0FBQ3pFLE9BQU9DO2dCQUFhL0IsU0FBUztZQUFFO1FBQzdIO1FBQ0F3RyxlQUFlO1lBQ2IsT0FBTzdILElBQUlLLFlBQVksQ0FBQ3lILFVBQVUsQ0FBQzlILEtBQUtPLElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDcUgsYUFBYTtRQUNoRjtRQUNBRSw2QkFBNkIsT0FBT3hGO1lBQ2xDLE9BQU92QyxJQUFJSyxZQUFZLENBQUNhLGtCQUFrQixDQUFDbEIsS0FBS08sSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUN1SCwyQkFBMkIsQ0FBQ3hGO1FBQ3ZHO1FBQ0F5Riw4QkFBOEI7WUFDNUIsT0FBTyxBQUFDLENBQUEsTUFBTWhJLElBQUlRLElBQUksQ0FBQ3dILDRCQUE0QixFQUFDLEVBQUc3RCxHQUFHLENBQUMsQ0FBQ2lDLE1BQVFwRyxJQUFJSyxZQUFZLENBQUNhLGtCQUFrQixDQUFDbEIsS0FBS08sSUFBQUEsZ0JBQVMsRUFBQzZGO1FBQ3pIO1FBQ0E2QixVQUFVLE9BQU8vSCxTQUFTQztZQUN4QixPQUFPSCxJQUFJSyxZQUFZLENBQUNlLEtBQUssQ0FBQ3BCLEtBQUs7Z0JBQUVvQixPQUFPYixJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQ3lILFFBQVEsQ0FBQy9ILFNBQVNDO2dCQUFXa0IsU0FBUztZQUFFO1FBQy9HO1FBQ0E2RyxXQUFXLE9BQU8xRixhQUFhckM7WUFDN0IsT0FBTyxBQUFDLENBQUEsTUFBTUgsSUFBSVEsSUFBSSxDQUFDMEgsU0FBUyxDQUFDMUYsYUFBYXJDLFFBQU8sRUFBR2dFLEdBQUcsQ0FBd0QsQ0FBQ2lDLE1BQ2xILG9EQUFvRDtnQkFDcERwRyxJQUFJSyxZQUFZLENBQUNlLEtBQUssQ0FBQ3BCLEtBQUs7b0JBQUVvQixPQUFPYixJQUFBQSxnQkFBUyxFQUFDNkY7b0JBQU0vRSxTQUFTO2dCQUFFO1FBRXBFO1FBQ0E4Ryw0QkFBNEIsT0FBTzVGLFdBQVdyQztZQUM1QyxPQUFPRixJQUFJSyxZQUFZLENBQUNhLGtCQUFrQixDQUFDbEIsS0FBS08sSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUMySCwwQkFBMEIsQ0FBQzVGLFdBQVdyQztRQUNqSDtRQUNBa0ksNkJBQTZCLE9BQU9sSTtZQUNsQyxPQUFPLEFBQUMsQ0FBQSxNQUFNRixJQUFJUSxJQUFJLENBQUM0SCwyQkFBMkIsQ0FBQ2xJLFFBQU8sRUFBR2lFLEdBQUcsQ0FBQyxDQUFDaUMsTUFBUXBHLElBQUlLLFlBQVksQ0FBQ2Esa0JBQWtCLENBQUNsQixLQUFLTyxJQUFBQSxnQkFBUyxFQUFDNkY7UUFDL0g7UUFDQWlDLGlCQUFpQixPQUFPbkk7WUFDdEIsT0FBTyxNQUFNRixJQUFJUSxJQUFJLENBQUM2SCxlQUFlLENBQUNuSTtRQUN0Qyx1RkFBdUY7UUFDekY7UUFDQW9JLGlCQUFpQixPQUFPcEksU0FBU3dEO1lBQy9CLE9BQU8xRCxJQUFJSyxZQUFZLENBQUNxQixPQUFPLENBQUMxQixLQUFLTyxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQzhILGVBQWUsQ0FBQ3BJLFNBQVN3RDtRQUN6RjtRQUNBNkUsa0JBQWtCLE9BQU9ySTtZQUN2QixPQUFPLEFBQUMsQ0FBQSxNQUFNRixJQUFJUSxJQUFJLENBQUMrSCxnQkFBZ0IsQ0FBQ3JJLFFBQU8sRUFBR2lFLEdBQUcsQ0FBQyxDQUFDaUMsTUFBUXBHLElBQUlLLFlBQVksQ0FBQ3FCLE9BQU8sQ0FBQzFCLEtBQUtPLElBQUFBLGdCQUFTLEVBQUM2RjtRQUN6RztRQUNBb0Msa0JBQWtCLE9BQU9oSDtZQUN2QixPQUFPeEIsSUFBSUssWUFBWSxDQUFDdUIsUUFBUSxDQUFDNUIsS0FBS08sSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUNnSSxnQkFBZ0IsQ0FBQ2hIO1FBQ2xGO1FBQ0FpSCxtQkFBbUIsT0FBT3ZJO1lBQ3hCLE9BQU8sQUFBQyxDQUFBLE1BQU1GLElBQUlRLElBQUksQ0FBQ2lJLGlCQUFpQixDQUFDdkksUUFBTyxFQUFHaUUsR0FBRyxDQUFDLENBQUNpQyxNQUFRcEcsSUFBSUssWUFBWSxDQUFDdUIsUUFBUSxDQUFDNUIsS0FBS08sSUFBQUEsZ0JBQVMsRUFBQzZGO1FBQzNHO1FBQ0FzQyxrQkFBa0IsT0FBT3hJO1lBQ3ZCLE9BQU8sQUFBQyxDQUFBLE1BQU1GLElBQUlRLElBQUksQ0FBQ2tJLGdCQUFnQixDQUFDeEksUUFBTyxFQUFHaUUsR0FBRyxDQUFDLENBQUNpQyxNQUFRcEcsSUFBSUssWUFBWSxDQUFDZ0MsT0FBTyxDQUFDckMsS0FBS08sSUFBQUEsZ0JBQVMsRUFBQzZGO1FBQ3pHO1FBQ0F1QyxpQkFBaUIsT0FBT3pJO1lBQ3RCLE9BQU8sQUFBQyxDQUFBLE1BQU1GLElBQUlRLElBQUksQ0FBQ21JLGVBQWUsQ0FBQ3pJLFFBQU8sRUFBR2lFLEdBQUcsQ0FBQyxDQUFDaUMsTUFDcERwRyxJQUFJSyxZQUFZLENBQUN1SSxXQUFXLENBQUM1SSxLQUFLTyxJQUFBQSxnQkFBUyxFQUFDO29CQUFFLEdBQUc2RixHQUFHO29CQUFFbEcsU0FBU0EsUUFBUTJJLFFBQVE7Z0JBQUc7UUFFdEY7UUFDQUMsV0FBVyxPQUFPQyxZQUFZNUk7WUFDNUIsT0FBT0gsSUFBSUssWUFBWSxDQUFDMkksTUFBTSxDQUFDaEosS0FBSztnQkFBRWdKLFFBQVF6SSxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQ3NJLFNBQVMsQ0FBQ0MsWUFBWTVJO2dCQUFXa0IsU0FBUztZQUFFO1FBQ3JIO1FBQ0E0SCxZQUFZLE9BQU8vSTtZQUNqQixPQUFPLEFBQUMsQ0FBQSxNQUFNRixJQUFJUSxJQUFJLENBQUN5SSxVQUFVLENBQUMvSSxRQUFPLEVBQUdpRSxHQUFHLENBQUMsQ0FBQ2lDLE1BQVFwRyxJQUFJSyxZQUFZLENBQUMySSxNQUFNLENBQUNoSixLQUFLO29CQUFFZ0osUUFBUXpJLElBQUFBLGdCQUFTLEVBQUM2RjtvQkFBTS9FLFNBQVM7Z0JBQUU7UUFDN0g7UUFDQTZILFlBQVksT0FBT25JLFdBQVdxQztZQUM1QixPQUFPcEQsSUFBSUssWUFBWSxDQUFDZ0QsT0FBTyxDQUFDckQsS0FBSztnQkFBRXFELFNBQVM5QyxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQzBJLFVBQVUsQ0FBQ25JLFdBQVdxQztnQkFBYS9CLFNBQVM7WUFBRTtRQUN6SDtRQUNBOEgsYUFBYSxPQUFPcEksV0FBV1o7WUFDN0IsT0FBTyxBQUFDLENBQUEsTUFBTUgsSUFBSVEsSUFBSSxDQUFDMkksV0FBVyxDQUFDcEksV0FBV1osUUFBTyxFQUFHZ0UsR0FBRyxDQUFDLENBQUNpQyxNQUFRcEcsSUFBSUssWUFBWSxDQUFDZ0QsT0FBTyxDQUFDckQsS0FBSztvQkFBRXFELFNBQVM5QyxJQUFBQSxnQkFBUyxFQUFDNkY7b0JBQU0vRSxTQUFTO2dCQUFFO1FBQzNJO1FBQ0ErSCxnQkFBZ0IsT0FBT0M7WUFDckIsT0FBT3JKLElBQUlLLFlBQVksQ0FBQ2lKLFdBQVcsQ0FBQ3RKLEtBQUtPLElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDNEksY0FBYyxDQUFDQztRQUNuRjtRQUNBRSxpQkFBaUI7WUFDZixPQUFPLEFBQUMsQ0FBQSxNQUFNdkosSUFBSVEsSUFBSSxDQUFDK0ksZUFBZSxFQUFDLEVBQUdwRixHQUFHLENBQUMsQ0FBQ2lDLE1BQVFwRyxJQUFJSyxZQUFZLENBQUNpSixXQUFXLENBQUN0SixLQUFLTyxJQUFBQSxnQkFBUyxFQUFDNkY7UUFDckc7UUFDQW9ELGdDQUFnQyxPQUFPckc7WUFDckMsT0FBT25ELElBQUlLLFlBQVksQ0FBQ2dELE9BQU8sQ0FBQ3JELEtBQUs7Z0JBQUVxRCxTQUFTOUMsSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUNnSiw4QkFBOEIsQ0FBQ3JHO2dCQUFTOUIsU0FBUztZQUFFO1FBQzlIO1FBQ0FvSSxtQkFBbUIsT0FBTzFJO1lBQ3hCLE9BQU8sQUFBQyxDQUFBLE1BQU1mLElBQUlRLElBQUksQ0FBQ2lKLGlCQUFpQixDQUFDMUksVUFBUyxFQUFHb0QsR0FBRyxDQUFDLENBQUNpQyxNQUFRcEcsSUFBSUssWUFBWSxDQUFDZ0QsT0FBTyxDQUFDckQsS0FBSztvQkFBRXFELFNBQVM5QyxJQUFBQSxnQkFBUyxFQUFDNkY7b0JBQU0vRSxTQUFTO2dCQUFFO1FBQ3hJO1FBQ0FxSSwyQkFBMkIsT0FBTzNJLFdBQVdaO1lBQzNDLE9BQU8sTUFBTUgsSUFBSVEsSUFBSSxDQUFDa0oseUJBQXlCLENBQUMzSSxXQUFXWjtRQUM3RDtRQUNBd0osaUNBQWlDLE9BQU81SSxXQUFXWjtZQUNqRCxPQUFPLE1BQU1ILElBQUlRLElBQUksQ0FBQ21KLCtCQUErQixDQUFDNUksV0FBV1o7UUFDbkU7UUFDQXlKLGVBQWUsT0FBTzFKLFNBQVNDO1lBQzdCLE9BQU8sTUFBTUgsSUFBSVEsSUFBSSxDQUFDb0osYUFBYSxDQUFDMUosU0FBU0M7UUFDL0M7UUFDQTBKLDBCQUEwQixPQUFPOUksV0FBV1o7WUFDMUMsT0FBTyxNQUFNSCxJQUFJUSxJQUFJLENBQUNxSix3QkFBd0IsQ0FBQzlJLFdBQVdaO1FBQzVEO1FBQ0EySixVQUFVLE9BQU81SjtZQUNmLE9BQU9LLElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDc0osUUFBUSxDQUFDNUosVUFBVWlFLEdBQUcsQ0FBQyxDQUFDcEMsT0FBUy9CLElBQUlLLFlBQVksQ0FBQzBCLElBQUksQ0FBQy9CLEtBQUs7b0JBQUUrQjtvQkFBTTdCO2dCQUFRO1FBQzlHO1FBQ0E2SixTQUFTLE9BQU83SixTQUFTK0Q7WUFDdkIsT0FBT2pFLElBQUlLLFlBQVksQ0FBQzBCLElBQUksQ0FBQy9CLEtBQUs7Z0JBQUUrQixNQUFNeEIsSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUN1SixPQUFPLENBQUM3SixTQUFTK0Q7Z0JBQVUvRDtZQUFRO1FBQ3hHO1FBQ0E4SixtQkFBbUIsT0FBTzlKLFNBQVNtRSxTQUFTbEU7WUFDMUMsT0FBT0gsSUFBSUssWUFBWSxDQUFDNEIsY0FBYyxDQUFDakMsS0FBS08sSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUN3SixpQkFBaUIsQ0FBQzlKLFNBQVNtRSxTQUFTbEU7UUFDM0c7UUFDQThKLG9CQUFvQixPQUFPL0osU0FBU0M7WUFDbEMsT0FBTyxBQUFDLENBQUEsTUFBTUgsSUFBSVEsSUFBSSxDQUFDeUosa0JBQWtCLENBQUMvSixTQUFTQyxRQUFPLEVBQUdnRSxHQUFHLENBQUMsQ0FBQ2lDLE1BQVFwRyxJQUFJSyxZQUFZLENBQUM0QixjQUFjLENBQUNqQyxLQUFLTyxJQUFBQSxnQkFBUyxFQUFDNkY7UUFDM0g7UUFDQThELHdCQUF3QixPQUFPaEssU0FBU21FLFNBQVNsRTtZQUMvQyxPQUFPLEFBQUMsQ0FBQSxNQUFNSCxJQUFJUSxJQUFJLENBQUMwSixzQkFBc0IsQ0FBQ2hLLFNBQVNtRSxTQUFTbEUsUUFBTyxFQUFHZ0UsR0FBRyxDQUFDLENBQUNnRztnQkFDN0UsT0FBTztvQkFDTHRILE1BQU03QyxJQUFJSyxZQUFZLENBQUN3QyxJQUFJLENBQUM3QyxLQUFLTyxJQUFBQSxnQkFBUyxFQUFDNEosRUFBRXRILElBQUk7b0JBQ2pEMkMsUUFBUTJFLEVBQUUzRSxNQUFNLElBQUl4RixJQUFJSyxZQUFZLENBQUNtRixNQUFNLENBQUN4RixLQUFLTyxJQUFBQSxnQkFBUyxFQUFDNEosRUFBRTNFLE1BQU0sR0FBR3RGLFNBQVNGLElBQUlLLFlBQVksQ0FBQytKLFNBQVMsQ0FBQ0QsRUFBRXRILElBQUksQ0FBQ0csRUFBRTtnQkFDckg7WUFDRjtRQUNGO1FBQ0FxSCxnQkFBZ0I7WUFDZCxPQUFPckssSUFBSUssWUFBWSxDQUFDeUgsVUFBVSxDQUFDOUgsS0FBS08sSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUM2SixjQUFjO1FBQ2pGO1FBQ0FDLGtCQUFrQixPQUFPdko7WUFDdkIsT0FBT2YsSUFBSUssWUFBWSxDQUFDOEIsYUFBYSxDQUFDbkMsS0FBS08sSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUM4SixnQkFBZ0IsQ0FBQ3ZKO1FBQ3ZGO1FBQ0F3SixrQkFBa0IsT0FBT3JLO1lBQ3ZCLE9BQU9GLElBQUlLLFlBQVksQ0FBQ21LLFVBQVUsQ0FBQ3hLLEtBQUs7Z0JBQUVFO2dCQUFTc0ssWUFBWWpLLElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDK0osZ0JBQWdCLENBQUNySztZQUFVO1FBQ3JIO1FBQ0F1SyxtQkFBbUIsT0FBT3ZLLFNBQVMyRztZQUNqQyxPQUFPN0csSUFBSUssWUFBWSxDQUFDbUssVUFBVSxDQUFDeEssS0FBSztnQkFBRUU7Z0JBQVNzSyxZQUFZakssSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUNpSyxpQkFBaUIsQ0FBQ3ZLLFNBQVMyRztZQUFTO1FBQzlIO1FBQ0E2RCxZQUFZLE9BQU9oSDtZQUNqQixPQUFPMUQsSUFBSUssWUFBWSxDQUFDcUIsT0FBTyxDQUFDMUIsS0FBS08sSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUNrSyxVQUFVLENBQUNoSDtRQUMzRTtRQUNBaUgsaUJBQWlCLE9BQU81SixXQUFXOEYsUUFBUTFHO1lBQ3pDLE9BQU9ILElBQUlLLFlBQVksQ0FBQ29GLFlBQVksQ0FBQ3pGLEtBQUtPLElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDbUssZUFBZSxDQUFDNUosV0FBVzhGLFFBQVExRztRQUN4RztRQUNBeUssa0JBQWtCLE9BQU83SixXQUFXWjtZQUNsQyxPQUFPLEFBQUMsQ0FBQSxNQUFNSCxJQUFJUSxJQUFJLENBQUNvSyxnQkFBZ0IsQ0FBQzdKLFdBQVdaLFFBQU8sRUFBR2dFLEdBQUcsQ0FBQyxDQUFDaUMsTUFBUXBHLElBQUlLLFlBQVksQ0FBQ29GLFlBQVksQ0FBQ3pGLEtBQUtPLElBQUFBLGdCQUFTLEVBQUM2RjtRQUN6SDtRQUNBeUUsY0FBYyxPQUFPOUosV0FBV3FDLFdBQVcwSCxVQUFVM0s7WUFDbkQsT0FBTyxBQUFDLENBQUEsTUFBTUgsSUFBSVEsSUFBSSxDQUFDcUssWUFBWSxDQUFDOUosV0FBV3FDLFdBQVcwSCxVQUFVM0ssUUFBTyxFQUFHZ0UsR0FBRyxDQUFDLENBQUNpQyxNQUFRcEcsSUFBSUssWUFBWSxDQUFDd0MsSUFBSSxDQUFDN0MsS0FBS08sSUFBQUEsZ0JBQVMsRUFBQzZGO1FBQ2xJO1FBQ0EyRSxTQUFTLE9BQU8vSDtZQUNkLE9BQU9oRCxJQUFJSyxZQUFZLENBQUN3QyxJQUFJLENBQUM3QyxLQUFLTyxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQ3VLLE9BQU8sQ0FBQy9IO1FBQ3JFO1FBQ0FnSSxnQkFBZ0IsT0FBT3hJO1lBQ3JCLE9BQU94QyxJQUFJSyxZQUFZLENBQUN3QyxJQUFJLENBQUM3QyxLQUFLTyxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQ3dLLGNBQWMsQ0FBQ3hJO1FBQzVFO1FBQ0F5SSxvQkFBb0IsT0FBT3pJO1lBQ3pCLE9BQU8sTUFBTXhDLElBQUlRLElBQUksQ0FBQ3lLLGtCQUFrQixDQUFDekk7UUFDM0M7UUFDQTBJLGtDQUFrQyxPQUFPMUksYUFBYTJJO1lBQ3BELE9BQU8sTUFBTW5MLElBQUlRLElBQUksQ0FBQzBLLGdDQUFnQyxDQUFDMUksYUFBYTJJO1FBQ3RFO1FBQ0FDLGNBQWMsT0FBT2xMO1lBQ25CLE9BQU8sTUFBTUYsSUFBSVEsSUFBSSxDQUFDNEssWUFBWSxDQUFDbEw7UUFDckM7UUFDQW1MLGlCQUFpQixPQUFPbkw7WUFDdEIsT0FBTyxBQUFDLENBQUEsTUFBTUYsSUFBSVEsSUFBSSxDQUFDNkssZUFBZSxDQUFDbkwsUUFBTyxFQUFHaUUsR0FBRyxDQUFDLENBQUNpQyxNQUFRcEcsSUFBSUssWUFBWSxDQUFDc0csV0FBVyxDQUFDM0csS0FBS08sSUFBQUEsZ0JBQVMsRUFBQzZGO1FBQzVHO1FBQ0FrRixZQUFZLE9BQU92SDtZQUNqQixPQUFPL0QsSUFBSUssWUFBWSxDQUFDZ0MsT0FBTyxDQUFDckMsS0FBS08sSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUM4SyxVQUFVLENBQUN2SDtRQUMzRTtRQUNBd0gsbUJBQW1CLE9BQU94SCxXQUFXWixPQUFPQyxXQUFXakQ7WUFDckQsT0FBT0gsSUFBSUssWUFBWSxDQUFDZ0QsT0FBTyxDQUFDckQsS0FBSztnQkFBRXFELFNBQVM5QyxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQytLLGlCQUFpQixDQUFDeEgsV0FBV1osT0FBT0MsV0FBV2pEO2dCQUFXa0IsU0FBUztZQUFFO1FBQ2hKO1FBQ0FtSyxxQkFBcUIsT0FBT3pILFdBQVdaO1lBQ3JDLE9BQU9uRCxJQUFJSyxZQUFZLENBQUNnQyxPQUFPLENBQUNyQyxLQUFLTyxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQ2dMLG1CQUFtQixDQUFDekgsV0FBV1o7UUFDL0Y7UUFDQXNJLGtCQUFrQixPQUFPdkw7WUFDdkIsT0FBT0YsSUFBSUssWUFBWSxDQUFDdUUsYUFBYSxDQUFDNUUsS0FBS08sSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUNpTCxnQkFBZ0IsQ0FBQ3ZMO1FBQ3ZGO1FBQ0F3TCxXQUFXLE9BQU94TDtZQUNoQixPQUFPRixJQUFJSyxZQUFZLENBQUNzTCxNQUFNLENBQUMzTCxLQUFLTyxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQ2tMLFNBQVMsQ0FBQ3hMO1FBQ3pFO1FBQ0EwTCxtQkFBbUIsT0FBTzFMO1lBQ3hCLE9BQU9GLElBQUlLLFlBQVksQ0FBQ3lFLGNBQWMsQ0FBQzlFLEtBQUtPLElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDb0wsaUJBQWlCLENBQUMxTDtRQUN6RjtRQUNBMkwsZ0JBQWdCLE9BQU85SyxXQUFXcUM7WUFDaEMsT0FBT3BELElBQUlLLFlBQVksQ0FBQ2dELE9BQU8sQ0FBQ3JELEtBQUs7Z0JBQUVxRCxTQUFTOUMsSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUNxTCxjQUFjLENBQUM5SyxXQUFXcUM7Z0JBQWEvQixTQUFTO1lBQUU7UUFDN0g7UUFDQXlLLGFBQWEsT0FBTy9LLFdBQVdaO1lBQzdCLE9BQU9ILElBQUlLLFlBQVksQ0FBQ2dELE9BQU8sQ0FBQ3JELEtBQUs7Z0JBQUVxRCxTQUFTOUMsSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUNzTCxXQUFXLENBQUMvSyxXQUFXWjtnQkFBV2tCLFNBQVM7WUFBRTtRQUN4SDtRQUNBMEsscUJBQXFCLE9BQU81SSxPQUFPaEQ7WUFDakMsT0FBT0gsSUFBSUssWUFBWSxDQUFDZ0QsT0FBTyxDQUFDckQsS0FBSztnQkFBRXFELFNBQVM5QyxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQ3VMLG1CQUFtQixDQUFDNUksT0FBT2hEO2dCQUFXa0IsU0FBUztZQUFFO1FBQzVIO1FBQ0EySyx3QkFBd0IsT0FBT2pMLFdBQVdxQyxXQUFXakQsU0FBU0M7WUFDNUQsT0FBT0osSUFBSUssWUFBWSxDQUFDSyxPQUFPLENBQUNWLEtBQUs7Z0JBQ25DVSxTQUFTSCxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQ3dMLHNCQUFzQixDQUFDakwsV0FBV3FDLFdBQVdqRCxTQUFTQztZQUMxRjtRQUNGO1FBQ0E2TCwyQkFBMkIsT0FBT2xMLFdBQVdaLFNBQVNDO1lBQ3BELE9BQU9KLElBQUlLLFlBQVksQ0FBQ0ssT0FBTyxDQUFDVixLQUFLO2dCQUFFVSxTQUFTSCxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQ3lMLHlCQUF5QixDQUFDbEwsV0FBV1osU0FBU0M7WUFBUztRQUNsSTtRQUNBOEwsbUJBQW1CLE9BQU9oTTtZQUN4QixPQUFPRixJQUFJSyxZQUFZLENBQUN1QixRQUFRLENBQUM1QixLQUFLTyxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQzBMLGlCQUFpQixDQUFDaE07UUFDbkY7UUFDQWlNLGlDQUFpQyxPQUFPQyxVQUFVak07WUFDaEQsT0FBTyxBQUFDLENBQUEsTUFBTUgsSUFBSVEsSUFBSSxDQUFDMkwsK0JBQStCLENBQUNDLFVBQVVqTSxRQUFPLEVBQUdnRSxHQUFHLENBQUMsQ0FBQ2lDLE1BQzlFcEcsSUFBSUssWUFBWSxDQUFDYSxrQkFBa0IsQ0FBQ2xCLEtBQUtPLElBQUFBLGdCQUFTLEVBQUM2RjtRQUV2RDtRQUNBaUcsZ0NBQWdDLE9BQU9uTSxTQUFTa00sVUFBVWpNO1lBQ3hELE9BQU8sQUFBQyxDQUFBLE1BQU1ILElBQUlRLElBQUksQ0FBQzZMLDhCQUE4QixDQUFDbk0sU0FBU2tNLFVBQVVqTSxRQUFPLEVBQUdnRSxHQUFHLENBQUMsQ0FBQ2lDLE1BQ3RGcEcsSUFBSUssWUFBWSxDQUFDYSxrQkFBa0IsQ0FBQ2xCLEtBQUtPLElBQUFBLGdCQUFTLEVBQUM2RjtRQUV2RDtRQUNBa0csZUFBZSxPQUFPcE0sU0FBU0MsU0FBU0M7WUFDdEMsT0FBT0osSUFBSUssWUFBWSxDQUFDbUYsTUFBTSxDQUFDeEYsS0FBS08sSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUM4TCxhQUFhLENBQUNwTSxTQUFTQyxTQUFTQyxVQUFVRixTQUFTRixJQUFJZ0QsRUFBRTtRQUN4SDtRQUNBdUosWUFBWSxPQUFPck0sU0FBUzJHLFFBQVExRyxTQUFTQztZQUMzQyxPQUFPSixJQUFJSyxZQUFZLENBQUNtRixNQUFNLENBQUN4RixLQUFLTyxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQytMLFVBQVUsQ0FBQ3JNLFNBQVMyRyxRQUFRMUcsU0FBU0MsVUFBVUYsU0FBUzJHO1FBQ3ZIO1FBQ0EyRixXQUFXLE9BQU90TSxTQUFTMkc7WUFDekIsT0FBTzdHLElBQUlLLFlBQVksQ0FBQ21GLE1BQU0sQ0FBQ3hGLEtBQUtPLElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDZ00sU0FBUyxDQUFDdE0sU0FBUzJHLFVBQVUzRyxTQUFTMkc7UUFDckc7UUFDQTRGLGtCQUFrQixPQUFPdk0sU0FBU3NDO1lBQ2hDLE1BQU00RCxNQUFNLE1BQU1wRyxJQUFJUSxJQUFJLENBQUNpTSxnQkFBZ0IsQ0FBQ3ZNLFNBQVNzQztZQUNyRCxPQUFPeEMsSUFBSUssWUFBWSxDQUFDbUYsTUFBTSxDQUFDeEYsS0FBS08sSUFBQUEsZ0JBQVMsRUFBQzZGLE1BQU1sRyxTQUFTRixJQUFJSyxZQUFZLENBQUMrSixTQUFTLENBQUNoRSxJQUFJdkQsSUFBSSxDQUFDRyxFQUFFO1FBQ3JHO1FBQ0EwSixZQUFZLE9BQU94TSxTQUFTQztZQUMxQixPQUFPLEFBQUMsQ0FBQSxNQUFNSCxJQUFJUSxJQUFJLENBQUNrTSxVQUFVLENBQUN4TSxTQUFTQyxRQUFPLEVBQUdnRSxHQUFHLENBQUMsQ0FBQ2lDLE1BQ3hEcEcsSUFBSUssWUFBWSxDQUFDbUYsTUFBTSxDQUFDeEYsS0FBS08sSUFBQUEsZ0JBQVMsRUFBQzZGLE1BQU1sRyxTQUFTRixJQUFJSyxZQUFZLENBQUMrSixTQUFTLENBQUNoRSxJQUFJdkQsSUFBSSxDQUFDRyxFQUFFO1FBRWhHO1FBQ0EySixjQUFjLE9BQU96TSxTQUFTQyxTQUFTQztZQUNyQyxPQUFPLE1BQU1KLElBQUlRLElBQUksQ0FBQ21NLFlBQVksQ0FBQ3pNLFNBQVNDLFNBQVNDO1FBQ3ZEO1FBQ0F3TSxlQUFlLE9BQU8xTSxTQUFTMk0sT0FBTzFNO1lBQ3BDLE9BQU8sQUFBQyxDQUFBLE1BQU1ILElBQUlRLElBQUksQ0FBQ29NLGFBQWEsQ0FBQzFNLFNBQVMyTSxPQUFPMU0sUUFBTyxFQUFHZ0UsR0FBRyxDQUFDLENBQUNpQyxNQUNsRXBHLElBQUlLLFlBQVksQ0FBQ21GLE1BQU0sQ0FBQ3hGLEtBQUtPLElBQUFBLGdCQUFTLEVBQUM2RixNQUFNbEcsU0FBU0YsSUFBSUssWUFBWSxDQUFDK0osU0FBUyxDQUFDaEUsSUFBSXZELElBQUksQ0FBQ0csRUFBRTtRQUVoRztRQUNBOEosZ0JBQWdCLE9BQU81TSxTQUFTQyxTQUFTQztZQUN2QyxNQUFNZ0csTUFBTSxNQUFNcEcsSUFBSVEsSUFBSSxDQUFDc00sY0FBYyxDQUFDNU0sU0FBU0MsU0FBU0M7WUFFNUQsT0FBTztnQkFDTDJNLGFBQWEzRyxJQUFJMkcsV0FBVyxDQUFDNUksR0FBRyxDQUFDLENBQUM2SSxJQUFNaE4sSUFBSUssWUFBWSxDQUFDK0osU0FBUyxDQUFDNEM7Z0JBQ25FQyxhQUFhN0csSUFBSTZHLFdBQVcsQ0FBQzlJLEdBQUcsQ0FBQyxDQUFDNkksSUFBTWhOLElBQUlLLFlBQVksQ0FBQytKLFNBQVMsQ0FBQzRDO1lBQ3JFO1FBQ0Y7UUFDQUUsZ0NBQWdDLE9BQU8vQixlQUFlZ0M7WUFDcEQsT0FBTyxNQUFNbk4sSUFBSVEsSUFBSSxDQUFDME0sOEJBQThCLENBQUMvQixlQUFlZ0M7UUFDdEU7UUFDQUMsK0NBQStDLE9BQU9qQztZQUNwRCxPQUFPLE1BQU1uTCxJQUFJUSxJQUFJLENBQUM0TSw2Q0FBNkMsQ0FBQ2pDO1FBQ3RFO1FBQ0FrQyxpREFBaUQsT0FBT2xDLGVBQWVoTDtZQUNyRSxPQUFPLE1BQU1ILElBQUlRLElBQUksQ0FBQzZNLCtDQUErQyxDQUFDbEMsZUFBZWhMO1FBQ3ZGO1FBQ0FtTixhQUFhLE9BQU9uTjtZQUNsQixPQUFPSCxJQUFJSyxZQUFZLENBQUNrTixLQUFLLENBQUN2TixLQUFLTyxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQzhNLFdBQVcsQ0FBQ25OO1FBQzFFO1FBQ0FxTixVQUFVLE9BQU9DO1lBQ2YsT0FBT3pOLElBQUlLLFlBQVksQ0FBQ2tOLEtBQUssQ0FBQ3ZOLEtBQUtPLElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDZ04sUUFBUSxDQUFDQztRQUN2RTtRQUNBQyxhQUFhLE9BQU9ELFNBQVN0TjtZQUMzQixPQUFPSCxJQUFJSyxZQUFZLENBQUNrTixLQUFLLENBQUN2TixLQUFLTyxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQ2tOLFdBQVcsQ0FBQ0QsU0FBU3ROO1FBQ25GO1FBQ0F3TixrQkFBa0IsT0FBT0YsU0FBUzVHLFFBQVExRztZQUN4QyxPQUFPSCxJQUFJSyxZQUFZLENBQUN1TixXQUFXLENBQUM1TixLQUFLTyxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQ21OLGdCQUFnQixDQUFDRixTQUFTNUcsUUFBUTFHO1FBQ3RHO1FBQ0EwTixvQkFBb0IsT0FBT0osU0FBU2pMLGFBQWFyQztZQUMvQyxPQUFPSCxJQUFJSyxZQUFZLENBQUNrTixLQUFLLENBQUN2TixLQUFLTyxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQ3FOLGtCQUFrQixDQUFDSixTQUFTakwsYUFBYXJDO1FBQ3ZHO1FBQ0EyTixzQkFBc0IsT0FBT0wsU0FBU2pMO1lBQ3BDLE9BQU94QyxJQUFJSyxZQUFZLENBQUNrTixLQUFLLENBQUN2TixLQUFLTyxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQ3NOLG9CQUFvQixDQUFDTCxTQUFTakw7UUFDNUY7UUFDQSx5Q0FBeUM7UUFDekN1TCxhQUFhLE9BQU9oTixXQUFXcUMsV0FBVzBIO1lBQ3hDLE9BQU8sTUFBTTlLLElBQUlRLElBQUksQ0FBQ3VOLFdBQVcsQ0FBQ2hOLFdBQVdxQyxXQUFXMEg7UUFDMUQ7UUFDQWtELGNBQWMsT0FBT2pOLFdBQVdxQyxXQUFXNkssV0FBV0M7WUFDcEQsT0FBTyxNQUFNbE8sSUFBSVEsSUFBSSxDQUFDd04sWUFBWSxDQUFDak4sV0FBV3FDLFdBQVc2SyxXQUFXQztRQUN0RTtRQUNBQyxTQUFTLE9BQU9qTyxTQUFTMkcsUUFBUTVDLFFBQVE3RDtZQUN2QyxPQUFPLE1BQU1KLElBQUlRLElBQUksQ0FBQzJOLE9BQU8sQ0FBQ2pPLFNBQVMyRyxRQUFRNUMsUUFBUTdEO1FBQ3pEO1FBQ0FnTyxpQkFBaUIsT0FBT3JOLFdBQVc4RjtZQUNqQyxPQUFPLE1BQU03RyxJQUFJUSxJQUFJLENBQUM0TixlQUFlLENBQUNyTixXQUFXOEY7UUFDbkQ7UUFDQXdILGdCQUFnQixPQUFPdE4sV0FBVzhGLFFBQVExRztZQUN4QyxPQUFPLE1BQU1ILElBQUlRLElBQUksQ0FBQzZOLGNBQWMsQ0FBQ3ROLFdBQVc4RixRQUFRMUc7UUFDMUQ7UUFDQW1PLGdCQUFnQixPQUFPcE8sU0FBUzJHLFFBQVExRztZQUN0QyxPQUFPLE1BQU1ILElBQUlRLElBQUksQ0FBQzhOLGNBQWMsQ0FBQ3BPLFNBQVMyRyxRQUFRMUc7UUFDeEQ7UUFDQW9PLG1CQUFtQixPQUFPck8sU0FBU3lDLFFBQVF2QztZQUN6QyxPQUFPLE1BQU1KLElBQUlRLElBQUksQ0FBQytOLGlCQUFpQixDQUFDck8sU0FBU3lDLFFBQVF2QztRQUMzRDtRQUNBb08sZUFBZSxPQUFPek4sV0FBV1g7WUFDL0IsT0FBTyxNQUFNSixJQUFJUSxJQUFJLENBQUNnTyxhQUFhLENBQUN6TixXQUFXWDtRQUNqRDtRQUNBcU8saUNBQWlDLE9BQU8xTixXQUFXMk4sYUFBYXRPO1lBQzlELE9BQU8sTUFBTUosSUFBSVEsSUFBSSxDQUFDaU8sK0JBQStCLENBQUMxTixXQUFXMk4sYUFBYXRPO1FBQ2hGO1FBQ0F1TyxhQUFhLE9BQU96TyxTQUFTOEMsSUFBSTVDO1lBQy9CLE9BQU8sTUFBTUosSUFBSVEsSUFBSSxDQUFDbU8sV0FBVyxDQUFDek8sU0FBUzhDLElBQUk1QztRQUNqRDtRQUNBd08sd0JBQXdCLE9BQU81TDtZQUM3QixPQUFPLE1BQU1oRCxJQUFJUSxJQUFJLENBQUNvTyxzQkFBc0IsQ0FBQzVMO1FBQy9DO1FBQ0E2TCx1QkFBdUIsT0FBTzFMLE9BQU9DO1lBQ25DLE9BQU8sTUFBTXBELElBQUlRLElBQUksQ0FBQ3FPLHFCQUFxQixDQUFDMUwsT0FBT0M7UUFDckQ7UUFDQTBMLGdDQUFnQyxPQUFPdk07WUFDckMsT0FBTyxNQUFNdkMsSUFBSVEsSUFBSSxDQUFDc08sOEJBQThCLENBQUN2TTtRQUN2RDtRQUNBd00sYUFBYSxPQUFPN087WUFDbEIsT0FBTyxNQUFNRixJQUFJUSxJQUFJLENBQUN1TyxXQUFXLENBQUM3TztRQUNwQztRQUNBOE8sK0JBQStCLE9BQU96TSxXQUFXckM7WUFDL0MsT0FBTyxNQUFNRixJQUFJUSxJQUFJLENBQUN3Tyw2QkFBNkIsQ0FBQ3pNLFdBQVdyQztRQUNqRTtRQUNBK08sb0JBQW9CLE9BQU8vTyxTQUFTd0QsV0FBV3REO1lBQzdDLE9BQU8sTUFBTUosSUFBSVEsSUFBSSxDQUFDeU8sa0JBQWtCLENBQUMvTyxTQUFTd0QsV0FBV3REO1FBQy9EO1FBQ0E4TyxxQkFBcUIsT0FBT2hQLFNBQVNzQjtZQUNuQyxPQUFPLE1BQU14QixJQUFJUSxJQUFJLENBQUMwTyxtQkFBbUIsQ0FBQ2hQLFNBQVNzQjtRQUNyRDtRQUNBMk4sbUJBQW1CLE9BQU9qUCxTQUFTa1AsZUFBZWhQO1lBQ2hELE9BQU8sTUFBTUosSUFBSVEsSUFBSSxDQUFDMk8saUJBQWlCLENBQUNqUCxTQUFTa1AsZUFBZWhQO1FBQ2xFO1FBQ0FpUCxjQUFjLE9BQU90RyxZQUFZM0k7WUFDL0IsT0FBTyxNQUFNSixJQUFJUSxJQUFJLENBQUM2TyxZQUFZLENBQUN0RyxZQUFZM0k7UUFDakQ7UUFDQWtQLGVBQWUsT0FBT3ZPLFdBQVdxQyxXQUFXaEQ7WUFDMUMsT0FBTyxNQUFNSixJQUFJUSxJQUFJLENBQUM4TyxhQUFhLENBQUN2TyxXQUFXcUMsV0FBV2hEO1FBQzVEO1FBQ0FtUCxnQkFBZ0IsT0FBT3hPLFdBQVd5TyxZQUFZcFA7WUFDNUMsT0FBTyxNQUFNSixJQUFJUSxJQUFJLENBQUMrTyxjQUFjLENBQUN4TyxXQUFXeU8sWUFBWXBQO1FBQzlEO1FBQ0FxUCxtQ0FBbUMsT0FBT3RNO1lBQ3hDLE9BQU8sTUFBTW5ELElBQUlRLElBQUksQ0FBQ2lQLGlDQUFpQyxDQUFDdE07UUFDMUQ7UUFDQXVNLG1CQUFtQixPQUFPM08sV0FBV3FDLFdBQVcwSDtZQUM5QyxPQUFPLE1BQU05SyxJQUFJUSxJQUFJLENBQUNrUCxpQkFBaUIsQ0FBQzNPLFdBQVdxQyxXQUFXMEg7UUFDaEU7UUFDQTZFLG9CQUFvQixPQUFPNU8sV0FBV3FDO1lBQ3BDLE9BQU8sTUFBTXBELElBQUlRLElBQUksQ0FBQ21QLGtCQUFrQixDQUFDNU8sV0FBV3FDO1FBQ3REO1FBQ0F3TSxzQkFBc0IsT0FBTzdPLFdBQVdxQyxXQUFXMEg7WUFDakQsT0FBTyxNQUFNOUssSUFBSVEsSUFBSSxDQUFDb1Asb0JBQW9CLENBQUM3TyxXQUFXcUMsV0FBVzBIO1FBQ25FO1FBQ0ErRSxZQUFZLE9BQU8zUCxTQUFTK0QsUUFBUTdEO1lBQ2xDLE9BQU8sTUFBTUosSUFBSVEsSUFBSSxDQUFDcVAsVUFBVSxDQUFDM1AsU0FBUytELFFBQVE3RDtRQUNwRDtRQUNBMFAsc0JBQXNCLE9BQU81UCxTQUFTbUU7WUFDcEMsT0FBTyxNQUFNckUsSUFBSVEsSUFBSSxDQUFDc1Asb0JBQW9CLENBQUM1UCxTQUFTbUU7UUFDdEQ7UUFDQTBMLHFCQUFxQixPQUFPaFAsV0FBV1g7WUFDckMsT0FBTyxNQUFNSixJQUFJUSxJQUFJLENBQUN1UCxtQkFBbUIsQ0FBQ2hQLFdBQVdYO1FBQ3ZEO1FBQ0E0UCxvQkFBb0IsT0FBT2pQLFdBQVdxQyxXQUFXeUQsUUFBUWlFO1lBQ3ZELE9BQU8sTUFBTTlLLElBQUlRLElBQUksQ0FBQ3dQLGtCQUFrQixDQUFDalAsV0FBV3FDLFdBQVd5RCxRQUFRaUU7UUFDekU7UUFDQW1GLGVBQWUsT0FBT2xNLFdBQVczRDtZQUMvQixPQUFPLE1BQU1KLElBQUlRLElBQUksQ0FBQ3lQLGFBQWEsQ0FBQ2xNLFdBQVczRDtRQUNqRDtRQUNBOFAsc0JBQXNCLE9BQU9uTSxXQUFXWixPQUFPQyxXQUFXakQ7WUFDeEQsT0FBTyxNQUFNSCxJQUFJUSxJQUFJLENBQUMwUCxvQkFBb0IsQ0FBQ25NLFdBQVdaLE9BQU9DLFdBQVdqRDtRQUMxRTtRQUNBZ1Esd0JBQXdCLE9BQU9wTSxXQUFXWjtZQUN4QyxPQUFPLE1BQU1uRCxJQUFJUSxJQUFJLENBQUMyUCxzQkFBc0IsQ0FBQ3BNLFdBQVdaO1FBQzFEO1FBQ0FpTixnQ0FBZ0MsT0FBT3JQLFdBQVdaLFNBQVNDO1lBQ3pELE9BQU8sTUFBTUosSUFBSVEsSUFBSSxDQUFDNFAsOEJBQThCLENBQUNyUCxXQUFXWixTQUFTQztRQUMzRTtRQUNBaVEsc0JBQXNCLE9BQU9uUSxTQUFTb1E7WUFDcEMsT0FBTyxNQUFNdFEsSUFBSVEsSUFBSSxDQUFDNlAsb0JBQW9CLENBQUNuUSxTQUFTb1E7UUFDdEQ7UUFDQUMsbUJBQW1CLE9BQU9yUSxTQUFTc1EsVUFBVXBRO1lBQzNDLE9BQU8sTUFBTUosSUFBSVEsSUFBSSxDQUFDK1AsaUJBQWlCLENBQUNyUSxTQUFTc1EsVUFBVXBRO1FBQzdEO1FBQ0FxUSxtQkFBbUIsT0FBT3ZRLFNBQVNDO1lBQ2pDLE9BQU8sTUFBTUgsSUFBSVEsSUFBSSxDQUFDaVEsaUJBQWlCLENBQUN2USxTQUFTQztRQUNuRDtRQUNBdVEsb0JBQW9CLE9BQU94USxTQUFTQztZQUNsQyxPQUFPLE1BQU1ILElBQUlRLElBQUksQ0FBQ2tRLGtCQUFrQixDQUFDeFEsU0FBU0M7UUFDcEQ7UUFDQXdRLG1DQUFtQyxPQUFPbk8sYUFBYTJJLGVBQWVoTDtZQUNwRSxPQUFPLE1BQU1ILElBQUlRLElBQUksQ0FBQ21RLGlDQUFpQyxDQUFDbk8sYUFBYTJJLGVBQWVoTDtRQUN0RjtRQUNBeVEsWUFBWSxPQUFPN1A7WUFDakIsT0FBTyxNQUFNZixJQUFJUSxJQUFJLENBQUNvUSxVQUFVLENBQUM3UDtRQUNuQztRQUNBOFAsWUFBWSxPQUFPM1E7WUFDakIsT0FBTyxNQUFNRixJQUFJUSxJQUFJLENBQUNxUSxVQUFVLENBQUMzUTtRQUNuQztRQUNBNFEsYUFBYSxPQUFPL1A7WUFDbEIsT0FBTyxNQUFNZixJQUFJUSxJQUFJLENBQUNzUSxXQUFXLENBQUMvUDtRQUNwQztRQUNBZ1EsWUFBWSxPQUFPN1EsU0FBUzJHLFFBQVE1QyxRQUFRN0Q7WUFDMUMsT0FBTyxNQUFNSixJQUFJUSxJQUFJLENBQUN1USxVQUFVLENBQUM3USxTQUFTMkcsUUFBUTVDLFFBQVE3RDtRQUM1RDtRQUNBNFEsb0JBQW9CLE9BQU9qUSxXQUFXOEY7WUFDcEMsT0FBTyxNQUFNN0csSUFBSVEsSUFBSSxDQUFDd1Esa0JBQWtCLENBQUNqUSxXQUFXOEY7UUFDdEQ7UUFDQW9LLG1CQUFtQixPQUFPbFEsV0FBVzhGO1lBQ25DLE9BQU8sTUFBTTdHLElBQUlRLElBQUksQ0FBQ3lRLGlCQUFpQixDQUFDbFEsV0FBVzhGO1FBQ3JEO1FBQ0FxSyx5QkFBeUIsT0FBT0MsZUFBZWhPLE9BQU9oRCxTQUFTaVI7WUFDN0QsTUFBTUMsV0FBVyxNQUFNclIsSUFBSVEsSUFBSSxDQUFDMFEsdUJBQXVCLENBQUNDLGVBQWVoTyxPQUFPaEQsU0FBU2lSO1lBRXZGLElBQUksQ0FBQ0MsVUFBVTtZQUVmLE9BQU9yUixJQUFJSyxZQUFZLENBQUNpUiwyQkFBMkIsQ0FBQ3RSLEtBQUs7Z0JBQUVzUiw2QkFBNkIvUSxJQUFBQSxnQkFBUyxFQUFDOFE7Z0JBQVdoUSxTQUFTO1lBQUU7UUFDMUg7UUFDQWtRLHdCQUF3QixPQUFPeFE7WUFDN0IsT0FBTyxNQUFNZixJQUFJUSxJQUFJLENBQUMrUSxzQkFBc0IsQ0FBQ3hRO1FBQy9DO1FBQ0F5USxXQUFXLE9BQU90UixTQUFTMkcsUUFBUTFHLFNBQVNDO1lBQzFDLE9BQU8sTUFBTUosSUFBSVEsSUFBSSxDQUFDZ1IsU0FBUyxDQUFDdFIsU0FBUzJHLFFBQVExRyxTQUFTQztRQUM1RDtRQUVBcVIsWUFBWSxPQUFPdlIsU0FBUzJHLFFBQVF6RztZQUNsQyxPQUFPLE1BQU1KLElBQUlRLElBQUksQ0FBQ2lSLFVBQVUsQ0FBQ3ZSLFNBQVMyRyxRQUFRekc7UUFDcEQ7UUFDQXNSLFlBQVksT0FBTzNRLFdBQVdxQyxXQUFXaEQ7WUFDdkMsT0FBTyxNQUFNSixJQUFJUSxJQUFJLENBQUNrUixVQUFVLENBQUMzUSxXQUFXcUMsV0FBV2hEO1FBQ3pEO1FBQ0F1UixhQUFhLE9BQU96UixTQUFTMkcsUUFBUXpHO1lBQ25DLE9BQU8sTUFBTUosSUFBSVEsSUFBSSxDQUFDbVIsV0FBVyxDQUFDelIsU0FBUzJHLFFBQVF6RztRQUNyRDtRQUNBd1IsY0FBYyxPQUFPN1EsV0FBV3FDLFdBQVdoRDtZQUN6QyxPQUFPLE1BQU1KLElBQUlRLElBQUksQ0FBQ29SLFlBQVksQ0FBQzdRLFdBQVdxQyxXQUFXaEQ7UUFDM0Q7UUFDQXlSLG9CQUFvQixPQUFPM1I7WUFDekIsT0FBT0YsSUFBSUssWUFBWSxDQUFDeVIsZUFBZSxDQUFDOVIsS0FBS08sSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUNxUixrQkFBa0IsQ0FBQzNSO1FBQzNGO1FBQ0E2UixxQkFBcUIsT0FBTzdSLFNBQVNDLFNBQVNDO1lBQzVDLE9BQU9KLElBQUlLLFlBQVksQ0FBQ3lSLGVBQWUsQ0FBQzlSLEtBQUtPLElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDdVIsbUJBQW1CLENBQUM3UixTQUFTQyxTQUFTQztRQUM5RztRQUNBNFIsa0JBQWtCLE9BQU83RyxlQUFlaEw7WUFDdEMsT0FBTyxBQUFDLENBQUEsTUFBTUgsSUFBSVEsSUFBSSxDQUFDd1IsZ0JBQWdCLENBQUM3RyxlQUFlaEwsUUFBTyxFQUFHZ0UsR0FBRyxDQUFDLENBQUM4TixjQUFnQmpTLElBQUlLLFlBQVksQ0FBQzRSLFdBQVcsQ0FBQ2pTLEtBQUtPLElBQUFBLGdCQUFTLEVBQUMwUjtRQUNwSTtRQUNBQyxnQkFBZ0IsT0FBTy9HLGVBQWVnSDtZQUNwQyxPQUFPblMsSUFBSUssWUFBWSxDQUFDNFIsV0FBVyxDQUFDalMsS0FBS08sSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUMwUixjQUFjLENBQUMvRyxlQUFlZ0g7UUFDbEc7UUFDQUMsdUJBQXVCLE9BQU9qSCxlQUFldEY7WUFDM0MsNEZBQTRGO1lBQzVGLE9BQU83RixJQUFJSyxZQUFZLENBQUM0UixXQUFXLENBQUNqUyxLQUFLTyxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQzRSLHFCQUFxQixDQUFDakgsZUFBZXRGO1FBR3pHO1FBQ0F3TSx1QkFBdUIsT0FBT2xILGVBQWVnSDtZQUMzQyxNQUFNblMsSUFBSVEsSUFBSSxDQUFDNlIscUJBQXFCLENBQUNsSCxlQUFlZ0g7UUFDdEQ7UUFDQUcsVUFBVSxPQUFPbkg7WUFDZixPQUFPLEFBQUMsQ0FBQSxNQUFNbkwsSUFBSVEsSUFBSSxDQUFDOFIsUUFBUSxDQUFDbkgsY0FBYSxFQUFHaEgsR0FBRyxDQUFDLENBQUNvTyxNQUFRdlMsSUFBSUssWUFBWSxDQUFDa1MsR0FBRyxDQUFDdlMsS0FBS08sSUFBQUEsZ0JBQVMsRUFBQ2dTO1FBQ25HO1FBQ0FDLGlCQUFpQixPQUFPQyxPQUFPQztZQUM3QixPQUFPMVMsSUFBSUssWUFBWSxDQUFDc1MsWUFBWSxDQUFDM1MsS0FBS08sSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUNnUyxlQUFlLENBQUNDLE9BQU9DO1FBQzVGO1FBQ0FFLG1CQUFtQixPQUFPSCxPQUFPdFM7WUFDL0IsT0FBTyxBQUFDLENBQUEsTUFBTUgsSUFBSVEsSUFBSSxDQUFDb1MsaUJBQWlCLENBQUNILE9BQU90UyxRQUFPLEVBQUdnRSxHQUFHLENBQUMsQ0FBQ3dPLGVBQWlCM1MsSUFBSUssWUFBWSxDQUFDc1MsWUFBWSxDQUFDM1MsS0FBS08sSUFBQUEsZ0JBQVMsRUFBQ29TO1FBQy9IO1FBQ0FFLHFCQUFxQixPQUFPOVIsV0FBV1o7WUFDckMsTUFBTUgsSUFBSVEsSUFBSSxDQUFDcVMsbUJBQW1CLENBQUM5UixXQUFXWjtRQUNoRDtRQUNBMlMsNkJBQTZCO1lBQzNCLE9BQU8sQUFBQyxDQUFBLE1BQU05UyxJQUFJUSxJQUFJLENBQUNzUywyQkFBMkIsRUFBQyxFQUFHM08sR0FBRyxDQUFDLENBQUM0TyxRQUFVL1MsSUFBSUssWUFBWSxDQUFDMlMsZUFBZSxDQUFDaFQsS0FBS08sSUFBQUEsZ0JBQVMsRUFBQ3dTO1FBQ3ZIO1FBQ0FFLDJCQUEyQixPQUFPL1M7WUFDaEMsTUFBTWtHLE1BQU0sTUFBTXBHLElBQUlRLElBQUksQ0FBQ3lTLHlCQUF5QixDQUFDL1M7WUFFckQsT0FBTztnQkFDTHdILE9BQU90QixJQUFJc0IsS0FBSyxDQUFDdkQsR0FBRyxDQUFDLENBQUM0TyxRQUFVL1MsSUFBSUssWUFBWSxDQUFDMlMsZUFBZSxDQUFDaFQsS0FBS08sSUFBQUEsZ0JBQVMsRUFBQ3dTO1lBQ2xGO1FBQ0Y7UUFDQUcseUJBQXlCLE9BQU9oVCxTQUFTaVQ7WUFDdkMsT0FBT25ULElBQUlLLFlBQVksQ0FBQzJTLGVBQWUsQ0FBQ2hULEtBQUtPLElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDMFMsdUJBQXVCLENBQUNoVCxTQUFTaVQ7UUFDekc7UUFDQUMsNEJBQTRCLE9BQU9sVCxTQUFTQyxTQUFTQztZQUNuRCxPQUFPSixJQUFJSyxZQUFZLENBQUMyUyxlQUFlLENBQUNoVCxLQUFLTyxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQzRTLDBCQUEwQixDQUFDbFQsU0FBU0MsU0FBU0M7UUFDckg7UUFDQWlULDRCQUE0QixPQUFPblQsU0FBU2lULFNBQVNoVCxTQUFTQztZQUM1RCxPQUFPSixJQUFJSyxZQUFZLENBQUMyUyxlQUFlLENBQUNoVCxLQUFLTyxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQzZTLDBCQUEwQixDQUFDblQsU0FBU2lULFNBQVNoVCxTQUFTQztRQUM5SDtRQUNBa1QsNEJBQTRCLE9BQU9wVCxTQUFTaVQsU0FBUy9TO1lBQ25ELE1BQU1KLElBQUlRLElBQUksQ0FBQzhTLDBCQUEwQixDQUFDcFQsU0FBU2lULFNBQVMvUztRQUM5RDtRQUNBbVQsYUFBYSxPQUFPOUY7WUFDbEIsTUFBTXpOLElBQUlRLElBQUksQ0FBQytTLFdBQVcsQ0FBQzlGO1FBQzdCO1FBQ0ErRix1QkFBdUIsT0FBTy9GLFNBQVM1RztZQUNyQyxNQUFNN0csSUFBSVEsSUFBSSxDQUFDZ1QscUJBQXFCLENBQUMvRixTQUFTNUc7UUFDaEQ7UUFDQTRNLFlBQVksT0FBT2hHLFNBQVNqTDtZQUMxQixNQUFNeEMsSUFBSVEsSUFBSSxDQUFDaVQsVUFBVSxDQUFDaEcsU0FBU2pMO1FBQ3JDO0lBQ0Y7QUFDRiJ9