@tilde-nlp/ngx-translate 1.0.4 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/esm2020/lib/modules/tld-common/components/index.mjs +1 -2
  2. package/esm2020/lib/modules/tld-common/models/index.mjs +1 -2
  3. package/esm2020/lib/modules/tld-common/tld-common.module.mjs +3 -13
  4. package/esm2020/lib/modules/tld-document/services/tld-translate-file.service.mjs +6 -4
  5. package/esm2020/lib/modules/tld-document/tld-document.module.mjs +8 -4
  6. package/esm2020/lib/modules/tld-document/tld-translate-file-multiple/tld-translate-file-multiple.component.mjs +11 -12
  7. package/esm2020/lib/modules/tld-text/components/tld-translate-text/tld-translate-text.component.mjs +7 -7
  8. package/esm2020/lib/modules/tld-text/tld-text.module.mjs +8 -4
  9. package/esm2020/public-api.mjs +1 -2
  10. package/fesm2015/tilde-nlp-ngx-translate.mjs +44 -207
  11. package/fesm2015/tilde-nlp-ngx-translate.mjs.map +1 -1
  12. package/fesm2020/tilde-nlp-ngx-translate.mjs +44 -206
  13. package/fesm2020/tilde-nlp-ngx-translate.mjs.map +1 -1
  14. package/lib/modules/tld-common/components/index.d.ts +0 -1
  15. package/lib/modules/tld-common/models/index.d.ts +0 -1
  16. package/lib/modules/tld-common/tld-common.module.d.ts +16 -18
  17. package/lib/modules/tld-document/services/tld-translate-file.service.d.ts +5 -2
  18. package/lib/modules/tld-document/tld-document.module.d.ts +1 -1
  19. package/lib/modules/tld-document/tld-translate-file-multiple/tld-translate-file-multiple.component.d.ts +2 -2
  20. package/lib/modules/tld-text/components/tld-translate-text/tld-translate-text.component.d.ts +1 -2
  21. package/lib/modules/tld-text/tld-text.module.d.ts +1 -1
  22. package/package.json +1 -1
  23. package/public-api.d.ts +0 -1
  24. package/src/assets/webcomponent/styles.css +1 -1
  25. package/src/assets/webcomponent/tld-translate.js +1 -1
  26. package/tilde-nlp-ngx-translate-1.0.6.tgz +0 -0
  27. package/esm2020/lib/modules/tld-common/components/tld-file-upload/tld-file-upload.component.mjs +0 -106
  28. package/esm2020/lib/modules/tld-common/directives/drag-and-drop.directive.mjs +0 -57
  29. package/esm2020/lib/modules/tld-common/directives/index.mjs +0 -2
  30. package/esm2020/lib/modules/tld-common/models/file-upload.model.mjs +0 -10
  31. package/lib/modules/tld-common/components/tld-file-upload/tld-file-upload.component.d.ts +0 -29
  32. package/lib/modules/tld-common/directives/drag-and-drop.directive.d.ts +0 -14
  33. package/lib/modules/tld-common/directives/index.d.ts +0 -1
  34. package/lib/modules/tld-common/models/file-upload.model.d.ts +0 -13
  35. package/tilde-nlp-ngx-translate-1.0.4.tgz +0 -0
@@ -1,10 +1,9 @@
1
1
  export * from './tld-translate-achievement/tld-translate-achievement.component';
2
2
  export * from './tld-loader/tld-loader.component';
3
3
  export * from './tld-lang-list/tld-lang-list.component';
4
- export * from './tld-file-upload/tld-file-upload.component';
5
4
  export * from './tld-message/tld-message.component';
6
5
  export * from './open-close-button/open-close-button.component';
7
6
  export * from './translate-button/translate-button.component';
8
7
  export * from './tld-list-menu/tld-list-menu.component';
9
8
  export * from './source-and-target-wrapper/source-and-target-wrapper.component';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtY29tbW9uL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpRUFBaUUsQ0FBQztBQUNoRixjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsaUVBQWlFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3RsZC10cmFuc2xhdGUtYWNoaWV2ZW1lbnQvdGxkLXRyYW5zbGF0ZS1hY2hpZXZlbWVudC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3RsZC1sb2FkZXIvdGxkLWxvYWRlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3RsZC1sYW5nLWxpc3QvdGxkLWxhbmctbGlzdC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3RsZC1maWxlLXVwbG9hZC90bGQtZmlsZS11cGxvYWQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi90bGQtbWVzc2FnZS90bGQtbWVzc2FnZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL29wZW4tY2xvc2UtYnV0dG9uL29wZW4tY2xvc2UtYnV0dG9uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNsYXRlLWJ1dHRvbi90cmFuc2xhdGUtYnV0dG9uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdGxkLWxpc3QtbWVudS90bGQtbGlzdC1tZW51LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc291cmNlLWFuZC10YXJnZXQtd3JhcHBlci9zb3VyY2UtYW5kLXRhcmdldC13cmFwcGVyLmNvbXBvbmVudCc7Il19
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtY29tbW9uL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpRUFBaUUsQ0FBQztBQUNoRixjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLGlFQUFpRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90bGQtdHJhbnNsYXRlLWFjaGlldmVtZW50L3RsZC10cmFuc2xhdGUtYWNoaWV2ZW1lbnQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi90bGQtbG9hZGVyL3RsZC1sb2FkZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi90bGQtbGFuZy1saXN0L3RsZC1sYW5nLWxpc3QuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi90bGQtbWVzc2FnZS90bGQtbWVzc2FnZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL29wZW4tY2xvc2UtYnV0dG9uL29wZW4tY2xvc2UtYnV0dG9uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNsYXRlLWJ1dHRvbi90cmFuc2xhdGUtYnV0dG9uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdGxkLWxpc3QtbWVudS90bGQtbGlzdC1tZW51LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc291cmNlLWFuZC10YXJnZXQtd3JhcHBlci9zb3VyY2UtYW5kLXRhcmdldC13cmFwcGVyLmNvbXBvbmVudCc7XHJcbiJdfQ==
@@ -1,5 +1,4 @@
1
1
  export * from './common';
2
- export * from './file-upload.model';
3
2
  export * from './message.model';
4
3
  export * from './language-with-translation.model';
5
4
  export * from './configs/tld-translate-core-config.model';
@@ -19,4 +18,4 @@ export * from './services';
19
18
  export * from './errors/error-codes.enum';
20
19
  export * from './errors/error-codes.type';
21
20
  export * from './errors/error.model';
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtY29tbW9uL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29tbW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9maWxlLXVwbG9hZC5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbWVzc2FnZS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGFuZ3VhZ2Utd2l0aC10cmFuc2xhdGlvbi5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlncy90bGQtdHJhbnNsYXRlLWNvcmUtY29uZmlnLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb25maWdzL3RsZC10cmFuc2xhdGUtdGV4dC1jb25maWcubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS1maWxlLWNvbmZpZy5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlncy90bGQtdHJhbnNsYXRlLXdlYi1jb25maWcubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS1hcGktdjItY29uZmlnLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb25maWdzL3RsZC10ZXJtLWNvbmZpZy5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlncy90bGQtdHJhbnNsYXRlLWNvbmZpZy5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlncy90bGQtYXVkaW8tY29uZmlnLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb25maWdzL3RsZC10ZXh0LXRvLXNwZWVjaC1jb25maWcubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2F1dGgtb3B0aW9ucy5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGFuZy1saXN0LWl0ZW0ubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdGVkLWxhbmd1YWdlLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb3JlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3JzL2Vycm9yLWNvZGVzLmVudW0nO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vycm9ycy9lcnJvci1jb2Rlcy50eXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lcnJvcnMvZXJyb3IubW9kZWwnO1xyXG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtY29tbW9uL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbW1vbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbWVzc2FnZS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGFuZ3VhZ2Utd2l0aC10cmFuc2xhdGlvbi5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlncy90bGQtdHJhbnNsYXRlLWNvcmUtY29uZmlnLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb25maWdzL3RsZC10cmFuc2xhdGUtdGV4dC1jb25maWcubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS1maWxlLWNvbmZpZy5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlncy90bGQtdHJhbnNsYXRlLXdlYi1jb25maWcubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS1hcGktdjItY29uZmlnLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb25maWdzL3RsZC10ZXJtLWNvbmZpZy5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlncy90bGQtdHJhbnNsYXRlLWNvbmZpZy5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlncy90bGQtYXVkaW8tY29uZmlnLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb25maWdzL3RsZC10ZXh0LXRvLXNwZWVjaC1jb25maWcubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2F1dGgtb3B0aW9ucy5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGFuZy1saXN0LWl0ZW0ubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdGVkLWxhbmd1YWdlLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb3JlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3JzL2Vycm9yLWNvZGVzLmVudW0nO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vycm9ycy9lcnJvci1jb2Rlcy50eXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lcnJvcnMvZXJyb3IubW9kZWwnO1xyXG4iXX0=
@@ -7,22 +7,18 @@ import { TextToSpeechModule } from '../../components/shared/text-to-speech/text-
7
7
  import { MaterialModule } from '../material.module';
8
8
  import { TldOpenCloseButtonComponent } from './components/open-close-button/open-close-button.component';
9
9
  import { SourceAndTargetWrapperComponent } from './components/source-and-target-wrapper/source-and-target-wrapper.component';
10
- import { TldFileUploadComponent } from './components/tld-file-upload/tld-file-upload.component';
11
10
  import { TldLangListComponent } from './components/tld-lang-list/tld-lang-list.component';
12
11
  import { TldListMenuComponent } from './components/tld-list-menu/tld-list-menu.component';
13
12
  import { TldLoaderComponent } from './components/tld-loader/tld-loader.component';
14
13
  import { TldMessageComponent } from './components/tld-message/tld-message.component';
15
14
  import { TldTranslateAchievementComponent } from './components/tld-translate-achievement/tld-translate-achievement.component';
16
15
  import { TldTranslateButtonComponent } from './components/translate-button/translate-button.component';
17
- import { DragAndDropDirective } from './directives/drag-and-drop.directive';
18
16
  import { TranslateDomainPipe } from './pipes/translate-domain.pipe';
19
17
  import * as i0 from "@angular/core";
20
18
  export class TldCommonModule {
21
19
  }
22
20
  TldCommonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldCommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
23
- TldCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: TldCommonModule, declarations: [TldFileUploadComponent,
24
- DragAndDropDirective,
25
- TldTranslateAchievementComponent,
21
+ TldCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: TldCommonModule, declarations: [TldTranslateAchievementComponent,
26
22
  TldLangListComponent,
27
23
  TldLoaderComponent,
28
24
  TldMessageComponent,
@@ -36,9 +32,7 @@ TldCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version
36
32
  TranslateModule,
37
33
  CloseButtonModule,
38
34
  SortTranslationsModule,
39
- TextToSpeechModule], exports: [TldFileUploadComponent,
40
- DragAndDropDirective,
41
- TldTranslateAchievementComponent,
35
+ TextToSpeechModule], exports: [TldTranslateAchievementComponent,
42
36
  TldLangListComponent,
43
37
  TldLoaderComponent,
44
38
  TldMessageComponent,
@@ -58,8 +52,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
58
52
  type: NgModule,
59
53
  args: [{
60
54
  declarations: [
61
- TldFileUploadComponent,
62
- DragAndDropDirective,
63
55
  TldTranslateAchievementComponent,
64
56
  TldLangListComponent,
65
57
  TldLoaderComponent,
@@ -80,8 +72,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
80
72
  TextToSpeechModule
81
73
  ],
82
74
  exports: [
83
- TldFileUploadComponent,
84
- DragAndDropDirective,
85
75
  TldTranslateAchievementComponent,
86
76
  TldLangListComponent,
87
77
  TldLoaderComponent,
@@ -94,4 +84,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
94
84
  ]
95
85
  }]
96
86
  }] });
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLWNvbW1vbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtY29tbW9uL3RsZC1jb21tb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDbEcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDRFQUE0RSxDQUFDO0FBQzdILE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDRFQUE0RSxDQUFDO0FBQzlILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQXdDcEUsTUFBTSxPQUFPLGVBQWU7OzRHQUFmLGVBQWU7NkdBQWYsZUFBZSxpQkFuQ3hCLHNCQUFzQjtRQUN0QixvQkFBb0I7UUFDcEIsZ0NBQWdDO1FBQ2hDLG9CQUFvQjtRQUNwQixrQkFBa0I7UUFDbEIsbUJBQW1CO1FBQ25CLDJCQUEyQjtRQUMzQiwyQkFBMkI7UUFDM0IsbUJBQW1CO1FBQ25CLG9CQUFvQjtRQUNwQiwrQkFBK0IsYUFHL0IsV0FBVztRQUNYLFlBQVk7UUFDWixjQUFjO1FBQ2QsZUFBZTtRQUNmLGlCQUFpQjtRQUNqQixzQkFBc0I7UUFDdEIsa0JBQWtCLGFBR2xCLHNCQUFzQjtRQUN0QixvQkFBb0I7UUFDcEIsZ0NBQWdDO1FBQ2hDLG9CQUFvQjtRQUNwQixrQkFBa0I7UUFDbEIsbUJBQW1CO1FBQ25CLDJCQUEyQjtRQUMzQiwyQkFBMkI7UUFDM0IsbUJBQW1CO1FBQ25CLG9CQUFvQjtRQUNwQiwrQkFBK0I7NkdBR3RCLGVBQWUsWUF0QnhCLFdBQVc7UUFDWCxZQUFZO1FBQ1osY0FBYztRQUNkLGVBQWU7UUFDZixpQkFBaUI7UUFDakIsc0JBQXNCO1FBQ3RCLGtCQUFrQjsyRkFnQlQsZUFBZTtrQkFyQzNCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLHNCQUFzQjt3QkFDdEIsb0JBQW9CO3dCQUNwQixnQ0FBZ0M7d0JBQ2hDLG9CQUFvQjt3QkFDcEIsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLDJCQUEyQjt3QkFDM0IsMkJBQTJCO3dCQUMzQixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsK0JBQStCO3FCQUNoQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLHNCQUFzQjt3QkFDdEIsa0JBQWtCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asc0JBQXNCO3dCQUN0QixvQkFBb0I7d0JBQ3BCLGdDQUFnQzt3QkFDaEMsb0JBQW9CO3dCQUNwQixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsMkJBQTJCO3dCQUMzQiwyQkFBMkI7d0JBQzNCLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUNwQiwrQkFBK0I7cUJBQ2hDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBDbG9zZUJ1dHRvbk1vZHVsZSwgU29ydFRyYW5zbGF0aW9uc01vZHVsZSB9IGZyb20gJ0B0aWxkZS1ubHAvbmd4LWNvbW1vbic7XHJcbmltcG9ydCB7IFRleHRUb1NwZWVjaE1vZHVsZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvc2hhcmVkL3RleHQtdG8tc3BlZWNoL3RleHQtdG8tc3BlZWNoLm1vZHVsZSc7XHJcbmltcG9ydCB7IE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnLi4vbWF0ZXJpYWwubW9kdWxlJztcclxuaW1wb3J0IHsgVGxkT3BlbkNsb3NlQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL29wZW4tY2xvc2UtYnV0dG9uL29wZW4tY2xvc2UtYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNvdXJjZUFuZFRhcmdldFdyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc291cmNlLWFuZC10YXJnZXQtd3JhcHBlci9zb3VyY2UtYW5kLXRhcmdldC13cmFwcGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRsZEZpbGVVcGxvYWRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGxkLWZpbGUtdXBsb2FkL3RsZC1maWxlLXVwbG9hZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUbGRMYW5nTGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90bGQtbGFuZy1saXN0L3RsZC1sYW5nLWxpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGxkTGlzdE1lbnVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGxkLWxpc3QtbWVudS90bGQtbGlzdC1tZW51LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRsZExvYWRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90bGQtbG9hZGVyL3RsZC1sb2FkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGxkTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90bGQtbWVzc2FnZS90bGQtbWVzc2FnZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUbGRUcmFuc2xhdGVBY2hpZXZlbWVudENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90bGQtdHJhbnNsYXRlLWFjaGlldmVtZW50L3RsZC10cmFuc2xhdGUtYWNoaWV2ZW1lbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RyYW5zbGF0ZS1idXR0b24vdHJhbnNsYXRlLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEcmFnQW5kRHJvcERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9kcmFnLWFuZC1kcm9wLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZURvbWFpblBpcGUgfSBmcm9tICcuL3BpcGVzL3RyYW5zbGF0ZS1kb21haW4ucGlwZSc7XHJcblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFRsZEZpbGVVcGxvYWRDb21wb25lbnQsXHJcbiAgICBEcmFnQW5kRHJvcERpcmVjdGl2ZSxcclxuICAgIFRsZFRyYW5zbGF0ZUFjaGlldmVtZW50Q29tcG9uZW50LFxyXG4gICAgVGxkTGFuZ0xpc3RDb21wb25lbnQsXHJcbiAgICBUbGRMb2FkZXJDb21wb25lbnQsXHJcbiAgICBUbGRNZXNzYWdlQ29tcG9uZW50LFxyXG4gICAgVGxkVHJhbnNsYXRlQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgVGxkT3BlbkNsb3NlQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgVHJhbnNsYXRlRG9tYWluUGlwZSxcclxuICAgIFRsZExpc3RNZW51Q29tcG9uZW50LFxyXG4gICAgU291cmNlQW5kVGFyZ2V0V3JhcHBlckNvbXBvbmVudFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRlcmlhbE1vZHVsZSxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIENsb3NlQnV0dG9uTW9kdWxlLFxyXG4gICAgU29ydFRyYW5zbGF0aW9uc01vZHVsZSxcclxuICAgIFRleHRUb1NwZWVjaE1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgVGxkRmlsZVVwbG9hZENvbXBvbmVudCxcclxuICAgIERyYWdBbmREcm9wRGlyZWN0aXZlLFxyXG4gICAgVGxkVHJhbnNsYXRlQWNoaWV2ZW1lbnRDb21wb25lbnQsXHJcbiAgICBUbGRMYW5nTGlzdENvbXBvbmVudCxcclxuICAgIFRsZExvYWRlckNvbXBvbmVudCxcclxuICAgIFRsZE1lc3NhZ2VDb21wb25lbnQsXHJcbiAgICBUbGRUcmFuc2xhdGVCdXR0b25Db21wb25lbnQsXHJcbiAgICBUbGRPcGVuQ2xvc2VCdXR0b25Db21wb25lbnQsXHJcbiAgICBUcmFuc2xhdGVEb21haW5QaXBlLFxyXG4gICAgVGxkTGlzdE1lbnVDb21wb25lbnQsXHJcbiAgICBTb3VyY2VBbmRUYXJnZXRXcmFwcGVyQ29tcG9uZW50LFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRsZENvbW1vbk1vZHVsZSB7IH1cclxuIl19
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLWNvbW1vbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtY29tbW9uL3RsZC1jb21tb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDbEcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDRFQUE0RSxDQUFDO0FBQzdILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDRFQUE0RSxDQUFDO0FBQzlILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQW9DcEUsTUFBTSxPQUFPLGVBQWU7OzRHQUFmLGVBQWU7NkdBQWYsZUFBZSxpQkEvQnhCLGdDQUFnQztRQUNoQyxvQkFBb0I7UUFDcEIsa0JBQWtCO1FBQ2xCLG1CQUFtQjtRQUNuQiwyQkFBMkI7UUFDM0IsMkJBQTJCO1FBQzNCLG1CQUFtQjtRQUNuQixvQkFBb0I7UUFDcEIsK0JBQStCLGFBRy9CLFdBQVc7UUFDWCxZQUFZO1FBQ1osY0FBYztRQUNkLGVBQWU7UUFDZixpQkFBaUI7UUFDakIsc0JBQXNCO1FBQ3RCLGtCQUFrQixhQUdsQixnQ0FBZ0M7UUFDaEMsb0JBQW9CO1FBQ3BCLGtCQUFrQjtRQUNsQixtQkFBbUI7UUFDbkIsMkJBQTJCO1FBQzNCLDJCQUEyQjtRQUMzQixtQkFBbUI7UUFDbkIsb0JBQW9CO1FBQ3BCLCtCQUErQjs2R0FHdEIsZUFBZSxZQXBCeEIsV0FBVztRQUNYLFlBQVk7UUFDWixjQUFjO1FBQ2QsZUFBZTtRQUNmLGlCQUFpQjtRQUNqQixzQkFBc0I7UUFDdEIsa0JBQWtCOzJGQWNULGVBQWU7a0JBakMzQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixnQ0FBZ0M7d0JBQ2hDLG9CQUFvQjt3QkFDcEIsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLDJCQUEyQjt3QkFDM0IsMkJBQTJCO3dCQUMzQixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsK0JBQStCO3FCQUNoQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLHNCQUFzQjt3QkFDdEIsa0JBQWtCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZ0NBQWdDO3dCQUNoQyxvQkFBb0I7d0JBQ3BCLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQiwyQkFBMkI7d0JBQzNCLDJCQUEyQjt3QkFDM0IsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLCtCQUErQjtxQkFDaEM7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IENsb3NlQnV0dG9uTW9kdWxlLCBTb3J0VHJhbnNsYXRpb25zTW9kdWxlIH0gZnJvbSAnQHRpbGRlLW5scC9uZ3gtY29tbW9uJztcclxuaW1wb3J0IHsgVGV4dFRvU3BlZWNoTW9kdWxlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9zaGFyZWQvdGV4dC10by1zcGVlY2gvdGV4dC10by1zcGVlY2gubW9kdWxlJztcclxuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuLi9tYXRlcmlhbC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBUbGRPcGVuQ2xvc2VCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvb3Blbi1jbG9zZS1idXR0b24vb3Blbi1jbG9zZS1idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgU291cmNlQW5kVGFyZ2V0V3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zb3VyY2UtYW5kLXRhcmdldC13cmFwcGVyL3NvdXJjZS1hbmQtdGFyZ2V0LXdyYXBwZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGxkTGFuZ0xpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGxkLWxhbmctbGlzdC90bGQtbGFuZy1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRsZExpc3RNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RsZC1saXN0LW1lbnUvdGxkLWxpc3QtbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUbGRMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGxkLWxvYWRlci90bGQtbG9hZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRsZE1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGxkLW1lc3NhZ2UvdGxkLW1lc3NhZ2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlQWNoaWV2ZW1lbnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGxkLXRyYW5zbGF0ZS1hY2hpZXZlbWVudC90bGQtdHJhbnNsYXRlLWFjaGlldmVtZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRsZFRyYW5zbGF0ZUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90cmFuc2xhdGUtYnV0dG9uL3RyYW5zbGF0ZS1idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgVHJhbnNsYXRlRG9tYWluUGlwZSB9IGZyb20gJy4vcGlwZXMvdHJhbnNsYXRlLWRvbWFpbi5waXBlJztcclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgVGxkVHJhbnNsYXRlQWNoaWV2ZW1lbnRDb21wb25lbnQsXHJcbiAgICBUbGRMYW5nTGlzdENvbXBvbmVudCxcclxuICAgIFRsZExvYWRlckNvbXBvbmVudCxcclxuICAgIFRsZE1lc3NhZ2VDb21wb25lbnQsXHJcbiAgICBUbGRUcmFuc2xhdGVCdXR0b25Db21wb25lbnQsXHJcbiAgICBUbGRPcGVuQ2xvc2VCdXR0b25Db21wb25lbnQsXHJcbiAgICBUcmFuc2xhdGVEb21haW5QaXBlLFxyXG4gICAgVGxkTGlzdE1lbnVDb21wb25lbnQsXHJcbiAgICBTb3VyY2VBbmRUYXJnZXRXcmFwcGVyQ29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIE1hdGVyaWFsTW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgQ2xvc2VCdXR0b25Nb2R1bGUsXHJcbiAgICBTb3J0VHJhbnNsYXRpb25zTW9kdWxlLFxyXG4gICAgVGV4dFRvU3BlZWNoTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBUbGRUcmFuc2xhdGVBY2hpZXZlbWVudENvbXBvbmVudCxcclxuICAgIFRsZExhbmdMaXN0Q29tcG9uZW50LFxyXG4gICAgVGxkTG9hZGVyQ29tcG9uZW50LFxyXG4gICAgVGxkTWVzc2FnZUNvbXBvbmVudCxcclxuICAgIFRsZFRyYW5zbGF0ZUJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFRsZE9wZW5DbG9zZUJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFRyYW5zbGF0ZURvbWFpblBpcGUsXHJcbiAgICBUbGRMaXN0TWVudUNvbXBvbmVudCxcclxuICAgIFNvdXJjZUFuZFRhcmdldFdyYXBwZXJDb21wb25lbnQsXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGxkQ29tbW9uTW9kdWxlIHsgfVxyXG4iXX0=
@@ -4,7 +4,7 @@ import { InlineMessageType } from '@tilde-nlp/ngx-common';
4
4
  import { of, Subject, throwError, timer } from 'rxjs';
5
5
  import { catchError, mergeMap, retryWhen } from 'rxjs/operators';
6
6
  import { FILE_API_SERVICE_TOKEN } from '../../../injection-tokens';
7
- import { Common, ErrorCode, FileUploadErrorTypeEnum } from '../../tld-common/models';
7
+ import { Common, ErrorCode } from '../../tld-common/models';
8
8
  import { TranslationStatuss } from '../models';
9
9
  import { FileConversionTypes } from '../models/file-conversion-types.model';
10
10
  import * as i0 from "@angular/core";
@@ -33,6 +33,8 @@ export class TldTranslateFileService {
33
33
  this._onClear = new Subject();
34
34
  this._supportedImageExtensions = ["png", "jpg", "jpeg", "bmp"];
35
35
  this.filesUploading = [];
36
+ this.notFoundErrorCode = "E_404";
37
+ this.notFoundRemoveErrorCode = "E_404_REMOVE";
36
38
  this._statusTimeouts[TranslationStatuss.EXTRACTING] = 1000;
37
39
  this._statusTimeouts[TranslationStatuss.EXTRACTING] = 1000;
38
40
  this._statusTimeouts[TranslationStatuss.INITIALIZING] = 1000;
@@ -74,7 +76,7 @@ export class TldTranslateFileService {
74
76
  };
75
77
  this.fileApi.remove(params).pipe(catchError((error) => {
76
78
  if (error.status === 404) {
77
- this.alerts.unhandeledError({ ErrorCode: FileUploadErrorTypeEnum.E_404_REMOVE });
79
+ this.alerts.unhandeledError({ ErrorCode: this.notFoundRemoveErrorCode });
78
80
  }
79
81
  return of();
80
82
  })).subscribe();
@@ -336,7 +338,7 @@ export class TldTranslateFileService {
336
338
  if (translationFile) {
337
339
  translationFile.isDownloading = false;
338
340
  }
339
- const errorForMessage = error.status === 404 ? { ErrorCode: FileUploadErrorTypeEnum.E_404 } : error;
341
+ const errorForMessage = error.status === 404 ? { ErrorCode: this.notFoundErrorCode } : error;
340
342
  this.onTranslationFileError(translationFile, errorForMessage);
341
343
  }
342
344
  fileUploaded(fileName) {
@@ -395,4 +397,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
395
397
  type: Inject,
396
398
  args: [FILE_API_SERVICE_TOKEN]
397
399
  }] }, { type: i1.TldAlertService }, { type: i2.DomSanitizer }, { type: i1.TldTranslateConfigService }, { type: i3.TldSystemService }]; } });
398
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS1maWxlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtZG9jdW1lbnQvc2VydmljZXMvdGxkLXRyYW5zbGF0ZS1maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNwQyxPQUFPLEVBQWlCLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekUsT0FBTyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBdVAsTUFBTSx5QkFBeUIsQ0FBQztBQUsxVSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7O0FBTTVFLE1BQU0sT0FBTyx1QkFBdUI7SUE4QmxDLFlBQ21ELE9BQXdCLEVBQ3hELE1BQXVCLEVBQ2hDLFNBQXVCLEVBQ3ZCLE1BQWlDLEVBQ3hCLFNBQTJCO1FBSkssWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFDeEQsV0FBTSxHQUFOLE1BQU0sQ0FBaUI7UUFDaEMsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUN2QixXQUFNLEdBQU4sTUFBTSxDQUEyQjtRQUN4QixjQUFTLEdB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LE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRSxNQUFNLGFBQWEsR0FBa0I7WUFDbkMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1lBQ3BCLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztZQUNoQyxJQUFJLEVBQUUsaUJBQWlCLENBQUMsS0FBSztZQUM3QixrQkFBa0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxlQUFlLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRTtTQUNqRyxDQUFDO1FBQ0YsZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDL0MsQ0FBQzs7b0hBamJVLHVCQUF1QixrQkErQnhCLHNCQUFzQjt3SEEvQnJCLHVCQUF1QixjQUZ0QixNQUFNOzJGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWdDSSxNQUFNOzJCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcic7XHJcbmltcG9ydCB7IElubGluZU1lc3NhZ2UsIElubGluZU1lc3NhZ2VUeXBlIH0gZnJvbSAnQHRpbGRlLW5scC9uZ3gtY29tbW9uJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QsIHRocm93RXJyb3IsIHRpbWVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1lcmdlTWFwLCByZXRyeVdoZW4gfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEZJTEVfQVBJX1NFUlZJQ0VfVE9LRU4gfSBmcm9tICcuLi8uLi8uLi9pbmplY3Rpb24tdG9rZW5zJztcclxuaW1wb3J0IHsgQ29tbW9uLCBFcnJvckNvZGUsIEZpbGVVcGxvYWRFcnJvclR5cGVFbnVtLCBJRG93bmxvYWRGaWxlUGFyYW1zLCBJRmlsZUFwaVNlcnZpY2UsIElGaWxlTWV0YSwgSUZpbGVVcGxvYWRFcnJvciwgSUdldEZpbGVTdGF0dXNQYXJhbXMsIElHZXRGaWxlVHJhbnNsYXRpb25TdGF0dXNSZXNwb25zZSwgSVJlbW92ZUZpbGVQYXJhbXMsIElTb3VyY2VGaWxlUHJldmlld1Jlc3BvbnNlLCBJU3RhcnRGaWxlVHJhbnNsYXRpb25QYXJhbXMsIElUbGRFcnJvciwgSVRyYW5zbGF0ZWREb2N1bWVudFByZXZpZXdQYXJhbXMgfSBmcm9tICcuLi8uLi90bGQtY29tbW9uL21vZGVscyc7XHJcbmltcG9ydCB7IFN5c3RlbSB9IGZyb20gJy4uLy4uL3RsZC1jb21tb24vbW9kZWxzL3NlcnZpY2VzL3N5c3RlbS9zeXN0ZW0ubW9kZWwnO1xyXG5pbXBvcnQgeyBUbGRBbGVydFNlcnZpY2UsIFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi90bGQtY29tbW9uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgSUFjdGl2ZURhdGEgfSBmcm9tICcuLi8uLi90bGQtdG9vbHRpcC9tb2RlbHMnO1xyXG5pbXBvcnQgeyBUbGRTeXN0ZW1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdGxkLXRvb2x0aXAvc2VydmljZXMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGlvblN0YXR1c3MgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBGaWxlQ29udmVyc2lvblR5cGVzIH0gZnJvbSAnLi4vbW9kZWxzL2ZpbGUtY29udmVyc2lvbi10eXBlcy5tb2RlbCc7XHJcbmltcG9ydCB7IElUcmFuc2xhdGlvbkZpbGUgfSBmcm9tICcuLi9tb2RlbHMvdHJhbnNsYXRlLWZpbGUubW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGxkVHJhbnNsYXRlRmlsZVNlcnZpY2Uge1xyXG5cclxuICB0cmFuc2xhdGlvblN0YXJ0ZWQ6IGJvb2xlYW47XHJcbiAgLyoqIFZhbHVlIHRvIGJlIHNldCB0byB0cnVlIHdoaWxlIGxvYWRpbmcgc291cmNlIHByZXZpZXcuIEF0IHRoYXQgdGltZSwgdHJhbnNsYXRlIGJ1dHRvbiBzaG91bGQgYmUgZGlzYWJsZWQuICovXHJcbiAgZ2V0IGlzVXBsb2FkaW5nRmlsZSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuZmlsZXNVcGxvYWRpbmcubGVuZ3RoID4gMDsgfTtcclxuICB0cmFuc2xhdGlvbkZpbGVzOiBJVHJhbnNsYXRpb25GaWxlW10gPSBbXTtcclxuICBmaWxlTmFtZXM6IHN0cmluZ1tdID0gW107XHJcbiAgZmlsZXNBZGRlZDogbnVtYmVyO1xyXG4gIGFueVBkZkZpbGVMb2FkZWQ6IGJvb2xlYW47XHJcbiAgYW55SW1hZ2VGaWxlTG9hZGVkOiBib29sZWFuO1xyXG4gIC8vZm9yIG11bHRpcGxlIGZpbGUgY29tcG9uZW50XHJcbiAgdHJhbnNsYXRlZENvdW50OiBudW1iZXIgPSAwO1xyXG4gIG11bHRpcGxlRmlsZVVwbG9hZEFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBnZXQgZGlzYWJsZVRyYW5zbGF0ZUJ1dHRvbigpIHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uU3RhcnRlZCB8fCB0aGlzLmlzVXBsb2FkaW5nRmlsZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX29uRmlsZXNVcGxvYWRlZCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBwcml2YXRlIGFjdGl2ZVN5c3RlbTogU3lzdGVtO1xyXG4gIC8vIFRPRE8uIENvbmZpZ3VyYWJsZT9cclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZWZhdWx0U3RhdHVzQ2hlY2tUaW1lb3V0ID0gMTAwMDtcclxuICAvLyAwIGlzIG5ldHdvcmsgZXJyb3IsIHNob3VsZCB0cnkgYWdhaW5cclxuICBwcml2YXRlIHJlYWRvbmx5IF9yZXRyeUVycm9yQ29kZXMgPSBbMF07XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfbmV0d29ya0Vycm9yTWF4UmV0cmllcyA9IDI7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RhdHVzVGltZW91dHMgPSB7fTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9vbkNsZWFyID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N1cHBvcnRlZEltYWdlRXh0ZW5zaW9ucyA9IFtcInBuZ1wiLCBcImpwZ1wiLCBcImpwZWdcIiwgXCJibXBcIl07XHJcbiAgcHJpdmF0ZSBmaWxlc1VwbG9hZGluZzogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KEZJTEVfQVBJX1NFUlZJQ0VfVE9LRU4pIHByaXZhdGUgcmVhZG9ubHkgZmlsZUFwaTogSUZpbGVBcGlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGVydHM6IFRsZEFsZXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXHJcbiAgICBwcml2YXRlIGNvbmZpZzogVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGxkU3lzdGVtOiBUbGRTeXN0ZW1TZXJ2aWNlKSB7XHJcbiAgICB0aGlzLl9zdGF0dXNUaW1lb3V0c1tUcmFuc2xhdGlvblN0YXR1c3MuRVhUUkFDVElOR10gPSAxMDAwO1xyXG4gICAgdGhpcy5fc3RhdHVzVGltZW91dHNbVHJhbnNsYXRpb25TdGF0dXNzLkVYVFJBQ1RJTkddID0gMTAwMDtcclxuICAgIHRoaXMuX3N0YXR1c1RpbWVvdXRzW1RyYW5zbGF0aW9uU3RhdHVzcy5JTklUSUFMSVpJTkddID0gMTAwMDtcclxuICAgIHRoaXMuX3N0YXR1c1RpbWVvdXRzW1RyYW5zbGF0aW9uU3RhdHVzcy5RVUVVSU5HXSA9IDEwMDA7XHJcbiAgICB0aGlzLl9zdGF0dXNUaW1lb3V0c1tUcmFuc2xhdGlvblN0YXR1c3MuU0FWSU5HXSA9IDEwMDA7XHJcbiAgICB0aGlzLl9zdGF0dXNUaW1lb3V0c1tUcmFuc2xhdGlvblN0YXR1c3MuVFJBTlNMQVRJTkddID0gMTAwMDtcclxuICAgIHRoaXMuX3N0YXR1c1RpbWVvdXRzW1RyYW5zbGF0aW9uU3RhdHVzcy5XQUlUSU5HXSA9IDEwMDAwO1xyXG4gIH1cclxuXHJcbiAgLy8gY2xlYXJzIGFsbCBsb2FkZWQgZGF0YVxyXG4gIGNsZWFyKCkge1xyXG4gICAgY29uc3QgZmlsZUFyciA9IHRoaXMudHJhbnNsYXRpb25GaWxlcztcclxuICAgIGZpbGVBcnIuZm9yRWFjaCgoZmlsZSkgPT4ge1xyXG4gICAgICBmaWxlLnRyYW5zbGF0aW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMucmVtb3ZlKGZpbGUpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5jbGVhclBhcmFtcygpO1xyXG4gIH1cclxuXHJcbiAgb25DbGVhcigpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX29uQ2xlYXIuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBvbkZpbGVzVXBsb2FkZWQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9vbkZpbGVzVXBsb2FkZWQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmUoZmlsZTogSVRyYW5zbGF0aW9uRmlsZSkge1xyXG4gICAgLy8gZmlsZS50cmFuc2xhdGluZyBuZWVkcyB0byBiZSBzZXQsIHNvIG5vIG90aGVyIGdldCBzdGF0dXMgcmVxdWVzdHMgYXJlIHNlbnQgdG8gc2VydmVyLlxyXG4gICAgZmlsZS50cmFuc2xhdGluZyA9IGZhbHNlO1xyXG4gICAgY29uc3QgaXggPSB0aGlzLnRyYW5zbGF0aW9uRmlsZXMuaW5kZXhPZihmaWxlKTtcclxuICAgIGlmIChpeCA8IDApIHtcclxuICAgICAgdGhyb3cgXCJDYW4ndCByZW1vdmUgZmlsZVwiO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHBhcmFtczogSVJlbW92ZUZpbGVQYXJhbXMgPSB7XHJcbiAgICAgIGZpbGU6IGZpbGVcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5maWxlQXBpLnJlbW92ZShwYXJhbXMpLnBpcGUoXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDQpIHtcclxuICAgICAgICAgIHRoaXMuYWxlcnRzLnVuaGFuZGVsZWRFcnJvcih7IEVycm9yQ29kZTogRmlsZVVwbG9hZEVycm9yVHlwZUVudW0uRV80MDRfUkVNT1ZFIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gb2YoKTtcclxuICAgICAgfSlcclxuICAgICkuc3Vic2NyaWJlKCk7XHJcblxyXG4gICAgdGhpcy50cmFuc2xhdGlvbkZpbGVzLnNwbGljZShpeCwgMSk7XHJcbiAgICB0aGlzLmZpbGVOYW1lcy5zcGxpY2UoaXgsIDEpO1xyXG5cclxuICAgIGlmICh0aGlzLnRyYW5zbGF0aW9uRmlsZXMubGVuZ3RoID09IDApIHtcclxuICAgICAgdGhpcy5jbGVhcigpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuaGFzQW55SW1hZ2VPclBkZigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG5cclxuICBkb3dubG9hZFRhcmdldCh0cmFuc2xhdGlvbkZpbGU6IElUcmFuc2xhdGlvbkZpbGUsIGZpbGVNZXRhOiBJRmlsZU1ldGEpIHtcclxuICAgIGlmICh0cmFuc2xhdGlvbkZpbGUuaXNEb3dubG9hZGluZykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdHJhbnNsYXRpb25GaWxlLmlzRG93bmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgY29uc3QgZG93bmxvYWRQYXJhbXM6IElEb3dubG9hZEZpbGVQYXJhbXMgPSB7XHJcbiAgICAgIGlkOiB0cmFuc2xhdGlvbkZpbGUuaWQsXHJcbiAgICAgIGZpbGVNZXRhOiBmaWxlTWV0YVxyXG4gICAgfTtcclxuICAgIHRoaXMuZmlsZUFwaS5kb3dubG9hZChkb3dubG9hZFBhcmFtcykuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICB0cmFuc2xhdGlvbkZpbGUuaXNEb3dubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICBzYXZlQXMocmVzcG9uc2UsIGZpbGVNZXRhID8gZmlsZU1ldGEuZmlsZU5hbWUgOiB0cmFuc2xhdGlvbkZpbGUub3JpZ2luYWxGaWxlTmFtZSk7XHJcbiAgICB9LCAoZXJyb3IpID0+IHtcclxuICAgICAgdGhpcy5vbkVycm9yKGVycm9yLCB0cmFuc2xhdGlvbkZpbGUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkb3dubG9hZFNvdXJjZSh0cmFuc2xhdGlvbkZpbGU6IElUcmFuc2xhdGlvbkZpbGUpIHtcclxuXHJcbiAgICBpZiAoIXRyYW5zbGF0aW9uRmlsZS5zb3VyY2VEb3dubG9hZEF2YWlsYWJsZSkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiU291cmNlIGRvd25sb2FkIHVuYXZhaWxhYmxlLlwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY29udmVydGVkRmlsZU5hbWUgPSB0aGlzLmNvbnZlcnRlZFNvdXJjZUZpbGVOYW1lKHRyYW5zbGF0aW9uRmlsZS5vcmlnaW5hbEZpbGVOYW1lKTtcclxuICAgIHRyYW5zbGF0aW9uRmlsZS5pc0Rvd25sb2FkaW5nU291cmNlID0gdHJ1ZTtcclxuICAgIGNvbnN0IGRvd25sb2FkUGFyYW1zOiBJRG93bmxvYWRGaWxlUGFyYW1zID0ge1xyXG4gICAgICBpZDogdHJhbnNsYXRpb25GaWxlLmlkLFxyXG4gICAgICBmaWxlTWV0YTogeyBmaWxlTmFtZTogY29udmVydGVkRmlsZU5hbWUgfVxyXG4gICAgfTtcclxuICAgIHRoaXMuZmlsZUFwaS5kb3dubG9hZChkb3dubG9hZFBhcmFtcykuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICB0cmFuc2xhdGlvbkZpbGUuaXNEb3dubG9hZGluZ1NvdXJjZSA9IGZhbHNlO1xyXG4gICAgICBzYXZlQXMocmVzcG9uc2UsIGNvbnZlcnRlZEZpbGVOYW1lKTtcclxuICAgIH0sIChlcnJvcikgPT4ge1xyXG4gICAgICB0aGlzLm9uRXJyb3IoZXJyb3IsIHRyYW5zbGF0aW9uRmlsZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBsb2FkRmlsZVByZXZpZXcoZmlsZTogRmlsZSk6IElUcmFuc2xhdGlvbkZpbGUge1xyXG4gICAgY29uc3QgZmlsZXNBbGxvd2VkID0gdGhpcy5jb25maWcuZmlsZUNvbmZpZy5udW1iZXJPZkZpbGVzQWxsb3dlZDtcclxuICAgIGNvbnN0IGZpbGVOYW1lID0gZmlsZS5uYW1lO1xyXG5cclxuICAgIGlmICh0aGlzLnRyYW5zbGF0aW9uRmlsZXMubGVuZ3RoID49IGZpbGVzQWxsb3dlZCkge1xyXG4gICAgICBjb25zdCBlcnJvckNvZGUgPSBcIkVSUk9SUy5cIiArIChmaWxlc0FsbG93ZWQgPiAxID8gXCJNQVhfTlVNQkVSX09GX0ZJTEVTXCIgOiBcIklOQ1JFQVNFX01BWF9OVU1CRVJfT0ZfRklMRVNcIik7XHJcbiAgICAgIHRoaXMuYWxlcnRzLmVycm9yKGVycm9yQ29kZSwgbnVsbCwgeyBsaW5rOiB0aGlzLmNvbmZpZy5jb3JlQ29uZmlnLnJlZ2lzdGVyTGluaywgbGltaXQ6IGZpbGVzQWxsb3dlZCB9KTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZmlsZU5hbWVzLmluY2x1ZGVzKGZpbGVOYW1lKSkge1xyXG4gICAgICB0aGlzLmFsZXJ0cy5lcnJvcihcIkVSUk9SUy5GSUxFX0FMUkVBRFlfQURERURcIiwgbnVsbCwgeyBmaWxlTmFtZTogZmlsZS5uYW1lIH0pO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZpbGVzVXBsb2FkaW5nLnB1c2goZmlsZU5hbWUpO1xyXG4gICAgY29uc3QgdHJhbnNsYXRpb25GaWxlOiBJVHJhbnNsYXRpb25GaWxlID0ge1xyXG4gICAgICBvcmlnaW5hbEZpbGVOYW1lOiBmaWxlTmFtZSxcclxuICAgICAgLy8gbmFtZTogZmlsZU5hbWUsXHJcbiAgICAgIG9yaWdpbmFsRXh0ZW5zaW9uOiBDb21tb24uZ2V0RmlsZUV4dGVuc2lvbihmaWxlTmFtZSksXHJcbiAgICAgIHRyYW5zbGF0aW9uU3RhdHVzczogVHJhbnNsYXRpb25TdGF0dXNzLlVQTE9BRElORyxcclxuICAgICAgZmlsZSxcclxuICAgICAgbWVzc2FnZXM6IFtdXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy50cmFuc2xhdGlvbkZpbGVzLnB1c2godHJhbnNsYXRpb25GaWxlKTtcclxuICAgIHRoaXMuZmlsZU5hbWVzLnB1c2goZmlsZU5hbWUpO1xyXG4gICAgY29uc3QgaXNJbWFnZSA9IHRoaXMuX3N1cHBvcnRlZEltYWdlRXh0ZW5zaW9ucy5pbmNsdWRlcyhDb21tb24uZ2V0RmlsZUV4dGVuc2lvbih0cmFuc2xhdGlvbkZpbGUub3JpZ2luYWxGaWxlTmFtZSkpO1xyXG4gICAgaWYgKGlzSW1hZ2UpIHtcclxuICAgICAgdGhpcy5hbnlJbWFnZUZpbGVMb2FkZWQgPSB0cnVlO1xyXG4gICAgICB0cmFuc2xhdGlvbkZpbGUuZmlsZVR5cGUgPSBGaWxlQ29udmVyc2lvblR5cGVzLklNQUdFO1xyXG4gICAgfVxyXG4gICAgY29uc3QgaXNQZGYgPSBcInBkZlwiID09PSBDb21tb24uZ2V0RmlsZUV4dGVuc2lvbih0cmFuc2xhdGlvbkZpbGUub3JpZ2luYWxGaWxlTmFtZSk7XHJcbiAgICBpZiAoaXNQZGYpIHtcclxuICAgICAgdGhpcy5hbnlQZGZGaWxlTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgdHJhbnNsYXRpb25GaWxlLmZpbGVUeXBlID0gRmlsZUNvbnZlcnNpb25UeXBlcy5QREY7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZpbGVBcGkuc291cmNlRmlsZVByZXZpZXcodHJhbnNsYXRpb25GaWxlKS5zdWJzY3JpYmUoKHJlc3ApID0+IHtcclxuICAgICAgaWYgKHJlc3AuaXNGaWxlUHJldmlld0xvYWRlZCkge1xyXG4gICAgICAgIHRyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXR1c3MgPSBUcmFuc2xhdGlvblN0YXR1c3MuVVBMT0FERUQ7XHJcbiAgICAgICAgdGhpcy5maWxlVXBsb2FkZWQoZmlsZU5hbWUpO1xyXG4gICAgICAgIHRoaXMuZmlsZVByZXZpZXdBbGVydHMoaXNQZGYsIHJlc3Aud29yZENvdW50KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLm9uRmlsZVByZXZpZXdMb2FkKHJlc3AsIHRyYW5zbGF0aW9uRmlsZSk7XHJcbiAgICB9LCAoZXJyb3IpID0+IHtcclxuICAgICAgdGhpcy5yZW1vdmUodHJhbnNsYXRpb25GaWxlKTtcclxuICAgICAgdGhpcy5hbGVydHMudW5oYW5kZWxlZEVycm9yKGVycm9yKTtcclxuICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0cmFuc2xhdGlvbkZpbGU7XHJcbiAgfVxyXG5cclxuICB0cmFuc2xhdGVCdXR0b25DbGljayhhY3RpdmU6IElBY3RpdmVEYXRhKSB7XHJcbiAgICB0aGlzLnRyYW5zbGF0aW9uU3RhcnRlZCA9IHRydWU7XHJcbiAgICB0aGlzLnRyYW5zbGF0aW9uRmlsZXMuZm9yRWFjaCgoZmlsZSkgPT4ge1xyXG4gICAgICB0aGlzLnN0YXJ0RmlsZVRyYW5zbGF0aW9uKGFjdGl2ZSwgZmlsZSk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgc3RhcnRGaWxlVHJhbnNsYXRpb24oYWN0aXZlU3lzdGVtOiBJQWN0aXZlRGF0YSwgdHJhbnNsYXRpb25GaWxlOiBJVHJhbnNsYXRpb25GaWxlKSB7XHJcbiAgICBpZiAoIXRoaXMuY2FuU3RhcnRUcmFuc2xhdGlvbih0cmFuc2xhdGlvbkZpbGUpKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJDb3VsZCBub3Qgc3RhcnQgZmlsZSB0cmFuc2xhdGlvbiFcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuYWN0aXZlU3lzdGVtID0gdGhpcy50bGRTeXN0ZW0uZ2V0QWN0aXZlU3lzdGVtT2JqKCk7XHJcbiAgICB0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRpb25TdGFydGVkID0gdHJ1ZTtcclxuICAgIHRyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGluZyA9IHRydWU7XHJcbiAgICAvLyBxdWl0ZSB3ZWlyZC4gUmVzcG9uc2UgY2FuIGJlIHN0cnVjdHVyZSB3aXRoIHN1Y2Nlc3MgYW5kIGVycm9yIHBhcmFtcyBhbmQgaXQgY2FuIGFsc28gYmUgcGxhaW4gc3RyaW5nIGluIHN1Y2Nlc3MuXHJcbiAgICBjb25zdCBwYXJhbXM6IElTdGFydEZpbGVUcmFuc2xhdGlvblBhcmFtcyA9IHtcclxuICAgICAgZmlsZTogdHJhbnNsYXRpb25GaWxlLFxyXG4gICAgICBzeXN0ZW06IGFjdGl2ZVN5c3RlbS5zeXN0ZW1cclxuICAgIH07XHJcbiAgICB0aGlzLmZpbGVBcGkuc3RhcnRUcmFuc2xhdGlvbihwYXJhbXMpLnBpcGUoXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgdGhpcy5maWxlQXBpRXJyb3IodHJhbnNsYXRpb25GaWxlLCBlcnJvcik7XHJcbiAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xyXG4gICAgICAgIC8vIHRocm93IGVycm9yO1xyXG4gICAgICB9KVxyXG4gICAgKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBzdHJpbmcpID0+IHtcclxuICAgICAgLy8gc29tZXRoaW5nIGdvbmUgd3JvbmdcclxuICAgICAgaWYgKCFyZXNwb25zZSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgdHJhbnNsYXRpb25GaWxlLmlkID0gcmVzcG9uc2U7XHJcbiAgICAgIHRyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXJ0ZWRPblNlcnZlciA9IHRydWU7XHJcblxyXG4gICAgICB0aGlzLmNoZWNrVHJhbnNsYXRpb25Qcm9ncmVzcyh0cmFuc2xhdGlvbkZpbGUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjb252ZXJ0ZWRTb3VyY2VGaWxlTmFtZShmaWxlTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHBvc3RGaXggPSBcIl9jb252ZXJ0ZWQuZG9jeFwiO1xyXG4gICAgZmlsZU5hbWUgPSBmaWxlTmFtZS5zbGljZSgwLCBmaWxlTmFtZS5sYXN0SW5kZXhPZihcIi5cIikpO1xyXG4gICAgY29uc3QgY29udmVydGVkRmlsZU5hbWUgPSBmaWxlTmFtZSArIHBvc3RGaXg7XHJcbiAgICByZXR1cm4gY29udmVydGVkRmlsZU5hbWU7XHJcbiAgfVxyXG5cclxuICBmaWxlVXBsb2FkRXJyb3IoZXJyb3I6IElGaWxlVXBsb2FkRXJyb3IpIHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHtcclxuICAgICAgZmlsZU5hbWU6IGVycm9yLmZpbGVOYW1lLFxyXG4gICAgICBtYXhTaXplTUI6IENvbW1vbi5ieXRlc1RvTWIodGhpcy5jb25maWcuZmlsZUNvbmZpZy5tYXhTaXplKSxcclxuICAgICAgZm9ybWF0czogdGhpcy5jb25maWcuZmlsZUNvbmZpZy5hbGxvd2VkRmlsZVR5cGVzLmpvaW4oXCIsIFwiKSxcclxuICAgICAgcmVnaXN0ZXJMaW5rOiB0aGlzLmNvbmZpZy5jb3JlQ29uZmlnLnJlZ2lzdGVyTGlua1xyXG4gICAgfVxyXG4gICAgdGhpcy5hbGVydHMuZXJyb3IoYEVSUk9SUy5GSUxFX1VQTE9BRC4ke2Vycm9yLmNvZGV9YCwgbnVsbCwgcGFyYW1zKTtcclxuICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gIH1cclxuXHJcbiAgLy8gY2hlY2tzIGFsbCBuZWNlc3NhcnkgcGFyYW1zIHRoYXQgYXJlIHJlc3BvbnNpYmxlIHdoZXRlciBpdCBpcyBhbGxvd2VkIHRvIHN0YXJ0IG5ldyB0cmFuc2xhdGlvbi5cclxuICBwcml2YXRlIGNhblN0YXJ0VHJhbnNsYXRpb24odHJhbnNsYXRpb25GaWxlOiBJVHJhbnNsYXRpb25GaWxlKSB7XHJcbiAgICByZXR1cm4gdHJhbnNsYXRpb25GaWxlLnRtcE5hbWUgJiYgIXRyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGluZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hlY2tUcmFuc2xhdGlvblByb2dyZXNzKHRyYW5zbGF0aW9uRmlsZTogSVRyYW5zbGF0aW9uRmlsZSkge1xyXG4gICAgY29uc3QgZmluaXNoZWRTdGF0dXMgPSBUcmFuc2xhdGlvblN0YXR1c3MuQ09NUExFVEVEO1xyXG4gICAgY29uc3QgcGFyYW1zOiBJR2V0RmlsZVN0YXR1c1BhcmFtcyA9IHtcclxuICAgICAgZmlsZTogdHJhbnNsYXRpb25GaWxlLFxyXG4gICAgICBzcmNMYW5nOiB0aGlzLmFjdGl2ZVN5c3RlbS5zb3VyY2VMYW5ndWFnZSxcclxuICAgICAgdHJnTGFuZzogdGhpcy5hY3RpdmVTeXN0ZW0udGFyZ2V0TGFuZ3VhZ2VcclxuICAgIH07XHJcbiAgICB0aGlzLmZpbGVBcGkuZ2V0U3RhdHVzKHBhcmFtcylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgLy8gSWYgbmV0d29yayBlcnJvciwgY2hlY2sgYWdhaW4gYmVjYXVzZSBmaWxlIGhhcyBub3QgZmFpbGVkLlxyXG4gICAgICAgIC8vIHRoaXMgY29kZSBuZWVkcyB0byBiZSB0ZXN0ZWQsIGJlY2F1c2UgY2FudCByZXBlYXQgaXRcclxuICAgICAgICByZXRyeVdoZW4oKG9ic2VydmFibGVzKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gb2JzZXJ2YWJsZXMucGlwZShcclxuICAgICAgICAgICAgbWVyZ2VNYXAoKGVycm9yLCBpKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGkgPCB0aGlzLl9uZXR3b3JrRXJyb3JNYXhSZXRyaWVzICYmIHRoaXMuX3JldHJ5RXJyb3JDb2Rlcy5pbmNsdWRlcyhlcnJvci5zdGF0dXMpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGltZXIodGhpcy5fZGVmYXVsdFN0YXR1c0NoZWNrVGltZW91dClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAocmVzcG9uc2U6IElHZXRGaWxlVHJhbnNsYXRpb25TdGF0dXNSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlLnN5c3RlbUlkICYmIHJlc3BvbnNlLnN5c3RlbUlkICE9PSB0aGlzLmFjdGl2ZVN5c3RlbS5pZCkge1xyXG4gICAgICAgICAgICB0aGlzLnRsZFN5c3RlbS5jaGFuZ2VTeXN0ZW0ocmVzcG9uc2Uuc3lzdGVtSWQsIGZhbHNlKTtcclxuICAgICAgICAgICAgdGhpcy5hY3RpdmVTeXN0ZW0gPSB0aGlzLnRsZFN5c3RlbS5nZXRBY3RpdmVTeXN0ZW1PYmooKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRpb25TdGF0dXNzID0gcmVzcG9uc2UudHJhbnNsYXRpb25TdGF0dXNzO1xyXG4gICAgICAgICAgdHJhbnNsYXRpb25GaWxlLnNvdXJjZURvd25sb2FkQXZhaWxhYmxlID0gcmVzcG9uc2Uuc291cmNlRG93bmxvYWRBdmFpbGFibGU7XHJcbiAgICAgICAgICB0cmFuc2xhdGlvbkZpbGUucHJvZ3Jlc3MgPSByZXNwb25zZS5wcm9ncmVzcztcclxuICAgICAgICAgIHRyYW5zbGF0aW9uRmlsZS5hdmFpbGFibGVFeHRlbnNpb25zID0gcmVzcG9uc2UuZXh0ZW5zaW9ucztcclxuICAgICAgICAgIGlmICh0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRpb25TdGF0dXNzID09IFRyYW5zbGF0aW9uU3RhdHVzcy5FUlJPUikge1xyXG4gICAgICAgICAgICBjb25zdCBlcnJvcjogSVRsZEVycm9yID0geyBFcnJvckNvZGU6IHJlc3BvbnNlLnN1YnN0YXR1cyA/PyBFcnJvckNvZGUuRV9GQUlMRURfSU5fVFJBTlNMQVRJT04gfTtcclxuICAgICAgICAgICAgdGhpcy5maWxlQXBpRXJyb3IodHJhbnNsYXRpb25GaWxlLCBlcnJvcik7XHJcbiAgICAgICAgICAgIC8vdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIGlmICh0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRpb25TdGF0dXNzID09PSBmaW5pc2hlZFN0YXR1cykge1xyXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZWRDb3VudCArPSAxO1xyXG4gICAgICAgICAgICAvL3RyYW5zbGF0aW9uRmlsZS5uYW1lID0gcmVzcG9uc2UubmFtZTtcclxuICAgICAgICAgICAgdHJhbnNsYXRpb25GaWxlLmRvd25sb2FkQXZhaWxhYmxlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgIGlmICghdGhpcy5tdWx0aXBsZUZpbGVVcGxvYWRBY3RpdmUpIHtcclxuICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZWREb2NQcmV2aWV3KHRyYW5zbGF0aW9uRmlsZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy90cmFuc2xhdGlvbkZpbGUuYXZhaWxhYmxlRXh0ZW5zaW9ucyA9IHRoaXMuZ2V0RXh0ZW5zaW9uQXJyYXkocmVzcG9uc2UudHJhbnNsYXRpb25zLCB0cmFuc2xhdGlvbkZpbGUubmFtZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IHRpbWVvdXQgPSB0aGlzLl9kZWZhdWx0U3RhdHVzQ2hlY2tUaW1lb3V0O1xyXG4gICAgICAgICAgICBpZiAodGhpcy5jb25maWcuZmlsZUNvbmZpZy5maWxlRG93bmxvYWRUaW1lb3V0cyAmJiB0aGlzLmNvbmZpZy5maWxlQ29uZmlnLmZpbGVEb3dubG9hZFRpbWVvdXRzW3RyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXR1c3NdKSB7XHJcbiAgICAgICAgICAgICAgdGltZW91dCA9IHRoaXMuY29uZmlnLmZpbGVDb25maWcuZmlsZURvd25sb2FkVGltZW91dHNbdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhdHVzc107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5fc3RhdHVzVGltZW91dHMgJiYgdGhpcy5fc3RhdHVzVGltZW91dHNbdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhdHVzc10pIHtcclxuICAgICAgICAgICAgICB0aW1lb3V0ID0gdGhpcy5fc3RhdHVzVGltZW91dHNbdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhdHVzc107XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmICghdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW5nKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuY2hlY2tUcmFuc2xhdGlvblByb2dyZXNzKHRyYW5zbGF0aW9uRmlsZSlcclxuICAgICAgICAgICAgfSwgdGltZW91dClcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhdHVzcyA9IFRyYW5zbGF0aW9uU3RhdHVzcy5FUlJPUjtcclxuICAgICAgICAgIHRoaXMub25UcmFuc2xhdGlvbkZpbGVFcnJvcih0cmFuc2xhdGlvbkZpbGUsIGVycm9yKTtcclxuICAgICAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkZpbGVQcmV2aWV3TG9hZChkYXRhOiBJU291cmNlRmlsZVByZXZpZXdSZXNwb25zZSwgdHJhbnNsYXRpb25GaWxlOiBJVHJhbnNsYXRpb25GaWxlKSB7XHJcbiAgICB0cmFuc2xhdGlvbkZpbGUuaXNGaWxlUHJldmlld0xvYWRlZCA9IGRhdGEuaXNGaWxlUHJldmlld0xvYWRlZDtcclxuICAgIHRyYW5zbGF0aW9uRmlsZS50bXBOYW1lID0gZGF0YS50bXBOYW1lO1xyXG4gICAgdHJhbnNsYXRpb25GaWxlLnNvdXJjZVByZXZpZXdIYXNIdG1sID0gZGF0YS5zb3VyY2VQcmV2aWV3SGFzSHRtbDtcclxuICAgIHRyYW5zbGF0aW9uRmlsZS5zb3VyY2VQcmV2aWV3ID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoZGF0YS5zb3VyY2VQcmV2aWV3KTtcclxuICAgIHRyYW5zbGF0aW9uRmlsZS5maWxlUHJldmlld1Byb2dyZXNzID0gZGF0YS5wZXJjZW50RG9uZTtcclxuXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHRyYW5zbGF0ZWREb2NQcmV2aWV3KHRyYW5zbGF0aW9uRmlsZTogSVRyYW5zbGF0aW9uRmlsZSkge1xyXG4gICAgY29uc3QgcGFyYW1zOiBJVHJhbnNsYXRlZERvY3VtZW50UHJldmlld1BhcmFtcyA9IHtcclxuICAgICAgZmlsZU5hbWU6IHRyYW5zbGF0aW9uRmlsZS5vcmlnaW5hbEZpbGVOYW1lLFxyXG4gICAgICB0cmFuc2xhdGlvbkRvY0lkOiB0cmFuc2xhdGlvbkZpbGUuaWRcclxuICAgIH07XHJcbiAgICB0aGlzLmZpbGVBcGkudHJhbnNsYXRlZERvY3VtZW50UHJldmlldyhwYXJhbXMpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiB7IHN1Y2Nlc3M6IGJvb2xlYW4sIGVycm9yPzogc3RyaW5nLCBzdGF0dXM6IHN0cmluZywgcHJldmlldzogc3RyaW5nIH0pID0+IHtcclxuICAgICAgICB0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRpbmcgPSBmYWxzZTtcclxuICAgICAgICBpZiAoIXJlc3BvbnNlLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IocmVzcG9uc2UuZXJyb3IpO1xyXG4gICAgICAgICAgdGhpcy5hbGVydHMudW5oYW5kZWxlZEVycm9yKHJlc3BvbnNlLmVycm9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChyZXNwb25zZS5wcmV2aWV3KSB7XHJcbiAgICAgICAgICB0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRlZFByZXZpZXcgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChyZXNwb25zZS5wcmV2aWV3KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRlZFByZXZpZXcgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmlsZUFwaUVycm9yKHRyYW5zbGF0aW9uRmlsZTogSVRyYW5zbGF0aW9uRmlsZSwgZXJyb3I6IGFueSkge1xyXG4gICAgY29uc29sZS5lcnJvcihlcnJvcik7XHJcbiAgICB0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRpbmcgPSBmYWxzZTtcclxuICAgIHRyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXR1c3MgPSBUcmFuc2xhdGlvblN0YXR1c3MuRVJST1I7XHJcbiAgICB0aGlzLm9uVHJhbnNsYXRpb25GaWxlRXJyb3IodHJhbnNsYXRpb25GaWxlLCBlcnJvcik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbGVQcmV2aWV3QWxlcnRzKGlzUGRmOiBib29sZWFuLCB3b3JkQ291bnQ6IG51bWJlcikge1xyXG4gICAgY29uc3QgbWF4V29yZENvdW50ID0gdGhpcy5jb25maWcuZmlsZUNvbmZpZy53b3JkTGltaXQ7XHJcbiAgICBjb25zdCBhbGVydFBhcmFtcyA9IHtcclxuICAgICAgcmVnaXN0ZXJMaW5rOiB0aGlzLmNvbmZpZy5jb3JlQ29uZmlnLnJlZ2lzdGVyTGluayxcclxuICAgICAgd29yZENvdW50OiBtYXhXb3JkQ291bnQsXHJcbiAgICAgIGFwcE5hbWU6IHRoaXMuY29uZmlnLmNvcmVDb25maWcuYXBwTmFtZVxyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLmNvbmZpZy5maWxlQ29uZmlnLnNob3dUcmFuc2xhdGlvbkxpbWl0cykge1xyXG4gICAgICBpZiAoaXNQZGYgJiYgdGhpcy5jb25maWcuZmlsZUNvbmZpZy5vY3JQYWdlTGltaXQpIHtcclxuICAgICAgICB0aGlzLmFsZXJ0cy53YXJuaW5nKFwiVExEX1RSQU5TTEFURS5QREZfUEFHRV9MSU1JVF9NU0dcIiwgYWxlcnRQYXJhbXMpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh3b3JkQ291bnQgJiYgbWF4V29yZENvdW50ICYmIHdvcmRDb3VudCA+IG1heFdvcmRDb3VudCkge1xyXG4gICAgICAgIHRoaXMuYWxlcnRzLndhcm5pbmcoXCJUTERfVFJBTlNMQVRFLkRPQ19XT1JEX0NOVF9MSU1JVF9NU0dcIiwgYWxlcnRQYXJhbXMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uRXJyb3IoZXJyb3I6IGFueSwgdHJhbnNsYXRpb25GaWxlOiBJVHJhbnNsYXRpb25GaWxlKSB7XHJcbiAgICBpZiAodHJhbnNsYXRpb25GaWxlKSB7XHJcbiAgICAgIHRyYW5zbGF0aW9uRmlsZS5pc0Rvd25sb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZXJyb3JGb3JNZXNzYWdlID0gZXJyb3Iuc3RhdHVzID09PSA0MDQgPyB7IEVycm9yQ29kZTogRmlsZVVwbG9hZEVycm9yVHlwZUVudW0uRV80MDQgfSA6IGVycm9yO1xyXG4gICAgdGhpcy5vblRyYW5zbGF0aW9uRmlsZUVycm9yKHRyYW5zbGF0aW9uRmlsZSwgZXJyb3JGb3JNZXNzYWdlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmlsZVVwbG9hZGVkKGZpbGVOYW1lOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGZpbGVJeCA9IHRoaXMuZmlsZXNVcGxvYWRpbmcuaW5kZXhPZihmaWxlTmFtZSk7XHJcbiAgICBpZiAoZmlsZUl4ID49IDApIHtcclxuICAgICAgdGhpcy5maWxlc1VwbG9hZGluZy5zcGxpY2UoZmlsZUl4LCAxKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZpbGVzVXBsb2FkaW5nLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLl9vbkZpbGVzVXBsb2FkZWQubmV4dChudWxsKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYXNBbnlJbWFnZU9yUGRmKCkge1xyXG4gICAgbGV0IGFueUltYWdlID0gZmFsc2U7XHJcbiAgICBsZXQgYW55UGRmID0gZmFsc2U7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHJhbnNsYXRpb25GaWxlcy5sZW5ndGggJiYgIShhbnlQZGYgJiYgYW55SW1hZ2UpOyBpKyspIHtcclxuICAgICAgY29uc3QgZmlsZSA9IHRoaXMudHJhbnNsYXRpb25GaWxlc1tpXTtcclxuICAgICAgaWYgKGZpbGUuZmlsZVR5cGUgPT09IEZpbGVDb252ZXJzaW9uVHlwZXMuSU1BR0UpIHtcclxuICAgICAgICBhbnlJbWFnZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoZmlsZS5maWxlVHlwZSA9PT0gRmlsZUNvbnZlcnNpb25UeXBlcy5QREYpIHtcclxuICAgICAgICBhbnlQZGYgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hbnlJbWFnZUZpbGVMb2FkZWQgPSBhbnlJbWFnZTtcclxuICAgIHRoaXMuYW55UGRmRmlsZUxvYWRlZCA9IGFueVBkZjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xlYXJQYXJhbXMoKSB7XHJcbiAgICB0aGlzLnRyYW5zbGF0aW9uU3RhcnRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy50cmFuc2xhdGlvbkZpbGVzID0gW107XHJcbiAgICB0aGlzLmFueVBkZkZpbGVMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuYW55SW1hZ2VGaWxlTG9hZGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmZpbGVOYW1lcyA9IFtdO1xyXG4gICAgdGhpcy50cmFuc2xhdGVkQ291bnQgPSAwO1xyXG4gICAgdGhpcy5maWxlc1VwbG9hZGluZyA9IFtdO1xyXG4gICAgdGhpcy5fb25DbGVhci5uZXh0KG51bGwpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uVHJhbnNsYXRpb25GaWxlRXJyb3IodHJhbnNsYXRpb25GaWxlOiBJVHJhbnNsYXRpb25GaWxlLCBlcnJvcjogYW55KSB7XHJcbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5hbGVydHMuZmluZEVycm9yVGl0bGVBbmRMb2NhbGl6YXRpb25LZXkoZXJyb3IpO1xyXG4gICAgY29uc3QgSW5saW5lTWVzc2FnZTogSW5saW5lTWVzc2FnZSA9IHtcclxuICAgICAgdGl0bGU6IG1lc3NhZ2UudGl0bGUsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiBtZXNzYWdlLmRlc2NyaXB0aW9uLFxyXG4gICAgICB0eXBlOiBJbmxpbmVNZXNzYWdlVHlwZS5FUlJPUixcclxuICAgICAgbG9jYWxpemF0aW9uUGFyYW1zOiB7IGZpbGVOYW1lOiB0cmFuc2xhdGlvbkZpbGUub3JpZ2luYWxGaWxlTmFtZSwgLi4udGhpcy5hbGVydHMuZGVmYXVsdFBhcmFtcyB9XHJcbiAgICB9O1xyXG4gICAgdHJhbnNsYXRpb25GaWxlLm1lc3NhZ2VzLnB1c2goSW5saW5lTWVzc2FnZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
400
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS1maWxlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtZG9jdW1lbnQvc2VydmljZXMvdGxkLXRyYW5zbGF0ZS1maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNwQyxPQUFPLEVBQWlCLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekUsT0FBTyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBcU8sTUFBTSx5QkFBeUIsQ0FBQztBQUsvUixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7O0FBTzVFLE1BQU0sT0FBTyx1QkFBdUI7SUFnQ2xDLFlBQ21ELE9BQXdCLEVBQ3hELE1BQXVCLEVBQ2hDLFNBQXVCLEVBQ3ZCLE1BQWlDLEVBQ3hCLFNBQTJCO1FBSkssWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFDeEQsV0FBTSxHQUFOLE1BQU0sQ0FBaUI7UUFDaEMsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUN2QixXQUFNLEdBQU4sTUFBTSxDQUEyQjtRQUN4QixjQUFTLEdBQVQsU0FBUyxDQUFr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QWlDLEVBQUUsS0FBVTtRQUMxRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGdDQUFnQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sYUFBYSxHQUFrQjtZQUNuQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7WUFDcEIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO1lBQ2hDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxLQUFLO1lBQzdCLGtCQUFrQixFQUFFLEVBQUUsUUFBUSxFQUFFLGVBQWUsQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFO1NBQ2pHLENBQUM7UUFDRixlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMvQyxDQUFDOztvSEFuYlUsdUJBQXVCLGtCQWlDeEIsc0JBQXNCO3dIQWpDckIsdUJBQXVCLGNBRnRCLE1BQU07MkZBRVAsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBa0NJLE1BQU07MkJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBzYXZlQXMgfSBmcm9tICdmaWxlLXNhdmVyJztcclxuaW1wb3J0IHsgSW5saW5lTWVzc2FnZSwgSW5saW5lTWVzc2FnZVR5cGUgfSBmcm9tICdAdGlsZGUtbmxwL25neC1jb21tb24nO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCwgdGhyb3dFcnJvciwgdGltZXIgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWVyZ2VNYXAsIHJldHJ5V2hlbiB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRklMRV9BUElfU0VSVklDRV9UT0tFTiB9IGZyb20gJy4uLy4uLy4uL2luamVjdGlvbi10b2tlbnMnO1xyXG5pbXBvcnQgeyBDb21tb24sIEVycm9yQ29kZSwgSURvd25sb2FkRmlsZVBhcmFtcywgSUZpbGVBcGlTZXJ2aWNlLCBJRmlsZU1ldGEsIElHZXRGaWxlU3RhdHVzUGFyYW1zLCBJR2V0RmlsZVRyYW5zbGF0aW9uU3RhdHVzUmVzcG9uc2UsIElSZW1vdmVGaWxlUGFyYW1zLCBJU291cmNlRmlsZVByZXZpZXdSZXNwb25zZSwgSVN0YXJ0RmlsZVRyYW5zbGF0aW9uUGFyYW1zLCBJVGxkRXJyb3IsIElUcmFuc2xhdGVkRG9jdW1lbnRQcmV2aWV3UGFyYW1zIH0gZnJvbSAnLi4vLi4vdGxkLWNvbW1vbi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBTeXN0ZW0gfSBmcm9tICcuLi8uLi90bGQtY29tbW9uL21vZGVscy9zZXJ2aWNlcy9zeXN0ZW0vc3lzdGVtLm1vZGVsJztcclxuaW1wb3J0IHsgVGxkQWxlcnRTZXJ2aWNlLCBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdGxkLWNvbW1vbi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IElBY3RpdmVEYXRhIH0gZnJvbSAnLi4vLi4vdGxkLXRvb2x0aXAvbW9kZWxzJztcclxuaW1wb3J0IHsgVGxkU3lzdGVtU2VydmljZSB9IGZyb20gJy4uLy4uL3RsZC10b29sdGlwL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25TdGF0dXNzIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgRmlsZUNvbnZlcnNpb25UeXBlcyB9IGZyb20gJy4uL21vZGVscy9maWxlLWNvbnZlcnNpb24tdHlwZXMubW9kZWwnO1xyXG5pbXBvcnQgeyBJVHJhbnNsYXRpb25GaWxlIH0gZnJvbSAnLi4vbW9kZWxzL3RyYW5zbGF0ZS1maWxlLm1vZGVsJztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZEVycm9yVHlwZUVudW0sIEZpbGVVcGxvYWRFcnJvciB9IGZyb20gJ0B0aWxkZS1ubHAvbmd4LWNvbW1vbic7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUbGRUcmFuc2xhdGVGaWxlU2VydmljZSB7XHJcblxyXG4gIHRyYW5zbGF0aW9uU3RhcnRlZDogYm9vbGVhbjtcclxuICAvKiogVmFsdWUgdG8gYmUgc2V0IHRvIHRydWUgd2hpbGUgbG9hZGluZyBzb3VyY2UgcHJldmlldy4gQXQgdGhhdCB0aW1lLCB0cmFuc2xhdGUgYnV0dG9uIHNob3VsZCBiZSBkaXNhYmxlZC4gKi9cclxuICBnZXQgaXNVcGxvYWRpbmdGaWxlKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5maWxlc1VwbG9hZGluZy5sZW5ndGggPiAwOyB9O1xyXG4gIHRyYW5zbGF0aW9uRmlsZXM6IElUcmFuc2xhdGlvbkZpbGVbXSA9IFtdO1xyXG4gIGZpbGVOYW1lczogc3RyaW5nW10gPSBbXTtcclxuICBmaWxlc0FkZGVkOiBudW1iZXI7XHJcbiAgYW55UGRmRmlsZUxvYWRlZDogYm9vbGVhbjtcclxuICBhbnlJbWFnZUZpbGVMb2FkZWQ6IGJvb2xlYW47XHJcbiAgLy9mb3IgbXVsdGlwbGUgZmlsZSBjb21wb25lbnRcclxuICB0cmFuc2xhdGVkQ291bnQ6IG51bWJlciA9IDA7XHJcbiAgbXVsdGlwbGVGaWxlVXBsb2FkQWN0aXZlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGdldCBkaXNhYmxlVHJhbnNsYXRlQnV0dG9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRpb25TdGFydGVkIHx8IHRoaXMuaXNVcGxvYWRpbmdGaWxlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfb25GaWxlc1VwbG9hZGVkID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIHByaXZhdGUgYWN0aXZlU3lzdGVtOiBTeXN0ZW07XHJcbiAgLy8gVE9ETy4gQ29uZmlndXJhYmxlP1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlZmF1bHRTdGF0dXNDaGVja1RpbWVvdXQgPSAxMDAwO1xyXG4gIC8vIDAgaXMgbmV0d29yayBlcnJvciwgc2hvdWxkIHRyeSBhZ2FpblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3JldHJ5RXJyb3JDb2RlcyA9IFswXTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9uZXR3b3JrRXJyb3JNYXhSZXRyaWVzID0gMjtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9zdGF0dXNUaW1lb3V0cyA9IHt9O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX29uQ2xlYXIgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfc3VwcG9ydGVkSW1hZ2VFeHRlbnNpb25zID0gW1wicG5nXCIsIFwianBnXCIsIFwianBlZ1wiLCBcImJtcFwiXTtcclxuICBwcml2YXRlIGZpbGVzVXBsb2FkaW5nOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHByaXZhdGUgbm90Rm91bmRFcnJvckNvZGUgPSBcIkVfNDA0XCI7XHJcbiAgcHJpdmF0ZSBub3RGb3VuZFJlbW92ZUVycm9yQ29kZSA9IFwiRV80MDRfUkVNT1ZFXCI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChGSUxFX0FQSV9TRVJWSUNFX1RPS0VOKSBwcml2YXRlIHJlYWRvbmx5IGZpbGVBcGk6IElGaWxlQXBpU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxlcnRzOiBUbGRBbGVydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxyXG4gICAgcHJpdmF0ZSBjb25maWc6IFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRsZFN5c3RlbTogVGxkU3lzdGVtU2VydmljZSkge1xyXG4gICAgdGhpcy5fc3RhdHVzVGltZW91dHNbVHJhbnNsYXRpb25TdGF0dXNzLkVYVFJBQ1RJTkddID0gMTAwMDtcclxuICAgIHRoaXMuX3N0YXR1c1RpbWVvdXRzW1RyYW5zbGF0aW9uU3RhdHVzcy5FWFRSQUNUSU5HXSA9IDEwMDA7XHJcbiAgICB0aGlzLl9zdGF0dXNUaW1lb3V0c1tUcmFuc2xhdGlvblN0YXR1c3MuSU5JVElBTElaSU5HXSA9IDEwMDA7XHJcbiAgICB0aGlzLl9zdGF0dXNUaW1lb3V0c1tUcmFuc2xhdGlvblN0YXR1c3MuUVVFVUlOR10gPSAxMDAwO1xyXG4gICAgdGhpcy5fc3RhdHVzVGltZW91dHNbVHJhbnNsYXRpb25TdGF0dXNzLlNBVklOR10gPSAxMDAwO1xyXG4gICAgdGhpcy5fc3RhdHVzVGltZW91dHNbVHJhbnNsYXRpb25TdGF0dXNzLlRSQU5TTEFUSU5HXSA9IDEwMDA7XHJcbiAgICB0aGlzLl9zdGF0dXNUaW1lb3V0c1tUcmFuc2xhdGlvblN0YXR1c3MuV0FJVElOR10gPSAxMDAwMDtcclxuICB9XHJcblxyXG4gIC8vIGNsZWFycyBhbGwgbG9hZGVkIGRhdGFcclxuICBjbGVhcigpIHtcclxuICAgIGNvbnN0IGZpbGVBcnIgPSB0aGlzLnRyYW5zbGF0aW9uRmlsZXM7XHJcbiAgICBmaWxlQXJyLmZvckVhY2goKGZpbGUpID0+IHtcclxuICAgICAgZmlsZS50cmFuc2xhdGluZyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnJlbW92ZShmaWxlKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuY2xlYXJQYXJhbXMoKTtcclxuICB9XHJcblxyXG4gIG9uQ2xlYXIoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9vbkNsZWFyLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgb25GaWxlc1VwbG9hZGVkKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fb25GaWxlc1VwbG9hZGVkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlKGZpbGU6IElUcmFuc2xhdGlvbkZpbGUpIHtcclxuICAgIC8vIGZpbGUudHJhbnNsYXRpbmcgbmVlZHMgdG8gYmUgc2V0LCBzbyBubyBvdGhlciBnZXQgc3RhdHVzIHJlcXVlc3RzIGFyZSBzZW50IHRvIHNlcnZlci5cclxuICAgIGZpbGUudHJhbnNsYXRpbmcgPSBmYWxzZTtcclxuICAgIGNvbnN0IGl4ID0gdGhpcy50cmFuc2xhdGlvbkZpbGVzLmluZGV4T2YoZmlsZSk7XHJcbiAgICBpZiAoaXggPCAwKSB7XHJcbiAgICAgIHRocm93IFwiQ2FuJ3QgcmVtb3ZlIGZpbGVcIjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwYXJhbXM6IElSZW1vdmVGaWxlUGFyYW1zID0ge1xyXG4gICAgICBmaWxlOiBmaWxlXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuZmlsZUFwaS5yZW1vdmUocGFyYW1zKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDA0KSB7XHJcbiAgICAgICAgICB0aGlzLmFsZXJ0cy51bmhhbmRlbGVkRXJyb3IoeyBFcnJvckNvZGU6IHRoaXMubm90Rm91bmRSZW1vdmVFcnJvckNvZGUgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBvZigpO1xyXG4gICAgICB9KVxyXG4gICAgKS5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICB0aGlzLnRyYW5zbGF0aW9uRmlsZXMuc3BsaWNlKGl4LCAxKTtcclxuICAgIHRoaXMuZmlsZU5hbWVzLnNwbGljZShpeCwgMSk7XHJcblxyXG4gICAgaWYgKHRoaXMudHJhbnNsYXRpb25GaWxlcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICB0aGlzLmNsZWFyKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5oYXNBbnlJbWFnZU9yUGRmKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGRvd25sb2FkVGFyZ2V0KHRyYW5zbGF0aW9uRmlsZTogSVRyYW5zbGF0aW9uRmlsZSwgZmlsZU1ldGE6IElGaWxlTWV0YSkge1xyXG4gICAgaWYgKHRyYW5zbGF0aW9uRmlsZS5pc0Rvd25sb2FkaW5nKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0cmFuc2xhdGlvbkZpbGUuaXNEb3dubG9hZGluZyA9IHRydWU7XHJcbiAgICBjb25zdCBkb3dubG9hZFBhcmFtczogSURvd25sb2FkRmlsZVBhcmFtcyA9IHtcclxuICAgICAgaWQ6IHRyYW5zbGF0aW9uRmlsZS5pZCxcclxuICAgICAgZmlsZU1ldGE6IGZpbGVNZXRhXHJcbiAgICB9O1xyXG4gICAgdGhpcy5maWxlQXBpLmRvd25sb2FkKGRvd25sb2FkUGFyYW1zKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIHRyYW5zbGF0aW9uRmlsZS5pc0Rvd25sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIHNhdmVBcyhyZXNwb25zZSwgZmlsZU1ldGEgPyBmaWxlTWV0YS5maWxlTmFtZSA6IHRyYW5zbGF0aW9uRmlsZS5vcmlnaW5hbEZpbGVOYW1lKTtcclxuICAgIH0sIChlcnJvcikgPT4ge1xyXG4gICAgICB0aGlzLm9uRXJyb3IoZXJyb3IsIHRyYW5zbGF0aW9uRmlsZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGRvd25sb2FkU291cmNlKHRyYW5zbGF0aW9uRmlsZTogSVRyYW5zbGF0aW9uRmlsZSkge1xyXG5cclxuICAgIGlmICghdHJhbnNsYXRpb25GaWxlLnNvdXJjZURvd25sb2FkQXZhaWxhYmxlKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJTb3VyY2UgZG93bmxvYWQgdW5hdmFpbGFibGUuXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb252ZXJ0ZWRGaWxlTmFtZSA9IHRoaXMuY29udmVydGVkU291cmNlRmlsZU5hbWUodHJhbnNsYXRpb25GaWxlLm9yaWdpbmFsRmlsZU5hbWUpO1xyXG4gICAgdHJhbnNsYXRpb25GaWxlLmlzRG93bmxvYWRpbmdTb3VyY2UgPSB0cnVlO1xyXG4gICAgY29uc3QgZG93bmxvYWRQYXJhbXM6IElEb3dubG9hZEZpbGVQYXJhbXMgPSB7XHJcbiAgICAgIGlkOiB0cmFuc2xhdGlvbkZpbGUuaWQsXHJcbiAgICAgIGZpbGVNZXRhOiB7IGZpbGVOYW1lOiBjb252ZXJ0ZWRGaWxlTmFtZSB9XHJcbiAgICB9O1xyXG4gICAgdGhpcy5maWxlQXBpLmRvd25sb2FkKGRvd25sb2FkUGFyYW1zKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIHRyYW5zbGF0aW9uRmlsZS5pc0Rvd25sb2FkaW5nU291cmNlID0gZmFsc2U7XHJcbiAgICAgIHNhdmVBcyhyZXNwb25zZSwgY29udmVydGVkRmlsZU5hbWUpO1xyXG4gICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgIHRoaXMub25FcnJvcihlcnJvciwgdHJhbnNsYXRpb25GaWxlKTtcclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIGxvYWRGaWxlUHJldmlldyhmaWxlOiBGaWxlKTogSVRyYW5zbGF0aW9uRmlsZSB7XHJcbiAgICBjb25zdCBmaWxlc0FsbG93ZWQgPSB0aGlzLmNvbmZpZy5maWxlQ29uZmlnLm51bWJlck9mRmlsZXNBbGxvd2VkO1xyXG4gICAgY29uc3QgZmlsZU5hbWUgPSBmaWxlLm5hbWU7XHJcblxyXG4gICAgaWYgKHRoaXMudHJhbnNsYXRpb25GaWxlcy5sZW5ndGggPj0gZmlsZXNBbGxvd2VkKSB7XHJcbiAgICAgIGNvbnN0IGVycm9yQ29kZSA9IFwiRVJST1JTLlwiICsgKGZpbGVzQWxsb3dlZCA+IDEgPyBcIk1BWF9OVU1CRVJfT0ZfRklMRVNcIiA6IFwiSU5DUkVBU0VfTUFYX05VTUJFUl9PRl9GSUxFU1wiKTtcclxuICAgICAgdGhpcy5hbGVydHMuZXJyb3IoZXJyb3JDb2RlLCBudWxsLCB7IGxpbms6IHRoaXMuY29uZmlnLmNvcmVDb25maWcucmVnaXN0ZXJMaW5rLCBsaW1pdDogZmlsZXNBbGxvd2VkIH0pO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5maWxlTmFtZXMuaW5jbHVkZXMoZmlsZU5hbWUpKSB7XHJcbiAgICAgIHRoaXMuYWxlcnRzLmVycm9yKFwiRVJST1JTLkZJTEVfQUxSRUFEWV9BRERFRFwiLCBudWxsLCB7IGZpbGVOYW1lOiBmaWxlLm5hbWUgfSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZmlsZXNVcGxvYWRpbmcucHVzaChmaWxlTmFtZSk7XHJcbiAgICBjb25zdCB0cmFuc2xhdGlvbkZpbGU6IElUcmFuc2xhdGlvbkZpbGUgPSB7XHJcbiAgICAgIG9yaWdpbmFsRmlsZU5hbWU6IGZpbGVOYW1lLFxyXG4gICAgICAvLyBuYW1lOiBmaWxlTmFtZSxcclxuICAgICAgb3JpZ2luYWxFeHRlbnNpb246IENvbW1vbi5nZXRGaWxlRXh0ZW5zaW9uKGZpbGVOYW1lKSxcclxuICAgICAgdHJhbnNsYXRpb25TdGF0dXNzOiBUcmFuc2xhdGlvblN0YXR1c3MuVVBMT0FESU5HLFxyXG4gICAgICBmaWxlLFxyXG4gICAgICBtZXNzYWdlczogW11cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnRyYW5zbGF0aW9uRmlsZXMucHVzaCh0cmFuc2xhdGlvbkZpbGUpO1xyXG4gICAgdGhpcy5maWxlTmFtZXMucHVzaChmaWxlTmFtZSk7XHJcbiAgICBjb25zdCBpc0ltYWdlID0gdGhpcy5fc3VwcG9ydGVkSW1hZ2VFeHRlbnNpb25zLmluY2x1ZGVzKENvbW1vbi5nZXRGaWxlRXh0ZW5zaW9uKHRyYW5zbGF0aW9uRmlsZS5vcmlnaW5hbEZpbGVOYW1lKSk7XHJcbiAgICBpZiAoaXNJbWFnZSkge1xyXG4gICAgICB0aGlzLmFueUltYWdlRmlsZUxvYWRlZCA9IHRydWU7XHJcbiAgICAgIHRyYW5zbGF0aW9uRmlsZS5maWxlVHlwZSA9IEZpbGVDb252ZXJzaW9uVHlwZXMuSU1BR0U7XHJcbiAgICB9XHJcbiAgICBjb25zdCBpc1BkZiA9IFwicGRmXCIgPT09IENvbW1vbi5nZXRGaWxlRXh0ZW5zaW9uKHRyYW5zbGF0aW9uRmlsZS5vcmlnaW5hbEZpbGVOYW1lKTtcclxuICAgIGlmIChpc1BkZikge1xyXG4gICAgICB0aGlzLmFueVBkZkZpbGVMb2FkZWQgPSB0cnVlO1xyXG4gICAgICB0cmFuc2xhdGlvbkZpbGUuZmlsZVR5cGUgPSBGaWxlQ29udmVyc2lvblR5cGVzLlBERjtcclxuICAgIH1cclxuICAgIHRoaXMuZmlsZUFwaS5zb3VyY2VGaWxlUHJldmlldyh0cmFuc2xhdGlvbkZpbGUpLnN1YnNjcmliZSgocmVzcCkgPT4ge1xyXG4gICAgICBpZiAocmVzcC5pc0ZpbGVQcmV2aWV3TG9hZGVkKSB7XHJcbiAgICAgICAgdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhdHVzcyA9IFRyYW5zbGF0aW9uU3RhdHVzcy5VUExPQURFRDtcclxuICAgICAgICB0aGlzLmZpbGVVcGxvYWRlZChmaWxlTmFtZSk7XHJcbiAgICAgICAgdGhpcy5maWxlUHJldmlld0FsZXJ0cyhpc1BkZiwgcmVzcC53b3JkQ291bnQpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMub25GaWxlUHJldmlld0xvYWQocmVzcCwgdHJhbnNsYXRpb25GaWxlKTtcclxuICAgIH0sIChlcnJvcikgPT4ge1xyXG4gICAgICB0aGlzLnJlbW92ZSh0cmFuc2xhdGlvbkZpbGUpO1xyXG4gICAgICB0aGlzLmFsZXJ0cy51bmhhbmRlbGVkRXJyb3IoZXJyb3IpO1xyXG4gICAgICB0aHJvdyBlcnJvcjtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRyYW5zbGF0aW9uRmlsZTtcclxuICB9XHJcblxyXG4gIHRyYW5zbGF0ZUJ1dHRvbkNsaWNrKGFjdGl2ZTogSUFjdGl2ZURhdGEpIHtcclxuICAgIHRoaXMudHJhbnNsYXRpb25TdGFydGVkID0gdHJ1ZTtcclxuICAgIHRoaXMudHJhbnNsYXRpb25GaWxlcy5mb3JFYWNoKChmaWxlKSA9PiB7XHJcbiAgICAgIHRoaXMuc3RhcnRGaWxlVHJhbnNsYXRpb24oYWN0aXZlLCBmaWxlKTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBzdGFydEZpbGVUcmFuc2xhdGlvbihhY3RpdmVTeXN0ZW06IElBY3RpdmVEYXRhLCB0cmFuc2xhdGlvbkZpbGU6IElUcmFuc2xhdGlvbkZpbGUpIHtcclxuICAgIGlmICghdGhpcy5jYW5TdGFydFRyYW5zbGF0aW9uKHRyYW5zbGF0aW9uRmlsZSkpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcIkNvdWxkIG5vdCBzdGFydCBmaWxlIHRyYW5zbGF0aW9uIVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hY3RpdmVTeXN0ZW0gPSB0aGlzLnRsZFN5c3RlbS5nZXRBY3RpdmVTeXN0ZW1PYmooKTtcclxuICAgIHRyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXJ0ZWQgPSB0cnVlO1xyXG4gICAgdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW5nID0gdHJ1ZTtcclxuICAgIC8vIHF1aXRlIHdlaXJkLiBSZXNwb25zZSBjYW4gYmUgc3RydWN0dXJlIHdpdGggc3VjY2VzcyBhbmQgZXJyb3IgcGFyYW1zIGFuZCBpdCBjYW4gYWxzbyBiZSBwbGFpbiBzdHJpbmcgaW4gc3VjY2Vzcy5cclxuICAgIGNvbnN0IHBhcmFtczogSVN0YXJ0RmlsZVRyYW5zbGF0aW9uUGFyYW1zID0ge1xyXG4gICAgICBmaWxlOiB0cmFuc2xhdGlvbkZpbGUsXHJcbiAgICAgIHN5c3RlbTogYWN0aXZlU3lzdGVtLnN5c3RlbVxyXG4gICAgfTtcclxuICAgIHRoaXMuZmlsZUFwaS5zdGFydFRyYW5zbGF0aW9uKHBhcmFtcykucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICB0aGlzLmZpbGVBcGlFcnJvcih0cmFuc2xhdGlvbkZpbGUsIGVycm9yKTtcclxuICAgICAgICByZXR1cm4gb2YobnVsbCk7XHJcbiAgICAgICAgLy8gdGhyb3cgZXJyb3I7XHJcbiAgICAgIH0pXHJcbiAgICApLnN1YnNjcmliZSgocmVzcG9uc2U6IHN0cmluZykgPT4ge1xyXG4gICAgICAvLyBzb21ldGhpbmcgZ29uZSB3cm9uZ1xyXG4gICAgICBpZiAoIXJlc3BvbnNlKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0cmFuc2xhdGlvbkZpbGUuaWQgPSByZXNwb25zZTtcclxuICAgICAgdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhcnRlZE9uU2VydmVyID0gdHJ1ZTtcclxuXHJcbiAgICAgIHRoaXMuY2hlY2tUcmFuc2xhdGlvblByb2dyZXNzKHRyYW5zbGF0aW9uRmlsZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNvbnZlcnRlZFNvdXJjZUZpbGVOYW1lKGZpbGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgcG9zdEZpeCA9IFwiX2NvbnZlcnRlZC5kb2N4XCI7XHJcbiAgICBmaWxlTmFtZSA9IGZpbGVOYW1lLnNsaWNlKDAsIGZpbGVOYW1lLmxhc3RJbmRleE9mKFwiLlwiKSk7XHJcbiAgICBjb25zdCBjb252ZXJ0ZWRGaWxlTmFtZSA9IGZpbGVOYW1lICsgcG9zdEZpeDtcclxuICAgIHJldHVybiBjb252ZXJ0ZWRGaWxlTmFtZTtcclxuICB9XHJcblxyXG4gIGZpbGVVcGxvYWRFcnJvcihlcnJvcjogRmlsZVVwbG9hZEVycm9yKSB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSB7XHJcbiAgICAgIGZpbGVOYW1lOiBlcnJvci5maWxlTmFtZSxcclxuICAgICAgbWF4U2l6ZU1COiBDb21tb24uYnl0ZXNUb01iKHRoaXMuY29uZmlnLmZpbGVDb25maWcubWF4U2l6ZSksXHJcbiAgICAgIGZvcm1hdHM6IHRoaXMuY29uZmlnLmZpbGVDb25maWcuYWxsb3dlZEZpbGVUeXBlcy5qb2luKFwiLCBcIiksXHJcbiAgICAgIHJlZ2lzdGVyTGluazogdGhpcy5jb25maWcuY29yZUNvbmZpZy5yZWdpc3RlckxpbmtcclxuICAgIH1cclxuICAgIHRoaXMuYWxlcnRzLmVycm9yKGBFUlJPUlMuRklMRV9VUExPQUQuJHtlcnJvci5jb2RlfWAsIG51bGwsIHBhcmFtcyk7XHJcbiAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICB9XHJcblxyXG4gIC8vIGNoZWNrcyBhbGwgbmVjZXNzYXJ5IHBhcmFtcyB0aGF0IGFyZSByZXNwb25zaWJsZSB3aGV0ZXIgaXQgaXMgYWxsb3dlZCB0byBzdGFydCBuZXcgdHJhbnNsYXRpb24uXHJcbiAgcHJpdmF0ZSBjYW5TdGFydFRyYW5zbGF0aW9uKHRyYW5zbGF0aW9uRmlsZTogSVRyYW5zbGF0aW9uRmlsZSkge1xyXG4gICAgcmV0dXJuIHRyYW5zbGF0aW9uRmlsZS50bXBOYW1lICYmICF0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRpbmc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNrVHJhbnNsYXRpb25Qcm9ncmVzcyh0cmFuc2xhdGlvbkZpbGU6IElUcmFuc2xhdGlvbkZpbGUpIHtcclxuICAgIGNvbnN0IGZpbmlzaGVkU3RhdHVzID0gVHJhbnNsYXRpb25TdGF0dXNzLkNPTVBMRVRFRDtcclxuICAgIGNvbnN0IHBhcmFtczogSUdldEZpbGVTdGF0dXNQYXJhbXMgPSB7XHJcbiAgICAgIGZpbGU6IHRyYW5zbGF0aW9uRmlsZSxcclxuICAgICAgc3JjTGFuZzogdGhpcy5hY3RpdmVTeXN0ZW0uc291cmNlTGFuZ3VhZ2UsXHJcbiAgICAgIHRyZ0xhbmc6IHRoaXMuYWN0aXZlU3lzdGVtLnRhcmdldExhbmd1YWdlXHJcbiAgICB9O1xyXG4gICAgdGhpcy5maWxlQXBpLmdldFN0YXR1cyhwYXJhbXMpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIC8vIElmIG5ldHdvcmsgZXJyb3IsIGNoZWNrIGFnYWluIGJlY2F1c2UgZmlsZSBoYXMgbm90IGZhaWxlZC5cclxuICAgICAgICAvLyB0aGlzIGNvZGUgbmVlZHMgdG8gYmUgdGVzdGVkLCBiZWNhdXNlIGNhbnQgcmVwZWF0IGl0XHJcbiAgICAgICAgcmV0cnlXaGVuKChvYnNlcnZhYmxlcykgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIG9ic2VydmFibGVzLnBpcGUoXHJcbiAgICAgICAgICAgIG1lcmdlTWFwKChlcnJvciwgaSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChpIDwgdGhpcy5fbmV0d29ya0Vycm9yTWF4UmV0cmllcyAmJiB0aGlzLl9yZXRyeUVycm9yQ29kZXMuaW5jbHVkZXMoZXJyb3Iuc3RhdHVzKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRpbWVyKHRoaXMuX2RlZmF1bHRTdGF0dXNDaGVja1RpbWVvdXQpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIClcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgKHJlc3BvbnNlOiBJR2V0RmlsZVRyYW5zbGF0aW9uU3RhdHVzUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZS5zeXN0ZW1JZCAmJiByZXNwb25zZS5zeXN0ZW1JZCAhPT0gdGhpcy5hY3RpdmVTeXN0ZW0uaWQpIHtcclxuICAgICAgICAgICAgdGhpcy50bGRTeXN0ZW0uY2hhbmdlU3lzdGVtKHJlc3BvbnNlLnN5c3RlbUlkLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlU3lzdGVtID0gdGhpcy50bGRTeXN0ZW0uZ2V0QWN0aXZlU3lzdGVtT2JqKCk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhdHVzcyA9IHJlc3BvbnNlLnRyYW5zbGF0aW9uU3RhdHVzcztcclxuICAgICAgICAgIHRyYW5zbGF0aW9uRmlsZS5zb3VyY2VEb3dubG9hZEF2YWlsYWJsZSA9IHJlc3BvbnNlLnNvdXJjZURvd25sb2FkQXZhaWxhYmxlO1xyXG4gICAgICAgICAgdHJhbnNsYXRpb25GaWxlLnByb2dyZXNzID0gcmVzcG9uc2UucHJvZ3Jlc3M7XHJcbiAgICAgICAgICB0cmFuc2xhdGlvbkZpbGUuYXZhaWxhYmxlRXh0ZW5zaW9ucyA9IHJlc3BvbnNlLmV4dGVuc2lvbnM7XHJcbiAgICAgICAgICBpZiAodHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhdHVzcyA9PSBUcmFuc2xhdGlvblN0YXR1c3MuRVJST1IpIHtcclxuICAgICAgICAgICAgY29uc3QgZXJyb3I6IElUbGRFcnJvciA9IHsgRXJyb3JDb2RlOiByZXNwb25zZS5zdWJzdGF0dXMgPz8gRXJyb3JDb2RlLkVfRkFJTEVEX0lOX1RSQU5TTEFUSU9OIH07XHJcbiAgICAgICAgICAgIHRoaXMuZmlsZUFwaUVycm9yKHRyYW5zbGF0aW9uRmlsZSwgZXJyb3IpO1xyXG4gICAgICAgICAgICAvL3Rocm93IGVycm9yO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSBpZiAodHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhdHVzcyA9PT0gZmluaXNoZWRTdGF0dXMpIHtcclxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVkQ291bnQgKz0gMTtcclxuICAgICAgICAgICAgLy90cmFuc2xhdGlvbkZpbGUubmFtZSA9IHJlc3BvbnNlLm5hbWU7XHJcbiAgICAgICAgICAgIHRyYW5zbGF0aW9uRmlsZS5kb3dubG9hZEF2YWlsYWJsZSA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICBpZiAoIXRoaXMubXVsdGlwbGVGaWxlVXBsb2FkQWN0aXZlKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVkRG9jUHJldmlldyh0cmFuc2xhdGlvbkZpbGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vdHJhbnNsYXRpb25GaWxlLmF2YWlsYWJsZUV4dGVuc2lvbnMgPSB0aGlzLmdldEV4dGVuc2lvbkFycmF5KHJlc3BvbnNlLnRyYW5zbGF0aW9ucywgdHJhbnNsYXRpb25GaWxlLm5hbWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCB0aW1lb3V0ID0gdGhpcy5fZGVmYXVsdFN0YXR1c0NoZWNrVGltZW91dDtcclxuICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlnLmZpbGVDb25maWcuZmlsZURvd25sb2FkVGltZW91dHMgJiYgdGhpcy5jb25maWcuZmlsZUNvbmZpZy5maWxlRG93bmxvYWRUaW1lb3V0c1t0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRpb25TdGF0dXNzXSkge1xyXG4gICAgICAgICAgICAgIHRpbWVvdXQgPSB0aGlzLmNvbmZpZy5maWxlQ29uZmlnLmZpbGVEb3dubG9hZFRpbWVvdXRzW3RyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXR1c3NdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuX3N0YXR1c1RpbWVvdXRzICYmIHRoaXMuX3N0YXR1c1RpbWVvdXRzW3RyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXR1c3NdKSB7XHJcbiAgICAgICAgICAgICAgdGltZW91dCA9IHRoaXMuX3N0YXR1c1RpbWVvdXRzW3RyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXR1c3NdO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICBpZiAoIXRyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGluZykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLmNoZWNrVHJhbnNsYXRpb25Qcm9ncmVzcyh0cmFuc2xhdGlvbkZpbGUpXHJcbiAgICAgICAgICAgIH0sIHRpbWVvdXQpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXR1c3MgPSBUcmFuc2xhdGlvblN0YXR1c3MuRVJST1I7XHJcbiAgICAgICAgICB0aGlzLm9uVHJhbnNsYXRpb25GaWxlRXJyb3IodHJhbnNsYXRpb25GaWxlLCBlcnJvcik7XHJcbiAgICAgICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25GaWxlUHJldmlld0xvYWQoZGF0YTogSVNvdXJjZUZpbGVQcmV2aWV3UmVzcG9uc2UsIHRyYW5zbGF0aW9uRmlsZTogSVRyYW5zbGF0aW9uRmlsZSkge1xyXG4gICAgdHJhbnNsYXRpb25GaWxlLmlzRmlsZVByZXZpZXdMb2FkZWQgPSBkYXRhLmlzRmlsZVByZXZpZXdMb2FkZWQ7XHJcbiAgICB0cmFuc2xhdGlvbkZpbGUudG1wTmFtZSA9IGRhdGEudG1wTmFtZTtcclxuICAgIHRyYW5zbGF0aW9uRmlsZS5zb3VyY2VQcmV2aWV3SGFzSHRtbCA9IGRhdGEuc291cmNlUHJldmlld0hhc0h0bWw7XHJcbiAgICB0cmFuc2xhdGlvbkZpbGUuc291cmNlUHJldmlldyA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGRhdGEuc291cmNlUHJldmlldyk7XHJcbiAgICB0cmFuc2xhdGlvbkZpbGUuZmlsZVByZXZpZXdQcm9ncmVzcyA9IGRhdGEucGVyY2VudERvbmU7XHJcblxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB0cmFuc2xhdGVkRG9jUHJldmlldyh0cmFuc2xhdGlvbkZpbGU6IElUcmFuc2xhdGlvbkZpbGUpIHtcclxuICAgIGNvbnN0IHBhcmFtczogSVRyYW5zbGF0ZWREb2N1bWVudFByZXZpZXdQYXJhbXMgPSB7XHJcbiAgICAgIGZpbGVOYW1lOiB0cmFuc2xhdGlvbkZpbGUub3JpZ2luYWxGaWxlTmFtZSxcclxuICAgICAgdHJhbnNsYXRpb25Eb2NJZDogdHJhbnNsYXRpb25GaWxlLmlkXHJcbiAgICB9O1xyXG4gICAgdGhpcy5maWxlQXBpLnRyYW5zbGF0ZWREb2N1bWVudFByZXZpZXcocGFyYW1zKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogeyBzdWNjZXNzOiBib29sZWFuLCBlcnJvcj86IHN0cmluZywgc3RhdHVzOiBzdHJpbmcsIHByZXZpZXc6IHN0cmluZyB9KSA9PiB7XHJcbiAgICAgICAgdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKCFyZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKHJlc3BvbnNlLmVycm9yKTtcclxuICAgICAgICAgIHRoaXMuYWxlcnRzLnVuaGFuZGVsZWRFcnJvcihyZXNwb25zZS5lcnJvcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocmVzcG9uc2UucHJldmlldykge1xyXG4gICAgICAgICAgdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0ZWRQcmV2aWV3ID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwocmVzcG9uc2UucHJldmlldyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0ZWRQcmV2aWV3ID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbGVBcGlFcnJvcih0cmFuc2xhdGlvbkZpbGU6IElUcmFuc2xhdGlvbkZpbGUsIGVycm9yOiBhbnkpIHtcclxuICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gICAgdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW5nID0gZmFsc2U7XHJcbiAgICB0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRpb25TdGF0dXNzID0gVHJhbnNsYXRpb25TdGF0dXNzLkVSUk9SO1xyXG4gICAgdGhpcy5vblRyYW5zbGF0aW9uRmlsZUVycm9yKHRyYW5zbGF0aW9uRmlsZSwgZXJyb3IpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaWxlUHJldmlld0FsZXJ0cyhpc1BkZjogYm9vbGVhbiwgd29yZENvdW50OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IG1heFdvcmRDb3VudCA9IHRoaXMuY29uZmlnLmZpbGVDb25maWcud29yZExpbWl0O1xyXG4gICAgY29uc3QgYWxlcnRQYXJhbXMgPSB7XHJcbiAgICAgIHJlZ2lzdGVyTGluazogdGhpcy5jb25maWcuY29yZUNvbmZpZy5yZWdpc3RlckxpbmssXHJcbiAgICAgIHdvcmRDb3VudDogbWF4V29yZENvdW50LFxyXG4gICAgICBhcHBOYW1lOiB0aGlzLmNvbmZpZy5jb3JlQ29uZmlnLmFwcE5hbWVcclxuICAgIH07XHJcbiAgICBpZiAodGhpcy5jb25maWcuZmlsZUNvbmZpZy5zaG93VHJhbnNsYXRpb25MaW1pdHMpIHtcclxuICAgICAgaWYgKGlzUGRmICYmIHRoaXMuY29uZmlnLmZpbGVDb25maWcub2NyUGFnZUxpbWl0KSB7XHJcbiAgICAgICAgdGhpcy5hbGVydHMud2FybmluZyhcIlRMRF9UUkFOU0xBVEUuUERGX1BBR0VfTElNSVRfTVNHXCIsIGFsZXJ0UGFyYW1zKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAod29yZENvdW50ICYmIG1heFdvcmRDb3VudCAmJiB3b3JkQ291bnQgPiBtYXhXb3JkQ291bnQpIHtcclxuICAgICAgICB0aGlzLmFsZXJ0cy53YXJuaW5nKFwiVExEX1RSQU5TTEFURS5ET0NfV09SRF9DTlRfTElNSVRfTVNHXCIsIGFsZXJ0UGFyYW1zKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkVycm9yKGVycm9yOiBhbnksIHRyYW5zbGF0aW9uRmlsZTogSVRyYW5zbGF0aW9uRmlsZSkge1xyXG4gICAgaWYgKHRyYW5zbGF0aW9uRmlsZSkge1xyXG4gICAgICB0cmFuc2xhdGlvbkZpbGUuaXNEb3dubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGVycm9yRm9yTWVzc2FnZSA9IGVycm9yLnN0YXR1cyA9PT0gNDA0ID8geyBFcnJvckNvZGU6IHRoaXMubm90Rm91bmRFcnJvckNvZGUgfSA6IGVycm9yO1xyXG4gICAgdGhpcy5vblRyYW5zbGF0aW9uRmlsZUVycm9yKHRyYW5zbGF0aW9uRmlsZSwgZXJyb3JGb3JNZXNzYWdlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmlsZVVwbG9hZGVkKGZpbGVOYW1lOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGZpbGVJeCA9IHRoaXMuZmlsZXNVcGxvYWRpbmcuaW5kZXhPZihmaWxlTmFtZSk7XHJcbiAgICBpZiAoZmlsZUl4ID49IDApIHtcclxuICAgICAgdGhpcy5maWxlc1VwbG9hZGluZy5zcGxpY2UoZmlsZUl4LCAxKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZpbGVzVXBsb2FkaW5nLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLl9vbkZpbGVzVXBsb2FkZWQubmV4dChudWxsKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYXNBbnlJbWFnZU9yUGRmKCkge1xyXG4gICAgbGV0IGFueUltYWdlID0gZmFsc2U7XHJcbiAgICBsZXQgYW55UGRmID0gZmFsc2U7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHJhbnNsYXRpb25GaWxlcy5sZW5ndGggJiYgIShhbnlQZGYgJiYgYW55SW1hZ2UpOyBpKyspIHtcclxuICAgICAgY29uc3QgZmlsZSA9IHRoaXMudHJhbnNsYXRpb25GaWxlc1tpXTtcclxuICAgICAgaWYgKGZpbGUuZmlsZVR5cGUgPT09IEZpbGVDb252ZXJzaW9uVHlwZXMuSU1BR0UpIHtcclxuICAgICAgICBhbnlJbWFnZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoZmlsZS5maWxlVHlwZSA9PT0gRmlsZUNvbnZlcnNpb25UeXBlcy5QREYpIHtcclxuICAgICAgICBhbnlQZGYgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hbnlJbWFnZUZpbGVMb2FkZWQgPSBhbnlJbWFnZTtcclxuICAgIHRoaXMuYW55UGRmRmlsZUxvYWRlZCA9IGFueVBkZjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xlYXJQYXJhbXMoKSB7XHJcbiAgICB0aGlzLnRyYW5zbGF0aW9uU3RhcnRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy50cmFuc2xhdGlvbkZpbGVzID0gW107XHJcbiAgICB0aGlzLmFueVBkZkZpbGVMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuYW55SW1hZ2VGaWxlTG9hZGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmZpbGVOYW1lcyA9IFtdO1xyXG4gICAgdGhpcy50cmFuc2xhdGVkQ291bnQgPSAwO1xyXG4gICAgdGhpcy5maWxlc1VwbG9hZGluZyA9IFtdO1xyXG4gICAgdGhpcy5fb25DbGVhci5uZXh0KG51bGwpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uVHJhbnNsYXRpb25GaWxlRXJyb3IodHJhbnNsYXRpb25GaWxlOiBJVHJhbnNsYXRpb25GaWxlLCBlcnJvcjogYW55KSB7XHJcbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5hbGVydHMuZmluZEVycm9yVGl0bGVBbmRMb2NhbGl6YXRpb25LZXkoZXJyb3IpO1xyXG4gICAgY29uc3QgSW5saW5lTWVzc2FnZTogSW5saW5lTWVzc2FnZSA9IHtcclxuICAgICAgdGl0bGU6IG1lc3NhZ2UudGl0bGUsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiBtZXNzYWdlLmRlc2NyaXB0aW9uLFxyXG4gICAgICB0eXBlOiBJbmxpbmVNZXNzYWdlVHlwZS5FUlJPUixcclxuICAgICAgbG9jYWxpemF0aW9uUGFyYW1zOiB7IGZpbGVOYW1lOiB0cmFuc2xhdGlvbkZpbGUub3JpZ2luYWxGaWxlTmFtZSwgLi4udGhpcy5hbGVydHMuZGVmYXVsdFBhcmFtcyB9XHJcbiAgICB9O1xyXG4gICAgdHJhbnNsYXRpb25GaWxlLm1lc3NhZ2VzLnB1c2goSW5saW5lTWVzc2FnZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -2,6 +2,7 @@ import { CommonModule } from '@angular/common';
2
2
  import { NgModule } from '@angular/core';
3
3
  import { FlexLayoutModule } from '@angular/flex-layout';
4
4
  import { TranslateModule } from '@ngx-translate/core';
5
+ import { FileUploadModule } from '@tilde-nlp/ngx-common';
5
6
  import { CloseButtonModule, InlineMessageModule } from '@tilde-nlp/ngx-common';
6
7
  import { VendorDisclaimerModule } from '../../components/shared/vendor-disclaimer/vendor-disclaimer.module';
7
8
  import { MaterialModule } from '../material.module';
@@ -28,7 +29,8 @@ TldDocumentModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versi
28
29
  MaterialModule,
29
30
  CloseButtonModule,
30
31
  InlineMessageModule,
31
- VendorDisclaimerModule], exports: [TldTranslateFileComponent,
32
+ VendorDisclaimerModule,
33
+ FileUploadModule], exports: [TldTranslateFileComponent,
32
34
  TldTranslateFileMultipleComponent,
33
35
  TldTranslateFileDownloadButtonComponent] });
34
36
  TldDocumentModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldDocumentModule, imports: [CommonModule,
@@ -38,7 +40,8 @@ TldDocumentModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versi
38
40
  MaterialModule,
39
41
  CloseButtonModule,
40
42
  InlineMessageModule,
41
- VendorDisclaimerModule] });
43
+ VendorDisclaimerModule,
44
+ FileUploadModule] });
42
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldDocumentModule, decorators: [{
43
46
  type: NgModule,
44
47
  args: [{
@@ -58,7 +61,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
58
61
  MaterialModule,
59
62
  CloseButtonModule,
60
63
  InlineMessageModule,
61
- VendorDisclaimerModule
64
+ VendorDisclaimerModule,
65
+ FileUploadModule
62
66
  ],
63
67
  exports: [
64
68
  TldTranslateFileComponent,
@@ -67,4 +71,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
67
71
  ]
68
72
  }]
69
73
  }] });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLWRvY3VtZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC1kb2N1bWVudC90bGQtZG9jdW1lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUM1RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3RHLE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ25ILE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzdHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHFFQUFxRSxDQUFDOztBQTRCeEgsTUFBTSxPQUFPLGlCQUFpQjs7OEdBQWpCLGlCQUFpQjsrR0FBakIsaUJBQWlCLGlCQXZCMUIseUJBQXlCO1FBQ3pCLGlDQUFpQztRQUNqQyx1Q0FBdUM7UUFDdkMsc0NBQXNDO1FBQ3RDLHdDQUF3QztRQUN4Qyw2QkFBNkIsYUFHN0IsWUFBWTtRQUNaLGVBQWU7UUFDZixlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLGNBQWM7UUFDZCxpQkFBaUI7UUFDakIsbUJBQW1CO1FBQ25CLHNCQUFzQixhQUd0Qix5QkFBeUI7UUFDekIsaUNBQWlDO1FBQ2pDLHVDQUF1QzsrR0FHOUIsaUJBQWlCLFlBZjFCLFlBQVk7UUFDWixlQUFlO1FBQ2YsZUFBZTtRQUNmLGdCQUFnQjtRQUNoQixjQUFjO1FBQ2QsaUJBQWlCO1FBQ2pCLG1CQUFtQjtRQUNuQixzQkFBc0I7MkZBUWIsaUJBQWlCO2tCQXpCN0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1oseUJBQXlCO3dCQUN6QixpQ0FBaUM7d0JBQ2pDLHVDQUF1Qzt3QkFDdkMsc0NBQXNDO3dCQUN0Qyx3Q0FBd0M7d0JBQ3hDLDZCQUE2QjtxQkFDOUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsc0JBQXNCO3FCQUN2QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AseUJBQXlCO3dCQUN6QixpQ0FBaUM7d0JBQ2pDLHVDQUF1QztxQkFDeEM7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQ2xvc2VCdXR0b25Nb2R1bGUsIElubGluZU1lc3NhZ2VNb2R1bGUgfSBmcm9tICdAdGlsZGUtbmxwL25neC1jb21tb24nO1xyXG5pbXBvcnQgeyBWZW5kb3JEaXNjbGFpbWVyTW9kdWxlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9zaGFyZWQvdmVuZG9yLWRpc2NsYWltZXIvdmVuZG9yLWRpc2NsYWltZXIubW9kdWxlJztcclxuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuLi9tYXRlcmlhbC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBUbGRDb21tb25Nb2R1bGUgfSBmcm9tICcuLi90bGQtY29tbW9uL3RsZC1jb21tb24ubW9kdWxlJztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlRmlsZUNvbXBvbmVudCB9IGZyb20gJy4uL3RsZC10cmFuc2xhdGUtZmlsZS90bGQtdHJhbnNsYXRlLWZpbGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlRmlsZURvd25sb2FkQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9kb3dubG9hZC1idXR0b24vZG93bmxvYWQtYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRsZFRyYW5zbGF0ZUltYWdlQ29udmVyc2lvbkhlbHBDb21wb25lbnQgfSBmcm9tICcuL2ltYWdlLWNvbnZlcnNpb24taGVscC9pbWFnZS1jb252ZXJzaW9uLWhlbHAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlUGRmQ29udmVyc2lvbkhlbHBDb21wb25lbnQgfSBmcm9tICcuL3BkZi1jb252ZXJzaW9uLWhlbHAvcGRmLWNvbnZlcnNpb24taGVscC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUbGRGaWxlVHJhbnNsYXRlQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vdGxkLWZpbGUtdHJhbnNsYXRlLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlRmlsZU11bHRpcGxlQ29tcG9uZW50IH0gZnJvbSAnLi90bGQtdHJhbnNsYXRlLWZpbGUtbXVsdGlwbGUvdGxkLXRyYW5zbGF0ZS1maWxlLW11bHRpcGxlLmNvbXBvbmVudCc7XHJcblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFRsZFRyYW5zbGF0ZUZpbGVDb21wb25lbnQsXHJcbiAgICBUbGRUcmFuc2xhdGVGaWxlTXVsdGlwbGVDb21wb25lbnQsXHJcbiAgICBUbGRUcmFuc2xhdGVGaWxlRG93bmxvYWRCdXR0b25Db21wb25lbnQsXHJcbiAgICBUbGRUcmFuc2xhdGVQZGZDb252ZXJzaW9uSGVscENvbXBvbmVudCxcclxuICAgIFRsZFRyYW5zbGF0ZUltYWdlQ29udmVyc2lvbkhlbHBDb21wb25lbnQsXHJcbiAgICBUbGRGaWxlVHJhbnNsYXRlQmFzZUNvbXBvbmVudFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgVGxkQ29tbW9uTW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgRmxleExheW91dE1vZHVsZSxcclxuICAgIE1hdGVyaWFsTW9kdWxlLFxyXG4gICAgQ2xvc2VCdXR0b25Nb2R1bGUsXHJcbiAgICBJbmxpbmVNZXNzYWdlTW9kdWxlLFxyXG4gICAgVmVuZG9yRGlzY2xhaW1lck1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgVGxkVHJhbnNsYXRlRmlsZUNvbXBvbmVudCxcclxuICAgIFRsZFRyYW5zbGF0ZUZpbGVNdWx0aXBsZUNvbXBvbmVudCxcclxuICAgIFRsZFRyYW5zbGF0ZUZpbGVEb3dubG9hZEJ1dHRvbkNvbXBvbmVudFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRsZERvY3VtZW50TW9kdWxlIHsgfVxyXG4iXX0=
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLWRvY3VtZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC1kb2N1bWVudC90bGQtZG9jdW1lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUM1RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3RHLE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ25ILE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzdHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHFFQUFxRSxDQUFDOztBQTZCeEgsTUFBTSxPQUFPLGlCQUFpQjs7OEdBQWpCLGlCQUFpQjsrR0FBakIsaUJBQWlCLGlCQXhCMUIseUJBQXlCO1FBQ3pCLGlDQUFpQztRQUNqQyx1Q0FBdUM7UUFDdkMsc0NBQXNDO1FBQ3RDLHdDQUF3QztRQUN4Qyw2QkFBNkIsYUFHN0IsWUFBWTtRQUNaLGVBQWU7UUFDZixlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLGNBQWM7UUFDZCxpQkFBaUI7UUFDakIsbUJBQW1CO1FBQ25CLHNCQUFzQjtRQUN0QixnQkFBZ0IsYUFHaEIseUJBQXlCO1FBQ3pCLGlDQUFpQztRQUNqQyx1Q0FBdUM7K0dBRzlCLGlCQUFpQixZQWhCMUIsWUFBWTtRQUNaLGVBQWU7UUFDZixlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLGNBQWM7UUFDZCxpQkFBaUI7UUFDakIsbUJBQW1CO1FBQ25CLHNCQUFzQjtRQUN0QixnQkFBZ0I7MkZBUVAsaUJBQWlCO2tCQTFCN0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1oseUJBQXlCO3dCQUN6QixpQ0FBaUM7d0JBQ2pDLHVDQUF1Qzt3QkFDdkMsc0NBQXNDO3dCQUN0Qyx3Q0FBd0M7d0JBQ3hDLDZCQUE2QjtxQkFDOUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsc0JBQXNCO3dCQUN0QixnQkFBZ0I7cUJBQ2pCO29CQUNELE9BQU8sRUFBRTt3QkFDUCx5QkFBeUI7d0JBQ3pCLGlDQUFpQzt3QkFDakMsdUNBQXVDO3FCQUN4QztpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZsZXhMYXlvdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mbGV4LWxheW91dCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBGaWxlVXBsb2FkTW9kdWxlIH0gZnJvbSAnQHRpbGRlLW5scC9uZ3gtY29tbW9uJztcclxuaW1wb3J0IHsgQ2xvc2VCdXR0b25Nb2R1bGUsIElubGluZU1lc3NhZ2VNb2R1bGUgfSBmcm9tICdAdGlsZGUtbmxwL25neC1jb21tb24nO1xyXG5pbXBvcnQgeyBWZW5kb3JEaXNjbGFpbWVyTW9kdWxlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9zaGFyZWQvdmVuZG9yLWRpc2NsYWltZXIvdmVuZG9yLWRpc2NsYWltZXIubW9kdWxlJztcclxuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuLi9tYXRlcmlhbC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBUbGRDb21tb25Nb2R1bGUgfSBmcm9tICcuLi90bGQtY29tbW9uL3RsZC1jb21tb24ubW9kdWxlJztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlRmlsZUNvbXBvbmVudCB9IGZyb20gJy4uL3RsZC10cmFuc2xhdGUtZmlsZS90bGQtdHJhbnNsYXRlLWZpbGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlRmlsZURvd25sb2FkQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9kb3dubG9hZC1idXR0b24vZG93bmxvYWQtYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRsZFRyYW5zbGF0ZUltYWdlQ29udmVyc2lvbkhlbHBDb21wb25lbnQgfSBmcm9tICcuL2ltYWdlLWNvbnZlcnNpb24taGVscC9pbWFnZS1jb252ZXJzaW9uLWhlbHAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlUGRmQ29udmVyc2lvbkhlbHBDb21wb25lbnQgfSBmcm9tICcuL3BkZi1jb252ZXJzaW9uLWhlbHAvcGRmLWNvbnZlcnNpb24taGVscC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUbGRGaWxlVHJhbnNsYXRlQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vdGxkLWZpbGUtdHJhbnNsYXRlLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlRmlsZU11bHRpcGxlQ29tcG9uZW50IH0gZnJvbSAnLi90bGQtdHJhbnNsYXRlLWZpbGUtbXVsdGlwbGUvdGxkLXRyYW5zbGF0ZS1maWxlLW11bHRpcGxlLmNvbXBvbmVudCc7XHJcblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFRsZFRyYW5zbGF0ZUZpbGVDb21wb25lbnQsXHJcbiAgICBUbGRUcmFuc2xhdGVGaWxlTXVsdGlwbGVDb21wb25lbnQsXHJcbiAgICBUbGRUcmFuc2xhdGVGaWxlRG93bmxvYWRCdXR0b25Db21wb25lbnQsXHJcbiAgICBUbGRUcmFuc2xhdGVQZGZDb252ZXJzaW9uSGVscENvbXBvbmVudCxcclxuICAgIFRsZFRyYW5zbGF0ZUltYWdlQ29udmVyc2lvbkhlbHBDb21wb25lbnQsXHJcbiAgICBUbGRGaWxlVHJhbnNsYXRlQmFzZUNvbXBvbmVudFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgVGxkQ29tbW9uTW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgRmxleExheW91dE1vZHVsZSxcclxuICAgIE1hdGVyaWFsTW9kdWxlLFxyXG4gICAgQ2xvc2VCdXR0b25Nb2R1bGUsXHJcbiAgICBJbmxpbmVNZXNzYWdlTW9kdWxlLFxyXG4gICAgVmVuZG9yRGlzY2xhaW1lck1vZHVsZSxcclxuICAgIEZpbGVVcGxvYWRNb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFRsZFRyYW5zbGF0ZUZpbGVDb21wb25lbnQsXHJcbiAgICBUbGRUcmFuc2xhdGVGaWxlTXVsdGlwbGVDb21wb25lbnQsXHJcbiAgICBUbGRUcmFuc2xhdGVGaWxlRG93bmxvYWRCdXR0b25Db21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUbGREb2N1bWVudE1vZHVsZSB7IH1cclxuIl19