ets-fe-ng-sdk 17.0.349 → 17.0.351

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.
@@ -274,7 +274,7 @@ export class BtnService {
274
274
  });
275
275
  }
276
276
  checkForm(btn) {
277
- debugger;
277
+ // debugger;
278
278
  if (btn.isDisabled() && btn.form) {
279
279
  btn.form.markAllAsTouched();
280
280
  const form = btn.form;
@@ -300,4 +300,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
300
300
  providedIn: 'root',
301
301
  }]
302
302
  }], ctorParameters: () => [{ type: i1.UserActivityService }] });
303
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnRuLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL2NvbXBvbmVudHMvYnRuL2J0bi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFDTCxXQUFXLEVBQ1gsWUFBWSxFQUNaLE9BQU8sRUFDUCxPQUFPLEVBQ1AsTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osWUFBWSxFQUNaLFNBQVMsRUFDVCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFlBQVksRUFDWixLQUFLLEVBQ0wsVUFBVSxFQUNWLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNOLFFBQVEsRUFDUixVQUFVLEVBQ1YsT0FBTyxFQUNQLFFBQVEsRUFDUixRQUFRLEVBQ1IsUUFBUSxFQUNSLFlBQVksRUFDWixNQUFNLEVBQ04sT0FBTyxFQUNQLFdBQVcsRUFDWCxZQUFZLEVBQ1osT0FBTyxFQUNQLEtBQUssRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVCxNQUFNLEVBRU4sU0FBUyxFQUNULFFBQVEsRUFDUixtQkFBbUIsRUFDbkIsV0FBVyxFQUNYLE9BQU8sRUFDUCxPQUFPLEVBR1AsTUFBTSxFQUNOLE9BQU8sR0FDUixNQUFNLG1DQUFtQyxDQUFDO0FBSTNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQztBQUNwRyxPQUFPLEVBQW1CLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBZ0IsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQWdCLEtBQUssRUFBRSxNQUFNLE1B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QUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZhUGFwZXJQbGFuZSB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXJlZ3VsYXItc3ZnLWljb25zJztcbmltcG9ydCB7XG4gIGZhQXJyb3dMZWZ0LFxuICBmYUFycm93UmlnaHQsXG4gIGZhQ2hlY2ssXG4gIGZhQ2xvbmUsXG4gIGZhQ29ncyxcbiAgZmFEb3dubG9hZCxcbiAgZmFFZGl0LFxuICBmYUV5ZSxcbiAgZmFGaWxlLFxuICBmYUZpbGVFeHBvcnQsXG4gIGZhRmlsZUltcG9ydCxcbiAgZmFIaXN0b3J5LFxuICBmYUxpc3RBbHQsXG4gIGZhTG9jayxcbiAgZmFNb25leUNoZWNrLFxuICBmYVBlbixcbiAgZmFQZW5GYW5jeSxcbiAgZmFQbHVzLFxuICBmYVJlY3ljbGUsXG4gIGZhU2F2ZSxcbiAgZmFTZWFyY2gsXG4gIGZhU2xpZGVyc0gsXG4gIGZhVHJhc2gsXG4gIGZhVW5sb2NrLFxuICBmYUZpbHRlcixcbiAgZmFVcGxvYWQsXG4gIGZhVXNlclNoaWVsZCxcbiAgZmFIb21lLFxuICBmYVVzZXJzLFxuICBmYUJlbGxTbGFzaCxcbiAgZmFJbmZvQ2lyY2xlLFxuICBmYVRydWNrLFxuICBmYVRhZyxcbiAgZmFSZWNlaXB0LFxuICBmYUJhbmssXG4gIGZhQXJyb3dzSCxcbiAgZmFQbGF5LFxuICBmYUxpbmssXG4gIGZhUGVyY2VudCxcbiAgZmFDYW5jZWwsXG4gIGZhQ2lyY2xlRXhjbGFtYXRpb24sXG4gIGZhSGFuZHNoYWtlLFxuICBmYVRhYmxlLFxuICBmYVNwb29uLFxuICBJY29uRGVmaW5pdGlvbixcbiAgZmFCb3gsXG4gIGZhU3RvcCxcbiAgZmFQYXVzZSxcbn0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcbmltcG9ydCB7IEJ0bkNvbXBvbmVudCB9IGZyb20gJy4vYnRuLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdG5UeXBlLCBJY29uVHlwZSB9IGZyb20gJy4vYnRuLm1vZGVsJztcbmltcG9ydCB7IFVzZXJBY3Rpdml0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9SZXVzYWJsZXMvcmV1c2FibGUtcGFnZXMvdXNlci1hY3Rpdml0eS91YS1leHRyYXMvdXNlci1hY3Rpdml0eS5zZXJ2aWNlJztcbmltcG9ydCB7IEVVQSB9IGZyb20gJy4uLy4uLy4uL1JldXNhYmxlcy9yZXVzYWJsZS1wYWdlcy91c2VyLWFjdGl2aXR5L3VhLWV4dHJhcy91c2VyLWFjdGl2aXR5Lm1vZGVsJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtZXJnZSwgdGFrZSwgdGFwLCB0aW1lSW50ZXJ2YWwsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQnRuU2VydmljZSB7XG4gIGJ0bkNsYXNzQ29uZmlnOiBCdG5DbGFzcyA9IHtcbiAgICBbJ3ByaW1hcnknXToge1xuICAgICAgX21jbGFzczogJ2J0biBidG4tcHJpbWFyeSBidG4tbGcgdy0xMDAnLFxuICAgIH0sXG4gICAgWydzZWNvbmRhcnknXToge1xuICAgICAgX21jbGFzczogJ2J0biBidG4tb3V0bGluZS1wcmltYXJ5IGJ0bi1jbG9uZSBidG4tbGcgdy0xMDAnLFxuICAgIH0sXG4gICAgWydvdXRsaW5lJ106IHtcbiAgICAgIF9tY2xhc3M6ICdidG4gYnRuLW91dGxpbmUtcHJpbWFyeSBidG4tbGcgdy0xMDAnLFxuICAgIH0sXG4gICAgWydjbGVhciddOiB7XG4gICAgICBfbWNsYXNzOiAnYnRuIHctMTAwJyxcbiAgICB9LFxuICAgIFsnZGFyay1vdXRsaW5lJ106IHtcbiAgICAgIF9tY2xhc3M6ICdidG4gYnRuLW91dGxpbmUtZGFyayBidG4tbGcgdy0xMDAnLFxuICAgIH0sXG4gICAgWydvdXRsaW5lLW5tJ106IHtcbiAgICAgIF9tY2xhc3M6ICdidG4gYnRuLW91dGxpbmUtcHJpbWFyeSB3LTEwMCcsXG4gICAgfSxcbiAgICBbJ2RhcmsnXToge1xuICAgICAgX21jbGFzczogJ2J0biBidG4tZGFyayBidG4tbGcgdy0xMDAnLFxuICAgIH0sXG4gICAgWydkYW5nZXInXToge1xuICAgICAgX21jbGFzczogJ2J0biBidG4tZGFuZ2VyIGJ0bi1sZyB3LTEwMCcsXG4gICAgfSxcbiAgICBbJ2Rhbmdlci1vdXRsaW5lJ106IHtcbiAgICAgIF9tY2xhc3M6ICdidG4gYnRuLW91dGxpbmUtZGFuZ2VyIGJ0bi1sZyB3LTEwMCcsXG4gICAgfSxcbiAgICBbJ2Nsb3NlJ106IHsgX21jbGFzczogJ2J0biBidG4tbGcgIHRleHQtZGFuZ2VyJywgX2ljb246ICdjbG9zZScgfSxcbiAgICBbJ3N1Y2Nlc3MnXToge1xuICAgICAgX21jbGFzczogJ2J0biBidG4tbGcgYnRuLXN1Y2Nlc3Mgdy0xMDAnLFxuICAgIH0sXG4gIH07XG4gIGJ1dHRvbkljb25JbmRleDoge1xuICAgIFtrIGluIEljb25UeXBlXT86IHtcbiAgICAgIGljb24/OiBJY29uRGVmaW5pdGlvbjtcbiAgICAgIGljb25TdHJpbmc/OiBzdHJpbmc7XG4gICAgICBpY29uUG9zaXRpb24/OiAncmlnaHQnIHwgJ2xlZnQnO1xuICAgIH07XG4gIH0gPSB7XG4gICAgYWRkOiB7XG4gICAgICBpY29uOiBmYVBsdXMsXG4gICAgfSxcbiAgICBhZGp1c3Q6IHtcbiAgICAgIGljb246IGZhU2xpZGVyc0gsXG4gICAgfSxcbiAgICBjYWxlbmRhcjoge1xuICAgICAgaWNvblN0cmluZzogJ2ZhcyBmYS1jYWxlbmRhci1hbHQnLFxuICAgIH0sXG4gICAgY2FzaDoge1xuICAgICAgaWNvbjogZmFNb25leUNoZWNrLFxuICAgIH0sXG4gICAgY2FuY2VsOiB7XG4gICAgICBpY29uOiBmYUNhbmNlbCxcbiAgICB9LFxuICAgIGNoZWNrZWQ6IHtcbiAgICAgIGljb246IGZhQ2hlY2ssXG4gICAgfSxcbiAgICBjaGVja2xpc3Q6IHtcbiAgICAgIGljb246IGZhTGlzdEFsdCxcbiAgICB9LFxuICAgIGNsb25lOiB7XG4gICAgICBpY29uOiBmYUNsb25lLFxuICAgIH0sXG4gICAgY2xvc2U6IHtcbiAgICAgIGljb25TdHJpbmc6ICdmYSBmYS1jbG9zZScsXG4gICAgfSxcbiAgICBjb2dzOiB7XG4gICAgICBpY29uOiBmYUNvZ3MsXG4gICAgfSxcbiAgICBkZWxldGU6IHtcbiAgICAgIGljb246IGZhVHJhc2gsXG4gICAgfSxcbiAgICBkb3dubG9hZDoge1xuICAgICAgaWNvbjogZmFEb3dubG9hZCxcbiAgICB9LFxuICAgIGRyb3Bkb3duOiB7XG4gICAgICBpY29uUG9zaXRpb246ICdyaWdodCcsXG4gICAgICBpY29uU3RyaW5nOiAnZmEgZmEtY2hldnJvbi1kb3duJyxcbiAgICB9LFxuICAgIGVkaXQ6IHtcbiAgICAgIGljb246IGZhRWRpdCxcbiAgICB9LFxuICAgIGV4cG9ydDoge1xuICAgICAgaWNvbjogZmFGaWxlRXhwb3J0LFxuICAgIH0sXG4gICAgZmlsZToge1xuICAgICAgaWNvbjogZmFGaWxlLFxuICAgIH0sXG4gICAgZmlsdGVyOiB7XG4gICAgICBpY29uOiBmYUZpbHRlcixcbiAgICB9LFxuICAgIGdlbmVyYXRlOiB7XG4gICAgICBpY29uOiBmYVBlbkZhbmN5LFxuICAgIH0sXG4gICAgZ3VhcmQ6IHtcbiAgICAgIGljb246IGZhVXNlclNoaWVsZCxcbiAgICB9LFxuICAgIGFjY2Vzczoge1xuICAgICAgaWNvbjogZmFVc2VyU2hpZWxkLFxuICAgIH0sXG4gICAgaGlzdG9yeToge1xuICAgICAgaWNvbjogZmFIaXN0b3J5LFxuICAgIH0sXG4gICAgaG9tZToge1xuICAgICAgaWNvbjogZmFIb21lLFxuICAgIH0sXG4gICAgaW1wb3J0OiB7XG4gICAgICBpY29uOiBmYUZpbGVJbXBvcnQsXG4gICAgfSxcbiAgICBpbmZvOiB7XG4gICAgICBpY29uOiBmYUluZm9DaXJjbGUsXG4gICAgfSxcbiAgICBsaW5rOiB7XG4gICAgICBpY29uU3RyaW5nOiAnZmFzIGZhLWNoYWluJyxcbiAgICB9LFxuICAgIGxvY2s6IHtcbiAgICAgIGljb246IGZhTG9jayxcbiAgICB9LFxuICAgIG5leHQ6IHtcbiAgICAgIGljb246IGZhQXJyb3dSaWdodCxcbiAgICAgIGljb25Qb3NpdGlvbjogJ3JpZ2h0JyxcbiAgICB9LFxuICAgIHBhdXNlOiB7XG4gICAgICBpY29uOiBmYVBhdXNlLFxuICAgIH0sXG4gICAgcGVuOiB7XG4gICAgICBpY29uOiBmYVBlbixcbiAgICB9LFxuICAgIHBvc3Q6IHtcbiAgICAgIGljb246IGZhUGFwZXJQbGFuZSxcbiAgICB9LFxuICAgIHByZXZpb3VzOiB7XG4gICAgICBpY29uOiBmYUFycm93TGVmdCxcbiAgICB9LFxuICAgIHJlbmV3OiB7XG4gICAgICBpY29uOiBmYVJlY3ljbGUsXG4gICAgfSxcbiAgICBzYXZlOiB7XG4gICAgICBpY29uOiBmYVNhdmUsXG4gICAgfSxcbiAgICBzZWFyY2g6IHtcbiAgICAgIGljb246IGZhU2VhcmNoLFxuICAgIH0sXG4gICAgc2hvdzoge1xuICAgICAgaWNvbjogZmFFeWUsXG4gICAgfSxcbiAgICB2aWV3OiB7XG4gICAgICBpY29uOiBmYUV5ZSxcbiAgICB9LFxuICAgIHNub296ZToge1xuICAgICAgaWNvbjogZmFCZWxsU2xhc2gsXG4gICAgfSxcbiAgICB1cGxvYWQ6IHtcbiAgICAgIGljb246IGZhVXBsb2FkLFxuICAgIH0sXG4gICAgdW5sb2NrOiB7XG4gICAgICBpY29uOiBmYVVubG9jayxcbiAgICB9LFxuICAgIHVzZXJzOiB7XG4gICAgICBpY29uOiBmYVVzZXJzLFxuICAgIH0sXG4gICAgcmVjeWNsZToge1xuICAgICAgaWNvbjogZmFSZWN5Y2xlLFxuICAgIH0sXG4gICAgcmVmcmVzaDoge1xuICAgICAgaWNvblN0cmluZzogJ2ZhIGZhLXJlZnJlc2gnLFxuICAgIH0sXG4gICAgc3RvcDoge1xuICAgICAgaWNvbjogZmFTdG9wLFxuICAgIH0sXG4gICAgdHJ1Y2s6IHtcbiAgICAgIGljb246IGZhVHJ1Y2ssXG4gICAgfSxcbiAgICB0YWc6IHtcbiAgICAgIGljb246IGZhVGFnLFxuICAgIH0sXG4gICAgcmVjZWlwdDoge1xuICAgICAgaWNvbjogZmFSZWNlaXB0LFxuICAgIH0sXG4gICAgYmFuazoge1xuICAgICAgaWNvbjogZmFCYW5rLFxuICAgIH0sXG4gICAgYXJyb3doOiB7XG4gICAgICBpY29uOiBmYUFycm93c0gsXG4gICAgfSxcbiAgICBwbGF5OiB7XG4gICAgICBpY29uOiBmYVBsYXksXG4gICAgfSxcbiAgICBwZXJjZW50OiB7XG4gICAgICBpY29uOiBmYVBlcmNlbnQsXG4gICAgfSxcbiAgICBzaGFrZToge1xuICAgICAgaWNvbjogZmFIYW5kc2hha2UsXG4gICAgfSxcbiAgICBlcnJvcjoge1xuICAgICAgaWNvbjogZmFDaXJjbGVFeGNsYW1hdGlvbixcbiAgICB9LFxuICAgIHRhYmxlOiB7XG4gICAgICBpY29uOiBmYVRhYmxlLFxuICAgIH0sXG4gICAgc3Bvb246IHtcbiAgICAgIGljb246IGZhU3Bvb24sXG4gICAgfSxcbiAgfTtcbiAgY29uc3RydWN0b3IocHVibGljIHVhUzogVXNlckFjdGl2aXR5U2VydmljZSkge31cbiAgZ2V0SWNvbiA9IChpY29uVHlwZTogSWNvblR5cGUpID0+IHRoaXMuYnV0dG9uSWNvbkluZGV4W2ljb25UeXBlXTtcblxuICBnZXRUeXBlKHY6IEJ0blR5cGUpIHtcbiAgICByZXR1cm4gdGhpcy5idG5DbGFzc0NvbmZpZ1t2XSB8fCB7IF90eXBlOiAncHJpbWFyeScgfTtcbiAgfVxuICBkZWZhdWx0VHlwZTogQnRuVHlwZSA9ICdzZWNvbmRhcnknO1xuXG4gIGxvZ0NsaWNrKGJ0bjogQnRuQ29tcG9uZW50KSB7XG4gICAgY29uc29sZS5sb2coJ2J0bi5leHRyYWN0VGV4dCcsIGJ0bi5leHRyYWN0VGV4dCwgYnRuKTtcbiAgICBpZiAoYnRuLmV4Y2x1ZGVMb2dnaW5nKSByZXR1cm47XG4gICAgdGhpcy51YVMuYWRkKHtcbiAgICAgIGNvZGU6IEVVQS5jbGlja2VkLFxuICAgICAgYWN0aXZpdHlEZXNjcmlwdGlvbjogYnRuLmV4dHJhY3RUZXh0LFxuICAgIH0pO1xuICB9XG5cbiAgc2V0Rm9ybVN0YXRlID0gKGJ0bjogQnRuQ29tcG9uZW50KSA9PiB7XG4gICAgYnRuLmNoZWNrRm9ybVN0YXRlU3ViPy51bnN1YnNjcmliZSgpO1xuICAgIGJ0bi5jaGVja0Zvcm1TdGF0ZVN1YiA9IHRpbWVyKDAsIDEwMDApXG4gICAgICAucGlwZSh0YWtlKDMpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIC8vIGJ0bi5jb3VudGVyPy5zZXQoYnRuLmNvdW50ZXIoKSArIDEpO1xuICAgICAgICBidG4uZm9ybVN0YXRlLnNldChcbiAgICAgICAgICBjbG9uZURlZXAoe1xuICAgICAgICAgICAgcGVuZGluZzogYnRuLmZvcm0/LnBlbmRpbmcsXG4gICAgICAgICAgICBkaXJ0eTogYnRuLmZvcm0/LmRpcnR5LFxuICAgICAgICAgICAgaW52YWxpZDogYnRuLmZvcm0/LmludmFsaWQsXG4gICAgICAgICAgICBwcmlzdGluZTogYnRuLmZvcm0/LnByaXN0aW5lLFxuICAgICAgICAgICAgdmFsaWQ6IGJ0bi5mb3JtPy52YWxpZCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICB9O1xuXG4gIHNldEZvcm1zU3RhdGUgPSAoYnRuOiBCdG5Db21wb25lbnQpID0+IHtcbiAgICBidG4uY2hlY2tGb3Jtc1N0YXRlU3ViPy51bnN1YnNjcmliZSgpO1xuICAgIGJ0bi5jaGVja0Zvcm1zU3RhdGVTdWIgPSB0aW1lcigwLCAxMDAwKVxuICAgICAgLnBpcGUodGFrZSgzKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBjb25zdCBmcyA9IHtcbiAgICAgICAgICBwZW5kaW5nOiB0cnVlLFxuICAgICAgICAgIGRpcnR5OiB0cnVlLFxuICAgICAgICAgIGludmFsaWQ6IHRydWUsXG4gICAgICAgICAgcHJpc3RpbmU6IHRydWUsXG4gICAgICAgICAgdmFsaWQ6IHRydWUsXG4gICAgICAgIH07XG4gICAgICAgIGJ0bi5mb3Jtcz8uZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgICAgIGlmICgheC5wZW5kaW5nKSBmcy5wZW5kaW5nID0geC5wZW5kaW5nO1xuICAgICAgICAgIGlmICgheC5kaXJ0eSkgZnMuZGlydHkgPSB4LmRpcnR5O1xuICAgICAgICAgIGlmICgheC5pbnZhbGlkKSBmcy5pbnZhbGlkID0geC5pbnZhbGlkO1xuICAgICAgICAgIGlmICgheC5wcmlzdGluZSkgZnMucHJpc3RpbmUgPSB4LnByaXN0aW5lO1xuICAgICAgICAgIGlmICgheC52YWxpZCkgZnMudmFsaWQgPSB4LnZhbGlkO1xuICAgICAgICB9KTtcbiAgICAgICAgYnRuLmZvcm1zU3RhdGUuc2V0KGZzKTtcbiAgICAgIH0pO1xuICB9O1xuXG4gIGNoZWNrRm9ybShidG46IEJ0bkNvbXBvbmVudCkge1xuICAgIGRlYnVnZ2VyO1xuICAgIGlmIChidG4uaXNEaXNhYmxlZCgpICYmIGJ0bi5mb3JtKSB7XG4gICAgICBidG4uZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgICBjb25zdCBmb3JtID0gYnRuLmZvcm07XG4gICAgICBjb25zb2xlLmxvZyhmb3JtKTtcbiAgICAgIGlmIChmb3JtIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIE9iamVjdC5rZXlzKGZvcm0uY29udHJvbHMpXG4gICAgICAgICAgICAuZmlsdGVyKCh4KSA9PiAhZm9ybS5jb250cm9sc1t4XS52YWxpZClcbiAgICAgICAgICAgIC5tYXAoKHgpID0+IGZvcm0uY29udHJvbHNbeF0pLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoYnRuLmlzRGlzYWJsZWQoKSAmJiBidG4uZm9ybXMpIHtcbiAgICAgIGJ0bi5mb3Jtcy5mb3JFYWNoKChmb3JtKSA9PiBmb3JtLm1hcmtBbGxBc1RvdWNoZWQoKSk7XG4gICAgICAvLyB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICBjb25zb2xlLmxvZyhidG4uZm9ybXMpO1xuICAgIH1cbiAgfVxuICAvLyBwcm90ZWN0ZWQgZGVib3VuY2VyQXJyYXkgPSBbMjAwXS5jb25jYXQobmV3IEFycmF5KDMpLmZpbGwoMSkubWFwKCh4LCBpKSA9PiAoaSArIDEpICogMTAwMCkpO1xuXG4gIGhhbmRsZUZvcm0gPSAoZm9ybTogQWJzdHJhY3RDb250cm9sLCBidG46IEJ0bkNvbXBvbmVudCkgPT5cbiAgICBmb3JtLnN0YXR1c0NoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKHIpID0+IHRoaXMuc2V0Rm9ybVN0YXRlKGJ0bikpLFxuICAgICAgICAvLyB0YXAoKHIpID0+IHRoaXMuc2V0Rm9ybVN0YXRlKGZvcm0sIGJ0bikpLFxuXG4gICAgICAgIC8vIGRlYm91bmNlVGltZSgyMDApLFxuICAgICAgICAvLyB0YXAoKCkgPT4gdGhpcy5zZXRGb3JtU3RhdGUoZm9ybSwgYnRuKSksXG5cbiAgICAgICAgLy8gZGVib3VuY2VUaW1lKDEwMDApLFxuICAgICAgICAvLyB0YXAoKCkgPT4gdGhpcy5zZXRGb3JtU3RhdGUoZm9ybSwgYnRuKSksXG5cbiAgICAgICAgLy8gZGVib3VuY2VUaW1lKDEwMDApLFxuICAgICAgICAvLyB0YXAoKCkgPT4gdGhpcy5zZXRGb3JtU3RhdGUoZm9ybSwgYnRuKSksXG5cbiAgICAgICAgLy8gZGVib3VuY2VUaW1lKDEwMDApLFxuICAgICAgICAvLyB0YXAoKCkgPT4gdGhpcy5zZXRGb3JtU3RhdGUoZm9ybSwgYnRuKSksXG5cbiAgICAgICAgLy8gZGVib3VuY2VUaW1lKDEwMDApLFxuICAgICAgICAvLyB0YXAoKCkgPT4gdGhpcy5zZXRGb3JtU3RhdGUoZm9ybSwgYnRuKSksXG5cbiAgICAgICAgLy8gZGVib3VuY2VUaW1lKDEwMDApLFxuICAgICAgICAvLyB0YXAoKCkgPT4gdGhpcy5zZXRGb3JtU3RhdGUoZm9ybSwgYnRuKSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHt9KTtcblxuICBoYW5kbGVGb3JtcyA9ICh2OiBBYnN0cmFjdENvbnRyb2xbXSwgYnRuOiBCdG5Db21wb25lbnQpID0+XG4gICAgbWVyZ2Uodi5tYXAoKGYpID0+IGYuc3RhdHVzQ2hhbmdlcykpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKChyKSA9PiB0aGlzLnNldEZvcm1zU3RhdGUoYnRuKSksXG5cbiAgICAgICAgLy8gZGVib3VuY2VUaW1lKDIwMCksXG4gICAgICAgIC8vIHRhcCgoKSA9PiB0aGlzLnNldEZvcm1zU3RhdGUodiwgYnRuKSksXG5cbiAgICAgICAgLy8gZGVib3VuY2VUaW1lKDEwMDApLFxuICAgICAgICAvLyB0YXAoKCkgPT4gdGhpcy5zZXRGb3Jtc1N0YXRlKHYsIGJ0bikpLFxuXG4gICAgICAgIC8vIGRlYm91bmNlVGltZSgxMDAwKSxcbiAgICAgICAgLy8gdGFwKCgpID0+IHRoaXMuc2V0Rm9ybXNTdGF0ZSh2LCBidG4pKSxcblxuICAgICAgICAvLyBkZWJvdW5jZVRpbWUoMTAwMCksXG4gICAgICAgIC8vIHRhcCgoKSA9PiB0aGlzLnNldEZvcm1zU3RhdGUodiwgYnRuKSksXG5cbiAgICAgICAgLy8gZGVib3VuY2VUaW1lKDEwMDApLFxuICAgICAgICAvLyB0YXAoKCkgPT4gdGhpcy5zZXRGb3Jtc1N0YXRlKHYsIGJ0bikpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7fSk7XG59XG5cbnR5cGUgQnRuQ2xhc3MgPSB7IFtrIGluIEJ0blR5cGVdOiB7IF9tY2xhc3M/OiBzdHJpbmc7IF9pY29uPzogSWNvblR5cGU7IF90eXBlPzogQnRuVHlwZSB9IH07XG4iXX0=
303
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnRuLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL2NvbXBvbmVudHMvYnRuL2J0bi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFDTCxXQUFXLEVBQ1gsWUFBWSxFQUNaLE9BQU8sRUFDUCxPQUFPLEVBQ1AsTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osWUFBWSxFQUNaLFNBQVMsRUFDVCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFlBQVksRUFDWixLQUFLLEVBQ0wsVUFBVSxFQUNWLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNOLFFBQVEsRUFDUixVQUFVLEVBQ1YsT0FBTyxFQUNQLFFBQVEsRUFDUixRQUFRLEVBQ1IsUUFBUSxFQUNSLFlBQVksRUFDWixNQUFNLEVBQ04sT0FBTyxFQUNQLFdBQVcsRUFDWCxZQUFZLEVBQ1osT0FBTyxFQUNQLEtBQUssRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVCxNQUFNLEVBRU4sU0FBUyxFQUNULFFBQVEsRUFDUixtQkFBbUIsRUFDbkIsV0FBVyxFQUNYLE9BQU8sRUFDUCxPQUFPLEVBR1AsTUFBTSxFQUNOLE9BQU8sR0FDUixNQUFNLG1DQUFtQyxDQUFDO0FBSTNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQztBQUNwRyxPQUFPLEVBQW1CLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBZ0IsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQWdCLEtBQUssRUFBRSxNQUFNLE1B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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmYVBhcGVyUGxhbmUgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1yZWd1bGFyLXN2Zy1pY29ucyc7XG5pbXBvcnQge1xuICBmYUFycm93TGVmdCxcbiAgZmFBcnJvd1JpZ2h0LFxuICBmYUNoZWNrLFxuICBmYUNsb25lLFxuICBmYUNvZ3MsXG4gIGZhRG93bmxvYWQsXG4gIGZhRWRpdCxcbiAgZmFFeWUsXG4gIGZhRmlsZSxcbiAgZmFGaWxlRXhwb3J0LFxuICBmYUZpbGVJbXBvcnQsXG4gIGZhSGlzdG9yeSxcbiAgZmFMaXN0QWx0LFxuICBmYUxvY2ssXG4gIGZhTW9uZXlDaGVjayxcbiAgZmFQZW4sXG4gIGZhUGVuRmFuY3ksXG4gIGZhUGx1cyxcbiAgZmFSZWN5Y2xlLFxuICBmYVNhdmUsXG4gIGZhU2VhcmNoLFxuICBmYVNsaWRlcnNILFxuICBmYVRyYXNoLFxuICBmYVVubG9jayxcbiAgZmFGaWx0ZXIsXG4gIGZhVXBsb2FkLFxuICBmYVVzZXJTaGllbGQsXG4gIGZhSG9tZSxcbiAgZmFVc2VycyxcbiAgZmFCZWxsU2xhc2gsXG4gIGZhSW5mb0NpcmNsZSxcbiAgZmFUcnVjayxcbiAgZmFUYWcsXG4gIGZhUmVjZWlwdCxcbiAgZmFCYW5rLFxuICBmYUFycm93c0gsXG4gIGZhUGxheSxcbiAgZmFMaW5rLFxuICBmYVBlcmNlbnQsXG4gIGZhQ2FuY2VsLFxuICBmYUNpcmNsZUV4Y2xhbWF0aW9uLFxuICBmYUhhbmRzaGFrZSxcbiAgZmFUYWJsZSxcbiAgZmFTcG9vbixcbiAgSWNvbkRlZmluaXRpb24sXG4gIGZhQm94LFxuICBmYVN0b3AsXG4gIGZhUGF1c2UsXG59IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgeyBCdG5Db21wb25lbnQgfSBmcm9tICcuL2J0bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnRuVHlwZSwgSWNvblR5cGUgfSBmcm9tICcuL2J0bi5tb2RlbCc7XG5pbXBvcnQgeyBVc2VyQWN0aXZpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vUmV1c2FibGVzL3JldXNhYmxlLXBhZ2VzL3VzZXItYWN0aXZpdHkvdWEtZXh0cmFzL3VzZXItYWN0aXZpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBFVUEgfSBmcm9tICcuLi8uLi8uLi9SZXVzYWJsZXMvcmV1c2FibGUtcGFnZXMvdXNlci1hY3Rpdml0eS91YS1leHRyYXMvdXNlci1hY3Rpdml0eS5tb2RlbCc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWVyZ2UsIHRha2UsIHRhcCwgdGltZUludGVydmFsLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEJ0blNlcnZpY2Uge1xuICBidG5DbGFzc0NvbmZpZzogQnRuQ2xhc3MgPSB7XG4gICAgWydwcmltYXJ5J106IHtcbiAgICAgIF9tY2xhc3M6ICdidG4gYnRuLXByaW1hcnkgYnRuLWxnIHctMTAwJyxcbiAgICB9LFxuICAgIFsnc2Vjb25kYXJ5J106IHtcbiAgICAgIF9tY2xhc3M6ICdidG4gYnRuLW91dGxpbmUtcHJpbWFyeSBidG4tY2xvbmUgYnRuLWxnIHctMTAwJyxcbiAgICB9LFxuICAgIFsnb3V0bGluZSddOiB7XG4gICAgICBfbWNsYXNzOiAnYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgYnRuLWxnIHctMTAwJyxcbiAgICB9LFxuICAgIFsnY2xlYXInXToge1xuICAgICAgX21jbGFzczogJ2J0biB3LTEwMCcsXG4gICAgfSxcbiAgICBbJ2Rhcmstb3V0bGluZSddOiB7XG4gICAgICBfbWNsYXNzOiAnYnRuIGJ0bi1vdXRsaW5lLWRhcmsgYnRuLWxnIHctMTAwJyxcbiAgICB9LFxuICAgIFsnb3V0bGluZS1ubSddOiB7XG4gICAgICBfbWNsYXNzOiAnYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgdy0xMDAnLFxuICAgIH0sXG4gICAgWydkYXJrJ106IHtcbiAgICAgIF9tY2xhc3M6ICdidG4gYnRuLWRhcmsgYnRuLWxnIHctMTAwJyxcbiAgICB9LFxuICAgIFsnZGFuZ2VyJ106IHtcbiAgICAgIF9tY2xhc3M6ICdidG4gYnRuLWRhbmdlciBidG4tbGcgdy0xMDAnLFxuICAgIH0sXG4gICAgWydkYW5nZXItb3V0bGluZSddOiB7XG4gICAgICBfbWNsYXNzOiAnYnRuIGJ0bi1vdXRsaW5lLWRhbmdlciBidG4tbGcgdy0xMDAnLFxuICAgIH0sXG4gICAgWydjbG9zZSddOiB7IF9tY2xhc3M6ICdidG4gYnRuLWxnICB0ZXh0LWRhbmdlcicsIF9pY29uOiAnY2xvc2UnIH0sXG4gICAgWydzdWNjZXNzJ106IHtcbiAgICAgIF9tY2xhc3M6ICdidG4gYnRuLWxnIGJ0bi1zdWNjZXNzIHctMTAwJyxcbiAgICB9LFxuICB9O1xuICBidXR0b25JY29uSW5kZXg6IHtcbiAgICBbayBpbiBJY29uVHlwZV0/OiB7XG4gICAgICBpY29uPzogSWNvbkRlZmluaXRpb247XG4gICAgICBpY29uU3RyaW5nPzogc3RyaW5nO1xuICAgICAgaWNvblBvc2l0aW9uPzogJ3JpZ2h0JyB8ICdsZWZ0JztcbiAgICB9O1xuICB9ID0ge1xuICAgIGFkZDoge1xuICAgICAgaWNvbjogZmFQbHVzLFxuICAgIH0sXG4gICAgYWRqdXN0OiB7XG4gICAgICBpY29uOiBmYVNsaWRlcnNILFxuICAgIH0sXG4gICAgY2FsZW5kYXI6IHtcbiAgICAgIGljb25TdHJpbmc6ICdmYXMgZmEtY2FsZW5kYXItYWx0JyxcbiAgICB9LFxuICAgIGNhc2g6IHtcbiAgICAgIGljb246IGZhTW9uZXlDaGVjayxcbiAgICB9LFxuICAgIGNhbmNlbDoge1xuICAgICAgaWNvbjogZmFDYW5jZWwsXG4gICAgfSxcbiAgICBjaGVja2VkOiB7XG4gICAgICBpY29uOiBmYUNoZWNrLFxuICAgIH0sXG4gICAgY2hlY2tsaXN0OiB7XG4gICAgICBpY29uOiBmYUxpc3RBbHQsXG4gICAgfSxcbiAgICBjbG9uZToge1xuICAgICAgaWNvbjogZmFDbG9uZSxcbiAgICB9LFxuICAgIGNsb3NlOiB7XG4gICAgICBpY29uU3RyaW5nOiAnZmEgZmEtY2xvc2UnLFxuICAgIH0sXG4gICAgY29nczoge1xuICAgICAgaWNvbjogZmFDb2dzLFxuICAgIH0sXG4gICAgZGVsZXRlOiB7XG4gICAgICBpY29uOiBmYVRyYXNoLFxuICAgIH0sXG4gICAgZG93bmxvYWQ6IHtcbiAgICAgIGljb246IGZhRG93bmxvYWQsXG4gICAgfSxcbiAgICBkcm9wZG93bjoge1xuICAgICAgaWNvblBvc2l0aW9uOiAncmlnaHQnLFxuICAgICAgaWNvblN0cmluZzogJ2ZhIGZhLWNoZXZyb24tZG93bicsXG4gICAgfSxcbiAgICBlZGl0OiB7XG4gICAgICBpY29uOiBmYUVkaXQsXG4gICAgfSxcbiAgICBleHBvcnQ6IHtcbiAgICAgIGljb246IGZhRmlsZUV4cG9ydCxcbiAgICB9LFxuICAgIGZpbGU6IHtcbiAgICAgIGljb246IGZhRmlsZSxcbiAgICB9LFxuICAgIGZpbHRlcjoge1xuICAgICAgaWNvbjogZmFGaWx0ZXIsXG4gICAgfSxcbiAgICBnZW5lcmF0ZToge1xuICAgICAgaWNvbjogZmFQZW5GYW5jeSxcbiAgICB9LFxuICAgIGd1YXJkOiB7XG4gICAgICBpY29uOiBmYVVzZXJTaGllbGQsXG4gICAgfSxcbiAgICBhY2Nlc3M6IHtcbiAgICAgIGljb246IGZhVXNlclNoaWVsZCxcbiAgICB9LFxuICAgIGhpc3Rvcnk6IHtcbiAgICAgIGljb246IGZhSGlzdG9yeSxcbiAgICB9LFxuICAgIGhvbWU6IHtcbiAgICAgIGljb246IGZhSG9tZSxcbiAgICB9LFxuICAgIGltcG9ydDoge1xuICAgICAgaWNvbjogZmFGaWxlSW1wb3J0LFxuICAgIH0sXG4gICAgaW5mbzoge1xuICAgICAgaWNvbjogZmFJbmZvQ2lyY2xlLFxuICAgIH0sXG4gICAgbGluazoge1xuICAgICAgaWNvblN0cmluZzogJ2ZhcyBmYS1jaGFpbicsXG4gICAgfSxcbiAgICBsb2NrOiB7XG4gICAgICBpY29uOiBmYUxvY2ssXG4gICAgfSxcbiAgICBuZXh0OiB7XG4gICAgICBpY29uOiBmYUFycm93UmlnaHQsXG4gICAgICBpY29uUG9zaXRpb246ICdyaWdodCcsXG4gICAgfSxcbiAgICBwYXVzZToge1xuICAgICAgaWNvbjogZmFQYXVzZSxcbiAgICB9LFxuICAgIHBlbjoge1xuICAgICAgaWNvbjogZmFQZW4sXG4gICAgfSxcbiAgICBwb3N0OiB7XG4gICAgICBpY29uOiBmYVBhcGVyUGxhbmUsXG4gICAgfSxcbiAgICBwcmV2aW91czoge1xuICAgICAgaWNvbjogZmFBcnJvd0xlZnQsXG4gICAgfSxcbiAgICByZW5ldzoge1xuICAgICAgaWNvbjogZmFSZWN5Y2xlLFxuICAgIH0sXG4gICAgc2F2ZToge1xuICAgICAgaWNvbjogZmFTYXZlLFxuICAgIH0sXG4gICAgc2VhcmNoOiB7XG4gICAgICBpY29uOiBmYVNlYXJjaCxcbiAgICB9LFxuICAgIHNob3c6IHtcbiAgICAgIGljb246IGZhRXllLFxuICAgIH0sXG4gICAgdmlldzoge1xuICAgICAgaWNvbjogZmFFeWUsXG4gICAgfSxcbiAgICBzbm9vemU6IHtcbiAgICAgIGljb246IGZhQmVsbFNsYXNoLFxuICAgIH0sXG4gICAgdXBsb2FkOiB7XG4gICAgICBpY29uOiBmYVVwbG9hZCxcbiAgICB9LFxuICAgIHVubG9jazoge1xuICAgICAgaWNvbjogZmFVbmxvY2ssXG4gICAgfSxcbiAgICB1c2Vyczoge1xuICAgICAgaWNvbjogZmFVc2VycyxcbiAgICB9LFxuICAgIHJlY3ljbGU6IHtcbiAgICAgIGljb246IGZhUmVjeWNsZSxcbiAgICB9LFxuICAgIHJlZnJlc2g6IHtcbiAgICAgIGljb25TdHJpbmc6ICdmYSBmYS1yZWZyZXNoJyxcbiAgICB9LFxuICAgIHN0b3A6IHtcbiAgICAgIGljb246IGZhU3RvcCxcbiAgICB9LFxuICAgIHRydWNrOiB7XG4gICAgICBpY29uOiBmYVRydWNrLFxuICAgIH0sXG4gICAgdGFnOiB7XG4gICAgICBpY29uOiBmYVRhZyxcbiAgICB9LFxuICAgIHJlY2VpcHQ6IHtcbiAgICAgIGljb246IGZhUmVjZWlwdCxcbiAgICB9LFxuICAgIGJhbms6IHtcbiAgICAgIGljb246IGZhQmFuayxcbiAgICB9LFxuICAgIGFycm93aDoge1xuICAgICAgaWNvbjogZmFBcnJvd3NILFxuICAgIH0sXG4gICAgcGxheToge1xuICAgICAgaWNvbjogZmFQbGF5LFxuICAgIH0sXG4gICAgcGVyY2VudDoge1xuICAgICAgaWNvbjogZmFQZXJjZW50LFxuICAgIH0sXG4gICAgc2hha2U6IHtcbiAgICAgIGljb246IGZhSGFuZHNoYWtlLFxuICAgIH0sXG4gICAgZXJyb3I6IHtcbiAgICAgIGljb246IGZhQ2lyY2xlRXhjbGFtYXRpb24sXG4gICAgfSxcbiAgICB0YWJsZToge1xuICAgICAgaWNvbjogZmFUYWJsZSxcbiAgICB9LFxuICAgIHNwb29uOiB7XG4gICAgICBpY29uOiBmYVNwb29uLFxuICAgIH0sXG4gIH07XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1YVM6IFVzZXJBY3Rpdml0eVNlcnZpY2UpIHt9XG4gIGdldEljb24gPSAoaWNvblR5cGU6IEljb25UeXBlKSA9PiB0aGlzLmJ1dHRvbkljb25JbmRleFtpY29uVHlwZV07XG5cbiAgZ2V0VHlwZSh2OiBCdG5UeXBlKSB7XG4gICAgcmV0dXJuIHRoaXMuYnRuQ2xhc3NDb25maWdbdl0gfHwgeyBfdHlwZTogJ3ByaW1hcnknIH07XG4gIH1cbiAgZGVmYXVsdFR5cGU6IEJ0blR5cGUgPSAnc2Vjb25kYXJ5JztcblxuICBsb2dDbGljayhidG46IEJ0bkNvbXBvbmVudCkge1xuICAgIGNvbnNvbGUubG9nKCdidG4uZXh0cmFjdFRleHQnLCBidG4uZXh0cmFjdFRleHQsIGJ0bik7XG4gICAgaWYgKGJ0bi5leGNsdWRlTG9nZ2luZykgcmV0dXJuO1xuICAgIHRoaXMudWFTLmFkZCh7XG4gICAgICBjb2RlOiBFVUEuY2xpY2tlZCxcbiAgICAgIGFjdGl2aXR5RGVzY3JpcHRpb246IGJ0bi5leHRyYWN0VGV4dCxcbiAgICB9KTtcbiAgfVxuXG4gIHNldEZvcm1TdGF0ZSA9IChidG46IEJ0bkNvbXBvbmVudCkgPT4ge1xuICAgIGJ0bi5jaGVja0Zvcm1TdGF0ZVN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICBidG4uY2hlY2tGb3JtU3RhdGVTdWIgPSB0aW1lcigwLCAxMDAwKVxuICAgICAgLnBpcGUodGFrZSgzKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAvLyBidG4uY291bnRlcj8uc2V0KGJ0bi5jb3VudGVyKCkgKyAxKTtcbiAgICAgICAgYnRuLmZvcm1TdGF0ZS5zZXQoXG4gICAgICAgICAgY2xvbmVEZWVwKHtcbiAgICAgICAgICAgIHBlbmRpbmc6IGJ0bi5mb3JtPy5wZW5kaW5nLFxuICAgICAgICAgICAgZGlydHk6IGJ0bi5mb3JtPy5kaXJ0eSxcbiAgICAgICAgICAgIGludmFsaWQ6IGJ0bi5mb3JtPy5pbnZhbGlkLFxuICAgICAgICAgICAgcHJpc3RpbmU6IGJ0bi5mb3JtPy5wcmlzdGluZSxcbiAgICAgICAgICAgIHZhbGlkOiBidG4uZm9ybT8udmFsaWQsXG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgfTtcblxuICBzZXRGb3Jtc1N0YXRlID0gKGJ0bjogQnRuQ29tcG9uZW50KSA9PiB7XG4gICAgYnRuLmNoZWNrRm9ybXNTdGF0ZVN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICBidG4uY2hlY2tGb3Jtc1N0YXRlU3ViID0gdGltZXIoMCwgMTAwMClcbiAgICAgIC5waXBlKHRha2UoMykpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgY29uc3QgZnMgPSB7XG4gICAgICAgICAgcGVuZGluZzogdHJ1ZSxcbiAgICAgICAgICBkaXJ0eTogdHJ1ZSxcbiAgICAgICAgICBpbnZhbGlkOiB0cnVlLFxuICAgICAgICAgIHByaXN0aW5lOiB0cnVlLFxuICAgICAgICAgIHZhbGlkOiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgICBidG4uZm9ybXM/LmZvckVhY2goKHgpID0+IHtcbiAgICAgICAgICBpZiAoIXgucGVuZGluZykgZnMucGVuZGluZyA9IHgucGVuZGluZztcbiAgICAgICAgICBpZiAoIXguZGlydHkpIGZzLmRpcnR5ID0geC5kaXJ0eTtcbiAgICAgICAgICBpZiAoIXguaW52YWxpZCkgZnMuaW52YWxpZCA9IHguaW52YWxpZDtcbiAgICAgICAgICBpZiAoIXgucHJpc3RpbmUpIGZzLnByaXN0aW5lID0geC5wcmlzdGluZTtcbiAgICAgICAgICBpZiAoIXgudmFsaWQpIGZzLnZhbGlkID0geC52YWxpZDtcbiAgICAgICAgfSk7XG4gICAgICAgIGJ0bi5mb3Jtc1N0YXRlLnNldChmcyk7XG4gICAgICB9KTtcbiAgfTtcblxuICBjaGVja0Zvcm0oYnRuOiBCdG5Db21wb25lbnQpIHtcbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICBpZiAoYnRuLmlzRGlzYWJsZWQoKSAmJiBidG4uZm9ybSkge1xuICAgICAgYnRuLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgICAgY29uc3QgZm9ybSA9IGJ0bi5mb3JtO1xuICAgICAgY29uc29sZS5sb2coZm9ybSk7XG4gICAgICBpZiAoZm9ybSBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICBPYmplY3Qua2V5cyhmb3JtLmNvbnRyb2xzKVxuICAgICAgICAgICAgLmZpbHRlcigoeCkgPT4gIWZvcm0uY29udHJvbHNbeF0udmFsaWQpXG4gICAgICAgICAgICAubWFwKCh4KSA9PiBmb3JtLmNvbnRyb2xzW3hdKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGJ0bi5pc0Rpc2FibGVkKCkgJiYgYnRuLmZvcm1zKSB7XG4gICAgICBidG4uZm9ybXMuZm9yRWFjaCgoZm9ybSkgPT4gZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCkpO1xuICAgICAgLy8gdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgY29uc29sZS5sb2coYnRuLmZvcm1zKTtcbiAgICB9XG4gIH1cbiAgLy8gcHJvdGVjdGVkIGRlYm91bmNlckFycmF5ID0gWzIwMF0uY29uY2F0KG5ldyBBcnJheSgzKS5maWxsKDEpLm1hcCgoeCwgaSkgPT4gKGkgKyAxKSAqIDEwMDApKTtcblxuICBoYW5kbGVGb3JtID0gKGZvcm06IEFic3RyYWN0Q29udHJvbCwgYnRuOiBCdG5Db21wb25lbnQpID0+XG4gICAgZm9ybS5zdGF0dXNDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKChyKSA9PiB0aGlzLnNldEZvcm1TdGF0ZShidG4pKSxcbiAgICAgICAgLy8gdGFwKChyKSA9PiB0aGlzLnNldEZvcm1TdGF0ZShmb3JtLCBidG4pKSxcblxuICAgICAgICAvLyBkZWJvdW5jZVRpbWUoMjAwKSxcbiAgICAgICAgLy8gdGFwKCgpID0+IHRoaXMuc2V0Rm9ybVN0YXRlKGZvcm0sIGJ0bikpLFxuXG4gICAgICAgIC8vIGRlYm91bmNlVGltZSgxMDAwKSxcbiAgICAgICAgLy8gdGFwKCgpID0+IHRoaXMuc2V0Rm9ybVN0YXRlKGZvcm0sIGJ0bikpLFxuXG4gICAgICAgIC8vIGRlYm91bmNlVGltZSgxMDAwKSxcbiAgICAgICAgLy8gdGFwKCgpID0+IHRoaXMuc2V0Rm9ybVN0YXRlKGZvcm0sIGJ0bikpLFxuXG4gICAgICAgIC8vIGRlYm91bmNlVGltZSgxMDAwKSxcbiAgICAgICAgLy8gdGFwKCgpID0+IHRoaXMuc2V0Rm9ybVN0YXRlKGZvcm0sIGJ0bikpLFxuXG4gICAgICAgIC8vIGRlYm91bmNlVGltZSgxMDAwKSxcbiAgICAgICAgLy8gdGFwKCgpID0+IHRoaXMuc2V0Rm9ybVN0YXRlKGZvcm0sIGJ0bikpLFxuXG4gICAgICAgIC8vIGRlYm91bmNlVGltZSgxMDAwKSxcbiAgICAgICAgLy8gdGFwKCgpID0+IHRoaXMuc2V0Rm9ybVN0YXRlKGZvcm0sIGJ0bikpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7fSk7XG5cbiAgaGFuZGxlRm9ybXMgPSAodjogQWJzdHJhY3RDb250cm9sW10sIGJ0bjogQnRuQ29tcG9uZW50KSA9PlxuICAgIG1lcmdlKHYubWFwKChmKSA9PiBmLnN0YXR1c0NoYW5nZXMpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgocikgPT4gdGhpcy5zZXRGb3Jtc1N0YXRlKGJ0bikpLFxuXG4gICAgICAgIC8vIGRlYm91bmNlVGltZSgyMDApLFxuICAgICAgICAvLyB0YXAoKCkgPT4gdGhpcy5zZXRGb3Jtc1N0YXRlKHYsIGJ0bikpLFxuXG4gICAgICAgIC8vIGRlYm91bmNlVGltZSgxMDAwKSxcbiAgICAgICAgLy8gdGFwKCgpID0+IHRoaXMuc2V0Rm9ybXNTdGF0ZSh2LCBidG4pKSxcblxuICAgICAgICAvLyBkZWJvdW5jZVRpbWUoMTAwMCksXG4gICAgICAgIC8vIHRhcCgoKSA9PiB0aGlzLnNldEZvcm1zU3RhdGUodiwgYnRuKSksXG5cbiAgICAgICAgLy8gZGVib3VuY2VUaW1lKDEwMDApLFxuICAgICAgICAvLyB0YXAoKCkgPT4gdGhpcy5zZXRGb3Jtc1N0YXRlKHYsIGJ0bikpLFxuXG4gICAgICAgIC8vIGRlYm91bmNlVGltZSgxMDAwKSxcbiAgICAgICAgLy8gdGFwKCgpID0+IHRoaXMuc2V0Rm9ybXNTdGF0ZSh2LCBidG4pKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge30pO1xufVxuXG50eXBlIEJ0bkNsYXNzID0geyBbayBpbiBCdG5UeXBlXTogeyBfbWNsYXNzPzogc3RyaW5nOyBfaWNvbj86IEljb25UeXBlOyBfdHlwZT86IEJ0blR5cGUgfSB9O1xuIl19
@@ -53,7 +53,7 @@ export class FormGeneratedValueComponent extends FormGeneratorComponent {
53
53
  };
54
54
  }
55
55
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: FormGeneratedValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
56
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: FormGeneratedValueComponent, isStandalone: true, selector: "form-generated-value", usesInheritance: true, ngImport: i0, template: "<loader [loading]=\"computedLoading()\">\n <form>\n <div\n class=\"row row-cols-{{ gridStyle() }} row-cols-md-{{ gridMDStyle() }} row-cols-lg-{{\n gridLGStyle()\n }} row-cols-xxl-{{ gridXXLStyle() }} align-items-center {{ formGridClass() }}\">\n @for (scheme of computedFormSchema(); track scheme.field) {\n <div class=\"col {{ scheme.cls }} \">\n @switch (true) {\n @case (scheme.type == 'tel') {\n <app-phone-number\n [form]=\"form()\"\n [label]=\"scheme.label\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [name]=\"scheme.field\"\n [showLabel]=\"false\"\n [noFormat]=\"scheme.noFormat\"\n [debug]=\"scheme.debug\"\n [showValidation]=\"scheme.showValidation\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [showValidationIcon]=\"scheme.showValidationIcon\"\n [countryCode3]=\"scheme.countryCode3\"\n [disabled]=\"\n scheme.disabled ||\n (scheme.disabledIf | functionCaller2: formValue() : (scheme.field | toAny))\n \"\n #inputTag />\n }\n @case (scheme.type == 'autocomplete') {\n <ng-container\n *ngTemplateOutlet=\"\n labelValue;\n context: {\n $implicit: {\n scheme,\n value:\n formValue()[scheme.field | toAny]\n | listOptionFinder\n : scheme.options || optionsMap[scheme.field | toAny]\n : scheme.valueField\n : scheme.labelField\n : scheme.labelType\n : scheme.optionFormatter\n }\n }\n \"></ng-container>\n }\n @default {\n <ng-container\n *ngTemplateOutlet=\"\n labelValue;\n context: { $implicit: { scheme, value: formValue()[scheme.field | toAny] } }\n \" />\n }\n }\n </div>\n }\n </div>\n </form>\n</loader>\n\n<ng-template #labelValue let-obj>\n <div class=\"\">\n <div class=\"text-primary\">\n {{ obj.scheme.label }}\n </div>\n <div class=\" \">\n {{ formatValue | functionCaller2: obj.scheme : obj.value | valueOrX: '-' }}\n </div>\n </div>\n</ng-template>\n", styles: [":host ::ng-deep input:not([type=checkbox]),:host ::ng-deep .control-bg-gray.form-control,:host ::ng-deep textarea{border:none!important;background-color:transparent!important;padding:0!important;height:auto!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: FunctionCaller2, name: "functionCaller2" }, { kind: "pipe", type: ListOptionFinderPipe, name: "listOptionFinder" }, { kind: "component", type: LoaderComponent, selector: "loader", inputs: ["class", "text", "loading", "height", "width", "ratioHW"] }, { kind: "component", type: PhoneNumberComponent, selector: "app-phone-number", inputs: ["showLabel", "countryCode3", "config"], outputs: ["onCountrySelect"] }, { kind: "pipe", type: ToAnyPipe, name: "toAny" }, { kind: "pipe", type: ValueOrXPipe, name: "valueOrX" }] }); }
56
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: FormGeneratedValueComponent, isStandalone: true, selector: "form-generated-value", usesInheritance: true, ngImport: i0, template: "<loader [loading]=\"computedLoading()\">\n <form>\n <div\n class=\"row row-cols-{{ gridStyle() }} row-cols-md-{{ gridMDStyle() }} row-cols-lg-{{\n gridLGStyle()\n }} row-cols-xxl-{{ gridXXLStyle() }} align-items-center {{ formGridClass() }}\">\n @for (scheme of computedFormSchema(); track scheme.field) {\n <div class=\"col {{ scheme.cls }} \">\n @switch (true) {\n @case (scheme.type == 'tel') {\n <app-phone-number\n [form]=\"form()\"\n [label]=\"scheme.label\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [name]=\"scheme.field\"\n [showLabel]=\"false\"\n [noFormat]=\"scheme.noFormat\"\n [debug]=\"scheme.debug\"\n [showValidation]=\"scheme.showValidation\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [showValidationIcon]=\"scheme.showValidationIcon\"\n [countryCode3]=\"scheme.countryCode3\"\n #inputTag />\n }\n @case (scheme.type == 'autocomplete') {\n <ng-container\n *ngTemplateOutlet=\"\n labelValue;\n context: {\n $implicit: {\n scheme,\n value:\n formValue()[scheme.field | toAny]\n | listOptionFinder\n : scheme.options || optionsMap[scheme.field | toAny]\n : scheme.valueField\n : scheme.labelField\n : scheme.labelType\n : scheme.optionFormatter\n }\n }\n \"></ng-container>\n }\n @default {\n <ng-container\n *ngTemplateOutlet=\"\n labelValue;\n context: { $implicit: { scheme, value: formValue()[scheme.field | toAny] } }\n \" />\n }\n }\n </div>\n }\n </div>\n </form>\n</loader>\n\n<ng-template #labelValue let-obj>\n <div class=\"\">\n <div class=\"text-primary\">\n {{ obj.scheme.label }}\n </div>\n <div class=\" \">\n {{ formatValue | functionCaller2: obj.scheme : obj.value | valueOrX: '-' }}\n </div>\n </div>\n</ng-template>\n", styles: [":host ::ng-deep input:not([type=checkbox]),:host ::ng-deep .control-bg-gray.form-control,:host ::ng-deep textarea{border:none!important;background-color:transparent!important;padding:0!important;height:auto!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: FunctionCaller2, name: "functionCaller2" }, { kind: "pipe", type: ListOptionFinderPipe, name: "listOptionFinder" }, { kind: "component", type: LoaderComponent, selector: "loader", inputs: ["class", "text", "loading", "height", "width", "ratioHW"] }, { kind: "component", type: PhoneNumberComponent, selector: "app-phone-number", inputs: ["showLabel", "countryCode3", "config"], outputs: ["onCountrySelect"] }, { kind: "pipe", type: ToAnyPipe, name: "toAny" }, { kind: "pipe", type: ValueOrXPipe, name: "valueOrX" }] }); }
57
57
  }
58
58
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: FormGeneratedValueComponent, decorators: [{
59
59
  type: Component,
@@ -75,6 +75,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
75
75
  ToAnyPipe,
76
76
  ValidationMessageComponent,
77
77
  ValueOrXPipe,
78
- ], template: "<loader [loading]=\"computedLoading()\">\n <form>\n <div\n class=\"row row-cols-{{ gridStyle() }} row-cols-md-{{ gridMDStyle() }} row-cols-lg-{{\n gridLGStyle()\n }} row-cols-xxl-{{ gridXXLStyle() }} align-items-center {{ formGridClass() }}\">\n @for (scheme of computedFormSchema(); track scheme.field) {\n <div class=\"col {{ scheme.cls }} \">\n @switch (true) {\n @case (scheme.type == 'tel') {\n <app-phone-number\n [form]=\"form()\"\n [label]=\"scheme.label\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [name]=\"scheme.field\"\n [showLabel]=\"false\"\n [noFormat]=\"scheme.noFormat\"\n [debug]=\"scheme.debug\"\n [showValidation]=\"scheme.showValidation\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [showValidationIcon]=\"scheme.showValidationIcon\"\n [countryCode3]=\"scheme.countryCode3\"\n [disabled]=\"\n scheme.disabled ||\n (scheme.disabledIf | functionCaller2: formValue() : (scheme.field | toAny))\n \"\n #inputTag />\n }\n @case (scheme.type == 'autocomplete') {\n <ng-container\n *ngTemplateOutlet=\"\n labelValue;\n context: {\n $implicit: {\n scheme,\n value:\n formValue()[scheme.field | toAny]\n | listOptionFinder\n : scheme.options || optionsMap[scheme.field | toAny]\n : scheme.valueField\n : scheme.labelField\n : scheme.labelType\n : scheme.optionFormatter\n }\n }\n \"></ng-container>\n }\n @default {\n <ng-container\n *ngTemplateOutlet=\"\n labelValue;\n context: { $implicit: { scheme, value: formValue()[scheme.field | toAny] } }\n \" />\n }\n }\n </div>\n }\n </div>\n </form>\n</loader>\n\n<ng-template #labelValue let-obj>\n <div class=\"\">\n <div class=\"text-primary\">\n {{ obj.scheme.label }}\n </div>\n <div class=\" \">\n {{ formatValue | functionCaller2: obj.scheme : obj.value | valueOrX: '-' }}\n </div>\n </div>\n</ng-template>\n", styles: [":host ::ng-deep input:not([type=checkbox]),:host ::ng-deep .control-bg-gray.form-control,:host ::ng-deep textarea{border:none!important;background-color:transparent!important;padding:0!important;height:auto!important}\n"] }]
78
+ ], template: "<loader [loading]=\"computedLoading()\">\n <form>\n <div\n class=\"row row-cols-{{ gridStyle() }} row-cols-md-{{ gridMDStyle() }} row-cols-lg-{{\n gridLGStyle()\n }} row-cols-xxl-{{ gridXXLStyle() }} align-items-center {{ formGridClass() }}\">\n @for (scheme of computedFormSchema(); track scheme.field) {\n <div class=\"col {{ scheme.cls }} \">\n @switch (true) {\n @case (scheme.type == 'tel') {\n <app-phone-number\n [form]=\"form()\"\n [label]=\"scheme.label\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [name]=\"scheme.field\"\n [showLabel]=\"false\"\n [noFormat]=\"scheme.noFormat\"\n [debug]=\"scheme.debug\"\n [showValidation]=\"scheme.showValidation\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [showValidationIcon]=\"scheme.showValidationIcon\"\n [countryCode3]=\"scheme.countryCode3\"\n #inputTag />\n }\n @case (scheme.type == 'autocomplete') {\n <ng-container\n *ngTemplateOutlet=\"\n labelValue;\n context: {\n $implicit: {\n scheme,\n value:\n formValue()[scheme.field | toAny]\n | listOptionFinder\n : scheme.options || optionsMap[scheme.field | toAny]\n : scheme.valueField\n : scheme.labelField\n : scheme.labelType\n : scheme.optionFormatter\n }\n }\n \"></ng-container>\n }\n @default {\n <ng-container\n *ngTemplateOutlet=\"\n labelValue;\n context: { $implicit: { scheme, value: formValue()[scheme.field | toAny] } }\n \" />\n }\n }\n </div>\n }\n </div>\n </form>\n</loader>\n\n<ng-template #labelValue let-obj>\n <div class=\"\">\n <div class=\"text-primary\">\n {{ obj.scheme.label }}\n </div>\n <div class=\" \">\n {{ formatValue | functionCaller2: obj.scheme : obj.value | valueOrX: '-' }}\n </div>\n </div>\n</ng-template>\n", styles: [":host ::ng-deep input:not([type=checkbox]),:host ::ng-deep .control-bg-gray.form-control,:host ::ng-deep textarea{border:none!important;background-color:transparent!important;padding:0!important;height:auto!important}\n"] }]
79
79
  }], ctorParameters: () => [] });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1nZW5lcmF0ZWQtdmFsdWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL2Zvcm0tZ2VuZXJhdG9yL2Zvcm0tZ2VuZXJhdGVkLXZhbHVlL2Zvcm0tZ2VuZXJhdGVkLXZhbHVlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9mb3JtLWdlbmVyYXRvci9mb3JtLWdlbmVyYXRlZC12YWx1ZS9mb3JtLWdlbmVyYXRlZC12YWx1ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEYsT0FBTyxFQUFtQixXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsc0JBQXNCLEVBQWUsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDakYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDekcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFFLG1CQUFtQixFQUFtQixNQUFNLG1DQUFtQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQ0wsZUFBZSxFQUNmLGVBQWUsRUFDZixtQkFB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LGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixvQkFBb0I7d0JBQ3BCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixTQUFTO3dCQUNULDBCQUEwQjt3QkFDMUIsWUFBWTtxQkFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBOZ1N3aXRjaERlZmF1bHQsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1HZW5lcmF0b3JDb21wb25lbnQsIElGb3JtU2NoZW1hIH0gZnJvbSAnLi4vZm9ybS1nZW5lcmF0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IExvYWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2xvYWRlci9sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFBob25lTnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcGhvbmUtbnVtYmVyL3Bob25lLW51bWJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbk1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9pbnB1dC92YWxpZGF0aW9uLW1lc3NhZ2UvdmFsaWRhdGlvbi1tZXNzYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnB1dEJhc2ljQ29tcG9uZW50LCBPcHRpb25MYWJlbFR5cGUgfSBmcm9tICcuLi8uLi9pbnB1dC9pbnB1dC1iYXNpYy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnRuQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYnRuL2J0bi5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgRnVuY3Rpb25DYWxsZXIxLFxuICBGdW5jdGlvbkNhbGxlcjIsXG4gIFN0ckNvbmNhdGVuYXRvclBpcGUsXG4gIFRvQW55UGlwZSxcbiAgVmFsdWVPclhQaXBlLFxufSBmcm9tICcuLi8uLi8uLi9waXBlcy91dGlsaXR5LnBpcGUnO1xuaW1wb3J0IHsgVGV4dENhc2UyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdGV4dC1jYXNlLTIvdGV4dC1jYXNlLTIuY29tcG9uZW50JztcbmltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElucHV0U2VydmljZSB9IGZyb20gJy4uLy4uL2lucHV0L2lucHV0LnNlcnZpY2UnO1xuXG5AUGlwZSh7IG5hbWU6ICdsaXN0T3B0aW9uRmluZGVyJywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIExpc3RPcHRpb25GaW5kZXJQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybShcbiAgICB2YWx1ZTogc3RyaW5nLFxuICAgIG9wdGlvbnM6IHsgeDogc3RyaW5nIH1bXSxcbiAgICB2YWx1ZUZpZWxkOiBzdHJpbmcsXG4gICAgbGFiZWxGaWVsZDogc3RyaW5nLFxuICAgIGxhYmVsVHlwZTogT3B0aW9uTGFiZWxUeXBlLFxuICAgIG9wdGlvbkZvcm1hdHRlcjogKGl0ZW06IGFueSkgPT4gc3RyaW5nLFxuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IGZvcm1hdHRlZE9wdGlvbnMgPSB0aGlzLmlTLm9wdGlvbnNGb3JtYXR0ZXIoXG4gICAgICBvcHRpb25zLFxuICAgICAgdmFsdWVGaWVsZCxcbiAgICAgIG9wdGlvbkZvcm1hdHRlcixcbiAgICAgIGxhYmVsVHlwZSxcbiAgICAgIGxhYmVsRmllbGQsXG4gICAgICBmYWxzZSxcbiAgICApO1xuICAgIHJldHVybiBmb3JtYXR0ZWRPcHRpb25zPy5maW5kKCh4KSA9PiB4LnZhbHVlID09IHZhbHVlKT8ubGFiZWw7XG4gIH1cbiAgY29uc3RydWN0b3IocHVibGljIGlTOiBJbnB1dFNlcnZpY2UpIHt9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Zvcm0tZ2VuZXJhdGVkLXZhbHVlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZ2VuZXJhdGVkLXZhbHVlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1nZW5lcmF0ZWQtdmFsdWUuY29tcG9uZW50LnNjc3MnXSxcbiAgaW1wb3J0czogW1xuICAgIEF1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgICBCdG5Db21wb25lbnQsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIEZ1bmN0aW9uQ2FsbGVyMSxcbiAgICBGdW5jdGlvbkNhbGxlcjIsXG4gICAgSW5wdXRCYXNpY0NvbXBvbmVudCxcbiAgICBMaXN0T3B0aW9uRmluZGVyUGlwZSxcbiAgICBMb2FkZXJDb21wb25lbnQsXG4gICAgTmdTd2l0Y2hEZWZhdWx0LFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgUGhvbmVOdW1iZXJDb21wb25lbnQsXG4gICAgU3RyQ29uY2F0ZW5hdG9yUGlwZSxcbiAgICBUZXh0Q2FzZTJDb21wb25lbnQsXG4gICAgVG9BbnlQaXBlLFxuICAgIFZhbGlkYXRpb25NZXNzYWdlQ29tcG9uZW50LFxuICAgIFZhbHVlT3JYUGlwZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUdlbmVyYXRlZFZhbHVlQ29tcG9uZW50PFxuICBURm9ybUdyb3VwIGV4dGVuZHMge1xuICAgIFtLIGluIGtleW9mIFRGb3JtR3JvdXBdOiBBYnN0cmFjdENvbnRyb2w8YW55LCBhbnk+O1xuICB9ID0gYW55LFxuPiBleHRlbmRzIEZvcm1HZW5lcmF0b3JDb21wb25lbnQ8VEZvcm1Hcm91cD4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgZm9ybWF0VmFsdWUgPSAoXG4gICAgaXRlbTogSUZvcm1TY2hlbWEsXG4gICAgdmFsdWU6IHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXIsXG4gICk6IHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXIgPT4ge1xuICAgIGlmIChpdGVtLmZvcm1hdHRlcikgcmV0dXJuIGl0ZW0uZm9ybWF0dGVyKHRoaXMuZm9ybVZhbHVlKCkgYXMgYW55LCBpdGVtLmZpZWxkKTtcbiAgICBlbHNlIGlmIChpdGVtLm5vRm9ybWF0KSByZXR1cm4gdmFsdWU7XG4gICAgZWxzZSBpZiAoaXRlbS50eXBlID09ICdjaGVja2JveCcgfHwgaXRlbS50eXBlID09ICdjaGVja2VkYm94JykgcmV0dXJuIHZhbHVlID8gJ1llcycgOiAnTm8nO1xuICAgIGVsc2UgaWYgKGl0ZW0udHlwZSA9PSAnZGF0ZScpXG4gICAgICByZXR1cm4gdGhpcy51dGlsaXR5U2VydmljZS5kYXRlUGlwZS50cmFuc2Zvcm0odmFsdWUgYXMgc3RyaW5nLCAnRUUsIE1NTU0gZCwgeScpO1xuICAgIGVsc2UgaWYgKGl0ZW0udHlwZSA9PSAnZGF0ZXRpbWUtbG9jYWwnKVxuICAgICAgcmV0dXJuIHRoaXMudXRpbGl0eVNlcnZpY2UuZnVsbERhdGVUaW1lKHZhbHVlIGFzIHN0cmluZyk7XG4gICAgZWxzZSBpZiAoaXRlbS5zdWJUeXBlID09ICdtb25leScpIHJldHVybiB0aGlzLnV0aWxpdHlTZXJ2aWNlLm1vbmV5UGFyc2VyKHZhbHVlIGFzIHN0cmluZyk7XG4gICAgZWxzZSBpZiAoaXRlbS50eXBlID09ICdudW1iZXInKSByZXR1cm4gdGhpcy51dGlsaXR5U2VydmljZS5udW1iZXJQaXBlLnRyYW5zZm9ybSgrdmFsdWUpO1xuICAgIGVsc2UgcmV0dXJuIHZhbHVlO1xuICB9O1xufVxuIiwiPGxvYWRlciBbbG9hZGluZ109XCJjb21wdXRlZExvYWRpbmcoKVwiPlxuICA8Zm9ybT5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInJvdyByb3ctY29scy17eyBncmlkU3R5bGUoKSB9fSByb3ctY29scy1tZC17eyBncmlkTURTdHlsZSgpIH19IHJvdy1jb2xzLWxnLXt7XG4gICAgICAgIGdyaWRMR1N0eWxlKClcbiAgICAgIH19IHJvdy1jb2xzLXh4bC17eyBncmlkWFhMU3R5bGUoKSB9fSBhbGlnbi1pdGVtcy1jZW50ZXIge3sgZm9ybUdyaWRDbGFzcygpIH19XCI+XG4gICAgICBAZm9yIChzY2hlbWUgb2YgY29tcHV0ZWRGb3JtU2NoZW1hKCk7IHRyYWNrIHNjaGVtZS5maWVsZCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIHt7IHNjaGVtZS5jbHMgfX0gXCI+XG4gICAgICAgICAgQHN3aXRjaCAodHJ1ZSkge1xuICAgICAgICAgICAgQGNhc2UgKHNjaGVtZS50eXBlID09ICd0ZWwnKSB7XG4gICAgICAgICAgICAgIDxhcHAtcGhvbmUtbnVtYmVyXG4gICAgICAgICAgICAgICAgW2Zvcm1dPVwiZm9ybSgpXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwic2NoZW1lLmxhYmVsXCJcbiAgICAgICAgICAgICAgICBbY2xlYXJPbkRpc2FibGVdPVwic2NoZW1lLmNsZWFyT25EaXNhYmxlXCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJzY2hlbWUuZmllbGRcIlxuICAgICAgICAgICAgICAgIFtzaG93TGFiZWxdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIFtub0Zvcm1hdF09XCJzY2hlbWUubm9Gb3JtYXRcIlxuICAgICAgICAgICAgICAgIFtkZWJ1Z109XCJzY2hlbWUuZGVidWdcIlxuICAgICAgICAgICAgICAgIFtzaG93VmFsaWRhdGlvbl09XCJzY2hlbWUuc2hvd1ZhbGlkYXRpb25cIlxuICAgICAgICAgICAgICAgIFthdXRvUGlja1ZhbHVlRmllbGRdPVwic2NoZW1lLmF1dG9QaWNrVmFsdWVGaWVsZFwiXG4gICAgICAgICAgICAgICAgW3Nob3dSZXF1aXJlZFRhZ109XCJzY2hlbWUuc2hvd1JlcXVpcmVkVGFnXCJcbiAgICAgICAgICAgICAgICBbc2hvd1ZhbGlkYXRpb25JY29uXT1cInNjaGVtZS5zaG93VmFsaWRhdGlvbkljb25cIlxuICAgICAgICAgICAgICAgIFtjb3VudHJ5Q29kZTNdPVwic2NoZW1lLmNvdW50cnlDb2RlM1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIlxuICAgICAgICAgICAgICAgICAgc2NoZW1lLmRpc2FibGVkIHx8XG4gICAgICAgICAgICAgICAgICAoc2NoZW1lLmRpc2FibGVkSWYgfCBmdW5jdGlvbkNhbGxlcjI6IGZvcm1WYWx1ZSgpIDogKHNjaGVtZS5maWVsZCB8IHRvQW55KSlcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICNpbnB1dFRhZyAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGNhc2UgKHNjaGVtZS50eXBlID09ICdhdXRvY29tcGxldGUnKSB7XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgbGFiZWxWYWx1ZTtcbiAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgc2NoZW1lLFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOlxuICAgICAgICAgICAgICAgICAgICAgIGZvcm1WYWx1ZSgpW3NjaGVtZS5maWVsZCB8IHRvQW55XVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBsaXN0T3B0aW9uRmluZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogc2NoZW1lLm9wdGlvbnMgfHwgb3B0aW9uc01hcFtzY2hlbWUuZmllbGQgfCB0b0FueV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBzY2hlbWUudmFsdWVGaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IHNjaGVtZS5sYWJlbEZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogc2NoZW1lLmxhYmVsVHlwZVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IHNjaGVtZS5vcHRpb25Gb3JtYXR0ZXJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgIGxhYmVsVmFsdWU7XG4gICAgICAgICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogeyBzY2hlbWUsIHZhbHVlOiBmb3JtVmFsdWUoKVtzY2hlbWUuZmllbGQgfCB0b0FueV0gfSB9XG4gICAgICAgICAgICAgICAgXCIgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Zvcm0+XG48L2xvYWRlcj5cblxuPG5nLXRlbXBsYXRlICNsYWJlbFZhbHVlIGxldC1vYmo+XG4gIDxkaXYgY2xhc3M9XCJcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1wcmltYXJ5XCI+XG4gICAgICB7eyBvYmouc2NoZW1lLmxhYmVsIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIiBcIj5cbiAgICAgIHt7IGZvcm1hdFZhbHVlIHwgZnVuY3Rpb25DYWxsZXIyOiBvYmouc2NoZW1lIDogb2JqLnZhbHVlIHwgdmFsdWVPclg6ICctJyB9fVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1nZW5lcmF0ZWQtdmFsdWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL2Zvcm0tZ2VuZXJhdG9yL2Zvcm0tZ2VuZXJhdGVkLXZhbHVlL2Zvcm0tZ2VuZXJhdGVkLXZhbHVlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9mb3JtLWdlbmVyYXRvci9mb3JtLWdlbmVyYXRlZC12YWx1ZS9mb3JtLWdlbmVyYXRlZC12YWx1ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEYsT0FBTyxFQUFtQixXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsc0JBQXNCLEVBQWUsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDakYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDekcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFFLG1CQUFtQixFQUFtQixNQUFNLG1DQUFtQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQ0wsZUFBZSxFQUNmLGVBQWUsRUFDZixtQkFB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LGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixvQkFBb0I7d0JBQ3BCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixTQUFTO3dCQUNULDBCQUEwQjt3QkFDMUIsWUFBWTtxQkFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBOZ1N3aXRjaERlZmF1bHQsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1HZW5lcmF0b3JDb21wb25lbnQsIElGb3JtU2NoZW1hIH0gZnJvbSAnLi4vZm9ybS1nZW5lcmF0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IExvYWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2xvYWRlci9sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFBob25lTnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcGhvbmUtbnVtYmVyL3Bob25lLW51bWJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbk1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9pbnB1dC92YWxpZGF0aW9uLW1lc3NhZ2UvdmFsaWRhdGlvbi1tZXNzYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnB1dEJhc2ljQ29tcG9uZW50LCBPcHRpb25MYWJlbFR5cGUgfSBmcm9tICcuLi8uLi9pbnB1dC9pbnB1dC1iYXNpYy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnRuQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYnRuL2J0bi5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgRnVuY3Rpb25DYWxsZXIxLFxuICBGdW5jdGlvbkNhbGxlcjIsXG4gIFN0ckNvbmNhdGVuYXRvclBpcGUsXG4gIFRvQW55UGlwZSxcbiAgVmFsdWVPclhQaXBlLFxufSBmcm9tICcuLi8uLi8uLi9waXBlcy91dGlsaXR5LnBpcGUnO1xuaW1wb3J0IHsgVGV4dENhc2UyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdGV4dC1jYXNlLTIvdGV4dC1jYXNlLTIuY29tcG9uZW50JztcbmltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElucHV0U2VydmljZSB9IGZyb20gJy4uLy4uL2lucHV0L2lucHV0LnNlcnZpY2UnO1xuXG5AUGlwZSh7IG5hbWU6ICdsaXN0T3B0aW9uRmluZGVyJywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIExpc3RPcHRpb25GaW5kZXJQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybShcbiAgICB2YWx1ZTogc3RyaW5nLFxuICAgIG9wdGlvbnM6IHsgeDogc3RyaW5nIH1bXSxcbiAgICB2YWx1ZUZpZWxkOiBzdHJpbmcsXG4gICAgbGFiZWxGaWVsZDogc3RyaW5nLFxuICAgIGxhYmVsVHlwZTogT3B0aW9uTGFiZWxUeXBlLFxuICAgIG9wdGlvbkZvcm1hdHRlcjogKGl0ZW06IGFueSkgPT4gc3RyaW5nLFxuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IGZvcm1hdHRlZE9wdGlvbnMgPSB0aGlzLmlTLm9wdGlvbnNGb3JtYXR0ZXIoXG4gICAgICBvcHRpb25zLFxuICAgICAgdmFsdWVGaWVsZCxcbiAgICAgIG9wdGlvbkZvcm1hdHRlcixcbiAgICAgIGxhYmVsVHlwZSxcbiAgICAgIGxhYmVsRmllbGQsXG4gICAgICBmYWxzZSxcbiAgICApO1xuICAgIHJldHVybiBmb3JtYXR0ZWRPcHRpb25zPy5maW5kKCh4KSA9PiB4LnZhbHVlID09IHZhbHVlKT8ubGFiZWw7XG4gIH1cbiAgY29uc3RydWN0b3IocHVibGljIGlTOiBJbnB1dFNlcnZpY2UpIHt9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Zvcm0tZ2VuZXJhdGVkLXZhbHVlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZ2VuZXJhdGVkLXZhbHVlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1nZW5lcmF0ZWQtdmFsdWUuY29tcG9uZW50LnNjc3MnXSxcbiAgaW1wb3J0czogW1xuICAgIEF1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgICBCdG5Db21wb25lbnQsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIEZ1bmN0aW9uQ2FsbGVyMSxcbiAgICBGdW5jdGlvbkNhbGxlcjIsXG4gICAgSW5wdXRCYXNpY0NvbXBvbmVudCxcbiAgICBMaXN0T3B0aW9uRmluZGVyUGlwZSxcbiAgICBMb2FkZXJDb21wb25lbnQsXG4gICAgTmdTd2l0Y2hEZWZhdWx0LFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgUGhvbmVOdW1iZXJDb21wb25lbnQsXG4gICAgU3RyQ29uY2F0ZW5hdG9yUGlwZSxcbiAgICBUZXh0Q2FzZTJDb21wb25lbnQsXG4gICAgVG9BbnlQaXBlLFxuICAgIFZhbGlkYXRpb25NZXNzYWdlQ29tcG9uZW50LFxuICAgIFZhbHVlT3JYUGlwZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUdlbmVyYXRlZFZhbHVlQ29tcG9uZW50PFxuICBURm9ybUdyb3VwIGV4dGVuZHMge1xuICAgIFtLIGluIGtleW9mIFRGb3JtR3JvdXBdOiBBYnN0cmFjdENvbnRyb2w8YW55LCBhbnk+O1xuICB9ID0gYW55LFxuPiBleHRlbmRzIEZvcm1HZW5lcmF0b3JDb21wb25lbnQ8VEZvcm1Hcm91cD4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgZm9ybWF0VmFsdWUgPSAoXG4gICAgaXRlbTogSUZvcm1TY2hlbWEsXG4gICAgdmFsdWU6IHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXIsXG4gICk6IHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXIgPT4ge1xuICAgIGlmIChpdGVtLmZvcm1hdHRlcikgcmV0dXJuIGl0ZW0uZm9ybWF0dGVyKHRoaXMuZm9ybVZhbHVlKCkgYXMgYW55LCBpdGVtLmZpZWxkKTtcbiAgICBlbHNlIGlmIChpdGVtLm5vRm9ybWF0KSByZXR1cm4gdmFsdWU7XG4gICAgZWxzZSBpZiAoaXRlbS50eXBlID09ICdjaGVja2JveCcgfHwgaXRlbS50eXBlID09ICdjaGVja2VkYm94JykgcmV0dXJuIHZhbHVlID8gJ1llcycgOiAnTm8nO1xuICAgIGVsc2UgaWYgKGl0ZW0udHlwZSA9PSAnZGF0ZScpXG4gICAgICByZXR1cm4gdGhpcy51dGlsaXR5U2VydmljZS5kYXRlUGlwZS50cmFuc2Zvcm0odmFsdWUgYXMgc3RyaW5nLCAnRUUsIE1NTU0gZCwgeScpO1xuICAgIGVsc2UgaWYgKGl0ZW0udHlwZSA9PSAnZGF0ZXRpbWUtbG9jYWwnKVxuICAgICAgcmV0dXJuIHRoaXMudXRpbGl0eVNlcnZpY2UuZnVsbERhdGVUaW1lKHZhbHVlIGFzIHN0cmluZyk7XG4gICAgZWxzZSBpZiAoaXRlbS5zdWJUeXBlID09ICdtb25leScpIHJldHVybiB0aGlzLnV0aWxpdHlTZXJ2aWNlLm1vbmV5UGFyc2VyKHZhbHVlIGFzIHN0cmluZyk7XG4gICAgZWxzZSBpZiAoaXRlbS50eXBlID09ICdudW1iZXInKSByZXR1cm4gdGhpcy51dGlsaXR5U2VydmljZS5udW1iZXJQaXBlLnRyYW5zZm9ybSgrdmFsdWUpO1xuICAgIGVsc2UgcmV0dXJuIHZhbHVlO1xuICB9O1xufVxuIiwiPGxvYWRlciBbbG9hZGluZ109XCJjb21wdXRlZExvYWRpbmcoKVwiPlxuICA8Zm9ybT5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInJvdyByb3ctY29scy17eyBncmlkU3R5bGUoKSB9fSByb3ctY29scy1tZC17eyBncmlkTURTdHlsZSgpIH19IHJvdy1jb2xzLWxnLXt7XG4gICAgICAgIGdyaWRMR1N0eWxlKClcbiAgICAgIH19IHJvdy1jb2xzLXh4bC17eyBncmlkWFhMU3R5bGUoKSB9fSBhbGlnbi1pdGVtcy1jZW50ZXIge3sgZm9ybUdyaWRDbGFzcygpIH19XCI+XG4gICAgICBAZm9yIChzY2hlbWUgb2YgY29tcHV0ZWRGb3JtU2NoZW1hKCk7IHRyYWNrIHNjaGVtZS5maWVsZCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIHt7IHNjaGVtZS5jbHMgfX0gXCI+XG4gICAgICAgICAgQHN3aXRjaCAodHJ1ZSkge1xuICAgICAgICAgICAgQGNhc2UgKHNjaGVtZS50eXBlID09ICd0ZWwnKSB7XG4gICAgICAgICAgICAgIDxhcHAtcGhvbmUtbnVtYmVyXG4gICAgICAgICAgICAgICAgW2Zvcm1dPVwiZm9ybSgpXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwic2NoZW1lLmxhYmVsXCJcbiAgICAgICAgICAgICAgICBbY2xlYXJPbkRpc2FibGVdPVwic2NoZW1lLmNsZWFyT25EaXNhYmxlXCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJzY2hlbWUuZmllbGRcIlxuICAgICAgICAgICAgICAgIFtzaG93TGFiZWxdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIFtub0Zvcm1hdF09XCJzY2hlbWUubm9Gb3JtYXRcIlxuICAgICAgICAgICAgICAgIFtkZWJ1Z109XCJzY2hlbWUuZGVidWdcIlxuICAgICAgICAgICAgICAgIFtzaG93VmFsaWRhdGlvbl09XCJzY2hlbWUuc2hvd1ZhbGlkYXRpb25cIlxuICAgICAgICAgICAgICAgIFthdXRvUGlja1ZhbHVlRmllbGRdPVwic2NoZW1lLmF1dG9QaWNrVmFsdWVGaWVsZFwiXG4gICAgICAgICAgICAgICAgW3Nob3dSZXF1aXJlZFRhZ109XCJzY2hlbWUuc2hvd1JlcXVpcmVkVGFnXCJcbiAgICAgICAgICAgICAgICBbc2hvd1ZhbGlkYXRpb25JY29uXT1cInNjaGVtZS5zaG93VmFsaWRhdGlvbkljb25cIlxuICAgICAgICAgICAgICAgIFtjb3VudHJ5Q29kZTNdPVwic2NoZW1lLmNvdW50cnlDb2RlM1wiXG4gICAgICAgICAgICAgICAgI2lucHV0VGFnIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoc2NoZW1lLnR5cGUgPT0gJ2F1dG9jb21wbGV0ZScpIHtcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICBsYWJlbFZhbHVlO1xuICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICBzY2hlbWUsXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU6XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtVmFsdWUoKVtzY2hlbWUuZmllbGQgfCB0b0FueV1cbiAgICAgICAgICAgICAgICAgICAgICAgIHwgbGlzdE9wdGlvbkZpbmRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IHNjaGVtZS5vcHRpb25zIHx8IG9wdGlvbnNNYXBbc2NoZW1lLmZpZWxkIHwgdG9BbnldXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogc2NoZW1lLnZhbHVlRmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBzY2hlbWUubGFiZWxGaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IHNjaGVtZS5sYWJlbFR5cGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBzY2hlbWUub3B0aW9uRm9ybWF0dGVyXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICBsYWJlbFZhbHVlO1xuICAgICAgICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IHsgc2NoZW1lLCB2YWx1ZTogZm9ybVZhbHVlKClbc2NoZW1lLmZpZWxkIHwgdG9BbnldIH0gfVxuICAgICAgICAgICAgICAgIFwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9mb3JtPlxuPC9sb2FkZXI+XG5cbjxuZy10ZW1wbGF0ZSAjbGFiZWxWYWx1ZSBsZXQtb2JqPlxuICA8ZGl2IGNsYXNzPVwiXCI+XG4gICAgPGRpdiBjbGFzcz1cInRleHQtcHJpbWFyeVwiPlxuICAgICAge3sgb2JqLnNjaGVtZS5sYWJlbCB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCIgXCI+XG4gICAgICB7eyBmb3JtYXRWYWx1ZSB8IGZ1bmN0aW9uQ2FsbGVyMjogb2JqLnNjaGVtZSA6IG9iai52YWx1ZSB8IHZhbHVlT3JYOiAnLScgfX1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -74,7 +74,9 @@ export class FormGeneratorComponent extends BaseFormGenerator {
74
74
  this.computedLoading = computed(() => (this.useLoader() ? this.loading() || this._loading() : false));
75
75
  this.submitBtnRef = viewChild('submitBtn');
76
76
  this.form = model();
77
- this.formValue = toSignal(toObservable(this.form).pipe(switchMap((form) => form.valueChanges.pipe(map(() => this.form()?.getRawValue() || {}))), startWith(this.form()?.getRawValue())), { initialValue: this.form()?.getRawValue() || {} });
77
+ this.formValue = toSignal(toObservable(this.form).pipe(filter(() => !!this.form()), switchMap(() => this.form()
78
+ .valueChanges.pipe(map(() => this.form()?.getRawValue() || {}))
79
+ .pipe(startWith(this.form()?.getRawValue() || {})))));
78
80
  this.optionsMap = signal({});
79
81
  // formVal = computed(() => this.form?.getRawValue());
80
82
  this.computedFormSchema = computed(() => {
@@ -245,4 +247,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
245
247
  type: Input,
246
248
  args: ['isShow']
247
249
  }] } });
248
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1nZW5lcmF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL2Zvcm0tZ2VuZXJhdG9yL2Zvcm0tZ2VuZXJhdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9mb3JtLWdlbmVyYXRvci9mb3JtLWdlbmVyYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUdULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUVOLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsV0FBVyxFQUNYLFNBQVMsRUFDVCxXQUFXLEVBQ1gsbUJBQW1CLEVBQ25CLFVBQVUsR0FDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxTQUFTLEVBQVcsTUFBTSxXQUFXLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQVEsU0FBUyxFQUFPLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RixPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQW1CLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1B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QW1CO3dCQUNuQixlQUFlO3dCQUNmLFNBQVM7cUJBQ1Y7d0RBS1EsUUFBUTtzQkFBaEIsS0FBSztnQkFPSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBRUcsS0FBSztzQkFBZCxNQUFNO2dCQUNFLFVBQVU7c0JBQWxCLEtBQUs7Z0JBK0I4QixXQUFXO3NCQUE5QyxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRTtnQkFHWSxpQkFBaUI7c0JBQTFELEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUU7Z0JBYWYsT0FBTztzQkFBM0IsS0FBSzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBtb2RlbCxcbiAgc2lnbmFsLFxuICB2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBGb3JtQ29udHJvbCxcbiAgRm9ybUdyb3VwLFxuICBGb3Jtc01vZHVsZSxcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBpc0VxdWFsIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCBsYXN0LCBzd2l0Y2hNYXAsIHRhcCwgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGdW5jdGlvbkNhbGxlcjIsIFRvQW55UGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3V0aWxpdHkucGlwZSc7XG5pbXBvcnQgeyBCdG5Db21wb25lbnQgfSBmcm9tICcuLi9idG4vYnRuLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnB1dEJhc2ljQ29tcG9uZW50LCBPcHRpb25MYWJlbFR5cGUgfSBmcm9tICcuLi9pbnB1dC9pbnB1dC1iYXNpYy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXV0b2NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbk1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuLi9pbnB1dC92YWxpZGF0aW9uLW1lc3NhZ2UvdmFsaWRhdGlvbi1tZXNzYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQaG9uZU51bWJlckNvbXBvbmVudCB9IGZyb20gJy4uL3Bob25lLW51bWJlci9waG9uZS1udW1iZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgTmdTd2l0Y2hEZWZhdWx0LCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IExvYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL2xvYWRlci9sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IElucHV0U3ViVHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9pbmRleC5tb2RlbCc7XG5pbXBvcnQgeyBSaWNoVGV4dEVkaXRvclJGQ29tcG9uZW50IH0gZnJvbSAnLi4vcmljaC10ZXh0LWVkaXRvci1yZi9yaWNoLXRleHQtZWRpdG9yLXJmLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtR2VuZXJhdG9yU2VydmljZSB9IGZyb20gJy4vZm9ybS1nZW5lcmF0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBCYXNlRm9ybUdlbmVyYXRvciwgSUJhc2VGb3JtU2NoZW1hIH0gZnJvbSAnLi9mb3JtLWdlbmVyYXRvci5iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuLyoqXG4gKiBGb3JtIHNob3VsZCBiZSBzZXQgYmVmb3JlIHRoZSB0aGUgZm9ybVNjaGVtYVxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmb3JtLWdlbmVyYXRvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWdlbmVyYXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tZ2VuZXJhdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBMb2FkZXJDb21wb25lbnQsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFBob25lTnVtYmVyQ29tcG9uZW50LFxuICAgIFZhbGlkYXRpb25NZXNzYWdlQ29tcG9uZW50LFxuICAgIEF1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgICBOZ1N3aXRjaERlZmF1bHQsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBJbnB1dEJhc2ljQ29tcG9uZW50LFxuICAgIFJpY2hUZXh0RWRpdG9yUkZDb21wb25lbnQsXG4gICAgQnRuQ29tcG9uZW50LFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRnVuY3Rpb25DYWxsZXIyLFxuICAgIFRvQW55UGlwZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUdlbmVyYXRvckNvbXBvbmVudDxcbiAgVEZvcm1Hcm91cCBleHRlbmRzIHsgW0sgaW4ga2V5b2YgVEZvcm1Hcm91cF06IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT4gfSxcbj4gZXh0ZW5kcyBCYXNlRm9ybUdlbmVyYXRvcjxURm9ybUdyb3VwLCBJRm9ybVNjaGVtYTxURm9ybUdyb3VwPj4ge1xuICBASW5wdXQoKSBrZXlGaWVsZDogJ2ZpZWxkJyB8ICdsYWJlbCcgPSAnZmllbGQnO1xuICBwcmVzZXRWYWx1ZUZvclNpbmdsZU9wdGlvbiA9IGlucHV0KGZhbHNlKTtcbiAgaXNDcmVhdGUgPSBpbnB1dDxib29sZWFuPigpO1xuICBzdWJtaXRPbkVudGVyS2V5ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICBmb3JtVGFnUmVmID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTEZvcm1FbGVtZW50Pj4oJ2Zvcm1UYWcnKTtcblxuICAvKipFbWl0dGVkIGp1c3QgYmVmb3JlIGNhbGxpbmcgdGhlIHNhdmUgZnVuY3Rpb24gKi9cbiAgQE91dHB1dCgpIG9uU3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBtY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIC8qKkVtaXR0ZWQgYWZ0ZXIgcmVjZWl2aW5nIGZlZWRiYWNrIGZyb20gdGhlIHN1Ym1pdCBmdW5jdGlvbiAqL1xuICBAT3V0cHV0KCkgc2F2ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQElucHV0KCkgc3VibWl0RnVuYzogKHZhbHVlOiBhbnkpID0+IFByb21pc2U8YW55PjtcbiAgc3VibWl0QnRuVGV4dCA9IGlucHV0KCdTdWJtaXQnKTtcbiAgc3VibWl0QnRuVGVtcGxhdGUgPSBpbnB1dDxUZW1wbGF0ZVJlZjxhbnk+PigpO1xuICBzdWJtaXRTdWNjZXNzVGV4dCA9IGlucHV0KCdTYXZlZCBzdWNjZXNzZnVsbHknKTtcbiAgc2hvd1N1Ym1pdEJ0biA9IGlucHV0KHRydWUpO1xuXG4gIGdyaWRTdHlsZSA9IGlucHV0PG51bWJlciB8ICdhdXRvJz4oKTtcbiAgZ3JpZE1EU3R5bGUgPSBpbnB1dDxudW1iZXIgfCAnYXV0byc+KCk7XG4gIGdyaWRMR1N0eWxlID0gaW5wdXQ8bnVtYmVyIHwgJ2F1dG8nPigpO1xuICBncmlkWFhMU3R5bGUgPSBpbnB1dDxudW1iZXIgfCAnYXV0byc+KCk7XG5cbiAgZm9ybUdyaWRDbGFzcyA9IGlucHV0PHN0cmluZz4oKTtcbiAgdXNlTG9hZGVyID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgbG9hZGluZyA9IGlucHV0PGJvb2xlYW4+KCk7XG5cbiAgX2xvYWRpbmcgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGNvbXB1dGVkTG9hZGluZyA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLnVzZUxvYWRlcigpID8gdGhpcy5sb2FkaW5nKCkgfHwgdGhpcy5fbG9hZGluZygpIDogZmFsc2UpKTtcblxuICBzdWJtaXRCdG5SZWYgPSB2aWV3Q2hpbGQ8QnRuQ29tcG9uZW50Pignc3VibWl0QnRuJyk7XG4gIGZvcm0gPSBtb2RlbDxGb3JtR3JvdXA8VEZvcm1Hcm91cD4+KCk7XG5cbiAgZm9ybVZhbHVlID0gdG9TaWduYWwoXG4gICAgdG9PYnNlcnZhYmxlKHRoaXMuZm9ybSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoZm9ybSkgPT4gZm9ybS52YWx1ZUNoYW5nZXMucGlwZShtYXAoKCkgPT4gdGhpcy5mb3JtKCk/LmdldFJhd1ZhbHVlKCkgfHwge30pKSksXG4gICAgICBzdGFydFdpdGgodGhpcy5mb3JtKCk/LmdldFJhd1ZhbHVlKCkpLFxuICAgICksXG4gICAgeyBpbml0aWFsVmFsdWU6IHRoaXMuZm9ybSgpPy5nZXRSYXdWYWx1ZSgpIHx8IHt9IH0sXG4gICk7XG5cbiAgc3VibWlzc2lvblJlc3BvbnNlOiBhbnk7XG4gIEBJbnB1dCh7IGFsaWFzOiAnZm9ybVNjaGVtYScgfSkgc2V0IF9mb3JtU2NoZW1hKHY6IElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+W10pIHtcbiAgICB0aGlzLmluaXQoY2xvbmVEZWVwKHYuZmlsdGVyKCh4KSA9PiB4KSkpO1xuICB9XG4gIEBJbnB1dCh7IGFsaWFzOiAnZm9ybVNjaGVtYU5vRm9ybScgfSkgc2V0IF9mb3JtU2NoZW1hTm9Gb3JtKHY6IElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+W10pIHtcbiAgICBpZiAodikge1xuICAgICAgY29uc3QgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHYpIHtcbiAgICAgICAgZm9ybS5hZGRDb250cm9sKFxuICAgICAgICAgIGl0ZW0uZmllbGQ/LnRvU3RyaW5nKCksXG4gICAgICAgICAgbmV3IEZvcm1Db250cm9sKGl0ZW0udmFsdWUsIFtdLmNvbmNhdChpdGVtLmlzUmVxdWlyZWQgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gOiBbXSkpLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgdGhpcy5mb3JtLnNldChmb3JtIGFzIGFueSBhcyBGb3JtR3JvdXA8VEZvcm1Hcm91cD4pO1xuICAgICAgdGhpcy5fZm9ybVNjaGVtYSA9IHY7XG4gICAgfVxuICB9XG4gIEBJbnB1dCgnaXNTaG93Jykgc2V0IF9pc1Nob3codjogYm9vbGVhbikge1xuICAgIGlmICh2KSB0aGlzLmZvcm0oKT8uZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgZWxzZSB0aGlzLmZvcm0oKT8uZW5hYmxlKCk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh2KSB0aGlzLmZvcm0oKT8uZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICBlbHNlIHRoaXMuZm9ybSgpPy5lbmFibGUoKTtcbiAgICB9LCA1MDApO1xuICB9XG4gIG9wdGlvbnNNYXAgPSBzaWduYWw8SUZvcm1PcHRpb25zPih7fSk7XG4gIC8vIGZvcm1WYWwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmZvcm0/LmdldFJhd1ZhbHVlKCkpO1xuXG4gIGNvbXB1dGVkRm9ybVNjaGVtYSA9IGNvbXB1dGVkPElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+W10+KCgpID0+IHtcbiAgICBjb25zdCBmb3JtU2NoZW1hID0gdGhpcy5mb3JtU2NoZW1hKCkgfHwgW10sXG4gICAgICBwcmVzZXRWYWx1ZUZvclNpbmdsZU9wdGlvbiA9IHRoaXMucHJlc2V0VmFsdWVGb3JTaW5nbGVPcHRpb24oKSxcbiAgICAgIGlzQ3JlYXRlID0gdGhpcy5pc0NyZWF0ZSgpLFxuICAgICAgcmV0OiBJRm9ybVNjaGVtYTxURm9ybUdyb3VwPltdID0gW107XG4gICAgZm9ybVNjaGVtYS5mb3JFYWNoKChzY2hlbWUpID0+IHtcbiAgICAgIGlmICghc2NoZW1lLmhpZGRlbikge1xuICAgICAgICBpZiAoaXNDcmVhdGUpXG4gICAgICAgICAgc2NoZW1lLnByZXNldFZhbHVlID1cbiAgICAgICAgICAgIHNjaGVtZS5wcmVzZXRWYWx1ZSA9PSBudWxsID8gcHJlc2V0VmFsdWVGb3JTaW5nbGVPcHRpb24gOiBzY2hlbWUucHJlc2V0VmFsdWU7XG4gICAgICAgIHJldC5wdXNoKHNjaGVtZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKHJldC5zb21lKCh4KSA9PiAheC5maWVsZCkpIGRlYnVnZ2VyO1xuICAgIHJldHVybiByZXQ7XG4gIH0pO1xuICAvLyBtaXNjSW5kZXg6IFRNaXNjSW5kZXg7XG4gIHB1YmxpYyBmb3JtU2VydmljZSA9IGluamVjdChGb3JtR2VuZXJhdG9yU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIGxldCBsaXN0ZW5Ub0tleTogU3Vic2NyaXB0aW9uO1xuICAgIHRoaXMuZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgbGlzdGVuVG9LZXk/LnVuc3Vic2NyaWJlKCk7XG4gICAgfSk7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGZ0ciA9IHRoaXMuZm9ybVRhZ1JlZigpLFxuICAgICAgICBzdWJtaXRPbkVudGVyS2V5ID0gdGhpcy5zdWJtaXRPbkVudGVyS2V5KCk7XG4gICAgICAvLyBkZWJ1Z2dlcjtcblxuICAgICAgbGlzdGVuVG9LZXk/LnVuc3Vic2NyaWJlKCk7XG4gICAgICBpZiAoZnRyPy5uYXRpdmVFbGVtZW50ICYmIHN1Ym1pdE9uRW50ZXJLZXkpXG4gICAgICAgIGxpc3RlblRvS2V5ID0gZnJvbUV2ZW50KGZ0ci5uYXRpdmVFbGVtZW50LCAna2V5ZG93bicpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUoMTAwKSxcbiAgICAgICAgICAgIGZpbHRlcihcbiAgICAgICAgICAgICAgKHI6IEtleWJvYXJkRXZlbnQpID0+IChyLmNvZGUgPT09ICdFbnRlcicgfHwgci5rZXlDb2RlID09PSAxMykgJiYgdGhpcy5mb3JtKCkudmFsaWQsXG4gICAgICAgICAgICApLFxuICAgICAgICAgIClcbiAgICAgICAgICAuc3Vic2NyaWJlKChyOiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN1Ym1pdCh0aGlzLnN1Ym1pdEJ0blJlZigpKTtcbiAgICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGluaXQoc2NoZW1hOiBJRm9ybVNjaGVtYTxURm9ybUdyb3VwPltdKSB7XG4gICAgLy8gZGVidWdnZXI7XG4gICAgdGhpcy5vbkRlc3Ryb3koKTtcbiAgICB0aGlzLl9zZXRGb3JtU2NoZW1hcyhzY2hlbWEgfHwgW10pO1xuICAgIGlmIChzY2hlbWEpIGZvciAoY29uc3Qgc2NoZW1lIG9mIHNjaGVtYSkgdGhpcy5oYW5kbGVGb3JtU2NoZW1lKHNjaGVtZSk7XG4gICAgaWYgKHNjaGVtYSlcbiAgICAgIGZvciAoY29uc3Qgc2NoZW1lIG9mIHNjaGVtYSlcbiAgICAgICAgaWYgKHNjaGVtZS50cmlnZ2VyT25DaGFuZ2VPbkluaXQpIHtcbiAgICAgICAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLmZvcm0oKT8uZ2V0UmF3VmFsdWUoKTtcbiAgICAgICAgICBzY2hlbWUub25DaGFuZ2VGdW5jKGZvcm1WYWx1ZSwgZm9ybVZhbHVlW3NjaGVtZS5maWVsZD8udG9TdHJpbmcoKV0sIHRoaXMpO1xuICAgICAgICB9XG4gIH1cblxuICBoYW5kbGVGb3JtU2NoZW1lKHNjaGVtZTogSUZvcm1TY2hlbWE8VEZvcm1Hcm91cD4pIHtcbiAgICBzY2hlbWUuaWQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdlbmVyYXRlVVVJRCgpO1xuICAgIGlmIChzY2hlbWUuc3RhY2tlZCA9PSBudWxsKSBzY2hlbWUuc3RhY2tlZCA9IHRydWU7XG4gICAgaWYgKHNjaGVtZS5zaG93VmFsaWRhdGlvbk1zZyA9PSBudWxsKSBzY2hlbWUuc2hvd1ZhbGlkYXRpb25Nc2cgPSB0cnVlO1xuICAgIGlmICh0aGlzLmZvcm1TZXJ2aWNlLmNvbmZpZy5zaG93VmFsaWRhdGlvbk1lc3NhZ2VzQnlEZWZhdWx0KVxuICAgICAgaWYgKHNjaGVtZS5hdXRvUGlja1ZhbHVlRmllbGQgPT0gbnVsbCAmJiAoIXNjaGVtZS52YWx1ZUZpZWxkIHx8ICFzY2hlbWUubGFiZWxGaWVsZCkpXG4gICAgICAgIHNjaGVtZS5hdXRvUGlja1ZhbHVlRmllbGQgPSB0cnVlO1xuICAgIC8vIGlmICghdGhpcy5mb3JtLmNvbnRyb2xzW3NjaGVtZS5maWVsZCBhcyBhbnldKSBkZWJ1Z2dlcjtcbiAgICB0aGlzLnVwZGF0ZUZvcm1TY2hlbWEoc2NoZW1lLmZpZWxkLCBzY2hlbWUpO1xuXG4gICAgaWYgKHNjaGVtZS5vcHRpb25zSW5pdEZ1bmMpIHRoaXMuaGFuZGxlT3B0aW9uc0ZldGNoZWQoc2NoZW1lLCBzY2hlbWUub3B0aW9uc0luaXRGdW5jKTtcbiAgICBpZiAoc2NoZW1lLm9wdGlvbnNJbml0RnVuYzIpIHRoaXMuaGFuZGxlT3B0aW9uc0ZldGNoZWQoc2NoZW1lLCBzY2hlbWUub3B0aW9uc0luaXRGdW5jMigpKTtcbiAgICBpZiAoc2NoZW1lLm9uQ2hhbmdlRnVuYykge1xuICAgICAgaWYgKHNjaGVtZS5kZWJ1ZykgZGVidWdnZXI7XG4gICAgICB0aGlzLnN1YnNbc2NoZW1lLmZpZWxkPy50b1N0cmluZygpXSA9IHRoaXMuZm9ybSgpXG4gICAgICAgID8uY29udHJvbHNbc2NoZW1lLmZpZWxkPy50b1N0cmluZygpXT8udmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDApKVxuICAgICAgICAuc3Vic2NyaWJlKChyKSA9PiB7XG4gICAgICAgICAgc2NoZW1lLm9uQ2hhbmdlRnVuYyh0aGlzLmZvcm1WYWx1ZSgpLCByLCB0aGlzKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZU9wdGlvbnNGZXRjaGVkKHNjaGVtZTogSUZvcm1TY2hlbWE8VEZvcm1Hcm91cD4sIG9wdGlvbnMkOiBPYnNlcnZhYmxlPGFueVtdPikge1xuICAgIG9wdGlvbnMkLnN1YnNjcmliZSgocikgPT4ge1xuICAgICAgLy8gc2NoZW1lLm9wdGlvbnMgPSByO1xuICAgICAgdGhpcy51cGRhdGVGb3JtU2NoZW1hKHNjaGVtZS5maWVsZCwgeyBvcHRpb25zOiByIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgZGV0YWNoRm9ybVNjaGVtZShmaWVsZE5hbWU/OiBrZXlvZiBURm9ybUdyb3VwKSB7XG4gICAgdGhpcy5zdWJzW2ZpZWxkTmFtZSBhcyBzdHJpbmddPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1jaGFuZ2VFbWl0dGVyKCkge1xuICAgIHRoaXMubWNoYW5nZS5lbWl0KHRoaXMuZm9ybVZhbHVlKCkpO1xuICB9XG5cbiAgZ2V0Rm9ybVNjaGVtZSA9IChmaWVsZE5hbWU6IGtleW9mIFRGb3JtR3JvdXApID0+IHtcbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICByZXR1cm4gdGhpcy5mb3JtU2NoZW1hTWFwKClbZmllbGROYW1lIGFzIHN0cmluZ107XG4gIH07XG5cbiAgYWRkVG9Gb3JtU2NoZW1hKGZvcm1TY2hlbWU6IElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+KSB7XG4gICAgdGhpcy5yZW1vdmVGcm9tRm9ybVNjaGVtYShmb3JtU2NoZW1lLmZpZWxkKTtcbiAgICB0aGlzLmhhbmRsZUZvcm1TY2hlbWUoZm9ybVNjaGVtZSk7XG4gIH1cblxuICB1cGRhdGVGb3JtU2NoZW1hKGZpZWxkTmFtZToga2V5b2YgVEZvcm1Hcm91cCwgc2NoZW1lOiBQYXJ0aWFsPElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+Pikge1xuICAgIHJldHVybiBzdXBlci5fdXBkYXRlRm9ybVNjaGVtYShmaWVsZE5hbWUgYXMgc3RyaW5nLCBzY2hlbWUpO1xuICB9XG4gIHVwZGF0ZUFsbEZvcm1TY2hlbWEobWFwOiAoZm9ybUZpZWxkOiBJRm9ybVNjaGVtYTxURm9ybUdyb3VwPikgPT4gSUZvcm1TY2hlbWE8VEZvcm1Hcm91cD4pIHtcbiAgICByZXR1cm4gc3VwZXIuX3VwZGF0ZUFsbEZvcm1TY2hlbWEobWFwKTtcbiAgfVxuXG4gIHJlbW92ZUZyb21Gb3JtU2NoZW1hKGZpZWxkTmFtZToga2V5b2YgVEZvcm1Hcm91cCkge1xuICAgIHRoaXMuZGV0YWNoRm9ybVNjaGVtZShmaWVsZE5hbWUpO1xuICAgIGNvbnN0IG9uUmVtb3ZlID0gdGhpcy5mb3JtU2NoZW1hTWFwKClbZmllbGROYW1lIGFzIHN0cmluZ10/Lm9uUmVtb3ZlRnVuYztcbiAgICBpZiAob25SZW1vdmUpIG9uUmVtb3ZlKHRoaXMuZm9ybVZhbHVlKCkgYXMgYW55LCB0aGlzLmZvcm1WYWx1ZSgpW2ZpZWxkTmFtZSBhcyBhbnldLCB0aGlzKTtcbiAgICB0aGlzLl9yZW1vdmVGb3JtU2NoZW1hKGZpZWxkTmFtZSBhcyBzdHJpbmcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldE9wdGlvbkxhYmVsKCRldmVudDogYW55LCBzY2hlbWU6IElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+KSB7XG4gICAgc2NoZW1lLnNlbGVjdGVkT3B0aW9uTGFiZWwgPSAkZXZlbnQ7XG4gIH1cblxuICBhc3luYyBzdWJtaXQoYnRuPzogQnRuQ29tcG9uZW50KSB7XG4gICAgaWYgKHRoaXMuc3VibWl0RnVuYykge1xuICAgICAgYnRuPy5zZXRMb2FkZXIodHJ1ZSk7XG4gICAgICB0aGlzLl9sb2FkaW5nLnNldCh0cnVlKTtcbiAgICAgIGNvbnN0IGZvcm1WYWwgPSB0aGlzLmZvcm1WYWx1ZSgpO1xuICAgICAgdGhpcy5vblN1Ym1pdC5lbWl0KGZvcm1WYWwpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgdGhpcy5zdWJtaXNzaW9uUmVzcG9uc2UgPSBhd2FpdCB0aGlzLnN1Ym1pdEZ1bmMoZm9ybVZhbCk7XG4gICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2UuaW5mbyh0aGlzLnN1Ym1pdFN1Y2Nlc3NUZXh0KCksIDEpO1xuICAgICAgICB0aGlzLnNhdmVkLmVtaXQodGhpcy5zdWJtaXNzaW9uUmVzcG9uc2UpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5pbmZvKGVycm9yLCAwKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgIGJ0bj8uc2V0TG9hZGVyKGZhbHNlKTtcbiAgICB9IGVsc2UgdGhpcy5vblN1Ym1pdC5lbWl0KHRoaXMuZm9ybVZhbHVlKCkpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1TY2hlbWE8XG4gIFRGb3JtR3JvdXAgZXh0ZW5kcyB7XG4gICAgW0sgaW4ga2V5b2YgVEZvcm1Hcm91cF06IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT47XG4gIH0gPSBhbnksXG4+IGV4dGVuZHMgSUJhc2VGb3JtU2NoZW1hPFRGb3JtR3JvdXAsIEZvcm1HZW5lcmF0b3JDb21wb25lbnQ8VEZvcm1Hcm91cD4+IHtcbiAgY2hpbGRyZW4/OiBJRm9ybVNjaGVtYTxURm9ybUdyb3VwPltdO1xuICBsYWJlbFR5cGU/OiBPcHRpb25MYWJlbFR5cGU7XG4gIGZpZWxkOiBrZXlvZiBURm9ybUdyb3VwO1xuICBzdWJUeXBlPzogSW5wdXRTdWJUeXBlO1xuICBwcmVzZXRWYWx1ZT86IGJvb2xlYW47XG59XG5leHBvcnQgaW50ZXJmYWNlIElGb3JtU2NoZW1hMjxUU3RydWN0ID0gYW55PlxuICBleHRlbmRzIElGb3JtU2NoZW1hPHtcbiAgICBbSyBpbiBrZXlvZiBUU3RydWN0XT86IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT47XG4gIH0+IHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1PcHRpb25zIHtcbiAgW2ZpZWxkOiBzdHJpbmddOiBhbnk7XG59XG4iLCI8IS0tIHt7Zm9ybVZhbHVlKCl8anNvbn19XG57e2Zvcm1WYWxpZCgpfGpzb259fSAtLT5cbjxsb2FkZXIgW2xvYWRpbmddPVwiY29tcHV0ZWRMb2FkaW5nKClcIj5cbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtKClcIiAjZm9ybVRhZyA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJyb3cgcm93LWNvbHMte3sgZ3JpZFN0eWxlKCkgfX0gcm93LWNvbHMtbWQte3sgZ3JpZE1EU3R5bGUoKSB9fSByb3ctY29scy1sZy17eyBncmlkTEdTdHlsZSgpIH19IHJvdy1jb2xzLXh4bC17e1xuICAgICAgICBncmlkWFhMU3R5bGUoKVxuICAgICAgfX0gYWxpZ24taXRlbXMtY2VudGVyIHt7IGZvcm1HcmlkQ2xhc3MoKSB9fVwiPlxuICAgICAgQGZvciAoc2NoZW1lIG9mIGNvbXB1dGVkRm9ybVNjaGVtYSgpOyB0cmFjayBzY2hlbWUuaWQpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbCB7eyBzY2hlbWUuY2xzIH19IFwiPlxuICAgICAgICAgIEBzd2l0Y2ggKHRydWUpIHtcbiAgICAgICAgICAgIEBjYXNlIChzY2hlbWUudHlwZSA9PSAndGVsJykge1xuICAgICAgICAgICAgICA8YXBwLXBob25lLW51bWJlclxuICAgICAgICAgICAgICAgIFtmb3JtXT1cInNjaGVtZS5mb3JtIHx8IGZvcm0oKVwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cInNjaGVtZS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgW2NsZWFyT25EaXNhYmxlXT1cInNjaGVtZS5jbGVhck9uRGlzYWJsZVwiXG4gICAgICAgICAgICAgICAgW3N0YWNrZWRdPVwic2NoZW1lLnN0YWNrZWRcIlxuICAgICAgICAgICAgICAgIFtuYW1lXT1cInNjaGVtZS5maWVsZFwiXG4gICAgICAgICAgICAgICAgW25vRm9ybWF0XT1cInNjaGVtZS5ub0Zvcm1hdFwiXG4gICAgICAgICAgICAgICAgW3ZlcmJvc2VdPVwic2NoZW1lLnZlcmJvc2VcIlxuICAgICAgICAgICAgICAgIFtkZWJ1Z109XCJzY2hlbWUuZGVidWdcIlxuICAgICAgICAgICAgICAgIChtY2hhbmdlKT1cIm1jaGFuZ2VFbWl0dGVyKClcIlxuICAgICAgICAgICAgICAgIFtzaG93VmFsaWRhdGlvbl09XCJzY2hlbWUuc2hvd1ZhbGlkYXRpb25cIlxuICAgICAgICAgICAgICAgIFthdXRvUGlja1ZhbHVlRmllbGRdPVwic2NoZW1lLmF1dG9QaWNrVmFsdWVGaWVsZFwiXG4gICAgICAgICAgICAgICAgW3Nob3dSZXF1aXJlZFRhZ109XCJzY2hlbWUuc2hvd1JlcXVpcmVkVGFnXCJcbiAgICAgICAgICAgICAgICBbc2hvd1ZhbGlkYXRpb25Nc2ddPVwic2NoZW1lLnNob3dWYWxpZGF0aW9uTXNnXCJcbiAgICAgICAgICAgICAgICBbc2hvd1ZhbGlkYXRpb25JY29uXT1cInNjaGVtZS5zaG93VmFsaWRhdGlvbkljb25cIlxuICAgICAgICAgICAgICAgIFtjb3VudHJ5Q29kZTNdPVwic2NoZW1lLmNvdW50cnlDb2RlM1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNjaGVtZS5kaXNhYmxlZCB8fCAoc2NoZW1lLmRpc2FibGVkSWYgfCBmdW5jdGlvbkNhbGxlcjI6IGZvcm1WYWx1ZSgpIDogKHNjaGVtZS5maWVsZCB8IHRvQW55KSlcIiAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGNhc2UgKHNjaGVtZS50eXBlID09ICdhdXRvY29tcGxldGUnKSB7XG4gICAgICAgICAgICAgIDxhcHAtYXV0b2NvbXBsZXRlXG4gICAgICAgICAgICAgICAgW2Zvcm1dPVwic2NoZW1lLmZvcm0gfHwgZm9ybSgpXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwic2NoZW1lLmxhYmVsXCJcbiAgICAgICAgICAgICAgICBbY2xlYXJPbkRpc2FibGVdPVwic2NoZW1lLmNsZWFyT25EaXNhYmxlXCJcbiAgICAgICAgICAgICAgICBbc3RhY2tlZF09XCJzY2hlbWUuc3RhY2tlZFwiXG4gICAgICAgICAgICAgICAgW3ZlcmJvc2VdPVwic2NoZW1lLnZlcmJvc2VcIlxuICAgICAgICAgICAgICAgIFtwcmVzZXRWYWx1ZV09XCJzY2hlbWUucHJlc2V0VmFsdWVcIlxuICAgICAgICAgICAgICAgIFtsYWJlbEZpZWxkXT1cInNjaGVtZS5sYWJlbEZpZWxkXCJcbiAgICAgICAgICAgICAgICBbbm9Gb3JtYXRdPVwic2NoZW1lLm5vRm9ybWF0XCJcbiAgICAgICAgICAgICAgICBbbGFiZWxUeXBlXT1cInNjaGVtZS5sYWJlbFR5cGUgfCB0b0FueVwiXG4gICAgICAgICAgICAgICAgKG1jaGFuZ2UpPVwibWNoYW5nZUVtaXR0ZXIoKVwiXG4gICAgICAgICAgICAgICAgKG1TZWxlY3RlZE9wdGlvbkxhYmVsKT1cInNldE9wdGlvbkxhYmVsKCRldmVudCwgc2NoZW1lKVwiXG4gICAgICAgICAgICAgICAgW25hbWVdPVwic2NoZW1lLmZpZWxkXCJcbiAgICAgICAgICAgICAgICBbZGVidWddPVwic2NoZW1lLmRlYnVnXCJcbiAgICAgICAgICAgICAgICBbc2hvd1JlcXVpcmVkVGFnXT1cInNjaGVtZS5zaG93UmVxdWlyZWRUYWdcIlxuICAgICAgICAgICAgICAgIFtvcHRpb25Gb3JtYXR0ZXJdPVwic2NoZW1lLm9wdGlvbkZvcm1hdHRlclwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlRmllbGRdPVwic2NoZW1lLnZhbHVlRmllbGRcIlxuICAgICAgICAgICAgICAgIFtvcHRpb25zRnVuY109XCJzY2hlbWUub3B0aW9uc0Z1bmNcIlxuICAgICAgICAgICAgICAgIFtzaG93VmFsaWRhdGlvbk1zZ109XCJzY2hlbWUuc2hvd1ZhbGlkYXRpb25Nc2dcIlxuICAgICAgICAgICAgICAgIFthdXRvUGlja1ZhbHVlRmllbGRdPVwic2NoZW1lLmF1dG9QaWNrVmFsdWVGaWVsZFwiXG4gICAgICAgICAgICAgICAgW29wdGlvbnNdPVwic2NoZW1lLm9wdGlvbnMgfHwgb3B0aW9uc01hcCgpW3NjaGVtZS5maWVsZCB8IHRvQW55XVwiXG4gICAgICAgICAgICAgICAgW2hpbnRdPVwic2NoZW1lLmhpbnRcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzY2hlbWUuZGlzYWJsZWQgfHwgKHNjaGVtZS5kaXNhYmxlZElmIHwgZnVuY3Rpb25DYWxsZXIyOiBmb3JtVmFsdWUoKSA6IChzY2hlbWUuZmllbGQgfCB0b0FueSkpXCIgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBjYXNlIChzY2hlbWUudHlwZSA9PSAncmljaHRleHQnKSB7XG4gICAgICAgICAgICAgIDxyaWNoLXRleHQtZWRpdG9yLXJmXG4gICAgICAgICAgICAgICAgW2Zvcm1dPVwic2NoZW1lLmZvcm0gfHwgZm9ybSgpXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwic2NoZW1lLmxhYmVsIVwiXG4gICAgICAgICAgICAgICAgW2NsZWFyT25EaXNhYmxlXT1cInNjaGVtZS5jbGVhck9uRGlzYWJsZSFcIlxuICAgICAgICAgICAgICAgIFtzdGFja2VkXT1cInNjaGVtZS5zdGFja2VkXCJcbiAgICAgICAgICAgICAgICBbdmVyYm9zZV09XCJzY2hlbWUudmVyYm9zZVwiXG4gICAgICAgICAgICAgICAgW2xhYmVsRmllbGRdPVwic2NoZW1lLmxhYmVsRmllbGQhXCJcbiAgICAgICAgICAgICAgICBbbm9Gb3JtYXRdPVwic2NoZW1lLm5vRm9ybWF0IVwiXG4gICAgICAgICAgICAgICAgW2xhYmVsVHlwZV09XCJzY2hlbWUubGFiZWxUeXBlIHwgdG9BbnlcIlxuICAgICAgICAgICAgICAgIChtY2hhbmdlKT1cIm1jaGFuZ2VFbWl0dGVyKClcIlxuICAgICAgICAgICAgICAgIChtU2VsZWN0ZWRPcHRpb25MYWJlbCk9XCJzZXRPcHRpb25MYWJlbCgkZXZlbnQsIHNjaGVtZSlcIlxuICAgICAgICAgICAgICAgIFtuYW1lXT1cInNjaGVtZS5maWVsZFwiXG4gICAgICAgICAgICAgICAgW2RlYnVnXT1cInNjaGVtZS5kZWJ1ZyFcIlxuICAgICAgICAgICAgICAgIFtzaG93UmVxdWlyZWRUYWddPVwic2NoZW1lLnNob3dSZXF1aXJlZFRhZyFcIlxuICAgICAgICAgICAgICAgIFtvcHRpb25Gb3JtYXR0ZXJdPVwic2NoZW1lLm9wdGlvbkZvcm1hdHRlciFcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZUZpZWxkXT1cInNjaGVtZS52YWx1ZUZpZWxkIVwiXG4gICAgICAgICAgICAgICAgW29wdGlvbnNGdW5jXT1cInNjaGVtZS5vcHRpb25zRnVuYyFcIlxuICAgICAgICAgICAgICAgIFtzaG93VmFsaWRhdGlvbk1zZ109XCJzY2hlbWUuc2hvd1ZhbGlkYXRpb25Nc2dcIlxuICAgICAgICAgICAgICAgIFthdXRvUGlja1ZhbHVlRmllbGRdPVwic2NoZW1lLmF1dG9QaWNrVmFsdWVGaWVsZCFcIlxuICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cInNjaGVtZS5vcHRpb25zIHx8IG9wdGlvbnNNYXAoKVtzY2hlbWUuZmllbGQgfCB0b0FueV1cIlxuICAgICAgICAgICAgICAgIFtoaW50XT1cInNjaGVtZS5oaW50IVwiXG4gICAgICAgICAgICAgICAgW21heExlbmd0aF09XCJzY2hlbWUubWF4TGVuZ3RoXCJcbiAgICAgICAgICAgICAgICBbbWluTGVuZ3RoXT1cInNjaGVtZS5taW5MZW5ndGhcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzY2hlbWUuZGlzYWJsZWQgfHwgKHNjaGVtZS5kaXNhYmxlZElmISB8IGZ1bmN0aW9uQ2FsbGVyMjogZm9ybVZhbHVlKCkgOiAoc2NoZW1lLmZpZWxkIHwgdG9BbnkpKVwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZGVmYXVsdCB7XG4gICAgICAgICAgICAgIDxhcHAtaW5wdXQtYmFzaWNcbiAgICAgICAgICAgICAgICBbbm9Gb3JtYXRdPVwic2NoZW1lLm5vRm9ybWF0XCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJzY2hlbWUuZmllbGRcIlxuICAgICAgICAgICAgICAgIFtmb3JtXT1cInNjaGVtZS5mb3JtIHx8IGZvcm0oKVwiXG4gICAgICAgICAgICAgICAgW2NsZWFyT25EaXNhYmxlXT1cInNjaGVtZS5jbGVhck9uRGlzYWJsZVwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwic2NoZW1lLnR5cGVcIlxuICAgICAgICAgICAgICAgIFt2ZXJib3NlXT1cInNjaGVtZS52ZXJib3NlXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVGaWVsZF09XCJzY2hlbWUudmFsdWVGaWVsZFwiXG4gICAgICAgICAgICAgICAgW2F1dG9QaWNrVmFsdWVGaWVsZF09XCJzY2hlbWUuYXV0b1BpY2tWYWx1ZUZpZWxkXCJcbiAgICAgICAgICAgICAgICBbcHJlc2V0VmFsdWVdPVwic2NoZW1lLnByZXNldFZhbHVlXCJcbiAgICAgICAgICAgICAgICBbc3RhY2tlZF09XCJzY2hlbWUuc3RhY2tlZFwiXG4gICAgICAgICAgICAgICAgW2xhYmVsVHlwZV09XCJzY2hlbWUubGFiZWxUeXBlIHwgdG9BbnlcIlxuICAgICAgICAgICAgICAgIFtjaGVja2VkU2lnbmFsXT1cInNjaGVtZS5jaGVja2VkXCJcbiAgICAgICAgICAgICAgICBbc2hvd1ZhbGlkYXRpb25dPVwiISFzY2hlbWUuYXN5bmNWYWxpZGF0b3JzXCJcbiAgICAgICAgICAgICAgICBbc2hvd1ZhbGlkYXRpb25JY29uXT1cIiEhc2NoZW1lLmFzeW5jVmFsaWRhdG9yc1wiXG4gICAgICAgICAgICAgICAgW2RlYnVnXT1cInNjaGVtZS5kZWJ1Z1wiXG4gICAgICAgICAgICAgICAgKG1jaGFuZ2UpPVwibWNoYW5nZUVtaXR0ZXIoKVwiXG4gICAgICAgICAgICAgICAgW3Nob3dSZXF1aXJlZFRhZ109XCJzY2hlbWUuc2hvd1JlcXVpcmVkVGFnXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxGaWVsZF09XCJzY2hlbWUubGFiZWxGaWVsZFwiXG4gICAgICAgICAgICAgICAgW29wdGlvbkZvcm1hdHRlcl09XCJzY2hlbWUub3B0aW9uRm9ybWF0dGVyXCJcbiAgICAgICAgICAgICAgICAobVNlbGVjdGVkT3B0aW9uTGFiZWwpPVwic2V0T3B0aW9uTGFiZWwoJGV2ZW50LCBzY2hlbWUpXCJcbiAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJzY2hlbWUub3B0aW9ucyB8fCBvcHRpb25zTWFwKClbc2NoZW1lLmZpZWxkIHwgdG9BbnldXCJcbiAgICAgICAgICAgICAgICBbZGVjaW1hbFBvaW50c109XCJzY2hlbWUuZGVjaW1hbFBvaW50c1wiXG4gICAgICAgICAgICAgICAgW2hpbnRdPVwic2NoZW1lLmhpbnRcIlxuICAgICAgICAgICAgICAgIFttYXhdPVwic2NoZW1lLm1heFwiXG4gICAgICAgICAgICAgICAgW21pbl09XCJzY2hlbWUubWluXCJcbiAgICAgICAgICAgICAgICBbbWF4TGVuZ3RoXT1cInNjaGVtZS5tYXhMZW5ndGhcIlxuICAgICAgICAgICAgICAgIFttaW5MZW5ndGhdPVwic2NoZW1lLm1pbkxlbmd0aFwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInNjaGVtZS5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cInNjaGVtZS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgW3Nob3dWYWxpZGF0aW9uTXNnXT1cInNjaGVtZS5zaG93VmFsaWRhdGlvbk1zZ1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNjaGVtZS5kaXNhYmxlZCB8fCAoc2NoZW1lLmRpc2FibGVkSWYgfCBmdW5jdGlvbkNhbGxlcjI6IGZvcm1WYWx1ZSgpIDogKHNjaGVtZS5maWVsZCB8IHRvQW55KSlcIiAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJvdyByb3ctY29scy1hdXRvIGp1c3RpZnktY29udGVudC1lbmRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJcIj5cbiAgICAgICAgQGlmIChzaG93U3VibWl0QnRuKCkpIHtcbiAgICAgICAgICA8YXBwLWJ0biBbdGV4dF09XCJzdWJtaXRCdG5UZXh0KClcIiAgZ3JvdXA9XCJzdWJtaXRcIiBbZm9ybV09XCJmb3JtKClcIiAobWNsaWNrKT1cInN1Ym1pdChzdWJtaXRCdG4pXCIgI3N1Ym1pdEJ0biAvPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoc3VibWl0QnRuVGVtcGxhdGUoKSkge1xuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdWJtaXRCdG5UZW1wbGF0ZSgpXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Zvcm0+XG48L2xvYWRlcj5cbiJdfQ==
250
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1nZW5lcmF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL2Zvcm0tZ2VuZXJhdG9yL2Zvcm0tZ2VuZXJhdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9mb3JtLWdlbmVyYXRvci9mb3JtLWdlbmVyYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUdULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUVOLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsV0FBVyxFQUNYLFNBQVMsRUFDVCxXQUFXLEVBQ1gsbUJBQW1CLEVBQ25CLFVBQVUsR0FDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxTQUFTLEVBQVcsTUFBTSxXQUFXLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQVEsU0FBUyxFQUFPLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RixPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQW1CLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1B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QXlCO3dCQUN6QixZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixTQUFTO3FCQUNWO3dEQUtRLFFBQVE7c0JBQWhCLEtBQUs7Z0JBT0ksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUVHLEtBQUs7c0JBQWQsTUFBTTtnQkFDRSxVQUFVO3NCQUFsQixLQUFLO2dCQW1DOEIsV0FBVztzQkFBOUMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUU7Z0JBR1ksaUJBQWlCO3NCQUExRCxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFO2dCQWFmLE9BQU87c0JBQTNCLEtBQUs7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRGVzdHJveVJlZixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgY29tcHV0ZWQsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgbW9kZWwsXG4gIHNpZ25hbCxcbiAgdmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgRm9ybUNvbnRyb2wsXG4gIEZvcm1Hcm91cCxcbiAgRm9ybXNNb2R1bGUsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNsb25lRGVlcCwgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbGFzdCwgc3dpdGNoTWFwLCB0YXAsIG1hcCwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRnVuY3Rpb25DYWxsZXIyLCBUb0FueVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy91dGlsaXR5LnBpcGUnO1xuaW1wb3J0IHsgQnRuQ29tcG9uZW50IH0gZnJvbSAnLi4vYnRuL2J0bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRCYXNpY0NvbXBvbmVudCwgT3B0aW9uTGFiZWxUeXBlIH0gZnJvbSAnLi4vaW5wdXQvaW5wdXQtYmFzaWMuY29tcG9uZW50JztcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4uL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50JztcbmltcG9ydCB7IFZhbGlkYXRpb25NZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vaW5wdXQvdmFsaWRhdGlvbi1tZXNzYWdlL3ZhbGlkYXRpb24tbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGhvbmVOdW1iZXJDb21wb25lbnQgfSBmcm9tICcuLi9waG9uZS1udW1iZXIvcGhvbmUtbnVtYmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIE5nU3dpdGNoRGVmYXVsdCwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLi9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnB1dFN1YlR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvaW5kZXgubW9kZWwnO1xuaW1wb3J0IHsgUmljaFRleHRFZGl0b3JSRkNvbXBvbmVudCB9IGZyb20gJy4uL3JpY2gtdGV4dC1lZGl0b3ItcmYvcmljaC10ZXh0LWVkaXRvci1yZi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybUdlbmVyYXRvclNlcnZpY2UgfSBmcm9tICcuL2Zvcm0tZ2VuZXJhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFzZUZvcm1HZW5lcmF0b3IsIElCYXNlRm9ybVNjaGVtYSB9IGZyb20gJy4vZm9ybS1nZW5lcmF0b3IuYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbi8qKlxuICogRm9ybSBzaG91bGQgYmUgc2V0IGJlZm9yZSB0aGUgdGhlIGZvcm1TY2hlbWFcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZm9ybS1nZW5lcmF0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1nZW5lcmF0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWdlbmVyYXRvci5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTG9hZGVyQ29tcG9uZW50LFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBQaG9uZU51bWJlckNvbXBvbmVudCxcbiAgICBWYWxpZGF0aW9uTWVzc2FnZUNvbXBvbmVudCxcbiAgICBBdXRvY29tcGxldGVDb21wb25lbnQsXG4gICAgTmdTd2l0Y2hEZWZhdWx0LFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgSW5wdXRCYXNpY0NvbXBvbmVudCxcbiAgICBSaWNoVGV4dEVkaXRvclJGQ29tcG9uZW50LFxuICAgIEJ0bkNvbXBvbmVudCxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEZ1bmN0aW9uQ2FsbGVyMixcbiAgICBUb0FueVBpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1HZW5lcmF0b3JDb21wb25lbnQ8XG4gIFRGb3JtR3JvdXAgZXh0ZW5kcyB7IFtLIGluIGtleW9mIFRGb3JtR3JvdXBdOiBBYnN0cmFjdENvbnRyb2w8YW55LCBhbnk+IH0sXG4+IGV4dGVuZHMgQmFzZUZvcm1HZW5lcmF0b3I8VEZvcm1Hcm91cCwgSUZvcm1TY2hlbWE8VEZvcm1Hcm91cD4+IHtcbiAgQElucHV0KCkga2V5RmllbGQ6ICdmaWVsZCcgfCAnbGFiZWwnID0gJ2ZpZWxkJztcbiAgcHJlc2V0VmFsdWVGb3JTaW5nbGVPcHRpb24gPSBpbnB1dChmYWxzZSk7XG4gIGlzQ3JlYXRlID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgc3VibWl0T25FbnRlcktleSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgZm9ybVRhZ1JlZiA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxGb3JtRWxlbWVudD4+KCdmb3JtVGFnJyk7XG5cbiAgLyoqRW1pdHRlZCBqdXN0IGJlZm9yZSBjYWxsaW5nIHRoZSBzYXZlIGZ1bmN0aW9uICovXG4gIEBPdXRwdXQoKSBvblN1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgbWNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAvKipFbWl0dGVkIGFmdGVyIHJlY2VpdmluZyBmZWVkYmFjayBmcm9tIHRoZSBzdWJtaXQgZnVuY3Rpb24gKi9cbiAgQE91dHB1dCgpIHNhdmVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIHN1Ym1pdEZ1bmM6ICh2YWx1ZTogYW55KSA9PiBQcm9taXNlPGFueT47XG4gIHN1Ym1pdEJ0blRleHQgPSBpbnB1dCgnU3VibWl0Jyk7XG4gIHN1Ym1pdEJ0blRlbXBsYXRlID0gaW5wdXQ8VGVtcGxhdGVSZWY8YW55Pj4oKTtcbiAgc3VibWl0U3VjY2Vzc1RleHQgPSBpbnB1dCgnU2F2ZWQgc3VjY2Vzc2Z1bGx5Jyk7XG4gIHNob3dTdWJtaXRCdG4gPSBpbnB1dCh0cnVlKTtcblxuICBncmlkU3R5bGUgPSBpbnB1dDxudW1iZXIgfCAnYXV0byc+KCk7XG4gIGdyaWRNRFN0eWxlID0gaW5wdXQ8bnVtYmVyIHwgJ2F1dG8nPigpO1xuICBncmlkTEdTdHlsZSA9IGlucHV0PG51bWJlciB8ICdhdXRvJz4oKTtcbiAgZ3JpZFhYTFN0eWxlID0gaW5wdXQ8bnVtYmVyIHwgJ2F1dG8nPigpO1xuXG4gIGZvcm1HcmlkQ2xhc3MgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHVzZUxvYWRlciA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIGxvYWRpbmcgPSBpbnB1dDxib29sZWFuPigpO1xuXG4gIF9sb2FkaW5nID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcblxuICBjb21wdXRlZExvYWRpbmcgPSBjb21wdXRlZCgoKSA9PiAodGhpcy51c2VMb2FkZXIoKSA/IHRoaXMubG9hZGluZygpIHx8IHRoaXMuX2xvYWRpbmcoKSA6IGZhbHNlKSk7XG5cbiAgc3VibWl0QnRuUmVmID0gdmlld0NoaWxkPEJ0bkNvbXBvbmVudD4oJ3N1Ym1pdEJ0bicpO1xuICBmb3JtID0gbW9kZWw8Rm9ybUdyb3VwPFRGb3JtR3JvdXA+PigpO1xuXG4gIGZvcm1WYWx1ZSA9IHRvU2lnbmFsKFxuICAgIHRvT2JzZXJ2YWJsZSh0aGlzLmZvcm0pLnBpcGUoXG4gICAgICBmaWx0ZXIoKCkgPT4gISF0aGlzLmZvcm0oKSksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgdGhpcy5mb3JtKClcbiAgICAgICAgICAudmFsdWVDaGFuZ2VzLnBpcGUobWFwKCgpID0+IHRoaXMuZm9ybSgpPy5nZXRSYXdWYWx1ZSgpIHx8IHt9KSlcbiAgICAgICAgICAucGlwZShzdGFydFdpdGgodGhpcy5mb3JtKCk/LmdldFJhd1ZhbHVlKCkgfHwge30pKSxcbiAgICAgICksXG4gICAgKSxcbiAgICAvLyB7IGluaXRpYWxWYWx1ZTogdGhpcy5mb3JtKCk/LmdldFJhd1ZhbHVlKCkgfHwge30gfSxcbiAgKTtcblxuICBzdWJtaXNzaW9uUmVzcG9uc2U6IGFueTtcbiAgQElucHV0KHsgYWxpYXM6ICdmb3JtU2NoZW1hJyB9KSBzZXQgX2Zvcm1TY2hlbWEodjogSUZvcm1TY2hlbWE8VEZvcm1Hcm91cD5bXSkge1xuICAgIHRoaXMuaW5pdChjbG9uZURlZXAodi5maWx0ZXIoKHgpID0+IHgpKSk7XG4gIH1cbiAgQElucHV0KHsgYWxpYXM6ICdmb3JtU2NoZW1hTm9Gb3JtJyB9KSBzZXQgX2Zvcm1TY2hlbWFOb0Zvcm0odjogSUZvcm1TY2hlbWE8VEZvcm1Hcm91cD5bXSkge1xuICAgIGlmICh2KSB7XG4gICAgICBjb25zdCBmb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2Ygdikge1xuICAgICAgICBmb3JtLmFkZENvbnRyb2woXG4gICAgICAgICAgaXRlbS5maWVsZD8udG9TdHJpbmcoKSxcbiAgICAgICAgICBuZXcgRm9ybUNvbnRyb2woaXRlbS52YWx1ZSwgW10uY29uY2F0KGl0ZW0uaXNSZXF1aXJlZCA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSA6IFtdKSksXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICB0aGlzLmZvcm0uc2V0KGZvcm0gYXMgYW55IGFzIEZvcm1Hcm91cDxURm9ybUdyb3VwPik7XG4gICAgICB0aGlzLl9mb3JtU2NoZW1hID0gdjtcbiAgICB9XG4gIH1cbiAgQElucHV0KCdpc1Nob3cnKSBzZXQgX2lzU2hvdyh2OiBib29sZWFuKSB7XG4gICAgaWYgKHYpIHRoaXMuZm9ybSgpPy5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICBlbHNlIHRoaXMuZm9ybSgpPy5lbmFibGUoKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHYpIHRoaXMuZm9ybSgpPy5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgIGVsc2UgdGhpcy5mb3JtKCk/LmVuYWJsZSgpO1xuICAgIH0sIDUwMCk7XG4gIH1cbiAgb3B0aW9uc01hcCA9IHNpZ25hbDxJRm9ybU9wdGlvbnM+KHt9KTtcbiAgLy8gZm9ybVZhbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZm9ybT8uZ2V0UmF3VmFsdWUoKSk7XG5cbiAgY29tcHV0ZWRGb3JtU2NoZW1hID0gY29tcHV0ZWQ8SUZvcm1TY2hlbWE8VEZvcm1Hcm91cD5bXT4oKCkgPT4ge1xuICAgIGNvbnN0IGZvcm1TY2hlbWEgPSB0aGlzLmZvcm1TY2hlbWEoKSB8fCBbXSxcbiAgICAgIHByZXNldFZhbHVlRm9yU2luZ2xlT3B0aW9uID0gdGhpcy5wcmVzZXRWYWx1ZUZvclNpbmdsZU9wdGlvbigpLFxuICAgICAgaXNDcmVhdGUgPSB0aGlzLmlzQ3JlYXRlKCksXG4gICAgICByZXQ6IElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+W10gPSBbXTtcbiAgICBmb3JtU2NoZW1hLmZvckVhY2goKHNjaGVtZSkgPT4ge1xuICAgICAgaWYgKCFzY2hlbWUuaGlkZGVuKSB7XG4gICAgICAgIGlmIChpc0NyZWF0ZSlcbiAgICAgICAgICBzY2hlbWUucHJlc2V0VmFsdWUgPVxuICAgICAgICAgICAgc2NoZW1lLnByZXNldFZhbHVlID09IG51bGwgPyBwcmVzZXRWYWx1ZUZvclNpbmdsZU9wdGlvbiA6IHNjaGVtZS5wcmVzZXRWYWx1ZTtcbiAgICAgICAgcmV0LnB1c2goc2NoZW1lKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAocmV0LnNvbWUoKHgpID0+ICF4LmZpZWxkKSkgZGVidWdnZXI7XG4gICAgcmV0dXJuIHJldDtcbiAgfSk7XG4gIC8vIG1pc2NJbmRleDogVE1pc2NJbmRleDtcbiAgcHVibGljIGZvcm1TZXJ2aWNlID0gaW5qZWN0KEZvcm1HZW5lcmF0b3JTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgbGV0IGxpc3RlblRvS2V5OiBTdWJzY3JpcHRpb247XG4gICAgdGhpcy5kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgICBsaXN0ZW5Ub0tleT8udW5zdWJzY3JpYmUoKTtcbiAgICB9KTtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgZnRyID0gdGhpcy5mb3JtVGFnUmVmKCksXG4gICAgICAgIHN1Ym1pdE9uRW50ZXJLZXkgPSB0aGlzLnN1Ym1pdE9uRW50ZXJLZXkoKTtcbiAgICAgIC8vIGRlYnVnZ2VyO1xuXG4gICAgICBsaXN0ZW5Ub0tleT8udW5zdWJzY3JpYmUoKTtcbiAgICAgIGlmIChmdHI/Lm5hdGl2ZUVsZW1lbnQgJiYgc3VibWl0T25FbnRlcktleSlcbiAgICAgICAgbGlzdGVuVG9LZXkgPSBmcm9tRXZlbnQoZnRyLm5hdGl2ZUVsZW1lbnQsICdrZXlkb3duJylcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIGRlYm91bmNlVGltZSgxMDApLFxuICAgICAgICAgICAgZmlsdGVyKFxuICAgICAgICAgICAgICAocjogS2V5Ym9hcmRFdmVudCkgPT4gKHIuY29kZSA9PT0gJ0VudGVyJyB8fCByLmtleUNvZGUgPT09IDEzKSAmJiB0aGlzLmZvcm0oKS52YWxpZCxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKHI6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc3VibWl0KHRoaXMuc3VibWl0QnRuUmVmKCkpO1xuICAgICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgaW5pdChzY2hlbWE6IElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+W10pIHtcbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICB0aGlzLm9uRGVzdHJveSgpO1xuICAgIHRoaXMuX3NldEZvcm1TY2hlbWFzKHNjaGVtYSB8fCBbXSk7XG4gICAgaWYgKHNjaGVtYSkgZm9yIChjb25zdCBzY2hlbWUgb2Ygc2NoZW1hKSB0aGlzLmhhbmRsZUZvcm1TY2hlbWUoc2NoZW1lKTtcbiAgICBpZiAoc2NoZW1hKVxuICAgICAgZm9yIChjb25zdCBzY2hlbWUgb2Ygc2NoZW1hKVxuICAgICAgICBpZiAoc2NoZW1lLnRyaWdnZXJPbkNoYW5nZU9uSW5pdCkge1xuICAgICAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuZm9ybSgpPy5nZXRSYXdWYWx1ZSgpO1xuICAgICAgICAgIHNjaGVtZS5vbkNoYW5nZUZ1bmMoZm9ybVZhbHVlLCBmb3JtVmFsdWVbc2NoZW1lLmZpZWxkPy50b1N0cmluZygpXSwgdGhpcyk7XG4gICAgICAgIH1cbiAgfVxuXG4gIGhhbmRsZUZvcm1TY2hlbWUoc2NoZW1lOiBJRm9ybVNjaGVtYTxURm9ybUdyb3VwPikge1xuICAgIHNjaGVtZS5pZCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2VuZXJhdGVVVUlEKCk7XG4gICAgaWYgKHNjaGVtZS5zdGFja2VkID09IG51bGwpIHNjaGVtZS5zdGFja2VkID0gdHJ1ZTtcbiAgICBpZiAoc2NoZW1lLnNob3dWYWxpZGF0aW9uTXNnID09IG51bGwpIHNjaGVtZS5zaG93VmFsaWRhdGlvbk1zZyA9IHRydWU7XG4gICAgaWYgKHRoaXMuZm9ybVNlcnZpY2UuY29uZmlnLnNob3dWYWxpZGF0aW9uTWVzc2FnZXNCeURlZmF1bHQpXG4gICAgICBpZiAoc2NoZW1lLmF1dG9QaWNrVmFsdWVGaWVsZCA9PSBudWxsICYmICghc2NoZW1lLnZhbHVlRmllbGQgfHwgIXNjaGVtZS5sYWJlbEZpZWxkKSlcbiAgICAgICAgc2NoZW1lLmF1dG9QaWNrVmFsdWVGaWVsZCA9IHRydWU7XG4gICAgLy8gaWYgKCF0aGlzLmZvcm0uY29udHJvbHNbc2NoZW1lLmZpZWxkIGFzIGFueV0pIGRlYnVnZ2VyO1xuICAgIHRoaXMudXBkYXRlRm9ybVNjaGVtYShzY2hlbWUuZmllbGQsIHNjaGVtZSk7XG5cbiAgICBpZiAoc2NoZW1lLm9wdGlvbnNJbml0RnVuYykgdGhpcy5oYW5kbGVPcHRpb25zRmV0Y2hlZChzY2hlbWUsIHNjaGVtZS5vcHRpb25zSW5pdEZ1bmMpO1xuICAgIGlmIChzY2hlbWUub3B0aW9uc0luaXRGdW5jMikgdGhpcy5oYW5kbGVPcHRpb25zRmV0Y2hlZChzY2hlbWUsIHNjaGVtZS5vcHRpb25zSW5pdEZ1bmMyKCkpO1xuICAgIGlmIChzY2hlbWUub25DaGFuZ2VGdW5jKSB7XG4gICAgICBpZiAoc2NoZW1lLmRlYnVnKSBkZWJ1Z2dlcjtcbiAgICAgIHRoaXMuc3Vic1tzY2hlbWUuZmllbGQ/LnRvU3RyaW5nKCldID0gdGhpcy5mb3JtKClcbiAgICAgICAgPy5jb250cm9sc1tzY2hlbWUuZmllbGQ/LnRvU3RyaW5nKCldPy52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHIpID0+IHtcbiAgICAgICAgICBzY2hlbWUub25DaGFuZ2VGdW5jKHRoaXMuZm9ybVZhbHVlKCksIHIsIHRoaXMpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlT3B0aW9uc0ZldGNoZWQoc2NoZW1lOiBJRm9ybVNjaGVtYTxURm9ybUdyb3VwPiwgb3B0aW9ucyQ6IE9ic2VydmFibGU8YW55W10+KSB7XG4gICAgb3B0aW9ucyQuc3Vic2NyaWJlKChyKSA9PiB7XG4gICAgICAvLyBzY2hlbWUub3B0aW9ucyA9IHI7XG4gICAgICB0aGlzLnVwZGF0ZUZvcm1TY2hlbWEoc2NoZW1lLmZpZWxkLCB7IG9wdGlvbnM6IHIgfSk7XG4gICAgfSk7XG4gIH1cblxuICBkZXRhY2hGb3JtU2NoZW1lKGZpZWxkTmFtZT86IGtleW9mIFRGb3JtR3JvdXApIHtcbiAgICB0aGlzLnN1YnNbZmllbGROYW1lIGFzIHN0cmluZ10/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWNoYW5nZUVtaXR0ZXIoKSB7XG4gICAgdGhpcy5tY2hhbmdlLmVtaXQodGhpcy5mb3JtVmFsdWUoKSk7XG4gIH1cblxuICBnZXRGb3JtU2NoZW1lID0gKGZpZWxkTmFtZToga2V5b2YgVEZvcm1Hcm91cCkgPT4ge1xuICAgIC8vIGRlYnVnZ2VyO1xuICAgIHJldHVybiB0aGlzLmZvcm1TY2hlbWFNYXAoKVtmaWVsZE5hbWUgYXMgc3RyaW5nXTtcbiAgfTtcblxuICBhZGRUb0Zvcm1TY2hlbWEoZm9ybVNjaGVtZTogSUZvcm1TY2hlbWE8VEZvcm1Hcm91cD4pIHtcbiAgICB0aGlzLnJlbW92ZUZyb21Gb3JtU2NoZW1hKGZvcm1TY2hlbWUuZmllbGQpO1xuICAgIHRoaXMuaGFuZGxlRm9ybVNjaGVtZShmb3JtU2NoZW1lKTtcbiAgfVxuXG4gIHVwZGF0ZUZvcm1TY2hlbWEoZmllbGROYW1lOiBrZXlvZiBURm9ybUdyb3VwLCBzY2hlbWU6IFBhcnRpYWw8SUZvcm1TY2hlbWE8VEZvcm1Hcm91cD4+KSB7XG4gICAgcmV0dXJuIHN1cGVyLl91cGRhdGVGb3JtU2NoZW1hKGZpZWxkTmFtZSBhcyBzdHJpbmcsIHNjaGVtZSk7XG4gIH1cbiAgdXBkYXRlQWxsRm9ybVNjaGVtYShtYXA6IChmb3JtRmllbGQ6IElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+KSA9PiBJRm9ybVNjaGVtYTxURm9ybUdyb3VwPikge1xuICAgIHJldHVybiBzdXBlci5fdXBkYXRlQWxsRm9ybVNjaGVtYShtYXApO1xuICB9XG5cbiAgcmVtb3ZlRnJvbUZvcm1TY2hlbWEoZmllbGROYW1lOiBrZXlvZiBURm9ybUdyb3VwKSB7XG4gICAgdGhpcy5kZXRhY2hGb3JtU2NoZW1lKGZpZWxkTmFtZSk7XG4gICAgY29uc3Qgb25SZW1vdmUgPSB0aGlzLmZvcm1TY2hlbWFNYXAoKVtmaWVsZE5hbWUgYXMgc3RyaW5nXT8ub25SZW1vdmVGdW5jO1xuICAgIGlmIChvblJlbW92ZSkgb25SZW1vdmUodGhpcy5mb3JtVmFsdWUoKSBhcyBhbnksIHRoaXMuZm9ybVZhbHVlKClbZmllbGROYW1lIGFzIGFueV0sIHRoaXMpO1xuICAgIHRoaXMuX3JlbW92ZUZvcm1TY2hlbWEoZmllbGROYW1lIGFzIHN0cmluZyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0T3B0aW9uTGFiZWwoJGV2ZW50OiBhbnksIHNjaGVtZTogSUZvcm1TY2hlbWE8VEZvcm1Hcm91cD4pIHtcbiAgICBzY2hlbWUuc2VsZWN0ZWRPcHRpb25MYWJlbCA9ICRldmVudDtcbiAgfVxuXG4gIGFzeW5jIHN1Ym1pdChidG4/OiBCdG5Db21wb25lbnQpIHtcbiAgICBpZiAodGhpcy5zdWJtaXRGdW5jKSB7XG4gICAgICBidG4/LnNldExvYWRlcih0cnVlKTtcbiAgICAgIHRoaXMuX2xvYWRpbmcuc2V0KHRydWUpO1xuICAgICAgY29uc3QgZm9ybVZhbCA9IHRoaXMuZm9ybVZhbHVlKCk7XG4gICAgICB0aGlzLm9uU3VibWl0LmVtaXQoZm9ybVZhbCk7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLnN1Ym1pc3Npb25SZXNwb25zZSA9IGF3YWl0IHRoaXMuc3VibWl0RnVuYyhmb3JtVmFsKTtcbiAgICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5pbmZvKHRoaXMuc3VibWl0U3VjY2Vzc1RleHQoKSwgMSk7XG4gICAgICAgIHRoaXMuc2F2ZWQuZW1pdCh0aGlzLnN1Ym1pc3Npb25SZXNwb25zZSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLmluZm8oZXJyb3IsIDApO1xuICAgICAgfVxuICAgICAgdGhpcy5fbG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgYnRuPy5zZXRMb2FkZXIoZmFsc2UpO1xuICAgIH0gZWxzZSB0aGlzLm9uU3VibWl0LmVtaXQodGhpcy5mb3JtVmFsdWUoKSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRm9ybVNjaGVtYTxcbiAgVEZvcm1Hcm91cCBleHRlbmRzIHtcbiAgICBbSyBpbiBrZXlvZiBURm9ybUdyb3VwXTogQWJzdHJhY3RDb250cm9sPGFueSwgYW55PjtcbiAgfSA9IGFueSxcbj4gZXh0ZW5kcyBJQmFzZUZvcm1TY2hlbWE8VEZvcm1Hcm91cCwgRm9ybUdlbmVyYXRvckNvbXBvbmVudDxURm9ybUdyb3VwPj4ge1xuICBjaGlsZHJlbj86IElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+W107XG4gIGxhYmVsVHlwZT86IE9wdGlvbkxhYmVsVHlwZTtcbiAgZmllbGQ6IGtleW9mIFRGb3JtR3JvdXA7XG4gIHN1YlR5cGU/OiBJbnB1dFN1YlR5cGU7XG4gIHByZXNldFZhbHVlPzogYm9vbGVhbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1TY2hlbWEyPFRTdHJ1Y3QgPSBhbnk+XG4gIGV4dGVuZHMgSUZvcm1TY2hlbWE8e1xuICAgIFtLIGluIGtleW9mIFRTdHJ1Y3RdPzogQWJzdHJhY3RDb250cm9sPGFueSwgYW55PjtcbiAgfT4ge31cblxuZXhwb3J0IGludGVyZmFjZSBJRm9ybU9wdGlvbnMge1xuICBbZmllbGQ6IHN0cmluZ106IGFueTtcbn1cbiIsIjwhLS0ge3tmb3JtVmFsdWUoKXxqc29ufX1cbnt7Zm9ybVZhbGlkKCl8anNvbn19IC0tPlxuPGxvYWRlciBbbG9hZGluZ109XCJjb21wdXRlZExvYWRpbmcoKVwiPlxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm0oKVwiICNmb3JtVGFnID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInJvdyByb3ctY29scy17eyBncmlkU3R5bGUoKSB9fSByb3ctY29scy1tZC17eyBncmlkTURTdHlsZSgpIH19IHJvdy1jb2xzLWxnLXt7IGdyaWRMR1N0eWxlKCkgfX0gcm93LWNvbHMteHhsLXt7XG4gICAgICAgIGdyaWRYWExTdHlsZSgpXG4gICAgICB9fSBhbGlnbi1pdGVtcy1jZW50ZXIge3sgZm9ybUdyaWRDbGFzcygpIH19XCI+XG4gICAgICBAZm9yIChzY2hlbWUgb2YgY29tcHV0ZWRGb3JtU2NoZW1hKCk7IHRyYWNrIHNjaGVtZS5pZCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIHt7IHNjaGVtZS5jbHMgfX0gXCI+XG4gICAgICAgICAgQHN3aXRjaCAodHJ1ZSkge1xuICAgICAgICAgICAgQGNhc2UgKHNjaGVtZS50eXBlID09ICd0ZWwnKSB7XG4gICAgICAgICAgICAgIDxhcHAtcGhvbmUtbnVtYmVyXG4gICAgICAgICAgICAgICAgW2Zvcm1dPVwic2NoZW1lLmZvcm0gfHwgZm9ybSgpXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwic2NoZW1lLmxhYmVsXCJcbiAgICAgICAgICAgICAgICBbY2xlYXJPbkRpc2FibGVdPVwic2NoZW1lLmNsZWFyT25EaXNhYmxlXCJcbiAgICAgICAgICAgICAgICBbc3RhY2tlZF09XCJzY2hlbWUuc3RhY2tlZFwiXG4gICAgICAgICAgICAgICAgW25hbWVdPVwic2NoZW1lLmZpZWxkXCJcbiAgICAgICAgICAgICAgICBbbm9Gb3JtYXRdPVwic2NoZW1lLm5vRm9ybWF0XCJcbiAgICAgICAgICAgICAgICBbdmVyYm9zZV09XCJzY2hlbWUudmVyYm9zZVwiXG4gICAgICAgICAgICAgICAgW2RlYnVnXT1cInNjaGVtZS5kZWJ1Z1wiXG4gICAgICAgICAgICAgICAgKG1jaGFuZ2UpPVwibWNoYW5nZUVtaXR0ZXIoKVwiXG4gICAgICAgICAgICAgICAgW3Nob3dWYWxpZGF0aW9uXT1cInNjaGVtZS5zaG93VmFsaWRhdGlvblwiXG4gICAgICAgICAgICAgICAgW2F1dG9QaWNrVmFsdWVGaWVsZF09XCJzY2hlbWUuYXV0b1BpY2tWYWx1ZUZpZWxkXCJcbiAgICAgICAgICAgICAgICBbc2hvd1JlcXVpcmVkVGFnXT1cInNjaGVtZS5zaG93UmVxdWlyZWRUYWdcIlxuICAgICAgICAgICAgICAgIFtzaG93VmFsaWRhdGlvbk1zZ109XCJzY2hlbWUuc2hvd1ZhbGlkYXRpb25Nc2dcIlxuICAgICAgICAgICAgICAgIFtzaG93VmFsaWRhdGlvbkljb25dPVwic2NoZW1lLnNob3dWYWxpZGF0aW9uSWNvblwiXG4gICAgICAgICAgICAgICAgW2NvdW50cnlDb2RlM109XCJzY2hlbWUuY291bnRyeUNvZGUzXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic2NoZW1lLmRpc2FibGVkIHx8IChzY2hlbWUuZGlzYWJsZWRJZiB8IGZ1bmN0aW9uQ2FsbGVyMjogZm9ybVZhbHVlKCkgOiAoc2NoZW1lLmZpZWxkIHwgdG9BbnkpKVwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoc2NoZW1lLnR5cGUgPT0gJ2F1dG9jb21wbGV0ZScpIHtcbiAgICAgICAgICAgICAgPGFwcC1hdXRvY29tcGxldGVcbiAgICAgICAgICAgICAgICBbZm9ybV09XCJzY2hlbWUuZm9ybSB8fCBmb3JtKClcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJzY2hlbWUubGFiZWxcIlxuICAgICAgICAgICAgICAgIFtjbGVhck9uRGlzYWJsZV09XCJzY2hlbWUuY2xlYXJPbkRpc2FibGVcIlxuICAgICAgICAgICAgICAgIFtzdGFja2VkXT1cInNjaGVtZS5zdGFja2VkXCJcbiAgICAgICAgICAgICAgICBbdmVyYm9zZV09XCJzY2hlbWUudmVyYm9zZVwiXG4gICAgICAgICAgICAgICAgW3ByZXNldFZhbHVlXT1cInNjaGVtZS5wcmVzZXRWYWx1ZVwiXG4gICAgICAgICAgICAgICAgW2xhYmVsRmllbGRdPVwic2NoZW1lLmxhYmVsRmllbGRcIlxuICAgICAgICAgICAgICAgIFtub0Zvcm1hdF09XCJzY2hlbWUubm9Gb3JtYXRcIlxuICAgICAgICAgICAgICAgIFtsYWJlbFR5cGVdPVwic2NoZW1lLmxhYmVsVHlwZSB8IHRvQW55XCJcbiAgICAgICAgICAgICAgICAobWNoYW5nZSk9XCJtY2hhbmdlRW1pdHRlcigpXCJcbiAgICAgICAgICAgICAgICAobVNlbGVjdGVkT3B0aW9uTGFiZWwpPVwic2V0T3B0aW9uTGFiZWwoJGV2ZW50LCBzY2hlbWUpXCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJzY2hlbWUuZmllbGRcIlxuICAgICAgICAgICAgICAgIFtkZWJ1Z109XCJzY2hlbWUuZGVidWdcIlxuICAgICAgICAgICAgICAgIFtzaG93UmVxdWlyZWRUYWddPVwic2NoZW1lLnNob3dSZXF1aXJlZFRhZ1wiXG4gICAgICAgICAgICAgICAgW29wdGlvbkZvcm1hdHRlcl09XCJzY2hlbWUub3B0aW9uRm9ybWF0dGVyXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVGaWVsZF09XCJzY2hlbWUudmFsdWVGaWVsZFwiXG4gICAgICAgICAgICAgICAgW29wdGlvbnNGdW5jXT1cInNjaGVtZS5vcHRpb25zRnVuY1wiXG4gICAgICAgICAgICAgICAgW3Nob3dWYWxpZGF0aW9uTXNnXT1cInNjaGVtZS5zaG93VmFsaWRhdGlvbk1zZ1wiXG4gICAgICAgICAgICAgICAgW2F1dG9QaWNrVmFsdWVGaWVsZF09XCJzY2hlbWUuYXV0b1BpY2tWYWx1ZUZpZWxkXCJcbiAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJzY2hlbWUub3B0aW9ucyB8fCBvcHRpb25zTWFwKClbc2NoZW1lLmZpZWxkIHwgdG9BbnldXCJcbiAgICAgICAgICAgICAgICBbaGludF09XCJzY2hlbWUuaGludFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNjaGVtZS5kaXNhYmxlZCB8fCAoc2NoZW1lLmRpc2FibGVkSWYgfCBmdW5jdGlvbkNhbGxlcjI6IGZvcm1WYWx1ZSgpIDogKHNjaGVtZS5maWVsZCB8IHRvQW55KSlcIiAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGNhc2UgKHNjaGVtZS50eXBlID09ICdyaWNodGV4dCcpIHtcbiAgICAgICAgICAgICAgPHJpY2gtdGV4dC1lZGl0b3ItcmZcbiAgICAgICAgICAgICAgICBbZm9ybV09XCJzY2hlbWUuZm9ybSB8fCBmb3JtKClcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJzY2hlbWUubGFiZWwhXCJcbiAgICAgICAgICAgICAgICBbY2xlYXJPbkRpc2FibGVdPVwic2NoZW1lLmNsZWFyT25EaXNhYmxlIVwiXG4gICAgICAgICAgICAgICAgW3N0YWNrZWRdPVwic2NoZW1lLnN0YWNrZWRcIlxuICAgICAgICAgICAgICAgIFt2ZXJib3NlXT1cInNjaGVtZS52ZXJib3NlXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxGaWVsZF09XCJzY2hlbWUubGFiZWxGaWVsZCFcIlxuICAgICAgICAgICAgICAgIFtub0Zvcm1hdF09XCJzY2hlbWUubm9Gb3JtYXQhXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxUeXBlXT1cInNjaGVtZS5sYWJlbFR5cGUgfCB0b0FueVwiXG4gICAgICAgICAgICAgICAgKG1jaGFuZ2UpPVwibWNoYW5nZUVtaXR0ZXIoKVwiXG4gICAgICAgICAgICAgICAgKG1TZWxlY3RlZE9wdGlvbkxhYmVsKT1cInNldE9wdGlvbkxhYmVsKCRldmVudCwgc2NoZW1lKVwiXG4gICAgICAgICAgICAgICAgW25hbWVdPVwic2NoZW1lLmZpZWxkXCJcbiAgICAgICAgICAgICAgICBbZGVidWddPVwic2NoZW1lLmRlYnVnIVwiXG4gICAgICAgICAgICAgICAgW3Nob3dSZXF1aXJlZFRhZ109XCJzY2hlbWUuc2hvd1JlcXVpcmVkVGFnIVwiXG4gICAgICAgICAgICAgICAgW29wdGlvbkZvcm1hdHRlcl09XCJzY2hlbWUub3B0aW9uRm9ybWF0dGVyIVwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlRmllbGRdPVwic2NoZW1lLnZhbHVlRmllbGQhXCJcbiAgICAgICAgICAgICAgICBbb3B0aW9uc0Z1bmNdPVwic2NoZW1lLm9wdGlvbnNGdW5jIVwiXG4gICAgICAgICAgICAgICAgW3Nob3dWYWxpZGF0aW9uTXNnXT1cInNjaGVtZS5zaG93VmFsaWRhdGlvbk1zZ1wiXG4gICAgICAgICAgICAgICAgW2F1dG9QaWNrVmFsdWVGaWVsZF09XCJzY2hlbWUuYXV0b1BpY2tWYWx1ZUZpZWxkIVwiXG4gICAgICAgICAgICAgICAgW29wdGlvbnNdPVwic2NoZW1lLm9wdGlvbnMgfHwgb3B0aW9uc01hcCgpW3NjaGVtZS5maWVsZCB8IHRvQW55XVwiXG4gICAgICAgICAgICAgICAgW2hpbnRdPVwic2NoZW1lLmhpbnQhXCJcbiAgICAgICAgICAgICAgICBbbWF4TGVuZ3RoXT1cInNjaGVtZS5tYXhMZW5ndGhcIlxuICAgICAgICAgICAgICAgIFttaW5MZW5ndGhdPVwic2NoZW1lLm1pbkxlbmd0aFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNjaGVtZS5kaXNhYmxlZCB8fCAoc2NoZW1lLmRpc2FibGVkSWYhIHwgZnVuY3Rpb25DYWxsZXIyOiBmb3JtVmFsdWUoKSA6IChzY2hlbWUuZmllbGQgfCB0b0FueSkpXCIgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAgICAgICAgPGFwcC1pbnB1dC1iYXNpY1xuICAgICAgICAgICAgICAgIFtub0Zvcm1hdF09XCJzY2hlbWUubm9Gb3JtYXRcIlxuICAgICAgICAgICAgICAgIFtuYW1lXT1cInNjaGVtZS5maWVsZFwiXG4gICAgICAgICAgICAgICAgW2Zvcm1dPVwic2NoZW1lLmZvcm0gfHwgZm9ybSgpXCJcbiAgICAgICAgICAgICAgICBbY2xlYXJPbkRpc2FibGVdPVwic2NoZW1lLmNsZWFyT25EaXNhYmxlXCJcbiAgICAgICAgICAgICAgICBbdHlwZV09XCJzY2hlbWUudHlwZVwiXG4gICAgICAgICAgICAgICAgW3ZlcmJvc2VdPVwic2NoZW1lLnZlcmJvc2VcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZUZpZWxkXT1cInNjaGVtZS52YWx1ZUZpZWxkXCJcbiAgICAgICAgICAgICAgICBbYXV0b1BpY2tWYWx1ZUZpZWxkXT1cInNjaGVtZS5hdXRvUGlja1ZhbHVlRmllbGRcIlxuICAgICAgICAgICAgICAgIFtwcmVzZXRWYWx1ZV09XCJzY2hlbWUucHJlc2V0VmFsdWVcIlxuICAgICAgICAgICAgICAgIFtzdGFja2VkXT1cInNjaGVtZS5zdGFja2VkXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxUeXBlXT1cInNjaGVtZS5sYWJlbFR5cGUgfCB0b0FueVwiXG4gICAgICAgICAgICAgICAgW2NoZWNrZWRTaWduYWxdPVwic2NoZW1lLmNoZWNrZWRcIlxuICAgICAgICAgICAgICAgIFtzaG93VmFsaWRhdGlvbl09XCIhIXNjaGVtZS5hc3luY1ZhbGlkYXRvcnNcIlxuICAgICAgICAgICAgICAgIFtzaG93VmFsaWRhdGlvbkljb25dPVwiISFzY2hlbWUuYXN5bmNWYWxpZGF0b3JzXCJcbiAgICAgICAgICAgICAgICBbZGVidWddPVwic2NoZW1lLmRlYnVnXCJcbiAgICAgICAgICAgICAgICAobWNoYW5nZSk9XCJtY2hhbmdlRW1pdHRlcigpXCJcbiAgICAgICAgICAgICAgICBbc2hvd1JlcXVpcmVkVGFnXT1cInNjaGVtZS5zaG93UmVxdWlyZWRUYWdcIlxuICAgICAgICAgICAgICAgIFtsYWJlbEZpZWxkXT1cInNjaGVtZS5sYWJlbEZpZWxkXCJcbiAgICAgICAgICAgICAgICBbb3B0aW9uRm9ybWF0dGVyXT1cInNjaGVtZS5vcHRpb25Gb3JtYXR0ZXJcIlxuICAgICAgICAgICAgICAgIChtU2VsZWN0ZWRPcHRpb25MYWJlbCk9XCJzZXRPcHRpb25MYWJlbCgkZXZlbnQsIHNjaGVtZSlcIlxuICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cInNjaGVtZS5vcHRpb25zIHx8IG9wdGlvbnNNYXAoKVtzY2hlbWUuZmllbGQgfCB0b0FueV1cIlxuICAgICAgICAgICAgICAgIFtkZWNpbWFsUG9pbnRzXT1cInNjaGVtZS5kZWNpbWFsUG9pbnRzXCJcbiAgICAgICAgICAgICAgICBbaGludF09XCJzY2hlbWUuaGludFwiXG4gICAgICAgICAgICAgICAgW21heF09XCJzY2hlbWUubWF4XCJcbiAgICAgICAgICAgICAgICBbbWluXT1cInNjaGVtZS5taW5cIlxuICAgICAgICAgICAgICAgIFttYXhMZW5ndGhdPVwic2NoZW1lLm1heExlbmd0aFwiXG4gICAgICAgICAgICAgICAgW21pbkxlbmd0aF09XCJzY2hlbWUubWluTGVuZ3RoXCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwic2NoZW1lLnBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwic2NoZW1lLmxhYmVsXCJcbiAgICAgICAgICAgICAgICBbc2hvd1ZhbGlkYXRpb25Nc2ddPVwic2NoZW1lLnNob3dWYWxpZGF0aW9uTXNnXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic2NoZW1lLmRpc2FibGVkIHx8IChzY2hlbWUuZGlzYWJsZWRJZiB8IGZ1bmN0aW9uQ2FsbGVyMjogZm9ybVZhbHVlKCkgOiAoc2NoZW1lLmZpZWxkIHwgdG9BbnkpKVwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicm93IHJvdy1jb2xzLWF1dG8ganVzdGlmeS1jb250ZW50LWVuZFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIlwiPlxuICAgICAgICBAaWYgKHNob3dTdWJtaXRCdG4oKSkge1xuICAgICAgICAgIDxhcHAtYnRuIFt0ZXh0XT1cInN1Ym1pdEJ0blRleHQoKVwiICBncm91cD1cInN1Ym1pdFwiIFtmb3JtXT1cImZvcm0oKVwiIChtY2xpY2spPVwic3VibWl0KHN1Ym1pdEJ0bilcIiAjc3VibWl0QnRuIC8+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChzdWJtaXRCdG5UZW1wbGF0ZSgpKSB7XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN1Ym1pdEJ0blRlbXBsYXRlKClcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZm9ybT5cbjwvbG9hZGVyPlxuIl19
@@ -1557,7 +1557,7 @@ class BtnService {
1557
1557
  });
1558
1558
  }
1559
1559
  checkForm(btn) {
1560
- debugger;
1560
+ // debugger;
1561
1561
  if (btn.isDisabled() && btn.form) {
1562
1562
  btn.form.markAllAsTouched();
1563
1563
  const form = btn.form;
@@ -11990,7 +11990,9 @@ class FormGeneratorComponent extends BaseFormGenerator {
11990
11990
  this.computedLoading = computed(() => (this.useLoader() ? this.loading() || this._loading() : false));
11991
11991
  this.submitBtnRef = viewChild('submitBtn');
11992
11992
  this.form = model();
11993
- this.formValue = toSignal(toObservable(this.form).pipe(switchMap$1((form) => form.valueChanges.pipe(map(() => this.form()?.getRawValue() || {}))), startWith(this.form()?.getRawValue())), { initialValue: this.form()?.getRawValue() || {} });
11993
+ this.formValue = toSignal(toObservable(this.form).pipe(filter$1(() => !!this.form()), switchMap$1(() => this.form()
11994
+ .valueChanges.pipe(map(() => this.form()?.getRawValue() || {}))
11995
+ .pipe(startWith(this.form()?.getRawValue() || {})))));
11994
11996
  this.optionsMap = signal({});
11995
11997
  // formVal = computed(() => this.form?.getRawValue());
11996
11998
  this.computedFormSchema = computed(() => {
@@ -12891,7 +12893,7 @@ class FormGeneratedValueComponent extends FormGeneratorComponent {
12891
12893
  };
12892
12894
  }
12893
12895
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: FormGeneratedValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12894
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: FormGeneratedValueComponent, isStandalone: true, selector: "form-generated-value", usesInheritance: true, ngImport: i0, template: "<loader [loading]=\"computedLoading()\">\n <form>\n <div\n class=\"row row-cols-{{ gridStyle() }} row-cols-md-{{ gridMDStyle() }} row-cols-lg-{{\n gridLGStyle()\n }} row-cols-xxl-{{ gridXXLStyle() }} align-items-center {{ formGridClass() }}\">\n @for (scheme of computedFormSchema(); track scheme.field) {\n <div class=\"col {{ scheme.cls }} \">\n @switch (true) {\n @case (scheme.type == 'tel') {\n <app-phone-number\n [form]=\"form()\"\n [label]=\"scheme.label\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [name]=\"scheme.field\"\n [showLabel]=\"false\"\n [noFormat]=\"scheme.noFormat\"\n [debug]=\"scheme.debug\"\n [showValidation]=\"scheme.showValidation\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [showValidationIcon]=\"scheme.showValidationIcon\"\n [countryCode3]=\"scheme.countryCode3\"\n [disabled]=\"\n scheme.disabled ||\n (scheme.disabledIf | functionCaller2: formValue() : (scheme.field | toAny))\n \"\n #inputTag />\n }\n @case (scheme.type == 'autocomplete') {\n <ng-container\n *ngTemplateOutlet=\"\n labelValue;\n context: {\n $implicit: {\n scheme,\n value:\n formValue()[scheme.field | toAny]\n | listOptionFinder\n : scheme.options || optionsMap[scheme.field | toAny]\n : scheme.valueField\n : scheme.labelField\n : scheme.labelType\n : scheme.optionFormatter\n }\n }\n \"></ng-container>\n }\n @default {\n <ng-container\n *ngTemplateOutlet=\"\n labelValue;\n context: { $implicit: { scheme, value: formValue()[scheme.field | toAny] } }\n \" />\n }\n }\n </div>\n }\n </div>\n </form>\n</loader>\n\n<ng-template #labelValue let-obj>\n <div class=\"\">\n <div class=\"text-primary\">\n {{ obj.scheme.label }}\n </div>\n <div class=\" \">\n {{ formatValue | functionCaller2: obj.scheme : obj.value | valueOrX: '-' }}\n </div>\n </div>\n</ng-template>\n", styles: [":host ::ng-deep input:not([type=checkbox]),:host ::ng-deep .control-bg-gray.form-control,:host ::ng-deep textarea{border:none!important;background-color:transparent!important;padding:0!important;height:auto!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: FunctionCaller2, name: "functionCaller2" }, { kind: "pipe", type: ListOptionFinderPipe, name: "listOptionFinder" }, { kind: "component", type: LoaderComponent, selector: "loader", inputs: ["class", "text", "loading", "height", "width", "ratioHW"] }, { kind: "component", type: PhoneNumberComponent, selector: "app-phone-number", inputs: ["showLabel", "countryCode3", "config"], outputs: ["onCountrySelect"] }, { kind: "pipe", type: ToAnyPipe, name: "toAny" }, { kind: "pipe", type: ValueOrXPipe, name: "valueOrX" }] }); }
12896
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: FormGeneratedValueComponent, isStandalone: true, selector: "form-generated-value", usesInheritance: true, ngImport: i0, template: "<loader [loading]=\"computedLoading()\">\n <form>\n <div\n class=\"row row-cols-{{ gridStyle() }} row-cols-md-{{ gridMDStyle() }} row-cols-lg-{{\n gridLGStyle()\n }} row-cols-xxl-{{ gridXXLStyle() }} align-items-center {{ formGridClass() }}\">\n @for (scheme of computedFormSchema(); track scheme.field) {\n <div class=\"col {{ scheme.cls }} \">\n @switch (true) {\n @case (scheme.type == 'tel') {\n <app-phone-number\n [form]=\"form()\"\n [label]=\"scheme.label\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [name]=\"scheme.field\"\n [showLabel]=\"false\"\n [noFormat]=\"scheme.noFormat\"\n [debug]=\"scheme.debug\"\n [showValidation]=\"scheme.showValidation\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [showValidationIcon]=\"scheme.showValidationIcon\"\n [countryCode3]=\"scheme.countryCode3\"\n #inputTag />\n }\n @case (scheme.type == 'autocomplete') {\n <ng-container\n *ngTemplateOutlet=\"\n labelValue;\n context: {\n $implicit: {\n scheme,\n value:\n formValue()[scheme.field | toAny]\n | listOptionFinder\n : scheme.options || optionsMap[scheme.field | toAny]\n : scheme.valueField\n : scheme.labelField\n : scheme.labelType\n : scheme.optionFormatter\n }\n }\n \"></ng-container>\n }\n @default {\n <ng-container\n *ngTemplateOutlet=\"\n labelValue;\n context: { $implicit: { scheme, value: formValue()[scheme.field | toAny] } }\n \" />\n }\n }\n </div>\n }\n </div>\n </form>\n</loader>\n\n<ng-template #labelValue let-obj>\n <div class=\"\">\n <div class=\"text-primary\">\n {{ obj.scheme.label }}\n </div>\n <div class=\" \">\n {{ formatValue | functionCaller2: obj.scheme : obj.value | valueOrX: '-' }}\n </div>\n </div>\n</ng-template>\n", styles: [":host ::ng-deep input:not([type=checkbox]),:host ::ng-deep .control-bg-gray.form-control,:host ::ng-deep textarea{border:none!important;background-color:transparent!important;padding:0!important;height:auto!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: FunctionCaller2, name: "functionCaller2" }, { kind: "pipe", type: ListOptionFinderPipe, name: "listOptionFinder" }, { kind: "component", type: LoaderComponent, selector: "loader", inputs: ["class", "text", "loading", "height", "width", "ratioHW"] }, { kind: "component", type: PhoneNumberComponent, selector: "app-phone-number", inputs: ["showLabel", "countryCode3", "config"], outputs: ["onCountrySelect"] }, { kind: "pipe", type: ToAnyPipe, name: "toAny" }, { kind: "pipe", type: ValueOrXPipe, name: "valueOrX" }] }); }
12895
12897
  }
12896
12898
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: FormGeneratedValueComponent, decorators: [{
12897
12899
  type: Component,
@@ -12913,7 +12915,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
12913
12915
  ToAnyPipe,
12914
12916
  ValidationMessageComponent,
12915
12917
  ValueOrXPipe,
12916
- ], template: "<loader [loading]=\"computedLoading()\">\n <form>\n <div\n class=\"row row-cols-{{ gridStyle() }} row-cols-md-{{ gridMDStyle() }} row-cols-lg-{{\n gridLGStyle()\n }} row-cols-xxl-{{ gridXXLStyle() }} align-items-center {{ formGridClass() }}\">\n @for (scheme of computedFormSchema(); track scheme.field) {\n <div class=\"col {{ scheme.cls }} \">\n @switch (true) {\n @case (scheme.type == 'tel') {\n <app-phone-number\n [form]=\"form()\"\n [label]=\"scheme.label\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [name]=\"scheme.field\"\n [showLabel]=\"false\"\n [noFormat]=\"scheme.noFormat\"\n [debug]=\"scheme.debug\"\n [showValidation]=\"scheme.showValidation\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [showValidationIcon]=\"scheme.showValidationIcon\"\n [countryCode3]=\"scheme.countryCode3\"\n [disabled]=\"\n scheme.disabled ||\n (scheme.disabledIf | functionCaller2: formValue() : (scheme.field | toAny))\n \"\n #inputTag />\n }\n @case (scheme.type == 'autocomplete') {\n <ng-container\n *ngTemplateOutlet=\"\n labelValue;\n context: {\n $implicit: {\n scheme,\n value:\n formValue()[scheme.field | toAny]\n | listOptionFinder\n : scheme.options || optionsMap[scheme.field | toAny]\n : scheme.valueField\n : scheme.labelField\n : scheme.labelType\n : scheme.optionFormatter\n }\n }\n \"></ng-container>\n }\n @default {\n <ng-container\n *ngTemplateOutlet=\"\n labelValue;\n context: { $implicit: { scheme, value: formValue()[scheme.field | toAny] } }\n \" />\n }\n }\n </div>\n }\n </div>\n </form>\n</loader>\n\n<ng-template #labelValue let-obj>\n <div class=\"\">\n <div class=\"text-primary\">\n {{ obj.scheme.label }}\n </div>\n <div class=\" \">\n {{ formatValue | functionCaller2: obj.scheme : obj.value | valueOrX: '-' }}\n </div>\n </div>\n</ng-template>\n", styles: [":host ::ng-deep input:not([type=checkbox]),:host ::ng-deep .control-bg-gray.form-control,:host ::ng-deep textarea{border:none!important;background-color:transparent!important;padding:0!important;height:auto!important}\n"] }]
12918
+ ], template: "<loader [loading]=\"computedLoading()\">\n <form>\n <div\n class=\"row row-cols-{{ gridStyle() }} row-cols-md-{{ gridMDStyle() }} row-cols-lg-{{\n gridLGStyle()\n }} row-cols-xxl-{{ gridXXLStyle() }} align-items-center {{ formGridClass() }}\">\n @for (scheme of computedFormSchema(); track scheme.field) {\n <div class=\"col {{ scheme.cls }} \">\n @switch (true) {\n @case (scheme.type == 'tel') {\n <app-phone-number\n [form]=\"form()\"\n [label]=\"scheme.label\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [name]=\"scheme.field\"\n [showLabel]=\"false\"\n [noFormat]=\"scheme.noFormat\"\n [debug]=\"scheme.debug\"\n [showValidation]=\"scheme.showValidation\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [showValidationIcon]=\"scheme.showValidationIcon\"\n [countryCode3]=\"scheme.countryCode3\"\n #inputTag />\n }\n @case (scheme.type == 'autocomplete') {\n <ng-container\n *ngTemplateOutlet=\"\n labelValue;\n context: {\n $implicit: {\n scheme,\n value:\n formValue()[scheme.field | toAny]\n | listOptionFinder\n : scheme.options || optionsMap[scheme.field | toAny]\n : scheme.valueField\n : scheme.labelField\n : scheme.labelType\n : scheme.optionFormatter\n }\n }\n \"></ng-container>\n }\n @default {\n <ng-container\n *ngTemplateOutlet=\"\n labelValue;\n context: { $implicit: { scheme, value: formValue()[scheme.field | toAny] } }\n \" />\n }\n }\n </div>\n }\n </div>\n </form>\n</loader>\n\n<ng-template #labelValue let-obj>\n <div class=\"\">\n <div class=\"text-primary\">\n {{ obj.scheme.label }}\n </div>\n <div class=\" \">\n {{ formatValue | functionCaller2: obj.scheme : obj.value | valueOrX: '-' }}\n </div>\n </div>\n</ng-template>\n", styles: [":host ::ng-deep input:not([type=checkbox]),:host ::ng-deep .control-bg-gray.form-control,:host ::ng-deep textarea{border:none!important;background-color:transparent!important;padding:0!important;height:auto!important}\n"] }]
12917
12919
  }], ctorParameters: () => [] });
12918
12920
 
12919
12921
  class FormLinkComponent {