@copilotkitnext/angular 0.0.4 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. package/dist/components/chat/copilot-chat-assistant-message.component.d.ts +1 -0
  2. package/dist/core/copilotkit.providers.d.ts +1 -1
  3. package/dist/core/copilotkit.service.d.ts +5 -5
  4. package/dist/core/copilotkit.types.d.ts +8 -10
  5. package/dist/directives/copilotkit-frontend-tool.directive.d.ts +1 -1
  6. package/dist/esm2022/components/chat/copilot-chat-assistant-message.component.mjs +11 -5
  7. package/dist/esm2022/components/chat/copilot-chat-input.component.mjs +2 -2
  8. package/dist/esm2022/components/chat/copilot-chat-textarea.component.mjs +2 -2
  9. package/dist/esm2022/components/chat/copilot-chat-tool-calls-view.component.mjs +14 -8
  10. package/dist/esm2022/components/chat/copilot-chat.component.mjs +10 -3
  11. package/dist/esm2022/components/copilotkit-tool-render.component.mjs +7 -10
  12. package/dist/esm2022/core/copilotkit.providers.mjs +1 -1
  13. package/dist/esm2022/core/copilotkit.service.mjs +6 -22
  14. package/dist/esm2022/core/copilotkit.types.mjs +2 -1
  15. package/dist/esm2022/directives/copilotkit-frontend-tool.directive.mjs +1 -3
  16. package/dist/esm2022/directives/copilotkit-human-in-the-loop.directive.mjs +1 -2
  17. package/dist/esm2022/lib/slots/copilot-slot.component.mjs +15 -5
  18. package/dist/esm2022/lib/slots/slot.utils.mjs +14 -5
  19. package/dist/esm2022/utils/frontend-tool.utils.mjs +1 -5
  20. package/dist/esm2022/utils/human-in-the-loop.utils.mjs +4 -7
  21. package/dist/fesm2022/copilotkitnext-angular.mjs +76 -65
  22. package/dist/fesm2022/copilotkitnext-angular.mjs.map +1 -1
  23. package/dist/utils/frontend-tool.utils.d.ts +1 -1
  24. package/package.json +3 -3
@@ -1,6 +1,7 @@
1
1
  import { InjectionToken } from "@angular/core";
2
2
  // Re-export ToolCallStatus from core
3
3
  export { ToolCallStatus } from "@copilotkitnext/core";
4
+ 1;
4
5
  // Injection tokens for dependency injection
5
6
  export const COPILOTKIT_RUNTIME_URL = new InjectionToken("COPILOTKIT_RUNTIME_URL");
6
7
  export const COPILOTKIT_HEADERS = new InjectionToken("COPILOTKIT_HEADERS", { factory: () => ({}) });
@@ -9,4 +10,4 @@ export const COPILOTKIT_AGENTS = new InjectionToken("COPILOTKIT_AGENTS", { facto
9
10
  export const COPILOTKIT_RENDER_TOOL_CALLS = new InjectionToken("COPILOTKIT_RENDER_TOOL_CALLS", { factory: () => [] });
10
11
  export const COPILOTKIT_FRONTEND_TOOLS = new InjectionToken("COPILOTKIT_FRONTEND_TOOLS", { factory: () => [] });
11
12
  export const COPILOTKIT_HUMAN_IN_THE_LOOP = new InjectionToken("COPILOTKIT_HUMAN_IN_THE_LOOP", { factory: () => [] });
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdGtpdC50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL2NvcGlsb3RraXQudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBNkIsTUFBTSxlQUFlLENBQUM7QUFrQjFFLHFDQUFxQztBQUNyQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUF3RHRELDRDQUE0QztBQUM1QyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLGNBQWMsQ0FDdEQsd0JBQXdCLENBQ3pCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGNBQWMsQ0FDbEQsb0JBQW9CLEVBQ3BCLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FDeEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUVyRCx1QkFBdUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUVwRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FFakQsbUJBQW1CLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFFaEQsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsSUFBSSxjQUFjLENBRTVELDhCQUE4QixFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFFekQsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxjQUFjLENBRXpELDJCQUEyQixFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFFdEQsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsSUFBSSxjQUFjLENBRTVELDhCQUE4QixFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgVGVtcGxhdGVSZWYsIFR5cGUsIFNpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IENvcGlsb3RLaXRDb3JlLCBUb29sQ2FsbFN0YXR1cyB9IGZyb20gXCJAY29waWxvdGtpdG5leHQvY29yZVwiO1xuaW1wb3J0IHsgQWJzdHJhY3RBZ2VudCB9IGZyb20gXCJAYWctdWkvY2xpZW50XCI7XG5pbXBvcnQgdHlwZSB7IHogfSBmcm9tIFwiem9kXCI7XG5pbXBvcnQgdHlwZSB7IEFuZ3VsYXJGcm9udGVuZFRvb2wgfSBmcm9tIFwiLi4vdHlwZXMvZnJvbnRlbmQtdG9vbFwiO1xuaW1wb3J0IHR5cGUgeyBBbmd1bGFySHVtYW5JblRoZUxvb3AgfSBmcm9tIFwiLi4vdHlwZXMvaHVtYW4taW4tdGhlLWxvb3BcIjtcblxuLy8gUmUtZXhwb3J0IGNvbW1vbmx5IHVzZWQgdHlwZXNcbmV4cG9ydCB0eXBlIHsgQ29udGV4dCB9IGZyb20gXCJAYWctdWkvY2xpZW50XCI7XG5cbi8vIFJlLWV4cG9ydCB0b29sIHR5cGVzIGZyb20gdGhlaXIgb3duIGZpbGVzXG5leHBvcnQgdHlwZSB7IEFuZ3VsYXJGcm9udGVuZFRvb2wgfSBmcm9tIFwiLi4vdHlwZXMvZnJvbnRlbmQtdG9vbFwiO1xuZXhwb3J0IHR5cGUge1xuICBBbmd1bGFySHVtYW5JblRoZUxvb3AsXG4gIEh1bWFuSW5UaGVMb29wUHJvcHMsXG59IGZyb20gXCIuLi90eXBlcy9odW1hbi1pbi10aGUtbG9vcFwiO1xuXG4vLyBSZS1leHBvcnQgVG9vbENhbGxTdGF0dXMgZnJvbSBjb3JlXG5leHBvcnQgeyBUb29sQ2FsbFN0YXR1cyB9IGZyb20gXCJAY29waWxvdGtpdG5leHQvY29yZVwiO1xuXG4vLyBQcm9wcyBwYXNzZWQgdG8gdG9vbCByZW5kZXIgY29tcG9uZW50cyAtIGRpc2NyaW1pbmF0ZWQgdW5pb24gbWF0Y2hpbmcgUmVhY3RcbmV4cG9ydCB0eXBlIFRvb2xDYWxsUHJvcHM8VCA9IHVua25vd24+ID1cbiAgfCB7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgICAgYXJnczogUGFydGlhbDxUPjtcbiAgICAgIHN0YXR1czogVG9vbENhbGxTdGF0dXMuSW5Qcm9ncmVzcztcbiAgICAgIHJlc3VsdDogdW5kZWZpbmVkO1xuICAgIH1cbiAgfCB7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgICAgYXJnczogVDtcbiAgICAgIHN0YXR1czogVG9vbENhbGxTdGF0dXMuRXhlY3V0aW5nO1xuICAgICAgcmVzdWx0OiB1bmRlZmluZWQ7XG4gICAgfVxuICB8IHtcbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgICBhcmdzOiBUO1xuICAgICAgc3RhdHVzOiBUb29sQ2FsbFN0YXR1cy5Db21wbGV0ZTtcbiAgICAgIHJlc3VsdDogc3RyaW5nO1xuICAgIH07XG5cbi8vIEFuZ3VsYXItc3BlY2lmaWMgdG9vbCBjYWxsIHJlbmRlciBkZWZpbml0aW9uIHdpdGggcHJvcGVyIHR5cGluZ1xuZXhwb3J0IGludGVyZmFjZSBBbmd1bGFyVG9vbENhbGxSZW5kZXI8VCA9IHVua25vd24+IHtcbiAgbmFtZTogc3RyaW5nO1xuICBhcmdzOiB6LlpvZFNjaGVtYTxUPjtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGFnZW50IElEIHRvIGNvbnN0cmFpbiB0aGlzIHRvb2wgcmVuZGVyIHRvIGEgc3BlY2lmaWMgYWdlbnQuXG4gICAqIElmIHNwZWNpZmllZCwgdGhpcyByZW5kZXIgd2lsbCBvbmx5IGJlIHVzZWQgZm9yIHRoZSBzcGVjaWZpZWQgYWdlbnQuXG4gICAqL1xuICBhZ2VudElkPzogc3RyaW5nO1xuICByZW5kZXI6IFR5cGU8YW55PiB8IFRlbXBsYXRlUmVmPFRvb2xDYWxsUHJvcHM8VD4+O1xufVxuXG4vLyBUeXBlIGFsaWFzIGZvciBjb252ZW5pZW5jZVxuZXhwb3J0IHR5cGUgVG9vbENhbGxSZW5kZXI8VCA9IHVua25vd24+ID0gQW5ndWxhclRvb2xDYWxsUmVuZGVyPFQ+O1xuXG5leHBvcnQgaW50ZXJmYWNlIENvcGlsb3RLaXRDb250ZXh0VmFsdWUge1xuICBjb3BpbG90a2l0OiBDb3BpbG90S2l0Q29yZTtcbiAgcmVuZGVyVG9vbENhbGxzOiBUb29sQ2FsbFJlbmRlcjx1bmtub3duPltdO1xuICBjdXJyZW50UmVuZGVyVG9vbENhbGxzOiBUb29sQ2FsbFJlbmRlcjx1bmtub3duPltdO1xuICBzZXRDdXJyZW50UmVuZGVyVG9vbENhbGxzOiAodjogVG9vbENhbGxSZW5kZXI8dW5rbm93bj5bXSkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb3BpbG90S2l0UnVudGltZUlucHV0cyB7XG4gIHJ1bnRpbWVVcmw/OiBzdHJpbmc7XG4gIGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBwcm9wZXJ0aWVzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGFnZW50cz86IFJlY29yZDxzdHJpbmcsIEFic3RyYWN0QWdlbnQ+O1xuICByZW5kZXJUb29sQ2FsbHM/OiBUb29sQ2FsbFJlbmRlcjx1bmtub3duPltdO1xufVxuXG4vLyBJbmplY3Rpb24gdG9rZW5zIGZvciBkZXBlbmRlbmN5IGluamVjdGlvblxuZXhwb3J0IGNvbnN0IENPUElMT1RLSVRfUlVOVElNRV9VUkwgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nIHwgdW5kZWZpbmVkPihcbiAgXCJDT1BJTE9US0lUX1JVTlRJTUVfVVJMXCJcbik7XG5cbmV4cG9ydCBjb25zdCBDT1BJTE9US0lUX0hFQURFUlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48UmVjb3JkPHN0cmluZywgc3RyaW5nPj4oXG4gIFwiQ09QSUxPVEtJVF9IRUFERVJTXCIsXG4gIHsgZmFjdG9yeTogKCkgPT4gKHt9KSB9XG4pO1xuXG5leHBvcnQgY29uc3QgQ09QSUxPVEtJVF9QUk9QRVJUSUVTID0gbmV3IEluamVjdGlvblRva2VuPFxuICBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuPihcIkNPUElMT1RLSVRfUFJPUEVSVElFU1wiLCB7IGZhY3Rvcnk6ICgpID0+ICh7fSkgfSk7XG5cbmV4cG9ydCBjb25zdCBDT1BJTE9US0lUX0FHRU5UUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxcbiAgUmVjb3JkPHN0cmluZywgQWJzdHJhY3RBZ2VudD5cbj4oXCJDT1BJTE9US0lUX0FHRU5UU1wiLCB7IGZhY3Rvcnk6ICgpID0+ICh7fSkgfSk7XG5cbmV4cG9ydCBjb25zdCBDT1BJTE9US0lUX1JFTkRFUl9UT09MX0NBTExTID0gbmV3IEluamVjdGlvblRva2VuPFxuICBUb29sQ2FsbFJlbmRlcjx1bmtub3duPltdXG4+KFwiQ09QSUxPVEtJVF9SRU5ERVJfVE9PTF9DQUxMU1wiLCB7IGZhY3Rvcnk6ICgpID0+IFtdIH0pO1xuXG5leHBvcnQgY29uc3QgQ09QSUxPVEtJVF9GUk9OVEVORF9UT09MUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxcbiAgQW5ndWxhckZyb250ZW5kVG9vbDxhbnk+W11cbj4oXCJDT1BJTE9US0lUX0ZST05URU5EX1RPT0xTXCIsIHsgZmFjdG9yeTogKCkgPT4gW10gfSk7XG5cbmV4cG9ydCBjb25zdCBDT1BJTE9US0lUX0hVTUFOX0lOX1RIRV9MT09QID0gbmV3IEluamVjdGlvblRva2VuPFxuICBBbmd1bGFySHVtYW5JblRoZUxvb3A8YW55PltdXG4+KFwiQ09QSUxPVEtJVF9IVU1BTl9JTl9USEVfTE9PUFwiLCB7IGZhY3Rvcnk6ICgpID0+IFtdIH0pO1xuXG4vLyBBZ2VudC1yZWxhdGVkIHR5cGVzXG5pbXBvcnQgdHlwZSB7IE1lc3NhZ2UgfSBmcm9tIFwiQGFnLXVpL2NsaWVudFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFnZW50V2F0Y2hSZXN1bHQge1xuICBhZ2VudDogU2lnbmFsPEFic3RyYWN0QWdlbnQgfCB1bmRlZmluZWQ+O1xuICBtZXNzYWdlczogU2lnbmFsPE1lc3NhZ2VbXT47XG4gIGlzUnVubmluZzogU2lnbmFsPGJvb2xlYW4+O1xuICBhZ2VudCQ6IE9ic2VydmFibGU8QWJzdHJhY3RBZ2VudCB8IHVuZGVmaW5lZD47XG4gIG1lc3NhZ2VzJDogT2JzZXJ2YWJsZTxNZXNzYWdlW10+O1xuICBpc1J1bm5pbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICB1bnN1YnNjcmliZTogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZ2VudFN1YnNjcmlwdGlvbkNhbGxiYWNrcyB7XG4gIG9uTWVzc2FnZXNDaGFuZ2VkPzogKHBhcmFtczogYW55KSA9PiB2b2lkO1xuICBvblN0YXRlQ2hhbmdlZD86IChwYXJhbXM6IGFueSkgPT4gdm9pZDtcbiAgb25SdW5Jbml0aWFsaXplZD86IChwYXJhbXM6IGFueSkgPT4gdm9pZDtcbiAgb25SdW5GaW5hbGl6ZWQ/OiAocGFyYW1zOiBhbnkpID0+IHZvaWQ7XG4gIG9uUnVuRmFpbGVkPzogKHBhcmFtczogYW55KSA9PiB2b2lkO1xufVxuXG4vLyBIdW1hbi1pbi10aGUtbG9vcCBzdGF0ZSByZXN1bHRcbmV4cG9ydCBpbnRlcmZhY2UgSHVtYW5JblRoZUxvb3BTdGF0ZSB7XG4gIHN0YXR1czogU2lnbmFsPFRvb2xDYWxsU3RhdHVzPjtcbiAgdG9vbElkOiBzdHJpbmc7XG4gIGRlc3Ryb3k6ICgpID0+IHZvaWQ7XG59XG4iXX0=
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdGtpdC50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL2NvcGlsb3RraXQudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBNkIsTUFBTSxlQUFlLENBQUM7QUFpQjFFLHFDQUFxQztBQUNyQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUF5QnRELENBQUMsQ0FBQztBQStCRiw0Q0FBNEM7QUFDNUMsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxjQUFjLENBQ3RELHdCQUF3QixDQUN6QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQ2xELG9CQUFvQixFQUNwQixFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQ3hCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FFckQsdUJBQXVCLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFFcEQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBRWpELG1CQUFtQixFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBRWhELE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLElBQUksY0FBYyxDQUU1RCw4QkFBOEIsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRXpELE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLElBQUksY0FBYyxDQUV6RCwyQkFBMkIsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRXRELE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLElBQUksY0FBYyxDQUU1RCw4QkFBOEIsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFRlbXBsYXRlUmVmLCBUeXBlLCBTaWduYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBDb3BpbG90S2l0Q29yZSwgVG9vbENhbGxTdGF0dXMgfSBmcm9tIFwiQGNvcGlsb3RraXRuZXh0L2NvcmVcIjtcbmltcG9ydCB7IEFic3RyYWN0QWdlbnQgfSBmcm9tIFwiQGFnLXVpL2NsaWVudFwiO1xuaW1wb3J0IHR5cGUgeyBBbmd1bGFyRnJvbnRlbmRUb29sIH0gZnJvbSBcIi4uL3R5cGVzL2Zyb250ZW5kLXRvb2xcIjtcbmltcG9ydCB0eXBlIHsgQW5ndWxhckh1bWFuSW5UaGVMb29wIH0gZnJvbSBcIi4uL3R5cGVzL2h1bWFuLWluLXRoZS1sb29wXCI7XG5cbi8vIFJlLWV4cG9ydCBjb21tb25seSB1c2VkIHR5cGVzXG5leHBvcnQgdHlwZSB7IENvbnRleHQgfSBmcm9tIFwiQGFnLXVpL2NsaWVudFwiO1xuXG4vLyBSZS1leHBvcnQgdG9vbCB0eXBlcyBmcm9tIHRoZWlyIG93biBmaWxlc1xuZXhwb3J0IHR5cGUgeyBBbmd1bGFyRnJvbnRlbmRUb29sIH0gZnJvbSBcIi4uL3R5cGVzL2Zyb250ZW5kLXRvb2xcIjtcbmV4cG9ydCB0eXBlIHtcbiAgQW5ndWxhckh1bWFuSW5UaGVMb29wLFxuICBIdW1hbkluVGhlTG9vcFByb3BzLFxufSBmcm9tIFwiLi4vdHlwZXMvaHVtYW4taW4tdGhlLWxvb3BcIjtcblxuLy8gUmUtZXhwb3J0IFRvb2xDYWxsU3RhdHVzIGZyb20gY29yZVxuZXhwb3J0IHsgVG9vbENhbGxTdGF0dXMgfSBmcm9tIFwiQGNvcGlsb3RraXRuZXh0L2NvcmVcIjtcblxuLy8gUHJvcHMgcGFzc2VkIHRvIHRvb2wgcmVuZGVyIGNvbXBvbmVudHMgLSBkaXNjcmltaW5hdGVkIHVuaW9uIG1hdGNoaW5nIFJlYWN0XG5leHBvcnQgdHlwZSBUb29sQ2FsbFByb3BzPFQgPSB1bmtub3duPiA9XG4gIHwge1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICAgIGFyZ3M6IFBhcnRpYWw8VD47XG4gICAgICBzdGF0dXM6IFRvb2xDYWxsU3RhdHVzLkluUHJvZ3Jlc3M7XG4gICAgICByZXN1bHQ6IHVuZGVmaW5lZDtcbiAgICB9XG4gIHwge1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICAgIGFyZ3M6IFQ7XG4gICAgICBzdGF0dXM6IFRvb2xDYWxsU3RhdHVzLkV4ZWN1dGluZztcbiAgICAgIHJlc3VsdDogdW5kZWZpbmVkO1xuICAgIH1cbiAgfCB7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgICAgYXJnczogVDtcbiAgICAgIHN0YXR1czogVG9vbENhbGxTdGF0dXMuQ29tcGxldGU7XG4gICAgICByZXN1bHQ6IHN0cmluZztcbiAgICB9O1xuMTtcblxuLy8gQW5ndWxhci1zcGVjaWZpYyB0b29sIGNhbGwgcmVuZGVyIGRlZmluaXRpb24gd2l0aCBwcm9wZXIgdHlwaW5nXG5leHBvcnQgaW50ZXJmYWNlIEFuZ3VsYXJUb29sQ2FsbFJlbmRlciB7XG4gIG5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGFnZW50IElEIHRvIGNvbnN0cmFpbiB0aGlzIHRvb2wgcmVuZGVyIHRvIGEgc3BlY2lmaWMgYWdlbnQuXG4gICAqIElmIHNwZWNpZmllZCwgdGhpcyByZW5kZXIgd2lsbCBvbmx5IGJlIHVzZWQgZm9yIHRoZSBzcGVjaWZpZWQgYWdlbnQuXG4gICAqL1xuICBhZ2VudElkPzogc3RyaW5nO1xuICByZW5kZXI6IFR5cGU8YW55PiB8IFRlbXBsYXRlUmVmPFRvb2xDYWxsUHJvcHM8YW55Pj47XG59XG5cbi8vIFR5cGUgYWxpYXMgZm9yIGNvbnZlbmllbmNlXG5leHBvcnQgdHlwZSBUb29sQ2FsbFJlbmRlciA9IEFuZ3VsYXJUb29sQ2FsbFJlbmRlcjtcblxuZXhwb3J0IGludGVyZmFjZSBDb3BpbG90S2l0Q29udGV4dFZhbHVlIHtcbiAgY29waWxvdGtpdDogQ29waWxvdEtpdENvcmU7XG4gIHJlbmRlclRvb2xDYWxsczogVG9vbENhbGxSZW5kZXJbXTtcbiAgY3VycmVudFJlbmRlclRvb2xDYWxsczogVG9vbENhbGxSZW5kZXJbXTtcbiAgc2V0Q3VycmVudFJlbmRlclRvb2xDYWxsczogKHY6IFRvb2xDYWxsUmVuZGVyW10pID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29waWxvdEtpdFJ1bnRpbWVJbnB1dHMge1xuICBydW50aW1lVXJsPzogc3RyaW5nO1xuICBoZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgcHJvcGVydGllcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBhZ2VudHM/OiBSZWNvcmQ8c3RyaW5nLCBBYnN0cmFjdEFnZW50PjtcbiAgcmVuZGVyVG9vbENhbGxzPzogVG9vbENhbGxSZW5kZXJbXTtcbn1cblxuLy8gSW5qZWN0aW9uIHRva2VucyBmb3IgZGVwZW5kZW5jeSBpbmplY3Rpb25cbmV4cG9ydCBjb25zdCBDT1BJTE9US0lUX1JVTlRJTUVfVVJMID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZyB8IHVuZGVmaW5lZD4oXG4gIFwiQ09QSUxPVEtJVF9SVU5USU1FX1VSTFwiXG4pO1xuXG5leHBvcnQgY29uc3QgQ09QSUxPVEtJVF9IRUFERVJTID0gbmV3IEluamVjdGlvblRva2VuPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KFxuICBcIkNPUElMT1RLSVRfSEVBREVSU1wiLFxuICB7IGZhY3Rvcnk6ICgpID0+ICh7fSkgfVxuKTtcblxuZXhwb3J0IGNvbnN0IENPUElMT1RLSVRfUFJPUEVSVElFUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxcbiAgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbj4oXCJDT1BJTE9US0lUX1BST1BFUlRJRVNcIiwgeyBmYWN0b3J5OiAoKSA9PiAoe30pIH0pO1xuXG5leHBvcnQgY29uc3QgQ09QSUxPVEtJVF9BR0VOVFMgPSBuZXcgSW5qZWN0aW9uVG9rZW48XG4gIFJlY29yZDxzdHJpbmcsIEFic3RyYWN0QWdlbnQ+XG4+KFwiQ09QSUxPVEtJVF9BR0VOVFNcIiwgeyBmYWN0b3J5OiAoKSA9PiAoe30pIH0pO1xuXG5leHBvcnQgY29uc3QgQ09QSUxPVEtJVF9SRU5ERVJfVE9PTF9DQUxMUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxcbiAgVG9vbENhbGxSZW5kZXJbXVxuPihcIkNPUElMT1RLSVRfUkVOREVSX1RPT0xfQ0FMTFNcIiwgeyBmYWN0b3J5OiAoKSA9PiBbXSB9KTtcblxuZXhwb3J0IGNvbnN0IENPUElMT1RLSVRfRlJPTlRFTkRfVE9PTFMgPSBuZXcgSW5qZWN0aW9uVG9rZW48XG4gIEFuZ3VsYXJGcm9udGVuZFRvb2w8YW55PltdXG4+KFwiQ09QSUxPVEtJVF9GUk9OVEVORF9UT09MU1wiLCB7IGZhY3Rvcnk6ICgpID0+IFtdIH0pO1xuXG5leHBvcnQgY29uc3QgQ09QSUxPVEtJVF9IVU1BTl9JTl9USEVfTE9PUCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxcbiAgQW5ndWxhckh1bWFuSW5UaGVMb29wPGFueT5bXVxuPihcIkNPUElMT1RLSVRfSFVNQU5fSU5fVEhFX0xPT1BcIiwgeyBmYWN0b3J5OiAoKSA9PiBbXSB9KTtcblxuLy8gQWdlbnQtcmVsYXRlZCB0eXBlc1xuaW1wb3J0IHR5cGUgeyBNZXNzYWdlIH0gZnJvbSBcIkBhZy11aS9jbGllbnRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBBZ2VudFdhdGNoUmVzdWx0IHtcbiAgYWdlbnQ6IFNpZ25hbDxBYnN0cmFjdEFnZW50IHwgdW5kZWZpbmVkPjtcbiAgbWVzc2FnZXM6IFNpZ25hbDxNZXNzYWdlW10+O1xuICBpc1J1bm5pbmc6IFNpZ25hbDxib29sZWFuPjtcbiAgYWdlbnQkOiBPYnNlcnZhYmxlPEFic3RyYWN0QWdlbnQgfCB1bmRlZmluZWQ+O1xuICBtZXNzYWdlcyQ6IE9ic2VydmFibGU8TWVzc2FnZVtdPjtcbiAgaXNSdW5uaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgdW5zdWJzY3JpYmU6ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWdlbnRTdWJzY3JpcHRpb25DYWxsYmFja3Mge1xuICBvbk1lc3NhZ2VzQ2hhbmdlZD86IChwYXJhbXM6IGFueSkgPT4gdm9pZDtcbiAgb25TdGF0ZUNoYW5nZWQ/OiAocGFyYW1zOiBhbnkpID0+IHZvaWQ7XG4gIG9uUnVuSW5pdGlhbGl6ZWQ/OiAocGFyYW1zOiBhbnkpID0+IHZvaWQ7XG4gIG9uUnVuRmluYWxpemVkPzogKHBhcmFtczogYW55KSA9PiB2b2lkO1xuICBvblJ1bkZhaWxlZD86IChwYXJhbXM6IGFueSkgPT4gdm9pZDtcbn1cblxuLy8gSHVtYW4taW4tdGhlLWxvb3Agc3RhdGUgcmVzdWx0XG5leHBvcnQgaW50ZXJmYWNlIEh1bWFuSW5UaGVMb29wU3RhdGUge1xuICBzdGF0dXM6IFNpZ25hbDxUb29sQ2FsbFN0YXR1cz47XG4gIHRvb2xJZDogc3RyaW5nO1xuICBkZXN0cm95OiAoKSA9PiB2b2lkO1xufVxuIl19
@@ -1,6 +1,5 @@
1
1
  import { Directive, Input, isDevMode, Inject, } from "@angular/core";
2
2
  import { CopilotKitService } from "../core/copilotkit.service";
3
- import { z } from "zod";
4
3
  import * as i0 from "@angular/core";
5
4
  import * as i1 from "../core/copilotkit.service";
6
5
  export class CopilotKitFrontendToolDirective {
@@ -47,7 +46,6 @@ export class CopilotKitFrontendToolDirective {
47
46
  const currentRenders = this.copilotkit.currentRenderToolCalls();
48
47
  const renderEntry = {
49
48
  name: tool.name,
50
- args: tool.parameters || z.object({}),
51
49
  render: tool.render,
52
50
  };
53
51
  // Check for duplicate
@@ -127,4 +125,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
127
125
  type: Input,
128
126
  args: ["copilotkitFrontendTool"]
129
127
  }] } });
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdGtpdC1mcm9udGVuZC10b29sLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kaXJlY3RpdmVzL2NvcGlsb3RraXQtZnJvbnRlbmQtdG9vbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBT0wsU0FBUyxFQUNULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQU0vRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDOzs7QUFNeEIsTUFBTSxPQUFPLCtCQUErQjtJQVFJO0lBSHRDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFFN0IsWUFDOEMsVUFBNkI7UUFBN0IsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7SUFDeEUsQ0FBQztJQUVLLElBQUksQ0FBVTtJQUNkLFdBQVcsQ0FBVTtJQUNyQixVQUFVLENBQWtCO0lBQzVCLE9BQU8sQ0FBNkI7SUFDcEMsTUFBTSxDQUFnQztJQUN0QyxRQUFRLENBQVc7SUFFNUIseUNBQXlDO0lBQ1IsSUFBSSxDQUEwQjtJQUUvRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBdUI7UUFDakMsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsZ0RBQWdEO1lBQ2hELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTyxZQUFZO1FBQ2xCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUU1QixJQUFJLENBQUMsSUFB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RUQsOENBQThDO1FBQzlDLE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3hCLENBQUM7SUFDSixDQUFDO3dHQXZIVSwrQkFBK0Isa0JBUWhDLGlCQUFpQjs0RkFSaEIsK0JBQStCOzs0RkFBL0IsK0JBQStCO2tCQUozQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs7MEJBU0ksTUFBTTsyQkFBQyxpQkFBaUI7eUNBR2xCLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUcyQixJQUFJO3NCQUFwQyxLQUFLO3VCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBUeXBlLFxuICBpc0Rldk1vZGUsXG4gIEluamVjdCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvcGlsb3RLaXRTZXJ2aWNlIH0gZnJvbSBcIi4uL2NvcmUvY29waWxvdGtpdC5zZXJ2aWNlXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEFuZ3VsYXJGcm9udGVuZFRvb2wsXG4gIEFuZ3VsYXJUb29sQ2FsbFJlbmRlcixcbiAgVG9vbENhbGxSZW5kZXIsXG59IGZyb20gXCIuLi9jb3JlL2NvcGlsb3RraXQudHlwZXNcIjtcbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogXCJbY29waWxvdGtpdEZyb250ZW5kVG9vbF1cIixcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQ29waWxvdEtpdEZyb250ZW5kVG9vbERpcmVjdGl2ZTxcbiAgICBUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gID5cbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95XG57XG4gIHByaXZhdGUgaXNSZWdpc3RlcmVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChDb3BpbG90S2l0U2VydmljZSkgcHJpdmF0ZSByZWFkb25seSBjb3BpbG90a2l0OiBDb3BpbG90S2l0U2VydmljZVxuICApIHt9XG5cbiAgQElucHV0KCkgbmFtZSE6IHN0cmluZztcbiAgQElucHV0KCkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBhcmFtZXRlcnM/OiB6LlpvZFNjaGVtYTxUPjtcbiAgQElucHV0KCkgaGFuZGxlcj86IChhcmdzOiBUKSA9PiBQcm9taXNlPGFueT47XG4gIEBJbnB1dCgpIHJlbmRlcj86IFR5cGU8YW55PiB8IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIGZvbGxvd1VwPzogYm9vbGVhbjtcblxuICAvLyBBbHRlcm5hdGl2ZTogQWNjZXB0IGEgZnVsbCB0b29sIG9iamVjdFxuICBASW5wdXQoXCJjb3BpbG90a2l0RnJvbnRlbmRUb29sXCIpIHRvb2w/OiBBbmd1bGFyRnJvbnRlbmRUb29sPFQ+O1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVnaXN0ZXJUb29sKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhfY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzUmVnaXN0ZXJlZCkge1xuICAgICAgLy8gUmUtcmVnaXN0ZXIgdGhlIHRvb2wgaWYgYW55IHByb3BlcnRpZXMgY2hhbmdlXG4gICAgICB0aGlzLnVucmVnaXN0ZXJUb29sKCk7XG4gICAgICB0aGlzLnJlZ2lzdGVyVG9vbCgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5yZWdpc3RlclRvb2woKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJUb29sKCk6IHZvaWQge1xuICAgIGNvbnN0IHRvb2wgPSB0aGlzLmdldFRvb2woKTtcblxuICAgIGlmICghdG9vbC5uYW1lKSB7XG4gICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICdDb3BpbG90S2l0RnJvbnRlbmRUb29sRGlyZWN0aXZlOiBcIm5hbWVcIiBpcyByZXF1aXJlZC4gJyArXG4gICAgICAgICAgICAnUGxlYXNlIHByb3ZpZGUgYSBuYW1lIHZpYSBbbmFtZV09XCJ0b29sTmFtZVwiIG9yICcgK1xuICAgICAgICAgICAgXCJbY29waWxvdGtpdEZyb250ZW5kVG9vbF09XFxcInsgbmFtZTogJ3Rvb2xOYW1lJywgLi4uIH1cXFwiXCJcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjsgLy8gRG9uJ3QgcmVnaXN0ZXIgaWYgbm8gbmFtZVxuICAgIH1cblxuICAgIC8vIFJlZ2lzdGVyIHRoZSB0b29sIHdpdGggQ29waWxvdEtpdFxuICAgIHRoaXMuY29waWxvdGtpdC5jb3BpbG90a2l0LmFkZFRvb2wodG9vbCk7XG5cbiAgICAvLyBSZWdpc3RlciB0aGUgcmVuZGVyIGlmIHByb3ZpZGVkXG4gICAgaWYgKHRvb2wucmVuZGVyKSB7XG4gICAgICBjb25zdCBjdXJyZW50UmVuZGVycyA9IHRoaXMuY29waWxvdGtpdC5jdXJyZW50UmVuZGVyVG9vbENhbGxzKCk7XG4gICAgICBjb25zdCByZW5kZXJFbnRyeTogQW5ndWxhclRvb2xDYWxsUmVuZGVyID0ge1xuICAgICAgICBuYW1lOiB0b29sLm5hbWUsXG4gICAgICAgIGFyZ3M6IHRvb2wucGFyYW1ldGVycyB8fCB6Lm9iamVjdCh7fSksXG4gICAgICAgIHJlbmRlcjogdG9vbC5yZW5kZXIsXG4gICAgICB9O1xuXG4gICAgICAvLyBDaGVjayBmb3IgZHVwbGljYXRlXG4gICAgICBjb25zdCBleGlzdGluZ0luZGV4ID0gY3VycmVudFJlbmRlcnMuZmluZEluZGV4KChyOiBUb29sQ2FsbFJlbmRlcjx1bmtub3duPikgPT4gci5uYW1lID09PSB0b29sLm5hbWUpO1xuICAgICAgaWYgKGV4aXN0aW5nSW5kZXggIT09IC0xKSB7XG4gICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBbQ29waWxvdEtpdF0gVG9vbCBcIiR7dG9vbC5uYW1lfVwiIGFscmVhZHkgaGFzIGEgcmVuZGVyLiBgICtcbiAgICAgICAgICAgICAgYFRoZSBwcmV2aW91cyByZW5kZXIgd2lsbCBiZSByZXBsYWNlZC4gYCArXG4gICAgICAgICAgICAgIGBUaGlzIG1heSBpbmRpY2F0ZSBhIGR1cGxpY2F0ZSB0b29sIHJlZ2lzdHJhdGlvbi5gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB1cGRhdGVkID0gWy4uLmN1cnJlbnRSZW5kZXJzXTtcbiAgICAgICAgdXBkYXRlZFtleGlzdGluZ0luZGV4XSA9IHJlbmRlckVudHJ5O1xuICAgICAgICB0aGlzLmNvcGlsb3RraXQuc2V0Q3VycmVudFJlbmRlclRvb2xDYWxscyh1cGRhdGVkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY29waWxvdGtpdC5zZXRDdXJyZW50UmVuZGVyVG9vbENhbGxzKFsuLi5jdXJyZW50UmVuZGVycywgcmVuZGVyRW50cnldKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmlzUmVnaXN0ZXJlZCA9IHRydWU7XG4gIH1cblxuICBwcml2YXRlIHVucmVnaXN0ZXJUb29sKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc1JlZ2lzdGVyZWQpIHJldHVybjtcblxuICAgIGNvbnN0IHRvb2wgPSB0aGlzLmdldFRvb2woKTtcblxuICAgIGlmICh0b29sLm5hbWUpIHtcbiAgICAgIC8vIFJlbW92ZSB0aGUgdG9vbFxuICAgICAgdGhpcy5jb3BpbG90a2l0LmNvcGlsb3RraXQucmVtb3ZlVG9vbCh0b29sLm5hbWUpO1xuXG4gICAgICAvLyBSZW1vdmUgdGhlIHJlbmRlciBpZiBpdCBleGlzdHNcbiAgICAgIGNvbnN0IGN1cnJlbnRSZW5kZXJzID0gdGhpcy5jb3BpbG90a2l0LmN1cnJlbnRSZW5kZXJUb29sQ2FsbHMoKTtcbiAgICAgIGNvbnN0IGZpbHRlcmVkID0gY3VycmVudFJlbmRlcnMuZmlsdGVyKChyOiBUb29sQ2FsbFJlbmRlcjx1bmtub3duPikgPT4gci5uYW1lICE9PSB0b29sLm5hbWUpO1xuICAgICAgaWYgKGZpbHRlcmVkLmxlbmd0aCAhPT0gY3VycmVudFJlbmRlcnMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuY29waWxvdGtpdC5zZXRDdXJyZW50UmVuZGVyVG9vbENhbGxzKGZpbHRlcmVkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmlzUmVnaXN0ZXJlZCA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUb29sKCk6IEFuZ3VsYXJGcm9udGVuZFRvb2w8VD4ge1xuICAgIC8vIElmIGZ1bGwgdG9vbCBvYmplY3QgaXMgcHJvdmlkZWQsIHVzZSBpdFxuICAgIGlmICh0aGlzLnRvb2wpIHtcbiAgICAgIHJldHVybiB0aGlzLnRvb2w7XG4gICAgfVxuXG4gICAgLy8gT3RoZXJ3aXNlLCBjb25zdHJ1Y3QgZnJvbSBpbmRpdmlkdWFsIGlucHV0c1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbixcbiAgICAgIHBhcmFtZXRlcnM6IHRoaXMucGFyYW1ldGVycyxcbiAgICAgIGhhbmRsZXI6IHRoaXMuaGFuZGxlcixcbiAgICAgIHJlbmRlcjogdGhpcy5yZW5kZXIsXG4gICAgICBmb2xsb3dVcDogdGhpcy5mb2xsb3dVcCxcbiAgICB9O1xuICB9XG59XG4iXX0=
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdGtpdC1mcm9udGVuZC10b29sLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kaXJlY3RpdmVzL2NvcGlsb3RraXQtZnJvbnRlbmQtdG9vbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBT0wsU0FBUyxFQUNULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBWS9ELE1BQU0sT0FBTywrQkFBK0I7SUFRSTtJQUh0QyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBRTdCLFlBQzhDLFVBQTZCO1FBQTdCLGVBQVUsR0FBVixVQUFVLENBQW1CO0lBQ3hFLENBQUM7SUFFSyxJQUFJLENBQVU7SUFDZCxXQUFXLENBQVU7SUFDckIsVUFBVSxDQUFrQjtJQUM1QixPQUFPLENBQTZCO0lBQ3BDLE1BQU0sQ0FBZ0M7SUFDdEMsUUFBUSxDQUFXO0lBRTVCLHlDQUF5QztJQUNSLElBQUksQ0FBMEI7SUFFL0QsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQXVCO1FBQ2pDLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLGdEQUFnRDtZQUNoRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU8sWUFBWTtRQUNsQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNmLElBQUksU0FBUyxFQUFF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QUFVO1lBQzNCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3hCLENBQUM7SUFDSixDQUFDO3dHQXRIVSwrQkFBK0Isa0JBUWhDLGlCQUFpQjs0RkFSaEIsK0JBQStCOzs0RkFBL0IsK0JBQStCO2tCQUozQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs7MEJBU0ksTUFBTTsyQkFBQyxpQkFBaUI7eUNBR2xCLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUcyQixJQUFJO3NCQUFwQyxLQUFLO3VCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBUeXBlLFxuICBpc0Rldk1vZGUsXG4gIEluamVjdCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvcGlsb3RLaXRTZXJ2aWNlIH0gZnJvbSBcIi4uL2NvcmUvY29waWxvdGtpdC5zZXJ2aWNlXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEFuZ3VsYXJGcm9udGVuZFRvb2wsXG4gIEFuZ3VsYXJUb29sQ2FsbFJlbmRlcixcbiAgVG9vbENhbGxSZW5kZXIsXG59IGZyb20gXCIuLi9jb3JlL2NvcGlsb3RraXQudHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgeiB9IGZyb20gXCJ6b2RcIjtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcIltjb3BpbG90a2l0RnJvbnRlbmRUb29sXVwiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBDb3BpbG90S2l0RnJvbnRlbmRUb29sRGlyZWN0aXZlPFxuICAgIFQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55PixcbiAgPlxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3lcbntcbiAgcHJpdmF0ZSBpc1JlZ2lzdGVyZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KENvcGlsb3RLaXRTZXJ2aWNlKSBwcml2YXRlIHJlYWRvbmx5IGNvcGlsb3RraXQ6IENvcGlsb3RLaXRTZXJ2aWNlXG4gICkge31cblxuICBASW5wdXQoKSBuYW1lITogc3RyaW5nO1xuICBASW5wdXQoKSBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgQElucHV0KCkgcGFyYW1ldGVycz86IHouWm9kU2NoZW1hPFQ+O1xuICBASW5wdXQoKSBoYW5kbGVyPzogKGFyZ3M6IFQpID0+IFByb21pc2U8YW55PjtcbiAgQElucHV0KCkgcmVuZGVyPzogVHlwZTxhbnk+IHwgVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgZm9sbG93VXA/OiBib29sZWFuO1xuXG4gIC8vIEFsdGVybmF0aXZlOiBBY2NlcHQgYSBmdWxsIHRvb2wgb2JqZWN0XG4gIEBJbnB1dChcImNvcGlsb3RraXRGcm9udGVuZFRvb2xcIikgdG9vbD86IEFuZ3VsYXJGcm9udGVuZFRvb2w8VD47XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZWdpc3RlclRvb2woKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKF9jaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNSZWdpc3RlcmVkKSB7XG4gICAgICAvLyBSZS1yZWdpc3RlciB0aGUgdG9vbCBpZiBhbnkgcHJvcGVydGllcyBjaGFuZ2VcbiAgICAgIHRoaXMudW5yZWdpc3RlclRvb2woKTtcbiAgICAgIHRoaXMucmVnaXN0ZXJUb29sKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy51bnJlZ2lzdGVyVG9vbCgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3RlclRvb2woKTogdm9pZCB7XG4gICAgY29uc3QgdG9vbCA9IHRoaXMuZ2V0VG9vbCgpO1xuXG4gICAgaWYgKCF0b29sLm5hbWUpIHtcbiAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgJ0NvcGlsb3RLaXRGcm9udGVuZFRvb2xEaXJlY3RpdmU6IFwibmFtZVwiIGlzIHJlcXVpcmVkLiAnICtcbiAgICAgICAgICAgICdQbGVhc2UgcHJvdmlkZSBhIG5hbWUgdmlhIFtuYW1lXT1cInRvb2xOYW1lXCIgb3IgJyArXG4gICAgICAgICAgICBcIltjb3BpbG90a2l0RnJvbnRlbmRUb29sXT1cXFwieyBuYW1lOiAndG9vbE5hbWUnLCAuLi4gfVxcXCJcIlxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuOyAvLyBEb24ndCByZWdpc3RlciBpZiBubyBuYW1lXG4gICAgfVxuXG4gICAgLy8gUmVnaXN0ZXIgdGhlIHRvb2wgd2l0aCBDb3BpbG90S2l0XG4gICAgdGhpcy5jb3BpbG90a2l0LmNvcGlsb3RraXQuYWRkVG9vbCh0b29sKTtcblxuICAgIC8vIFJlZ2lzdGVyIHRoZSByZW5kZXIgaWYgcHJvdmlkZWRcbiAgICBpZiAodG9vbC5yZW5kZXIpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRSZW5kZXJzID0gdGhpcy5jb3BpbG90a2l0LmN1cnJlbnRSZW5kZXJUb29sQ2FsbHMoKTtcbiAgICAgIGNvbnN0IHJlbmRlckVudHJ5OiBBbmd1bGFyVG9vbENhbGxSZW5kZXIgPSB7XG4gICAgICAgIG5hbWU6IHRvb2wubmFtZSxcbiAgICAgICAgcmVuZGVyOiB0b29sLnJlbmRlcixcbiAgICAgIH07XG5cbiAgICAgIC8vIENoZWNrIGZvciBkdXBsaWNhdGVcbiAgICAgIGNvbnN0IGV4aXN0aW5nSW5kZXggPSBjdXJyZW50UmVuZGVycy5maW5kSW5kZXgoKHI6IFRvb2xDYWxsUmVuZGVyKSA9PiByLm5hbWUgPT09IHRvb2wubmFtZSk7XG4gICAgICBpZiAoZXhpc3RpbmdJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgYFtDb3BpbG90S2l0XSBUb29sIFwiJHt0b29sLm5hbWV9XCIgYWxyZWFkeSBoYXMgYSByZW5kZXIuIGAgK1xuICAgICAgICAgICAgICBgVGhlIHByZXZpb3VzIHJlbmRlciB3aWxsIGJlIHJlcGxhY2VkLiBgICtcbiAgICAgICAgICAgICAgYFRoaXMgbWF5IGluZGljYXRlIGEgZHVwbGljYXRlIHRvb2wgcmVnaXN0cmF0aW9uLmBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHVwZGF0ZWQgPSBbLi4uY3VycmVudFJlbmRlcnNdO1xuICAgICAgICB1cGRhdGVkW2V4aXN0aW5nSW5kZXhdID0gcmVuZGVyRW50cnk7XG4gICAgICAgIHRoaXMuY29waWxvdGtpdC5zZXRDdXJyZW50UmVuZGVyVG9vbENhbGxzKHVwZGF0ZWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jb3BpbG90a2l0LnNldEN1cnJlbnRSZW5kZXJUb29sQ2FsbHMoWy4uLmN1cnJlbnRSZW5kZXJzLCByZW5kZXJFbnRyeV0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuaXNSZWdpc3RlcmVkID0gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgdW5yZWdpc3RlclRvb2woKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzUmVnaXN0ZXJlZCkgcmV0dXJuO1xuXG4gICAgY29uc3QgdG9vbCA9IHRoaXMuZ2V0VG9vbCgpO1xuXG4gICAgaWYgKHRvb2wubmFtZSkge1xuICAgICAgLy8gUmVtb3ZlIHRoZSB0b29sXG4gICAgICB0aGlzLmNvcGlsb3RraXQuY29waWxvdGtpdC5yZW1vdmVUb29sKHRvb2wubmFtZSk7XG5cbiAgICAgIC8vIFJlbW92ZSB0aGUgcmVuZGVyIGlmIGl0IGV4aXN0c1xuICAgICAgY29uc3QgY3VycmVudFJlbmRlcnMgPSB0aGlzLmNvcGlsb3RraXQuY3VycmVudFJlbmRlclRvb2xDYWxscygpO1xuICAgICAgY29uc3QgZmlsdGVyZWQgPSBjdXJyZW50UmVuZGVycy5maWx0ZXIoKHI6IFRvb2xDYWxsUmVuZGVyKSA9PiByLm5hbWUgIT09IHRvb2wubmFtZSk7XG4gICAgICBpZiAoZmlsdGVyZWQubGVuZ3RoICE9PSBjdXJyZW50UmVuZGVycy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5jb3BpbG90a2l0LnNldEN1cnJlbnRSZW5kZXJUb29sQ2FsbHMoZmlsdGVyZWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuaXNSZWdpc3RlcmVkID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGdldFRvb2woKTogQW5ndWxhckZyb250ZW5kVG9vbDxUPiB7XG4gICAgLy8gSWYgZnVsbCB0b29sIG9iamVjdCBpcyBwcm92aWRlZCwgdXNlIGl0XG4gICAgaWYgKHRoaXMudG9vbCkge1xuICAgICAgcmV0dXJuIHRoaXMudG9vbDtcbiAgICB9XG5cbiAgICAvLyBPdGhlcndpc2UsIGNvbnN0cnVjdCBmcm9tIGluZGl2aWR1YWwgaW5wdXRzXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmRlc2NyaXB0aW9uLFxuICAgICAgcGFyYW1ldGVyczogdGhpcy5wYXJhbWV0ZXJzLFxuICAgICAgaGFuZGxlcjogdGhpcy5oYW5kbGVyLFxuICAgICAgcmVuZGVyOiB0aGlzLnJlbmRlcixcbiAgICAgIGZvbGxvd1VwOiB0aGlzLmZvbGxvd1VwLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -167,7 +167,6 @@ export class CopilotKitHumanInTheLoopDirective {
167
167
  // Register the render with respond capability
168
168
  this.copilotkit.registerToolRender(this.name, {
169
169
  name: this.name,
170
- args: this.parameters,
171
170
  render: this.createEnhancedRender(),
172
171
  });
173
172
  }
@@ -263,4 +262,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
263
262
  }], propDecorators: { copilotkitHumanInTheLoopRespond: [{
264
263
  type: Input
265
264
  }] } });
266
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdGtpdC1odW1hbi1pbi10aGUtbG9vcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGlyZWN0aXZlcy9jb3BpbG90a2l0LWh1bWFuLWluLXRoZS1sb29wLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQU9aLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBTS9ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBRzFEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQ0c7QUFLSCxNQUFNLE9BQU8saUNBQWlDO0lBV0U7SUFOdEMsTUFBTSxDQUFVO0lBQ2hCLFlBQVksR0FBRyxNQUFNLENBQWlCLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqRSxjQUFjLEdBQXVDLElBQUksQ0FBQztJQUMxRCxPQUFPLEdBQW1CLGNBQWMsQ0FBQyxVQUFVLENBQUM7SUFFNUQsWUFDOEMsVUFBNkI7UUFBN0IsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7SUFDeEUsQ0FBQztJQUVKOztPQUVHO0lBQ00sSUFBSSxDQUFVO0lBRXZCOztPQUVHO0lBQ00sV0FBVyxDQUFVO0lBRTlCOztPQUVHO0lBQ00sVUFBVSxDQUFrQjtJQUVyQzs7T0FFRztJQUNNLE1BQU0sQ0FBbUQ7SUFFbEU7O09BRUc7SUFDTSxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBRXhCOzs7T0FHRztJQUNILElBQ0ksTUFBTSxDQUFDLEtBQW9EO1FBQzdELElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLEtBQUssQ0FBQyxJQUFJO2dCQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxD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QUtHLGtCQUFrQjtzQkFBM0IsTUFBTTs7QUFtSFQ7Ozs7O0dBS0c7QUFLSCxNQUFNLE9BQU8sd0NBQXdDO0lBQzFDLCtCQUErQixDQUFzQztJQUU5RTs7T0FFRztJQUNILE9BQU8sQ0FBQyxNQUFlO1FBQ3JCLElBQUksQ0FBQywrQkFBK0IsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pELENBQUM7d0dBUlUsd0NBQXdDOzRGQUF4Qyx3Q0FBd0M7OzRGQUF4Qyx3Q0FBd0M7a0JBSnBELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1DQUFtQztvQkFDN0MsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQUVVLCtCQUErQjtzQkFBdkMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBPbkluaXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVHlwZSxcbiAgc2lnbmFsLFxuICBpc0Rldk1vZGUsXG4gIEluamVjdCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvcGlsb3RLaXRTZXJ2aWNlIH0gZnJvbSBcIi4uL2NvcmUvY29waWxvdGtpdC5zZXJ2aWNlXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEFuZ3VsYXJIdW1hbkluVGhlTG9vcCxcbiAgSHVtYW5JblRoZUxvb3BQcm9wcyxcbiAgQW5ndWxhckZyb250ZW5kVG9vbCxcbn0gZnJvbSBcIi4uL2NvcmUvY29waWxvdGtpdC50eXBlc1wiO1xuaW1wb3J0IHsgVG9vbENhbGxTdGF0dXMgfSBmcm9tIFwiLi4vY29yZS9jb3BpbG90a2l0LnR5cGVzXCI7XG5pbXBvcnQgKiBhcyB6IGZyb20gXCJ6b2RcIjtcblxuLyoqXG4gKiBEaXJlY3RpdmUgZm9yIGRlY2xhcmF0aXZlbHkgY3JlYXRpbmcgaHVtYW4taW4tdGhlLWxvb3AgdG9vbHMuXG4gKiBQcm92aWRlcyByZWFjdGl2ZSBvdXRwdXRzIGZvciBzdGF0dXMgY2hhbmdlcyBhbmQgcmVzcG9uc2UgZXZlbnRzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8IS0tIEJhc2ljIHVzYWdlIC0tPlxuICogPGRpdiBjb3BpbG90a2l0SHVtYW5JblRoZUxvb3BcbiAqICAgICAgW25hbWVdPVwiJ3JlcXVpcmVBcHByb3ZhbCdcIlxuICogICAgICBbZGVzY3JpcHRpb25dPVwiJ1JlcXVpcmVzIHVzZXIgYXBwcm92YWwnXCJcbiAqICAgICAgW2FyZ3NdPVwiYXJnc1NjaGVtYVwiXG4gKiAgICAgIFtyZW5kZXJdPVwiYXBwcm92YWxDb21wb25lbnRcIlxuICogICAgICAoc3RhdHVzQ2hhbmdlKT1cIm9uU3RhdHVzQ2hhbmdlKCRldmVudClcIlxuICogICAgICAocmVzcG9uc2VQcm92aWRlZCk9XCJvblJlc3BvbnNlKCRldmVudClcIj5cbiAqIDwvZGl2PlxuICpcbiAqIDwhLS0gV2l0aCB0ZW1wbGF0ZSAtLT5cbiAqIDxkaXYgY29waWxvdGtpdEh1bWFuSW5UaGVMb29wXG4gKiAgICAgIFtuYW1lXT1cIidyZXF1aXJlQXBwcm92YWwnXCJcbiAqICAgICAgW2Rlc2NyaXB0aW9uXT1cIidSZXF1aXJlcyB1c2VyIGFwcHJvdmFsJ1wiXG4gKiAgICAgIFthcmdzXT1cImFyZ3NTY2hlbWFcIlxuICogICAgICBbcmVuZGVyXT1cImFwcHJvdmFsVGVtcGxhdGVcIlxuICogICAgICBbKHN0YXR1cyldPVwiYXBwcm92YWxTdGF0dXNcIj5cbiAqIDwvZGl2PlxuICpcbiAqIDxuZy10ZW1wbGF0ZSAjYXBwcm92YWxUZW1wbGF0ZSBsZXQtcHJvcHM+XG4gKiAgIDxkaXYgKm5nSWY9XCJwcm9wcy5zdGF0dXMgPT09ICdleGVjdXRpbmcnXCI+XG4gKiAgICAgPHA+e3sgcHJvcHMuYXJncy5hY3Rpb24gfX08L3A+XG4gKiAgICAgPGJ1dHRvbiAoY2xpY2spPVwicHJvcHMucmVzcG9uZCgnYXBwcm92ZWQnKVwiPkFwcHJvdmU8L2J1dHRvbj5cbiAqICAgICA8YnV0dG9uIChjbGljayk9XCJwcm9wcy5yZXNwb25kKCdyZWplY3RlZCcpXCI+UmVqZWN0PC9idXR0b24+XG4gKiAgIDwvZGl2PlxuICogPC9uZy10ZW1wbGF0ZT5cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiW2NvcGlsb3RraXRIdW1hbkluVGhlTG9vcF1cIixcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQ29waWxvdEtpdEh1bWFuSW5UaGVMb29wRGlyZWN0aXZlPFxuICAgIFQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55PixcbiAgPlxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3lcbntcbiAgcHJpdmF0ZSB0b29sSWQ/OiBzdHJpbmc7XG4gIHByaXZhdGUgc3RhdHVzU2lnbmFsID0gc2lnbmFsPFRvb2xDYWxsU3RhdHVzPihUb29sQ2FsbFN0YXR1cy5JblByb2dyZXNzKTtcbiAgcHJpdmF0ZSByZXNvbHZlUHJvbWlzZTogKChyZXN1bHQ6IHVua25vd24pID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX3N0YXR1czogVG9vbENhbGxTdGF0dXMgPSBUb29sQ2FsbFN0YXR1cy5JblByb2dyZXNzO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoQ29waWxvdEtpdFNlcnZpY2UpIHByaXZhdGUgcmVhZG9ubHkgY29waWxvdGtpdDogQ29waWxvdEtpdFNlcnZpY2VcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgaHVtYW4taW4tdGhlLWxvb3AgdG9vbC5cbiAgICovXG4gIEBJbnB1dCgpIG5hbWUhOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlc2NyaXB0aW9uIG9mIHdoYXQgdGhlIHRvb2wgZG9lcy5cbiAgICovXG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBab2Qgc2NoZW1hIGZvciB0aGUgdG9vbCBwYXJhbWV0ZXJzLlxuICAgKi9cbiAgQElucHV0KCkgcGFyYW1ldGVycyE6IHouWm9kU2NoZW1hPFQ+O1xuXG4gIC8qKlxuICAgKiBDb21wb25lbnQgY2xhc3Mgb3IgdGVtcGxhdGUgdG8gcmVuZGVyIGZvciB1c2VyIGludGVyYWN0aW9uLlxuICAgKi9cbiAgQElucHV0KCkgcmVuZGVyITogVHlwZTxhbnk+IHwgVGVtcGxhdGVSZWY8SHVtYW5JblRoZUxvb3BQcm9wczxUPj47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHRvb2wgc2hvdWxkIGJlIHJlZ2lzdGVyZWQgKGRlZmF1bHQ6IHRydWUpLlxuICAgKi9cbiAgQElucHV0KCkgZW5hYmxlZCA9IHRydWU7XG5cbiAgLyoqXG4gICAqIEFsdGVybmF0aXZlIGlucHV0IHVzaW5nIHRoZSBkaXJlY3RpdmUgc2VsZWN0b3IuXG4gICAqIEFsbG93czogW2NvcGlsb3RraXRIdW1hbkluVGhlTG9vcF09XCJjb25maWdcIlxuICAgKi9cbiAgQElucHV0KFwiY29waWxvdGtpdEh1bWFuSW5UaGVMb29wXCIpXG4gIHNldCBjb25maWcodmFsdWU6IFBhcnRpYWw8QW5ndWxhckh1bWFuSW5UaGVMb29wPFQ+PiB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgaWYgKHZhbHVlLm5hbWUpIHRoaXMubmFtZSA9IHZhbHVlLm5hbWU7XG4gICAgICBpZiAodmFsdWUuZGVzY3JpcHRpb24pIHRoaXMuZGVzY3JpcHRpb24gPSB2YWx1ZS5kZXNjcmlwdGlvbjtcbiAgICAgIGlmIChcInBhcmFtZXRlcnNcIiBpbiB2YWx1ZSAmJiB2YWx1ZS5wYXJhbWV0ZXJzKVxuICAgICAgICB0aGlzLnBhcmFtZXRlcnMgPSB2YWx1ZS5wYXJhbWV0ZXJzIGFzIHouWm9kU2NoZW1hPFQ+O1xuICAgICAgaWYgKFwicmVuZGVyXCIgaW4gdmFsdWUgJiYgdmFsdWUucmVuZGVyKSB0aGlzLnJlbmRlciA9IHZhbHVlLnJlbmRlcjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgc3RhdHVzIGNoYW5nZXMuXG4gICAqL1xuICBAT3V0cHV0KCkgc3RhdHVzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUb29sQ2FsbFN0YXR1cz4oKTtcblxuICAvKipcbiAgICogVHdvLXdheSBiaW5kaW5nIGZvciBzdGF0dXMuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgc3RhdHVzKCk6IFRvb2xDYWxsU3RhdHVzIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdHVzO1xuICB9XG4gIHNldCBzdGF0dXModmFsdWU6IFRvb2xDYWxsU3RhdHVzKSB7XG4gICAgLy8gSW5wdXQgc2V0dGVyIGZvciB0d28td2F5IGJpbmRpbmcgKHRob3VnaCB0eXBpY2FsbHkgcmVhZC1vbmx5KVxuICAgIHRoaXMuX3N0YXR1cyA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gYSByZXNwb25zZSBpcyBwcm92aWRlZCBieSB0aGUgdXNlci5cbiAgICovXG4gIEBPdXRwdXQoKSByZXNwb25zZVByb3ZpZGVkID0gbmV3IEV2ZW50RW1pdHRlcjx1bmtub3duPigpO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSB0b29sIGV4ZWN1dGlvbiBzdGFydHMuXG4gICAqL1xuICBAT3V0cHV0KCkgZXhlY3V0aW9uU3RhcnRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSB0b29sIGV4ZWN1dGlvbiBjb21wbGV0ZXMuXG4gICAqL1xuICBAT3V0cHV0KCkgZXhlY3V0aW9uQ29tcGxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjx1bmtub3duPigpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmVuYWJsZWQpIHtcbiAgICAgIHRoaXMucmVnaXN0ZXJUb29sKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IHJlbGV2YW50Q2hhbmdlcyA9XG4gICAgICBjaGFuZ2VzW1wibmFtZVwiXSB8fFxuICAgICAgY2hhbmdlc1tcImRlc2NyaXB0aW9uXCJdIHx8XG4gICAgICBjaGFuZ2VzW1wiYXJnc1wiXSB8fFxuICAgICAgY2hhbmdlc1tcInJlbmRlclwiXSB8fFxuICAgICAgY2hhbmdlc1tcImVuYWJsZWRcIl07XG5cbiAgICBpZiAocmVsZXZhbnRDaGFuZ2VzICYmICFyZWxldmFudENoYW5nZXMuZmlyc3RDaGFuZ2UpIHtcbiAgICAgIC8vIFJlLXJlZ2lzdGVyIHRoZSB0b29sIHdpdGggbmV3IGNvbmZpZ3VyYXRpb25cbiAgICAgIHRoaXMudW5yZWdpc3RlclRvb2woKTtcbiAgICAgIGlmICh0aGlzLmVuYWJsZWQpIHtcbiAgICAgICAgdGhpcy5yZWdpc3RlclRvb2woKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVucmVnaXN0ZXJUb29sKCk7XG4gIH1cblxuICAvKipcbiAgICogUHJvZ3JhbW1hdGljYWxseSB0cmlnZ2VyIGEgcmVzcG9uc2UuXG4gICAqIFVzZWZ1bCB3aGVuIHRoZSBkaXJlY3RpdmUgaXMgdXNlZCBhcyBhIGNvbnRyb2xsZXIuXG4gICAqL1xuICByZXNwb25kKHJlc3VsdDogdW5rbm93bik6IHZvaWQge1xuICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UocmVzdWx0KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJUb29sKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5uYW1lIHx8ICF0aGlzLmRlc2NyaXB0aW9uIHx8ICF0aGlzLnBhcmFtZXRlcnMgfHwgIXRoaXMucmVuZGVyKSB7XG4gICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIFwiQ29waWxvdEtpdEh1bWFuSW5UaGVMb29wRGlyZWN0aXZlOiBNaXNzaW5nIHJlcXVpcmVkIGlucHV0cy4gXCIgK1xuICAgICAgICAgICAgXCJSZXF1aXJlZDogbmFtZSwgZGVzY3JpcHRpb24sIHBhcmFtZXRlcnMsIGFuZCByZW5kZXIuXCJcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgaGFuZGxlciB0aGF0IHJldHVybnMgYSBQcm9taXNlXG4gICAgY29uc3QgaGFuZGxlciA9IGFzeW5jIChhcmdzOiBUKTogUHJvbWlzZTx1bmtub3duPiA9PiB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVTdGF0dXMoVG9vbENhbGxTdGF0dXMuRXhlY3V0aW5nKTtcbiAgICAgICAgdGhpcy5yZXNvbHZlUHJvbWlzZSA9IHJlc29sdmU7XG4gICAgICAgIHRoaXMuZXhlY3V0aW9uU3RhcnRlZC5lbWl0KGFyZ3MpO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8vIENyZWF0ZSB0aGUgZnJvbnRlbmQgdG9vbCB3aXRoIGVuaGFuY2VkIHJlbmRlclxuICAgIGNvbnN0IGZyb250ZW5kVG9vbDogQW5ndWxhckZyb250ZW5kVG9vbDxUPiA9IHtcbiAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmRlc2NyaXB0aW9uLFxuICAgICAgcGFyYW1ldGVyczogdGhpcy5wYXJhbWV0ZXJzLFxuICAgICAgaGFuZGxlcixcbiAgICAgIHJlbmRlcjogdGhpcy5yZW5kZXIsIC8vIFdpbGwgYmUgZW5oYW5jZWQgYnkgdGhlIHJlbmRlciBjb21wb25lbnRcbiAgICB9O1xuXG4gICAgLy8gQWRkIHRoZSB0b29sIChyZXR1cm5zIHZvaWQsIHNvIHdlIHVzZSB0aGUgdG9vbCBuYW1lIGFzIElEKVxuICAgIHRoaXMuY29waWxvdGtpdC5jb3BpbG90a2l0LmFkZFRvb2woZnJvbnRlbmRUb29sKTtcbiAgICB0aGlzLnRvb2xJZCA9IHRoaXMubmFtZTtcblxuICAgIC8vIFJlZ2lzdGVyIHRoZSByZW5kZXIgd2l0aCByZXNwb25kIGNhcGFiaWxpdHlcbiAgICB0aGlzLmNvcGlsb3RraXQucmVnaXN0ZXJUb29sUmVuZGVyKHRoaXMubmFtZSwge1xuICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgYXJnczogdGhpcy5wYXJhbWV0ZXJzLFxuICAgICAgcmVuZGVyOiB0aGlzLmNyZWF0ZUVuaGFuY2VkUmVuZGVyKCksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVucmVnaXN0ZXJUb29sKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRvb2xJZCkge1xuICAgICAgdGhpcy5jb3BpbG90a2l0LmNvcGlsb3RraXQucmVtb3ZlVG9vbCh0aGlzLnRvb2xJZCk7XG4gICAgICB0aGlzLmNvcGlsb3RraXQudW5yZWdpc3RlclRvb2xSZW5kZXIodGhpcy5uYW1lKTtcbiAgICAgIHRoaXMudG9vbElkID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRW5oYW5jZWRSZW5kZXIoKTogVHlwZTxhbnk+IHwgVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgLy8gSWYgaXQncyBhIHRlbXBsYXRlLCB3ZSBuZWVkIHRvIHdyYXAgaXQgd2l0aCBvdXIgcmVzcG9uZCBmdW5jdGlvblxuICAgIC8vIFRoaXMgaXMgaGFuZGxlZCBieSByZXR1cm5pbmcgYSBzcGVjaWFsIG1hcmtlciB0aGF0IHRoZSByZW5kZXIgY29tcG9uZW50XG4gICAgLy8gd2lsbCByZWNvZ25pemUgYW5kIGVuaGFuY2Ugd2l0aCB0aGUgcmVzcG9uZCBmdW5jdGlvblxuXG4gICAgLy8gU3RvcmUgcmVmZXJlbmNlIHRvIHRoaXMgZGlyZWN0aXZlIGluc3RhbmNlIGZvciB0aGUgcmVuZGVyIGNvbXBvbmVudFxuICAgICh0aGlzLnJlbmRlciBhcyBhbnkpLl9faHVtYW5JblRoZUxvb3BEaXJlY3RpdmUgPSB0aGlzO1xuICAgICh0aGlzLnJlbmRlciBhcyBhbnkpLl9faHVtYW5JblRoZUxvb3BTdGF0dXMgPSB0aGlzLnN0YXR1c1NpZ25hbDtcblxuICAgIHJldHVybiB0aGlzLnJlbmRlcjtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlUmVzcG9uc2UocmVzdWx0OiB1bmtub3duKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVzb2x2ZVByb21pc2UpIHtcbiAgICAgIHRoaXMucmVzb2x2ZVByb21pc2UocmVzdWx0KTtcbiAgICAgIHRoaXMudXBkYXRlU3RhdHVzKFRvb2xDYWxsU3RhdHVzLkNvbXBsZXRlKTtcbiAgICAgIHRoaXMucmVzb2x2ZVByb21pc2UgPSBudWxsO1xuICAgICAgdGhpcy5yZXNwb25zZVByb3ZpZGVkLmVtaXQocmVzdWx0KTtcbiAgICAgIHRoaXMuZXhlY3V0aW9uQ29tcGxldGVkLmVtaXQocmVzdWx0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVN0YXR1cyhzdGF0dXM6IFRvb2xDYWxsU3RhdHVzKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdHVzID0gc3RhdHVzO1xuICAgIHRoaXMuc3RhdHVzU2lnbmFsLnNldChzdGF0dXMpO1xuICAgIHRoaXMuc3RhdHVzQ2hhbmdlLmVtaXQoc3RhdHVzKTtcbiAgfVxufVxuXG4vKipcbiAqIEhlbHBlciBkaXJlY3RpdmUgdG8gcHJvdmlkZSByZXNwb25kIGZ1bmN0aW9uIGluIHRlbXBsYXRlcy5cbiAqIFRoaXMgd291bGQgYmUgdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSB0b29sIHJlbmRlciBjb21wb25lbnQuXG4gKlxuICogQGludGVybmFsXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogXCJbY29waWxvdGtpdEh1bWFuSW5UaGVMb29wUmVzcG9uZF1cIixcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQ29waWxvdEtpdEh1bWFuSW5UaGVMb29wUmVzcG9uZERpcmVjdGl2ZSB7XG4gIEBJbnB1dCgpIGNvcGlsb3RraXRIdW1hbkluVGhlTG9vcFJlc3BvbmQ/OiAocmVzdWx0OiB1bmtub3duKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBDb252ZW5pZW5jZSBtZXRob2QgZm9yIHRlbXBsYXRlcyB0byBjYWxsIHJlc3BvbmQuXG4gICAqL1xuICByZXNwb25kKHJlc3VsdDogdW5rbm93bik6IHZvaWQge1xuICAgIHRoaXMuY29waWxvdGtpdEh1bWFuSW5UaGVMb29wUmVzcG9uZD8uKHJlc3VsdCk7XG4gIH1cbn1cbiJdfQ==
265
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdGtpdC1odW1hbi1pbi10aGUtbG9vcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGlyZWN0aXZlcy9jb3BpbG90a2l0LWh1bWFuLWluLXRoZS1sb29wLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQU9aLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBTS9ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBRzFEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQ0c7QUFLSCxNQUFNLE9BQU8saUNBQWlDO0lBV0U7SUFOdEMsTUFBTSxDQUFVO0lBQ2hCLFlBQVksR0FBRyxNQUFNLENBQWlCLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqRSxjQUFjLEdBQXVDLElBQUksQ0FBQztJQUMxRCxPQUFPLEdBQW1CLGNBQWMsQ0FBQyxVQUFVLENBQUM7SUFFNUQsWUFDOEMsVUFBNkI7UUFBN0IsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7SUFDeEUsQ0FBQztJQUVKOztPQUVHO0lBQ00sSUFBSSxDQUFVO0lBRXZCOztPQUVHO0lBQ00sV0FBVyxDQUFVO0lBRTlCOztPQUVHO0lBQ00sVUFBVSxDQUFrQjtJQUVyQzs7T0FFRztJQUNNLE1BQU0sQ0FBbUQ7SUFFbEU7O09BRUc7SUFDTSxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBRXhCOzs7T0FHRztJQUNILElBQ0ksTUFBTSxDQUFDLEtBQW9EO1FBQzdELElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLEtBQUssQ0FBQyxJQUFJO2dCQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxD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Ozs7R0FLRztBQUtILE1BQU0sT0FBTyx3Q0FBd0M7SUFDMUMsK0JBQStCLENBQXNDO0lBRTlFOztPQUVHO0lBQ0gsT0FBTyxDQUFDLE1BQWU7UUFDckIsSUFBSSxDQUFDLCtCQUErQixFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakQsQ0FBQzt3R0FSVSx3Q0FBd0M7NEZBQXhDLHdDQUF3Qzs7NEZBQXhDLHdDQUF3QztrQkFKcEQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUNBQW1DO29CQUM3QyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OEJBRVUsK0JBQStCO3NCQUF2QyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIE9uSW5pdCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBUeXBlLFxuICBzaWduYWwsXG4gIGlzRGV2TW9kZSxcbiAgSW5qZWN0LFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29waWxvdEtpdFNlcnZpY2UgfSBmcm9tIFwiLi4vY29yZS9jb3BpbG90a2l0LnNlcnZpY2VcIjtcbmltcG9ydCB0eXBlIHtcbiAgQW5ndWxhckh1bWFuSW5UaGVMb29wLFxuICBIdW1hbkluVGhlTG9vcFByb3BzLFxuICBBbmd1bGFyRnJvbnRlbmRUb29sLFxufSBmcm9tIFwiLi4vY29yZS9jb3BpbG90a2l0LnR5cGVzXCI7XG5pbXBvcnQgeyBUb29sQ2FsbFN0YXR1cyB9IGZyb20gXCIuLi9jb3JlL2NvcGlsb3RraXQudHlwZXNcIjtcbmltcG9ydCAqIGFzIHogZnJvbSBcInpvZFwiO1xuXG4vKipcbiAqIERpcmVjdGl2ZSBmb3IgZGVjbGFyYXRpdmVseSBjcmVhdGluZyBodW1hbi1pbi10aGUtbG9vcCB0b29scy5cbiAqIFByb3ZpZGVzIHJlYWN0aXZlIG91dHB1dHMgZm9yIHN0YXR1cyBjaGFuZ2VzIGFuZCByZXNwb25zZSBldmVudHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDwhLS0gQmFzaWMgdXNhZ2UgLS0+XG4gKiA8ZGl2IGNvcGlsb3RraXRIdW1hbkluVGhlTG9vcFxuICogICAgICBbbmFtZV09XCIncmVxdWlyZUFwcHJvdmFsJ1wiXG4gKiAgICAgIFtkZXNjcmlwdGlvbl09XCInUmVxdWlyZXMgdXNlciBhcHByb3ZhbCdcIlxuICogICAgICBbYXJnc109XCJhcmdzU2NoZW1hXCJcbiAqICAgICAgW3JlbmRlcl09XCJhcHByb3ZhbENvbXBvbmVudFwiXG4gKiAgICAgIChzdGF0dXNDaGFuZ2UpPVwib25TdGF0dXNDaGFuZ2UoJGV2ZW50KVwiXG4gKiAgICAgIChyZXNwb25zZVByb3ZpZGVkKT1cIm9uUmVzcG9uc2UoJGV2ZW50KVwiPlxuICogPC9kaXY+XG4gKlxuICogPCEtLSBXaXRoIHRlbXBsYXRlIC0tPlxuICogPGRpdiBjb3BpbG90a2l0SHVtYW5JblRoZUxvb3BcbiAqICAgICAgW25hbWVdPVwiJ3JlcXVpcmVBcHByb3ZhbCdcIlxuICogICAgICBbZGVzY3JpcHRpb25dPVwiJ1JlcXVpcmVzIHVzZXIgYXBwcm92YWwnXCJcbiAqICAgICAgW2FyZ3NdPVwiYXJnc1NjaGVtYVwiXG4gKiAgICAgIFtyZW5kZXJdPVwiYXBwcm92YWxUZW1wbGF0ZVwiXG4gKiAgICAgIFsoc3RhdHVzKV09XCJhcHByb3ZhbFN0YXR1c1wiPlxuICogPC9kaXY+XG4gKlxuICogPG5nLXRlbXBsYXRlICNhcHByb3ZhbFRlbXBsYXRlIGxldC1wcm9wcz5cbiAqICAgPGRpdiAqbmdJZj1cInByb3BzLnN0YXR1cyA9PT0gJ2V4ZWN1dGluZydcIj5cbiAqICAgICA8cD57eyBwcm9wcy5hcmdzLmFjdGlvbiB9fTwvcD5cbiAqICAgICA8YnV0dG9uIChjbGljayk9XCJwcm9wcy5yZXNwb25kKCdhcHByb3ZlZCcpXCI+QXBwcm92ZTwvYnV0dG9uPlxuICogICAgIDxidXR0b24gKGNsaWNrKT1cInByb3BzLnJlc3BvbmQoJ3JlamVjdGVkJylcIj5SZWplY3Q8L2J1dHRvbj5cbiAqICAgPC9kaXY+XG4gKiA8L25nLXRlbXBsYXRlPlxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogXCJbY29waWxvdGtpdEh1bWFuSW5UaGVMb29wXVwiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBDb3BpbG90S2l0SHVtYW5JblRoZUxvb3BEaXJlY3RpdmU8XG4gICAgVCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4gPSBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICA+XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveVxue1xuICBwcml2YXRlIHRvb2xJZD86IHN0cmluZztcbiAgcHJpdmF0ZSBzdGF0dXNTaWduYWwgPSBzaWduYWw8VG9vbENhbGxTdGF0dXM+KFRvb2xDYWxsU3RhdHVzLkluUHJvZ3Jlc3MpO1xuICBwcml2YXRlIHJlc29sdmVQcm9taXNlOiAoKHJlc3VsdDogdW5rbm93bikgPT4gdm9pZCkgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfc3RhdHVzOiBUb29sQ2FsbFN0YXR1cyA9IFRvb2xDYWxsU3RhdHVzLkluUHJvZ3Jlc3M7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChDb3BpbG90S2l0U2VydmljZSkgcHJpdmF0ZSByZWFkb25seSBjb3BpbG90a2l0OiBDb3BpbG90S2l0U2VydmljZVxuICApIHt9XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBodW1hbi1pbi10aGUtbG9vcCB0b29sLlxuICAgKi9cbiAgQElucHV0KCkgbmFtZSE6IHN0cmluZztcblxuICAvKipcbiAgICogRGVzY3JpcHRpb24gb2Ygd2hhdCB0aGUgdG9vbCBkb2VzLlxuICAgKi9cbiAgQElucHV0KCkgZGVzY3JpcHRpb24hOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFpvZCBzY2hlbWEgZm9yIHRoZSB0b29sIHBhcmFtZXRlcnMuXG4gICAqL1xuICBASW5wdXQoKSBwYXJhbWV0ZXJzITogei5ab2RTY2hlbWE8VD47XG5cbiAgLyoqXG4gICAqIENvbXBvbmVudCBjbGFzcyBvciB0ZW1wbGF0ZSB0byByZW5kZXIgZm9yIHVzZXIgaW50ZXJhY3Rpb24uXG4gICAqL1xuICBASW5wdXQoKSByZW5kZXIhOiBUeXBlPGFueT4gfCBUZW1wbGF0ZVJlZjxIdW1hbkluVGhlTG9vcFByb3BzPFQ+PjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgdG9vbCBzaG91bGQgYmUgcmVnaXN0ZXJlZCAoZGVmYXVsdDogdHJ1ZSkuXG4gICAqL1xuICBASW5wdXQoKSBlbmFibGVkID0gdHJ1ZTtcblxuICAvKipcbiAgICogQWx0ZXJuYXRpdmUgaW5wdXQgdXNpbmcgdGhlIGRpcmVjdGl2ZSBzZWxlY3Rvci5cbiAgICogQWxsb3dzOiBbY29waWxvdGtpdEh1bWFuSW5UaGVMb29wXT1cImNvbmZpZ1wiXG4gICAqL1xuICBASW5wdXQoXCJjb3BpbG90a2l0SHVtYW5JblRoZUxvb3BcIilcbiAgc2V0IGNvbmZpZyh2YWx1ZTogUGFydGlhbDxBbmd1bGFySHVtYW5JblRoZUxvb3A8VD4+IHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBpZiAodmFsdWUubmFtZSkgdGhpcy5uYW1lID0gdmFsdWUubmFtZTtcbiAgICAgIGlmICh2YWx1ZS5kZXNjcmlwdGlvbikgdGhpcy5kZXNjcmlwdGlvbiA9IHZhbHVlLmRlc2NyaXB0aW9uO1xuICAgICAgaWYgKFwicGFyYW1ldGVyc1wiIGluIHZhbHVlICYmIHZhbHVlLnBhcmFtZXRlcnMpXG4gICAgICAgIHRoaXMucGFyYW1ldGVycyA9IHZhbHVlLnBhcmFtZXRlcnMgYXMgei5ab2RTY2hlbWE8VD47XG4gICAgICBpZiAoXCJyZW5kZXJcIiBpbiB2YWx1ZSAmJiB2YWx1ZS5yZW5kZXIpIHRoaXMucmVuZGVyID0gdmFsdWUucmVuZGVyO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBzdGF0dXMgY2hhbmdlcy5cbiAgICovXG4gIEBPdXRwdXQoKSBzdGF0dXNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFRvb2xDYWxsU3RhdHVzPigpO1xuXG4gIC8qKlxuICAgKiBUd28td2F5IGJpbmRpbmcgZm9yIHN0YXR1cy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBzdGF0dXMoKTogVG9vbENhbGxTdGF0dXMge1xuICAgIHJldHVybiB0aGlzLl9zdGF0dXM7XG4gIH1cbiAgc2V0IHN0YXR1cyh2YWx1ZTogVG9vbENhbGxTdGF0dXMpIHtcbiAgICAvLyBJbnB1dCBzZXR0ZXIgZm9yIHR3by13YXkgYmluZGluZyAodGhvdWdoIHR5cGljYWxseSByZWFkLW9ubHkpXG4gICAgdGhpcy5fc3RhdHVzID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogRW1pdHMgd2hlbiBhIHJlc3BvbnNlIGlzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLlxuICAgKi9cbiAgQE91dHB1dCgpIHJlc3BvbnNlUHJvdmlkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHVua25vd24+KCk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIHRvb2wgZXhlY3V0aW9uIHN0YXJ0cy5cbiAgICovXG4gIEBPdXRwdXQoKSBleGVjdXRpb25TdGFydGVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIHRvb2wgZXhlY3V0aW9uIGNvbXBsZXRlcy5cbiAgICovXG4gIEBPdXRwdXQoKSBleGVjdXRpb25Db21wbGV0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHVua25vd24+KCk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZW5hYmxlZCkge1xuICAgICAgdGhpcy5yZWdpc3RlclRvb2woKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgY29uc3QgcmVsZXZhbnRDaGFuZ2VzID1cbiAgICAgIGNoYW5nZXNbXCJuYW1lXCJdIHx8XG4gICAgICBjaGFuZ2VzW1wiZGVzY3JpcHRpb25cIl0gfHxcbiAgICAgIGNoYW5nZXNbXCJhcmdzXCJdIHx8XG4gICAgICBjaGFuZ2VzW1wicmVuZGVyXCJdIHx8XG4gICAgICBjaGFuZ2VzW1wiZW5hYmxlZFwiXTtcblxuICAgIGlmIChyZWxldmFudENoYW5nZXMgJiYgIXJlbGV2YW50Q2hhbmdlcy5maXJzdENoYW5nZSkge1xuICAgICAgLy8gUmUtcmVnaXN0ZXIgdGhlIHRvb2wgd2l0aCBuZXcgY29uZmlndXJhdGlvblxuICAgICAgdGhpcy51bnJlZ2lzdGVyVG9vbCgpO1xuICAgICAgaWYgKHRoaXMuZW5hYmxlZCkge1xuICAgICAgICB0aGlzLnJlZ2lzdGVyVG9vbCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5yZWdpc3RlclRvb2woKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9ncmFtbWF0aWNhbGx5IHRyaWdnZXIgYSByZXNwb25zZS5cbiAgICogVXNlZnVsIHdoZW4gdGhlIGRpcmVjdGl2ZSBpcyB1c2VkIGFzIGEgY29udHJvbGxlci5cbiAgICovXG4gIHJlc3BvbmQocmVzdWx0OiB1bmtub3duKTogdm9pZCB7XG4gICAgdGhpcy5oYW5kbGVSZXNwb25zZShyZXN1bHQpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3RlclRvb2woKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm5hbWUgfHwgIXRoaXMuZGVzY3JpcHRpb24gfHwgIXRoaXMucGFyYW1ldGVycyB8fCAhdGhpcy5yZW5kZXIpIHtcbiAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgXCJDb3BpbG90S2l0SHVtYW5JblRoZUxvb3BEaXJlY3RpdmU6IE1pc3NpbmcgcmVxdWlyZWQgaW5wdXRzLiBcIiArXG4gICAgICAgICAgICBcIlJlcXVpcmVkOiBuYW1lLCBkZXNjcmlwdGlvbiwgcGFyYW1ldGVycywgYW5kIHJlbmRlci5cIlxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSBoYW5kbGVyIHRoYXQgcmV0dXJucyBhIFByb21pc2VcbiAgICBjb25zdCBoYW5kbGVyID0gYXN5bmMgKGFyZ3M6IFQpOiBQcm9taXNlPHVua25vd24+ID0+IHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZVN0YXR1cyhUb29sQ2FsbFN0YXR1cy5FeGVjdXRpbmcpO1xuICAgICAgICB0aGlzLnJlc29sdmVQcm9taXNlID0gcmVzb2x2ZTtcbiAgICAgICAgdGhpcy5leGVjdXRpb25TdGFydGVkLmVtaXQoYXJncyk7XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgLy8gQ3JlYXRlIHRoZSBmcm9udGVuZCB0b29sIHdpdGggZW5oYW5jZWQgcmVuZGVyXG4gICAgY29uc3QgZnJvbnRlbmRUb29sOiBBbmd1bGFyRnJvbnRlbmRUb29sPFQ+ID0ge1xuICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24sXG4gICAgICBwYXJhbWV0ZXJzOiB0aGlzLnBhcmFtZXRlcnMsXG4gICAgICBoYW5kbGVyLFxuICAgICAgcmVuZGVyOiB0aGlzLnJlbmRlciwgLy8gV2lsbCBiZSBlbmhhbmNlZCBieSB0aGUgcmVuZGVyIGNvbXBvbmVudFxuICAgIH07XG5cbiAgICAvLyBBZGQgdGhlIHRvb2wgKHJldHVybnMgdm9pZCwgc28gd2UgdXNlIHRoZSB0b29sIG5hbWUgYXMgSUQpXG4gICAgdGhpcy5jb3BpbG90a2l0LmNvcGlsb3RraXQuYWRkVG9vbChmcm9udGVuZFRvb2wpO1xuICAgIHRoaXMudG9vbElkID0gdGhpcy5uYW1lO1xuXG4gICAgLy8gUmVnaXN0ZXIgdGhlIHJlbmRlciB3aXRoIHJlc3BvbmQgY2FwYWJpbGl0eVxuICAgIHRoaXMuY29waWxvdGtpdC5yZWdpc3RlclRvb2xSZW5kZXIodGhpcy5uYW1lLCB7XG4gICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICByZW5kZXI6IHRoaXMuY3JlYXRlRW5oYW5jZWRSZW5kZXIoKSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdW5yZWdpc3RlclRvb2woKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudG9vbElkKSB7XG4gICAgICB0aGlzLmNvcGlsb3RraXQuY29waWxvdGtpdC5yZW1vdmVUb29sKHRoaXMudG9vbElkKTtcbiAgICAgIHRoaXMuY29waWxvdGtpdC51bnJlZ2lzdGVyVG9vbFJlbmRlcih0aGlzLm5hbWUpO1xuICAgICAgdGhpcy50b29sSWQgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVFbmhhbmNlZFJlbmRlcigpOiBUeXBlPGFueT4gfCBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICAvLyBJZiBpdCdzIGEgdGVtcGxhdGUsIHdlIG5lZWQgdG8gd3JhcCBpdCB3aXRoIG91ciByZXNwb25kIGZ1bmN0aW9uXG4gICAgLy8gVGhpcyBpcyBoYW5kbGVkIGJ5IHJldHVybmluZyBhIHNwZWNpYWwgbWFya2VyIHRoYXQgdGhlIHJlbmRlciBjb21wb25lbnRcbiAgICAvLyB3aWxsIHJlY29nbml6ZSBhbmQgZW5oYW5jZSB3aXRoIHRoZSByZXNwb25kIGZ1bmN0aW9uXG5cbiAgICAvLyBTdG9yZSByZWZlcmVuY2UgdG8gdGhpcyBkaXJlY3RpdmUgaW5zdGFuY2UgZm9yIHRoZSByZW5kZXIgY29tcG9uZW50XG4gICAgKHRoaXMucmVuZGVyIGFzIGFueSkuX19odW1hbkluVGhlTG9vcERpcmVjdGl2ZSA9IHRoaXM7XG4gICAgKHRoaXMucmVuZGVyIGFzIGFueSkuX19odW1hbkluVGhlTG9vcFN0YXR1cyA9IHRoaXMuc3RhdHVzU2lnbmFsO1xuXG4gICAgcmV0dXJuIHRoaXMucmVuZGVyO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVSZXNwb25zZShyZXN1bHQ6IHVua25vd24pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZXNvbHZlUHJvbWlzZSkge1xuICAgICAgdGhpcy5yZXNvbHZlUHJvbWlzZShyZXN1bHQpO1xuICAgICAgdGhpcy51cGRhdGVTdGF0dXMoVG9vbENhbGxTdGF0dXMuQ29tcGxldGUpO1xuICAgICAgdGhpcy5yZXNvbHZlUHJvbWlzZSA9IG51bGw7XG4gICAgICB0aGlzLnJlc3BvbnNlUHJvdmlkZWQuZW1pdChyZXN1bHQpO1xuICAgICAgdGhpcy5leGVjdXRpb25Db21wbGV0ZWQuZW1pdChyZXN1bHQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU3RhdHVzKHN0YXR1czogVG9vbENhbGxTdGF0dXMpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0dXMgPSBzdGF0dXM7XG4gICAgdGhpcy5zdGF0dXNTaWduYWwuc2V0KHN0YXR1cyk7XG4gICAgdGhpcy5zdGF0dXNDaGFuZ2UuZW1pdChzdGF0dXMpO1xuICB9XG59XG5cbi8qKlxuICogSGVscGVyIGRpcmVjdGl2ZSB0byBwcm92aWRlIHJlc3BvbmQgZnVuY3Rpb24gaW4gdGVtcGxhdGVzLlxuICogVGhpcyB3b3VsZCBiZSB1c2VkIGludGVybmFsbHkgYnkgdGhlIHRvb2wgcmVuZGVyIGNvbXBvbmVudC5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcIltjb3BpbG90a2l0SHVtYW5JblRoZUxvb3BSZXNwb25kXVwiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBDb3BpbG90S2l0SHVtYW5JblRoZUxvb3BSZXNwb25kRGlyZWN0aXZlIHtcbiAgQElucHV0KCkgY29waWxvdGtpdEh1bWFuSW5UaGVMb29wUmVzcG9uZD86IChyZXN1bHQ6IHVua25vd24pID0+IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIENvbnZlbmllbmNlIG1ldGhvZCBmb3IgdGVtcGxhdGVzIHRvIGNhbGwgcmVzcG9uZC5cbiAgICovXG4gIHJlc3BvbmQocmVzdWx0OiB1bmtub3duKTogdm9pZCB7XG4gICAgdGhpcy5jb3BpbG90a2l0SHVtYW5JblRoZUxvb3BSZXNwb25kPy4ocmVzdWx0KTtcbiAgfVxufVxuIl19
@@ -78,11 +78,21 @@ export class CopilotSlotComponent {
78
78
  return;
79
79
  }
80
80
  const props = this.context;
81
- // Update props using setInput
81
+ // Update props using setInput, only for declared inputs
82
82
  if (props) {
83
- for (const key in props) {
84
- const value = props[key];
85
- this.componentRef.setInput(key, value);
83
+ const ctor = this.componentRef.instance.constructor;
84
+ const cmpDef = ctor?.ɵcmp;
85
+ const declaredInputs = new Set(Object.keys(cmpDef?.inputs ?? {}));
86
+ if (declaredInputs.has('props')) {
87
+ this.componentRef.setInput('props', props);
88
+ }
89
+ else {
90
+ for (const key in props) {
91
+ if (declaredInputs.has(key)) {
92
+ const value = props[key];
93
+ this.componentRef.setInput(key, value);
94
+ }
95
+ }
86
96
  }
87
97
  }
88
98
  // Trigger change detection
@@ -141,4 +151,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
141
151
  type: ViewChild,
142
152
  args: ['slotContainer', { read: ViewContainerRef, static: true }]
143
153
  }] } });
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdC1zbG90LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc2xvdHMvY29waWxvdC1zbG90LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxXQUFXLEVBQ1gsZ0JBQWdCLEVBSWhCLE1BQU0sRUFDTix1QkFBdUIsRUFFdkIsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7QUFHMUM7Ozs7Ozs7Ozs7OztHQVlHO0FBb0JILE1BQU0sT0FBTyxvQkFBb0I7SUFZSztJQUMxQjtJQVpELElBQUksQ0FBZ0M7SUFDcEMsT0FBTyxDQUFPO0lBQ2QsZ0JBQWdCLENBQWE7SUFDN0IsT0FBTyxDQUF3QztJQUdoRCxhQUFhLENBQW9CO0lBRWpDLFlBQVksQ0FBTztJQUUzQixZQUNvQyxhQUErQixFQUN6RCxHQUFzQjtRQURJLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUN6RCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUM3QixDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDcEIsNkNBQTZDO1lBQzdDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDO2FBQU0sSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ25ELGtEQUFrRDtZQUNsRCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNCLENBQUM7YUFBTSxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzlCLHdDQUF3QztZQUN4QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsS0FBVTtRQUNuQixPQUFPLEtBQUssWUFBWSxXQUFXLENBQUM7SUFDdEMsQ0FBQztJQUVPLFVBQVU7UUFDaEIsd0RBQXdEO1FBQ3hELElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLE9BQU87UUFDVCxDQUFDO1FBRUQseUJBQXlCO1FBQ3pCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFFekIsMkNBQTJDO1FBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDekMsT0FBTztRQUNULENBQUM7UUFFRCw2Q0FBNkM7UUFDN0MsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ2pELElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDZixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWlCO2dCQUN4QyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU87Z0JBQ25CLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTzthQUN0QixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEQsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBRTNCLDhCQUE4QjtRQUM5QixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsS0FBSyxNQUFNLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDeEIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDekMsQ0FBQztRQUNILENBQUM7UUFFRCwyQkFBMkI7UUFDM0IsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN0RCxDQUFDO0lBQ0gsQ0FBQzt3R0FwRlUsb0JBQW9CLGtCQVlyQixnQkFBZ0I7NEZBWmYsb0JBQW9CLDJRQU1LLGdCQUFnQixnRUFyQjFDOzs7Ozs7Ozs7Ozs7R0FZVCwyREFiUyxZQUFZOzs0RkFnQlgsb0JBQW9CO2tCQW5CaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7R0FZVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OzBCQWFJLE1BQU07MkJBQUMsZ0JBQWdCO3lFQVhqQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0UsYUFBYTtzQkFEcEIsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBPbkluaXQsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgSW5qZWN0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyByZW5kZXJTbG90IH0gZnJvbSAnLi9zbG90LnV0aWxzJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBAaW50ZXJuYWwgLSBUaGlzIGNvbXBvbmVudCBpcyBmb3IgaW50ZXJuYWwgdXNlIG9ubHkuXG4gKiBTaW1wbGUgc2xvdCBjb21wb25lbnQgZm9yIHJlbmRlcmluZyBjdXN0b20gY29udGVudCBvciBkZWZhdWx0cy5cbiAqIFN1cHBvcnRzIHRlbXBsYXRlcyBhbmQgY29tcG9uZW50cyBvbmx5LlxuICogXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPCEtLSBXaXRoIHRlbXBsYXRlIC0tPlxuICogPGNvcGlsb3Qtc2xvdCBbc2xvdF09XCJzZW5kQnV0dG9uVGVtcGxhdGVcIiBbY29udGV4dF09XCJidXR0b25Db250ZXh0XCI+XG4gKiAgIDxidXR0b24gY2xhc3M9XCJkZWZhdWx0LWJ0blwiPkRlZmF1bHQ8L2J1dHRvbj5cbiAqIDwvY29waWxvdC1zbG90PlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NvcGlsb3Qtc2xvdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDwhLS0gSWYgc2xvdCB0ZW1wbGF0ZSBwcm92aWRlZCwgcmVuZGVyIGl0IC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzbG90ICYmIGlzVGVtcGxhdGUoc2xvdClcIlxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwic2xvdFwiXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiY29udGV4dCB8fCB7fVwiPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIFxuICAgIDwhLS0gSWYgbm90IGEgdGVtcGxhdGUsIHdlJ2xsIGhhbmRsZSBpbiBjb2RlIC0tPlxuICAgIDxuZy1jb250YWluZXIgI3Nsb3RDb250YWluZXI+PC9uZy1jb250YWluZXI+XG4gICAgXG4gICAgPCEtLSBEZWZhdWx0IGNvbnRlbnQgKG9ubHkgc2hvd24gaWYgbm8gc2xvdCkgLS0+XG4gICAgPG5nLWNvbnRlbnQgKm5nSWY9XCIhc2xvdCAmJiAhZGVmYXVsdENvbXBvbmVudFwiPjwvbmctY29udGVudD5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ29waWxvdFNsb3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHNsb3Q/OiBUZW1wbGF0ZVJlZjxhbnk+IHwgVHlwZTxhbnk+O1xuICBASW5wdXQoKSBjb250ZXh0PzogYW55O1xuICBASW5wdXQoKSBkZWZhdWx0Q29tcG9uZW50PzogVHlwZTxhbnk+O1xuICBASW5wdXQoKSBvdXRwdXRzPzogUmVjb3JkPHN0cmluZywgKGV2ZW50OiBhbnkpID0+IHZvaWQ+O1xuICBcbiAgQFZpZXdDaGlsZCgnc2xvdENvbnRhaW5lcicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pIFxuICBwcml2YXRlIHNsb3RDb250YWluZXIhOiBWaWV3Q29udGFpbmVyUmVmO1xuICBcbiAgcHJpdmF0ZSBjb21wb25lbnRSZWY/OiBhbnk7XG4gIFxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KFZpZXdDb250YWluZXJSZWYpIHByaXZhdGUgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuICBcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJTbG90KCk7XG4gIH1cbiAgXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snc2xvdCddKSB7XG4gICAgICAvLyBTbG90IGNoYW5nZWQsIG5lZWQgdG8gcmUtcmVuZGVyIGNvbXBsZXRlbHlcbiAgICAgIHRoaXMucmVuZGVyU2xvdCgpO1xuICAgIH0gZWxzZSBpZiAoY2hhbmdlc1snY29udGV4dCddICYmIHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICAvLyBKdXN0IGNvbnRleHQgY2hhbmdlZCwgdXBkYXRlIGV4aXN0aW5nIGNvbXBvbmVudFxuICAgICAgdGhpcy51cGRhdGVDb21wb25lbnRQcm9wcygpO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0gZWxzZSBpZiAoY2hhbmdlc1snY29udGV4dCddKSB7XG4gICAgICAvLyBObyBjb21wb25lbnQgcmVmIHlldCwgcmVuZGVyIHRoZSBzbG90XG4gICAgICB0aGlzLnJlbmRlclNsb3QoKTtcbiAgICB9XG4gIH1cbiAgXG4gIGlzVGVtcGxhdGUodmFsdWU6IGFueSk6IHZhbHVlIGlzIFRlbXBsYXRlUmVmPGFueT4ge1xuICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmO1xuICB9XG4gIFxuICBwcml2YXRlIHJlbmRlclNsb3QoKTogdm9pZCB7XG4gICAgLy8gU2tpcCBpZiBpdCdzIGEgdGVtcGxhdGUgKGhhbmRsZWQgYnkgbmdUZW1wbGF0ZU91dGxldClcbiAgICBpZiAodGhpcy5zbG90ICYmIHRoaXMuaXNUZW1wbGF0ZSh0aGlzLnNsb3QpKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IG51bGw7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIC8vIENsZWFyIHByZXZpb3VzIGNvbnRlbnRcbiAgICB0aGlzLnNsb3RDb250YWluZXIuY2xlYXIoKTtcbiAgICB0aGlzLmNvbXBvbmVudFJlZiA9IG51bGw7XG4gICAgXG4gICAgLy8gU2tpcCBpZiBubyBzbG90IGFuZCBubyBkZWZhdWx0IGNvbXBvbmVudFxuICAgIGlmICghdGhpcy5zbG90ICYmICF0aGlzLmRlZmF1bHRDb21wb25lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgLy8gVXNlIHRoZSB1dGlsaXR5IHRvIHJlbmRlciBvdGhlciBzbG90IHR5cGVzXG4gICAgaWYgKHRoaXMuc2xvdCB8fCB0aGlzLmRlZmF1bHRDb21wb25lbnQpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gcmVuZGVyU2xvdCh0aGlzLnNsb3RDb250YWluZXIsIHtcbiAgICAgICAgc2xvdDogdGhpcy5zbG90LFxuICAgICAgICBkZWZhdWx0Q29tcG9uZW50OiB0aGlzLmRlZmF1bHRDb21wb25lbnQhLFxuICAgICAgICBwcm9wczogdGhpcy5jb250ZXh0LFxuICAgICAgICBvdXRwdXRzOiB0aGlzLm91dHB1dHNcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBcbiAgcHJpdmF0ZSB1cGRhdGVDb21wb25lbnRQcm9wcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29tcG9uZW50UmVmIHx8ICF0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBcbiAgICBjb25zdCBwcm9wcyA9IHRoaXMuY29udGV4dDtcbiAgICBcbiAgICAvLyBVcGRhdGUgcHJvcHMgdXNpbmcgc2V0SW5wdXRcbiAgICBpZiAocHJvcHMpIHtcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIHByb3BzKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gcHJvcHNba2V5XTtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuc2V0SW5wdXQoa2V5LCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIFxuICAgIC8vIFRyaWdnZXIgY2hhbmdlIGRldGVjdGlvblxuICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICAgdGhpcy5jb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxufSJdfQ==
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdC1zbG90LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc2xvdHMvY29waWxvdC1zbG90LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxXQUFXLEVBQ1gsZ0JBQWdCLEVBSWhCLE1BQU0sRUFDTix1QkFBdUIsRUFFdkIsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7QUFHMUM7Ozs7Ozs7Ozs7OztHQVlHO0FBb0JILE1BQU0sT0FBTyxvQkFBb0I7SUFZSztJQUMxQjtJQVpELElBQUksQ0FBZ0M7SUFDcEMsT0FBTyxDQUFPO0lBQ2QsZ0JBQWdCLENBQWE7SUFDN0IsT0FBTyxDQUF3QztJQUdoRCxhQUFhLENBQW9CO0lBRWpDLFlBQVksQ0FBTztJQUUzQixZQUNvQyxhQUErQixFQUN6RCxHQUFzQjtRQURJLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUN6RCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUM3QixDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDcEIsNkNBQTZDO1lBQzdDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDO2FBQU0sSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ25ELGtEQUFrRDtZQUNsRCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEs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Ozs7Ozs7R0FZVCwyREFiUyxZQUFZOzs0RkFnQlgsb0JBQW9CO2tCQW5CaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7R0FZVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OzBCQWFJLE1BQU07MkJBQUMsZ0JBQWdCO3lFQVhqQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0UsYUFBYTtzQkFEcEIsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBPbkluaXQsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgSW5qZWN0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyByZW5kZXJTbG90IH0gZnJvbSAnLi9zbG90LnV0aWxzJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBAaW50ZXJuYWwgLSBUaGlzIGNvbXBvbmVudCBpcyBmb3IgaW50ZXJuYWwgdXNlIG9ubHkuXG4gKiBTaW1wbGUgc2xvdCBjb21wb25lbnQgZm9yIHJlbmRlcmluZyBjdXN0b20gY29udGVudCBvciBkZWZhdWx0cy5cbiAqIFN1cHBvcnRzIHRlbXBsYXRlcyBhbmQgY29tcG9uZW50cyBvbmx5LlxuICogXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPCEtLSBXaXRoIHRlbXBsYXRlIC0tPlxuICogPGNvcGlsb3Qtc2xvdCBbc2xvdF09XCJzZW5kQnV0dG9uVGVtcGxhdGVcIiBbY29udGV4dF09XCJidXR0b25Db250ZXh0XCI+XG4gKiAgIDxidXR0b24gY2xhc3M9XCJkZWZhdWx0LWJ0blwiPkRlZmF1bHQ8L2J1dHRvbj5cbiAqIDwvY29waWxvdC1zbG90PlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NvcGlsb3Qtc2xvdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDwhLS0gSWYgc2xvdCB0ZW1wbGF0ZSBwcm92aWRlZCwgcmVuZGVyIGl0IC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzbG90ICYmIGlzVGVtcGxhdGUoc2xvdClcIlxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwic2xvdFwiXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiY29udGV4dCB8fCB7fVwiPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIFxuICAgIDwhLS0gSWYgbm90IGEgdGVtcGxhdGUsIHdlJ2xsIGhhbmRsZSBpbiBjb2RlIC0tPlxuICAgIDxuZy1jb250YWluZXIgI3Nsb3RDb250YWluZXI+PC9uZy1jb250YWluZXI+XG4gICAgXG4gICAgPCEtLSBEZWZhdWx0IGNvbnRlbnQgKG9ubHkgc2hvd24gaWYgbm8gc2xvdCkgLS0+XG4gICAgPG5nLWNvbnRlbnQgKm5nSWY9XCIhc2xvdCAmJiAhZGVmYXVsdENvbXBvbmVudFwiPjwvbmctY29udGVudD5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ29waWxvdFNsb3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHNsb3Q/OiBUZW1wbGF0ZVJlZjxhbnk+IHwgVHlwZTxhbnk+O1xuICBASW5wdXQoKSBjb250ZXh0PzogYW55O1xuICBASW5wdXQoKSBkZWZhdWx0Q29tcG9uZW50PzogVHlwZTxhbnk+O1xuICBASW5wdXQoKSBvdXRwdXRzPzogUmVjb3JkPHN0cmluZywgKGV2ZW50OiBhbnkpID0+IHZvaWQ+O1xuICBcbiAgQFZpZXdDaGlsZCgnc2xvdENvbnRhaW5lcicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pIFxuICBwcml2YXRlIHNsb3RDb250YWluZXIhOiBWaWV3Q29udGFpbmVyUmVmO1xuICBcbiAgcHJpdmF0ZSBjb21wb25lbnRSZWY/OiBhbnk7XG4gIFxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KFZpZXdDb250YWluZXJSZWYpIHByaXZhdGUgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuICBcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJTbG90KCk7XG4gIH1cbiAgXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snc2xvdCddKSB7XG4gICAgICAvLyBTbG90IGNoYW5nZWQsIG5lZWQgdG8gcmUtcmVuZGVyIGNvbXBsZXRlbHlcbiAgICAgIHRoaXMucmVuZGVyU2xvdCgpO1xuICAgIH0gZWxzZSBpZiAoY2hhbmdlc1snY29udGV4dCddICYmIHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICAvLyBKdXN0IGNvbnRleHQgY2hhbmdlZCwgdXBkYXRlIGV4aXN0aW5nIGNvbXBvbmVudFxuICAgICAgdGhpcy51cGRhdGVDb21wb25lbnRQcm9wcygpO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0gZWxzZSBpZiAoY2hhbmdlc1snY29udGV4dCddKSB7XG4gICAgICAvLyBObyBjb21wb25lbnQgcmVmIHlldCwgcmVuZGVyIHRoZSBzbG90XG4gICAgICB0aGlzLnJlbmRlclNsb3QoKTtcbiAgICB9XG4gIH1cbiAgXG4gIGlzVGVtcGxhdGUodmFsdWU6IGFueSk6IHZhbHVlIGlzIFRlbXBsYXRlUmVmPGFueT4ge1xuICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmO1xuICB9XG4gIFxuICBwcml2YXRlIHJlbmRlclNsb3QoKTogdm9pZCB7XG4gICAgLy8gU2tpcCBpZiBpdCdzIGEgdGVtcGxhdGUgKGhhbmRsZWQgYnkgbmdUZW1wbGF0ZU91dGxldClcbiAgICBpZiAodGhpcy5zbG90ICYmIHRoaXMuaXNUZW1wbGF0ZSh0aGlzLnNsb3QpKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IG51bGw7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIC8vIENsZWFyIHByZXZpb3VzIGNvbnRlbnRcbiAgICB0aGlzLnNsb3RDb250YWluZXIuY2xlYXIoKTtcbiAgICB0aGlzLmNvbXBvbmVudFJlZiA9IG51bGw7XG4gICAgXG4gICAgLy8gU2tpcCBpZiBubyBzbG90IGFuZCBubyBkZWZhdWx0IGNvbXBvbmVudFxuICAgIGlmICghdGhpcy5zbG90ICYmICF0aGlzLmRlZmF1bHRDb21wb25lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgLy8gVXNlIHRoZSB1dGlsaXR5IHRvIHJlbmRlciBvdGhlciBzbG90IHR5cGVzXG4gICAgaWYgKHRoaXMuc2xvdCB8fCB0aGlzLmRlZmF1bHRDb21wb25lbnQpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gcmVuZGVyU2xvdCh0aGlzLnNsb3RDb250YWluZXIsIHtcbiAgICAgICAgc2xvdDogdGhpcy5zbG90LFxuICAgICAgICBkZWZhdWx0Q29tcG9uZW50OiB0aGlzLmRlZmF1bHRDb21wb25lbnQhLFxuICAgICAgICBwcm9wczogdGhpcy5jb250ZXh0LFxuICAgICAgICBvdXRwdXRzOiB0aGlzLm91dHB1dHNcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBcbiAgcHJpdmF0ZSB1cGRhdGVDb21wb25lbnRQcm9wcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29tcG9uZW50UmVmIHx8ICF0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBcbiAgICBjb25zdCBwcm9wcyA9IHRoaXMuY29udGV4dDtcbiAgICBcbiAgICAvLyBVcGRhdGUgcHJvcHMgdXNpbmcgc2V0SW5wdXQsIG9ubHkgZm9yIGRlY2xhcmVkIGlucHV0c1xuICAgIGlmIChwcm9wcykge1xuICAgICAgY29uc3QgY3RvciA9IHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmNvbnN0cnVjdG9yIGFzIGFueTtcbiAgICAgIGNvbnN0IGNtcERlZjogYW55ID0gY3Rvcj8uybVjbXA7XG4gICAgICBjb25zdCBkZWNsYXJlZElucHV0cyA9IG5ldyBTZXQ8c3RyaW5nPihPYmplY3Qua2V5cyhjbXBEZWY/LmlucHV0cyA/PyB7fSkpO1xuXG4gICAgICBpZiAoZGVjbGFyZWRJbnB1dHMuaGFzKCdwcm9wcycpKSB7XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmLnNldElucHV0KCdwcm9wcycsIHByb3BzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIHByb3BzKSB7XG4gICAgICAgICAgaWYgKGRlY2xhcmVkSW5wdXRzLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHByb3BzW2tleV07XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5zZXRJbnB1dChrZXksIHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLy8gVHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uXG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -57,10 +57,19 @@ function createComponent(viewContainer, component, props, injector, outputs) {
57
57
  injector
58
58
  });
59
59
  if (props) {
60
- // Apply props using setInput
61
- for (const key in props) {
62
- const value = props[key];
63
- componentRef.setInput(key, value);
60
+ // Apply props using setInput, but only for declared inputs
61
+ const cmpDef = component.ɵcmp;
62
+ const declaredInputs = new Set(Object.keys(cmpDef?.inputs ?? {}));
63
+ if (declaredInputs.has('props')) {
64
+ componentRef.setInput('props', props);
65
+ }
66
+ else {
67
+ for (const key in props) {
68
+ if (declaredInputs.has(key)) {
69
+ const value = props[key];
70
+ componentRef.setInput(key, value);
71
+ }
72
+ }
64
73
  }
65
74
  }
66
75
  if (outputs) {
@@ -219,4 +228,4 @@ export function createSlotRenderer(defaultComponent, slotName) {
219
228
  });
220
229
  };
221
230
  }
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xvdC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc2xvdHMvc2xvdC51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsV0FBVyxFQUtYLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQW1ELFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU1Rjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFDSCxNQUFNLFVBQVUsVUFBVSxDQUN4QixhQUErQixFQUMvQixPQUE2QjtJQUU3QixNQUFNLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRXJFLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUV0QixNQUFNLGFBQWEsR0FBRyxJQUFJLElBQUksZ0JBQWdCLENBQUM7SUFDL0MsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLElBQUksYUFBYSxDQUFDLFFBQVEsQ0FBQztJQUU3RCxJQUFJLGFBQWEsWUFBWSxXQUFXLEVBQUUsQ0FBQztRQUN6QywrQkFBK0I7UUFDL0IsT0FBTyxhQUFhLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFO1lBQ3JELFNBQVMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUN0QixLQUFLLEVBQUUsS0FBSyxJQUFJLEVBQUU7U0FDWixDQUFDLENBQUM7SUFDWixDQUFDO1NBQU0sSUFBSSxlQUFlLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztRQUMxQyxnREFBZ0Q7UUFDaEQsSUFBSSxDQUFDO1lBQ0gsT0FBTyxlQUFlLENBQ3BCLGFBQWEsRUFDYixhQUF3QixFQUN4QixLQUFLLEVBQ0wsaUJBQWlCLEVBQ2pCLE9BQU8sQ0FDUixDQUFDO1FBQ0osQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLDZC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O0FBRUQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLGdCQUF5QixFQUN6QixRQUFpQjtJQUVqQixtRUFBbUU7SUFDbkUsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBRWpELE9BQU8sQ0FDTCxhQUErQixFQUMvQixJQUFtQixFQUNuQixLQUFrQixFQUNsQixPQUE4QyxFQUM5QyxFQUFFO1FBQ0YsK0NBQStDO1FBQy9DLElBQUksUUFBUSxJQUFJLENBQUMsSUFBSSxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ2hDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkMsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDVixJQUFJLEtBQUssQ0FBQyxTQUFTO29CQUFFLElBQUksR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO3FCQUN2QyxJQUFJLEtBQUssQ0FBQyxRQUFRO29CQUFFLElBQUksR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1lBQ2pELENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxVQUFVLENBQUMsYUFBYSxFQUFFO1lBQy9CLElBQUk7WUFDSixnQkFBZ0I7WUFDaEIsS0FBSztZQUNMLE9BQU87U0FDUixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgXG4gIFR5cGUsIFxuICBUZW1wbGF0ZVJlZiwgXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIENvbXBvbmVudFJlZixcbiAgRW1iZWRkZWRWaWV3UmVmLFxuICBJbmplY3RvcixcbiAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2xvdFZhbHVlLCBSZW5kZXJTbG90T3B0aW9ucywgU2xvdFJlZ2lzdHJ5RW50cnksIFNMT1RfQ09ORklHIH0gZnJvbSAnLi9zbG90LnR5cGVzJztcblxuLyoqXG4gKiBSZW5kZXJzIGEgc2xvdCB2YWx1ZSBpbnRvIGEgVmlld0NvbnRhaW5lclJlZi5cbiAqIFRoaXMgaXMgdGhlIGNvcmUgdXRpbGl0eSBmb3Igc2xvdCByZW5kZXJpbmcuXG4gKiBcbiAqIEBwYXJhbSB2aWV3Q29udGFpbmVyIC0gVGhlIFZpZXdDb250YWluZXJSZWYgdG8gcmVuZGVyIGludG9cbiAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9ucyBmb3IgcmVuZGVyaW5nIHRoZSBzbG90XG4gKiBAcmV0dXJucyBUaGUgY3JlYXRlZCBjb21wb25lbnQgb3IgZW1iZWRkZWQgdmlldyByZWZlcmVuY2VcbiAqIFxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGV4cG9ydCBjbGFzcyBNeUNvbXBvbmVudCB7XG4gKiAgIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSBjb250YWluZXIhOiBWaWV3Q29udGFpbmVyUmVmO1xuICogICBcbiAqICAgcmVuZGVyQnV0dG9uKCkge1xuICogICAgIHJlbmRlclNsb3QodGhpcy5jb250YWluZXIsIHtcbiAqICAgICAgIHNsb3Q6IHRoaXMuYnV0dG9uT3ZlcnJpZGUsXG4gKiAgICAgICBkZWZhdWx0Q29tcG9uZW50OiBEZWZhdWx0QnV0dG9uLFxuICogICAgICAgcHJvcHM6IHsgdGV4dDogJ0NsaWNrIG1lJyB9LFxuICogICAgICAgb3V0cHV0czogeyBjbGljazogKGV2ZW50KSA9PiB0aGlzLmhhbmRsZUNsaWNrKGV2ZW50KSB9XG4gKiAgICAgfSk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyU2xvdDxUID0gYW55PihcbiAgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgb3B0aW9uczogUmVuZGVyU2xvdE9wdGlvbnM8VD5cbik6IENvbXBvbmVudFJlZjxUPiB8IEVtYmVkZGVkVmlld1JlZjxUPiB8IG51bGwge1xuICBjb25zdCB7IHNsb3QsIGRlZmF1bHRDb21wb25lbnQsIHByb3BzLCBpbmplY3Rvciwgb3V0cHV0cyB9ID0gb3B0aW9ucztcbiAgXG4gIHZpZXdDb250YWluZXIuY2xlYXIoKTtcbiAgXG4gIGNvbnN0IGVmZmVjdGl2ZVNsb3QgPSBzbG90ID8/IGRlZmF1bHRDb21wb25lbnQ7XG4gIGNvbnN0IGVmZmVjdGl2ZUluamVjdG9yID0gaW5qZWN0b3IgPz8gdmlld0NvbnRhaW5lci5pbmplY3RvcjtcbiAgXG4gIGlmIChlZmZlY3RpdmVTbG90IGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcbiAgICAvLyBUZW1wbGF0ZVJlZjogcmVuZGVyIHRlbXBsYXRlXG4gICAgcmV0dXJuIHZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KGVmZmVjdGl2ZVNsb3QsIHtcbiAgICAgICRpbXBsaWNpdDogcHJvcHMgPz8ge30sXG4gICAgICBwcm9wczogcHJvcHMgPz8ge31cbiAgICB9IGFzIGFueSk7XG4gIH0gZWxzZSBpZiAoaXNDb21wb25lbnRUeXBlKGVmZmVjdGl2ZVNsb3QpKSB7XG4gICAgLy8gQ29tcG9uZW50IHR5cGUgLSB3cmFwIGluIHRyeS9jYXRjaCBmb3Igc2FmZXR5XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBjcmVhdGVDb21wb25lbnQoXG4gICAgICAgIHZpZXdDb250YWluZXIsXG4gICAgICAgIGVmZmVjdGl2ZVNsb3QgYXMgVHlwZTxUPixcbiAgICAgICAgcHJvcHMsXG4gICAgICAgIGVmZmVjdGl2ZUluamVjdG9yLFxuICAgICAgICBvdXRwdXRzXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ0ZhaWxlZCB0byBjcmVhdGUgY29tcG9uZW50OicsIGVmZmVjdGl2ZVNsb3QsIGVycm9yKTtcbiAgICAgIC8vIEZhbGwgdGhyb3VnaCB0byBkZWZhdWx0IGNvbXBvbmVudFxuICAgIH1cbiAgfVxuICBcbiAgLy8gRGVmYXVsdDogcmVuZGVyIGRlZmF1bHQgY29tcG9uZW50IGlmIHByb3ZpZGVkXG4gIHJldHVybiBkZWZhdWx0Q29tcG9uZW50ID8gY3JlYXRlQ29tcG9uZW50KFxuICAgIHZpZXdDb250YWluZXIsXG4gICAgZGVmYXVsdENvbXBvbmVudCxcbiAgICBwcm9wcyxcbiAgICBlZmZlY3RpdmVJbmplY3RvcixcbiAgICBvdXRwdXRzXG4gICkgOiBudWxsO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBjb21wb25lbnQgYW5kIGFwcGxpZXMgcHJvcGVydGllcy5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQ29tcG9uZW50PFQ+KFxuICB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLFxuICBjb21wb25lbnQ6IFR5cGU8VD4sXG4gIHByb3BzPzogUGFydGlhbDxUPixcbiAgaW5qZWN0b3I/OiBJbmplY3RvcixcbiAgb3V0cHV0cz86IFJlY29yZDxzdHJpbmcsIChldmVudDogYW55KSA9PiB2b2lkPlxuKTogQ29tcG9uZW50UmVmPFQ+IHtcbiAgY29uc3QgY29tcG9uZW50UmVmID0gdmlld0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50LCB7XG4gICAgaW5qZWN0b3JcbiAgfSk7XG4gIFxuICBpZiAocHJvcHMpIHtcbiAgICAvLyBBcHBseSBwcm9wcyB1c2luZyBzZXRJbnB1dFxuICAgIGZvciAoY29uc3Qga2V5IGluIHByb3BzKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHByb3BzW2tleV07XG4gICAgICBjb21wb25lbnRSZWYuc2V0SW5wdXQoa2V5LCB2YWx1ZSk7XG4gICAgfVxuICB9XG4gIFxuICBpZiAob3V0cHV0cykge1xuICAgIC8vIFdpcmUgdXAgb3V0cHV0IGV2ZW50IGhhbmRsZXJzIHdpdGggcHJvcGVyIGNsZWFudXBcbiAgICBjb25zdCBpbnN0YW5jZSA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBhbnk7XG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uczogYW55W10gPSBbXTtcbiAgICBcbiAgICBmb3IgKGNvbnN0IFtldmVudE5hbWUsIGhhbmRsZXJdIG9mIE9iamVjdC5lbnRyaWVzKG91dHB1dHMpKSB7XG4gICAgICBpZiAoaW5zdGFuY2VbZXZlbnROYW1lXT8uc3Vic2NyaWJlKSB7XG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IGluc3RhbmNlW2V2ZW50TmFtZV0uc3Vic2NyaWJlKGhhbmRsZXIpO1xuICAgICAgICBzdWJzY3JpcHRpb25zLnB1c2goc3Vic2NyaXB0aW9uKTtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLy8gUmVnaXN0ZXIgY2xlYW51cCBvbiBjb21wb25lbnQgZGVzdHJveVxuICAgIGNvbXBvbmVudFJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YiA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XG4gICAgfSk7XG4gIH1cbiAgXG4gIC8vIFRyaWdnZXIgY2hhbmdlIGRldGVjdGlvblxuICBjb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICBcbiAgcmV0dXJuIGNvbXBvbmVudFJlZjtcbn1cblxuXG4vKipcbiAqIENoZWNrcyBpZiBhIHZhbHVlIGlzIGEgY29tcG9uZW50IHR5cGUuXG4gKiBTaW1wbGlmaWVkIGNoZWNrIC0gcmVseSBvbiB0cnkvY2F0Y2ggZm9yIGFjdHVhbCB2YWxpZGF0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDb21wb25lbnRUeXBlKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgLy8gQXJyb3cgZnVuY3Rpb25zIGFuZCByZWd1bGFyIGZ1bmN0aW9ucyB3aXRob3V0IGEgcHJvdG90eXBlIGFyZSBub3QgY29tcG9uZW50c1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nICYmICEhdmFsdWUucHJvdG90eXBlO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIHZhbHVlIGlzIGEgdmFsaWQgc2xvdCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2xvdFZhbHVlKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBTbG90VmFsdWUge1xuICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZiB8fCBpc0NvbXBvbmVudFR5cGUodmFsdWUpO1xufVxuXG4vKipcbiAqIE5vcm1hbGl6ZXMgYSBzbG90IHZhbHVlIHRvIGEgY29uc2lzdGVudCBmb3JtYXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVTbG90VmFsdWU8VCA9IGFueT4oXG4gIHZhbHVlOiBTbG90VmFsdWU8VD4gfCB1bmRlZmluZWQsXG4gIGRlZmF1bHRDb21wb25lbnQ6IFR5cGU8VD4gfCB1bmRlZmluZWRcbik6IFNsb3RSZWdpc3RyeUVudHJ5PFQ+IHtcbiAgaWYgKCF2YWx1ZSkge1xuICAgIHJldHVybiB7IGNvbXBvbmVudDogZGVmYXVsdENvbXBvbmVudCB9O1xuICB9XG4gIFxuICBpZiAodmFsdWUgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xuICAgIHJldHVybiB7IHRlbXBsYXRlOiB2YWx1ZSB9O1xuICB9XG4gIFxuICBpZiAoaXNDb21wb25lbnRUeXBlKHZhbHVlKSkge1xuICAgIHJldHVybiB7IGNvbXBvbmVudDogdmFsdWUgYXMgVHlwZTxUPiB9O1xuICB9XG4gIFxuICByZXR1cm4geyBjb21wb25lbnQ6IGRlZmF1bHRDb21wb25lbnQgfTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgc2xvdCBjb25maWd1cmF0aW9uIG1hcCBmb3IgYSBjb21wb25lbnQuXG4gKiBcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzbG90cyA9IGNyZWF0ZVNsb3RDb25maWcoe1xuICogICBzZW5kQnV0dG9uOiBDdXN0b21TZW5kQnV0dG9uLFxuICogICB0b29sYmFyOiAnY3VzdG9tLXRvb2xiYXItY2xhc3MnLFxuICogICBmb290ZXI6IGZvb3RlclRlbXBsYXRlXG4gKiB9LCB7XG4gKiAgIHNlbmRCdXR0b246IERlZmF1bHRTZW5kQnV0dG9uLFxuICogICB0b29sYmFyOiBEZWZhdWx0VG9vbGJhcixcbiAqICAgZm9vdGVyOiBEZWZhdWx0Rm9vdGVyXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2xvdENvbmZpZzxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgVHlwZTxhbnk+Pj4oXG4gIG92ZXJyaWRlczogUGFydGlhbDxSZWNvcmQ8a2V5b2YgVCwgU2xvdFZhbHVlPj4sXG4gIGRlZmF1bHRzOiBUXG4pOiBNYXA8a2V5b2YgVCwgU2xvdFJlZ2lzdHJ5RW50cnk+IHtcbiAgY29uc3QgY29uZmlnID0gbmV3IE1hcDxrZXlvZiBULCBTbG90UmVnaXN0cnlFbnRyeT4oKTtcbiAgXG4gIGZvciAoY29uc3Qga2V5IGluIGRlZmF1bHRzKSB7XG4gICAgY29uc3Qgb3ZlcnJpZGUgPSBvdmVycmlkZXNba2V5XTtcbiAgICBjb25zdCBkZWZhdWx0Q29tcG9uZW50ID0gZGVmYXVsdHNba2V5XTtcbiAgICBjb25maWcuc2V0KGtleSwgbm9ybWFsaXplU2xvdFZhbHVlKG92ZXJyaWRlLCBkZWZhdWx0Q29tcG9uZW50KSk7XG4gIH1cbiAgXG4gIHJldHVybiBjb25maWc7XG59XG5cbi8qKlxuICogUHJvdmlkZXMgc2xvdCBjb25maWd1cmF0aW9uIHRvIGNoaWxkIGNvbXBvbmVudHMgdmlhIERJLlxuICogXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogQENvbXBvbmVudCh7XG4gKiAgIHByb3ZpZGVyczogW1xuICogICAgIHByb3ZpZGVTbG90cyh7XG4gKiAgICAgICBzZW5kQnV0dG9uOiBDdXN0b21TZW5kQnV0dG9uLFxuICogICAgICAgdG9vbGJhcjogQ3VzdG9tVG9vbGJhclxuICogICAgIH0pXG4gKiAgIF1cbiAqIH0pXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVTbG90cyhzbG90czogUmVjb3JkPHN0cmluZywgVHlwZTxhbnk+Pikge1xuICBjb25zdCBzbG90TWFwID0gbmV3IE1hcDxzdHJpbmcsIFNsb3RSZWdpc3RyeUVudHJ5PigpO1xuICBcbiAgLy8gT25seSBhY2NlcHQgY29tcG9uZW50IHR5cGVzIGluIERJICh0ZW1wbGF0ZXMgbGFjayB2aWV3IGNvbnRleHQpXG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHNsb3RzKSkge1xuICAgIGlmIChpc0NvbXBvbmVudFR5cGUodmFsdWUpKSB7XG4gICAgICBzbG90TWFwLnNldChrZXksIHsgY29tcG9uZW50OiB2YWx1ZSBhcyBUeXBlPGFueT4gfSk7XG4gICAgfVxuICB9XG4gIFxuICByZXR1cm4ge1xuICAgIHByb3ZpZGU6IFNMT1RfQ09ORklHLFxuICAgIHVzZVZhbHVlOiBzbG90TWFwXG4gIH07XG59XG5cbi8qKlxuICogR2V0cyBzbG90IGNvbmZpZ3VyYXRpb24gZnJvbSBESS5cbiAqIE11c3QgYmUgY2FsbGVkIHdpdGhpbiBhbiBpbmplY3Rpb24gY29udGV4dC5cbiAqIFxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGV4cG9ydCBjbGFzcyBNeUNvbXBvbmVudCB7XG4gKiAgIHNsb3RzID0gZ2V0U2xvdENvbmZpZygpO1xuICogICBcbiAqICAgbmdPbkluaXQoKSB7XG4gKiAgICAgY29uc3Qgc2VuZEJ1dHRvbiA9IHRoaXMuc2xvdHM/LmdldCgnc2VuZEJ1dHRvbicpO1xuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNsb3RDb25maWcoKTogUmVhZG9ubHlNYXA8c3RyaW5nLCBTbG90UmVnaXN0cnlFbnRyeT4gfCBudWxsIHtcbiAgcmV0dXJuIGluamVjdChTTE9UX0NPTkZJRywgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgcmVuZGVyIGZ1bmN0aW9uIGZvciBhIHNwZWNpZmljIHNsb3QuXG4gKiBVc2VmdWwgZm9yIGNyZWF0aW5nIHJldXNhYmxlIHNsb3QgcmVuZGVyZXJzLlxuICogXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcmVuZGVyU2VuZEJ1dHRvbiA9IGNyZWF0ZVNsb3RSZW5kZXJlcihcbiAqICAgRGVmYXVsdFNlbmRCdXR0b24sXG4gKiAgICdzZW5kQnV0dG9uJ1xuICogKTtcbiAqIFxuICogLy8gTGF0ZXIgaW4gdGVtcGxhdGVcbiAqIHJlbmRlclNlbmRCdXR0b24odGhpcy52aWV3Q29udGFpbmVyLCB0aGlzLnNlbmRCdXR0b25PdmVycmlkZSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNsb3RSZW5kZXJlcjxUPihcbiAgZGVmYXVsdENvbXBvbmVudDogVHlwZTxUPixcbiAgc2xvdE5hbWU/OiBzdHJpbmdcbikge1xuICAvLyBHZXQgY29uZmlnIGluIHRoZSBpbmplY3Rpb24gY29udGV4dCB3aGVuIHRoZSByZW5kZXJlciBpcyBjcmVhdGVkXG4gIGNvbnN0IGNvbmZpZyA9IHNsb3ROYW1lID8gZ2V0U2xvdENvbmZpZygpIDogbnVsbDtcbiAgXG4gIHJldHVybiAoXG4gICAgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgICBzbG90PzogU2xvdFZhbHVlPFQ+LFxuICAgIHByb3BzPzogUGFydGlhbDxUPixcbiAgICBvdXRwdXRzPzogUmVjb3JkPHN0cmluZywgKGV2ZW50OiBhbnkpID0+IHZvaWQ+XG4gICkgPT4ge1xuICAgIC8vIENoZWNrIERJIGZvciBvdmVycmlkZXMgaWYgc2xvdCBuYW1lIHByb3ZpZGVkXG4gICAgaWYgKHNsb3ROYW1lICYmICFzbG90ICYmIGNvbmZpZykge1xuICAgICAgY29uc3QgZW50cnkgPSBjb25maWcuZ2V0KHNsb3ROYW1lKTtcbiAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICBpZiAoZW50cnkuY29tcG9uZW50KSBzbG90ID0gZW50cnkuY29tcG9uZW50O1xuICAgICAgICBlbHNlIGlmIChlbnRyeS50ZW1wbGF0ZSkgc2xvdCA9IGVudHJ5LnRlbXBsYXRlO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICByZXR1cm4gcmVuZGVyU2xvdCh2aWV3Q29udGFpbmVyLCB7XG4gICAgICBzbG90LFxuICAgICAgZGVmYXVsdENvbXBvbmVudCxcbiAgICAgIHByb3BzLFxuICAgICAgb3V0cHV0c1xuICAgIH0pO1xuICB9O1xufSJdfQ==
231
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xvdC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc2xvdHMvc2xvdC51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsV0FBVyxFQUtYLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQW1ELFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU1Rjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFDSCxNQUFNLFVBQVUsVUFBVSxDQUN4QixhQUErQixFQUMvQixPQUE2QjtJQUU3QixNQUFNLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRXJFLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUV0QixNQUFNLGFBQWEsR0FBRyxJQUFJLElBQUksZ0JBQWdCLENBQUM7SUFDL0MsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLElBQUksYUFBYSxDQUFDLFFBQVEsQ0FBQztJQUU3RCxJQUFJLGFBQWEsWUFBWSxXQUFXLEVBQUUsQ0FBQztRQUN6QywrQkFBK0I7UUFDL0IsT0FBTyxhQUFhLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFO1lBQ3JELFNBQVMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUN0QixLQUFLLEVBQUUsS0FBSyxJQUFJLEVBQUU7U0FDWixDQUFDLENBQUM7SUFDWixDQUFDO1NBQU0sSUFBSSxlQUFlLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztRQUMxQyxnREFBZ0Q7UUFDaEQsSUFBSSxDQUFDO1lBQ0gsT0FBTyxlQUFlLENBQ3BCLGFBQWEsRUFDYixhQUF3QixFQUN4QixLQUFLLEVBQ0wsaUJBQWlCLEVBQ2pCLE9BQU8sQ0FDUixDQUFDO1FBQ0osQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLDZCQUE2QixFQUFFLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNsRSxvQ0FBb0M7UUFDdEMsQ0FBQztJQUNILENBQUM7SUFFRCxnREFBZ0Q7SUFDaEQsT0FBTyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUN2QyxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLEtBQUssRUFDTCxpQkFBaUIsRUFDakIsT0FBTyxDQUNSLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNYLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMsZUFBZSxDQUN0QixhQUErQixFQUMvQixTQUFrQixFQUNsQixLQUFrQixFQUNsQixRQUFtQixFQUNuQixPQUE4QztJQUU5QyxNQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRTtRQUM1RCxRQUFRO0tBQ1QsQ0FBQyxDQUFDO0lBRUgsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNWLDJEQUEyRDtRQUMzRCxNQUFNLE1BQU0sR0FBUyxTQUFpQixDQUFDLElBQUksQ0FBQztRQUM1QyxNQUFNLGNBQWMsR0FBRyxJQUFJLEdBQUcsQ0FBUyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUUxRSxJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxLQUFZLENBQUMsQ0FBQztRQUMvQyxDQUFDO2FBQU0sQ0FBQztZQUNOLEtBQUssTUFBTSxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ3hCLElBQUksY0FBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUM1QixNQUFNLEtBQUssR0FBSSxLQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ2xDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUNwQyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNaLG9EQUFvRDtRQUNwRCxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsUUFBZSxDQUFDO1FBQzlDLE1BQU0sYUFBYSxHQUFVLEVBQUUsQ0FBQztRQUVoQyxLQUFLLE1BQU0sQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzNELElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDO2dCQUNuQyxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM1RCxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ25DLENBQUM7UUFDSCxDQUFDO1FBRUQsd0NBQXdDO1FBQ3hDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzFCLGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsWUFBWSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBRS9DLE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUM7QUFHRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLEtBQVU7SUFDeEMsK0VBQStFO0lBQy9FLE9BQU8sT0FBTyxLQUFLLEtBQUssVUFBVSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO0FBQzFELENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBVTtJQUNwQyxPQUFPLEtBQUssWUFBWSxXQUFXLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FDaEMsS0FBK0IsRUFDL0IsZ0JBQXFDO0lBRXJDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE9BQU8sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSSxLQUFLLFlBQVksV0FBVyxFQUFFLENBQUM7UUFDakMsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMzQixPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQWdCLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO0FBQ3pDLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLFNBQThDLEVBQzlDLFFBQVc7SUFFWCxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBOEIsQ0FBQztJQUVyRCxLQUFLLE1BQU0sR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQzNCLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoQyxNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLEtBQWdDO0lBQzNELE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxFQUE2QixDQUFDO0lBRXJELGtFQUFrRTtJQUNsRSxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2pELElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBa0IsRUFBRSxDQUFDLENBQUM7UUFDdEQsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxFQUFFLFdBQVc7UUFDcEIsUUFBUSxFQUFFLE9BQU87S0FDbEIsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE1BQU0sVUFBVSxhQUFhO0lBQzNCLE9BQU8sTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQ2pELENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FDaEMsZ0JBQXlCLEVBQ3pCLFFBQWlCO0lBRWpCLG1FQUFtRTtJQUNuRSxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFFakQsT0FBTyxDQUNMLGFBQStCLEVBQy9CLElBQW1CLEVBQ25CLEtBQWtCLEVBQ2xCLE9BQThDLEVBQzlDLEVBQUU7UUFDRiwrQ0FBK0M7UUFDL0MsSUFBSSxRQUFRLElBQUksQ0FBQyxJQUFJLElBQUksTUFBTSxFQUFFLENBQUM7WUFDaEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuQyxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNWLElBQUksS0FBSyxDQUFDLFNBQVM7b0JBQUUsSUFBSSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7cUJBQ3ZDLElBQUksS0FBSyxDQUFDLFFBQVE7b0JBQUUsSUFBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7WUFDakQsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLFVBQVUsQ0FBQyxhQUFhLEVBQUU7WUFDL0IsSUFBSTtZQUNKLGdCQUFnQjtZQUNoQixLQUFLO1lBQ0wsT0FBTztTQUNSLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBcbiAgVHlwZSwgXG4gIFRlbXBsYXRlUmVmLCBcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgQ29tcG9uZW50UmVmLFxuICBFbWJlZGRlZFZpZXdSZWYsXG4gIEluamVjdG9yLFxuICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTbG90VmFsdWUsIFJlbmRlclNsb3RPcHRpb25zLCBTbG90UmVnaXN0cnlFbnRyeSwgU0xPVF9DT05GSUcgfSBmcm9tICcuL3Nsb3QudHlwZXMnO1xuXG4vKipcbiAqIFJlbmRlcnMgYSBzbG90IHZhbHVlIGludG8gYSBWaWV3Q29udGFpbmVyUmVmLlxuICogVGhpcyBpcyB0aGUgY29yZSB1dGlsaXR5IGZvciBzbG90IHJlbmRlcmluZy5cbiAqIFxuICogQHBhcmFtIHZpZXdDb250YWluZXIgLSBUaGUgVmlld0NvbnRhaW5lclJlZiB0byByZW5kZXIgaW50b1xuICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25zIGZvciByZW5kZXJpbmcgdGhlIHNsb3RcbiAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIGNvbXBvbmVudCBvciBlbWJlZGRlZCB2aWV3IHJlZmVyZW5jZVxuICogXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogZXhwb3J0IGNsYXNzIE15Q29tcG9uZW50IHtcbiAqICAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIGNvbnRhaW5lciE6IFZpZXdDb250YWluZXJSZWY7XG4gKiAgIFxuICogICByZW5kZXJCdXR0b24oKSB7XG4gKiAgICAgcmVuZGVyU2xvdCh0aGlzLmNvbnRhaW5lciwge1xuICogICAgICAgc2xvdDogdGhpcy5idXR0b25PdmVycmlkZSxcbiAqICAgICAgIGRlZmF1bHRDb21wb25lbnQ6IERlZmF1bHRCdXR0b24sXG4gKiAgICAgICBwcm9wczogeyB0ZXh0OiAnQ2xpY2sgbWUnIH0sXG4gKiAgICAgICBvdXRwdXRzOiB7IGNsaWNrOiAoZXZlbnQpID0+IHRoaXMuaGFuZGxlQ2xpY2soZXZlbnQpIH1cbiAqICAgICB9KTtcbiAqICAgfVxuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJTbG90PFQgPSBhbnk+KFxuICB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLFxuICBvcHRpb25zOiBSZW5kZXJTbG90T3B0aW9uczxUPlxuKTogQ29tcG9uZW50UmVmPFQ+IHwgRW1iZWRkZWRWaWV3UmVmPFQ+IHwgbnVsbCB7XG4gIGNvbnN0IHsgc2xvdCwgZGVmYXVsdENvbXBvbmVudCwgcHJvcHMsIGluamVjdG9yLCBvdXRwdXRzIH0gPSBvcHRpb25zO1xuICBcbiAgdmlld0NvbnRhaW5lci5jbGVhcigpO1xuICBcbiAgY29uc3QgZWZmZWN0aXZlU2xvdCA9IHNsb3QgPz8gZGVmYXVsdENvbXBvbmVudDtcbiAgY29uc3QgZWZmZWN0aXZlSW5qZWN0b3IgPSBpbmplY3RvciA/PyB2aWV3Q29udGFpbmVyLmluamVjdG9yO1xuICBcbiAgaWYgKGVmZmVjdGl2ZVNsb3QgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xuICAgIC8vIFRlbXBsYXRlUmVmOiByZW5kZXIgdGVtcGxhdGVcbiAgICByZXR1cm4gdmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcoZWZmZWN0aXZlU2xvdCwge1xuICAgICAgJGltcGxpY2l0OiBwcm9wcyA/PyB7fSxcbiAgICAgIHByb3BzOiBwcm9wcyA/PyB7fVxuICAgIH0gYXMgYW55KTtcbiAgfSBlbHNlIGlmIChpc0NvbXBvbmVudFR5cGUoZWZmZWN0aXZlU2xvdCkpIHtcbiAgICAvLyBDb21wb25lbnQgdHlwZSAtIHdyYXAgaW4gdHJ5L2NhdGNoIGZvciBzYWZldHlcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGNyZWF0ZUNvbXBvbmVudChcbiAgICAgICAgdmlld0NvbnRhaW5lcixcbiAgICAgICAgZWZmZWN0aXZlU2xvdCBhcyBUeXBlPFQ+LFxuICAgICAgICBwcm9wcyxcbiAgICAgICAgZWZmZWN0aXZlSW5qZWN0b3IsXG4gICAgICAgIG91dHB1dHNcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUud2FybignRmFpbGVkIHRvIGNyZWF0ZSBjb21wb25lbnQ6JywgZWZmZWN0aXZlU2xvdCwgZXJyb3IpO1xuICAgICAgLy8gRmFsbCB0aHJvdWdoIHRvIGRlZmF1bHQgY29tcG9uZW50XG4gICAgfVxuICB9XG4gIFxuICAvLyBEZWZhdWx0OiByZW5kZXIgZGVmYXVsdCBjb21wb25lbnQgaWYgcHJvdmlkZWRcbiAgcmV0dXJuIGRlZmF1bHRDb21wb25lbnQgPyBjcmVhdGVDb21wb25lbnQoXG4gICAgdmlld0NvbnRhaW5lcixcbiAgICBkZWZhdWx0Q29tcG9uZW50LFxuICAgIHByb3BzLFxuICAgIGVmZmVjdGl2ZUluamVjdG9yLFxuICAgIG91dHB1dHNcbiAgKSA6IG51bGw7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNvbXBvbmVudCBhbmQgYXBwbGllcyBwcm9wZXJ0aWVzLlxuICovXG5mdW5jdGlvbiBjcmVhdGVDb21wb25lbnQ8VD4oXG4gIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gIGNvbXBvbmVudDogVHlwZTxUPixcbiAgcHJvcHM/OiBQYXJ0aWFsPFQ+LFxuICBpbmplY3Rvcj86IEluamVjdG9yLFxuICBvdXRwdXRzPzogUmVjb3JkPHN0cmluZywgKGV2ZW50OiBhbnkpID0+IHZvaWQ+XG4pOiBDb21wb25lbnRSZWY8VD4ge1xuICBjb25zdCBjb21wb25lbnRSZWYgPSB2aWV3Q29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnQsIHtcbiAgICBpbmplY3RvclxuICB9KTtcbiAgXG4gIGlmIChwcm9wcykge1xuICAgIC8vIEFwcGx5IHByb3BzIHVzaW5nIHNldElucHV0LCBidXQgb25seSBmb3IgZGVjbGFyZWQgaW5wdXRzXG4gICAgY29uc3QgY21wRGVmOiBhbnkgPSAoY29tcG9uZW50IGFzIGFueSkuybVjbXA7XG4gICAgY29uc3QgZGVjbGFyZWRJbnB1dHMgPSBuZXcgU2V0PHN0cmluZz4oT2JqZWN0LmtleXMoY21wRGVmPy5pbnB1dHMgPz8ge30pKTtcblxuICAgIGlmIChkZWNsYXJlZElucHV0cy5oYXMoJ3Byb3BzJykpIHtcbiAgICAgIGNvbXBvbmVudFJlZi5zZXRJbnB1dCgncHJvcHMnLCBwcm9wcyBhcyBhbnkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBwcm9wcykge1xuICAgICAgICBpZiAoZGVjbGFyZWRJbnB1dHMuaGFzKGtleSkpIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IChwcm9wcyBhcyBhbnkpW2tleV07XG4gICAgICAgICAgY29tcG9uZW50UmVmLnNldElucHV0KGtleSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFxuICBpZiAob3V0cHV0cykge1xuICAgIC8vIFdpcmUgdXAgb3V0cHV0IGV2ZW50IGhhbmRsZXJzIHdpdGggcHJvcGVyIGNsZWFudXBcbiAgICBjb25zdCBpbnN0YW5jZSA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBhbnk7XG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uczogYW55W10gPSBbXTtcbiAgICBcbiAgICBmb3IgKGNvbnN0IFtldmVudE5hbWUsIGhhbmRsZXJdIG9mIE9iamVjdC5lbnRyaWVzKG91dHB1dHMpKSB7XG4gICAgICBpZiAoaW5zdGFuY2VbZXZlbnROYW1lXT8uc3Vic2NyaWJlKSB7XG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IGluc3RhbmNlW2V2ZW50TmFtZV0uc3Vic2NyaWJlKGhhbmRsZXIpO1xuICAgICAgICBzdWJzY3JpcHRpb25zLnB1c2goc3Vic2NyaXB0aW9uKTtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLy8gUmVnaXN0ZXIgY2xlYW51cCBvbiBjb21wb25lbnQgZGVzdHJveVxuICAgIGNvbXBvbmVudFJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YiA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XG4gICAgfSk7XG4gIH1cbiAgXG4gIC8vIFRyaWdnZXIgY2hhbmdlIGRldGVjdGlvblxuICBjb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICBcbiAgcmV0dXJuIGNvbXBvbmVudFJlZjtcbn1cblxuXG4vKipcbiAqIENoZWNrcyBpZiBhIHZhbHVlIGlzIGEgY29tcG9uZW50IHR5cGUuXG4gKiBTaW1wbGlmaWVkIGNoZWNrIC0gcmVseSBvbiB0cnkvY2F0Y2ggZm9yIGFjdHVhbCB2YWxpZGF0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDb21wb25lbnRUeXBlKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgLy8gQXJyb3cgZnVuY3Rpb25zIGFuZCByZWd1bGFyIGZ1bmN0aW9ucyB3aXRob3V0IGEgcHJvdG90eXBlIGFyZSBub3QgY29tcG9uZW50c1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nICYmICEhdmFsdWUucHJvdG90eXBlO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIHZhbHVlIGlzIGEgdmFsaWQgc2xvdCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2xvdFZhbHVlKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBTbG90VmFsdWUge1xuICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZiB8fCBpc0NvbXBvbmVudFR5cGUodmFsdWUpO1xufVxuXG4vKipcbiAqIE5vcm1hbGl6ZXMgYSBzbG90IHZhbHVlIHRvIGEgY29uc2lzdGVudCBmb3JtYXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVTbG90VmFsdWU8VCA9IGFueT4oXG4gIHZhbHVlOiBTbG90VmFsdWU8VD4gfCB1bmRlZmluZWQsXG4gIGRlZmF1bHRDb21wb25lbnQ6IFR5cGU8VD4gfCB1bmRlZmluZWRcbik6IFNsb3RSZWdpc3RyeUVudHJ5PFQ+IHtcbiAgaWYgKCF2YWx1ZSkge1xuICAgIHJldHVybiB7IGNvbXBvbmVudDogZGVmYXVsdENvbXBvbmVudCB9O1xuICB9XG4gIFxuICBpZiAodmFsdWUgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xuICAgIHJldHVybiB7IHRlbXBsYXRlOiB2YWx1ZSB9O1xuICB9XG4gIFxuICBpZiAoaXNDb21wb25lbnRUeXBlKHZhbHVlKSkge1xuICAgIHJldHVybiB7IGNvbXBvbmVudDogdmFsdWUgYXMgVHlwZTxUPiB9O1xuICB9XG4gIFxuICByZXR1cm4geyBjb21wb25lbnQ6IGRlZmF1bHRDb21wb25lbnQgfTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgc2xvdCBjb25maWd1cmF0aW9uIG1hcCBmb3IgYSBjb21wb25lbnQuXG4gKiBcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzbG90cyA9IGNyZWF0ZVNsb3RDb25maWcoe1xuICogICBzZW5kQnV0dG9uOiBDdXN0b21TZW5kQnV0dG9uLFxuICogICB0b29sYmFyOiAnY3VzdG9tLXRvb2xiYXItY2xhc3MnLFxuICogICBmb290ZXI6IGZvb3RlclRlbXBsYXRlXG4gKiB9LCB7XG4gKiAgIHNlbmRCdXR0b246IERlZmF1bHRTZW5kQnV0dG9uLFxuICogICB0b29sYmFyOiBEZWZhdWx0VG9vbGJhcixcbiAqICAgZm9vdGVyOiBEZWZhdWx0Rm9vdGVyXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2xvdENvbmZpZzxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgVHlwZTxhbnk+Pj4oXG4gIG92ZXJyaWRlczogUGFydGlhbDxSZWNvcmQ8a2V5b2YgVCwgU2xvdFZhbHVlPj4sXG4gIGRlZmF1bHRzOiBUXG4pOiBNYXA8a2V5b2YgVCwgU2xvdFJlZ2lzdHJ5RW50cnk+IHtcbiAgY29uc3QgY29uZmlnID0gbmV3IE1hcDxrZXlvZiBULCBTbG90UmVnaXN0cnlFbnRyeT4oKTtcbiAgXG4gIGZvciAoY29uc3Qga2V5IGluIGRlZmF1bHRzKSB7XG4gICAgY29uc3Qgb3ZlcnJpZGUgPSBvdmVycmlkZXNba2V5XTtcbiAgICBjb25zdCBkZWZhdWx0Q29tcG9uZW50ID0gZGVmYXVsdHNba2V5XTtcbiAgICBjb25maWcuc2V0KGtleSwgbm9ybWFsaXplU2xvdFZhbHVlKG92ZXJyaWRlLCBkZWZhdWx0Q29tcG9uZW50KSk7XG4gIH1cbiAgXG4gIHJldHVybiBjb25maWc7XG59XG5cbi8qKlxuICogUHJvdmlkZXMgc2xvdCBjb25maWd1cmF0aW9uIHRvIGNoaWxkIGNvbXBvbmVudHMgdmlhIERJLlxuICogXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogQENvbXBvbmVudCh7XG4gKiAgIHByb3ZpZGVyczogW1xuICogICAgIHByb3ZpZGVTbG90cyh7XG4gKiAgICAgICBzZW5kQnV0dG9uOiBDdXN0b21TZW5kQnV0dG9uLFxuICogICAgICAgdG9vbGJhcjogQ3VzdG9tVG9vbGJhclxuICogICAgIH0pXG4gKiAgIF1cbiAqIH0pXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVTbG90cyhzbG90czogUmVjb3JkPHN0cmluZywgVHlwZTxhbnk+Pikge1xuICBjb25zdCBzbG90TWFwID0gbmV3IE1hcDxzdHJpbmcsIFNsb3RSZWdpc3RyeUVudHJ5PigpO1xuICBcbiAgLy8gT25seSBhY2NlcHQgY29tcG9uZW50IHR5cGVzIGluIERJICh0ZW1wbGF0ZXMgbGFjayB2aWV3IGNvbnRleHQpXG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHNsb3RzKSkge1xuICAgIGlmIChpc0NvbXBvbmVudFR5cGUodmFsdWUpKSB7XG4gICAgICBzbG90TWFwLnNldChrZXksIHsgY29tcG9uZW50OiB2YWx1ZSBhcyBUeXBlPGFueT4gfSk7XG4gICAgfVxuICB9XG4gIFxuICByZXR1cm4ge1xuICAgIHByb3ZpZGU6IFNMT1RfQ09ORklHLFxuICAgIHVzZVZhbHVlOiBzbG90TWFwXG4gIH07XG59XG5cbi8qKlxuICogR2V0cyBzbG90IGNvbmZpZ3VyYXRpb24gZnJvbSBESS5cbiAqIE11c3QgYmUgY2FsbGVkIHdpdGhpbiBhbiBpbmplY3Rpb24gY29udGV4dC5cbiAqIFxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGV4cG9ydCBjbGFzcyBNeUNvbXBvbmVudCB7XG4gKiAgIHNsb3RzID0gZ2V0U2xvdENvbmZpZygpO1xuICogICBcbiAqICAgbmdPbkluaXQoKSB7XG4gKiAgICAgY29uc3Qgc2VuZEJ1dHRvbiA9IHRoaXMuc2xvdHM/LmdldCgnc2VuZEJ1dHRvbicpO1xuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNsb3RDb25maWcoKTogUmVhZG9ubHlNYXA8c3RyaW5nLCBTbG90UmVnaXN0cnlFbnRyeT4gfCBudWxsIHtcbiAgcmV0dXJuIGluamVjdChTTE9UX0NPTkZJRywgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgcmVuZGVyIGZ1bmN0aW9uIGZvciBhIHNwZWNpZmljIHNsb3QuXG4gKiBVc2VmdWwgZm9yIGNyZWF0aW5nIHJldXNhYmxlIHNsb3QgcmVuZGVyZXJzLlxuICogXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcmVuZGVyU2VuZEJ1dHRvbiA9IGNyZWF0ZVNsb3RSZW5kZXJlcihcbiAqICAgRGVmYXVsdFNlbmRCdXR0b24sXG4gKiAgICdzZW5kQnV0dG9uJ1xuICogKTtcbiAqIFxuICogLy8gTGF0ZXIgaW4gdGVtcGxhdGVcbiAqIHJlbmRlclNlbmRCdXR0b24odGhpcy52aWV3Q29udGFpbmVyLCB0aGlzLnNlbmRCdXR0b25PdmVycmlkZSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNsb3RSZW5kZXJlcjxUPihcbiAgZGVmYXVsdENvbXBvbmVudDogVHlwZTxUPixcbiAgc2xvdE5hbWU/OiBzdHJpbmdcbikge1xuICAvLyBHZXQgY29uZmlnIGluIHRoZSBpbmplY3Rpb24gY29udGV4dCB3aGVuIHRoZSByZW5kZXJlciBpcyBjcmVhdGVkXG4gIGNvbnN0IGNvbmZpZyA9IHNsb3ROYW1lID8gZ2V0U2xvdENvbmZpZygpIDogbnVsbDtcbiAgXG4gIHJldHVybiAoXG4gICAgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgICBzbG90PzogU2xvdFZhbHVlPFQ+LFxuICAgIHByb3BzPzogUGFydGlhbDxUPixcbiAgICBvdXRwdXRzPzogUmVjb3JkPHN0cmluZywgKGV2ZW50OiBhbnkpID0+IHZvaWQ+XG4gICkgPT4ge1xuICAgIC8vIENoZWNrIERJIGZvciBvdmVycmlkZXMgaWYgc2xvdCBuYW1lIHByb3ZpZGVkXG4gICAgaWYgKHNsb3ROYW1lICYmICFzbG90ICYmIGNvbmZpZykge1xuICAgICAgY29uc3QgZW50cnkgPSBjb25maWcuZ2V0KHNsb3ROYW1lKTtcbiAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICBpZiAoZW50cnkuY29tcG9uZW50KSBzbG90ID0gZW50cnkuY29tcG9uZW50O1xuICAgICAgICBlbHNlIGlmIChlbnRyeS50ZW1wbGF0ZSkgc2xvdCA9IGVudHJ5LnRlbXBsYXRlO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICByZXR1cm4gcmVuZGVyU2xvdCh2aWV3Q29udGFpbmVyLCB7XG4gICAgICBzbG90LFxuICAgICAgZGVmYXVsdENvbXBvbmVudCxcbiAgICAgIHByb3BzLFxuICAgICAgb3V0cHV0c1xuICAgIH0pO1xuICB9O1xufVxuIl19
@@ -1,6 +1,5 @@
1
1
  import { DestroyRef, inject } from '@angular/core';
2
2
  import { CopilotKitService } from '../core/copilotkit.service';
3
- import { z } from 'zod';
4
3
  /**
5
4
  * Explicitly adds a frontend tool to CopilotKit.
6
5
  * Requires CopilotKitService to be passed as a parameter.
@@ -50,7 +49,6 @@ export function addFrontendTool(service, tool) {
50
49
  else {
51
50
  const renderEntry = {
52
51
  name: tool.name,
53
- args: tool.parameters || z.object({}),
54
52
  render: tool.render
55
53
  };
56
54
  service.setCurrentRenderToolCalls([...currentRenders, renderEntry]);
@@ -103,7 +101,6 @@ export function registerFrontendTool(tool) {
103
101
  else {
104
102
  const renderEntry = {
105
103
  name: tool.name,
106
- args: tool.parameters || z.object({}),
107
104
  render: tool.render
108
105
  };
109
106
  service.setCurrentRenderToolCalls([...currentRenders, renderEntry]);
@@ -198,7 +195,6 @@ export function createDynamicFrontendTool(name, description, parameters, handler
198
195
  const currentRenders = service.currentRenderToolCalls();
199
196
  const renderEntry = {
200
197
  name: name,
201
- args: parameters,
202
198
  render: currentRender
203
199
  };
204
200
  const existingIndex = currentRenders.findIndex((r) => r.name === name);
@@ -225,4 +221,4 @@ export function createDynamicFrontendTool(name, description, parameters, handler
225
221
  destroyRef.onDestroy(destroy);
226
222
  return { update, destroy };
227
223
  }
228
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbnRlbmQtdG9vbC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9mcm9udGVuZC10b29sLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRS9ELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUNHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FDN0IsT0FBMEIsRUFDMUIsSUFBNEI7SUFFNUIsNkJBQTZCO0lBQzdCLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWpDLGtDQUFrQztJQUNsQyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUN4RCxNQUFNLGFBQWEsR0FBRyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBMEIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFckcsSUFBSSxhQUFhLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN6QixPQUFPLENBQUMsS0FBSyxDQUFDLG1CQUFtQixJQUFJLENBQUMsSUFBSSxtQ0FBbUMsQ0FBQyxDQUFDO1FBQ2pGLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxXQUFXLEdBQTZCO2dCQUM1QyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLElBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQStCO2dCQUNwRSxNQUFNLEVB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QUFDLEVBQUUsQ0FBQztnQkFDekIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxDQUFDO2dCQUNwQyxPQUFPLENBQUMsYUFBYSxDQUFDLEdBQUcsV0FBVyxDQUFDO2dCQUNyQyxPQUFPLENBQUMseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDN0MsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLEdBQUcsY0FBYyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDdEUsQ0FBQztRQUNILENBQUM7UUFFRCxZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUMsQ0FBQztJQUVGLE1BQU0sT0FBTyxHQUFHLEdBQUcsRUFBRTtRQUNuQixJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNsQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDLENBQUM7SUFFRixnQkFBZ0I7SUFDaEIsTUFBTSxFQUFFLENBQUM7SUFFVCxtQkFBbUI7SUFDbkIsVUFBVSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUU5QixPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDO0FBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXN0cm95UmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvcGlsb3RLaXRTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9jb3BpbG90a2l0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQW5ndWxhckZyb250ZW5kVG9vbCwgQW5ndWxhclRvb2xDYWxsUmVuZGVyLCBUb29sQ2FsbFJlbmRlciB9IGZyb20gJy4uL2NvcmUvY29waWxvdGtpdC50eXBlcyc7XG5pbXBvcnQgeyB6IH0gZnJvbSAnem9kJztcblxuLyoqXG4gKiBFeHBsaWNpdGx5IGFkZHMgYSBmcm9udGVuZCB0b29sIHRvIENvcGlsb3RLaXQuXG4gKiBSZXF1aXJlcyBDb3BpbG90S2l0U2VydmljZSB0byBiZSBwYXNzZWQgYXMgYSBwYXJhbWV0ZXIuXG4gKiBcbiAqIEBwYXJhbSBzZXJ2aWNlIC0gVGhlIENvcGlsb3RLaXRTZXJ2aWNlIGluc3RhbmNlXG4gKiBAcGFyYW0gdG9vbCAtIFRoZSB0b29sIHRvIGFkZFxuICogQHJldHVybnMgQSBjbGVhbnVwIGZ1bmN0aW9uIHRoYXQgcmVtb3ZlcyB0aGUgdG9vbFxuICogXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogZXhwb3J0IGNsYXNzIE15Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICogICBwcml2YXRlIGNsZWFudXBGbnM6IEFycmF5PCgpID0+IHZvaWQ+ID0gW107XG4gKiAgIFxuICogICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvcGlsb3RraXQ6IENvcGlsb3RLaXRTZXJ2aWNlKSB7fVxuICogICBcbiAqICAgbmdPbkluaXQoKSB7XG4gKiAgICAgY29uc3QgY2xlYW51cCA9IGFkZEZyb250ZW5kVG9vbCh0aGlzLmNvcGlsb3RraXQsIHtcbiAqICAgICAgIG5hbWU6ICdjYWxjdWxhdG9yJyxcbiAqICAgICAgIGRlc2NyaXB0aW9uOiAnUGVyZm9ybXMgY2FsY3VsYXRpb25zJyxcbiAqICAgICAgIHBhcmFtZXRlcnM6IHoub2JqZWN0KHtcbiAqICAgICAgICAgZXhwcmVzc2lvbjogei5zdHJpbmcoKVxuICogICAgICAgfSksXG4gKiAgICAgICBoYW5kbGVyOiBhc3luYyAoYXJncykgPT4ge1xuICogICAgICAgICByZXR1cm4gZXZhbChhcmdzLmV4cHJlc3Npb24pO1xuICogICAgICAgfVxuICogICAgIH0pO1xuICogICAgIFxuICogICAgIHRoaXMuY2xlYW51cEZucy5wdXNoKGNsZWFudXApO1xuICogICB9XG4gKiAgIFxuICogICBuZ09uRGVzdHJveSgpIHtcbiAqICAgICB0aGlzLmNsZWFudXBGbnMuZm9yRWFjaChmbiA9PiBmbigpKTtcbiAqICAgfVxuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRGcm9udGVuZFRvb2w8VCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4gPSBSZWNvcmQ8c3RyaW5nLCBhbnk+PihcbiAgc2VydmljZTogQ29waWxvdEtpdFNlcnZpY2UsXG4gIHRvb2w6IEFuZ3VsYXJGcm9udGVuZFRvb2w8VD5cbik6ICgpID0+IHZvaWQge1xuICAvLyBBZGQgdGhlIHRvb2wgdG8gQ29waWxvdEtpdFxuICBzZXJ2aWNlLmNvcGlsb3RraXQuYWRkVG9vbCh0b29sKTtcbiAgXG4gIC8vIFJlZ2lzdGVyIHRoZSByZW5kZXIgaWYgcHJvdmlkZWRcbiAgaWYgKHRvb2wucmVuZGVyKSB7XG4gICAgY29uc3QgY3VycmVudFJlbmRlcnMgPSBzZXJ2aWNlLmN1cnJlbnRSZW5kZXJUb29sQ2FsbHMoKTtcbiAgICBjb25zdCBleGlzdGluZ0luZGV4ID0gY3VycmVudFJlbmRlcnMuZmluZEluZGV4KChyOiBUb29sQ2FsbFJlbmRlcjx1bmtub3duPikgPT4gci5uYW1lID09PSB0b29sLm5hbWUpO1xuICAgIFxuICAgIGlmIChleGlzdGluZ0luZGV4ICE9PSAtMSkge1xuICAgICAgY29uc29sZS5lcnJvcihgVG9vbCB3aXRoIG5hbWUgJyR7dG9vbC5uYW1lfScgYWxyZWFkeSBoYXMgYSByZW5kZXIuIFNraXBwaW5nLmApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCByZW5kZXJFbnRyeTogQW5ndWxhclRvb2xDYWxsUmVuZGVyPFQ+ID0ge1xuICAgICAgICBuYW1lOiB0b29sLm5hbWUsXG4gICAgICAgIGFyZ3M6IHRvb2wucGFyYW1ldGVycyB8fCAoei5vYmplY3Qoe30pIGFzIHVua25vd24gYXMgei5ab2RTY2hlbWE8VD4pLFxuICAgICAgICByZW5kZXI6IHRvb2wucmVuZGVyXG4gICAgICB9O1xuICAgICAgXG4gICAgICBzZXJ2aWNlLnNldEN1cnJlbnRSZW5kZXJUb29sQ2FsbHMoWy4uLmN1cnJlbnRSZW5kZXJzLCByZW5kZXJFbnRyeV0pO1xuICAgIH1cbiAgfVxuICBcbiAgLy8gUmV0dXJuIGNsZWFudXAgZnVuY3Rpb25cbiAgcmV0dXJuICgpID0+IHtcbiAgICByZW1vdmVGcm9udGVuZFRvb2woc2VydmljZSwgdG9vbC5uYW1lKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBSZWdpc3RlcnMgYSBmcm9udGVuZCB0b29sIHdpdGggQ29waWxvdEtpdCBhbmQgYXV0b21hdGljYWxseSByZW1vdmVzIGl0IHdoZW4gdGhlIGNvbXBvbmVudC9zZXJ2aWNlIGlzIGRlc3Ryb3llZC5cbiAqIE11c3QgYmUgY2FsbGVkIHdpdGhpbiBhbiBpbmplY3Rpb24gY29udGV4dC5cbiAqIFxuICogQHBhcmFtIHRvb2wgLSBUaGUgdG9vbCB0byByZWdpc3RlclxuICogQHJldHVybnMgVGhlIHRvb2wgbmFtZVxuICogXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogZXhwb3J0IGNsYXNzIE15Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAqICAgbmdPbkluaXQoKSB7XG4gKiAgICAgLy8gQXV0b21hdGljYWxseSBjbGVhbmVkIHVwIG9uIGNvbXBvbmVudCBkZXN0cm95XG4gKiAgICAgcmVnaXN0ZXJGcm9udGVuZFRvb2woe1xuICogICAgICAgbmFtZTogJ3NlYXJjaCcsXG4gKiAgICAgICBkZXNjcmlwdGlvbjogJ1NlYXJjaCBmb3IgaXRlbXMnLFxuICogICAgICAgcGFyYW1ldGVyczogei5vYmplY3Qoe1xuICogICAgICAgICBxdWVyeTogei5zdHJpbmcoKVxuICogICAgICAgfSksXG4gKiAgICAgICBoYW5kbGVyOiBhc3luYyAoYXJncykgPT4ge1xuICogICAgICAgICByZXR1cm4gdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaChhcmdzLnF1ZXJ5KTtcbiAqICAgICAgIH0sXG4gKiAgICAgICByZW5kZXI6IFNlYXJjaFJlc3VsdHNDb21wb25lbnRcbiAqICAgICB9KTtcbiAqICAgfVxuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckZyb250ZW5kVG9vbDxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4+KFxuICB0b29sOiBBbmd1bGFyRnJvbnRlbmRUb29sPFQ+XG4pOiBzdHJpbmcge1xuICBjb25zdCBzZXJ2aWNlID0gaW5qZWN0KENvcGlsb3RLaXRTZXJ2aWNlKTtcbiAgY29uc3QgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgXG4gIC8vIEFkZCB0aGUgdG9vbFxuICBzZXJ2aWNlLmNvcGlsb3RraXQuYWRkVG9vbCh0b29sKTtcbiAgXG4gIC8vIFJlZ2lzdGVyIHRoZSByZW5kZXIgaWYgcHJvdmlkZWRcbiAgaWYgKHRvb2wucmVuZGVyKSB7XG4gICAgY29uc3QgY3VycmVudFJlbmRlcnMgPSBzZXJ2aWNlLmN1cnJlbnRSZW5kZXJUb29sQ2FsbHMoKTtcbiAgICBjb25zdCBleGlzdGluZ0luZGV4ID0gY3VycmVudFJlbmRlcnMuZmluZEluZGV4KChyOiBUb29sQ2FsbFJlbmRlcjx1bmtub3duPikgPT4gci5uYW1lID09PSB0b29sLm5hbWUpO1xuICAgIFxuICAgIGlmIChleGlzdGluZ0luZGV4ICE9PSAtMSkge1xuICAgICAgY29uc29sZS5lcnJvcihgVG9vbCB3aXRoIG5hbWUgJyR7dG9vbC5uYW1lfScgYWxyZWFkeSBoYXMgYSByZW5kZXIuIFNraXBwaW5nLmApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCByZW5kZXJFbnRyeTogQW5ndWxhclRvb2xDYWxsUmVuZGVyPFQ+ID0ge1xuICAgICAgICBuYW1lOiB0b29sLm5hbWUsXG4gICAgICAgIGFyZ3M6IHRvb2wucGFyYW1ldGVycyB8fCAoei5vYmplY3Qoe30pIGFzIHVua25vd24gYXMgei5ab2RTY2hlbWE8VD4pLFxuICAgICAgICByZW5kZXI6IHRvb2wucmVuZGVyXG4gICAgICB9O1xuICAgICAgXG4gICAgICBzZXJ2aWNlLnNldEN1cnJlbnRSZW5kZXJUb29sQ2FsbHMoWy4uLmN1cnJlbnRSZW5kZXJzLCByZW5kZXJFbnRyeV0pO1xuICAgIH1cbiAgfVxuICBcbiAgLy8gUmVnaXN0ZXIgY2xlYW51cCB3aXRoIEFuZ3VsYXIncyBEZXN0cm95UmVmXG4gIGRlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IHtcbiAgICByZW1vdmVGcm9udGVuZFRvb2woc2VydmljZSwgdG9vbC5uYW1lKTtcbiAgfSk7XG4gIFxuICByZXR1cm4gdG9vbC5uYW1lO1xufVxuXG4vKipcbiAqIEV4cGxpY2l0bHkgcmVtb3ZlcyBhIGZyb250ZW5kIHRvb2wgZnJvbSBDb3BpbG90S2l0LlxuICogXG4gKiBAcGFyYW0gc2VydmljZSAtIFRoZSBDb3BpbG90S2l0U2VydmljZSBpbnN0YW5jZVxuICogQHBhcmFtIHRvb2xOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRvb2wgdG8gcmVtb3ZlXG4gKiBcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiByZW1vdmVGcm9udGVuZFRvb2wodGhpcy5jb3BpbG90a2l0LCAnY2FsY3VsYXRvcicpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVGcm9udGVuZFRvb2woXG4gIHNlcnZpY2U6IENvcGlsb3RLaXRTZXJ2aWNlLFxuICB0b29sTmFtZTogc3RyaW5nXG4pOiB2b2lkIHtcbiAgLy8gUmVtb3ZlIHRoZSB0b29sXG4gIHNlcnZpY2UuY29waWxvdGtpdC5yZW1vdmVUb29sKHRvb2xOYW1lKTtcbiAgXG4gIC8vIFJlbW92ZSB0aGUgcmVuZGVyIGlmIGl0IGV4aXN0c1xuICBjb25zdCBjdXJyZW50UmVuZGVycyA9IHNlcnZpY2UuY3VycmVudFJlbmRlclRvb2xDYWxscygpO1xuICBjb25zdCBmaWx0ZXJlZCA9IGN1cnJlbnRSZW5kZXJzLmZpbHRlcigocjogVG9vbENhbGxSZW5kZXI8dW5rbm93bj4pID0+IHIubmFtZSAhPT0gdG9vbE5hbWUpO1xuICBpZiAoZmlsdGVyZWQubGVuZ3RoICE9PSBjdXJyZW50UmVuZGVycy5sZW5ndGgpIHtcbiAgICBzZXJ2aWNlLnNldEN1cnJlbnRSZW5kZXJUb29sQ2FsbHMoZmlsdGVyZWQpO1xuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZyb250ZW5kIHRvb2wgd2l0aCBkeW5hbWljIHBhcmFtZXRlcnMgdGhhdCBjYW4gY2hhbmdlIG92ZXIgdGltZS5cbiAqIFVzZXMgQW5ndWxhciBzaWduYWxzIGZvciByZWFjdGl2aXR5LlxuICogXG4gKiBAcGFyYW0gbmFtZSAtIFRvb2wgbmFtZVxuICogQHBhcmFtIGRlc2NyaXB0aW9uIC0gVG9vbCBkZXNjcmlwdGlvblxuICogQHBhcmFtIHBhcmFtZXRlcnMgLSBab2Qgc2NoZW1hIGZvciBwYXJhbWV0ZXJzXG4gKiBAcGFyYW0gaGFuZGxlciAtIFNpZ25hbCBvciBmdW5jdGlvbiB0aGF0IHByb3ZpZGVzIHRoZSBoYW5kbGVyXG4gKiBAcGFyYW0gcmVuZGVyIC0gT3B0aW9uYWwgcmVuZGVyIGNvbXBvbmVudCBvciB0ZW1wbGF0ZVxuICogQHJldHVybnMgT2JqZWN0IHdpdGggdXBkYXRlIGFuZCBkZXN0cm95IG1ldGhvZHNcbiAqIFxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGV4cG9ydCBjbGFzcyBNeUNvbXBvbmVudCB7XG4gKiAgIHByaXZhdGUgdG9vbENvbmZpZyA9IHNpZ25hbCh7XG4gKiAgICAgaGFuZGxlcjogYXN5bmMgKGFyZ3M6IGFueSkgPT4gdGhpcy5wcm9jZXNzRGVmYXVsdChhcmdzKVxuICogICB9KTtcbiAqICAgXG4gKiAgIG5nT25Jbml0KCkge1xuICogICAgIGNvbnN0IHRvb2wgPSBjcmVhdGVEeW5hbWljRnJvbnRlbmRUb29sKFxuICogICAgICAgJ3Byb2Nlc3NvcicsXG4gKiAgICAgICAnUHJvY2Vzc2VzIGRhdGEnLFxuICogICAgICAgei5vYmplY3QoeyBkYXRhOiB6LnN0cmluZygpIH0pLFxuICogICAgICAgKCkgPT4gdGhpcy50b29sQ29uZmlnKCkuaGFuZGxlclxuICogICAgICk7XG4gKiAgICAgXG4gKiAgICAgLy8gTGF0ZXIsIHVwZGF0ZSB0aGUgaGFuZGxlclxuICogICAgIHRoaXMudG9vbENvbmZpZy5zZXQoe1xuICogICAgICAgaGFuZGxlcjogYXN5bmMgKGFyZ3M6IGFueSkgPT4gdGhpcy5wcm9jZXNzQWR2YW5jZWQoYXJncylcbiAqICAgICB9KTtcbiAqICAgICB0b29sLnVwZGF0ZSgpO1xuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUR5bmFtaWNGcm9udGVuZFRvb2w8VCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4gPSBSZWNvcmQ8c3RyaW5nLCBhbnk+PihcbiAgbmFtZTogc3RyaW5nLFxuICBkZXNjcmlwdGlvbjogc3RyaW5nIHwgKCgpID0+IHN0cmluZyksXG4gIHBhcmFtZXRlcnM6IHouWm9kU2NoZW1hPFQ+LFxuICBoYW5kbGVyOiAoKSA9PiAoKGFyZ3M6IFQpID0+IFByb21pc2U8YW55PiksXG4gIHJlbmRlcj86ICgpID0+IGFueVxuKTogeyB1cGRhdGU6ICgpID0+IHZvaWQ7IGRlc3Ryb3k6ICgpID0+IHZvaWQgfSB7XG4gIGNvbnN0IHNlcnZpY2UgPSBpbmplY3QoQ29waWxvdEtpdFNlcnZpY2UpO1xuICBjb25zdCBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICBcbiAgbGV0IGlzUmVnaXN0ZXJlZCA9IGZhbHNlO1xuICBcbiAgY29uc3QgdXBkYXRlID0gKCkgPT4ge1xuICAgIC8vIFJlbW92ZSBvbGQgdG9vbCBpZiByZWdpc3RlcmVkXG4gICAgaWYgKGlzUmVnaXN0ZXJlZCkge1xuICAgICAgc2VydmljZS5jb3BpbG90a2l0LnJlbW92ZVRvb2wobmFtZSk7XG4gICAgfVxuICAgIFxuICAgIC8vIENyZWF0ZSBuZXcgdG9vbCBjb25maWd1cmF0aW9uXG4gICAgY29uc3QgZGVzYyA9IHR5cGVvZiBkZXNjcmlwdGlvbiA9PT0gJ2Z1bmN0aW9uJyA/IGRlc2NyaXB0aW9uKCkgOiBkZXNjcmlwdGlvbjtcbiAgICBjb25zdCBjdXJyZW50SGFuZGxlciA9IGhhbmRsZXIoKTtcbiAgICBjb25zdCBjdXJyZW50UmVuZGVyID0gcmVuZGVyID8gcmVuZGVyKCkgOiB1bmRlZmluZWQ7XG4gICAgXG4gICAgY29uc3QgdG9vbDogQW5ndWxhckZyb250ZW5kVG9vbDxUPiA9IHtcbiAgICAgIG5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogZGVzYyxcbiAgICAgIHBhcmFtZXRlcnMsXG4gICAgICBoYW5kbGVyOiBjdXJyZW50SGFuZGxlcixcbiAgICAgIHJlbmRlcjogY3VycmVudFJlbmRlclxuICAgIH07XG4gICAgXG4gICAgLy8gQWRkIHRoZSB0b29sXG4gICAgc2VydmljZS5jb3BpbG90a2l0LmFkZFRvb2wodG9vbCk7XG4gICAgXG4gICAgLy8gVXBkYXRlIHJlbmRlciBpZiBwcm92aWRlZFxuICAgIGlmIChjdXJyZW50UmVuZGVyKSB7XG4gICAgICBjb25zdCBjdXJyZW50UmVuZGVycyA9IHNlcnZpY2UuY3VycmVudFJlbmRlclRvb2xDYWxscygpO1xuICAgICAgY29uc3QgcmVuZGVyRW50cnk6IEFuZ3VsYXJUb29sQ2FsbFJlbmRlcjxUPiA9IHtcbiAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgYXJnczogcGFyYW1ldGVycyxcbiAgICAgICAgcmVuZGVyOiBjdXJyZW50UmVuZGVyXG4gICAgICB9O1xuICAgICAgXG4gICAgICBjb25zdCBleGlzdGluZ0luZGV4ID0gY3VycmVudFJlbmRlcnMuZmluZEluZGV4KChyOiBUb29sQ2FsbFJlbmRlcjx1bmtub3duPikgPT4gci5uYW1lID09PSBuYW1lKTtcbiAgICAgIGlmIChleGlzdGluZ0luZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCB1cGRhdGVkID0gWy4uLmN1cnJlbnRSZW5kZXJzXTtcbiAgICAgICAgdXBkYXRlZFtleGlzdGluZ0luZGV4XSA9IHJlbmRlckVudHJ5O1xuICAgICAgICBzZXJ2aWNlLnNldEN1cnJlbnRSZW5kZXJUb29sQ2FsbHModXBkYXRlZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXJ2aWNlLnNldEN1cnJlbnRSZW5kZXJUb29sQ2FsbHMoWy4uLmN1cnJlbnRSZW5kZXJzLCByZW5kZXJFbnRyeV0pO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBpc1JlZ2lzdGVyZWQgPSB0cnVlO1xuICB9O1xuICBcbiAgY29uc3QgZGVzdHJveSA9ICgpID0+IHtcbiAgICBpZiAoaXNSZWdpc3RlcmVkKSB7XG4gICAgICByZW1vdmVGcm9udGVuZFRvb2woc2VydmljZSwgbmFtZSk7XG4gICAgICBpc1JlZ2lzdGVyZWQgPSBmYWxzZTtcbiAgICB9XG4gIH07XG4gIFxuICAvLyBJbml0aWFsIHNldHVwXG4gIHVwZGF0ZSgpO1xuICBcbiAgLy8gUmVnaXN0ZXIgY2xlYW51cFxuICBkZXN0cm95UmVmLm9uRGVzdHJveShkZXN0cm95KTtcbiAgXG4gIHJldHVybiB7IHVwZGF0ZSwgZGVzdHJveSB9O1xufSJdfQ==
224
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbnRlbmQtdG9vbC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9mcm9udGVuZC10b29sLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBSS9EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1DRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQzdCLE9BQTBCLEVBQzFCLElBQTRCO0lBRTVCLDZCQUE2QjtJQUM3QixPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVqQyxrQ0FBa0M7SUFDbEMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEIsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDeEQsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQWlCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTVGLElBQUksYUFBYSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDekIsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLElBQUksbUNBQW1DLENBQUMsQ0FBQztRQUNqRixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sV0FBVyxHQUEwQjtnQkFDekMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTthQUNwQixDQUFDO1lBRUYsT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBQUMsR0FBRyxjQUFjLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUN0RSxDQUFDO0lB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QUMsR0FBRyxjQUFjLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUN0RSxDQUFDO1FBQ0gsQ0FBQztRQUVELFlBQVksR0FBRyxJQUFJLENBQUM7SUFDdEIsQ0FBQyxDQUFDO0lBRUYsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFO1FBQ25CLElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsa0JBQWtCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2xDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUMsQ0FBQztJQUVGLGdCQUFnQjtJQUNoQixNQUFNLEVBQUUsQ0FBQztJQUVULG1CQUFtQjtJQUNuQixVQUFVLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRTlCLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29waWxvdEtpdFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2NvcGlsb3RraXQuc2VydmljZSc7XG5pbXBvcnQgeyBBbmd1bGFyRnJvbnRlbmRUb29sLCBBbmd1bGFyVG9vbENhbGxSZW5kZXIsIFRvb2xDYWxsUmVuZGVyIH0gZnJvbSAnLi4vY29yZS9jb3BpbG90a2l0LnR5cGVzJztcbmltcG9ydCB0eXBlIHsgeiB9IGZyb20gJ3pvZCc7XG5cbi8qKlxuICogRXhwbGljaXRseSBhZGRzIGEgZnJvbnRlbmQgdG9vbCB0byBDb3BpbG90S2l0LlxuICogUmVxdWlyZXMgQ29waWxvdEtpdFNlcnZpY2UgdG8gYmUgcGFzc2VkIGFzIGEgcGFyYW1ldGVyLlxuICogXG4gKiBAcGFyYW0gc2VydmljZSAtIFRoZSBDb3BpbG90S2l0U2VydmljZSBpbnN0YW5jZVxuICogQHBhcmFtIHRvb2wgLSBUaGUgdG9vbCB0byBhZGRcbiAqIEByZXR1cm5zIEEgY2xlYW51cCBmdW5jdGlvbiB0aGF0IHJlbW92ZXMgdGhlIHRvb2xcbiAqIFxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGV4cG9ydCBjbGFzcyBNeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAqICAgcHJpdmF0ZSBjbGVhbnVwRm5zOiBBcnJheTwoKSA9PiB2b2lkPiA9IFtdO1xuICogICBcbiAqICAgY29uc3RydWN0b3IocHJpdmF0ZSBjb3BpbG90a2l0OiBDb3BpbG90S2l0U2VydmljZSkge31cbiAqICAgXG4gKiAgIG5nT25Jbml0KCkge1xuICogICAgIGNvbnN0IGNsZWFudXAgPSBhZGRGcm9udGVuZFRvb2wodGhpcy5jb3BpbG90a2l0LCB7XG4gKiAgICAgICBuYW1lOiAnY2FsY3VsYXRvcicsXG4gKiAgICAgICBkZXNjcmlwdGlvbjogJ1BlcmZvcm1zIGNhbGN1bGF0aW9ucycsXG4gKiAgICAgICBwYXJhbWV0ZXJzOiB6Lm9iamVjdCh7XG4gKiAgICAgICAgIGV4cHJlc3Npb246IHouc3RyaW5nKClcbiAqICAgICAgIH0pLFxuICogICAgICAgaGFuZGxlcjogYXN5bmMgKGFyZ3MpID0+IHtcbiAqICAgICAgICAgcmV0dXJuIGV2YWwoYXJncy5leHByZXNzaW9uKTtcbiAqICAgICAgIH1cbiAqICAgICB9KTtcbiAqICAgICBcbiAqICAgICB0aGlzLmNsZWFudXBGbnMucHVzaChjbGVhbnVwKTtcbiAqICAgfVxuICogICBcbiAqICAgbmdPbkRlc3Ryb3koKSB7XG4gKiAgICAgdGhpcy5jbGVhbnVwRm5zLmZvckVhY2goZm4gPT4gZm4oKSk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkRnJvbnRlbmRUb29sPFQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55Pj4oXG4gIHNlcnZpY2U6IENvcGlsb3RLaXRTZXJ2aWNlLFxuICB0b29sOiBBbmd1bGFyRnJvbnRlbmRUb29sPFQ+XG4pOiAoKSA9PiB2b2lkIHtcbiAgLy8gQWRkIHRoZSB0b29sIHRvIENvcGlsb3RLaXRcbiAgc2VydmljZS5jb3BpbG90a2l0LmFkZFRvb2wodG9vbCk7XG4gIFxuICAvLyBSZWdpc3RlciB0aGUgcmVuZGVyIGlmIHByb3ZpZGVkXG4gIGlmICh0b29sLnJlbmRlcikge1xuICAgIGNvbnN0IGN1cnJlbnRSZW5kZXJzID0gc2VydmljZS5jdXJyZW50UmVuZGVyVG9vbENhbGxzKCk7XG4gICAgY29uc3QgZXhpc3RpbmdJbmRleCA9IGN1cnJlbnRSZW5kZXJzLmZpbmRJbmRleCgocjogVG9vbENhbGxSZW5kZXIpID0+IHIubmFtZSA9PT0gdG9vbC5uYW1lKTtcbiAgICBcbiAgICBpZiAoZXhpc3RpbmdJbmRleCAhPT0gLTEpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFRvb2wgd2l0aCBuYW1lICcke3Rvb2wubmFtZX0nIGFscmVhZHkgaGFzIGEgcmVuZGVyLiBTa2lwcGluZy5gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcmVuZGVyRW50cnk6IEFuZ3VsYXJUb29sQ2FsbFJlbmRlciA9IHtcbiAgICAgICAgbmFtZTogdG9vbC5uYW1lLFxuICAgICAgICByZW5kZXI6IHRvb2wucmVuZGVyXG4gICAgICB9O1xuICAgICAgXG4gICAgICBzZXJ2aWNlLnNldEN1cnJlbnRSZW5kZXJUb29sQ2FsbHMoWy4uLmN1cnJlbnRSZW5kZXJzLCByZW5kZXJFbnRyeV0pO1xuICAgIH1cbiAgfVxuICBcbiAgLy8gUmV0dXJuIGNsZWFudXAgZnVuY3Rpb25cbiAgcmV0dXJuICgpID0+IHtcbiAgICByZW1vdmVGcm9udGVuZFRvb2woc2VydmljZSwgdG9vbC5uYW1lKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBSZWdpc3RlcnMgYSBmcm9udGVuZCB0b29sIHdpdGggQ29waWxvdEtpdCBhbmQgYXV0b21hdGljYWxseSByZW1vdmVzIGl0IHdoZW4gdGhlIGNvbXBvbmVudC9zZXJ2aWNlIGlzIGRlc3Ryb3llZC5cbiAqIE11c3QgYmUgY2FsbGVkIHdpdGhpbiBhbiBpbmplY3Rpb24gY29udGV4dC5cbiAqIFxuICogQHBhcmFtIHRvb2wgLSBUaGUgdG9vbCB0byByZWdpc3RlclxuICogQHJldHVybnMgVGhlIHRvb2wgbmFtZVxuICogXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogZXhwb3J0IGNsYXNzIE15Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAqICAgbmdPbkluaXQoKSB7XG4gKiAgICAgLy8gQXV0b21hdGljYWxseSBjbGVhbmVkIHVwIG9uIGNvbXBvbmVudCBkZXN0cm95XG4gKiAgICAgcmVnaXN0ZXJGcm9udGVuZFRvb2woe1xuICogICAgICAgbmFtZTogJ3NlYXJjaCcsXG4gKiAgICAgICBkZXNjcmlwdGlvbjogJ1NlYXJjaCBmb3IgaXRlbXMnLFxuICogICAgICAgcGFyYW1ldGVyczogei5vYmplY3Qoe1xuICogICAgICAgICBxdWVyeTogei5zdHJpbmcoKVxuICogICAgICAgfSksXG4gKiAgICAgICBoYW5kbGVyOiBhc3luYyAoYXJncykgPT4ge1xuICogICAgICAgICByZXR1cm4gdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaChhcmdzLnF1ZXJ5KTtcbiAqICAgICAgIH0sXG4gKiAgICAgICByZW5kZXI6IFNlYXJjaFJlc3VsdHNDb21wb25lbnRcbiAqICAgICB9KTtcbiAqICAgfVxuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckZyb250ZW5kVG9vbDxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4+KFxuICB0b29sOiBBbmd1bGFyRnJvbnRlbmRUb29sPFQ+XG4pOiBzdHJpbmcge1xuICBjb25zdCBzZXJ2aWNlID0gaW5qZWN0KENvcGlsb3RLaXRTZXJ2aWNlKTtcbiAgY29uc3QgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgXG4gIC8vIEFkZCB0aGUgdG9vbFxuICBzZXJ2aWNlLmNvcGlsb3RraXQuYWRkVG9vbCh0b29sKTtcbiAgXG4gIC8vIFJlZ2lzdGVyIHRoZSByZW5kZXIgaWYgcHJvdmlkZWRcbiAgaWYgKHRvb2wucmVuZGVyKSB7XG4gICAgY29uc3QgY3VycmVudFJlbmRlcnMgPSBzZXJ2aWNlLmN1cnJlbnRSZW5kZXJUb29sQ2FsbHMoKTtcbiAgICBjb25zdCBleGlzdGluZ0luZGV4ID0gY3VycmVudFJlbmRlcnMuZmluZEluZGV4KChyOiBUb29sQ2FsbFJlbmRlcikgPT4gci5uYW1lID09PSB0b29sLm5hbWUpO1xuICAgIFxuICAgIGlmIChleGlzdGluZ0luZGV4ICE9PSAtMSkge1xuICAgICAgY29uc29sZS5lcnJvcihgVG9vbCB3aXRoIG5hbWUgJyR7dG9vbC5uYW1lfScgYWxyZWFkeSBoYXMgYSByZW5kZXIuIFNraXBwaW5nLmApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCByZW5kZXJFbnRyeTogQW5ndWxhclRvb2xDYWxsUmVuZGVyID0ge1xuICAgICAgICBuYW1lOiB0b29sLm5hbWUsXG4gICAgICAgIHJlbmRlcjogdG9vbC5yZW5kZXJcbiAgICAgIH07XG4gICAgICBcbiAgICAgIHNlcnZpY2Uuc2V0Q3VycmVudFJlbmRlclRvb2xDYWxscyhbLi4uY3VycmVudFJlbmRlcnMsIHJlbmRlckVudHJ5XSk7XG4gICAgfVxuICB9XG4gIFxuICAvLyBSZWdpc3RlciBjbGVhbnVwIHdpdGggQW5ndWxhcidzIERlc3Ryb3lSZWZcbiAgZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuICAgIHJlbW92ZUZyb250ZW5kVG9vbChzZXJ2aWNlLCB0b29sLm5hbWUpO1xuICB9KTtcbiAgXG4gIHJldHVybiB0b29sLm5hbWU7XG59XG5cbi8qKlxuICogRXhwbGljaXRseSByZW1vdmVzIGEgZnJvbnRlbmQgdG9vbCBmcm9tIENvcGlsb3RLaXQuXG4gKiBcbiAqIEBwYXJhbSBzZXJ2aWNlIC0gVGhlIENvcGlsb3RLaXRTZXJ2aWNlIGluc3RhbmNlXG4gKiBAcGFyYW0gdG9vbE5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdG9vbCB0byByZW1vdmVcbiAqIFxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHJlbW92ZUZyb250ZW5kVG9vbCh0aGlzLmNvcGlsb3RraXQsICdjYWxjdWxhdG9yJyk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUZyb250ZW5kVG9vbChcbiAgc2VydmljZTogQ29waWxvdEtpdFNlcnZpY2UsXG4gIHRvb2xOYW1lOiBzdHJpbmdcbik6IHZvaWQge1xuICAvLyBSZW1vdmUgdGhlIHRvb2xcbiAgc2VydmljZS5jb3BpbG90a2l0LnJlbW92ZVRvb2wodG9vbE5hbWUpO1xuICBcbiAgLy8gUmVtb3ZlIHRoZSByZW5kZXIgaWYgaXQgZXhpc3RzXG4gIGNvbnN0IGN1cnJlbnRSZW5kZXJzID0gc2VydmljZS5jdXJyZW50UmVuZGVyVG9vbENhbGxzKCk7XG4gIGNvbnN0IGZpbHRlcmVkID0gY3VycmVudFJlbmRlcnMuZmlsdGVyKChyOiBUb29sQ2FsbFJlbmRlcikgPT4gci5uYW1lICE9PSB0b29sTmFtZSk7XG4gIGlmIChmaWx0ZXJlZC5sZW5ndGggIT09IGN1cnJlbnRSZW5kZXJzLmxlbmd0aCkge1xuICAgIHNlcnZpY2Uuc2V0Q3VycmVudFJlbmRlclRvb2xDYWxscyhmaWx0ZXJlZCk7XG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgZnJvbnRlbmQgdG9vbCB3aXRoIGR5bmFtaWMgcGFyYW1ldGVycyB0aGF0IGNhbiBjaGFuZ2Ugb3ZlciB0aW1lLlxuICogVXNlcyBBbmd1bGFyIHNpZ25hbHMgZm9yIHJlYWN0aXZpdHkuXG4gKiBcbiAqIEBwYXJhbSBuYW1lIC0gVG9vbCBuYW1lXG4gKiBAcGFyYW0gZGVzY3JpcHRpb24gLSBUb29sIGRlc2NyaXB0aW9uXG4gKiBAcGFyYW0gcGFyYW1ldGVycyAtIFpvZCBzY2hlbWEgZm9yIHBhcmFtZXRlcnNcbiAqIEBwYXJhbSBoYW5kbGVyIC0gU2lnbmFsIG9yIGZ1bmN0aW9uIHRoYXQgcHJvdmlkZXMgdGhlIGhhbmRsZXJcbiAqIEBwYXJhbSByZW5kZXIgLSBPcHRpb25hbCByZW5kZXIgY29tcG9uZW50IG9yIHRlbXBsYXRlXG4gKiBAcmV0dXJucyBPYmplY3Qgd2l0aCB1cGRhdGUgYW5kIGRlc3Ryb3kgbWV0aG9kc1xuICogXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogZXhwb3J0IGNsYXNzIE15Q29tcG9uZW50IHtcbiAqICAgcHJpdmF0ZSB0b29sQ29uZmlnID0gc2lnbmFsKHtcbiAqICAgICBoYW5kbGVyOiBhc3luYyAoYXJnczogYW55KSA9PiB0aGlzLnByb2Nlc3NEZWZhdWx0KGFyZ3MpXG4gKiAgIH0pO1xuICogICBcbiAqICAgbmdPbkluaXQoKSB7XG4gKiAgICAgY29uc3QgdG9vbCA9IGNyZWF0ZUR5bmFtaWNGcm9udGVuZFRvb2woXG4gKiAgICAgICAncHJvY2Vzc29yJyxcbiAqICAgICAgICdQcm9jZXNzZXMgZGF0YScsXG4gKiAgICAgICB6Lm9iamVjdCh7IGRhdGE6IHouc3RyaW5nKCkgfSksXG4gKiAgICAgICAoKSA9PiB0aGlzLnRvb2xDb25maWcoKS5oYW5kbGVyXG4gKiAgICAgKTtcbiAqICAgICBcbiAqICAgICAvLyBMYXRlciwgdXBkYXRlIHRoZSBoYW5kbGVyXG4gKiAgICAgdGhpcy50b29sQ29uZmlnLnNldCh7XG4gKiAgICAgICBoYW5kbGVyOiBhc3luYyAoYXJnczogYW55KSA9PiB0aGlzLnByb2Nlc3NBZHZhbmNlZChhcmdzKVxuICogICAgIH0pO1xuICogICAgIHRvb2wudXBkYXRlKCk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRHluYW1pY0Zyb250ZW5kVG9vbDxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4+KFxuICBuYW1lOiBzdHJpbmcsXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmcgfCAoKCkgPT4gc3RyaW5nKSxcbiAgcGFyYW1ldGVyczogei5ab2RTY2hlbWE8VD4sXG4gIGhhbmRsZXI6ICgpID0+ICgoYXJnczogVCkgPT4gUHJvbWlzZTxhbnk+KSxcbiAgcmVuZGVyPzogKCkgPT4gYW55XG4pOiB7IHVwZGF0ZTogKCkgPT4gdm9pZDsgZGVzdHJveTogKCkgPT4gdm9pZCB9IHtcbiAgY29uc3Qgc2VydmljZSA9IGluamVjdChDb3BpbG90S2l0U2VydmljZSk7XG4gIGNvbnN0IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIFxuICBsZXQgaXNSZWdpc3RlcmVkID0gZmFsc2U7XG4gIFxuICBjb25zdCB1cGRhdGUgPSAoKSA9PiB7XG4gICAgLy8gUmVtb3ZlIG9sZCB0b29sIGlmIHJlZ2lzdGVyZWRcbiAgICBpZiAoaXNSZWdpc3RlcmVkKSB7XG4gICAgICBzZXJ2aWNlLmNvcGlsb3RraXQucmVtb3ZlVG9vbChuYW1lKTtcbiAgICB9XG4gICAgXG4gICAgLy8gQ3JlYXRlIG5ldyB0b29sIGNvbmZpZ3VyYXRpb25cbiAgICBjb25zdCBkZXNjID0gdHlwZW9mIGRlc2NyaXB0aW9uID09PSAnZnVuY3Rpb24nID8gZGVzY3JpcHRpb24oKSA6IGRlc2NyaXB0aW9uO1xuICAgIGNvbnN0IGN1cnJlbnRIYW5kbGVyID0gaGFuZGxlcigpO1xuICAgIGNvbnN0IGN1cnJlbnRSZW5kZXIgPSByZW5kZXIgPyByZW5kZXIoKSA6IHVuZGVmaW5lZDtcbiAgICBcbiAgICBjb25zdCB0b29sOiBBbmd1bGFyRnJvbnRlbmRUb29sPFQ+ID0ge1xuICAgICAgbmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBkZXNjLFxuICAgICAgcGFyYW1ldGVycyxcbiAgICAgIGhhbmRsZXI6IGN1cnJlbnRIYW5kbGVyLFxuICAgICAgcmVuZGVyOiBjdXJyZW50UmVuZGVyXG4gICAgfTtcbiAgICBcbiAgICAvLyBBZGQgdGhlIHRvb2xcbiAgICBzZXJ2aWNlLmNvcGlsb3RraXQuYWRkVG9vbCh0b29sKTtcbiAgICBcbiAgICAvLyBVcGRhdGUgcmVuZGVyIGlmIHByb3ZpZGVkXG4gICAgaWYgKGN1cnJlbnRSZW5kZXIpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRSZW5kZXJzID0gc2VydmljZS5jdXJyZW50UmVuZGVyVG9vbENhbGxzKCk7XG4gICAgICBjb25zdCByZW5kZXJFbnRyeTogQW5ndWxhclRvb2xDYWxsUmVuZGVyID0ge1xuICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICByZW5kZXI6IGN1cnJlbnRSZW5kZXJcbiAgICAgIH07XG4gICAgICBcbiAgICAgIGNvbnN0IGV4aXN0aW5nSW5kZXggPSBjdXJyZW50UmVuZGVycy5maW5kSW5kZXgoKHI6IFRvb2xDYWxsUmVuZGVyKSA9PiByLm5hbWUgPT09IG5hbWUpO1xuICAgICAgaWYgKGV4aXN0aW5nSW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWQgPSBbLi4uY3VycmVudFJlbmRlcnNdO1xuICAgICAgICB1cGRhdGVkW2V4aXN0aW5nSW5kZXhdID0gcmVuZGVyRW50cnk7XG4gICAgICAgIHNlcnZpY2Uuc2V0Q3VycmVudFJlbmRlclRvb2xDYWxscyh1cGRhdGVkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlcnZpY2Uuc2V0Q3VycmVudFJlbmRlclRvb2xDYWxscyhbLi4uY3VycmVudFJlbmRlcnMsIHJlbmRlckVudHJ5XSk7XG4gICAgICB9XG4gICAgfVxuICAgIFxuICAgIGlzUmVnaXN0ZXJlZCA9IHRydWU7XG4gIH07XG4gIFxuICBjb25zdCBkZXN0cm95ID0gKCkgPT4ge1xuICAgIGlmIChpc1JlZ2lzdGVyZWQpIHtcbiAgICAgIHJlbW92ZUZyb250ZW5kVG9vbChzZXJ2aWNlLCBuYW1lKTtcbiAgICAgIGlzUmVnaXN0ZXJlZCA9IGZhbHNlO1xuICAgIH1cbiAgfTtcbiAgXG4gIC8vIEluaXRpYWwgc2V0dXBcbiAgdXBkYXRlKCk7XG4gIFxuICAvLyBSZWdpc3RlciBjbGVhbnVwXG4gIGRlc3Ryb3lSZWYub25EZXN0cm95KGRlc3Ryb3kpO1xuICBcbiAgcmV0dXJuIHsgdXBkYXRlLCBkZXN0cm95IH07XG59Il19