@angular/core 18.2.7 → 18.2.9

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 (34) hide show
  1. package/esm2022/src/event_emitter.mjs +4 -1
  2. package/esm2022/src/interface/type.mjs +1 -1
  3. package/esm2022/src/linker/view_ref.mjs +1 -1
  4. package/esm2022/src/platform/bootstrap.mjs +8 -4
  5. package/esm2022/src/platform/platform_ref.mjs +6 -2
  6. package/esm2022/src/render3/after_render/manager.mjs +4 -1
  7. package/esm2022/src/render3/component_ref.mjs +1 -1
  8. package/esm2022/src/render3/definition.mjs +1 -1
  9. package/esm2022/src/render3/features/input_transforms_feature.mjs +1 -1
  10. package/esm2022/src/render3/view_ref.mjs +1 -1
  11. package/esm2022/src/version.mjs +1 -1
  12. package/esm2022/testing/src/application_error_handler.mjs +3 -3
  13. package/esm2022/testing/src/component_fixture.mjs +1 -1
  14. package/esm2022/testing/src/logger.mjs +3 -3
  15. package/fesm2022/core.mjs +21 -7
  16. package/fesm2022/core.mjs.map +1 -1
  17. package/fesm2022/primitives/event-dispatch.mjs +1 -1
  18. package/fesm2022/primitives/signals.mjs +1 -1
  19. package/fesm2022/rxjs-interop.mjs +1 -1
  20. package/fesm2022/testing.mjs +4 -4
  21. package/fesm2022/testing.mjs.map +1 -1
  22. package/index.d.ts +4 -20
  23. package/package.json +1 -1
  24. package/primitives/event-dispatch/index.d.ts +1 -1
  25. package/primitives/signals/index.d.ts +1 -1
  26. package/rxjs-interop/index.d.ts +1 -1
  27. package/schematics/migrations/after-render-phase/bundle.js +64 -22
  28. package/schematics/migrations/http-providers/bundle.js +64 -22
  29. package/schematics/migrations/invalid-two-way-bindings/bundle.js +64 -22
  30. package/schematics/ng-generate/control-flow-migration/bundle.js +64 -22
  31. package/schematics/ng-generate/inject-migration/bundle.js +64 -22
  32. package/schematics/ng-generate/route-lazy-loading/bundle.js +64 -22
  33. package/schematics/ng-generate/standalone-migration/bundle.js +107 -43
  34. package/testing/index.d.ts +3 -1
@@ -20,6 +20,9 @@ class EventEmitter_ extends Subject {
20
20
  // Attempt to retrieve a `DestroyRef` and `PendingTasks` optionally.
21
21
  // For backwards compatibility reasons, this cannot be required.
22
22
  if (isInInjectionContext()) {
23
+ // `DestroyRef` is optional because it is not available in all contexts.
24
+ // But it is useful to properly complete the `EventEmitter` if used with `outputToObservable`
25
+ // when the component/directive is destroyed. (See `outputToObservable` for more details.)
23
26
  this.destroyRef = inject(DestroyRef, { optional: true }) ?? undefined;
24
27
  this.pendingTasks = inject(PendingTasks, { optional: true }) ?? undefined;
25
28
  }
@@ -74,4 +77,4 @@ class EventEmitter_ extends Subject {
74
77
  * @publicApi
75
78
  */
76
79
  export const EventEmitter = EventEmitter_;
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRfZW1pdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2V2ZW50X2VtaXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFrQixPQUFPLEVBQUUsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRzVELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBZ0c3QyxNQUFNLGFBQWMsU0FBUSxPQUFZO0lBS3RDLFlBQVksVUFBbUIsS0FBSztRQUNsQyxLQUFLLEVBQUUsQ0FBQztRQUpWLGVBQVUsR0FBMkIsU0FBUyxDQUFDO1FBQzlCLGlCQUFZLEdBQTZCLFNBQVMsQ0FBQztRQUlsRSxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQztRQUV6QixvRUFBb0U7UUFDcEUsZ0VBQWdFO1FBQ2hFLElBQUksb0JBQW9CLEVBQUUsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQztZQUNwRSxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsSUFBSSxTQUFTLENBQUM7UUFDMUUsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLENBQUMsS0FBVztRQUNkLE1BQU0sWUFBWSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQztZQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEIsQ0FBQztnQkFBUyxDQUFDO1lBQ1QsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEMsQ0FBQztJQUNILENBQUM7SUFFUSxTQUFTLENBQUMsY0FBb0IsRUFBRSxLQUFXLEVBQUUsUUFBYztRQUNsRSxJQUFJLE1BQU0sR0FBRyxjQUFjLENBQUM7UUFDNUIsSUFBSSxPQUFPLEdBQUcsS0FBSyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsSUFBSSxVQUFVLEdBQUcsUUFBUSxDQUFDO1FBRTFCLElBQUksY0FBYyxJQUFJLE9BQU8sY0FBYyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3pELE1BQU0sUUFBUSxHQUFHLGNBQTBDLENBQUM7WUFDNUQsTUFBTSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3ZDLE9BQU8sR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6QyxVQUFVLEdBQUcsUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakQsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRXRDLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1gsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdEMsQ0FBQztZQUVELElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ2YsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDOUMsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDO1FBRW5GLElBQUksY0FBYyxZQUFZLFlBQVksRUFBRSxDQUFDO1lBQzNDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLGFBQWEsQ0FBQyxFQUEyQjtRQUMvQyxPQUFPLENBQUMsS0FBYyxFQUFFLEVBQUU7WUFDeEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUN4QyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDVixJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztvQkFDekIsSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3BDLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUlyQixhQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge3NldEFjdGl2ZUNvbnN1bWVyfSBmcm9tICdAYW5ndWxhci9jb3JlL3ByaW1pdGl2ZXMvc2lnbmFscyc7XG5pbXBvcnQge1BhcnRpYWxPYnNlcnZlciwgU3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtPdXRwdXRSZWZ9IGZyb20gJy4vYXV0aG9yaW5nL291dHB1dC9vdXRwdXRfcmVmJztcbmltcG9ydCB7aXNJbkluamVjdGlvbkNvbnRleHR9IGZyb20gJy4vZGkvY29udGV4dHVhbCc7XG5pbXBvcnQge2luamVjdH0gZnJvbSAnLi9kaS9pbmplY3Rvcl9jb21wYXRpYmlsaXR5JztcbmltcG9ydCB7RGVzdHJveVJlZn0gZnJvbSAnLi9saW5rZXIvZGVzdHJveV9yZWYnO1xuaW1wb3J0IHtQZW5kaW5nVGFza3N9IGZyb20gJy4vcGVuZGluZ190YXNrcyc7XG5cbi8qKlxuICogVXNlIGluIGNvbXBvbmVudHMgd2l0aCB0aGUgYEBPdXRwdXRgIGRpcmVjdGl2ZSB0byBlbWl0IGN1c3RvbSBldmVudHNcbiAqIHN5bmNocm9ub3VzbHkgb3IgYXN5bmNocm9ub3VzbHksIGFuZCByZWdpc3RlciBoYW5kbGVycyBmb3IgdGhvc2UgZXZlbnRzXG4gKiBieSBzdWJzY3JpYmluZyB0byBhbiBpbnN0YW5jZS5cbiAqXG4gKiBAdXNhZ2VOb3Rlc1xuICpcbiAqIEV4dGVuZHNcbiAqIFtSeEpTIGBTdWJqZWN0YF0oaHR0cHM6Ly9yeGpzLmRldi9hcGkvaW5kZXgvY2xhc3MvU3ViamVjdClcbiAqIGZvciBBbmd1bGFyIGJ5IGFkZGluZyB0aGUgYGVtaXQoKWAgbWV0aG9kLlxuICpcbiAqIEluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSwgYSBjb21wb25lbnQgZGVmaW5lcyB0d28gb3V0cHV0IHByb3BlcnRpZXNcbiAqIHRoYXQgY3JlYXRlIGV2ZW50IGVtaXR0ZXJzLiBXaGVuIHRoZSB0aXRsZSBpcyBjbGlja2VkLCB0aGUgZW1pdHRlclxuICogZW1pdHMgYW4gb3BlbiBvciBjbG9zZSBldmVudCB0byB0b2dnbGUgdGhlIGN1cnJlbnQgdmlzaWJpbGl0eSBzdGF0ZS5cbiAqXG4gKiBgYGBodG1sXG4gKiBAQ29tcG9uZW50KHtcbiAqICAgc2VsZWN0b3I6ICd6aXBweScsXG4gKiAgIHRlbXBsYXRlOiBgXG4gKiAgIDxkaXYgY2xhc3M9XCJ6aXBweVwiPlxuICogICAgIDxkaXYgKGNsaWNrKT1cInRvZ2dsZSgpXCI+VG9nZ2xlPC9kaXY+XG4gKiAgICAgPGRpdiBbaGlkZGVuXT1cIiF2aXNpYmxlXCI+XG4gKiAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gKiAgICAgPC9kaXY+XG4gKiAgPC9kaXY+YH0pXG4gKiBleHBvcnQgY2xhc3MgWmlwcHkge1xuICogICB2aXNpYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAqICAgQE91dHB1dCgpIG9wZW46IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICogICBAT3V0cHV0KCkgY2xvc2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICpcbiAqICAgdG9nZ2xlKCkge1xuICogICAgIHRoaXMudmlzaWJsZSA9ICF0aGlzLnZpc2libGU7XG4gKiAgICAgaWYgKHRoaXMudmlzaWJsZSkge1xuICogICAgICAgdGhpcy5vcGVuLmVtaXQobnVsbCk7XG4gKiAgICAgfSBlbHNlIHtcbiAqICAgICAgIHRoaXMuY2xvc2UuZW1pdChudWxsKTtcbiAqICAgICB9XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICpcbiAqIEFjY2VzcyB0aGUgZXZlbnQgb2JqZWN0IHdpdGggdGhlIGAkZXZlbnRgIGFyZ3VtZW50IHBhc3NlZCB0byB0aGUgb3V0cHV0IGV2ZW50XG4gKiBoYW5kbGVyOlxuICpcbiAqIGBgYGh0bWxcbiAqIDx6aXBweSAob3Blbik9XCJvbk9wZW4oJGV2ZW50KVwiIChjbG9zZSk9XCJvbkNsb3NlKCRldmVudClcIj48L3ppcHB5PlxuICogYGBgXG4gKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50RW1pdHRlcjxUPiBleHRlbmRzIFN1YmplY3Q8VD4sIE91dHB1dFJlZjxUPiB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIF9faXNBc3luYzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzIHRoYXQgY2FuXG4gICAqIGRlbGl2ZXIgZXZlbnRzIHN5bmNocm9ub3VzbHkgb3IgYXN5bmNocm9ub3VzbHkuXG4gICAqXG4gICAqIEBwYXJhbSBbaXNBc3luYz1mYWxzZV0gV2hlbiB0cnVlLCBkZWxpdmVyIGV2ZW50cyBhc3luY2hyb25vdXNseS5cbiAgICpcbiAgICovXG4gIG5ldyAoaXNBc3luYz86IGJvb2xlYW4pOiBFdmVudEVtaXR0ZXI8VD47XG5cbiAgLyoqXG4gICAqIEVtaXRzIGFuIGV2ZW50IGNvbnRhaW5pbmcgYSBnaXZlbiB2YWx1ZS5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB0byBlbWl0LlxuICAgKi9cbiAgZW1pdCh2YWx1ZT86IFQpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgaGFuZGxlcnMgZm9yIGV2ZW50cyBlbWl0dGVkIGJ5IHRoaXMgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSBuZXh0IFdoZW4gc3VwcGxpZWQsIGEgY3VzdG9tIGhhbmRsZXIgZm9yIGVtaXR0ZWQgZXZlbnRzLlxuICAgKiBAcGFyYW0gZXJyb3IgV2hlbiBzdXBwbGllZCwgYSBjdXN0b20gaGFuZGxlciBmb3IgYW4gZXJyb3Igbm90aWZpY2F0aW9uIGZyb20gdGhpcyBlbWl0dGVyLlxuICAgKiBAcGFyYW0gY29tcGxldGUgV2hlbiBzdXBwbGllZCwgYSBjdXN0b20gaGFuZGxlciBmb3IgYSBjb21wbGV0aW9uIG5vdGlmaWNhdGlvbiBmcm9tIHRoaXNcbiAgICogICAgIGVtaXR0ZXIuXG4gICAqL1xuICBzdWJzY3JpYmUoXG4gICAgbmV4dD86ICh2YWx1ZTogVCkgPT4gdm9pZCxcbiAgICBlcnJvcj86IChlcnJvcjogYW55KSA9PiB2b2lkLFxuICAgIGNvbXBsZXRlPzogKCkgPT4gdm9pZCxcbiAgKTogU3Vic2NyaXB0aW9uO1xuICAvKipcbiAgICogUmVnaXN0ZXJzIGhhbmRsZXJzIGZvciBldmVudHMgZW1pdHRlZCBieSB0aGlzIGluc3RhbmNlLlxuICAgKiBAcGFyYW0gb2JzZXJ2ZXJPck5leHQgV2hlbiBzdXBwbGllZCwgYSBjdXN0b20gaGFuZGxlciBmb3IgZW1pdHRlZCBldmVudHMsIG9yIGFuIG9ic2VydmVyXG4gICAqICAgICBvYmplY3QuXG4gICAqIEBwYXJhbSBlcnJvciBXaGVuIHN1cHBsaWVkLCBhIGN1c3RvbSBoYW5kbGVyIGZvciBhbiBlcnJvciBub3RpZmljYXRpb24gZnJvbSB0aGlzIGVtaXR0ZXIuXG4gICAqIEBwYXJhbSBjb21wbGV0ZSBXaGVuIHN1cHBsaWVkLCBhIGN1c3RvbSBoYW5kbGVyIGZvciBhIGNvbXBsZXRpb24gbm90aWZpY2F0aW9uIGZyb20gdGhpc1xuICAgKiAgICAgZW1pdHRlci5cbiAgICovXG4gIHN1YnNjcmliZShvYnNlcnZlck9yTmV4dD86IGFueSwgZXJyb3I/OiBhbnksIGNvbXBsZXRlPzogYW55KTogU3Vic2NyaXB0aW9uO1xufVxuXG5jbGFzcyBFdmVudEVtaXR0ZXJfIGV4dGVuZHMgU3ViamVjdDxhbnk+IGltcGxlbWVudHMgT3V0cHV0UmVmPGFueT4ge1xuICBfX2lzQXN5bmM6IGJvb2xlYW47IC8vIHRzbGludDpkaXNhYmxlLWxpbmVcbiAgZGVzdHJveVJlZjogRGVzdHJveVJlZiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSByZWFkb25seSBwZW5kaW5nVGFza3M6IFBlbmRpbmdUYXNrcyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihpc0FzeW5jOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX19pc0FzeW5jID0gaXNBc3luYztcblxuICAgIC8vIEF0dGVtcHQgdG8gcmV0cmlldmUgYSBgRGVzdHJveVJlZmAgYW5kIGBQZW5kaW5nVGFza3NgIG9wdGlvbmFsbHkuXG4gICAgLy8gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHJlYXNvbnMsIHRoaXMgY2Fubm90IGJlIHJlcXVpcmVkLlxuICAgIGlmIChpc0luSW5qZWN0aW9uQ29udGV4dCgpKSB7XG4gICAgICB0aGlzLmRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZiwge29wdGlvbmFsOiB0cnVlfSkgPz8gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5wZW5kaW5nVGFza3MgPSBpbmplY3QoUGVuZGluZ1Rhc2tzLCB7b3B0aW9uYWw6IHRydWV9KSA/PyB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgZW1pdCh2YWx1ZT86IGFueSkge1xuICAgIGNvbnN0IHByZXZDb25zdW1lciA9IHNldEFjdGl2ZUNvbnN1bWVyKG51bGwpO1xuICAgIHRyeSB7XG4gICAgICBzdXBlci5uZXh0KHZhbHVlKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2V0QWN0aXZlQ29uc3VtZXIocHJldkNvbnN1bWVyKTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSBzdWJzY3JpYmUob2JzZXJ2ZXJPck5leHQ/OiBhbnksIGVycm9yPzogYW55LCBjb21wbGV0ZT86IGFueSk6IFN1YnNjcmlwdGlvbiB7XG4gICAgbGV0IG5leHRGbiA9IG9ic2VydmVyT3JOZXh0O1xuICAgIGxldCBlcnJvckZuID0gZXJyb3IgfHwgKCgpID0+IG51bGwpO1xuICAgIGxldCBjb21wbGV0ZUZuID0gY29tcGxldGU7XG5cbiAgICBpZiAob2JzZXJ2ZXJPck5leHQgJiYgdHlwZW9mIG9ic2VydmVyT3JOZXh0ID09PSAnb2JqZWN0Jykge1xuICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBvYnNlcnZlck9yTmV4dCBhcyBQYXJ0aWFsT2JzZXJ2ZXI8dW5rbm93bj47XG4gICAgICBuZXh0Rm4gPSBvYnNlcnZlci5uZXh0Py5iaW5kKG9ic2VydmVyKTtcbiAgICAgIGVycm9yRm4gPSBvYnNlcnZlci5lcnJvcj8uYmluZChvYnNlcnZlcik7XG4gICAgICBjb21wbGV0ZUZuID0gb2JzZXJ2ZXIuY29tcGxldGU/LmJpbmQob2JzZXJ2ZXIpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9faXNBc3luYykge1xuICAgICAgZXJyb3JGbiA9IHRoaXMud3JhcEluVGltZW91dChlcnJvckZuKTtcblxuICAgICAgaWYgKG5leHRGbikge1xuICAgICAgICBuZXh0Rm4gPSB0aGlzLndyYXBJblRpbWVvdXQobmV4dEZuKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbXBsZXRlRm4pIHtcbiAgICAgICAgY29tcGxldGVGbiA9IHRoaXMud3JhcEluVGltZW91dChjb21wbGV0ZUZuKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBzaW5rID0gc3VwZXIuc3Vic2NyaWJlKHtuZXh0OiBuZXh0Rm4sIGVycm9yOiBlcnJvckZuLCBjb21wbGV0ZTogY29tcGxldGVGbn0pO1xuXG4gICAgaWYgKG9ic2VydmVyT3JOZXh0IGluc3RhbmNlb2YgU3Vic2NyaXB0aW9uKSB7XG4gICAgICBvYnNlcnZlck9yTmV4dC5hZGQoc2luayk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNpbms7XG4gIH1cblxuICBwcml2YXRlIHdyYXBJblRpbWVvdXQoZm46ICh2YWx1ZTogdW5rbm93bikgPT4gYW55KSB7XG4gICAgcmV0dXJuICh2YWx1ZTogdW5rbm93bikgPT4ge1xuICAgICAgY29uc3QgdGFza0lkID0gdGhpcy5wZW5kaW5nVGFza3M/LmFkZCgpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGZuKHZhbHVlKTtcbiAgICAgICAgaWYgKHRhc2tJZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5wZW5kaW5nVGFza3M/LnJlbW92ZSh0YXNrSWQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgY29uc3QgRXZlbnRFbWl0dGVyOiB7XG4gIG5ldyAoaXNBc3luYz86IGJvb2xlYW4pOiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgbmV3IDxUPihpc0FzeW5jPzogYm9vbGVhbik6IEV2ZW50RW1pdHRlcjxUPjtcbiAgcmVhZG9ubHkgcHJvdG90eXBlOiBFdmVudEVtaXR0ZXI8YW55Pjtcbn0gPSBFdmVudEVtaXR0ZXJfIGFzIGFueTtcbiJdfQ==
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRfZW1pdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2V2ZW50X2VtaXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFrQixPQUFPLEVBQUUsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRzVELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBZ0c3QyxNQUFNLGFBQWMsU0FBUSxPQUFZO0lBS3RDLFlBQVksVUFBbUIsS0FBSztRQUNsQyxLQUFLLEVBQUUsQ0FBQztRQUpWLGVBQVUsR0FBMkIsU0FBUyxDQUFDO1FBQzlCLGlCQUFZLEdBQTZCLFNBQVMsQ0FBQztRQUlsRSxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQztRQUV6QixvRUFBb0U7UUFDcEUsZ0VBQWdFO1FBQ2hFLElBQUksb0JBQW9CLEVBQUUsRUFBRSxDQUFDO1lBQzNCLHdFQUF3RTtZQUN4RSw2RkFBNkY7WUFDN0YsMEZBQTBGO1lBQzFGLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQztZQUNwRSxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsSUFBSSxTQUFTLENBQUM7UUFDMUUsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLENBQUMsS0FBVztRQUNkLE1BQU0sWUFBWSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQztZQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEIsQ0FBQztnQkFBUyxDQUFDO1lBQ1QsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEMsQ0FBQztJQUNILENBQUM7SUFFUSxTQUFTLENBQUMsY0FBb0IsRUFBRSxLQUFXLEVBQUUsUUFBYztRQUNsRSxJQUFJLE1BQU0sR0FBRyxjQUFjLENBQUM7UUFDNUIsSUFBSSxPQUFPLEdBQUcsS0FBSyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsSUFBSSxVQUFVLEdBQUcsUUFBUSxDQUFDO1FBRTFCLElBQUksY0FBYyxJQUFJLE9BQU8sY0FBYyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3pELE1BQU0sUUFBUSxHQUFHLGNBQTBDLENBQUM7WUFDNUQsTUFBTSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3ZDLE9BQU8sR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6QyxVQUFVLEdBQUcsUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakQsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRXRDLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1gsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdEMsQ0FBQztZQUVELElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ2YsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDOUMsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDO1FBRW5GLElBQUksY0FBYyxZQUFZLFlBQVksRUFBRSxDQUFDO1lBQzNDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLGFBQWEsQ0FBQyxFQUEyQjtRQUMvQyxPQUFPLENBQUMsS0FBYyxFQUFFLEVBQUU7WUFDeEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUN4QyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDVixJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztvQkFDekIsSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3BDLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUlyQixhQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge3NldEFjdGl2ZUNvbnN1bWVyfSBmcm9tICdAYW5ndWxhci9jb3JlL3ByaW1pdGl2ZXMvc2lnbmFscyc7XG5pbXBvcnQge1BhcnRpYWxPYnNlcnZlciwgU3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtPdXRwdXRSZWZ9IGZyb20gJy4vYXV0aG9yaW5nL291dHB1dC9vdXRwdXRfcmVmJztcbmltcG9ydCB7aXNJbkluamVjdGlvbkNvbnRleHR9IGZyb20gJy4vZGkvY29udGV4dHVhbCc7XG5pbXBvcnQge2luamVjdH0gZnJvbSAnLi9kaS9pbmplY3Rvcl9jb21wYXRpYmlsaXR5JztcbmltcG9ydCB7RGVzdHJveVJlZn0gZnJvbSAnLi9saW5rZXIvZGVzdHJveV9yZWYnO1xuaW1wb3J0IHtQZW5kaW5nVGFza3N9IGZyb20gJy4vcGVuZGluZ190YXNrcyc7XG5cbi8qKlxuICogVXNlIGluIGNvbXBvbmVudHMgd2l0aCB0aGUgYEBPdXRwdXRgIGRpcmVjdGl2ZSB0byBlbWl0IGN1c3RvbSBldmVudHNcbiAqIHN5bmNocm9ub3VzbHkgb3IgYXN5bmNocm9ub3VzbHksIGFuZCByZWdpc3RlciBoYW5kbGVycyBmb3IgdGhvc2UgZXZlbnRzXG4gKiBieSBzdWJzY3JpYmluZyB0byBhbiBpbnN0YW5jZS5cbiAqXG4gKiBAdXNhZ2VOb3Rlc1xuICpcbiAqIEV4dGVuZHNcbiAqIFtSeEpTIGBTdWJqZWN0YF0oaHR0cHM6Ly9yeGpzLmRldi9hcGkvaW5kZXgvY2xhc3MvU3ViamVjdClcbiAqIGZvciBBbmd1bGFyIGJ5IGFkZGluZyB0aGUgYGVtaXQoKWAgbWV0aG9kLlxuICpcbiAqIEluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSwgYSBjb21wb25lbnQgZGVmaW5lcyB0d28gb3V0cHV0IHByb3BlcnRpZXNcbiAqIHRoYXQgY3JlYXRlIGV2ZW50IGVtaXR0ZXJzLiBXaGVuIHRoZSB0aXRsZSBpcyBjbGlja2VkLCB0aGUgZW1pdHRlclxuICogZW1pdHMgYW4gb3BlbiBvciBjbG9zZSBldmVudCB0byB0b2dnbGUgdGhlIGN1cnJlbnQgdmlzaWJpbGl0eSBzdGF0ZS5cbiAqXG4gKiBgYGBodG1sXG4gKiBAQ29tcG9uZW50KHtcbiAqICAgc2VsZWN0b3I6ICd6aXBweScsXG4gKiAgIHRlbXBsYXRlOiBgXG4gKiAgIDxkaXYgY2xhc3M9XCJ6aXBweVwiPlxuICogICAgIDxkaXYgKGNsaWNrKT1cInRvZ2dsZSgpXCI+VG9nZ2xlPC9kaXY+XG4gKiAgICAgPGRpdiBbaGlkZGVuXT1cIiF2aXNpYmxlXCI+XG4gKiAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gKiAgICAgPC9kaXY+XG4gKiAgPC9kaXY+YH0pXG4gKiBleHBvcnQgY2xhc3MgWmlwcHkge1xuICogICB2aXNpYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAqICAgQE91dHB1dCgpIG9wZW46IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICogICBAT3V0cHV0KCkgY2xvc2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICpcbiAqICAgdG9nZ2xlKCkge1xuICogICAgIHRoaXMudmlzaWJsZSA9ICF0aGlzLnZpc2libGU7XG4gKiAgICAgaWYgKHRoaXMudmlzaWJsZSkge1xuICogICAgICAgdGhpcy5vcGVuLmVtaXQobnVsbCk7XG4gKiAgICAgfSBlbHNlIHtcbiAqICAgICAgIHRoaXMuY2xvc2UuZW1pdChudWxsKTtcbiAqICAgICB9XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICpcbiAqIEFjY2VzcyB0aGUgZXZlbnQgb2JqZWN0IHdpdGggdGhlIGAkZXZlbnRgIGFyZ3VtZW50IHBhc3NlZCB0byB0aGUgb3V0cHV0IGV2ZW50XG4gKiBoYW5kbGVyOlxuICpcbiAqIGBgYGh0bWxcbiAqIDx6aXBweSAob3Blbik9XCJvbk9wZW4oJGV2ZW50KVwiIChjbG9zZSk9XCJvbkNsb3NlKCRldmVudClcIj48L3ppcHB5PlxuICogYGBgXG4gKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50RW1pdHRlcjxUPiBleHRlbmRzIFN1YmplY3Q8VD4sIE91dHB1dFJlZjxUPiB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIF9faXNBc3luYzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzIHRoYXQgY2FuXG4gICAqIGRlbGl2ZXIgZXZlbnRzIHN5bmNocm9ub3VzbHkgb3IgYXN5bmNocm9ub3VzbHkuXG4gICAqXG4gICAqIEBwYXJhbSBbaXNBc3luYz1mYWxzZV0gV2hlbiB0cnVlLCBkZWxpdmVyIGV2ZW50cyBhc3luY2hyb25vdXNseS5cbiAgICpcbiAgICovXG4gIG5ldyAoaXNBc3luYz86IGJvb2xlYW4pOiBFdmVudEVtaXR0ZXI8VD47XG5cbiAgLyoqXG4gICAqIEVtaXRzIGFuIGV2ZW50IGNvbnRhaW5pbmcgYSBnaXZlbiB2YWx1ZS5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB0byBlbWl0LlxuICAgKi9cbiAgZW1pdCh2YWx1ZT86IFQpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgaGFuZGxlcnMgZm9yIGV2ZW50cyBlbWl0dGVkIGJ5IHRoaXMgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSBuZXh0IFdoZW4gc3VwcGxpZWQsIGEgY3VzdG9tIGhhbmRsZXIgZm9yIGVtaXR0ZWQgZXZlbnRzLlxuICAgKiBAcGFyYW0gZXJyb3IgV2hlbiBzdXBwbGllZCwgYSBjdXN0b20gaGFuZGxlciBmb3IgYW4gZXJyb3Igbm90aWZpY2F0aW9uIGZyb20gdGhpcyBlbWl0dGVyLlxuICAgKiBAcGFyYW0gY29tcGxldGUgV2hlbiBzdXBwbGllZCwgYSBjdXN0b20gaGFuZGxlciBmb3IgYSBjb21wbGV0aW9uIG5vdGlmaWNhdGlvbiBmcm9tIHRoaXNcbiAgICogICAgIGVtaXR0ZXIuXG4gICAqL1xuICBzdWJzY3JpYmUoXG4gICAgbmV4dD86ICh2YWx1ZTogVCkgPT4gdm9pZCxcbiAgICBlcnJvcj86IChlcnJvcjogYW55KSA9PiB2b2lkLFxuICAgIGNvbXBsZXRlPzogKCkgPT4gdm9pZCxcbiAgKTogU3Vic2NyaXB0aW9uO1xuICAvKipcbiAgICogUmVnaXN0ZXJzIGhhbmRsZXJzIGZvciBldmVudHMgZW1pdHRlZCBieSB0aGlzIGluc3RhbmNlLlxuICAgKiBAcGFyYW0gb2JzZXJ2ZXJPck5leHQgV2hlbiBzdXBwbGllZCwgYSBjdXN0b20gaGFuZGxlciBmb3IgZW1pdHRlZCBldmVudHMsIG9yIGFuIG9ic2VydmVyXG4gICAqICAgICBvYmplY3QuXG4gICAqIEBwYXJhbSBlcnJvciBXaGVuIHN1cHBsaWVkLCBhIGN1c3RvbSBoYW5kbGVyIGZvciBhbiBlcnJvciBub3RpZmljYXRpb24gZnJvbSB0aGlzIGVtaXR0ZXIuXG4gICAqIEBwYXJhbSBjb21wbGV0ZSBXaGVuIHN1cHBsaWVkLCBhIGN1c3RvbSBoYW5kbGVyIGZvciBhIGNvbXBsZXRpb24gbm90aWZpY2F0aW9uIGZyb20gdGhpc1xuICAgKiAgICAgZW1pdHRlci5cbiAgICovXG4gIHN1YnNjcmliZShvYnNlcnZlck9yTmV4dD86IGFueSwgZXJyb3I/OiBhbnksIGNvbXBsZXRlPzogYW55KTogU3Vic2NyaXB0aW9uO1xufVxuXG5jbGFzcyBFdmVudEVtaXR0ZXJfIGV4dGVuZHMgU3ViamVjdDxhbnk+IGltcGxlbWVudHMgT3V0cHV0UmVmPGFueT4ge1xuICBfX2lzQXN5bmM6IGJvb2xlYW47IC8vIHRzbGludDpkaXNhYmxlLWxpbmVcbiAgZGVzdHJveVJlZjogRGVzdHJveVJlZiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSByZWFkb25seSBwZW5kaW5nVGFza3M6IFBlbmRpbmdUYXNrcyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihpc0FzeW5jOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX19pc0FzeW5jID0gaXNBc3luYztcblxuICAgIC8vIEF0dGVtcHQgdG8gcmV0cmlldmUgYSBgRGVzdHJveVJlZmAgYW5kIGBQZW5kaW5nVGFza3NgIG9wdGlvbmFsbHkuXG4gICAgLy8gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHJlYXNvbnMsIHRoaXMgY2Fubm90IGJlIHJlcXVpcmVkLlxuICAgIGlmIChpc0luSW5qZWN0aW9uQ29udGV4dCgpKSB7XG4gICAgICAvLyBgRGVzdHJveVJlZmAgaXMgb3B0aW9uYWwgYmVjYXVzZSBpdCBpcyBub3QgYXZhaWxhYmxlIGluIGFsbCBjb250ZXh0cy5cbiAgICAgIC8vIEJ1dCBpdCBpcyB1c2VmdWwgdG8gcHJvcGVybHkgY29tcGxldGUgdGhlIGBFdmVudEVtaXR0ZXJgIGlmIHVzZWQgd2l0aCBgb3V0cHV0VG9PYnNlcnZhYmxlYFxuICAgICAgLy8gd2hlbiB0aGUgY29tcG9uZW50L2RpcmVjdGl2ZSBpcyBkZXN0cm95ZWQuIChTZWUgYG91dHB1dFRvT2JzZXJ2YWJsZWAgZm9yIG1vcmUgZGV0YWlscy4pXG4gICAgICB0aGlzLmRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZiwge29wdGlvbmFsOiB0cnVlfSkgPz8gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5wZW5kaW5nVGFza3MgPSBpbmplY3QoUGVuZGluZ1Rhc2tzLCB7b3B0aW9uYWw6IHRydWV9KSA/PyB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgZW1pdCh2YWx1ZT86IGFueSkge1xuICAgIGNvbnN0IHByZXZDb25zdW1lciA9IHNldEFjdGl2ZUNvbnN1bWVyKG51bGwpO1xuICAgIHRyeSB7XG4gICAgICBzdXBlci5uZXh0KHZhbHVlKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2V0QWN0aXZlQ29uc3VtZXIocHJldkNvbnN1bWVyKTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSBzdWJzY3JpYmUob2JzZXJ2ZXJPck5leHQ/OiBhbnksIGVycm9yPzogYW55LCBjb21wbGV0ZT86IGFueSk6IFN1YnNjcmlwdGlvbiB7XG4gICAgbGV0IG5leHRGbiA9IG9ic2VydmVyT3JOZXh0O1xuICAgIGxldCBlcnJvckZuID0gZXJyb3IgfHwgKCgpID0+IG51bGwpO1xuICAgIGxldCBjb21wbGV0ZUZuID0gY29tcGxldGU7XG5cbiAgICBpZiAob2JzZXJ2ZXJPck5leHQgJiYgdHlwZW9mIG9ic2VydmVyT3JOZXh0ID09PSAnb2JqZWN0Jykge1xuICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBvYnNlcnZlck9yTmV4dCBhcyBQYXJ0aWFsT2JzZXJ2ZXI8dW5rbm93bj47XG4gICAgICBuZXh0Rm4gPSBvYnNlcnZlci5uZXh0Py5iaW5kKG9ic2VydmVyKTtcbiAgICAgIGVycm9yRm4gPSBvYnNlcnZlci5lcnJvcj8uYmluZChvYnNlcnZlcik7XG4gICAgICBjb21wbGV0ZUZuID0gb2JzZXJ2ZXIuY29tcGxldGU/LmJpbmQob2JzZXJ2ZXIpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9faXNBc3luYykge1xuICAgICAgZXJyb3JGbiA9IHRoaXMud3JhcEluVGltZW91dChlcnJvckZuKTtcblxuICAgICAgaWYgKG5leHRGbikge1xuICAgICAgICBuZXh0Rm4gPSB0aGlzLndyYXBJblRpbWVvdXQobmV4dEZuKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbXBsZXRlRm4pIHtcbiAgICAgICAgY29tcGxldGVGbiA9IHRoaXMud3JhcEluVGltZW91dChjb21wbGV0ZUZuKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBzaW5rID0gc3VwZXIuc3Vic2NyaWJlKHtuZXh0OiBuZXh0Rm4sIGVycm9yOiBlcnJvckZuLCBjb21wbGV0ZTogY29tcGxldGVGbn0pO1xuXG4gICAgaWYgKG9ic2VydmVyT3JOZXh0IGluc3RhbmNlb2YgU3Vic2NyaXB0aW9uKSB7XG4gICAgICBvYnNlcnZlck9yTmV4dC5hZGQoc2luayk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNpbms7XG4gIH1cblxuICBwcml2YXRlIHdyYXBJblRpbWVvdXQoZm46ICh2YWx1ZTogdW5rbm93bikgPT4gYW55KSB7XG4gICAgcmV0dXJuICh2YWx1ZTogdW5rbm93bikgPT4ge1xuICAgICAgY29uc3QgdGFza0lkID0gdGhpcy5wZW5kaW5nVGFza3M/LmFkZCgpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGZuKHZhbHVlKTtcbiAgICAgICAgaWYgKHRhc2tJZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5wZW5kaW5nVGFza3M/LnJlbW92ZSh0YXNrSWQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgY29uc3QgRXZlbnRFbWl0dGVyOiB7XG4gIG5ldyAoaXNBc3luYz86IGJvb2xlYW4pOiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgbmV3IDxUPihpc0FzeW5jPzogYm9vbGVhbik6IEV2ZW50RW1pdHRlcjxUPjtcbiAgcmVhZG9ubHkgcHJvdG90eXBlOiBFdmVudEVtaXR0ZXI8YW55Pjtcbn0gPSBFdmVudEVtaXR0ZXJfIGFzIGFueTtcbiJdfQ==
@@ -19,4 +19,4 @@ export const Type = Function;
19
19
  export function isType(v) {
20
20
  return typeof v === 'function';
21
21
  }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2ludGVyZmFjZS90eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVIOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUM7QUFFN0IsTUFBTSxVQUFVLE1BQU0sQ0FBQyxDQUFNO0lBQzNCLE9BQU8sT0FBTyxDQUFDLEtBQUssVUFBVSxDQUFDO0FBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZVxuICovXG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogUmVwcmVzZW50cyBhIHR5cGUgdGhhdCBhIENvbXBvbmVudCBvciBvdGhlciBvYmplY3QgaXMgaW5zdGFuY2VzIG9mLlxuICpcbiAqIEFuIGV4YW1wbGUgb2YgYSBgVHlwZWAgaXMgYE15Q3VzdG9tQ29tcG9uZW50YCBjbGFzcywgd2hpY2ggaW4gSmF2YVNjcmlwdCBpcyByZXByZXNlbnRlZCBieVxuICogdGhlIGBNeUN1c3RvbUNvbXBvbmVudGAgY29uc3RydWN0b3IgZnVuY3Rpb24uXG4gKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgY29uc3QgVHlwZSA9IEZ1bmN0aW9uO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNUeXBlKHY6IGFueSk6IHYgaXMgVHlwZTxhbnk+IHtcbiAgcmV0dXJuIHR5cGVvZiB2ID09PSAnZnVuY3Rpb24nO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIFJlcHJlc2VudHMgYW4gYWJzdHJhY3QgY2xhc3MgYFRgLCBpZiBhcHBsaWVkIHRvIGEgY29uY3JldGUgY2xhc3MgaXQgd291bGQgc3RvcCBiZWluZ1xuICogaW5zdGFudGlhYmxlLlxuICpcbiAqIEBwdWJsaWNBcGlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBYnN0cmFjdFR5cGU8VD4gZXh0ZW5kcyBGdW5jdGlvbiB7XG4gIHByb3RvdHlwZTogVDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlPFQ+IGV4dGVuZHMgRnVuY3Rpb24ge1xuICBuZXcgKC4uLmFyZ3M6IGFueVtdKTogVDtcbn1cblxuZXhwb3J0IHR5cGUgTXV0YWJsZTxUIGV4dGVuZHMge1t4OiBzdHJpbmddOiBhbnl9LCBLIGV4dGVuZHMgc3RyaW5nPiA9IHtcbiAgW1AgaW4gS106IFRbUF07XG59O1xuXG4vKipcbiAqIFJldHVybnMgYSB3cml0YWJsZSB0eXBlIHZlcnNpb24gb2YgdHlwZS5cbiAqXG4gKiBVU0FHRTpcbiAqIEdpdmVuOlxuICogYGBgXG4gKiBpbnRlcmZhY2UgUGVyc29uIHtyZWFkb25seSBuYW1lOiBzdHJpbmd9XG4gKiBgYGBcbiAqXG4gKiBXZSB3b3VsZCBsaWtlIHRvIGdldCBhIHJlYWQvd3JpdGUgdmVyc2lvbiBvZiBgUGVyc29uYC5cbiAqIGBgYFxuICogY29uc3QgV3JpdGFibGVQZXJzb24gPSBXcml0YWJsZTxQZXJzb24+O1xuICogYGBgXG4gKlxuICogVGhlIHJlc3VsdCBpcyB0aGF0IHlvdSBjYW4gZG86XG4gKlxuICogYGBgXG4gKiBjb25zdCByZWFkb25seVBlcnNvbjogUGVyc29uID0ge25hbWU6ICdNYXJyeSd9O1xuICogcmVhZG9ubHlQZXJzb24ubmFtZSA9ICdKb2huJzsgLy8gVHlwZUVycm9yXG4gKiAocmVhZG9ubHlQZXJzb24gYXMgV3JpdGFibGVQZXJzb24pLm5hbWUgPSAnSm9obic7IC8vIE9LXG4gKlxuICogLy8gRXJyb3I6IENvcnJlY3RseSBkZXRlY3RzIHRoYXQgYFBlcnNvbmAgZGlkIG5vdCBoYXZlIGBhZ2VgIHByb3BlcnR5LlxuICogKHJlYWRvbmx5UGVyc29uIGFzIFdyaXRhYmxlUGVyc29uKS5hZ2UgPSAzMDtcbiAqIGBgYFxuICovXG5leHBvcnQgdHlwZSBXcml0YWJsZTxUPiA9IHtcbiAgLXJlYWRvbmx5IFtLIGluIGtleW9mIFRdOiBUW0tdO1xufTtcbiJdfQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2ludGVyZmFjZS90eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVIOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUM7QUFFN0IsTUFBTSxVQUFVLE1BQU0sQ0FBQyxDQUFNO0lBQzNCLE9BQU8sT0FBTyxDQUFDLEtBQUssVUFBVSxDQUFDO0FBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZVxuICovXG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogUmVwcmVzZW50cyBhIHR5cGUgdGhhdCBhIENvbXBvbmVudCBvciBvdGhlciBvYmplY3QgaXMgaW5zdGFuY2VzIG9mLlxuICpcbiAqIEFuIGV4YW1wbGUgb2YgYSBgVHlwZWAgaXMgYE15Q3VzdG9tQ29tcG9uZW50YCBjbGFzcywgd2hpY2ggaW4gSmF2YVNjcmlwdCBpcyByZXByZXNlbnRlZCBieVxuICogdGhlIGBNeUN1c3RvbUNvbXBvbmVudGAgY29uc3RydWN0b3IgZnVuY3Rpb24uXG4gKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgY29uc3QgVHlwZSA9IEZ1bmN0aW9uO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNUeXBlKHY6IGFueSk6IHYgaXMgVHlwZTxhbnk+IHtcbiAgcmV0dXJuIHR5cGVvZiB2ID09PSAnZnVuY3Rpb24nO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIFJlcHJlc2VudHMgYW4gYWJzdHJhY3QgY2xhc3MgYFRgLCBpZiBhcHBsaWVkIHRvIGEgY29uY3JldGUgY2xhc3MgaXQgd291bGQgc3RvcCBiZWluZ1xuICogaW5zdGFudGlhYmxlLlxuICpcbiAqIEBwdWJsaWNBcGlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBYnN0cmFjdFR5cGU8VD4gZXh0ZW5kcyBGdW5jdGlvbiB7XG4gIHByb3RvdHlwZTogVDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlPFQ+IGV4dGVuZHMgRnVuY3Rpb24ge1xuICBuZXcgKC4uLmFyZ3M6IGFueVtdKTogVDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgd3JpdGFibGUgdHlwZSB2ZXJzaW9uIG9mIHR5cGUuXG4gKlxuICogVVNBR0U6XG4gKiBHaXZlbjpcbiAqIGBgYFxuICogaW50ZXJmYWNlIFBlcnNvbiB7cmVhZG9ubHkgbmFtZTogc3RyaW5nfVxuICogYGBgXG4gKlxuICogV2Ugd291bGQgbGlrZSB0byBnZXQgYSByZWFkL3dyaXRlIHZlcnNpb24gb2YgYFBlcnNvbmAuXG4gKiBgYGBcbiAqIGNvbnN0IFdyaXRhYmxlUGVyc29uID0gV3JpdGFibGU8UGVyc29uPjtcbiAqIGBgYFxuICpcbiAqIFRoZSByZXN1bHQgaXMgdGhhdCB5b3UgY2FuIGRvOlxuICpcbiAqIGBgYFxuICogY29uc3QgcmVhZG9ubHlQZXJzb246IFBlcnNvbiA9IHtuYW1lOiAnTWFycnknfTtcbiAqIHJlYWRvbmx5UGVyc29uLm5hbWUgPSAnSm9obic7IC8vIFR5cGVFcnJvclxuICogKHJlYWRvbmx5UGVyc29uIGFzIFdyaXRhYmxlUGVyc29uKS5uYW1lID0gJ0pvaG4nOyAvLyBPS1xuICpcbiAqIC8vIEVycm9yOiBDb3JyZWN0bHkgZGV0ZWN0cyB0aGF0IGBQZXJzb25gIGRpZCBub3QgaGF2ZSBgYWdlYCBwcm9wZXJ0eS5cbiAqIChyZWFkb25seVBlcnNvbiBhcyBXcml0YWJsZVBlcnNvbikuYWdlID0gMzA7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IHR5cGUgV3JpdGFibGU8VD4gPSB7XG4gIC1yZWFkb25seSBbSyBpbiBrZXlvZiBUXTogVFtLXTtcbn07XG4iXX0=
@@ -70,4 +70,4 @@ export class ViewRef extends ChangeDetectorRef {
70
70
  */
71
71
  export class EmbeddedViewRef extends ViewRef {
72
72
  }
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld19yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saW5rZXIvdmlld19yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFFMUU7Ozs7OztHQU1HO0FBQ0gsTUFBTSxPQUFnQixPQUFRLFNBQVEsaUJBQWlCO0NBbUJ0RDtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0RHO0FBQ0gsTUFBTSxPQUFnQixlQUFtQixTQUFRLE9BQU87Q0FVdkQiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZVxuICovXG5cbmltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWZ9IGZyb20gJy4uL2NoYW5nZV9kZXRlY3Rpb24vY2hhbmdlX2RldGVjdG9yX3JlZic7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBBbmd1bGFyIHZpZXcuXG4gKlxuICogQHNlZSBbQ2hhbmdlIGRldGVjdGlvbiB1c2FnZV0oL2FwaS9jb3JlL0NoYW5nZURldGVjdG9yUmVmP3RhYj11c2FnZS1ub3RlcylcbiAqXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBWaWV3UmVmIGV4dGVuZHMgQ2hhbmdlRGV0ZWN0b3JSZWYge1xuICAvKipcbiAgICogRGVzdHJveXMgdGhpcyB2aWV3IGFuZCBhbGwgb2YgdGhlIGRhdGEgc3RydWN0dXJlcyBhc3NvY2lhdGVkIHdpdGggaXQuXG4gICAqL1xuICBhYnN0cmFjdCBkZXN0cm95KCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFJlcG9ydHMgd2hldGhlciB0aGlzIHZpZXcgaGFzIGJlZW4gZGVzdHJveWVkLlxuICAgKiBAcmV0dXJucyBUcnVlIGFmdGVyIHRoZSBgZGVzdHJveSgpYCBtZXRob2QgaGFzIGJlZW4gY2FsbGVkLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqL1xuICBhYnN0cmFjdCBnZXQgZGVzdHJveWVkKCk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEEgbGlmZWN5Y2xlIGhvb2sgdGhhdCBwcm92aWRlcyBhZGRpdGlvbmFsIGRldmVsb3Blci1kZWZpbmVkIGNsZWFudXBcbiAgICogZnVuY3Rpb25hbGl0eSBmb3Igdmlld3MuXG4gICAqIEBwYXJhbSBjYWxsYmFjayBBIGhhbmRsZXIgZnVuY3Rpb24gdGhhdCBjbGVhbnMgdXAgZGV2ZWxvcGVyLWRlZmluZWQgZGF0YVxuICAgKiBhc3NvY2lhdGVkIHdpdGggYSB2aWV3LiBDYWxsZWQgd2hlbiB0aGUgYGRlc3Ryb3koKWAgbWV0aG9kIGlzIGludm9rZWQuXG4gICAqL1xuICBhYnN0cmFjdCBvbkRlc3Ryb3koY2FsbGJhY2s6IEZ1bmN0aW9uKTogdm9pZDtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIEFuZ3VsYXIgdmlldyBpbiBhIHZpZXcgY29udGFpbmVyLlxuICogQW4gZW1iZWRkZWQgdmlldyBjYW4gYmUgcmVmZXJlbmNlZCBmcm9tIGEgY29tcG9uZW50XG4gKiBvdGhlciB0aGFuIHRoZSBob3N0aW5nIGNvbXBvbmVudCB3aG9zZSB0ZW1wbGF0ZSBkZWZpbmVzIGl0LCBvciBpdCBjYW4gYmUgZGVmaW5lZFxuICogaW5kZXBlbmRlbnRseSBieSBhIGBUZW1wbGF0ZVJlZmAuXG4gKlxuICogUHJvcGVydGllcyBvZiBlbGVtZW50cyBpbiBhIHZpZXcgY2FuIGNoYW5nZSwgYnV0IHRoZSBzdHJ1Y3R1cmUgKG51bWJlciBhbmQgb3JkZXIpIG9mIGVsZW1lbnRzIGluXG4gKiBhIHZpZXcgY2Fubm90LiBDaGFuZ2UgdGhlIHN0cnVjdHVyZSBvZiBlbGVtZW50cyBieSBpbnNlcnRpbmcsIG1vdmluZywgb3JcbiAqIHJlbW92aW5nIG5lc3RlZCB2aWV3cyBpbiBhIHZpZXcgY29udGFpbmVyLlxuICpcbiAqIEBzZWUge0BsaW5rIFZpZXdDb250YWluZXJSZWZ9XG4gKlxuICogQHVzYWdlTm90ZXNcbiAqXG4gKiBUaGUgZm9sbG93aW5nIHRlbXBsYXRlIGJyZWFrcyBkb3duIGludG8gdHdvIHNlcGFyYXRlIGBUZW1wbGF0ZVJlZmAgaW5zdGFuY2VzLFxuICogYW4gb3V0ZXIgb25lIGFuZCBhbiBpbm5lciBvbmUuXG4gKlxuICogYGBgXG4gKiBDb3VudDoge3tpdGVtcy5sZW5ndGh9fVxuICogPHVsPlxuICogICA8bGkgKm5nRm9yPVwibGV0ICBpdGVtIG9mIGl0ZW1zXCI+e3tpdGVtfX08L2xpPlxuICogPC91bD5cbiAqIGBgYFxuICpcbiAqIFRoaXMgaXMgdGhlIG91dGVyIGBUZW1wbGF0ZVJlZmA6XG4gKlxuICogYGBgXG4gKiBDb3VudDoge3tpdGVtcy5sZW5ndGh9fVxuICogPHVsPlxuICogICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LWl0ZW0gW25nRm9yT2ZdPVwiaXRlbXNcIj48L25nLXRlbXBsYXRlPlxuICogPC91bD5cbiAqIGBgYFxuICpcbiAqIFRoaXMgaXMgdGhlIGlubmVyIGBUZW1wbGF0ZVJlZmA6XG4gKlxuICogYGBgXG4gKiAgIDxsaT57e2l0ZW19fTwvbGk+XG4gKiBgYGBcbiAqXG4gKiBUaGUgb3V0ZXIgYW5kIGlubmVyIGBUZW1wbGF0ZVJlZmAgaW5zdGFuY2VzIGFyZSBhc3NlbWJsZWQgaW50byB2aWV3cyBhcyBmb2xsb3dzOlxuICpcbiAqIGBgYFxuICogPCEtLSBWaWV3UmVmOiBvdXRlci0wIC0tPlxuICogQ291bnQ6IDJcbiAqIDx1bD5cbiAqICAgPG5nLXRlbXBsYXRlIHZpZXctY29udGFpbmVyLXJlZj48L25nLXRlbXBsYXRlPlxuICogICA8IS0tIFZpZXdSZWY6IGlubmVyLTEgLS0+PGxpPmZpcnN0PC9saT48IS0tIC9WaWV3UmVmOiBpbm5lci0xIC0tPlxuICogICA8IS0tIFZpZXdSZWY6IGlubmVyLTIgLS0+PGxpPnNlY29uZDwvbGk+PCEtLSAvVmlld1JlZjogaW5uZXItMiAtLT5cbiAqIDwvdWw+XG4gKiA8IS0tIC9WaWV3UmVmOiBvdXRlci0wIC0tPlxuICogYGBgXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFbWJlZGRlZFZpZXdSZWY8Qz4gZXh0ZW5kcyBWaWV3UmVmIHtcbiAgLyoqXG4gICAqIFRoZSBjb250ZXh0IGZvciB0aGlzIHZpZXcsIGluaGVyaXRlZCBmcm9tIHRoZSBhbmNob3IgZWxlbWVudC5cbiAgICovXG4gIGFic3RyYWN0IGNvbnRleHQ6IEM7XG5cbiAgLyoqXG4gICAqIFRoZSByb290IG5vZGVzIGZvciB0aGlzIGVtYmVkZGVkIHZpZXcuXG4gICAqL1xuICBhYnN0cmFjdCBnZXQgcm9vdE5vZGVzKCk6IGFueVtdO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgdHJhY2tpbmcgcm9vdCBgVmlld1JlZmBzIGluIGBBcHBsaWNhdGlvblJlZmAuXG4gKlxuICogTk9URTogSW1wb3J0aW5nIGBBcHBsaWNhdGlvblJlZmAgaGVyZSBkaXJlY3RseSBjcmVhdGVzIGNpcmN1bGFyIGRlcGVuZGVuY3ksIHdoaWNoIGlzIHdoeSB3ZSBoYXZlXG4gKiBhIHN1YnNldCBvZiB0aGUgYEFwcGxpY2F0aW9uUmVmYCBpbnRlcmZhY2UgYFZpZXdSZWZUcmFja2VyYCBoZXJlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpZXdSZWZUcmFja2VyIHtcbiAgZGV0YWNoVmlldyh2aWV3UmVmOiBWaWV3UmVmKTogdm9pZDtcbn1cbiJdfQ==
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld19yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saW5rZXIvdmlld19yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFFMUU7Ozs7OztHQU1HO0FBQ0gsTUFBTSxPQUFnQixPQUFRLFNBQVEsaUJBQWlCO0NBbUJ0RDtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0RHO0FBQ0gsTUFBTSxPQUFnQixlQUFtQixTQUFRLE9BQU87Q0FVdkQiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZVxuICovXG5cbmltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWZ9IGZyb20gJy4uL2NoYW5nZV9kZXRlY3Rpb24vY2hhbmdlX2RldGVjdG9yX3JlZic7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBBbmd1bGFyIHZpZXcuXG4gKlxuICogQHNlZSBbQ2hhbmdlIGRldGVjdGlvbiB1c2FnZV0oL2FwaS9jb3JlL0NoYW5nZURldGVjdG9yUmVmP3RhYj11c2FnZS1ub3RlcylcbiAqXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBWaWV3UmVmIGV4dGVuZHMgQ2hhbmdlRGV0ZWN0b3JSZWYge1xuICAvKipcbiAgICogRGVzdHJveXMgdGhpcyB2aWV3IGFuZCBhbGwgb2YgdGhlIGRhdGEgc3RydWN0dXJlcyBhc3NvY2lhdGVkIHdpdGggaXQuXG4gICAqL1xuICBhYnN0cmFjdCBkZXN0cm95KCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFJlcG9ydHMgd2hldGhlciB0aGlzIHZpZXcgaGFzIGJlZW4gZGVzdHJveWVkLlxuICAgKiBAcmV0dXJucyBUcnVlIGFmdGVyIHRoZSBgZGVzdHJveSgpYCBtZXRob2QgaGFzIGJlZW4gY2FsbGVkLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqL1xuICBhYnN0cmFjdCBnZXQgZGVzdHJveWVkKCk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEEgbGlmZWN5Y2xlIGhvb2sgdGhhdCBwcm92aWRlcyBhZGRpdGlvbmFsIGRldmVsb3Blci1kZWZpbmVkIGNsZWFudXBcbiAgICogZnVuY3Rpb25hbGl0eSBmb3Igdmlld3MuXG4gICAqIEBwYXJhbSBjYWxsYmFjayBBIGhhbmRsZXIgZnVuY3Rpb24gdGhhdCBjbGVhbnMgdXAgZGV2ZWxvcGVyLWRlZmluZWQgZGF0YVxuICAgKiBhc3NvY2lhdGVkIHdpdGggYSB2aWV3LiBDYWxsZWQgd2hlbiB0aGUgYGRlc3Ryb3koKWAgbWV0aG9kIGlzIGludm9rZWQuXG4gICAqL1xuICBhYnN0cmFjdCBvbkRlc3Ryb3koY2FsbGJhY2s6IEZ1bmN0aW9uKTogdm9pZDtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIEFuZ3VsYXIgdmlldyBpbiBhIHZpZXcgY29udGFpbmVyLlxuICogQW4gZW1iZWRkZWQgdmlldyBjYW4gYmUgcmVmZXJlbmNlZCBmcm9tIGEgY29tcG9uZW50XG4gKiBvdGhlciB0aGFuIHRoZSBob3N0aW5nIGNvbXBvbmVudCB3aG9zZSB0ZW1wbGF0ZSBkZWZpbmVzIGl0LCBvciBpdCBjYW4gYmUgZGVmaW5lZFxuICogaW5kZXBlbmRlbnRseSBieSBhIGBUZW1wbGF0ZVJlZmAuXG4gKlxuICogUHJvcGVydGllcyBvZiBlbGVtZW50cyBpbiBhIHZpZXcgY2FuIGNoYW5nZSwgYnV0IHRoZSBzdHJ1Y3R1cmUgKG51bWJlciBhbmQgb3JkZXIpIG9mIGVsZW1lbnRzIGluXG4gKiBhIHZpZXcgY2Fubm90LiBDaGFuZ2UgdGhlIHN0cnVjdHVyZSBvZiBlbGVtZW50cyBieSBpbnNlcnRpbmcsIG1vdmluZywgb3JcbiAqIHJlbW92aW5nIG5lc3RlZCB2aWV3cyBpbiBhIHZpZXcgY29udGFpbmVyLlxuICpcbiAqIEBzZWUge0BsaW5rIFZpZXdDb250YWluZXJSZWZ9XG4gKlxuICogQHVzYWdlTm90ZXNcbiAqXG4gKiBUaGUgZm9sbG93aW5nIHRlbXBsYXRlIGJyZWFrcyBkb3duIGludG8gdHdvIHNlcGFyYXRlIGBUZW1wbGF0ZVJlZmAgaW5zdGFuY2VzLFxuICogYW4gb3V0ZXIgb25lIGFuZCBhbiBpbm5lciBvbmUuXG4gKlxuICogYGBgXG4gKiBDb3VudDoge3tpdGVtcy5sZW5ndGh9fVxuICogPHVsPlxuICogICA8bGkgKm5nRm9yPVwibGV0ICBpdGVtIG9mIGl0ZW1zXCI+e3tpdGVtfX08L2xpPlxuICogPC91bD5cbiAqIGBgYFxuICpcbiAqIFRoaXMgaXMgdGhlIG91dGVyIGBUZW1wbGF0ZVJlZmA6XG4gKlxuICogYGBgXG4gKiBDb3VudDoge3tpdGVtcy5sZW5ndGh9fVxuICogPHVsPlxuICogICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LWl0ZW0gW25nRm9yT2ZdPVwiaXRlbXNcIj48L25nLXRlbXBsYXRlPlxuICogPC91bD5cbiAqIGBgYFxuICpcbiAqIFRoaXMgaXMgdGhlIGlubmVyIGBUZW1wbGF0ZVJlZmA6XG4gKlxuICogYGBgXG4gKiAgIDxsaT57e2l0ZW19fTwvbGk+XG4gKiBgYGBcbiAqXG4gKiBUaGUgb3V0ZXIgYW5kIGlubmVyIGBUZW1wbGF0ZVJlZmAgaW5zdGFuY2VzIGFyZSBhc3NlbWJsZWQgaW50byB2aWV3cyBhcyBmb2xsb3dzOlxuICpcbiAqIGBgYFxuICogPCEtLSBWaWV3UmVmOiBvdXRlci0wIC0tPlxuICogQ291bnQ6IDJcbiAqIDx1bD5cbiAqICAgPG5nLXRlbXBsYXRlIHZpZXctY29udGFpbmVyLXJlZj48L25nLXRlbXBsYXRlPlxuICogICA8IS0tIFZpZXdSZWY6IGlubmVyLTEgLS0+PGxpPmZpcnN0PC9saT48IS0tIC9WaWV3UmVmOiBpbm5lci0xIC0tPlxuICogICA8IS0tIFZpZXdSZWY6IGlubmVyLTIgLS0+PGxpPnNlY29uZDwvbGk+PCEtLSAvVmlld1JlZjogaW5uZXItMiAtLT5cbiAqIDwvdWw+XG4gKiA8IS0tIC9WaWV3UmVmOiBvdXRlci0wIC0tPlxuICogYGBgXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFbWJlZGRlZFZpZXdSZWY8Qz4gZXh0ZW5kcyBWaWV3UmVmIHtcbiAgLyoqXG4gICAqIFRoZSBjb250ZXh0IGZvciB0aGlzIHZpZXcsIGluaGVyaXRlZCBmcm9tIHRoZSBhbmNob3IgZWxlbWVudC5cbiAgICovXG4gIGFic3RyYWN0IGNvbnRleHQ6IEM7XG5cbiAgLyoqXG4gICAqIFRoZSByb290IG5vZGVzIGZvciB0aGlzIGVtYmVkZGVkIHZpZXcuXG4gICAqL1xuICBhYnN0cmFjdCBnZXQgcm9vdE5vZGVzKCk6IGFueVtdO1xufVxuIl19
@@ -12,7 +12,7 @@ import { _callAndReportToErrorHandler, ApplicationRef, remove } from '../applica
12
12
  import { PROVIDED_ZONELESS } from '../change_detection/scheduling/zoneless_scheduling';
13
13
  import { stringify } from '../util/stringify';
14
14
  function isApplicationBootstrapConfig(config) {
15
- return !!config.platformInjector;
15
+ return !config.moduleRef;
16
16
  }
17
17
  export function bootstrap(config) {
18
18
  const envInjector = isApplicationBootstrapConfig(config)
@@ -47,9 +47,9 @@ export function bootstrap(config) {
47
47
  },
48
48
  });
49
49
  });
50
+ // If the whole platform is destroyed, invoke the `destroy` method
51
+ // for all bootstrapped applications as well.
50
52
  if (isApplicationBootstrapConfig(config)) {
51
- // If the whole platform is destroyed, invoke the `destroy` method
52
- // for all bootstrapped applications as well.
53
53
  const destroyListener = () => envInjector.destroy();
54
54
  const onPlatformDestroyListeners = config.platformInjector.get(PLATFORM_DESTROY_LISTENERS);
55
55
  onPlatformDestroyListeners.add(destroyListener);
@@ -59,9 +59,13 @@ export function bootstrap(config) {
59
59
  });
60
60
  }
61
61
  else {
62
+ const destroyListener = () => config.moduleRef.destroy();
63
+ const onPlatformDestroyListeners = config.platformInjector.get(PLATFORM_DESTROY_LISTENERS);
64
+ onPlatformDestroyListeners.add(destroyListener);
62
65
  config.moduleRef.onDestroy(() => {
63
66
  remove(config.allPlatformModules, config.moduleRef);
64
67
  onErrorSubscription.unsubscribe();
68
+ onPlatformDestroyListeners.delete(destroyListener);
65
69
  });
66
70
  }
67
71
  return _callAndReportToErrorHandler(exceptionHandler, ngZone, () => {
@@ -106,4 +110,4 @@ function moduleDoBootstrap(moduleRef, allPlatformModules) {
106
110
  }
107
111
  allPlatformModules.push(moduleRef);
108
112
  }
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvcGxhdGZvcm0vYm9vdHN0cmFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBRW5GLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsWUFBWSxFQUFtQixNQUFNLFdBQVcsQ0FBQztBQUN6RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFFckUsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDeEUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQzNELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUV2QyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsNEJBQTRCLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BHLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBR3JGLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQWE1QyxTQUFTLDRCQUE0QixDQUNuQyxNQUFtRTtJQUVuRSxPQUFPLENBQUMsQ0FBRSxNQUFxQyxDQUFDLGdCQUFnQixDQUFDO0FBQ25FLENBQUM7QUFRRCxNQUFNLFVBQVUsU0FBUyxDQUN2QixNQUE2RDtJQUU3RCxNQUFNLFdBQVcsR0FBRyw0QkFBNEIsQ0FBQyxNQUFNLENBQUM7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UUFDOUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7U0FBTSxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDNUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0MsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLElBQUksWUFBWSw2REFFcEIsU0FBUztZQUNQLGNBQWMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLHFCQUFxQjtnQkFDMUUseUZBQXlGO2dCQUN6Riw2QkFBNkIsQ0FDbEMsQ0FBQztJQUNKLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDckMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlXG4gKi9cbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtQUk9WSURFRF9OR19aT05FfSBmcm9tICcuLi9jaGFuZ2VfZGV0ZWN0aW9uL3NjaGVkdWxpbmcvbmdfem9uZV9zY2hlZHVsaW5nJztcbmltcG9ydCB7RW52aXJvbm1lbnRJbmplY3RvciwgUjNJbmplY3Rvcn0gZnJvbSAnLi4vZGkvcjNfaW5qZWN0b3InO1xuaW1wb3J0IHtFcnJvckhhbmRsZXJ9IGZyb20gJy4uL2Vycm9yX2hhbmRsZXInO1xuaW1wb3J0IHtSdW50aW1lRXJyb3IsIFJ1bnRpbWVFcnJvckNvZGV9IGZyb20gJy4uL2Vycm9ycyc7XG5pbXBvcnQge0RFRkFVTFRfTE9DQUxFX0lEfSBmcm9tICcuLi9pMThuL2xvY2FsaXphdGlvbic7XG5pbXBvcnQge0xPQ0FMRV9JRH0gZnJvbSAnLi4vaTE4bi90b2tlbnMnO1xuaW1wb3J0IHtJbWFnZVBlcmZvcm1hbmNlV2FybmluZ30gZnJvbSAnLi4vaW1hZ2VfcGVyZm9ybWFuY2Vfd2FybmluZyc7XG5pbXBvcnQge1R5cGV9IGZyb20gJy4uL2ludGVyZmFjZS90eXBlJztcbmltcG9ydCB7UExBVEZPUk1fREVTVFJPWV9MSVNURU5FUlN9IGZyb20gJy4vcGxhdGZvcm1fZGVzdHJveV9saXN0ZW5lcnMnO1xuaW1wb3J0IHtzZXRMb2NhbGVJZH0gZnJvbSAnLi4vcmVuZGVyMy9pMThuL2kxOG5fbG9jYWxlX2lkJztcbmltcG9ydCB7Tmdab25lfSBmcm9tICcuLi96b25lL25nX3pvbmUnO1xuXG5pbXBvcnQge0FwcGxpY2F0aW9uSW5pdFN0YXR1c30gZnJvbSAnLi4vYXBwbGljYXRpb24vYXBwbGljYXRpb25faW5pdCc7XG5pbXBvcnQge19jYWxsQW5kUmVwb3J0VG9FcnJvckhhbmRsZXIsIEFwcGxpY2F0aW9uUmVmLCByZW1vdmV9IGZyb20gJy4uL2FwcGxpY2F0aW9uL2FwcGxpY2F0aW9uX3JlZic7XG5pbXBvcnQge1BST1ZJREVEX1pPTkVMRVNTfSBmcm9tICcuLi9jaGFuZ2VfZGV0ZWN0aW9uL3NjaGVkdWxpbmcvem9uZWxlc3Nfc2NoZWR1bGluZyc7XG5pbXBvcnQge0luamVjdG9yfSBmcm9tICcuLi9kaSc7XG5pbXBvcnQge0ludGVybmFsTmdNb2R1bGVSZWYsIE5nTW9kdWxlUmVmfSBmcm9tICcuLi9saW5rZXIvbmdfbW9kdWxlX2ZhY3RvcnknO1xuaW1wb3J0IHtzdHJpbmdpZnl9IGZyb20gJy4uL3V0aWwvc3RyaW5naWZ5JztcblxuZXhwb3J0IGludGVyZmFjZSBNb2R1bGVCb290c3RyYXBDb25maWc8TT4ge1xuICBtb2R1bGVSZWY6IEludGVybmFsTmdNb2R1bGVSZWY8TT47XG4gIGFsbFBsYXRmb3JtTW9kdWxlczogTmdNb2R1bGVSZWY8dW5rbm93bj5bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBsaWNhdGlvbkJvb3RzdHJhcENvbmZpZyB7XG4gIHIzSW5qZWN0b3I6IFIzSW5qZWN0b3I7XG4gIHBsYXRmb3JtSW5qZWN0b3I6IEluamVjdG9yO1xuICByb290Q29tcG9uZW50OiBUeXBlPHVua25vd24+IHwgdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBpc0FwcGxpY2F0aW9uQm9vdHN0cmFwQ29uZmlnKFxuICBjb25maWc6IEFwcGxpY2F0aW9uQm9vdHN0cmFwQ29uZmlnIHwgTW9kdWxlQm9vdHN0cmFwQ29uZmlnPHVua25vd24+LFxuKTogY29uZmlnIGlzIEFwcGxpY2F0aW9uQm9vdHN0cmFwQ29uZmlnIHtcbiAgcmV0dXJuICEhKGNvbmZpZyBhcyBBcHBsaWNhdGlvbkJvb3RzdHJhcENvbmZpZykucGxhdGZvcm1JbmplY3Rvcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJvb3RzdHJhcDxNPihcbiAgbW9kdWxlQm9vdHN0cmFwQ29uZmlnOiBNb2R1bGVCb290c3RyYXBDb25maWc8TT4sXG4pOiBQcm9taXNlPE5nTW9kdWxlUmVmPE0+PjtcbmV4cG9ydCBmdW5jdGlvbiBib290c3RyYXAoXG4gIGFwcGxpY2F0aW9uQm9vdHN0cmFwQ29uZmlnOiBBcHBsaWNhdGlvbkJvb3RzdHJhcENvbmZpZyxcbik6IFByb21pc2U8QXBwbGljYXRpb25SZWY+O1xuZXhwb3J0IGZ1bmN0aW9uIGJvb3RzdHJhcDxNPihcbiAgY29uZmlnOiBNb2R1bGVCb290c3RyYXBDb25maWc8TT4gfCBBcHBsaWNhdGlvbkJvb3RzdHJhcENvbmZpZyxcbik6IFByb21pc2U8QXBwbGljYXRpb25SZWY+IHwgUHJvbWlzZTxOZ01vZHVsZVJlZjxNPj4ge1xuICBjb25zdCBlbnZJbmplY3RvciA9IGlzQXBwbGljYXRpb25Cb290c3RyYXBDb25maWcoY29uZmlnKVxuICAgID8gY29uZmlnLnIzSW5qZWN0b3JcbiAgICA6IGNvbmZpZy5tb2R1bGVSZWYuaW5qZWN0b3I7XG4gIGNvbnN0IG5nWm9uZSA9IGVudkluamVjdG9yLmdldChOZ1pvbmUpO1xuICByZXR1cm4gbmdab25lLnJ1bigoKSA9PiB7XG4gICAgaWYgKGlzQXBwbGljYXRpb25Cb290c3RyYXBDb25maWcoY29uZmlnKSkge1xuICAgICAgY29uZmlnLnIzSW5qZWN0b3IucmVzb2x2ZUluamVjdG9ySW5pdGlhbGl6ZXJzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbmZpZy5tb2R1bGVSZWYucmVzb2x2ZUluamVjdG9ySW5pdGlhbGl6ZXJzKCk7XG4gICAgfVxuICAgIGNvbnN0IGV4Y2VwdGlvbkhhbmRsZXIgPSBlbnZJbmplY3Rvci5nZXQoRXJyb3JIYW5kbGVyLCBudWxsKTtcbiAgICBpZiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSB7XG4gICAgICBpZiAoZXhjZXB0aW9uSGFuZGxlciA9PT0gbnVsbCkge1xuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBpc0FwcGxpY2F0aW9uQm9vdHN0cmFwQ29uZmlnKGNvbmZpZylcbiAgICAgICAgICA/ICdObyBgRXJyb3JIYW5kbGVyYCBmb3VuZCBpbiB0aGUgRGVwZW5kZW5jeSBJbmplY3Rpb24gdHJlZS4nXG4gICAgICAgICAgOiAnTm8gRXJyb3JIYW5kbGVyLiBJcyBwbGF0Zm9ybSBtb2R1bGUgKEJyb3dzZXJNb2R1bGUpIGluY2x1ZGVkJztcbiAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFcnJvcihcbiAgICAgICAgICBSdW50aW1lRXJyb3JDb2RlLk1JU1NJTkdfUkVRVUlSRURfSU5KRUNUQUJMRV9JTl9CT09UU1RSQVAsXG4gICAgICAgICAgZXJyb3JNZXNzYWdlLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKGVudkluamVjdG9yLmdldChQUk9WSURFRF9aT05FTEVTUykgJiYgZW52SW5qZWN0b3IuZ2V0KFBST1ZJREVEX05HX1pPTkUpKSB7XG4gICAgICAgIHRocm93IG5ldyBSdW50aW1lRXJyb3IoXG4gICAgICAgICAgUnVudGltZUVycm9yQ29kZS5QUk9WSURFRF9CT1RIX1pPTkVfQU5EX1pPTkVMRVNTLFxuICAgICAgICAgICdJbnZhbGlkIGNoYW5nZSBkZXRlY3Rpb24gY29uZmlndXJhdGlvbjogJyArXG4gICAgICAgICAgICAncHJvdmlkZVpvbmVDaGFuZ2VEZXRlY3Rpb24gYW5kIHByb3ZpZGVFeHBlcmltZW50YWxab25lbGVzc0NoYW5nZURldGVjdGlvbiBjYW5ub3QgYmUgdXNlZCB0b2dldGhlci4nLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBvbkVycm9yU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIG9uRXJyb3JTdWJzY3JpcHRpb24gPSBuZ1pvbmUub25FcnJvci5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAgIGV4Y2VwdGlvbkhhbmRsZXIhLmhhbmRsZUVycm9yKGVycm9yKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaWYgKGlzQXBwbGljYXRpb25Cb290c3RyYXBDb25maWcoY29uZmlnKSkge1xuICAgICAgLy8gSWYgdGhlIHdob2xlIHBsYXRmb3JtIGlzIGRlc3Ryb3llZCwgaW52b2tlIHRoZSBgZGVzdHJveWAgbWV0aG9kXG4gICAgICAvLyBmb3IgYWxsIGJvb3RzdHJhcHBlZCBhcHBsaWNhdGlvbnMgYXMgd2VsbC5cbiAgICAgIGNvbnN0IGRlc3Ryb3lMaXN0ZW5lciA9ICgpID0+IGVudkluamVjdG9yLmRlc3Ryb3koKTtcbiAgICAgIGNvbnN0IG9uUGxhdGZvcm1EZXN0cm95TGlzdGVuZXJzID0gY29uZmlnLnBsYXRmb3JtSW5qZWN0b3IuZ2V0KFBMQVRGT1JNX0RFU1RST1lfTElTVEVORVJTKTtcbiAgICAgIG9uUGxhdGZvcm1EZXN0cm95TGlzdGVuZXJzLmFkZChkZXN0cm95TGlzdGVuZXIpO1xuXG4gICAgICBlbnZJbmplY3Rvci5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgICBvbkVycm9yU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIG9uUGxhdGZvcm1EZXN0cm95TGlzdGVuZXJzLmRlbGV0ZShkZXN0cm95TGlzdGVuZXIpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbmZpZy5tb2R1bGVSZWYub25EZXN0cm95KCgpID0+IHtcbiAgICAgICAgcmVtb3ZlKGNvbmZpZy5hbGxQbGF0Zm9ybU1vZHVsZXMsIGNvbmZpZy5tb2R1bGVSZWYpO1xuICAgICAgICBvbkVycm9yU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gX2NhbGxBbmRSZXBvcnRUb0Vycm9ySGFuZGxlcihleGNlcHRpb25IYW5kbGVyISwgbmdab25lLCAoKSA9PiB7XG4gICAgICBjb25zdCBpbml0U3RhdHVzID0gZW52SW5qZWN0b3IuZ2V0KEFwcGxpY2F0aW9uSW5pdFN0YXR1cyk7XG4gICAgICBpbml0U3RhdHVzLnJ1bkluaXRpYWxpemVycygpO1xuXG4gICAgICByZXR1cm4gaW5pdFN0YXR1cy5kb25lUHJvbWlzZS50aGVuKCgpID0+IHtcbiAgICAgICAgLy8gSWYgdGhlIGBMT0NBTEVfSURgIHByb3ZpZGVyIGlzIGRlZmluZWQgYXQgYm9vdHN0cmFwIHRoZW4gd2Ugc2V0IHRoZSB2YWx1ZSBmb3IgaXZ5XG4gICAgICAgIGNvbnN0IGxvY2FsZUlkID0gZW52SW5qZWN0b3IuZ2V0KExPQ0FMRV9JRCwgREVGQVVMVF9MT0NBTEVfSUQpO1xuICAgICAgICBzZXRMb2NhbGVJZChsb2NhbGVJZCB8fCBERUZBVUxUX0xPQ0FMRV9JRCk7XG4gICAgICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICAgICAgICBjb25zdCBpbWFnZVBlcmZvcm1hbmNlU2VydmljZSA9IGVudkluamVjdG9yLmdldChJbWFnZVBlcmZvcm1hbmNlV2FybmluZyk7XG4gICAgICAgICAgaW1hZ2VQZXJmb3JtYW5jZVNlcnZpY2Uuc3RhcnQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0FwcGxpY2F0aW9uQm9vdHN0cmFwQ29uZmlnKGNvbmZpZykpIHtcbiAgICAgICAgICBjb25zdCBhcHBSZWYgPSBlbnZJbmplY3Rvci5nZXQoQXBwbGljYXRpb25SZWYpO1xuICAgICAgICAgIGlmIChjb25maWcucm9vdENvbXBvbmVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBhcHBSZWYuYm9vdHN0cmFwKGNvbmZpZy5yb290Q29tcG9uZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFwcFJlZjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBtb2R1bGVEb0Jvb3RzdHJhcChjb25maWcubW9kdWxlUmVmLCBjb25maWcuYWxsUGxhdGZvcm1Nb2R1bGVzKTtcbiAgICAgICAgICByZXR1cm4gY29uZmlnLm1vZHVsZVJlZjtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBtb2R1bGVEb0Jvb3RzdHJhcChcbiAgbW9kdWxlUmVmOiBJbnRlcm5hbE5nTW9kdWxlUmVmPGFueT4sXG4gIGFsbFBsYXRmb3JtTW9kdWxlczogTmdNb2R1bGVSZWY8dW5rbm93bj5bXSxcbik6IHZvaWQge1xuICBjb25zdCBhcHBSZWYgPSBtb2R1bGVSZWYuaW5qZWN0b3IuZ2V0KEFwcGxpY2F0aW9uUmVmKTtcbiAgaWYgKG1vZHVsZVJlZi5fYm9vdHN0cmFwQ29tcG9uZW50cy5sZW5ndGggPiAwKSB7XG4gICAgbW9kdWxlUmVmLl9ib290c3RyYXBDb21wb25lbnRzLmZvckVhY2goKGYpID0+IGFwcFJlZi5ib290c3RyYXAoZikpO1xuICB9IGVsc2UgaWYgKG1vZHVsZVJlZi5pbnN0YW5jZS5uZ0RvQm9vdHN0cmFwKSB7XG4gICAgbW9kdWxlUmVmLmluc3RhbmNlLm5nRG9Cb290c3RyYXAoYXBwUmVmKTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgUnVudGltZUVycm9yKFxuICAgICAgUnVudGltZUVycm9yQ29kZS5CT09UU1RSQVBfQ09NUE9ORU5UU19OT1RfRk9VTkQsXG4gICAgICBuZ0Rldk1vZGUgJiZcbiAgICAgICAgYFRoZSBtb2R1bGUgJHtzdHJpbmdpZnkobW9kdWxlUmVmLmluc3RhbmNlLmNvbnN0cnVjdG9yKX0gd2FzIGJvb3RzdHJhcHBlZCwgYCArXG4gICAgICAgICAgYGJ1dCBpdCBkb2VzIG5vdCBkZWNsYXJlIFwiQE5nTW9kdWxlLmJvb3RzdHJhcFwiIGNvbXBvbmVudHMgbm9yIGEgXCJuZ0RvQm9vdHN0cmFwXCIgbWV0aG9kLiBgICtcbiAgICAgICAgICBgUGxlYXNlIGRlZmluZSBvbmUgb2YgdGhlc2UuYCxcbiAgICApO1xuICB9XG4gIGFsbFBsYXRmb3JtTW9kdWxlcy5wdXNoKG1vZHVsZVJlZik7XG59XG4iXX0=
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvcGxhdGZvcm0vYm9vdHN0cmFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBRW5GLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsWUFBWSxFQUFtQixNQUFNLFdBQVcsQ0FBQztBQUN6RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFFckUsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDeEUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQzNELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUV2QyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsNEJBQTRCLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BHLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBR3JGLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQWdCNUMsU0FBUyw0QkFBNEIsQ0FDbkMsTUFBbUU7SUFFbkUsT0FBTyxDQUFFLE1BQXlDLENBQUMsU0FBUyxDQUFDO0FBQy9ELENBQUM7QUFRRCxNQUFNLFVBQVUsU0FBUyxDQUN2QixNQUE2RDtJQUU3RCxNQUFNLFdBQVcsR0FBRyw0QkFBNEIsQ0FBQyxNQUFNLENBQUM7UUFDdEQs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QUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FDeEIsU0FBbUMsRUFDbkMsa0JBQTBDO0lBRTFDLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELElBQUksU0FBUyxDQUFDLG9CQUFvQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM5QyxTQUFTLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztTQUFNLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUM1QyxTQUFTLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQyxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sSUFBSSxZQUFZLDZEQUVwQixTQUFTO1lBQ1AsY0FBYyxTQUFTLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMscUJBQXFCO2dCQUMxRSx5RkFBeUY7Z0JBQ3pGLDZCQUE2QixDQUNsQyxDQUFDO0lBQ0osQ0FBQztJQUNELGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1BST1ZJREVEX05HX1pPTkV9IGZyb20gJy4uL2NoYW5nZV9kZXRlY3Rpb24vc2NoZWR1bGluZy9uZ196b25lX3NjaGVkdWxpbmcnO1xuaW1wb3J0IHtFbnZpcm9ubWVudEluamVjdG9yLCBSM0luamVjdG9yfSBmcm9tICcuLi9kaS9yM19pbmplY3Rvcic7XG5pbXBvcnQge0Vycm9ySGFuZGxlcn0gZnJvbSAnLi4vZXJyb3JfaGFuZGxlcic7XG5pbXBvcnQge1J1bnRpbWVFcnJvciwgUnVudGltZUVycm9yQ29kZX0gZnJvbSAnLi4vZXJyb3JzJztcbmltcG9ydCB7REVGQVVMVF9MT0NBTEVfSUR9IGZyb20gJy4uL2kxOG4vbG9jYWxpemF0aW9uJztcbmltcG9ydCB7TE9DQUxFX0lEfSBmcm9tICcuLi9pMThuL3Rva2Vucyc7XG5pbXBvcnQge0ltYWdlUGVyZm9ybWFuY2VXYXJuaW5nfSBmcm9tICcuLi9pbWFnZV9wZXJmb3JtYW5jZV93YXJuaW5nJztcbmltcG9ydCB7VHlwZX0gZnJvbSAnLi4vaW50ZXJmYWNlL3R5cGUnO1xuaW1wb3J0IHtQTEFURk9STV9ERVNUUk9ZX0xJU1RFTkVSU30gZnJvbSAnLi9wbGF0Zm9ybV9kZXN0cm95X2xpc3RlbmVycyc7XG5pbXBvcnQge3NldExvY2FsZUlkfSBmcm9tICcuLi9yZW5kZXIzL2kxOG4vaTE4bl9sb2NhbGVfaWQnO1xuaW1wb3J0IHtOZ1pvbmV9IGZyb20gJy4uL3pvbmUvbmdfem9uZSc7XG5cbmltcG9ydCB7QXBwbGljYXRpb25Jbml0U3RhdHVzfSBmcm9tICcuLi9hcHBsaWNhdGlvbi9hcHBsaWNhdGlvbl9pbml0JztcbmltcG9ydCB7X2NhbGxBbmRSZXBvcnRUb0Vycm9ySGFuZGxlciwgQXBwbGljYXRpb25SZWYsIHJlbW92ZX0gZnJvbSAnLi4vYXBwbGljYXRpb24vYXBwbGljYXRpb25fcmVmJztcbmltcG9ydCB7UFJPVklERURfWk9ORUxFU1N9IGZyb20gJy4uL2NoYW5nZV9kZXRlY3Rpb24vc2NoZWR1bGluZy96b25lbGVzc19zY2hlZHVsaW5nJztcbmltcG9ydCB7SW5qZWN0b3J9IGZyb20gJy4uL2RpJztcbmltcG9ydCB7SW50ZXJuYWxOZ01vZHVsZVJlZiwgTmdNb2R1bGVSZWZ9IGZyb20gJy4uL2xpbmtlci9uZ19tb2R1bGVfZmFjdG9yeSc7XG5pbXBvcnQge3N0cmluZ2lmeX0gZnJvbSAnLi4vdXRpbC9zdHJpbmdpZnknO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJvb3RzdHJhcENvbmZpZyB7XG4gIHBsYXRmb3JtSW5qZWN0b3I6IEluamVjdG9yO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vZHVsZUJvb3RzdHJhcENvbmZpZzxNPiBleHRlbmRzIEJvb3RzdHJhcENvbmZpZyB7XG4gIG1vZHVsZVJlZjogSW50ZXJuYWxOZ01vZHVsZVJlZjxNPjtcbiAgYWxsUGxhdGZvcm1Nb2R1bGVzOiBOZ01vZHVsZVJlZjx1bmtub3duPltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcGxpY2F0aW9uQm9vdHN0cmFwQ29uZmlnIGV4dGVuZHMgQm9vdHN0cmFwQ29uZmlnIHtcbiAgcjNJbmplY3RvcjogUjNJbmplY3RvcjtcbiAgcm9vdENvbXBvbmVudDogVHlwZTx1bmtub3duPiB8IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gaXNBcHBsaWNhdGlvbkJvb3RzdHJhcENvbmZpZyhcbiAgY29uZmlnOiBBcHBsaWNhdGlvbkJvb3RzdHJhcENvbmZpZyB8IE1vZHVsZUJvb3RzdHJhcENvbmZpZzx1bmtub3duPixcbik6IGNvbmZpZyBpcyBBcHBsaWNhdGlvbkJvb3RzdHJhcENvbmZpZyB7XG4gIHJldHVybiAhKGNvbmZpZyBhcyBNb2R1bGVCb290c3RyYXBDb25maWc8dW5rbm93bj4pLm1vZHVsZVJlZjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJvb3RzdHJhcDxNPihcbiAgbW9kdWxlQm9vdHN0cmFwQ29uZmlnOiBNb2R1bGVCb290c3RyYXBDb25maWc8TT4sXG4pOiBQcm9taXNlPE5nTW9kdWxlUmVmPE0+PjtcbmV4cG9ydCBmdW5jdGlvbiBib290c3RyYXAoXG4gIGFwcGxpY2F0aW9uQm9vdHN0cmFwQ29uZmlnOiBBcHBsaWNhdGlvbkJvb3RzdHJhcENvbmZpZyxcbik6IFByb21pc2U8QXBwbGljYXRpb25SZWY+O1xuZXhwb3J0IGZ1bmN0aW9uIGJvb3RzdHJhcDxNPihcbiAgY29uZmlnOiBNb2R1bGVCb290c3RyYXBDb25maWc8TT4gfCBBcHBsaWNhdGlvbkJvb3RzdHJhcENvbmZpZyxcbik6IFByb21pc2U8QXBwbGljYXRpb25SZWY+IHwgUHJvbWlzZTxOZ01vZHVsZVJlZjxNPj4ge1xuICBjb25zdCBlbnZJbmplY3RvciA9IGlzQXBwbGljYXRpb25Cb290c3RyYXBDb25maWcoY29uZmlnKVxuICAgID8gY29uZmlnLnIzSW5qZWN0b3JcbiAgICA6IGNvbmZpZy5tb2R1bGVSZWYuaW5qZWN0b3I7XG4gIGNvbnN0IG5nWm9uZSA9IGVudkluamVjdG9yLmdldChOZ1pvbmUpO1xuICByZXR1cm4gbmdab25lLnJ1bigoKSA9PiB7XG4gICAgaWYgKGlzQXBwbGljYXRpb25Cb290c3RyYXBDb25maWcoY29uZmlnKSkge1xuICAgICAgY29uZmlnLnIzSW5qZWN0b3IucmVzb2x2ZUluamVjdG9ySW5pdGlhbGl6ZXJzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbmZpZy5tb2R1bGVSZWYucmVzb2x2ZUluamVjdG9ySW5pdGlhbGl6ZXJzKCk7XG4gICAgfVxuICAgIGNvbnN0IGV4Y2VwdGlvbkhhbmRsZXIgPSBlbnZJbmplY3Rvci5nZXQoRXJyb3JIYW5kbGVyLCBudWxsKTtcbiAgICBpZiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSB7XG4gICAgICBpZiAoZXhjZXB0aW9uSGFuZGxlciA9PT0gbnVsbCkge1xuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBpc0FwcGxpY2F0aW9uQm9vdHN0cmFwQ29uZmlnKGNvbmZpZylcbiAgICAgICAgICA/ICdObyBgRXJyb3JIYW5kbGVyYCBmb3VuZCBpbiB0aGUgRGVwZW5kZW5jeSBJbmplY3Rpb24gdHJlZS4nXG4gICAgICAgICAgOiAnTm8gRXJyb3JIYW5kbGVyLiBJcyBwbGF0Zm9ybSBtb2R1bGUgKEJyb3dzZXJNb2R1bGUpIGluY2x1ZGVkJztcbiAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFcnJvcihcbiAgICAgICAgICBSdW50aW1lRXJyb3JDb2RlLk1JU1NJTkdfUkVRVUlSRURfSU5KRUNUQUJMRV9JTl9CT09UU1RSQVAsXG4gICAgICAgICAgZXJyb3JNZXNzYWdlLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKGVudkluamVjdG9yLmdldChQUk9WSURFRF9aT05FTEVTUykgJiYgZW52SW5qZWN0b3IuZ2V0KFBST1ZJREVEX05HX1pPTkUpKSB7XG4gICAgICAgIHRocm93IG5ldyBSdW50aW1lRXJyb3IoXG4gICAgICAgICAgUnVudGltZUVycm9yQ29kZS5QUk9WSURFRF9CT1RIX1pPTkVfQU5EX1pPTkVMRVNTLFxuICAgICAgICAgICdJbnZhbGlkIGNoYW5nZSBkZXRlY3Rpb24gY29uZmlndXJhdGlvbjogJyArXG4gICAgICAgICAgICAncHJvdmlkZVpvbmVDaGFuZ2VEZXRlY3Rpb24gYW5kIHByb3ZpZGVFeHBlcmltZW50YWxab25lbGVzc0NoYW5nZURldGVjdGlvbiBjYW5ub3QgYmUgdXNlZCB0b2dldGhlci4nLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBvbkVycm9yU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIG9uRXJyb3JTdWJzY3JpcHRpb24gPSBuZ1pvbmUub25FcnJvci5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAgIGV4Y2VwdGlvbkhhbmRsZXIhLmhhbmRsZUVycm9yKGVycm9yKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgLy8gSWYgdGhlIHdob2xlIHBsYXRmb3JtIGlzIGRlc3Ryb3llZCwgaW52b2tlIHRoZSBgZGVzdHJveWAgbWV0aG9kXG4gICAgLy8gZm9yIGFsbCBib290c3RyYXBwZWQgYXBwbGljYXRpb25zIGFzIHdlbGwuXG4gICAgaWYgKGlzQXBwbGljYXRpb25Cb290c3RyYXBDb25maWcoY29uZmlnKSkge1xuICAgICAgY29uc3QgZGVzdHJveUxpc3RlbmVyID0gKCkgPT4gZW52SW5qZWN0b3IuZGVzdHJveSgpO1xuICAgICAgY29uc3Qgb25QbGF0Zm9ybURlc3Ryb3lMaXN0ZW5lcnMgPSBjb25maWcucGxhdGZvcm1JbmplY3Rvci5nZXQoUExBVEZPUk1fREVTVFJPWV9MSVNURU5FUlMpO1xuICAgICAgb25QbGF0Zm9ybURlc3Ryb3lMaXN0ZW5lcnMuYWRkKGRlc3Ryb3lMaXN0ZW5lcik7XG5cbiAgICAgIGVudkluamVjdG9yLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgICAgIG9uRXJyb3JTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgb25QbGF0Zm9ybURlc3Ryb3lMaXN0ZW5lcnMuZGVsZXRlKGRlc3Ryb3lMaXN0ZW5lcik7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZGVzdHJveUxpc3RlbmVyID0gKCkgPT4gY29uZmlnLm1vZHVsZVJlZi5kZXN0cm95KCk7XG4gICAgICBjb25zdCBvblBsYXRmb3JtRGVzdHJveUxpc3RlbmVycyA9IGNvbmZpZy5wbGF0Zm9ybUluamVjdG9yLmdldChQTEFURk9STV9ERVNUUk9ZX0xJU1RFTkVSUyk7XG4gICAgICBvblBsYXRmb3JtRGVzdHJveUxpc3RlbmVycy5hZGQoZGVzdHJveUxpc3RlbmVyKTtcblxuICAgICAgY29uZmlnLm1vZHVsZVJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgICByZW1vdmUoY29uZmlnLmFsbFBsYXRmb3JtTW9kdWxlcywgY29uZmlnLm1vZHVsZVJlZik7XG4gICAgICAgIG9uRXJyb3JTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgb25QbGF0Zm9ybURlc3Ryb3lMaXN0ZW5lcnMuZGVsZXRlKGRlc3Ryb3lMaXN0ZW5lcik7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gX2NhbGxBbmRSZXBvcnRUb0Vycm9ySGFuZGxlcihleGNlcHRpb25IYW5kbGVyISwgbmdab25lLCAoKSA9PiB7XG4gICAgICBjb25zdCBpbml0U3RhdHVzID0gZW52SW5qZWN0b3IuZ2V0KEFwcGxpY2F0aW9uSW5pdFN0YXR1cyk7XG4gICAgICBpbml0U3RhdHVzLnJ1bkluaXRpYWxpemVycygpO1xuXG4gICAgICByZXR1cm4gaW5pdFN0YXR1cy5kb25lUHJvbWlzZS50aGVuKCgpID0+IHtcbiAgICAgICAgLy8gSWYgdGhlIGBMT0NBTEVfSURgIHByb3ZpZGVyIGlzIGRlZmluZWQgYXQgYm9vdHN0cmFwIHRoZW4gd2Ugc2V0IHRoZSB2YWx1ZSBmb3IgaXZ5XG4gICAgICAgIGNvbnN0IGxvY2FsZUlkID0gZW52SW5qZWN0b3IuZ2V0KExPQ0FMRV9JRCwgREVGQVVMVF9MT0NBTEVfSUQpO1xuICAgICAgICBzZXRMb2NhbGVJZChsb2NhbGVJZCB8fCBERUZBVUxUX0xPQ0FMRV9JRCk7XG4gICAgICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICAgICAgICBjb25zdCBpbWFnZVBlcmZvcm1hbmNlU2VydmljZSA9IGVudkluamVjdG9yLmdldChJbWFnZVBlcmZvcm1hbmNlV2FybmluZyk7XG4gICAgICAgICAgaW1hZ2VQZXJmb3JtYW5jZVNlcnZpY2Uuc3RhcnQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0FwcGxpY2F0aW9uQm9vdHN0cmFwQ29uZmlnKGNvbmZpZykpIHtcbiAgICAgICAgICBjb25zdCBhcHBSZWYgPSBlbnZJbmplY3Rvci5nZXQoQXBwbGljYXRpb25SZWYpO1xuICAgICAgICAgIGlmIChjb25maWcucm9vdENvbXBvbmVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBhcHBSZWYuYm9vdHN0cmFwKGNvbmZpZy5yb290Q29tcG9uZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFwcFJlZjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBtb2R1bGVEb0Jvb3RzdHJhcChjb25maWcubW9kdWxlUmVmLCBjb25maWcuYWxsUGxhdGZvcm1Nb2R1bGVzKTtcbiAgICAgICAgICByZXR1cm4gY29uZmlnLm1vZHVsZVJlZjtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBtb2R1bGVEb0Jvb3RzdHJhcChcbiAgbW9kdWxlUmVmOiBJbnRlcm5hbE5nTW9kdWxlUmVmPGFueT4sXG4gIGFsbFBsYXRmb3JtTW9kdWxlczogTmdNb2R1bGVSZWY8dW5rbm93bj5bXSxcbik6IHZvaWQge1xuICBjb25zdCBhcHBSZWYgPSBtb2R1bGVSZWYuaW5qZWN0b3IuZ2V0KEFwcGxpY2F0aW9uUmVmKTtcbiAgaWYgKG1vZHVsZVJlZi5fYm9vdHN0cmFwQ29tcG9uZW50cy5sZW5ndGggPiAwKSB7XG4gICAgbW9kdWxlUmVmLl9ib290c3RyYXBDb21wb25lbnRzLmZvckVhY2goKGYpID0+IGFwcFJlZi5ib290c3RyYXAoZikpO1xuICB9IGVsc2UgaWYgKG1vZHVsZVJlZi5pbnN0YW5jZS5uZ0RvQm9vdHN0cmFwKSB7XG4gICAgbW9kdWxlUmVmLmluc3RhbmNlLm5nRG9Cb290c3RyYXAoYXBwUmVmKTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgUnVudGltZUVycm9yKFxuICAgICAgUnVudGltZUVycm9yQ29kZS5CT09UU1RSQVBfQ09NUE9ORU5UU19OT1RfRk9VTkQsXG4gICAgICBuZ0Rldk1vZGUgJiZcbiAgICAgICAgYFRoZSBtb2R1bGUgJHtzdHJpbmdpZnkobW9kdWxlUmVmLmluc3RhbmNlLmNvbnN0cnVjdG9yKX0gd2FzIGJvb3RzdHJhcHBlZCwgYCArXG4gICAgICAgICAgYGJ1dCBpdCBkb2VzIG5vdCBkZWNsYXJlIFwiQE5nTW9kdWxlLmJvb3RzdHJhcFwiIGNvbXBvbmVudHMgbm9yIGEgXCJuZ0RvQm9vdHN0cmFwXCIgbWV0aG9kLiBgICtcbiAgICAgICAgICBgUGxlYXNlIGRlZmluZSBvbmUgb2YgdGhlc2UuYCxcbiAgICApO1xuICB9XG4gIGFsbFBsYXRmb3JtTW9kdWxlcy5wdXNoKG1vZHVsZVJlZik7XG59XG4iXX0=
@@ -59,7 +59,11 @@ export class PlatformRef {
59
59
  { provide: ChangeDetectionScheduler, useExisting: ChangeDetectionSchedulerImpl },
60
60
  ];
61
61
  const moduleRef = createNgModuleRefWithProviders(moduleFactory.moduleType, this.injector, allAppProviders);
62
- return bootstrap({ moduleRef, allPlatformModules: this._modules });
62
+ return bootstrap({
63
+ moduleRef,
64
+ allPlatformModules: this._modules,
65
+ platformInjector: this.injector,
66
+ });
63
67
  }
64
68
  /**
65
69
  * Creates an instance of an `@NgModule` for a given platform.
@@ -124,4 +128,4 @@ export class PlatformRef {
124
128
  type: Injectable,
125
129
  args: [{ providedIn: 'platform' }]
126
130
  }], () => [{ type: i1.Injector }], null); })();
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm1fcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvcGxhdGZvcm0vcGxhdGZvcm1fcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQzVGLE9BQU8sRUFHTCxjQUFjLEdBQ2YsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtDQUFrQyxHQUNuQyxNQUFNLG1EQUFtRCxDQUFDO0FBQzNELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQzVGLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLHlEQUF5RCxDQUFDO0FBQ3JHLE9BQU8sRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFDLE1BQU0sT0FBTyxDQUFDO0FBQzNDLE9BQU8sRUFBQyxZQUFZLEVBQW1CLE1BQU0sV0FBVyxDQUFDO0FBSXpELE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3hFLE9BQU8sRUFBQyxTQUFTLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQ3RDLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLDhCQUE4QixDQUFDOzs7QUFFeEU7Ozs7Ozs7O0dBUUc7QUFFSCxNQUFNLE9BQU8sV0FBVztJQUt0QixnQkFBZ0I7SUFDaEIsWUFBb0IsU0FBbUI7UUFBbkIsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUwvQixhQUFRLEdBQXVCLEVBQUUsQ0FBQztRQUNsQyxzQkFBaUIsR0FBc0IsRUFBRSxDQUFDO1FBQzFDLGVBQVUsR0FBWSxLQUFLLENBQUM7SUFHTSxDQUFDO0lBRTNDOzs7OztPQUtHO0lBQ0gsc0JBQXNCLENBQ3BCLGFBQWlD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QUFFLFVBQVUsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtjb21waWxlTmdNb2R1bGVGYWN0b3J5fSBmcm9tICcuLi9hcHBsaWNhdGlvbi9hcHBsaWNhdGlvbl9uZ21vZHVsZV9mYWN0b3J5X2NvbXBpbGVyJztcbmltcG9ydCB7XG4gIF9jYWxsQW5kUmVwb3J0VG9FcnJvckhhbmRsZXIsXG4gIEJvb3RzdHJhcE9wdGlvbnMsXG4gIG9wdGlvbnNSZWR1Y2VyLFxufSBmcm9tICcuLi9hcHBsaWNhdGlvbi9hcHBsaWNhdGlvbl9yZWYnO1xuaW1wb3J0IHtcbiAgZ2V0Tmdab25lT3B0aW9ucyxcbiAgaW50ZXJuYWxQcm92aWRlWm9uZUNoYW5nZURldGVjdGlvbixcbn0gZnJvbSAnLi4vY2hhbmdlX2RldGVjdGlvbi9zY2hlZHVsaW5nL25nX3pvbmVfc2NoZWR1bGluZyc7XG5pbXBvcnQge0NoYW5nZURldGVjdGlvblNjaGVkdWxlcn0gZnJvbSAnLi4vY2hhbmdlX2RldGVjdGlvbi9zY2hlZHVsaW5nL3pvbmVsZXNzX3NjaGVkdWxpbmcnO1xuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TY2hlZHVsZXJJbXBsfSBmcm9tICcuLi9jaGFuZ2VfZGV0ZWN0aW9uL3NjaGVkdWxpbmcvem9uZWxlc3Nfc2NoZWR1bGluZ19pbXBsJztcbmltcG9ydCB7SW5qZWN0YWJsZSwgSW5qZWN0b3J9IGZyb20gJy4uL2RpJztcbmltcG9ydCB7UnVudGltZUVycm9yLCBSdW50aW1lRXJyb3JDb2RlfSBmcm9tICcuLi9lcnJvcnMnO1xuaW1wb3J0IHtUeXBlfSBmcm9tICcuLi9pbnRlcmZhY2UvdHlwZSc7XG5pbXBvcnQge0NvbXBpbGVyT3B0aW9uc30gZnJvbSAnLi4vbGlua2VyJztcbmltcG9ydCB7TmdNb2R1bGVGYWN0b3J5LCBOZ01vZHVsZVJlZn0gZnJvbSAnLi4vbGlua2VyL25nX21vZHVsZV9mYWN0b3J5JztcbmltcG9ydCB7Y3JlYXRlTmdNb2R1bGVSZWZXaXRoUHJvdmlkZXJzfSBmcm9tICcuLi9yZW5kZXIzL25nX21vZHVsZV9yZWYnO1xuaW1wb3J0IHtnZXROZ1pvbmUsIE5nWm9uZX0gZnJvbSAnLi4vem9uZS9uZ196b25lJztcbmltcG9ydCB7Ym9vdHN0cmFwfSBmcm9tICcuL2Jvb3RzdHJhcCc7XG5pbXBvcnQge1BMQVRGT1JNX0RFU1RST1lfTElTVEVORVJTfSBmcm9tICcuL3BsYXRmb3JtX2Rlc3Ryb3lfbGlzdGVuZXJzJztcblxuLyoqXG4gKiBUaGUgQW5ndWxhciBwbGF0Zm9ybSBpcyB0aGUgZW50cnkgcG9pbnQgZm9yIEFuZ3VsYXIgb24gYSB3ZWIgcGFnZS5cbiAqIEVhY2ggcGFnZSBoYXMgZXhhY3RseSBvbmUgcGxhdGZvcm0uIFNlcnZpY2VzIChzdWNoIGFzIHJlZmxlY3Rpb24pIHdoaWNoIGFyZSBjb21tb25cbiAqIHRvIGV2ZXJ5IEFuZ3VsYXIgYXBwbGljYXRpb24gcnVubmluZyBvbiB0aGUgcGFnZSBhcmUgYm91bmQgaW4gaXRzIHNjb3BlLlxuICogQSBwYWdlJ3MgcGxhdGZvcm0gaXMgaW5pdGlhbGl6ZWQgaW1wbGljaXRseSB3aGVuIGEgcGxhdGZvcm0gaXMgY3JlYXRlZCB1c2luZyBhIHBsYXRmb3JtXG4gKiBmYWN0b3J5IHN1Y2ggYXMgYFBsYXRmb3JtQnJvd3NlcmAsIG9yIGV4cGxpY2l0bHkgYnkgY2FsbGluZyB0aGUgYGNyZWF0ZVBsYXRmb3JtKClgIGZ1bmN0aW9uLlxuICpcbiAqIEBwdWJsaWNBcGlcbiAqL1xuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdwbGF0Zm9ybSd9KVxuZXhwb3J0IGNsYXNzIFBsYXRmb3JtUmVmIHtcbiAgcHJpdmF0ZSBfbW9kdWxlczogTmdNb2R1bGVSZWY8YW55PltdID0gW107XG4gIHByaXZhdGUgX2Rlc3Ryb3lMaXN0ZW5lcnM6IEFycmF5PCgpID0+IHZvaWQ+ID0gW107XG4gIHByaXZhdGUgX2Rlc3Ryb3llZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yKSB7fVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIGFuIGBATmdNb2R1bGVgIGZvciB0aGUgZ2l2ZW4gcGxhdGZvcm0uXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIFBhc3NpbmcgTmdNb2R1bGUgZmFjdG9yaWVzIGFzIHRoZSBgUGxhdGZvcm1SZWYuYm9vdHN0cmFwTW9kdWxlRmFjdG9yeWAgZnVuY3Rpb25cbiAgICogICAgIGFyZ3VtZW50IGlzIGRlcHJlY2F0ZWQuIFVzZSB0aGUgYFBsYXRmb3JtUmVmLmJvb3RzdHJhcE1vZHVsZWAgQVBJIGluc3RlYWQuXG4gICAqL1xuICBib290c3RyYXBNb2R1bGVGYWN0b3J5PE0+KFxuICAgIG1vZHVsZUZhY3Rvcnk6IE5nTW9kdWxlRmFjdG9yeTxNPixcbiAgICBvcHRpb25zPzogQm9vdHN0cmFwT3B0aW9ucyxcbiAgKTogUHJvbWlzZTxOZ01vZHVsZVJlZjxNPj4ge1xuICAgIGNvbnN0IHNjaGVkdWxlSW5Sb290Wm9uZSA9IChvcHRpb25zIGFzIGFueSk/LnNjaGVkdWxlSW5Sb290Wm9uZTtcbiAgICBjb25zdCBuZ1pvbmVGYWN0b3J5ID0gKCkgPT5cbiAgICAgIGdldE5nWm9uZShvcHRpb25zPy5uZ1pvbmUsIHtcbiAgICAgICAgLi4uZ2V0Tmdab25lT3B0aW9ucyh7XG4gICAgICAgICAgZXZlbnRDb2FsZXNjaW5nOiBvcHRpb25zPy5uZ1pvbmVFdmVudENvYWxlc2NpbmcsXG4gICAgICAgICAgcnVuQ29hbGVzY2luZzogb3B0aW9ucz8ubmdab25lUnVuQ29hbGVzY2luZyxcbiAgICAgICAgfSksXG4gICAgICAgIHNjaGVkdWxlSW5Sb290Wm9uZSxcbiAgICAgIH0pO1xuICAgIGNvbnN0IGlnbm9yZUNoYW5nZXNPdXRzaWRlWm9uZSA9IG9wdGlvbnM/Lmlnbm9yZUNoYW5nZXNPdXRzaWRlWm9uZTtcbiAgICBjb25zdCBhbGxBcHBQcm92aWRlcnMgPSBbXG4gICAgICBpbnRlcm5hbFByb3ZpZGVab25lQ2hhbmdlRGV0ZWN0aW9uKHtcbiAgICAgICAgbmdab25lRmFjdG9yeSxcbiAgICAgICAgaWdub3JlQ2hhbmdlc091dHNpZGVab25lLFxuICAgICAgfSksXG4gICAgICB7cHJvdmlkZTogQ2hhbmdlRGV0ZWN0aW9uU2NoZWR1bGVyLCB1c2VFeGlzdGluZzogQ2hhbmdlRGV0ZWN0aW9uU2NoZWR1bGVySW1wbH0sXG4gICAgXTtcbiAgICBjb25zdCBtb2R1bGVSZWYgPSBjcmVhdGVOZ01vZHVsZVJlZldpdGhQcm92aWRlcnMoXG4gICAgICBtb2R1bGVGYWN0b3J5Lm1vZHVsZVR5cGUsXG4gICAgICB0aGlzLmluamVjdG9yLFxuICAgICAgYWxsQXBwUHJvdmlkZXJzLFxuICAgICk7XG5cbiAgICByZXR1cm4gYm9vdHN0cmFwKHttb2R1bGVSZWYsIGFsbFBsYXRmb3JtTW9kdWxlczogdGhpcy5fbW9kdWxlc30pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgYW4gYEBOZ01vZHVsZWAgZm9yIGEgZ2l2ZW4gcGxhdGZvcm0uXG4gICAqXG4gICAqIEB1c2FnZU5vdGVzXG4gICAqICMjIyBTaW1wbGUgRXhhbXBsZVxuICAgKlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIEBOZ01vZHVsZSh7XG4gICAqICAgaW1wb3J0czogW0Jyb3dzZXJNb2R1bGVdXG4gICAqIH0pXG4gICAqIGNsYXNzIE15TW9kdWxlIHt9XG4gICAqXG4gICAqIGxldCBtb2R1bGVSZWYgPSBwbGF0Zm9ybUJyb3dzZXIoKS5ib290c3RyYXBNb2R1bGUoTXlNb2R1bGUpO1xuICAgKiBgYGBcbiAgICpcbiAgICovXG4gIGJvb3RzdHJhcE1vZHVsZTxNPihcbiAgICBtb2R1bGVUeXBlOiBUeXBlPE0+LFxuICAgIGNvbXBpbGVyT3B0aW9uczpcbiAgICAgIHwgKENvbXBpbGVyT3B0aW9ucyAmIEJvb3RzdHJhcE9wdGlvbnMpXG4gICAgICB8IEFycmF5PENvbXBpbGVyT3B0aW9ucyAmIEJvb3RzdHJhcE9wdGlvbnM+ID0gW10sXG4gICk6IFByb21pc2U8TmdNb2R1bGVSZWY8TT4+IHtcbiAgICBjb25zdCBvcHRpb25zID0gb3B0aW9uc1JlZHVjZXIoe30sIGNvbXBpbGVyT3B0aW9ucyk7XG4gICAgcmV0dXJuIGNvbXBpbGVOZ01vZHVsZUZhY3RvcnkodGhpcy5pbmplY3Rvciwgb3B0aW9ucywgbW9kdWxlVHlwZSkudGhlbigobW9kdWxlRmFjdG9yeSkgPT5cbiAgICAgIHRoaXMuYm9vdHN0cmFwTW9kdWxlRmFjdG9yeShtb2R1bGVGYWN0b3J5LCBvcHRpb25zKSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIGxpc3RlbmVyIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBwbGF0Zm9ybSBpcyBkZXN0cm95ZWQuXG4gICAqL1xuICBvbkRlc3Ryb3koY2FsbGJhY2s6ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95TGlzdGVuZXJzLnB1c2goY2FsbGJhY2spO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgcGxhdGZvcm0ge0BsaW5rIEluamVjdG9yfSwgd2hpY2ggaXMgdGhlIHBhcmVudCBpbmplY3RvciBmb3JcbiAgICogZXZlcnkgQW5ndWxhciBhcHBsaWNhdGlvbiBvbiB0aGUgcGFnZSBhbmQgcHJvdmlkZXMgc2luZ2xldG9uIHByb3ZpZGVycy5cbiAgICovXG4gIGdldCBpbmplY3RvcigpOiBJbmplY3RvciB7XG4gICAgcmV0dXJuIHRoaXMuX2luamVjdG9yO1xuICB9XG5cbiAgLyoqXG4gICAqIERlc3Ryb3lzIHRoZSBjdXJyZW50IEFuZ3VsYXIgcGxhdGZvcm0gYW5kIGFsbCBBbmd1bGFyIGFwcGxpY2F0aW9ucyBvbiB0aGUgcGFnZS5cbiAgICogRGVzdHJveXMgYWxsIG1vZHVsZXMgYW5kIGxpc3RlbmVycyByZWdpc3RlcmVkIHdpdGggdGhlIHBsYXRmb3JtLlxuICAgKi9cbiAgZGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5fZGVzdHJveWVkKSB7XG4gICAgICB0aHJvdyBuZXcgUnVudGltZUVycm9yKFxuICAgICAgICBSdW50aW1lRXJyb3JDb2RlLlBMQVRGT1JNX0FMUkVBRFlfREVTVFJPWUVELFxuICAgICAgICBuZ0Rldk1vZGUgJiYgJ1RoZSBwbGF0Zm9ybSBoYXMgYWxyZWFkeSBiZWVuIGRlc3Ryb3llZCEnLFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5fbW9kdWxlcy5zbGljZSgpLmZvckVhY2goKG1vZHVsZSkgPT4gbW9kdWxlLmRlc3Ryb3koKSk7XG4gICAgdGhpcy5fZGVzdHJveUxpc3RlbmVycy5mb3JFYWNoKChsaXN0ZW5lcikgPT4gbGlzdGVuZXIoKSk7XG5cbiAgICBjb25zdCBkZXN0cm95TGlzdGVuZXJzID0gdGhpcy5faW5qZWN0b3IuZ2V0KFBMQVRGT1JNX0RFU1RST1lfTElTVEVORVJTLCBudWxsKTtcbiAgICBpZiAoZGVzdHJveUxpc3RlbmVycykge1xuICAgICAgZGVzdHJveUxpc3RlbmVycy5mb3JFYWNoKChsaXN0ZW5lcikgPT4gbGlzdGVuZXIoKSk7XG4gICAgICBkZXN0cm95TGlzdGVuZXJzLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fZGVzdHJveWVkID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGlzIGluc3RhbmNlIHdhcyBkZXN0cm95ZWQuXG4gICAqL1xuICBnZXQgZGVzdHJveWVkKCkge1xuICAgIHJldHVybiB0aGlzLl9kZXN0cm95ZWQ7XG4gIH1cbn1cbiJdfQ==
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm1fcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvcGxhdGZvcm0vcGxhdGZvcm1fcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQzVGLE9BQU8sRUFHTCxjQUFjLEdBQ2YsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtDQUFrQyxHQUNuQyxNQUFNLG1EQUFtRCxDQUFDO0FBQzNELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQzVGLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLHlEQUF5RCxDQUFDO0FBQ3JHLE9BQU8sRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFDLE1BQU0sT0FBTyxDQUFDO0FBQzNDLE9BQU8sRUFBQyxZQUFZLEVBQW1CLE1BQU0sV0FBVyxDQUFDO0FBSXpELE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3hFLE9BQU8sRUFBQyxTQUFTLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQ3RDLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLDhCQUE4QixDQUFDOzs7QUFFeEU7Ozs7Ozs7O0dBUUc7QUFFSCxNQUFNLE9BQU8sV0FBVztJQUt0QixnQkFBZ0I7SUFDaEIsWUFBb0IsU0FBbUI7UUFBbkIsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUwvQixhQUFRLEdBQXVCLEVBQUUsQ0FBQztRQUNsQyxzQkFBaUIsR0FBc0IsRUFBRSxDQUFDO1FBQzFDLGVBQVUsR0FBWSxLQUFLLENBQUM7SUFHTSxDQUFDO0lBRTNDOzs7OztPQUtHO0lBQ0gsc0JBQXNCLENBQ3BCLGFBQWlD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LFdBQVc7Y0FEdkIsVUFBVTtlQUFDLEVBQUMsVUFBVSxFQUFFLFVBQVUsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtjb21waWxlTmdNb2R1bGVGYWN0b3J5fSBmcm9tICcuLi9hcHBsaWNhdGlvbi9hcHBsaWNhdGlvbl9uZ21vZHVsZV9mYWN0b3J5X2NvbXBpbGVyJztcbmltcG9ydCB7XG4gIF9jYWxsQW5kUmVwb3J0VG9FcnJvckhhbmRsZXIsXG4gIEJvb3RzdHJhcE9wdGlvbnMsXG4gIG9wdGlvbnNSZWR1Y2VyLFxufSBmcm9tICcuLi9hcHBsaWNhdGlvbi9hcHBsaWNhdGlvbl9yZWYnO1xuaW1wb3J0IHtcbiAgZ2V0Tmdab25lT3B0aW9ucyxcbiAgaW50ZXJuYWxQcm92aWRlWm9uZUNoYW5nZURldGVjdGlvbixcbn0gZnJvbSAnLi4vY2hhbmdlX2RldGVjdGlvbi9zY2hlZHVsaW5nL25nX3pvbmVfc2NoZWR1bGluZyc7XG5pbXBvcnQge0NoYW5nZURldGVjdGlvblNjaGVkdWxlcn0gZnJvbSAnLi4vY2hhbmdlX2RldGVjdGlvbi9zY2hlZHVsaW5nL3pvbmVsZXNzX3NjaGVkdWxpbmcnO1xuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TY2hlZHVsZXJJbXBsfSBmcm9tICcuLi9jaGFuZ2VfZGV0ZWN0aW9uL3NjaGVkdWxpbmcvem9uZWxlc3Nfc2NoZWR1bGluZ19pbXBsJztcbmltcG9ydCB7SW5qZWN0YWJsZSwgSW5qZWN0b3J9IGZyb20gJy4uL2RpJztcbmltcG9ydCB7UnVudGltZUVycm9yLCBSdW50aW1lRXJyb3JDb2RlfSBmcm9tICcuLi9lcnJvcnMnO1xuaW1wb3J0IHtUeXBlfSBmcm9tICcuLi9pbnRlcmZhY2UvdHlwZSc7XG5pbXBvcnQge0NvbXBpbGVyT3B0aW9uc30gZnJvbSAnLi4vbGlua2VyJztcbmltcG9ydCB7TmdNb2R1bGVGYWN0b3J5LCBOZ01vZHVsZVJlZn0gZnJvbSAnLi4vbGlua2VyL25nX21vZHVsZV9mYWN0b3J5JztcbmltcG9ydCB7Y3JlYXRlTmdNb2R1bGVSZWZXaXRoUHJvdmlkZXJzfSBmcm9tICcuLi9yZW5kZXIzL25nX21vZHVsZV9yZWYnO1xuaW1wb3J0IHtnZXROZ1pvbmUsIE5nWm9uZX0gZnJvbSAnLi4vem9uZS9uZ196b25lJztcbmltcG9ydCB7Ym9vdHN0cmFwfSBmcm9tICcuL2Jvb3RzdHJhcCc7XG5pbXBvcnQge1BMQVRGT1JNX0RFU1RST1lfTElTVEVORVJTfSBmcm9tICcuL3BsYXRmb3JtX2Rlc3Ryb3lfbGlzdGVuZXJzJztcblxuLyoqXG4gKiBUaGUgQW5ndWxhciBwbGF0Zm9ybSBpcyB0aGUgZW50cnkgcG9pbnQgZm9yIEFuZ3VsYXIgb24gYSB3ZWIgcGFnZS5cbiAqIEVhY2ggcGFnZSBoYXMgZXhhY3RseSBvbmUgcGxhdGZvcm0uIFNlcnZpY2VzIChzdWNoIGFzIHJlZmxlY3Rpb24pIHdoaWNoIGFyZSBjb21tb25cbiAqIHRvIGV2ZXJ5IEFuZ3VsYXIgYXBwbGljYXRpb24gcnVubmluZyBvbiB0aGUgcGFnZSBhcmUgYm91bmQgaW4gaXRzIHNjb3BlLlxuICogQSBwYWdlJ3MgcGxhdGZvcm0gaXMgaW5pdGlhbGl6ZWQgaW1wbGljaXRseSB3aGVuIGEgcGxhdGZvcm0gaXMgY3JlYXRlZCB1c2luZyBhIHBsYXRmb3JtXG4gKiBmYWN0b3J5IHN1Y2ggYXMgYFBsYXRmb3JtQnJvd3NlcmAsIG9yIGV4cGxpY2l0bHkgYnkgY2FsbGluZyB0aGUgYGNyZWF0ZVBsYXRmb3JtKClgIGZ1bmN0aW9uLlxuICpcbiAqIEBwdWJsaWNBcGlcbiAqL1xuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdwbGF0Zm9ybSd9KVxuZXhwb3J0IGNsYXNzIFBsYXRmb3JtUmVmIHtcbiAgcHJpdmF0ZSBfbW9kdWxlczogTmdNb2R1bGVSZWY8YW55PltdID0gW107XG4gIHByaXZhdGUgX2Rlc3Ryb3lMaXN0ZW5lcnM6IEFycmF5PCgpID0+IHZvaWQ+ID0gW107XG4gIHByaXZhdGUgX2Rlc3Ryb3llZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yKSB7fVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIGFuIGBATmdNb2R1bGVgIGZvciB0aGUgZ2l2ZW4gcGxhdGZvcm0uXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIFBhc3NpbmcgTmdNb2R1bGUgZmFjdG9yaWVzIGFzIHRoZSBgUGxhdGZvcm1SZWYuYm9vdHN0cmFwTW9kdWxlRmFjdG9yeWAgZnVuY3Rpb25cbiAgICogICAgIGFyZ3VtZW50IGlzIGRlcHJlY2F0ZWQuIFVzZSB0aGUgYFBsYXRmb3JtUmVmLmJvb3RzdHJhcE1vZHVsZWAgQVBJIGluc3RlYWQuXG4gICAqL1xuICBib290c3RyYXBNb2R1bGVGYWN0b3J5PE0+KFxuICAgIG1vZHVsZUZhY3Rvcnk6IE5nTW9kdWxlRmFjdG9yeTxNPixcbiAgICBvcHRpb25zPzogQm9vdHN0cmFwT3B0aW9ucyxcbiAgKTogUHJvbWlzZTxOZ01vZHVsZVJlZjxNPj4ge1xuICAgIGNvbnN0IHNjaGVkdWxlSW5Sb290Wm9uZSA9IChvcHRpb25zIGFzIGFueSk/LnNjaGVkdWxlSW5Sb290Wm9uZTtcbiAgICBjb25zdCBuZ1pvbmVGYWN0b3J5ID0gKCkgPT5cbiAgICAgIGdldE5nWm9uZShvcHRpb25zPy5uZ1pvbmUsIHtcbiAgICAgICAgLi4uZ2V0Tmdab25lT3B0aW9ucyh7XG4gICAgICAgICAgZXZlbnRDb2FsZXNjaW5nOiBvcHRpb25zPy5uZ1pvbmVFdmVudENvYWxlc2NpbmcsXG4gICAgICAgICAgcnVuQ29hbGVzY2luZzogb3B0aW9ucz8ubmdab25lUnVuQ29hbGVzY2luZyxcbiAgICAgICAgfSksXG4gICAgICAgIHNjaGVkdWxlSW5Sb290Wm9uZSxcbiAgICAgIH0pO1xuICAgIGNvbnN0IGlnbm9yZUNoYW5nZXNPdXRzaWRlWm9uZSA9IG9wdGlvbnM/Lmlnbm9yZUNoYW5nZXNPdXRzaWRlWm9uZTtcbiAgICBjb25zdCBhbGxBcHBQcm92aWRlcnMgPSBbXG4gICAgICBpbnRlcm5hbFByb3ZpZGVab25lQ2hhbmdlRGV0ZWN0aW9uKHtcbiAgICAgICAgbmdab25lRmFjdG9yeSxcbiAgICAgICAgaWdub3JlQ2hhbmdlc091dHNpZGVab25lLFxuICAgICAgfSksXG4gICAgICB7cHJvdmlkZTogQ2hhbmdlRGV0ZWN0aW9uU2NoZWR1bGVyLCB1c2VFeGlzdGluZzogQ2hhbmdlRGV0ZWN0aW9uU2NoZWR1bGVySW1wbH0sXG4gICAgXTtcbiAgICBjb25zdCBtb2R1bGVSZWYgPSBjcmVhdGVOZ01vZHVsZVJlZldpdGhQcm92aWRlcnMoXG4gICAgICBtb2R1bGVGYWN0b3J5Lm1vZHVsZVR5cGUsXG4gICAgICB0aGlzLmluamVjdG9yLFxuICAgICAgYWxsQXBwUHJvdmlkZXJzLFxuICAgICk7XG5cbiAgICByZXR1cm4gYm9vdHN0cmFwKHtcbiAgICAgIG1vZHVsZVJlZixcbiAgICAgIGFsbFBsYXRmb3JtTW9kdWxlczogdGhpcy5fbW9kdWxlcyxcbiAgICAgIHBsYXRmb3JtSW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBhbiBgQE5nTW9kdWxlYCBmb3IgYSBnaXZlbiBwbGF0Zm9ybS5cbiAgICpcbiAgICogQHVzYWdlTm90ZXNcbiAgICogIyMjIFNpbXBsZSBFeGFtcGxlXG4gICAqXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogQE5nTW9kdWxlKHtcbiAgICogICBpbXBvcnRzOiBbQnJvd3Nlck1vZHVsZV1cbiAgICogfSlcbiAgICogY2xhc3MgTXlNb2R1bGUge31cbiAgICpcbiAgICogbGV0IG1vZHVsZVJlZiA9IHBsYXRmb3JtQnJvd3NlcigpLmJvb3RzdHJhcE1vZHVsZShNeU1vZHVsZSk7XG4gICAqIGBgYFxuICAgKlxuICAgKi9cbiAgYm9vdHN0cmFwTW9kdWxlPE0+KFxuICAgIG1vZHVsZVR5cGU6IFR5cGU8TT4sXG4gICAgY29tcGlsZXJPcHRpb25zOlxuICAgICAgfCAoQ29tcGlsZXJPcHRpb25zICYgQm9vdHN0cmFwT3B0aW9ucylcbiAgICAgIHwgQXJyYXk8Q29tcGlsZXJPcHRpb25zICYgQm9vdHN0cmFwT3B0aW9ucz4gPSBbXSxcbiAgKTogUHJvbWlzZTxOZ01vZHVsZVJlZjxNPj4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBvcHRpb25zUmVkdWNlcih7fSwgY29tcGlsZXJPcHRpb25zKTtcbiAgICByZXR1cm4gY29tcGlsZU5nTW9kdWxlRmFjdG9yeSh0aGlzLmluamVjdG9yLCBvcHRpb25zLCBtb2R1bGVUeXBlKS50aGVuKChtb2R1bGVGYWN0b3J5KSA9PlxuICAgICAgdGhpcy5ib290c3RyYXBNb2R1bGVGYWN0b3J5KG1vZHVsZUZhY3RvcnksIG9wdGlvbnMpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgbGlzdGVuZXIgdG8gYmUgY2FsbGVkIHdoZW4gdGhlIHBsYXRmb3JtIGlzIGRlc3Ryb3llZC5cbiAgICovXG4gIG9uRGVzdHJveShjYWxsYmFjazogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3lMaXN0ZW5lcnMucHVzaChjYWxsYmFjayk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBwbGF0Zm9ybSB7QGxpbmsgSW5qZWN0b3J9LCB3aGljaCBpcyB0aGUgcGFyZW50IGluamVjdG9yIGZvclxuICAgKiBldmVyeSBBbmd1bGFyIGFwcGxpY2F0aW9uIG9uIHRoZSBwYWdlIGFuZCBwcm92aWRlcyBzaW5nbGV0b24gcHJvdmlkZXJzLlxuICAgKi9cbiAgZ2V0IGluamVjdG9yKCk6IEluamVjdG9yIHtcbiAgICByZXR1cm4gdGhpcy5faW5qZWN0b3I7XG4gIH1cblxuICAvKipcbiAgICogRGVzdHJveXMgdGhlIGN1cnJlbnQgQW5ndWxhciBwbGF0Zm9ybSBhbmQgYWxsIEFuZ3VsYXIgYXBwbGljYXRpb25zIG9uIHRoZSBwYWdlLlxuICAgKiBEZXN0cm95cyBhbGwgbW9kdWxlcyBhbmQgbGlzdGVuZXJzIHJlZ2lzdGVyZWQgd2l0aCB0aGUgcGxhdGZvcm0uXG4gICAqL1xuICBkZXN0cm95KCkge1xuICAgIGlmICh0aGlzLl9kZXN0cm95ZWQpIHtcbiAgICAgIHRocm93IG5ldyBSdW50aW1lRXJyb3IoXG4gICAgICAgIFJ1bnRpbWVFcnJvckNvZGUuUExBVEZPUk1fQUxSRUFEWV9ERVNUUk9ZRUQsXG4gICAgICAgIG5nRGV2TW9kZSAmJiAnVGhlIHBsYXRmb3JtIGhhcyBhbHJlYWR5IGJlZW4gZGVzdHJveWVkIScsXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLl9tb2R1bGVzLnNsaWNlKCkuZm9yRWFjaCgobW9kdWxlKSA9PiBtb2R1bGUuZGVzdHJveSgpKTtcbiAgICB0aGlzLl9kZXN0cm95TGlzdGVuZXJzLmZvckVhY2goKGxpc3RlbmVyKSA9PiBsaXN0ZW5lcigpKTtcblxuICAgIGNvbnN0IGRlc3Ryb3lMaXN0ZW5lcnMgPSB0aGlzLl9pbmplY3Rvci5nZXQoUExBVEZPUk1fREVTVFJPWV9MSVNURU5FUlMsIG51bGwpO1xuICAgIGlmIChkZXN0cm95TGlzdGVuZXJzKSB7XG4gICAgICBkZXN0cm95TGlzdGVuZXJzLmZvckVhY2goKGxpc3RlbmVyKSA9PiBsaXN0ZW5lcigpKTtcbiAgICAgIGRlc3Ryb3lMaXN0ZW5lcnMuY2xlYXIoKTtcbiAgICB9XG5cbiAgICB0aGlzLl9kZXN0cm95ZWQgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoaXMgaW5zdGFuY2Ugd2FzIGRlc3Ryb3llZC5cbiAgICovXG4gIGdldCBkZXN0cm95ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rlc3Ryb3llZDtcbiAgfVxufVxuIl19
@@ -69,6 +69,9 @@ export class AfterRenderImpl {
69
69
  sequence.afterRun();
70
70
  if (sequence.once) {
71
71
  this.sequences.delete(sequence);
72
+ // Destroy the sequence so its on destroy callbacks can be cleaned up
73
+ // immediately, instead of waiting until the injector is destroyed.
74
+ sequence.destroy();
72
75
  }
73
76
  }
74
77
  for (const sequence of this.deferredRegistrations) {
@@ -138,4 +141,4 @@ export class AfterRenderSequence {
138
141
  this.unregisterOnDestroy?.();
139
142
  }
140
143
  }
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL3JlbmRlcjMvYWZ0ZXJfcmVuZGVyL21hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLGdCQUFnQixFQUFpQixNQUFNLE9BQU8sQ0FBQztBQUN2RCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBQ2xDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUNMLHdCQUF3QixHQUV6QixNQUFNLHVEQUF1RCxDQUFDO0FBRy9ELE1BQU0sT0FBTyxrQkFBa0I7SUFBL0I7UUFDRSxTQUFJLEdBQTJCLElBQUksQ0FBQztJQVl0QyxDQUFDO0lBVkMsT0FBTztRQUNMLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGtCQUFrQjthQUNYLFVBQUssR0FBNkIsa0JBQWtCLENBQUM7UUFDMUQsS0FBSyxFQUFFLGtCQUFrQjtRQUN6QixVQUFVLEVBQUUsTUFBTTtRQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxrQkFBa0IsRUFBRTtLQUN4QyxDQUFDLEFBSlUsQ0FJVDs7QUFHTCxNQUFNLE9BQU8sZUFBZTtJQUE1QjtRQVFtQixXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLGNBQVMsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUM3QyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztR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QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFDO0lBQy9CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtBZnRlclJlbmRlclBoYXNlLCBBZnRlclJlbmRlclJlZn0gZnJvbSAnLi9hcGknO1xuaW1wb3J0IHtOZ1pvbmV9IGZyb20gJy4uLy4uL3pvbmUnO1xuaW1wb3J0IHtpbmplY3R9IGZyb20gJy4uLy4uL2RpL2luamVjdG9yX2NvbXBhdGliaWxpdHknO1xuaW1wb3J0IHvJtcm1ZGVmaW5lSW5qZWN0YWJsZX0gZnJvbSAnLi4vLi4vZGkvaW50ZXJmYWNlL2RlZnMnO1xuaW1wb3J0IHtFcnJvckhhbmRsZXJ9IGZyb20gJy4uLy4uL2Vycm9yX2hhbmRsZXInO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU2NoZWR1bGVyLFxuICBOb3RpZmljYXRpb25Tb3VyY2UsXG59IGZyb20gJy4uLy4uL2NoYW5nZV9kZXRlY3Rpb24vc2NoZWR1bGluZy96b25lbGVzc19zY2hlZHVsaW5nJztcbmltcG9ydCB7dHlwZSBEZXN0cm95UmVmfSBmcm9tICcuLi8uLi9saW5rZXIvZGVzdHJveV9yZWYnO1xuXG5leHBvcnQgY2xhc3MgQWZ0ZXJSZW5kZXJNYW5hZ2VyIHtcbiAgaW1wbDogQWZ0ZXJSZW5kZXJJbXBsIHwgbnVsbCA9IG51bGw7XG5cbiAgZXhlY3V0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmltcGw/LmV4ZWN1dGUoKTtcbiAgfVxuXG4gIC8qKiBAbm9jb2xsYXBzZSAqL1xuICBzdGF0aWMgybVwcm92ID0gLyoqIEBwdXJlT3JCcmVha015Q29kZSAqLyDJtcm1ZGVmaW5lSW5qZWN0YWJsZSh7XG4gICAgdG9rZW46IEFmdGVyUmVuZGVyTWFuYWdlcixcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgZmFjdG9yeTogKCkgPT4gbmV3IEFmdGVyUmVuZGVyTWFuYWdlcigpLFxuICB9KTtcbn1cblxuZXhwb3J0IGNsYXNzIEFmdGVyUmVuZGVySW1wbCB7XG4gIHN0YXRpYyByZWFkb25seSBQSEFTRVMgPSBbXG4gICAgQWZ0ZXJSZW5kZXJQaGFzZS5FYXJseVJlYWQsXG4gICAgQWZ0ZXJSZW5kZXJQaGFzZS5Xcml0ZSxcbiAgICBBZnRlclJlbmRlclBoYXNlLk1peGVkUmVhZFdyaXRlLFxuICAgIEFmdGVyUmVuZGVyUGhhc2UuUmVhZCxcbiAgXSBhcyBjb25zdDtcblxuICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNjaGVkdWxlciA9IGluamVjdChDaGFuZ2VEZXRlY3Rpb25TY2hlZHVsZXIpO1xuICBwcml2YXRlIHJlYWRvbmx5IGVycm9ySGFuZGxlciA9IGluamVjdChFcnJvckhhbmRsZXIsIHtvcHRpb25hbDogdHJ1ZX0pO1xuXG4gIC8qKiBDdXJyZW50IHNldCBvZiBhY3RpdmUgc2VxdWVuY2VzLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHNlcXVlbmNlcyA9IG5ldyBTZXQ8QWZ0ZXJSZW5kZXJTZXF1ZW5jZT4oKTtcblxuICAvKiogVHJhY2tzIHJlZ2lzdHJhdGlvbnMgbWFkZSBkdXJpbmcgdGhlIGN1cnJlbnQgc2V0IG9mIGV4ZWN1dGlvbnMuICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmZXJyZWRSZWdpc3RyYXRpb25zID0gbmV3IFNldDxBZnRlclJlbmRlclNlcXVlbmNlPigpO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBgQWZ0ZXJSZW5kZXJNYW5hZ2VyYCBpcyBjdXJyZW50bHkgZXhlY3V0aW5nIGhvb2tzLiAqL1xuICBleGVjdXRpbmcgPSBmYWxzZTtcblxuICAvKipcbiAgICogUnVuIHRoZSBzZXF1ZW5jZSBvZiBwaGFzZXMgb2YgaG9va3MsIG9uY2UgdGhyb3VnaC4gQXMgYSByZXN1bHQgb2YgZXhlY3V0aW5nIHNvbWUgaG9va3MsIG1vcmVcbiAgICogbWlnaHQgYmUgc2NoZWR1bGVkLlxuICAgKi9cbiAgZXhlY3V0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmV4ZWN1dGluZyA9IHRydWU7XG4gICAgZm9yIChjb25zdCBwaGFzZSBvZiBBZnRlclJlbmRlckltcGwuUEhBU0VTKSB7XG4gICAgICBmb3IgKGNvbnN0IHNlcXVlbmNlIG9mIHRoaXMuc2VxdWVuY2VzKSB7XG4gICAgICAgIGlmIChzZXF1ZW5jZS5lcnJvcmVkT3JEZXN0cm95ZWQgfHwgIXNlcXVlbmNlLmhvb2tzW3BoYXNlXSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBzZXF1ZW5jZS5waXBlbGluZWRWYWx1ZSA9IHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+XG4gICAgICAgICAgICBzZXF1ZW5jZS5ob29rc1twaGFzZV0hKHNlcXVlbmNlLnBpcGVsaW5lZFZhbHVlKSxcbiAgICAgICAgICApO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICBzZXF1ZW5jZS5lcnJvcmVkT3JEZXN0cm95ZWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuZXJyb3JIYW5kbGVyPy5oYW5kbGVFcnJvcihlcnIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuZXhlY3V0aW5nID0gZmFsc2U7XG5cbiAgICAvLyBDbGVhbnVwIHN0ZXAgdG8gcmVzZXQgc2VxdWVuY2Ugc3RhdGUgYW5kIGFsc28gY29sbGVjdCBvbmUtc2hvdCBzZXF1ZW5jZXMgZm9yIHJlbW92YWwuXG4gICAgZm9yIChjb25zdCBzZXF1ZW5jZSBvZiB0aGlzLnNlcXVlbmNlcykge1xuICAgICAgc2VxdWVuY2UuYWZ0ZXJSdW4oKTtcbiAgICAgIGlmIChzZXF1ZW5jZS5vbmNlKSB7XG4gICAgICAgIHRoaXMuc2VxdWVuY2VzLmRlbGV0ZShzZXF1ZW5jZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBzZXF1ZW5jZSBvZiB0aGlzLmRlZmVycmVkUmVnaXN0cmF0aW9ucykge1xuICAgICAgdGhpcy5zZXF1ZW5jZXMuYWRkKHNlcXVlbmNlKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGVmZXJyZWRSZWdpc3RyYXRpb25zLnNpemUgPiAwKSB7XG4gICAgICB0aGlzLnNjaGVkdWxlci5ub3RpZnkoTm90aWZpY2F0aW9uU291cmNlLkRlZmVycmVkUmVuZGVySG9vayk7XG4gICAgfVxuICAgIHRoaXMuZGVmZXJyZWRSZWdpc3RyYXRpb25zLmNsZWFyKCk7XG4gIH1cblxuICByZWdpc3RlcihzZXF1ZW5jZTogQWZ0ZXJSZW5kZXJTZXF1ZW5jZSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5leGVjdXRpbmcpIHtcbiAgICAgIHRoaXMuc2VxdWVuY2VzLmFkZChzZXF1ZW5jZSk7XG4gICAgICAvLyBUcmlnZ2VyIGFuIGBBcHBsaWNhdGlvblJlZi50aWNrKClgIGlmIG9uZSBpcyBub3QgYWxyZWFkeSBwZW5kaW5nL3J1bm5pbmcsIGJlY2F1c2Ugd2UgaGF2ZSBhXG4gICAgICAvLyBuZXcgcmVuZGVyIGhvb2sgdGhhdCBuZWVkcyB0byBydW4uXG4gICAgICB0aGlzLnNjaGVkdWxlci5ub3RpZnkoTm90aWZpY2F0aW9uU291cmNlLlJlbmRlckhvb2spO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRlZmVycmVkUmVnaXN0cmF0aW9ucy5hZGQoc2VxdWVuY2UpO1xuICAgIH1cbiAgfVxuXG4gIHVucmVnaXN0ZXIoc2VxdWVuY2U6IEFmdGVyUmVuZGVyU2VxdWVuY2UpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5leGVjdXRpbmcgJiYgdGhpcy5zZXF1ZW5jZXMuaGFzKHNlcXVlbmNlKSkge1xuICAgICAgLy8gV2UgY2FuJ3QgcmVtb3ZlIGFuIGBBZnRlclJlbmRlclNlcXVlbmNlYCBpbiB0aGUgbWlkZGxlIG9mIGl0ZXJhdGlvbi5cbiAgICAgIC8vIEluc3RlYWQsIG1hcmsgaXQgYXMgZGVzdHJveWVkIHNvIGl0IGRvZXNuJ3QgcnVuIGFueSBtb3JlLCBhbmQgbWFyayBpdCBhcyBvbmUtc2hvdCBzbyBpdCdsbFxuICAgICAgLy8gYmUgcmVtb3ZlZCBhdCB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IGV4ZWN1dGlvbi5cbiAgICAgIHNlcXVlbmNlLmVycm9yZWRPckRlc3Ryb3llZCA9IHRydWU7XG4gICAgICBzZXF1ZW5jZS5waXBlbGluZWRWYWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgIHNlcXVlbmNlLm9uY2UgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJdCdzIHNhZmUgdG8gZGlyZWN0bHkgcmVtb3ZlIHRoaXMgc2VxdWVuY2UuXG4gICAgICB0aGlzLnNlcXVlbmNlcy5kZWxldGUoc2VxdWVuY2UpO1xuICAgICAgdGhpcy5kZWZlcnJlZFJlZ2lzdHJhdGlvbnMuZGVsZXRlKHNlcXVlbmNlKTtcbiAgICB9XG4gIH1cblxuICAvKiogQG5vY29sbGFwc2UgKi9cbiAgc3RhdGljIMm1cHJvdiA9IC8qKiBAcHVyZU9yQnJlYWtNeUNvZGUgKi8gybXJtWRlZmluZUluamVjdGFibGUoe1xuICAgIHRva2VuOiBBZnRlclJlbmRlckltcGwsXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIGZhY3Rvcnk6ICgpID0+IG5ldyBBZnRlclJlbmRlckltcGwoKSxcbiAgfSk7XG59XG5cbmV4cG9ydCB0eXBlIEFmdGVyUmVuZGVySG9vayA9ICh2YWx1ZT86IHVua25vd24pID0+IHVua25vd247XG5leHBvcnQgdHlwZSBBZnRlclJlbmRlckhvb2tzID0gW1xuICAvKiAgICAgIEVhcmx5UmVhZCAqLyBBZnRlclJlbmRlckhvb2sgfCB1bmRlZmluZWQsXG4gIC8qICAgICAgICAgIFdyaXRlICovIEFmdGVyUmVuZGVySG9vayB8IHVuZGVmaW5lZCxcbiAgLyogTWl4ZWRSZWFkV3JpdGUgKi8gQWZ0ZXJSZW5kZXJIb29rIHwgdW5kZWZpbmVkLFxuICAvKiAgICAgICAgICAgUmVhZCAqLyBBZnRlclJlbmRlckhvb2sgfCB1bmRlZmluZWQsXG5dO1xuXG5leHBvcnQgY2xhc3MgQWZ0ZXJSZW5kZXJTZXF1ZW5jZSBpbXBsZW1lbnRzIEFmdGVyUmVuZGVyUmVmIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBzZXF1ZW5jZSBlcnJvcmVkIG9yIHdhcyBkZXN0cm95ZWQgZHVyaW5nIHRoaXMgZXhlY3V0aW9uLCBhbmQgaG9va3Mgc2hvdWxkIG5vXG4gICAqIGxvbmdlciBydW4gZm9yIGl0LlxuICAgKi9cbiAgZXJyb3JlZE9yRGVzdHJveWVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSByZXR1cm5lZCBieSB0aGUgbGFzdCBob29rIGV4ZWN1dGlvbiAoaWYgYW55KSwgcmVhZHkgdG8gYmUgcGlwZWxpbmVkIGludG8gdGhlIG5leHRcbiAgICogb25lLlxuICAgKi9cbiAgcGlwZWxpbmVkVmFsdWU6IHVua25vd24gPSB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSB1bnJlZ2lzdGVyT25EZXN0cm95OiAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcmVhZG9ubHkgaW1wbDogQWZ0ZXJSZW5kZXJJbXBsLFxuICAgIHJlYWRvbmx5IGhvb2tzOiBBZnRlclJlbmRlckhvb2tzLFxuICAgIHB1YmxpYyBvbmNlOiBib29sZWFuLFxuICAgIGRlc3Ryb3lSZWY6IERlc3Ryb3lSZWYgfCBudWxsLFxuICApIHtcbiAgICB0aGlzLnVucmVnaXN0ZXJPbkRlc3Ryb3kgPSBkZXN0cm95UmVmPy5vbkRlc3Ryb3koKCkgPT4gdGhpcy5kZXN0cm95KCkpO1xuICB9XG5cbiAgYWZ0ZXJSdW4oKTogdm9pZCB7XG4gICAgdGhpcy5lcnJvcmVkT3JEZXN0cm95ZWQgPSBmYWxzZTtcbiAgICB0aGlzLnBpcGVsaW5lZFZhbHVlID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmltcGwudW5yZWdpc3Rlcih0aGlzKTtcbiAgICB0aGlzLnVucmVnaXN0ZXJPbkRlc3Ryb3k/LigpO1xuICB9XG59XG4iXX0=
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL3JlbmRlcjMvYWZ0ZXJfcmVuZGVyL21hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLGdCQUFnQixFQUFpQixNQUFNLE9BQU8sQ0FBQztBQUN2RCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBQ2xDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUNMLHdCQUF3QixHQUV6QixNQUFNLHVEQUF1RCxDQUFDO0FBRy9ELE1BQU0sT0FBTyxrQkFBa0I7SUFBL0I7UUFDRSxTQUFJLEdBQTJCLElBQUksQ0FBQztJQVl0QyxDQUFDO0lBVkMsT0FBTztRQUNMLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGtCQUFrQjthQUNYLFVBQUssR0FBNkIsa0JBQWtCLENBQUM7UUFDMUQsS0FBSyxFQUFFLGtCQUFrQjtRQUN6QixVQUFVLEVBQUUsTUFBTTtRQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxrQkFBa0IsRUFBRTtLQUN4QyxDQUFDLEFBSlUsQ0FJVDs7QUFHTCxNQUFNLE9BQU8sZUFBZTtJQUE1QjtRQVFtQixXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLGNBQVMsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUM3QyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztR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LE9BQU87UUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFDO0lBQy9CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtBZnRlclJlbmRlclBoYXNlLCBBZnRlclJlbmRlclJlZn0gZnJvbSAnLi9hcGknO1xuaW1wb3J0IHtOZ1pvbmV9IGZyb20gJy4uLy4uL3pvbmUnO1xuaW1wb3J0IHtpbmplY3R9IGZyb20gJy4uLy4uL2RpL2luamVjdG9yX2NvbXBhdGliaWxpdHknO1xuaW1wb3J0IHvJtcm1ZGVmaW5lSW5qZWN0YWJsZX0gZnJvbSAnLi4vLi4vZGkvaW50ZXJmYWNlL2RlZnMnO1xuaW1wb3J0IHtFcnJvckhhbmRsZXJ9IGZyb20gJy4uLy4uL2Vycm9yX2hhbmRsZXInO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU2NoZWR1bGVyLFxuICBOb3RpZmljYXRpb25Tb3VyY2UsXG59IGZyb20gJy4uLy4uL2NoYW5nZV9kZXRlY3Rpb24vc2NoZWR1bGluZy96b25lbGVzc19zY2hlZHVsaW5nJztcbmltcG9ydCB7dHlwZSBEZXN0cm95UmVmfSBmcm9tICcuLi8uLi9saW5rZXIvZGVzdHJveV9yZWYnO1xuXG5leHBvcnQgY2xhc3MgQWZ0ZXJSZW5kZXJNYW5hZ2VyIHtcbiAgaW1wbDogQWZ0ZXJSZW5kZXJJbXBsIHwgbnVsbCA9IG51bGw7XG5cbiAgZXhlY3V0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmltcGw/LmV4ZWN1dGUoKTtcbiAgfVxuXG4gIC8qKiBAbm9jb2xsYXBzZSAqL1xuICBzdGF0aWMgybVwcm92ID0gLyoqIEBwdXJlT3JCcmVha015Q29kZSAqLyDJtcm1ZGVmaW5lSW5qZWN0YWJsZSh7XG4gICAgdG9rZW46IEFmdGVyUmVuZGVyTWFuYWdlcixcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgZmFjdG9yeTogKCkgPT4gbmV3IEFmdGVyUmVuZGVyTWFuYWdlcigpLFxuICB9KTtcbn1cblxuZXhwb3J0IGNsYXNzIEFmdGVyUmVuZGVySW1wbCB7XG4gIHN0YXRpYyByZWFkb25seSBQSEFTRVMgPSBbXG4gICAgQWZ0ZXJSZW5kZXJQaGFzZS5FYXJseVJlYWQsXG4gICAgQWZ0ZXJSZW5kZXJQaGFzZS5Xcml0ZSxcbiAgICBBZnRlclJlbmRlclBoYXNlLk1peGVkUmVhZFdyaXRlLFxuICAgIEFmdGVyUmVuZGVyUGhhc2UuUmVhZCxcbiAgXSBhcyBjb25zdDtcblxuICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNjaGVkdWxlciA9IGluamVjdChDaGFuZ2VEZXRlY3Rpb25TY2hlZHVsZXIpO1xuICBwcml2YXRlIHJlYWRvbmx5IGVycm9ySGFuZGxlciA9IGluamVjdChFcnJvckhhbmRsZXIsIHtvcHRpb25hbDogdHJ1ZX0pO1xuXG4gIC8qKiBDdXJyZW50IHNldCBvZiBhY3RpdmUgc2VxdWVuY2VzLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHNlcXVlbmNlcyA9IG5ldyBTZXQ8QWZ0ZXJSZW5kZXJTZXF1ZW5jZT4oKTtcblxuICAvKiogVHJhY2tzIHJlZ2lzdHJhdGlvbnMgbWFkZSBkdXJpbmcgdGhlIGN1cnJlbnQgc2V0IG9mIGV4ZWN1dGlvbnMuICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmZXJyZWRSZWdpc3RyYXRpb25zID0gbmV3IFNldDxBZnRlclJlbmRlclNlcXVlbmNlPigpO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBgQWZ0ZXJSZW5kZXJNYW5hZ2VyYCBpcyBjdXJyZW50bHkgZXhlY3V0aW5nIGhvb2tzLiAqL1xuICBleGVjdXRpbmcgPSBmYWxzZTtcblxuICAvKipcbiAgICogUnVuIHRoZSBzZXF1ZW5jZSBvZiBwaGFzZXMgb2YgaG9va3MsIG9uY2UgdGhyb3VnaC4gQXMgYSByZXN1bHQgb2YgZXhlY3V0aW5nIHNvbWUgaG9va3MsIG1vcmVcbiAgICogbWlnaHQgYmUgc2NoZWR1bGVkLlxuICAgKi9cbiAgZXhlY3V0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmV4ZWN1dGluZyA9IHRydWU7XG4gICAgZm9yIChjb25zdCBwaGFzZSBvZiBBZnRlclJlbmRlckltcGwuUEhBU0VTKSB7XG4gICAgICBmb3IgKGNvbnN0IHNlcXVlbmNlIG9mIHRoaXMuc2VxdWVuY2VzKSB7XG4gICAgICAgIGlmIChzZXF1ZW5jZS5lcnJvcmVkT3JEZXN0cm95ZWQgfHwgIXNlcXVlbmNlLmhvb2tzW3BoYXNlXSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBzZXF1ZW5jZS5waXBlbGluZWRWYWx1ZSA9IHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+XG4gICAgICAgICAgICBzZXF1ZW5jZS5ob29rc1twaGFzZV0hKHNlcXVlbmNlLnBpcGVsaW5lZFZhbHVlKSxcbiAgICAgICAgICApO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICBzZXF1ZW5jZS5lcnJvcmVkT3JEZXN0cm95ZWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuZXJyb3JIYW5kbGVyPy5oYW5kbGVFcnJvcihlcnIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuZXhlY3V0aW5nID0gZmFsc2U7XG5cbiAgICAvLyBDbGVhbnVwIHN0ZXAgdG8gcmVzZXQgc2VxdWVuY2Ugc3RhdGUgYW5kIGFsc28gY29sbGVjdCBvbmUtc2hvdCBzZXF1ZW5jZXMgZm9yIHJlbW92YWwuXG4gICAgZm9yIChjb25zdCBzZXF1ZW5jZSBvZiB0aGlzLnNlcXVlbmNlcykge1xuICAgICAgc2VxdWVuY2UuYWZ0ZXJSdW4oKTtcbiAgICAgIGlmIChzZXF1ZW5jZS5vbmNlKSB7XG4gICAgICAgIHRoaXMuc2VxdWVuY2VzLmRlbGV0ZShzZXF1ZW5jZSk7XG4gICAgICAgIC8vIERlc3Ryb3kgdGhlIHNlcXVlbmNlIHNvIGl0cyBvbiBkZXN0cm95IGNhbGxiYWNrcyBjYW4gYmUgY2xlYW5lZCB1cFxuICAgICAgICAvLyBpbW1lZGlhdGVseSwgaW5zdGVhZCBvZiB3YWl0aW5nIHVudGlsIHRoZSBpbmplY3RvciBpcyBkZXN0cm95ZWQuXG4gICAgICAgIHNlcXVlbmNlLmRlc3Ryb3koKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHNlcXVlbmNlIG9mIHRoaXMuZGVmZXJyZWRSZWdpc3RyYXRpb25zKSB7XG4gICAgICB0aGlzLnNlcXVlbmNlcy5hZGQoc2VxdWVuY2UpO1xuICAgIH1cbiAgICBpZiAodGhpcy5kZWZlcnJlZFJlZ2lzdHJhdGlvbnMuc2l6ZSA+IDApIHtcbiAgICAgIHRoaXMuc2NoZWR1bGVyLm5vdGlmeShOb3RpZmljYXRpb25Tb3VyY2UuRGVmZXJyZWRSZW5kZXJIb29rKTtcbiAgICB9XG4gICAgdGhpcy5kZWZlcnJlZFJlZ2lzdHJhdGlvbnMuY2xlYXIoKTtcbiAgfVxuXG4gIHJlZ2lzdGVyKHNlcXVlbmNlOiBBZnRlclJlbmRlclNlcXVlbmNlKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmV4ZWN1dGluZykge1xuICAgICAgdGhpcy5zZXF1ZW5jZXMuYWRkKHNlcXVlbmNlKTtcbiAgICAgIC8vIFRyaWdnZXIgYW4gYEFwcGxpY2F0aW9uUmVmLnRpY2soKWAgaWYgb25lIGlzIG5vdCBhbHJlYWR5IHBlbmRpbmcvcnVubmluZywgYmVjYXVzZSB3ZSBoYXZlIGFcbiAgICAgIC8vIG5ldyByZW5kZXIgaG9vayB0aGF0IG5lZWRzIHRvIHJ1bi5cbiAgICAgIHRoaXMuc2NoZWR1bGVyLm5vdGlmeShOb3RpZmljYXRpb25Tb3VyY2UuUmVuZGVySG9vayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVmZXJyZWRSZWdpc3RyYXRpb25zLmFkZChzZXF1ZW5jZSk7XG4gICAgfVxuICB9XG5cbiAgdW5yZWdpc3RlcihzZXF1ZW5jZTogQWZ0ZXJSZW5kZXJTZXF1ZW5jZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmV4ZWN1dGluZyAmJiB0aGlzLnNlcXVlbmNlcy5oYXMoc2VxdWVuY2UpKSB7XG4gICAgICAvLyBXZSBjYW4ndCByZW1vdmUgYW4gYEFmdGVyUmVuZGVyU2VxdWVuY2VgIGluIHRoZSBtaWRkbGUgb2YgaXRlcmF0aW9uLlxuICAgICAgLy8gSW5zdGVhZCwgbWFyayBpdCBhcyBkZXN0cm95ZWQgc28gaXQgZG9lc24ndCBydW4gYW55IG1vcmUsIGFuZCBtYXJrIGl0IGFzIG9uZS1zaG90IHNvIGl0J2xsXG4gICAgICAvLyBiZSByZW1vdmVkIGF0IHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQgZXhlY3V0aW9uLlxuICAgICAgc2VxdWVuY2UuZXJyb3JlZE9yRGVzdHJveWVkID0gdHJ1ZTtcbiAgICAgIHNlcXVlbmNlLnBpcGVsaW5lZFZhbHVlID0gdW5kZWZpbmVkO1xuICAgICAgc2VxdWVuY2Uub25jZSA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEl0J3Mgc2FmZSB0byBkaXJlY3RseSByZW1vdmUgdGhpcyBzZXF1ZW5jZS5cbiAgICAgIHRoaXMuc2VxdWVuY2VzLmRlbGV0ZShzZXF1ZW5jZSk7XG4gICAgICB0aGlzLmRlZmVycmVkUmVnaXN0cmF0aW9ucy5kZWxldGUoc2VxdWVuY2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAbm9jb2xsYXBzZSAqL1xuICBzdGF0aWMgybVwcm92ID0gLyoqIEBwdXJlT3JCcmVha015Q29kZSAqLyDJtcm1ZGVmaW5lSW5qZWN0YWJsZSh7XG4gICAgdG9rZW46IEFmdGVyUmVuZGVySW1wbCxcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgZmFjdG9yeTogKCkgPT4gbmV3IEFmdGVyUmVuZGVySW1wbCgpLFxuICB9KTtcbn1cblxuZXhwb3J0IHR5cGUgQWZ0ZXJSZW5kZXJIb29rID0gKHZhbHVlPzogdW5rbm93bikgPT4gdW5rbm93bjtcbmV4cG9ydCB0eXBlIEFmdGVyUmVuZGVySG9va3MgPSBbXG4gIC8qICAgICAgRWFybHlSZWFkICovIEFmdGVyUmVuZGVySG9vayB8IHVuZGVmaW5lZCxcbiAgLyogICAgICAgICAgV3JpdGUgKi8gQWZ0ZXJSZW5kZXJIb29rIHwgdW5kZWZpbmVkLFxuICAvKiBNaXhlZFJlYWRXcml0ZSAqLyBBZnRlclJlbmRlckhvb2sgfCB1bmRlZmluZWQsXG4gIC8qICAgICAgICAgICBSZWFkICovIEFmdGVyUmVuZGVySG9vayB8IHVuZGVmaW5lZCxcbl07XG5cbmV4cG9ydCBjbGFzcyBBZnRlclJlbmRlclNlcXVlbmNlIGltcGxlbWVudHMgQWZ0ZXJSZW5kZXJSZWYge1xuICAvKipcbiAgICogV2hldGhlciB0aGlzIHNlcXVlbmNlIGVycm9yZWQgb3Igd2FzIGRlc3Ryb3llZCBkdXJpbmcgdGhpcyBleGVjdXRpb24sIGFuZCBob29rcyBzaG91bGQgbm9cbiAgICogbG9uZ2VyIHJ1biBmb3IgaXQuXG4gICAqL1xuICBlcnJvcmVkT3JEZXN0cm95ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIHZhbHVlIHJldHVybmVkIGJ5IHRoZSBsYXN0IGhvb2sgZXhlY3V0aW9uIChpZiBhbnkpLCByZWFkeSB0byBiZSBwaXBlbGluZWQgaW50byB0aGUgbmV4dFxuICAgKiBvbmUuXG4gICAqL1xuICBwaXBlbGluZWRWYWx1ZTogdW5rbm93biA9IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIHVucmVnaXN0ZXJPbkRlc3Ryb3k6ICgoKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICByZWFkb25seSBpbXBsOiBBZnRlclJlbmRlckltcGwsXG4gICAgcmVhZG9ubHkgaG9va3M6IEFmdGVyUmVuZGVySG9va3MsXG4gICAgcHVibGljIG9uY2U6IGJvb2xlYW4sXG4gICAgZGVzdHJveVJlZjogRGVzdHJveVJlZiB8IG51bGwsXG4gICkge1xuICAgIHRoaXMudW5yZWdpc3Rlck9uRGVzdHJveSA9IGRlc3Ryb3lSZWY/Lm9uRGVzdHJveSgoKSA9PiB0aGlzLmRlc3Ryb3koKSk7XG4gIH1cblxuICBhZnRlclJ1bigpOiB2b2lkIHtcbiAgICB0aGlzLmVycm9yZWRPckRlc3Ryb3llZCA9IGZhbHNlO1xuICAgIHRoaXMucGlwZWxpbmVkVmFsdWUgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBkZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuaW1wbC51bnJlZ2lzdGVyKHRoaXMpO1xuICAgIHRoaXMudW5yZWdpc3Rlck9uRGVzdHJveT8uKCk7XG4gIH1cbn1cbiJdfQ==
@@ -395,7 +395,7 @@ function createRootComponent(componentView, rootComponentDef, rootDirectives, ho
395
395
  function setRootNodeAttributes(hostRenderer, componentDef, hostRNode, rootSelectorOrNode) {
396
396
  if (rootSelectorOrNode) {
397
397
  // The placeholder will be replaced with the actual version at build time.
398
- setUpAttributes(hostRenderer, hostRNode, ['ng-version', '18.2.7']);
398
+ setUpAttributes(hostRenderer, hostRNode, ['ng-version', '18.2.9']);
399
399
  }
400
400
  else {
401
401
  // If host element is created as a part of this function call (i.e. `rootSelectorOrNode`
@@ -303,4 +303,4 @@ function getComponentId(componentDef) {
303
303
  }
304
304
  return compId;
305
305
  }
306
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL3JlbmRlcjMvZGVmaW5pdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RSxPQUFPLEVBQUMsa0JBQWtCLEVBQW1CLE1BQU0sV0FBVyxDQUFDO0FBSS9ELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUMsV0FBVyxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRTVDLE9BQU8sRUFBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFpQjFFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUdwRCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQTJSakU7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixtQkFBMkM7SUFFM0MsT0FBTyxhQUFhLENBQUMsR0FBRyxFQUFFO1FBQ3hCLCtFQUErRTtRQUMvRSwwREFBMEQ7UUFDMUQsQ0FBQyxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxDQUFDLElBQUksYUFBYSxFQUFFLENBQUM7UUFFbkUsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsbUJBQTZDLENBQUMsQ0FBQztRQUNqRixNQUFNLEdBQUcsR0FBb0Q7WUFDM0Qs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LEdBQUcsQ0FBQyxDQUFDO0lBRXZCLE1BQU0sTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUM7SUFFMUIsSUFBSSxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxFQUFFLENBQUM7UUFDbEQsSUFBSSxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNuQyxNQUFNLG1CQUFtQixHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUUsQ0FBQztZQUM1RCxJQUFJLG1CQUFtQixLQUFLLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDOUMsT0FBTyxDQUFDLElBQUksQ0FDVixrQkFBa0IscURBRWhCLDJEQUNFLG1CQUFtQixDQUFDLElBQ3RCLFVBQVUsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLG9CQUFvQix3QkFBd0IsQ0FDMUUsWUFBWSxDQUFDLFNBQVMsQ0FDdkIsZ0tBQWdLLENBQ2xLLENBQ0YsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneX0gZnJvbSAnLi4vY2hhbmdlX2RldGVjdGlvbi9jb25zdGFudHMnO1xuaW1wb3J0IHtmb3JtYXRSdW50aW1lRXJyb3IsIFJ1bnRpbWVFcnJvckNvZGV9IGZyb20gJy4uL2Vycm9ycyc7XG5pbXBvcnQge011dGFibGUsIFR5cGV9IGZyb20gJy4uL2ludGVyZmFjZS90eXBlJztcbmltcG9ydCB7TmdNb2R1bGVEZWZ9IGZyb20gJy4uL21ldGFkYXRhL25nX21vZHVsZV9kZWYnO1xuaW1wb3J0IHtTY2hlbWFNZXRhZGF0YX0gZnJvbSAnLi4vbWV0YWRhdGEvc2NoZW1hJztcbmltcG9ydCB7Vmlld0VuY2Fwc3VsYXRpb259IGZyb20gJy4uL21ldGFkYXRhL3ZpZXcnO1xuaW1wb3J0IHtub1NpZGVFZmZlY3RzfSBmcm9tICcuLi91dGlsL2Nsb3N1cmUnO1xuaW1wb3J0IHtFTVBUWV9BUlJBWSwgRU1QVFlfT0JKfSBmcm9tICcuLi91dGlsL2VtcHR5JztcbmltcG9ydCB7aW5pdE5nRGV2TW9kZX0gZnJvbSAnLi4vdXRpbC9uZ19kZXZfbW9kZSc7XG5pbXBvcnQge3N0cmluZ2lmeX0gZnJvbSAnLi4vdXRpbC9zdHJpbmdpZnknO1xuXG5pbXBvcnQge05HX0NPTVBfREVGLCBOR19ESVJfREVGLCBOR19NT0RfREVGLCBOR19QSVBFX0RFRn0gZnJvbSAnLi9maWVsZHMnO1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnREZWYsXG4gIENvbXBvbmVudERlZkZlYXR1cmUsXG4gIENvbXBvbmVudFRlbXBsYXRlLFxuICBDb250ZW50UXVlcmllc0Z1bmN0aW9uLFxuICBEZXBlbmRlbmN5VHlwZUxpc3QsXG4gIERpcmVjdGl2ZURlZixcbiAgRGlyZWN0aXZlRGVmRmVhdHVyZSxcbiAgRGlyZWN0aXZlRGVmTGlzdE9yRmFjdG9yeSxcbiAgSG9zdEJpbmRpbmdzRnVuY3Rpb24sXG4gIElucHV0VHJhbnNmb3JtRnVuY3Rpb24sXG4gIFBpcGVEZWYsXG4gIFBpcGVEZWZMaXN0T3JGYWN0b3J5LFxuICBUeXBlT3JGYWN0b3J5LFxuICBWaWV3UXVlcmllc0Z1bmN0aW9uLFxufSBmcm9tICcuL2ludGVyZmFjZXMvZGVmaW5pdGlvbic7XG5pbXBvcnQge0lucHV0RmxhZ3N9IGZyb20gJy4vaW50ZXJmYWNlcy9pbnB1dF9mbGFncyc7XG5pbXBvcnQgdHlwZSB7VEF0dHJpYnV0ZXMsIFRDb25zdGFudHNPckZhY3Rvcnl9IGZyb20gJy4vaW50ZXJmYWNlcy9ub2RlJztcbmltcG9ydCB7Q3NzU2VsZWN0b3JMaXN0fSBmcm9tICcuL2ludGVyZmFjZXMvcHJvamVjdGlvbic7XG5pbXBvcnQge3N0cmluZ2lmeUNTU1NlbGVjdG9yTGlzdH0gZnJvbSAnLi9ub2RlX3NlbGVjdG9yX21hdGNoZXInO1xuXG4vKipcbiAqIE1hcCBvZiBpbnB1dHMgZm9yIGEgZ2l2ZW4gZGlyZWN0aXZlL2NvbXBvbmVudC5cbiAqXG4gKiBHaXZlbjpcbiAqIGBgYFxuICogY2xhc3MgTXlDb21wb25lbnQge1xuICogICBASW5wdXQoKVxuICogICBwdWJsaWNJbnB1dDE6IHN0cmluZztcbiAqXG4gKiAgIEBJbnB1dCgncHVibGljSW5wdXQyJylcbiAqICAgZGVjbGFyZWRJbnB1dDI6IHN0cmluZztcbiAqXG4gKiAgIEBJbnB1dCh7dHJhbnNmb3JtOiAodmFsdWU6IGJvb2xlYW4pID0+IHZhbHVlID8gMSA6IDB9KVxuICogICB0cmFuc2Zvcm1lZElucHV0MzogbnVtYmVyO1xuICpcbiAqICAgc2lnbmFsSW5wdXQgPSBpbnB1dCgzKTtcbiAqIH1cbiAqIGBgYFxuICpcbiAqIGlzIGRlc2NyaWJlZCBhczpcbiAqIGBgYFxuICoge1xuICogICBwdWJsaWNJbnB1dDE6ICdwdWJsaWNJbnB1dDEnLFxuICogICBkZWNsYXJlZElucHV0MjogW0lucHV0RmxhZ3MuTm9uZSwgJ2RlY2xhcmVkSW5wdXQyJywgJ3B1YmxpY0lucHV0MiddLFxuICogICB0cmFuc2Zvcm1lZElucHV0MzogW1xuICogICAgIElucHV0RmxhZ3MuTm9uZSxcbiAqICAgICAndHJhbnNmb3JtZWRJbnB1dDMnLFxuICogICAgICd0cmFuc2Zvcm1lZElucHV0MycsXG4gKiAgICAgKHZhbHVlOiBib29sZWFuKSA9PiB2YWx1ZSA/IDEgOiAwXG4gKiAgIF0sXG4gKiAgIHNpZ25hbElucHV0OiBbSW5wdXRGbGFncy5TaWduYWxCYXNlZCwgXCJzaWduYWxJbnB1dFwiXSxcbiAqIH1cbiAqIGBgYFxuICpcbiAqIFdoaWNoIHRoZSBtaW5pZmllciBtYXkgdHJhbnNsYXRlIHRvOlxuICogYGBgXG4gKiB7XG4gKiAgIG1pbmlmaWVkUHVibGljSW5wdXQxOiAncHVibGljSW5wdXQxJyxcbiAqICAgbWluaWZpZWREZWNsYXJlZElucHV0MjogW0lucHV0RmxhZ3MuTm9uZSwgJ3B1YmxpY0lucHV0MicsICdkZWNsYXJlZElucHV0MiddLFxuICogICBtaW5pZmllZFRyYW5zZm9ybWVkSW5wdXQzOiBbXG4gKiAgICAgSW5wdXRGbGFncy5Ob25lLFxuICogICAgICd0cmFuc2Zvcm1lZElucHV0MycsXG4gKiAgICAgJ3RyYW5zZm9ybWVkSW5wdXQzJyxcbiAqICAgICAodmFsdWU6IGJvb2xlYW4pID0+IHZhbHVlID8gMSA6IDBcbiAqICAgXSxcbiAqICAgbWluaWZpZWRTaWduYWxJbnB1dDogW0lucHV0RmxhZ3MuU2lnbmFsQmFzZWQsIFwic2lnbmFsSW5wdXRcIl0sXG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBUaGlzIGFsbG93cyB0aGUgcmVuZGVyIHRvIHJlLWNvbnN0cnVjdCB0aGUgbWluaWZpZWQsIHB1YmxpYywgYW5kIGRlY2xhcmVkIG5hbWVzXG4gKiBvZiBwcm9wZXJ0aWVzLlxuICpcbiAqIE5PVEU6XG4gKiAgLSBCZWNhdXNlIGRlY2xhcmVkIGFuZCBwdWJsaWMgbmFtZSBhcmUgdXN1YWxseSBzYW1lIHdlIG9ubHkgZ2VuZXJhdGUgdGhlIGFycmF5XG4gKiAgICBgWydkZWNsYXJlZCcsICdwdWJsaWMnXWAgZm9ybWF0IHdoZW4gdGhleSBkaWZmZXIsIG9yIHRoZXJlIGlzIGEgdHJhbnNmb3JtLlxuICogIC0gVGhlIHJlYXNvbiB3aHkgdGhpcyBBUEkgYW5kIGBvdXRwdXRzYCBBUEkgaXMgbm90IHRoZSBzYW1lIGlzIHRoYXQgYE5nT25DaGFuZ2VzYCBoYXNcbiAqICAgIGluY29uc2lzdGVudCBiZWhhdmlvciBpbiB0aGF0IGl0IHVzZXMgZGVjbGFyZWQgbmFtZXMgcmF0aGVyIHRoYW4gbWluaWZpZWQgb3IgcHVibGljLlxuICovXG50eXBlIERpcmVjdGl2ZUlucHV0czxUPiA9IHtcbiAgW1AgaW4ga2V5b2YgVF0/OiAgLy8gQmFzaWMgY2FzZS4gTWFwcGluZyBtaW5pZmllZCBuYW1lIHRvIHB1YmxpYyBuYW1lLlxuICAgIHwgc3RyaW5nXG4gICAgLy8gQ29tcGxleCBpbnB1dCB3aGVuIHRoZXJlIGFyZSBmbGFncywgb3IgZGlmZmVyaW5nIHB1YmxpYyBuYW1lIGFuZCBkZWNsYXJlZCBuYW1lLCBvciB0aGVyZVxuICAgIC8vIGlzIGEgdHJhbnNmb3JtLiBTdWNoIGlucHV0cyBhcmUgbm90IGFzIGNvbW1vbiwgc28gdGhlIGFycmF5IGZvcm0gaXMgb25seSBnZW5lcmF0ZWQgdGhlbi5cbiAgICB8IFtcbiAgICAgICAgZmxhZ3M6IElucHV0RmxhZ3MsXG4gICAgICAgIHB1YmxpY05hbWU6IHN0cmluZyxcbiAgICAgICAgZGVjbGFyZWROYW1lPzogc3RyaW5nLFxuICAgICAgICB0cmFuc2Zvcm0/OiBJbnB1dFRyYW5zZm9ybUZ1bmN0aW9uLFxuICAgICAgXTtcbn07XG5cbmludGVyZmFjZSBEaXJlY3RpdmVEZWZpbml0aW9uPFQ+IHtcbiAgLyoqXG4gICAqIERpcmVjdGl2ZSB0eXBlLCBuZWVkZWQgdG8gY29uZmlndXJlIHRoZSBpbmplY3Rvci5cbiAgICovXG4gIHR5cGU6IFR5cGU8VD47XG5cbiAgLyoqIFRoZSBzZWxlY3RvcnMgdGhhdCB3aWxsIGJlIHVzZWQgdG8gbWF0Y2ggbm9kZXMgdG8gdGhpcyBkaXJlY3RpdmUuICovXG4gIHNlbGVjdG9ycz86IENzc1NlbGVjdG9yTGlzdDtcblxuICAvKipcbiAgICogQSBtYXAgb2YgaW5wdXQgbmFtZXMuXG4gICAqL1xuICBpbnB1dHM/OiBEaXJlY3RpdmVJbnB1dHM8VD47XG5cbiAgLyoqXG4gICAqIEEgbWFwIG9mIG91dHB1dCBuYW1lcy5cbiAgICpcbiAgICogVGhlIGZvcm1hdCBpcyBpbjogYHtbYWN0dWFsUHJvcGVydHlOYW1lOiBzdHJpbmddOnN0cmluZ31gLlxuICAgKlxuICAgKiBXaGljaCB0aGUgbWluaWZpZXIgbWF5IHRyYW5zbGF0ZSB0bzogYHtbbWluaWZpZWRQcm9wZXJ0eU5hbWU6IHN0cmluZ106c3RyaW5nfWAuXG4gICAqXG4gICAqIFRoaXMgYWxsb3dzIHRoZSByZW5kZXIgdG8gcmUtY29uc3RydWN0IHRoZSBtaW5pZmllZCBhbmQgbm9uLW1pbmlmaWVkIG5hbWVzXG4gICAqIG9mIHByb3BlcnRpZXMuXG4gICAqL1xuICBvdXRwdXRzPzoge1tQIGluIGtleW9mIFRdPzogc3RyaW5nfTtcblxuICAvKipcbiAgICogQSBsaXN0IG9mIG9wdGlvbmFsIGZlYXR1cmVzIHRvIGFwcGx5LlxuICAgKlxuICAgKiBTZWU6IHtAbGluayBOZ09uQ2hhbmdlc0ZlYXR1cmV9LCB7QGxpbmsgUHJvdmlkZXJzRmVhdHVyZX0sIHtAbGluayBJbmhlcml0RGVmaW5pdGlvbkZlYXR1cmV9XG4gICAqL1xuICBmZWF0dXJlcz86IERpcmVjdGl2ZURlZkZlYXR1cmVbXTtcblxuICAvKipcbiAgICogRnVuY3Rpb24gZXhlY3V0ZWQgYnkgdGhlIHBhcmVudCB0ZW1wbGF0ZSB0byBhbGxvdyBjaGlsZCBkaXJlY3RpdmUgdG8gYXBwbHkgaG9zdCBiaW5kaW5ncy5cbiAgICovXG4gIGhvc3RCaW5kaW5ncz86IEhvc3RCaW5kaW5nc0Z1bmN0aW9uPFQ+O1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGJpbmRpbmdzIGluIHRoaXMgZGlyZWN0aXZlIGBob3N0QmluZGluZ3NgIChpbmNsdWRpbmcgcHVyZSBmbiBiaW5kaW5ncykuXG4gICAqXG4gICAqIFVzZWQgdG8gY2FsY3VsYXRlIHRoZSBsZW5ndGggb2YgdGhlIGNvbXBvbmVudCdzIExWaWV3IGFycmF5LCBzbyB3ZVxuICAgKiBjYW4gcHJlLWZpbGwgdGhlIGFycmF5IGFuZCBzZXQgdGhlIGhvc3QgYmluZGluZyBzdGFydCBpbmRleC5cbiAgICovXG4gIGhvc3RWYXJzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBc3NpZ24gc3RhdGljIGF0dHJpYnV0ZSB2YWx1ZXMgdG8gYSBob3N0IGVsZW1lbnQuXG4gICAqXG4gICAqIFRoaXMgcHJvcGVydHkgd2lsbCBhc3NpZ24gc3RhdGljIGF0dHJpYnV0ZSB2YWx1ZXMgYXMgd2VsbCBhcyBjbGFzcyBhbmQgc3R5bGVcbiAgICogdmFsdWVzIHRvIGEgaG9zdCBlbGVtZW50LiBTaW5jZSBhdHRyaWJ1dGUgdmFsdWVzIGNhbiBjb25zaXN0IG9mIGRpZmZlcmVudCB0eXBlcyBvZiB2YWx1ZXMsXG4gICAqIHRoZSBgaG9zdEF0dHJzYCBhcnJheSBtdXN0IGluY2x1ZGUgdGhlIHZhbHVlcyBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDpcbiAgICpcbiAgICogYXR0cnMgPSBbXG4gICAqICAgLy8gc3RhdGljIGF0dHJpYnV0ZXMgKGxpa2UgYHRpdGxlYCwgYG5hbWVgLCBgaWRgLi4uKVxuICAgKiAgIGF0dHIxLCB2YWx1ZTEsIGF0dHIyLCB2YWx1ZSxcbiAgICpcbiAgICogICAvLyBhIHNpbmdsZSBuYW1lc3BhY2UgdmFsdWUgKGxpa2UgYHg6aWRgKVxuICAgKiAgIE5BTUVTUEFDRV9NQVJLRVIsIG5hbWVzcGFjZVVyaTEsIG5hbWUxLCB2YWx1ZTEsXG4gICAqXG4gICAqICAgLy8gYW5vdGhlciBzaW5nbGUgbmFtZXNwYWNlIHZhbHVlIChsaWtlIGB4Om5hbWVgKVxuICAgKiAgIE5BTUVTUEFDRV9NQVJLRVIsIG5hbWVzcGFjZVVyaTIsIG5hbWUyLCB2YWx1ZTIsXG4gICAqXG4gICAqICAgLy8gYSBzZXJpZXMgb2YgQ1NTIGNsYXNzZXMgdGhhdCB3aWxsIGJlIGFwcGxpZWQgdG8gdGhlIGVsZW1lbnQgKG5vIHNwYWNlcylcbiAgICogICBDTEFTU0VTX01BUktFUiwgY2xhc3MxLCBjbGFzczIsIGNsYXNzMyxcbiAgICpcbiAgICogICAvLyBhIHNlcmllcyBvZiBDU1Mgc3R5bGVzIChwcm9wZXJ0eSArIHZhbHVlKSB0aGF0IHdpbGwgYmUgYXBwbGllZCB0byB0aGUgZWxlbWVudFxuICAgKiAgIFNUWUxFU19NQVJLRVIsIHByb3AxLCB2YWx1ZTEsIHByb3AyLCB2YWx1ZTJcbiAgICogXVxuICAgKlxuICAgKiBBbGwgbm9uLWNsYXNzIGFuZCBub24tc3R5bGUgYXR0cmlidXRlcyBtdXN0IGJlIGRlZmluZWQgYXQgdGhlIHN0YXJ0IG9mIHRoZSBsaXN0XG4gICAqIGZpcnN0IGJlZm9yZSBhbGwgY2xhc3MgYW5kIHN0eWxlIHZhbHVlcyBhcmUgc2V0LiBXaGVuIHRoZXJlIGlzIGEgY2hhbmdlIGluIHZhbHVlXG4gICAqIHR5cGUgKGxpa2Ugd2hlbiBjbGFzc2VzIGFuZCBzdHlsZXMgYXJlIGludHJvZHVjZWQpIGEgbWFya2VyIG11c3QgYmUgdXNlZCB0byBzZXBhcmF0ZVxuICAgKiB0aGUgZW50cmllcy4gVGhlIG1hcmtlciB2YWx1ZXMgdGhlbXNlbHZlcyBhcmUgc2V0IHZpYSBlbnRyaWVzIGZvdW5kIGluIHRoZVxuICAgKiBbQXR0cmlidXRlTWFya2VyXSBlbnVtLlxuICAgKi9cbiAgaG9zdEF0dHJzPzogVEF0dHJpYnV0ZXM7XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRvIGNyZWF0ZSBpbnN0YW5jZXMgb2YgY29udGVudCBxdWVyaWVzIGFzc29jaWF0ZWQgd2l0aCBhIGdpdmVuIGRpcmVjdGl2ZS5cbiAgICovXG4gIGNvbnRlbnRRdWVyaWVzPzogQ29udGVudFF1ZXJpZXNGdW5jdGlvbjxUPjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBzZXQgb2YgaW5zdHJ1Y3Rpb25zIHNwZWNpZmljIHRvIHZpZXcgcXVlcnkgcHJvY2Vzc2luZy4gVGhpcyBjb3VsZCBiZSBzZWVuIGFzIGFcbiAgICogc2V0IG9mIGluc3RydWN0aW9ucyB0byBiZSBpbnNlcnRlZCBpbnRvIHRoZSB0ZW1wbGF0ZSBmdW5jdGlvbi5cbiAgICovXG4gIHZpZXdRdWVyeT86IFZpZXdRdWVyaWVzRnVuY3Rpb248VD4gfCBudWxsO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBuYW1lIHRoYXQgY2FuIGJlIHVzZWQgaW4gdGhlIHRlbXBsYXRlIHRvIGFzc2lnbiB0aGlzIGRpcmVjdGl2ZSB0byBhIHZhcmlhYmxlLlxuICAgKlxuICAgKiBTZWU6IHtAbGluayBEaXJlY3RpdmUuZXhwb3J0QXN9XG4gICAqL1xuICBleHBvcnRBcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgZGlyZWN0aXZlL2NvbXBvbmVudCBpcyBzdGFuZGFsb25lLlxuICAgKi9cbiAgc3RhbmRhbG9uZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBkaXJlY3RpdmUvY29tcG9uZW50IGlzIHNpZ25hbC1iYXNlZC5cbiAgICovXG4gIHNpZ25hbHM/OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgQ29tcG9uZW50RGVmaW5pdGlvbjxUPiBleHRlbmRzIE9taXQ8RGlyZWN0aXZlRGVmaW5pdGlvbjxUPiwgJ2ZlYXR1cmVzJz4ge1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBub2RlcywgbG9jYWwgcmVmcywgYW5kIHBpcGVzIGluIHRoaXMgY29tcG9uZW50IHRlbXBsYXRlLlxuICAgKlxuICAgKiBVc2VkIHRvIGNhbGN1bGF0ZSB0aGUgbGVuZ3RoIG9mIHRoaXMgY29tcG9uZW50J3MgTFZpZXcgYXJyYXksIHNvIHdlXG4gICAqIGNhbiBwcmUtZmlsbCB0aGUgYXJyYXkgYW5kIHNldCB0aGUgYmluZGluZyBzdGFydCBpbmRleC5cbiAgICovXG4gIGRlY2xzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgYmluZGluZ3MgaW4gdGhpcyBjb21wb25lbnQgdGVtcGxhdGUgKGluY2x1ZGluZyBwdXJlIGZuIGJpbmRpbmdzKS5cbiAgICpcbiAgICogVXNlZCB0byBjYWxjdWxhdGUgdGhlIGxlbmd0aCBvZiB0aGlzIGNvbXBvbmVudCdzIExWaWV3IGFycmF5LCBzbyB3ZVxuICAgKiBjYW4gcHJlLWZpbGwgdGhlIGFycmF5IGFuZCBzZXQgdGhlIGhvc3QgYmluZGluZyBzdGFydCBpbmRleC5cbiAgICovXG4gIHZhcnM6IG51bWJlcjtcblxuICAvKipcbiAgICogVGVtcGxhdGUgZnVuY3Rpb24gdXNlIGZvciByZW5kZXJpbmcgRE9NLlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGhhcyBmb2xsb3dpbmcgc3RydWN0dXJlLlxuICAgKlxuICAgKiBgYGBcbiAgICogZnVuY3Rpb24gVGVtcGxhdGU8VD4oY3R4OlQsIGNyZWF0aW9uTW9kZTogYm9vbGVhbikge1xuICAgKiAgIGlmIChjcmVhdGlvbk1vZGUpIHtcbiAgICogICAgIC8vIENvbnRhaW5zIGNyZWF0aW9uIG1vZGUgaW5zdHJ1Y3Rpb25zLlxuICAgKiAgIH1cbiAgICogICAvLyBDb250YWlucyBiaW5kaW5nIHVwZGF0ZSBpbnN0cnVjdGlvbnNcbiAgICogfVxuICAgKiBgYGBcbiAgICpcbiAgICogQ29tbW9uIGluc3RydWN0aW9ucyBhcmU6XG4gICAqIENyZWF0aW9uIG1vZGUgaW5zdHJ1Y3Rpb25zOlxuICAgKiAgLSBgZWxlbWVudFN0YXJ0YCwgYGVsZW1lbnRFbmRgXG4gICAqICAtIGB0ZXh0YFxuICAgKiAgLSBgY29udGFpbmVyYFxuICAgKiAgLSBgbGlzdGVuZXJgXG4gICAqXG4gICAqIEJpbmRpbmcgdXBkYXRlIGluc3RydWN0aW9uczpcbiAgICogLSBgYmluZGBcbiAgICogLSBgZWxlbWVudEF0dHJpYnV0ZWBcbiAgICogLSBgZWxlbWVudFByb3BlcnR5YFxuICAgKiAtIGBlbGVtZW50Q2xhc3NgXG4gICAqIC0gYGVsZW1lbnRTdHlsZWBcbiAgICpcbiAgICovXG4gIHRlbXBsYXRlOiBDb21wb25lbnRUZW1wbGF0ZTxUPjtcblxuICAvKipcbiAgICogQ29uc3RhbnRzIGZvciB0aGUgbm9kZXMgaW4gdGhlIGNvbXBvbmVudCdzIHZpZXcuXG4gICAqIEluY2x1ZGVzIGF0dHJpYnV0ZSBhcnJheXMsIGxvY2FsIGRlZmluaXRpb24gYXJyYXlzIGV0Yy5cbiAgICovXG4gIGNvbnN0cz86IFRDb25zdGFudHNPckZhY3Rvcnk7XG5cbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIGBuZ0NvbnRlbnRbc2VsZWN0b3JdYCB2YWx1ZXMgdGhhdCB3ZXJlIGZvdW5kIGluIHRoZSB0ZW1wbGF0ZS5cbiAgICovXG4gIG5nQ29udGVudFNlbGVjdG9ycz86IHN0cmluZ1tdO1xuICAvKipcbiAgICogQSBsaXN0IG9mIG9wdGlvbmFsIGZlYXR1cmVzIHRvIGFwcGx5LlxuICAgKlxuICAgKiBTZWU6IHtAbGluayBOZ09uQ2hhbmdlc0ZlYXR1cmV9LCB7QGxpbmsgUHJvdmlkZXJzRmVhdHVyZX1cbiAgICovXG4gIGZlYXR1cmVzPzogQ29tcG9uZW50RGVmRmVhdHVyZVtdO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHRlbXBsYXRlIGFuZCBzdHlsZSBlbmNhcHN1bGF0aW9uIG9wdGlvbnMgYXZhaWxhYmxlIGZvciBDb21wb25lbnQncyB7QGxpbmsgQ29tcG9uZW50fS5cbiAgICovXG4gIGVuY2Fwc3VsYXRpb24/OiBWaWV3RW5jYXBzdWxhdGlvbjtcblxuICAvKipcbiAgICogRGVmaW5lcyBhcmJpdHJhcnkgZGV2ZWxvcGVyLWRlZmluZWQgZGF0YSB0byBiZSBzdG9yZWQgb24gYSByZW5kZXJlciBpbnN0YW5jZS5cbiAgICogVGhpcyBpcyB1c2VmdWwgZm9yIHJlbmRlcmVycyB0aGF0IGRlbGVnYXRlIHRvIG90aGVyIHJlbmRlcmVycy5cbiAgICpcbiAgICogc2VlOiBhbmltYXRpb25cbiAgICovXG4gIGRhdGE/OiB7W2tpbmQ6IHN0cmluZ106IGFueX07XG5cbiAgLyoqXG4gICAqIEEgc2V0IG9mIHN0eWxlcyB0aGF0IHRoZSBjb21wb25lbnQgbmVlZHMgdG8gYmUgcHJlc2VudCBmb3IgY29tcG9uZW50IHRvIHJlbmRlciBjb3JyZWN0bHkuXG4gICAqL1xuICBzdHlsZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHN0cmF0ZWd5IHRoYXQgdGhlIGRlZmF1bHQgY2hhbmdlIGRldGVjdG9yIHVzZXMgdG8gZGV0ZWN0IGNoYW5nZXMuXG4gICAqIFdoZW4gc2V0LCB0YWtlcyBlZmZlY3QgdGhlIG5leHQgdGltZSBjaGFuZ2UgZGV0ZWN0aW9uIGlzIHRyaWdnZXJlZC5cbiAgICovXG4gIGNoYW5nZURldGVjdGlvbj86IENoYW5nZURldGVjdGlvblN0cmF0ZWd5O1xuXG4gIC8qKlxuICAgKiBSZWdpc3RyeSBvZiBkaXJlY3RpdmVzLCBjb21wb25lbnRzLCBhbmQgcGlwZXMgdGhhdCBtYXkgYmUgZm91bmQgaW4gdGhpcyBjb21wb25lbnQncyB2aWV3LlxuICAgKlxuICAgKiBUaGlzIHByb3BlcnR5IGlzIGVpdGhlciBhbiBhcnJheSBvZiB0eXBlcyBvciBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgYXJyYXkgb2YgdHlwZXMuIFRoaXNcbiAgICogZnVuY3Rpb24gbWF5IGJlIG5lY2Vzc2FyeSB0byBzdXBwb3J0IGZvcndhcmQgZGVjbGFyYXRpb25zLlxuICAgKi9cbiAgZGVwZW5kZW5jaWVzPzogVHlwZU9yRmFjdG9yeTxEZXBlbmRlbmN5VHlwZUxpc3Q+O1xuXG4gIC8qKlxuICAgKiBUaGUgc2V0IG9mIHNjaGVtYXMgdGhhdCBkZWNsYXJlIGVsZW1lbnRzIHRvIGJlIGFsbG93ZWQgaW4gdGhlIGNvbXBvbmVudCdzIHRlbXBsYXRlLlxuICAgKi9cbiAgc2NoZW1hcz86IFNjaGVtYU1ldGFkYXRhW10gfCBudWxsO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIGNvbXBvbmVudCBkZWZpbml0aW9uIG9iamVjdC5cbiAqXG4gKlxuICogIyBFeGFtcGxlXG4gKiBgYGBcbiAqIGNsYXNzIE15Q29tcG9uZW50IHtcbiAqICAgLy8gR2VuZXJhdGVkIGJ5IEFuZ3VsYXIgVGVtcGxhdGUgQ29tcGlsZXJcbiAqICAgLy8gW1N5bWJvbF0gc3ludGF4IHdpbGwgbm90IGJlIHN1cHBvcnRlZCBieSBUeXBlU2NyaXB0IHVudGlsIHYyLjdcbiAqICAgc3RhdGljIMm1Y21wID0gZGVmaW5lQ29tcG9uZW50KHtcbiAqICAgICAuLi5cbiAqICAgfSk7XG4gKiB9XG4gKiBgYGBcbiAqIEBjb2RlR2VuQXBpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiDJtcm1ZGVmaW5lQ29tcG9uZW50PFQ+KFxuICBjb21wb25lbnREZWZpbml0aW9uOiBDb21wb25lbnREZWZpbml0aW9uPFQ+LFxuKTogTXV0YWJsZTxDb21wb25lbnREZWY8YW55Piwga2V5b2YgQ29tcG9uZW50RGVmPGFueT4+IHtcbiAgcmV0dXJuIG5vU2lkZUVmZmVjdHMoKCkgPT4ge1xuICAgIC8vIEluaXRpYWxpemUgbmdEZXZNb2RlLiBUaGlzIG11c3QgYmUgdGhlIGZpcnN0IHN0YXRlbWVudCBpbiDJtcm1ZGVmaW5lQ29tcG9uZW50LlxuICAgIC8vIFNlZSB0aGUgYGluaXROZ0Rldk1vZGVgIGRvY3N0cmluZyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAgICAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSAmJiBpbml0TmdEZXZNb2RlKCk7XG5cbiAgICBjb25zdCBiYXNlRGVmID0gZ2V0TmdEaXJlY3RpdmVEZWYoY29tcG9uZW50RGVmaW5pdGlvbiBhcyBEaXJlY3RpdmVEZWZpbml0aW9uPFQ+KTtcbiAgICBjb25zdCBkZWY6IE11dGFibGU8Q29tcG9uZW50RGVmPFQ+LCBrZXlvZiBDb21wb25lbnREZWY8VD4+ID0ge1xuICAgICAgLi4uYmFzZURlZixcbiAgICAgIGRlY2xzOiBjb21wb25lbnREZWZpbml0aW9uLmRlY2xzLFxuICAgICAgdmFyczogY29tcG9uZW50RGVmaW5pdGlvbi52YXJzLFxuICAgICAgdGVtcGxhdGU6IGNvbXBvbmVudERlZmluaXRpb24udGVtcGxhdGUsXG4gICAgICBjb25zdHM6IGNvbXBvbmVudERlZmluaXRpb24uY29uc3RzIHx8IG51bGwsXG4gICAgICBuZ0NvbnRlbnRTZWxlY3RvcnM6IGNvbXBvbmVudERlZmluaXRpb24ubmdDb250ZW50U2VsZWN0b3JzLFxuICAgICAgb25QdXNoOiBjb21wb25lbnREZWZpbml0aW9uLmNoYW5nZURldGVjdGlvbiA9PT0gQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgZGlyZWN0aXZlRGVmczogbnVsbCEsIC8vIGFzc2lnbmVkIGluIG5vU2lkZUVmZmVjdHNcbiAgICAgIHBpcGVEZWZzOiBudWxsISwgLy8gYXNzaWduZWQgaW4gbm9TaWRlRWZmZWN0c1xuICAgICAgZGVwZW5kZW5jaWVzOiAoYmFzZURlZi5zdGFuZGFsb25lICYmIGNvbXBvbmVudERlZmluaXRpb24uZGVwZW5kZW5jaWVzKSB8fCBudWxsLFxuICAgICAgZ2V0U3RhbmRhbG9uZUluamVjdG9yOiBudWxsLFxuICAgICAgc2lnbmFsczogY29tcG9uZW50RGVmaW5pdGlvbi5zaWduYWxzID8/IGZhbHNlLFxuICAgICAgZGF0YTogY29tcG9uZW50RGVmaW5pdGlvbi5kYXRhIHx8IHt9LFxuICAgICAgZW5jYXBzdWxhdGlvbjogY29tcG9uZW50RGVmaW5pdGlvbi5lbmNhcHN1bGF0aW9uIHx8IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkLFxuICAgICAgc3R5bGVzOiBjb21wb25lbnREZWZpbml0aW9uLnN0eWxlcyB8fCBFTVBUWV9BUlJBWSxcbiAgICAgIF86IG51bGwsXG4gICAgICBzY2hlbWFzOiBjb21wb25lbnREZWZpbml0aW9uLnNjaGVtYXMgfHwgbnVsbCxcbiAgICAgIHRWaWV3OiBudWxsLFxuICAgICAgaWQ6ICcnLFxuICAgIH07XG5cbiAgICBpbml0RmVhdHVyZXMoZGVmKTtcbiAgICBjb25zdCBkZXBlbmRlbmNpZXMgPSBjb21wb25lbnREZWZpbml0aW9uLmRlcGVuZGVuY2llcztcbiAgICBkZWYuZGlyZWN0aXZlRGVmcyA9IGV4dHJhY3REZWZMaXN0T3JGYWN0b3J5KGRlcGVuZGVuY2llcywgLyogcGlwZURlZiAqLyBmYWxzZSk7XG4gICAgZGVmLnBpcGVEZWZzID0gZXh0cmFjdERlZkxpc3RPckZhY3RvcnkoZGVwZW5kZW5jaWVzLCAvKiBwaXBlRGVmICovIHRydWUpO1xuICAgIGRlZi5pZCA9IGdldENvbXBvbmVudElkKGRlZik7XG5cbiAgICByZXR1cm4gZGVmO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3REaXJlY3RpdmVEZWYodHlwZTogVHlwZTxhbnk+KTogRGlyZWN0aXZlRGVmPGFueT4gfCBDb21wb25lbnREZWY8YW55PiB8IG51bGwge1xuICByZXR1cm4gZ2V0Q29tcG9uZW50RGVmKHR5cGUpIHx8IGdldERpcmVjdGl2ZURlZih0eXBlKTtcbn1cblxuZnVuY3Rpb24gbm9uTnVsbDxUPih2YWx1ZTogVCB8IG51bGwpOiB2YWx1ZSBpcyBUIHtcbiAgcmV0dXJuIHZhbHVlICE9PSBudWxsO1xufVxuXG4vKipcbiAqIEBjb2RlR2VuQXBpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiDJtcm1ZGVmaW5lTmdNb2R1bGU8VD4oZGVmOiB7XG4gIC8qKiBUb2tlbiByZXByZXNlbnRpbmcgdGhlIG1vZHVsZS4gVXNlZCBieSBESS4gKi9cbiAgdHlwZTogVDtcblxuICAvKiogTGlzdCBvZiBjb21wb25lbnRzIHRvIGJvb3RzdHJhcC4gKi9cbiAgYm9vdHN0cmFwPzogVHlwZTxhbnk+W10gfCAoKCkgPT4gVHlwZTxhbnk+W10pO1xuXG4gIC8qKiBMaXN0IG9mIGNvbXBvbmVudHMsIGRpcmVjdGl2ZXMsIGFuZCBwaXBlcyBkZWNsYXJlZCBieSB0aGlzIG1vZHVsZS4gKi9cbiAgZGVjbGFyYXRpb25zPzogVHlwZTxhbnk+W10gfCAoKCkgPT4gVHlwZTxhbnk+W10pO1xuXG4gIC8qKiBMaXN0IG9mIG1vZHVsZXMgb3IgYE1vZHVsZVdpdGhQcm92aWRlcnNgIGltcG9ydGVkIGJ5IHRoaXMgbW9kdWxlLiAqL1xuICBpbXBvcnRzPzogVHlwZTxhbnk+W10gfCAoKCkgPT4gVHlwZTxhbnk+W10pO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIG1vZHVsZXMsIGBNb2R1bGVXaXRoUHJvdmlkZXJzYCwgY29tcG9uZW50cywgZGlyZWN0aXZlcywgb3IgcGlwZXMgZXhwb3J0ZWQgYnkgdGhpc1xuICAgKiBtb2R1bGUuXG4gICAqL1xuICBleHBvcnRzPzogVHlwZTxhbnk+W10gfCAoKCkgPT4gVHlwZTxhbnk+W10pO1xuXG4gIC8qKiBUaGUgc2V0IG9mIHNjaGVtYXMgdGhhdCBkZWNsYXJlIGVsZW1lbnRzIHRvIGJlIGFsbG93ZWQgaW4gdGhlIE5nTW9kdWxlLiAqL1xuICBzY2hlbWFzPzogU2NoZW1hTWV0YWRhdGFbXSB8IG51bGw7XG5cbiAgLyoqIFVuaXF1ZSBJRCBmb3IgdGhlIG1vZHVsZSB0aGF0IGlzIHVzZWQgd2l0aCBgZ2V0TW9kdWxlRmFjdG9yeWAuICovXG4gIGlkPzogc3RyaW5nIHwgbnVsbDtcbn0pOiB1bmtub3duIHtcbiAgcmV0dXJuIG5vU2lkZUVmZmVjdHMoKCkgPT4ge1xuICAgIGNvbnN0IHJlczogTmdNb2R1bGVEZWY8VD4gPSB7XG4gICAgICB0eXBlOiBkZWYudHlwZSxcbiAgICAgIGJvb3RzdHJhcDogZGVmLmJvb3RzdHJhcCB8fCBFTVBUWV9BUlJBWSxcbiAgICAgIGRlY2xhcmF0aW9uczogZGVmLmRlY2xhcmF0aW9ucyB8fCBFTVBUWV9BUlJBWSxcbiAgICAgIGltcG9ydHM6IGRlZi5pbXBvcnRzIHx8IEVNUFRZX0FSUkFZLFxuICAgICAgZXhwb3J0czogZGVmLmV4cG9ydHMgfHwgRU1QVFlfQVJSQVksXG4gICAgICB0cmFuc2l0aXZlQ29tcGlsZVNjb3BlczogbnVsbCxcbiAgICAgIHNjaGVtYXM6IGRlZi5zY2hlbWFzIHx8IG51bGwsXG4gICAgICBpZDogZGVmLmlkIHx8IG51bGwsXG4gICAgfTtcbiAgICByZXR1cm4gcmVzO1xuICB9KTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBiaW5kaW5nIG9iamVjdHMgZnJvbSB0aGUgYERpcmVjdGl2ZURlZmluaXRpb25gIGludG8gbW9yZSBlZmZpY2llbnRcbiAqIGxvb2t1cCBkaWN0aW9uYXJpZXMgdGhhdCBhcmUgb3B0aW1pemVkIGZvciB0aGUgZnJhbWV3b3JrIHJ1bnRpbWUuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBjb252ZXJ0cyBpbnB1dHMgb3Igb3V0cHV0IGRpcmVjdGl2ZSBpbmZvcm1hdGlvbiBpbnRvIG5ldyBvYmplY3RzXG4gKiB3aGVyZSB0aGUgcHVibGljIG5hbWUgY29udmVuaWVudGx5IG1hcHMgdG8gdGhlIG1pbmlmaWVkIGludGVybmFsIGZpZWxkIG5hbWUuXG4gKlxuICogRm9yIGlucHV0cywgdGhlIGlucHV0IGZsYWdzIGFyZSBhZGRpdGlvbmFsbHkgcGVyc2lzdGVkIGludG8gdGhlIG5ldyBkYXRhIHN0cnVjdHVyZSxcbiAqIHNvIHRoYXQgdGhvc2UgY2FuIGJlIHF1aWNrbHkgcmV0cmlldmVkIHdoZW4gbmVlZGVkLlxuICpcbiAqIGUuZy4gZm9yXG4gKlxuICogYGBgXG4gKiBjbGFzcyBDb21wIHtcbiAqICAgQElucHV0KClcbiAqICAgcHJvcE5hbWUxOiBzdHJpbmc7XG4gKlxuICogICBASW5wdXQoJ3B1YmxpY05hbWUyJylcbiAqICAgZGVjbGFyZWRQcm9wTmFtZTI6IG51bWJlcjtcbiAqXG4gKiAgIGlucHV0U2lnbmFsID0gaW5wdXQoMyk7XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiB3aWxsIGJlIHNlcmlhbGl6ZWQgYXNcbiAqXG4gKiBgYGBcbiAqIHtcbiAqICAgcHJvcE5hbWUxOiAncHJvcE5hbWUxJyxcbiAqICAgZGVjbGFyZWRQcm9wTmFtZTI6IFsncHVibGljTmFtZTInLCAnZGVjbGFyZWRQcm9wTmFtZTInXSxcbiAqICAgaW5wdXRTaWduYWw6IFtJbnB1dEZsYWdzLlNpZ25hbEJhc2VkLCAnaW5wdXRTaWduYWwnXSxcbiAqIH1cbiAqIGBgYFxuICpcbiAqIHdoaWNoIGlzIHRoYW4gdHJhbnNsYXRlZCBieSB0aGUgbWluaWZpZXIgYXM6XG4gKlxuICogYGBgXG4gKiB7XG4gKiAgIG1pbmlmaWVkUHJvcE5hbWUxOiAncHJvcE5hbWUxJyxcbiAqICAgbWluaWZpZWRQcm9wTmFtZTI6IFsncHVibGljTmFtZTInLCAnZGVjbGFyZWRQcm9wTmFtZTInXSxcbiAqICAgbWluaWZpZWRJbnB1dFNpZ25hbDogW0lucHV0RmxhZ3MuU2lnbmFsQmFzZWQsICdpbnB1dFNpZ25hbCddLFxuICogfVxuICogYGBgXG4gKlxuICogYmVjb21lczogKHB1YmxpYyBuYW1lID0+IG1pbmlmaWVkTmFtZSArIGlzU2lnbmFsIGlmIG5lZWRlZClcbiAqXG4gKiBgYGBcbiAqIHtcbiAqICAncHJvcE5hbWUxJzogJ21pbmlmaWVkUHJvcE5hbWUxJyxcbiAqICAncHVibGljTmFtZTInOiAnbWluaWZpZWRQcm9wTmFtZTInLFxuICogICdpbnB1dFNpZ25hbCc6IFsnbWluaWZpZWRJbnB1dFNpZ25hbCcsIElucHV0RmxhZ3MuU2lnbmFsQmFzZWRdLFxuICogfVxuICogYGBgXG4gKlxuICogT3B0aW9uYWxseSB0aGUgZnVuY3Rpb24gY2FuIHRha2UgYGRlY2xhcmVkSW5wdXRzYCB3aGljaCB3aWxsIHJlc3VsdFxuICogaW46IChwdWJsaWMgbmFtZSA9PiBkZWNsYXJlZCBuYW1lKVxuICpcbiAqIGBgYFxuICoge1xuICogICdwcm9wTmFtZTEnOiAncHJvcE5hbWUxJyxcbiAqICAncHVibGljTmFtZTInOiAnZGVjbGFyZWRQcm9wTmFtZTInLFxuICogICdpbnB1dFNpZ25hbCc6ICdpbnB1dFNpZ25hbCcsXG4gKiB9XG4gKiBgYGBcbiAqXG5cbiAqL1xuZnVuY3Rpb24gcGFyc2VBbmRDb252ZXJ0QmluZGluZ3NGb3JEZWZpbml0aW9uPFQ+KFxuICBvYmo6IERpcmVjdGl2ZURlZmluaXRpb248VD5bJ291dHB1dHMnXSB8IHVuZGVmaW5lZCxcbik6IFJlY29yZDxrZXlvZiBULCBzdHJpbmc+O1xuZnVuY3Rpb24gcGFyc2VBbmRDb252ZXJ0QmluZGluZ3NGb3JEZWZpbml0aW9uPFQ+KFxuICBvYmo6IERpcmVjdGl2ZUlucHV0czxUPiB8IHVuZGVmaW5lZCxcbiAgZGVjbGFyZWRJbnB1dHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pOiBSZWNvcmQ8a2V5b2YgVCwgc3RyaW5nIHwgW21pbmlmaWVkTmFtZTogc3RyaW5nLCBmbGFnczogSW5wdXRGbGFnc10+O1xuXG5mdW5jdGlvbiBwYXJzZUFuZENvbnZlcnRCaW5kaW5nc0ZvckRlZmluaXRpb248VD4oXG4gIG9iajogdW5kZWZpbmVkIHwgRGlyZWN0aXZlSW5wdXRzPFQ+IHwgRGlyZWN0aXZlRGVmaW5pdGlvbjxUPlsnb3V0cHV0cyddLFxuICBkZWNsYXJlZElucHV0cz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pOiBSZWNvcmQ8a2V5b2YgVCwgc3RyaW5nIHwgW21pbmlmaWVkTmFtZTogc3RyaW5nLCBmbGFnczogSW5wdXRGbGFnc10+IHtcbiAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gRU1QVFlfT0JKIGFzIGFueTtcbiAgY29uc3QgbmV3TG9va3VwOiBhbnkgPSB7fTtcbiAgZm9yIChjb25zdCBtaW5pZmllZEtleSBpbiBvYmopIHtcbiAgICBpZiAob2JqLmhhc093blByb3BlcnR5KG1pbmlmaWVkS2V5KSkge1xuICAgICAgY29uc3QgdmFsdWUgPSBvYmpbbWluaWZpZWRLZXldITtcbiAgICAgIGxldCBwdWJsaWNOYW1lOiBzdHJpbmc7XG4gICAgICBsZXQgZGVjbGFyZWROYW1lOiBzdHJpbmc7XG4gICAgICBsZXQgaW5wdXRGbGFncyA9IElucHV0RmxhZ3MuTm9uZTtcblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIGlucHV0RmxhZ3MgPSB2YWx1ZVswXTtcbiAgICAgICAgcHVibGljTmFtZSA9IHZhbHVlWzFdO1xuICAgICAgICBkZWNsYXJlZE5hbWUgPSB2YWx1ZVsyXSA/PyBwdWJsaWNOYW1lOyAvLyBkZWNsYXJlZCBuYW1lIG1pZ2h0IG5vdCBiZSBzZXQgdG8gc2F2ZSBieXRlcy5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHB1YmxpY05hbWUgPSB2YWx1ZTtcbiAgICAgICAgZGVjbGFyZWROYW1lID0gdmFsdWU7XG4gICAgICB9XG5cbiAgICAgIC8vIEZvciBpbnB1dHMsIGNhcHR1cmUgdGhlIGRlY2xhcmVkIG5hbWUsIG9yIGlmIHNvbWUgZmxhZ3MgYXJlIHNldC5cbiAgICAgIGlmIChkZWNsYXJlZElucHV0cykge1xuICAgICAgICAvLyBQZXJmIG5vdGU6IEFuIGFycmF5IGlzIG9ubHkgYWxsb2NhdGVkIGZvciB0aGUgaW5wdXQgaWYgdGhlcmUgYXJlIGZsYWdzLlxuICAgICAgICBuZXdMb29rdXBbcHVibGljTmFtZV0gPVxuICAgICAgICAgIGlucHV0RmxhZ3MgIT09IElucHV0RmxhZ3MuTm9uZSA/IFttaW5pZmllZEtleSwgaW5wdXRGbGFnc10gOiBtaW5pZmllZEtleTtcbiAgICAgICAgZGVjbGFyZWRJbnB1dHNbcHVibGljTmFtZV0gPSBkZWNsYXJlZE5hbWUgYXMgc3RyaW5nO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3TG9va3VwW3B1YmxpY05hbWVdID0gbWluaWZpZWRLZXk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBuZXdMb29rdXA7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgZGlyZWN0aXZlIGRlZmluaXRpb24gb2JqZWN0LlxuICpcbiAqICMgRXhhbXBsZVxuICogYGBgdHNcbiAqIGNsYXNzIE15RGlyZWN0aXZlIHtcbiAqICAgLy8gR2VuZXJhdGVkIGJ5IEFuZ3VsYXIgVGVtcGxhdGUgQ29tcGlsZXJcbiAqICAgLy8gW1N5bWJvbF0gc3ludGF4IHdpbGwgbm90IGJlIHN1cHBvcnRlZCBieSBUeXBlU2NyaXB0IHVudGlsIHYyLjdcbiAqICAgc3RhdGljIMm1ZGlyID0gybXJtWRlZmluZURpcmVjdGl2ZSh7XG4gKiAgICAgLi4uXG4gKiAgIH0pO1xuICogfVxuICogYGBgXG4gKlxuICogQGNvZGVHZW5BcGlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIMm1ybVkZWZpbmVEaXJlY3RpdmU8VD4oXG4gIGRpcmVjdGl2ZURlZmluaXRpb246IERpcmVjdGl2ZURlZmluaXRpb248VD4sXG4pOiBNdXRhYmxlPERpcmVjdGl2ZURlZjxhbnk+LCBrZXlvZiBEaXJlY3RpdmVEZWY8YW55Pj4ge1xuICByZXR1cm4gbm9TaWRlRWZmZWN0cygoKSA9PiB7XG4gICAgY29uc3QgZGVmID0gZ2V0TmdEaXJlY3RpdmVEZWYoZGlyZWN0aXZlRGVmaW5pdGlvbik7XG4gICAgaW5pdEZlYXR1cmVzKGRlZik7XG5cbiAgICByZXR1cm4gZGVmO1xuICB9KTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBwaXBlIGRlZmluaXRpb24gb2JqZWN0LlxuICpcbiAqICMgRXhhbXBsZVxuICogYGBgXG4gKiBjbGFzcyBNeVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAqICAgLy8gR2VuZXJhdGVkIGJ5IEFuZ3VsYXIgVGVtcGxhdGUgQ29tcGlsZXJcbiAqICAgc3RhdGljIMm1cGlwZSA9IGRlZmluZVBpcGUoe1xuICogICAgIC4uLlxuICogICB9KTtcbiAqIH1cbiAqIGBgYFxuICogQHBhcmFtIHBpcGVEZWYgUGlwZSBkZWZpbml0aW9uIGdlbmVyYXRlZCBieSB0aGUgY29tcGlsZXJcbiAqXG4gKiBAY29kZUdlbkFwaVxuICovXG5leHBvcnQgZnVuY3Rpb24gybXJtWRlZmluZVBpcGU8VD4ocGlwZURlZjoge1xuICAvKiogTmFtZSBvZiB0aGUgcGlwZS4gVXNlZCBmb3IgbWF0Y2hpbmcgcGlwZXMgaW4gdGVtcGxhdGUgdG8gcGlwZSBkZWZzLiAqL1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqIFBpcGUgY2xhc3MgcmVmZXJlbmNlLiBOZWVkZWQgdG8gZXh0cmFjdCBwaXBlIGxpZmVjeWNsZSBob29rcy4gKi9cbiAgdHlwZTogVHlwZTxUPjtcblxuICAvKiogV2hldGhlciB0aGUgcGlwZSBpcyBwdXJlLiAqL1xuICBwdXJlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcGlwZSBpcyBzdGFuZGFsb25lLlxuICAgKi9cbiAgc3RhbmRhbG9uZT86IGJvb2xlYW47XG59KTogdW5rbm93biB7XG4gIHJldHVybiA8UGlwZURlZjxUPj57XG4gICAgdHlwZTogcGlwZURlZi50eXBlLFxuICAgIG5hbWU6IHBpcGVEZWYubmFtZSxcbiAgICBmYWN0b3J5OiBudWxsLFxuICAgIHB1cmU6IHBpcGVEZWYucHVyZSAhPT0gZmFsc2UsXG4gICAgc3RhbmRhbG9uZTogcGlwZURlZi5zdGFuZGFsb25lID09PSB0cnVlLFxuICAgIG9uRGVzdHJveTogcGlwZURlZi50eXBlLnByb3RvdHlwZS5uZ09uRGVzdHJveSB8fCBudWxsLFxuICB9O1xufVxuXG4vKipcbiAqIFRoZSBmb2xsb3dpbmcgZ2V0dGVyIG1ldGhvZHMgcmV0cmlldmUgdGhlIGRlZmluaXRpb24gZnJvbSB0aGUgdHlwZS4gQ3VycmVudGx5IHRoZSByZXRyaWV2YWxcbiAqIGhvbm9ycyBpbmhlcml0YW5jZSwgYnV0IGluIHRoZSBmdXR1cmUgd2UgbWF5IGNoYW5nZSB0aGUgcnVsZSB0byByZXF1aXJlIHRoYXQgZGVmaW5pdGlvbnMgYXJlXG4gKiBleHBsaWNpdC4gVGhpcyB3b3VsZCByZXF1aXJlIHNvbWUgc29ydCBvZiBtaWdyYXRpb24gc3RyYXRlZ3kuXG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbXBvbmVudERlZjxUPih0eXBlOiBhbnkpOiBDb21wb25lbnREZWY8VD4gfCBudWxsIHtcbiAgcmV0dXJuIHR5cGVbTkdfQ09NUF9ERUZdIHx8IG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREaXJlY3RpdmVEZWY8VD4odHlwZTogYW55KTogRGlyZWN0aXZlRGVmPFQ+IHwgbnVsbCB7XG4gIHJldHVybiB0eXBlW05HX0RJUl9ERUZdIHx8IG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQaXBlRGVmPFQ+KHR5cGU6IGFueSk6IFBpcGVEZWY8VD4gfCBudWxsIHtcbiAgcmV0dXJuIHR5cGVbTkdfUElQRV9ERUZdIHx8IG51bGw7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBnaXZlbiBDb21wb25lbnQsIERpcmVjdGl2ZSBvciBQaXBlIGlzIG1hcmtlZCBhcyBzdGFuZGFsb25lLlxuICogVGhpcyB3aWxsIHJldHVybiBmYWxzZSBpZiBwYXNzZWQgYW55dGhpbmcgb3RoZXIgdGhhbiBhIENvbXBvbmVudCwgRGlyZWN0aXZlLCBvciBQaXBlIGNsYXNzXG4gKiBTZWUgW3RoaXMgZ3VpZGVdKGd1aWRlL2NvbXBvbmVudHMvaW1wb3J0aW5nKSBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbjpcbiAqXG4gKiBAcGFyYW0gdHlwZSBBIHJlZmVyZW5jZSB0byBhIENvbXBvbmVudCwgRGlyZWN0aXZlIG9yIFBpcGUuXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1N0YW5kYWxvbmUodHlwZTogVHlwZTx1bmtub3duPik6IGJvb2xlYW4ge1xuICBjb25zdCBkZWYgPSBnZXRDb21wb25lbnREZWYodHlwZSkgfHwgZ2V0RGlyZWN0aXZlRGVmKHR5cGUpIHx8IGdldFBpcGVEZWYodHlwZSk7XG4gIHJldHVybiBkZWYgIT09IG51bGwgPyBkZWYuc3RhbmRhbG9uZSA6IGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmdNb2R1bGVEZWY8VD4odHlwZTogYW55LCB0aHJvd05vdEZvdW5kOiB0cnVlKTogTmdNb2R1bGVEZWY8VD47XG5leHBvcnQgZnVuY3Rpb24gZ2V0TmdNb2R1bGVEZWY8VD4odHlwZTogYW55KTogTmdNb2R1bGVEZWY8VD4gfCBudWxsO1xuZXhwb3J0IGZ1bmN0aW9uIGdldE5nTW9kdWxlRGVmPFQ+KHR5cGU6IGFueSwgdGhyb3dOb3RGb3VuZD86IGJvb2xlYW4pOiBOZ01vZHVsZURlZjxUPiB8IG51bGwge1xuICBjb25zdCBuZ01vZHVsZURlZiA9IHR5cGVbTkdfTU9EX0RFRl0gfHwgbnVsbDtcbiAgaWYgKCFuZ01vZHVsZURlZiAmJiB0aHJvd05vdEZvdW5kID09PSB0cnVlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBUeXBlICR7c3RyaW5naWZ5KHR5cGUpfSBkb2VzIG5vdCBoYXZlICfJtW1vZCcgcHJvcGVydHkuYCk7XG4gIH1cbiAgcmV0dXJuIG5nTW9kdWxlRGVmO1xufVxuXG5mdW5jdGlvbiBnZXROZ0RpcmVjdGl2ZURlZjxUPihcbiAgZGlyZWN0aXZlRGVmaW5pdGlvbjogRGlyZWN0aXZlRGVmaW5pdGlvbjxUPixcbik6IE11dGFibGU8RGlyZWN0aXZlRGVmPFQ+LCBrZXlvZiBEaXJlY3RpdmVEZWY8VD4+IHtcbiAgY29uc3QgZGVjbGFyZWRJbnB1dHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICByZXR1cm4ge1xuICAgIHR5cGU6IGRpcmVjdGl2ZURlZmluaXRpb24udHlwZSxcbiAgICBwcm92aWRlcnNSZXNvbHZlcjogbnVsbCxcbiAgICBmYWN0b3J5OiBudWxsLFxuICAgIGhvc3RCaW5kaW5nczogZGlyZWN0aXZlRGVmaW5pdGlvbi5ob3N0QmluZGluZ3MgfHwgbnVsbCxcbiAgICBob3N0VmFyczogZGlyZWN0aXZlRGVmaW5pdGlvbi5ob3N0VmFycyB8fCAwLFxuICAgIGhvc3RBdHRyczogZGlyZWN0aXZlRGVmaW5pdGlvbi5ob3N0QXR0cnMgfHwgbnVsbCxcbiAgICBjb250ZW50UXVlcmllczogZGlyZWN0aXZlRGVmaW5pdGlvbi5jb250ZW50UXVlcmllcyB8fCBudWxsLFxuICAgIGRlY2xhcmVkSW5wdXRzOiBkZWNsYXJlZElucHV0cyxcbiAgICBpbnB1dFRyYW5zZm9ybXM6IG51bGwsXG4gICAgaW5wdXRDb25maWc6IGRpcmVjdGl2ZURlZmluaXRpb24uaW5wdXRzIHx8IEVNUFRZX09CSixcbiAgICBleHBvcnRBczogZGlyZWN0aXZlRGVmaW5pdGlvbi5leHBvcnRBcyB8fCBudWxsLFxuICAgIHN0YW5kYWxvbmU6IGRpcmVjdGl2ZURlZmluaXRpb24uc3RhbmRhbG9uZSA9PT0gdHJ1ZSxcbiAgICBzaWduYWxzOiBkaXJlY3RpdmVEZWZpbml0aW9uLnNpZ25hbHMgPT09IHRydWUsXG4gICAgc2VsZWN0b3JzOiBkaXJlY3RpdmVEZWZpbml0aW9uLnNlbGVjdG9ycyB8fCBFTVBUWV9BUlJBWSxcbiAgICB2aWV3UXVlcnk6IGRpcmVjdGl2ZURlZmluaXRpb24udmlld1F1ZXJ5IHx8IG51bGwsXG4gICAgZmVhdHVyZXM6IGRpcmVjdGl2ZURlZmluaXRpb24uZmVhdHVyZXMgfHwgbnVsbCxcbiAgICBzZXRJbnB1dDogbnVsbCxcbiAgICBmaW5kSG9zdERpcmVjdGl2ZURlZnM6IG51bGwsXG4gICAgaG9zdERpcmVjdGl2ZXM6IG51bGwsXG4gICAgaW5wdXRzOiBwYXJzZUFuZENvbnZlcnRCaW5kaW5nc0ZvckRlZmluaXRpb24oZGlyZWN0aXZlRGVmaW5pdGlvbi5pbnB1dHMsIGRlY2xhcmVkSW5wdXRzKSxcbiAgICBvdXRwdXRzOiBwYXJzZUFuZENvbnZlcnRCaW5kaW5nc0ZvckRlZmluaXRpb24oZGlyZWN0aXZlRGVmaW5pdGlvbi5vdXRwdXRzKSxcbiAgICBkZWJ1Z0luZm86IG51bGwsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGluaXRGZWF0dXJlczxUPihcbiAgZGVmaW5pdGlvbjpcbiAgICB8IE11dGFibGU8RGlyZWN0aXZlRGVmPFQ+LCBrZXlvZiBEaXJlY3RpdmVEZWY8VD4+XG4gICAgfCBNdXRhYmxlPENvbXBvbmVudERlZjxUPiwga2V5b2YgQ29tcG9uZW50RGVmPFQ+Pixcbik6IHZvaWQge1xuICBkZWZpbml0aW9uLmZlYXR1cmVzPy5mb3JFYWNoKChmbikgPT4gZm4oZGVmaW5pdGlvbikpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdERlZkxpc3RPckZhY3RvcnkoXG4gIGRlcGVuZGVuY2llczogVHlwZU9yRmFjdG9yeTxEZXBlbmRlbmN5VHlwZUxpc3Q+IHwgdW5kZWZpbmVkLFxuICBwaXBlRGVmOiBmYWxzZSxcbik6IERpcmVjdGl2ZURlZkxpc3RPckZhY3RvcnkgfCBudWxsO1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3REZWZMaXN0T3JGYWN0b3J5KFxuICBkZXBlbmRlbmNpZXM6IFR5cGVPckZhY3Rvcnk8RGVwZW5kZW5jeVR5cGVMaXN0PiB8IHVuZGVmaW5lZCxcbiAgcGlwZURlZjogdHJ1ZSxcbik6IFBpcGVEZWZMaXN0T3JGYWN0b3J5IHwgbnVsbDtcbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0RGVmTGlzdE9yRmFjdG9yeShcbiAgZGVwZW5kZW5jaWVzOiBUeXBlT3JGYWN0b3J5PERlcGVuZGVuY3lUeXBlTGlzdD4gfCB1bmRlZmluZWQsXG4gIHBpcGVEZWY6IGJvb2xlYW4sXG4pOiB1bmtub3duIHtcbiAgaWYgKCFkZXBlbmRlbmNpZXMpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGRlZkV4dHJhY3RvciA9IHBpcGVEZWYgPyBnZXRQaXBlRGVmIDogZXh0cmFjdERpcmVjdGl2ZURlZjtcblxuICByZXR1cm4gKCkgPT5cbiAgICAodHlwZW9mIGRlcGVuZGVuY2llcyA9PT0gJ2Z1bmN0aW9uJyA/IGRlcGVuZGVuY2llcygpIDogZGVwZW5kZW5jaWVzKVxuICAgICAgLm1hcCgoZGVwKSA9PiBkZWZFeHRyYWN0b3IoZGVwKSlcbiAgICAgIC5maWx0ZXIobm9uTnVsbCk7XG59XG5cbi8qKlxuICogQSBtYXAgdGhhdCBjb250YWlucyB0aGUgZ2VuZXJhdGVkIGNvbXBvbmVudCBJRHMgYW5kIHR5cGUuXG4gKi9cbmV4cG9ydCBjb25zdCBHRU5FUkFURURfQ09NUF9JRFMgPSBuZXcgTWFwPHN0cmluZywgVHlwZTx1bmtub3duPj4oKTtcblxuLyoqXG4gKiBBIG1ldGhvZCBjYW4gcmV0dXJucyBhIGNvbXBvbmVudCBJRCBmcm9tIHRoZSBjb21wb25lbnQgZGVmaW5pdGlvbiB1c2luZyBhIHZhcmlhbnQgb2YgREpCMiBoYXNoXG4gKiBhbGdvcml0aG0uXG4gKi9cbmZ1bmN0aW9uIGdldENvbXBvbmVudElkPFQ+KGNvbXBvbmVudERlZjogQ29tcG9uZW50RGVmPFQ+KTogc3RyaW5nIHtcbiAgbGV0IGhhc2ggPSAwO1xuXG4gIC8vIFdlIGNhbm5vdCByZWx5IHNvbGVseSBvbiB0aGUgY29tcG9uZW50IHNlbGVjdG9yIGFzIHRoZSBzYW1lIHNlbGVjdG9yIGNhbiBiZSB1c2VkIGluIGRpZmZlcmVudFxuICAvLyBtb2R1bGVzLlxuICAvL1xuICAvLyBgY29tcG9uZW50RGVmLnN0eWxlYCBpcyBub3QgdXNlZCwgZHVlIHRvIGl0IGNhdXNpbmcgaW5jb25zaXN0ZW5jaWVzLiBFeDogd2hlbiBzZXJ2ZXJcbiAgLy8gY29tcG9uZW50IHN0eWxlcyBoYXMgbm8gc291cmNlbWFwcyBhbmQgYnJvd3NlcnMgZG8uXG4gIC8vXG4gIC8vIEV4YW1wbGU6XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvYmxvYi9kOWY4MmM4Zjk1MzA5ZTc3YTZkODJmZDU3NGM2NTg3MWU5MTM1NGMyL3NyYy9tYXRlcmlhbC9jb3JlL29wdGlvbi9vcHRpb24udHMjTDI0OFxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2Jsb2IvMjg1ZjQ2ZGMyYjRjNWIxMjdkMzU2Y2I3YzQ3MTRiMjIxZjAzY2U1MC9zcmMvbWF0ZXJpYWwvbGVnYWN5LWNvcmUvb3B0aW9uL29wdGlvbi50cyNMMzJcblxuICBjb25zdCBoYXNoU2VsZWN0b3JzID0gW1xuICAgIGNvbXBvbmVudERlZi5zZWxlY3RvcnMsXG4gICAgY29tcG9uZW50RGVmLm5nQ29udGVudFNlbGVjdG9ycyxcbiAgICBjb21wb25lbnREZWYuaG9zdFZhcnMsXG4gICAgY29tcG9uZW50RGVmLmhvc3RBdHRycyxcbiAgICBjb21wb25lbnREZWYuY29uc3RzLFxuICAgIGNvbXBvbmVudERlZi52YXJzLFxuICAgIGNvbXBvbmVudERlZi5kZWNscyxcbiAgICBjb21wb25lbnREZWYuZW5jYXBzdWxhdGlvbixcbiAgICBjb21wb25lbnREZWYuc3RhbmRhbG9uZSxcbiAgICBjb21wb25lbnREZWYuc2lnbmFscyxcbiAgICBjb21wb25lbnREZWYuZXhwb3J0QXMsXG4gICAgSlNPTi5zdHJpbmdpZnkoY29tcG9uZW50RGVmLmlucHV0cyksXG4gICAgSlNPTi5zdHJpbmdpZnkoY29tcG9uZW50RGVmLm91dHB1dHMpLFxuICAgIC8vIFdlIGNhbm5vdCB1c2UgJ2NvbXBvbmVudERlZi50eXBlLm5hbWUnIGFzIHRoZSBuYW1lIG9mIHRoZSBzeW1ib2wgd2lsbCBjaGFuZ2UgYW5kIHdpbGwgbm90XG4gICAgLy8gbWF0Y2ggaW4gdGhlIHNlcnZlciBhbmQgYnJvd3NlciBidW5kbGVzLlxuICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGNvbXBvbmVudERlZi50eXBlLnByb3RvdHlwZSksXG4gICAgISFjb21wb25lbnREZWYuY29udGVudFF1ZXJpZXMsXG4gICAgISFjb21wb25lbnREZWYudmlld1F1ZXJ5LFxuICBdLmpvaW4oJ3wnKTtcblxuICBmb3IgKGNvbnN0IGNoYXIgb2YgaGFzaFNlbGVjdG9ycykge1xuICAgIGhhc2ggPSAoTWF0aC5pbXVsKDMxLCBoYXNoKSArIGNoYXIuY2hhckNvZGVBdCgwKSkgPDwgMDtcbiAgfVxuXG4gIC8vIEZvcmNlIHBvc2l0aXZlIG51bWJlciBoYXNoLlxuICAvLyAyMTQ3NDgzNjQ3ID0gZXF1aXZhbGVudCBvZiBJbnRlZ2VyLk1BWF9WQUxVRS5cbiAgaGFzaCArPSAyMTQ3NDgzNjQ3ICsgMTtcblxuICBjb25zdCBjb21wSWQgPSAnYycgKyBoYXNoO1xuXG4gIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICBpZiAoR0VORVJBVEVEX0NPTVBfSURTLmhhcyhjb21wSWQpKSB7XG4gICAgICBjb25zdCBwcmV2aW91c0NvbXBEZWZUeXBlID0gR0VORVJBVEVEX0NPTVBfSURTLmdldChjb21wSWQpITtcbiAgICAgIGlmIChwcmV2aW91c0NvbXBEZWZUeXBlICE9PSBjb21wb25lbnREZWYudHlwZSkge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgZm9ybWF0UnVudGltZUVycm9yKFxuICAgICAgICAgICAgUnVudGltZUVycm9yQ29kZS5DT01QT05FTlRfSURfQ09MTElTSU9OLFxuICAgICAgICAgICAgYENvbXBvbmVudCBJRCBnZW5lcmF0aW9uIGNvbGxpc2lvbiBkZXRlY3RlZC4gQ29tcG9uZW50cyAnJHtcbiAgICAgICAgICAgICAgcHJldmlvdXNDb21wRGVmVHlwZS5uYW1lXG4gICAgICAgICAgICB9JyBhbmQgJyR7Y29tcG9uZW50RGVmLnR5cGUubmFtZX0nIHdpdGggc2VsZWN0b3IgJyR7c3RyaW5naWZ5Q1NTU2VsZWN0b3JMaXN0KFxuICAgICAgICAgICAgICBjb21wb25lbnREZWYuc2VsZWN0b3JzLFxuICAgICAgICAgICAgKX0nIGdlbmVyYXRlZCB0aGUgc2FtZSBjb21wb25lbnQgSUQuIFRvIGZpeCB0aGlzLCB5b3UgY2FuIGNoYW5nZSB0aGUgc2VsZWN0b3Igb2Ygb25lIG9mIHRob3NlIGNvbXBvbmVudHMgb3IgYWRkIGFuIGV4dHJhIGhvc3QgYXR0cmlidXRlIHRvIGZvcmNlIGEgZGlmZmVyZW50IElELmAsXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgR0VORVJBVEVEX0NPTVBfSURTLnNldChjb21wSWQsIGNvbXBvbmVudERlZi50eXBlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29tcElkO1xufVxuIl19
306
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL3JlbmRlcjMvZGVmaW5pdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RSxPQUFPLEVBQUMsa0JBQWtCLEVBQW1CLE1BQU0sV0FBVyxDQUFDO0FBSS9ELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUMsV0FBVyxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRTVDLE9BQU8sRUFBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFpQjFFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUdwRCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQTJSakU7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixtQkFBMkM7SUFFM0MsT0FBTyxhQUFhLENBQUMsR0FBRyxFQUFFO1FBQ3hCLCtFQUErRTtRQUMvRSwwREFBMEQ7UUFDMUQsQ0FBQyxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxDQUFDLElBQUksYUFBYSxFQUFFLENBQUM7UUFFbkUsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsbUJBQTZDLENBQUMsQ0FBQztRQUNqRixNQUFNLEdBQUcsR0FBOEI7WUFDckMs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QUFHLENBQUMsQ0FBQztJQUV2QixNQUFNLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO0lBRTFCLElBQUksT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2xELElBQUksa0JBQWtCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDbkMsTUFBTSxtQkFBbUIsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFFLENBQUM7WUFDNUQsSUFBSSxtQkFBbUIsS0FBSyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzlDLE9BQU8sQ0FBQyxJQUFJLENBQ1Ysa0JBQWtCLHFEQUVoQiwyREFDRSxtQkFBbUIsQ0FBQyxJQUN0QixVQUFVLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxvQkFBb0Isd0JBQXdCLENBQzFFLFlBQVksQ0FBQyxTQUFTLENBQ3ZCLGdLQUFnSyxDQUNsSyxDQUNGLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixrQkFBa0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZVxuICovXG5cbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3l9IGZyb20gJy4uL2NoYW5nZV9kZXRlY3Rpb24vY29uc3RhbnRzJztcbmltcG9ydCB7Zm9ybWF0UnVudGltZUVycm9yLCBSdW50aW1lRXJyb3JDb2RlfSBmcm9tICcuLi9lcnJvcnMnO1xuaW1wb3J0IHtUeXBlLCBXcml0YWJsZX0gZnJvbSAnLi4vaW50ZXJmYWNlL3R5cGUnO1xuaW1wb3J0IHtOZ01vZHVsZURlZn0gZnJvbSAnLi4vbWV0YWRhdGEvbmdfbW9kdWxlX2RlZic7XG5pbXBvcnQge1NjaGVtYU1ldGFkYXRhfSBmcm9tICcuLi9tZXRhZGF0YS9zY2hlbWEnO1xuaW1wb3J0IHtWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnLi4vbWV0YWRhdGEvdmlldyc7XG5pbXBvcnQge25vU2lkZUVmZmVjdHN9IGZyb20gJy4uL3V0aWwvY2xvc3VyZSc7XG5pbXBvcnQge0VNUFRZX0FSUkFZLCBFTVBUWV9PQkp9IGZyb20gJy4uL3V0aWwvZW1wdHknO1xuaW1wb3J0IHtpbml0TmdEZXZNb2RlfSBmcm9tICcuLi91dGlsL25nX2Rldl9tb2RlJztcbmltcG9ydCB7c3RyaW5naWZ5fSBmcm9tICcuLi91dGlsL3N0cmluZ2lmeSc7XG5cbmltcG9ydCB7TkdfQ09NUF9ERUYsIE5HX0RJUl9ERUYsIE5HX01PRF9ERUYsIE5HX1BJUEVfREVGfSBmcm9tICcuL2ZpZWxkcyc7XG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudERlZixcbiAgQ29tcG9uZW50RGVmRmVhdHVyZSxcbiAgQ29tcG9uZW50VGVtcGxhdGUsXG4gIENvbnRlbnRRdWVyaWVzRnVuY3Rpb24sXG4gIERlcGVuZGVuY3lUeXBlTGlzdCxcbiAgRGlyZWN0aXZlRGVmLFxuICBEaXJlY3RpdmVEZWZGZWF0dXJlLFxuICBEaXJlY3RpdmVEZWZMaXN0T3JGYWN0b3J5LFxuICBIb3N0QmluZGluZ3NGdW5jdGlvbixcbiAgSW5wdXRUcmFuc2Zvcm1GdW5jdGlvbixcbiAgUGlwZURlZixcbiAgUGlwZURlZkxpc3RPckZhY3RvcnksXG4gIFR5cGVPckZhY3RvcnksXG4gIFZpZXdRdWVyaWVzRnVuY3Rpb24sXG59IGZyb20gJy4vaW50ZXJmYWNlcy9kZWZpbml0aW9uJztcbmltcG9ydCB7SW5wdXRGbGFnc30gZnJvbSAnLi9pbnRlcmZhY2VzL2lucHV0X2ZsYWdzJztcbmltcG9ydCB0eXBlIHtUQXR0cmlidXRlcywgVENvbnN0YW50c09yRmFjdG9yeX0gZnJvbSAnLi9pbnRlcmZhY2VzL25vZGUnO1xuaW1wb3J0IHtDc3NTZWxlY3Rvckxpc3R9IGZyb20gJy4vaW50ZXJmYWNlcy9wcm9qZWN0aW9uJztcbmltcG9ydCB7c3RyaW5naWZ5Q1NTU2VsZWN0b3JMaXN0fSBmcm9tICcuL25vZGVfc2VsZWN0b3JfbWF0Y2hlcic7XG5cbi8qKlxuICogTWFwIG9mIGlucHV0cyBmb3IgYSBnaXZlbiBkaXJlY3RpdmUvY29tcG9uZW50LlxuICpcbiAqIEdpdmVuOlxuICogYGBgXG4gKiBjbGFzcyBNeUNvbXBvbmVudCB7XG4gKiAgIEBJbnB1dCgpXG4gKiAgIHB1YmxpY0lucHV0MTogc3RyaW5nO1xuICpcbiAqICAgQElucHV0KCdwdWJsaWNJbnB1dDInKVxuICogICBkZWNsYXJlZElucHV0Mjogc3RyaW5nO1xuICpcbiAqICAgQElucHV0KHt0cmFuc2Zvcm06ICh2YWx1ZTogYm9vbGVhbikgPT4gdmFsdWUgPyAxIDogMH0pXG4gKiAgIHRyYW5zZm9ybWVkSW5wdXQzOiBudW1iZXI7XG4gKlxuICogICBzaWduYWxJbnB1dCA9IGlucHV0KDMpO1xuICogfVxuICogYGBgXG4gKlxuICogaXMgZGVzY3JpYmVkIGFzOlxuICogYGBgXG4gKiB7XG4gKiAgIHB1YmxpY0lucHV0MTogJ3B1YmxpY0lucHV0MScsXG4gKiAgIGRlY2xhcmVkSW5wdXQyOiBbSW5wdXRGbGFncy5Ob25lLCAnZGVjbGFyZWRJbnB1dDInLCAncHVibGljSW5wdXQyJ10sXG4gKiAgIHRyYW5zZm9ybWVkSW5wdXQzOiBbXG4gKiAgICAgSW5wdXRGbGFncy5Ob25lLFxuICogICAgICd0cmFuc2Zvcm1lZElucHV0MycsXG4gKiAgICAgJ3RyYW5zZm9ybWVkSW5wdXQzJyxcbiAqICAgICAodmFsdWU6IGJvb2xlYW4pID0+IHZhbHVlID8gMSA6IDBcbiAqICAgXSxcbiAqICAgc2lnbmFsSW5wdXQ6IFtJbnB1dEZsYWdzLlNpZ25hbEJhc2VkLCBcInNpZ25hbElucHV0XCJdLFxuICogfVxuICogYGBgXG4gKlxuICogV2hpY2ggdGhlIG1pbmlmaWVyIG1heSB0cmFuc2xhdGUgdG86XG4gKiBgYGBcbiAqIHtcbiAqICAgbWluaWZpZWRQdWJsaWNJbnB1dDE6ICdwdWJsaWNJbnB1dDEnLFxuICogICBtaW5pZmllZERlY2xhcmVkSW5wdXQyOiBbSW5wdXRGbGFncy5Ob25lLCAncHVibGljSW5wdXQyJywgJ2RlY2xhcmVkSW5wdXQyJ10sXG4gKiAgIG1pbmlmaWVkVHJhbnNmb3JtZWRJbnB1dDM6IFtcbiAqICAgICBJbnB1dEZsYWdzLk5vbmUsXG4gKiAgICAgJ3RyYW5zZm9ybWVkSW5wdXQzJyxcbiAqICAgICAndHJhbnNmb3JtZWRJbnB1dDMnLFxuICogICAgICh2YWx1ZTogYm9vbGVhbikgPT4gdmFsdWUgPyAxIDogMFxuICogICBdLFxuICogICBtaW5pZmllZFNpZ25hbElucHV0OiBbSW5wdXRGbGFncy5TaWduYWxCYXNlZCwgXCJzaWduYWxJbnB1dFwiXSxcbiAqIH1cbiAqIGBgYFxuICpcbiAqIFRoaXMgYWxsb3dzIHRoZSByZW5kZXIgdG8gcmUtY29uc3RydWN0IHRoZSBtaW5pZmllZCwgcHVibGljLCBhbmQgZGVjbGFyZWQgbmFtZXNcbiAqIG9mIHByb3BlcnRpZXMuXG4gKlxuICogTk9URTpcbiAqICAtIEJlY2F1c2UgZGVjbGFyZWQgYW5kIHB1YmxpYyBuYW1lIGFyZSB1c3VhbGx5IHNhbWUgd2Ugb25seSBnZW5lcmF0ZSB0aGUgYXJyYXlcbiAqICAgIGBbJ2RlY2xhcmVkJywgJ3B1YmxpYyddYCBmb3JtYXQgd2hlbiB0aGV5IGRpZmZlciwgb3IgdGhlcmUgaXMgYSB0cmFuc2Zvcm0uXG4gKiAgLSBUaGUgcmVhc29uIHdoeSB0aGlzIEFQSSBhbmQgYG91dHB1dHNgIEFQSSBpcyBub3QgdGhlIHNhbWUgaXMgdGhhdCBgTmdPbkNoYW5nZXNgIGhhc1xuICogICAgaW5jb25zaXN0ZW50IGJlaGF2aW9yIGluIHRoYXQgaXQgdXNlcyBkZWNsYXJlZCBuYW1lcyByYXRoZXIgdGhhbiBtaW5pZmllZCBvciBwdWJsaWMuXG4gKi9cbnR5cGUgRGlyZWN0aXZlSW5wdXRzPFQ+ID0ge1xuICBbUCBpbiBrZXlvZiBUXT86ICAvLyBCYXNpYyBjYXNlLiBNYXBwaW5nIG1pbmlmaWVkIG5hbWUgdG8gcHVibGljIG5hbWUuXG4gICAgfCBzdHJpbmdcbiAgICAvLyBDb21wbGV4IGlucHV0IHdoZW4gdGhlcmUgYXJlIGZsYWdzLCBvciBkaWZmZXJpbmcgcHVibGljIG5hbWUgYW5kIGRlY2xhcmVkIG5hbWUsIG9yIHRoZXJlXG4gICAgLy8gaXMgYSB0cmFuc2Zvcm0uIFN1Y2ggaW5wdXRzIGFyZSBub3QgYXMgY29tbW9uLCBzbyB0aGUgYXJyYXkgZm9ybSBpcyBvbmx5IGdlbmVyYXRlZCB0aGVuLlxuICAgIHwgW1xuICAgICAgICBmbGFnczogSW5wdXRGbGFncyxcbiAgICAgICAgcHVibGljTmFtZTogc3RyaW5nLFxuICAgICAgICBkZWNsYXJlZE5hbWU/OiBzdHJpbmcsXG4gICAgICAgIHRyYW5zZm9ybT86IElucHV0VHJhbnNmb3JtRnVuY3Rpb24sXG4gICAgICBdO1xufTtcblxuaW50ZXJmYWNlIERpcmVjdGl2ZURlZmluaXRpb248VD4ge1xuICAvKipcbiAgICogRGlyZWN0aXZlIHR5cGUsIG5lZWRlZCB0byBjb25maWd1cmUgdGhlIGluamVjdG9yLlxuICAgKi9cbiAgdHlwZTogVHlwZTxUPjtcblxuICAvKiogVGhlIHNlbGVjdG9ycyB0aGF0IHdpbGwgYmUgdXNlZCB0byBtYXRjaCBub2RlcyB0byB0aGlzIGRpcmVjdGl2ZS4gKi9cbiAgc2VsZWN0b3JzPzogQ3NzU2VsZWN0b3JMaXN0O1xuXG4gIC8qKlxuICAgKiBBIG1hcCBvZiBpbnB1dCBuYW1lcy5cbiAgICovXG4gIGlucHV0cz86IERpcmVjdGl2ZUlucHV0czxUPjtcblxuICAvKipcbiAgICogQSBtYXAgb2Ygb3V0cHV0IG5hbWVzLlxuICAgKlxuICAgKiBUaGUgZm9ybWF0IGlzIGluOiBge1thY3R1YWxQcm9wZXJ0eU5hbWU6IHN0cmluZ106c3RyaW5nfWAuXG4gICAqXG4gICAqIFdoaWNoIHRoZSBtaW5pZmllciBtYXkgdHJhbnNsYXRlIHRvOiBge1ttaW5pZmllZFByb3BlcnR5TmFtZTogc3RyaW5nXTpzdHJpbmd9YC5cbiAgICpcbiAgICogVGhpcyBhbGxvd3MgdGhlIHJlbmRlciB0byByZS1jb25zdHJ1Y3QgdGhlIG1pbmlmaWVkIGFuZCBub24tbWluaWZpZWQgbmFtZXNcbiAgICogb2YgcHJvcGVydGllcy5cbiAgICovXG4gIG91dHB1dHM/OiB7W1AgaW4ga2V5b2YgVF0/OiBzdHJpbmd9O1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2Ygb3B0aW9uYWwgZmVhdHVyZXMgdG8gYXBwbHkuXG4gICAqXG4gICAqIFNlZToge0BsaW5rIE5nT25DaGFuZ2VzRmVhdHVyZX0sIHtAbGluayBQcm92aWRlcnNGZWF0dXJlfSwge0BsaW5rIEluaGVyaXREZWZpbml0aW9uRmVhdHVyZX1cbiAgICovXG4gIGZlYXR1cmVzPzogRGlyZWN0aXZlRGVmRmVhdHVyZVtdO1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiBleGVjdXRlZCBieSB0aGUgcGFyZW50IHRlbXBsYXRlIHRvIGFsbG93IGNoaWxkIGRpcmVjdGl2ZSB0byBhcHBseSBob3N0IGJpbmRpbmdzLlxuICAgKi9cbiAgaG9zdEJpbmRpbmdzPzogSG9zdEJpbmRpbmdzRnVuY3Rpb248VD47XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgYmluZGluZ3MgaW4gdGhpcyBkaXJlY3RpdmUgYGhvc3RCaW5kaW5nc2AgKGluY2x1ZGluZyBwdXJlIGZuIGJpbmRpbmdzKS5cbiAgICpcbiAgICogVXNlZCB0byBjYWxjdWxhdGUgdGhlIGxlbmd0aCBvZiB0aGUgY29tcG9uZW50J3MgTFZpZXcgYXJyYXksIHNvIHdlXG4gICAqIGNhbiBwcmUtZmlsbCB0aGUgYXJyYXkgYW5kIHNldCB0aGUgaG9zdCBiaW5kaW5nIHN0YXJ0IGluZGV4LlxuICAgKi9cbiAgaG9zdFZhcnM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEFzc2lnbiBzdGF0aWMgYXR0cmlidXRlIHZhbHVlcyB0byBhIGhvc3QgZWxlbWVudC5cbiAgICpcbiAgICogVGhpcyBwcm9wZXJ0eSB3aWxsIGFzc2lnbiBzdGF0aWMgYXR0cmlidXRlIHZhbHVlcyBhcyB3ZWxsIGFzIGNsYXNzIGFuZCBzdHlsZVxuICAgKiB2YWx1ZXMgdG8gYSBob3N0IGVsZW1lbnQuIFNpbmNlIGF0dHJpYnV0ZSB2YWx1ZXMgY2FuIGNvbnNpc3Qgb2YgZGlmZmVyZW50IHR5cGVzIG9mIHZhbHVlcyxcbiAgICogdGhlIGBob3N0QXR0cnNgIGFycmF5IG11c3QgaW5jbHVkZSB0aGUgdmFsdWVzIGluIHRoZSBmb2xsb3dpbmcgZm9ybWF0OlxuICAgKlxuICAgKiBhdHRycyA9IFtcbiAgICogICAvLyBzdGF0aWMgYXR0cmlidXRlcyAobGlrZSBgdGl0bGVgLCBgbmFtZWAsIGBpZGAuLi4pXG4gICAqICAgYXR0cjEsIHZhbHVlMSwgYXR0cjIsIHZhbHVlLFxuICAgKlxuICAgKiAgIC8vIGEgc2luZ2xlIG5hbWVzcGFjZSB2YWx1ZSAobGlrZSBgeDppZGApXG4gICAqICAgTkFNRVNQQUNFX01BUktFUiwgbmFtZXNwYWNlVXJpMSwgbmFtZTEsIHZhbHVlMSxcbiAgICpcbiAgICogICAvLyBhbm90aGVyIHNpbmdsZSBuYW1lc3BhY2UgdmFsdWUgKGxpa2UgYHg6bmFtZWApXG4gICAqICAgTkFNRVNQQUNFX01BUktFUiwgbmFtZXNwYWNlVXJpMiwgbmFtZTIsIHZhbHVlMixcbiAgICpcbiAgICogICAvLyBhIHNlcmllcyBvZiBDU1MgY2xhc3NlcyB0aGF0IHdpbGwgYmUgYXBwbGllZCB0byB0aGUgZWxlbWVudCAobm8gc3BhY2VzKVxuICAgKiAgIENMQVNTRVNfTUFSS0VSLCBjbGFzczEsIGNsYXNzMiwgY2xhc3MzLFxuICAgKlxuICAgKiAgIC8vIGEgc2VyaWVzIG9mIENTUyBzdHlsZXMgKHByb3BlcnR5ICsgdmFsdWUpIHRoYXQgd2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBlbGVtZW50XG4gICAqICAgU1RZTEVTX01BUktFUiwgcHJvcDEsIHZhbHVlMSwgcHJvcDIsIHZhbHVlMlxuICAgKiBdXG4gICAqXG4gICAqIEFsbCBub24tY2xhc3MgYW5kIG5vbi1zdHlsZSBhdHRyaWJ1dGVzIG11c3QgYmUgZGVmaW5lZCBhdCB0aGUgc3RhcnQgb2YgdGhlIGxpc3RcbiAgICogZmlyc3QgYmVmb3JlIGFsbCBjbGFzcyBhbmQgc3R5bGUgdmFsdWVzIGFyZSBzZXQuIFdoZW4gdGhlcmUgaXMgYSBjaGFuZ2UgaW4gdmFsdWVcbiAgICogdHlwZSAobGlrZSB3aGVuIGNsYXNzZXMgYW5kIHN0eWxlcyBhcmUgaW50cm9kdWNlZCkgYSBtYXJrZXIgbXVzdCBiZSB1c2VkIHRvIHNlcGFyYXRlXG4gICAqIHRoZSBlbnRyaWVzLiBUaGUgbWFya2VyIHZhbHVlcyB0aGVtc2VsdmVzIGFyZSBzZXQgdmlhIGVudHJpZXMgZm91bmQgaW4gdGhlXG4gICAqIFtBdHRyaWJ1dGVNYXJrZXJdIGVudW0uXG4gICAqL1xuICBob3N0QXR0cnM/OiBUQXR0cmlidXRlcztcblxuICAvKipcbiAgICogRnVuY3Rpb24gdG8gY3JlYXRlIGluc3RhbmNlcyBvZiBjb250ZW50IHF1ZXJpZXMgYXNzb2NpYXRlZCB3aXRoIGEgZ2l2ZW4gZGlyZWN0aXZlLlxuICAgKi9cbiAgY29udGVudFF1ZXJpZXM/OiBDb250ZW50UXVlcmllc0Z1bmN0aW9uPFQ+O1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHNldCBvZiBpbnN0cnVjdGlvbnMgc3BlY2lmaWMgdG8gdmlldyBxdWVyeSBwcm9jZXNzaW5nLiBUaGlzIGNvdWxkIGJlIHNlZW4gYXMgYVxuICAgKiBzZXQgb2YgaW5zdHJ1Y3Rpb25zIHRvIGJlIGluc2VydGVkIGludG8gdGhlIHRlbXBsYXRlIGZ1bmN0aW9uLlxuICAgKi9cbiAgdmlld1F1ZXJ5PzogVmlld1F1ZXJpZXNGdW5jdGlvbjxUPiB8IG51bGw7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIG5hbWUgdGhhdCBjYW4gYmUgdXNlZCBpbiB0aGUgdGVtcGxhdGUgdG8gYXNzaWduIHRoaXMgZGlyZWN0aXZlIHRvIGEgdmFyaWFibGUuXG4gICAqXG4gICAqIFNlZToge0BsaW5rIERpcmVjdGl2ZS5leHBvcnRBc31cbiAgICovXG4gIGV4cG9ydEFzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBkaXJlY3RpdmUvY29tcG9uZW50IGlzIHN0YW5kYWxvbmUuXG4gICAqL1xuICBzdGFuZGFsb25lPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIGRpcmVjdGl2ZS9jb21wb25lbnQgaXMgc2lnbmFsLWJhc2VkLlxuICAgKi9cbiAgc2lnbmFscz86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBDb21wb25lbnREZWZpbml0aW9uPFQ+IGV4dGVuZHMgT21pdDxEaXJlY3RpdmVEZWZpbml0aW9uPFQ+LCAnZmVhdHVyZXMnPiB7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIG5vZGVzLCBsb2NhbCByZWZzLCBhbmQgcGlwZXMgaW4gdGhpcyBjb21wb25lbnQgdGVtcGxhdGUuXG4gICAqXG4gICAqIFVzZWQgdG8gY2FsY3VsYXRlIHRoZSBsZW5ndGggb2YgdGhpcyBjb21wb25lbnQncyBMVmlldyBhcnJheSwgc28gd2VcbiAgICogY2FuIHByZS1maWxsIHRoZSBhcnJheSBhbmQgc2V0IHRoZSBiaW5kaW5nIHN0YXJ0IGluZGV4LlxuICAgKi9cbiAgZGVjbHM6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBiaW5kaW5ncyBpbiB0aGlzIGNvbXBvbmVudCB0ZW1wbGF0ZSAoaW5jbHVkaW5nIHB1cmUgZm4gYmluZGluZ3MpLlxuICAgKlxuICAgKiBVc2VkIHRvIGNhbGN1bGF0ZSB0aGUgbGVuZ3RoIG9mIHRoaXMgY29tcG9uZW50J3MgTFZpZXcgYXJyYXksIHNvIHdlXG4gICAqIGNhbiBwcmUtZmlsbCB0aGUgYXJyYXkgYW5kIHNldCB0aGUgaG9zdCBiaW5kaW5nIHN0YXJ0IGluZGV4LlxuICAgKi9cbiAgdmFyczogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUZW1wbGF0ZSBmdW5jdGlvbiB1c2UgZm9yIHJlbmRlcmluZyBET00uXG4gICAqXG4gICAqIFRoaXMgZnVuY3Rpb24gaGFzIGZvbGxvd2luZyBzdHJ1Y3R1cmUuXG4gICAqXG4gICAqIGBgYFxuICAgKiBmdW5jdGlvbiBUZW1wbGF0ZTxUPihjdHg6VCwgY3JlYXRpb25Nb2RlOiBib29sZWFuKSB7XG4gICAqICAgaWYgKGNyZWF0aW9uTW9kZSkge1xuICAgKiAgICAgLy8gQ29udGFpbnMgY3JlYXRpb24gbW9kZSBpbnN0cnVjdGlvbnMuXG4gICAqICAgfVxuICAgKiAgIC8vIENvbnRhaW5zIGJpbmRpbmcgdXBkYXRlIGluc3RydWN0aW9uc1xuICAgKiB9XG4gICAqIGBgYFxuICAgKlxuICAgKiBDb21tb24gaW5zdHJ1Y3Rpb25zIGFyZTpcbiAgICogQ3JlYXRpb24gbW9kZSBpbnN0cnVjdGlvbnM6XG4gICAqICAtIGBlbGVtZW50U3RhcnRgLCBgZWxlbWVudEVuZGBcbiAgICogIC0gYHRleHRgXG4gICAqICAtIGBjb250YWluZXJgXG4gICAqICAtIGBsaXN0ZW5lcmBcbiAgICpcbiAgICogQmluZGluZyB1cGRhdGUgaW5zdHJ1Y3Rpb25zOlxuICAgKiAtIGBiaW5kYFxuICAgKiAtIGBlbGVtZW50QXR0cmlidXRlYFxuICAgKiAtIGBlbGVtZW50UHJvcGVydHlgXG4gICAqIC0gYGVsZW1lbnRDbGFzc2BcbiAgICogLSBgZWxlbWVudFN0eWxlYFxuICAgKlxuICAgKi9cbiAgdGVtcGxhdGU6IENvbXBvbmVudFRlbXBsYXRlPFQ+O1xuXG4gIC8qKlxuICAgKiBDb25zdGFudHMgZm9yIHRoZSBub2RlcyBpbiB0aGUgY29tcG9uZW50J3Mgdmlldy5cbiAgICogSW5jbHVkZXMgYXR0cmlidXRlIGFycmF5cywgbG9jYWwgZGVmaW5pdGlvbiBhcnJheXMgZXRjLlxuICAgKi9cbiAgY29uc3RzPzogVENvbnN0YW50c09yRmFjdG9yeTtcblxuICAvKipcbiAgICogQW4gYXJyYXkgb2YgYG5nQ29udGVudFtzZWxlY3Rvcl1gIHZhbHVlcyB0aGF0IHdlcmUgZm91bmQgaW4gdGhlIHRlbXBsYXRlLlxuICAgKi9cbiAgbmdDb250ZW50U2VsZWN0b3JzPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBBIGxpc3Qgb2Ygb3B0aW9uYWwgZmVhdHVyZXMgdG8gYXBwbHkuXG4gICAqXG4gICAqIFNlZToge0BsaW5rIE5nT25DaGFuZ2VzRmVhdHVyZX0sIHtAbGluayBQcm92aWRlcnNGZWF0dXJlfVxuICAgKi9cbiAgZmVhdHVyZXM/OiBDb21wb25lbnREZWZGZWF0dXJlW107XG5cbiAgLyoqXG4gICAqIERlZmluZXMgdGVtcGxhdGUgYW5kIHN0eWxlIGVuY2Fwc3VsYXRpb24gb3B0aW9ucyBhdmFpbGFibGUgZm9yIENvbXBvbmVudCdzIHtAbGluayBDb21wb25lbnR9LlxuICAgKi9cbiAgZW5jYXBzdWxhdGlvbj86IFZpZXdFbmNhcHN1bGF0aW9uO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGFyYml0cmFyeSBkZXZlbG9wZXItZGVmaW5lZCBkYXRhIHRvIGJlIHN0b3JlZCBvbiBhIHJlbmRlcmVyIGluc3RhbmNlLlxuICAgKiBUaGlzIGlzIHVzZWZ1bCBmb3IgcmVuZGVyZXJzIHRoYXQgZGVsZWdhdGUgdG8gb3RoZXIgcmVuZGVyZXJzLlxuICAgKlxuICAgKiBzZWU6IGFuaW1hdGlvblxuICAgKi9cbiAgZGF0YT86IHtba2luZDogc3RyaW5nXTogYW55fTtcblxuICAvKipcbiAgICogQSBzZXQgb2Ygc3R5bGVzIHRoYXQgdGhlIGNvbXBvbmVudCBuZWVkcyB0byBiZSBwcmVzZW50IGZvciBjb21wb25lbnQgdG8gcmVuZGVyIGNvcnJlY3RseS5cbiAgICovXG4gIHN0eWxlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RyYXRlZ3kgdGhhdCB0aGUgZGVmYXVsdCBjaGFuZ2UgZGV0ZWN0b3IgdXNlcyB0byBkZXRlY3QgY2hhbmdlcy5cbiAgICogV2hlbiBzZXQsIHRha2VzIGVmZmVjdCB0aGUgbmV4dCB0aW1lIGNoYW5nZSBkZXRlY3Rpb24gaXMgdHJpZ2dlcmVkLlxuICAgKi9cbiAgY2hhbmdlRGV0ZWN0aW9uPzogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3k7XG5cbiAgLyoqXG4gICAqIFJlZ2lzdHJ5IG9mIGRpcmVjdGl2ZXMsIGNvbXBvbmVudHMsIGFuZCBwaXBlcyB0aGF0IG1heSBiZSBmb3VuZCBpbiB0aGlzIGNvbXBvbmVudCdzIHZpZXcuXG4gICAqXG4gICAqIFRoaXMgcHJvcGVydHkgaXMgZWl0aGVyIGFuIGFycmF5IG9mIHR5cGVzIG9yIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSBhcnJheSBvZiB0eXBlcy4gVGhpc1xuICAgKiBmdW5jdGlvbiBtYXkgYmUgbmVjZXNzYXJ5IHRvIHN1cHBvcnQgZm9yd2FyZCBkZWNsYXJhdGlvbnMuXG4gICAqL1xuICBkZXBlbmRlbmNpZXM/OiBUeXBlT3JGYWN0b3J5PERlcGVuZGVuY3lUeXBlTGlzdD47XG5cbiAgLyoqXG4gICAqIFRoZSBzZXQgb2Ygc2NoZW1hcyB0aGF0IGRlY2xhcmUgZWxlbWVudHMgdG8gYmUgYWxsb3dlZCBpbiB0aGUgY29tcG9uZW50J3MgdGVtcGxhdGUuXG4gICAqL1xuICBzY2hlbWFzPzogU2NoZW1hTWV0YWRhdGFbXSB8IG51bGw7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgY29tcG9uZW50IGRlZmluaXRpb24gb2JqZWN0LlxuICpcbiAqXG4gKiAjIEV4YW1wbGVcbiAqIGBgYFxuICogY2xhc3MgTXlDb21wb25lbnQge1xuICogICAvLyBHZW5lcmF0ZWQgYnkgQW5ndWxhciBUZW1wbGF0ZSBDb21waWxlclxuICogICAvLyBbU3ltYm9sXSBzeW50YXggd2lsbCBub3QgYmUgc3VwcG9ydGVkIGJ5IFR5cGVTY3JpcHQgdW50aWwgdjIuN1xuICogICBzdGF0aWMgybVjbXAgPSBkZWZpbmVDb21wb25lbnQoe1xuICogICAgIC4uLlxuICogICB9KTtcbiAqIH1cbiAqIGBgYFxuICogQGNvZGVHZW5BcGlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIMm1ybVkZWZpbmVDb21wb25lbnQ8VD4oXG4gIGNvbXBvbmVudERlZmluaXRpb246IENvbXBvbmVudERlZmluaXRpb248VD4sXG4pOiBDb21wb25lbnREZWY8YW55PiB7XG4gIHJldHVybiBub1NpZGVFZmZlY3RzKCgpID0+IHtcbiAgICAvLyBJbml0aWFsaXplIG5nRGV2TW9kZS4gVGhpcyBtdXN0IGJlIHRoZSBmaXJzdCBzdGF0ZW1lbnQgaW4gybXJtWRlZmluZUNvbXBvbmVudC5cbiAgICAvLyBTZWUgdGhlIGBpbml0TmdEZXZNb2RlYCBkb2NzdHJpbmcgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gICAgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkgJiYgaW5pdE5nRGV2TW9kZSgpO1xuXG4gICAgY29uc3QgYmFzZURlZiA9IGdldE5nRGlyZWN0aXZlRGVmKGNvbXBvbmVudERlZmluaXRpb24gYXMgRGlyZWN0aXZlRGVmaW5pdGlvbjxUPik7XG4gICAgY29uc3QgZGVmOiBXcml0YWJsZTxDb21wb25lbnREZWY8VD4+ID0ge1xuICAgICAgLi4uYmFzZURlZixcbiAgICAgIGRlY2xzOiBjb21wb25lbnREZWZpbml0aW9uLmRlY2xzLFxuICAgICAgdmFyczogY29tcG9uZW50RGVmaW5pdGlvbi52YXJzLFxuICAgICAgdGVtcGxhdGU6IGNvbXBvbmVudERlZmluaXRpb24udGVtcGxhdGUsXG4gICAgICBjb25zdHM6IGNvbXBvbmVudERlZmluaXRpb24uY29uc3RzIHx8IG51bGwsXG4gICAgICBuZ0NvbnRlbnRTZWxlY3RvcnM6IGNvbXBvbmVudERlZmluaXRpb24ubmdDb250ZW50U2VsZWN0b3JzLFxuICAgICAgb25QdXNoOiBjb21wb25lbnREZWZpbml0aW9uLmNoYW5nZURldGVjdGlvbiA9PT0gQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgZGlyZWN0aXZlRGVmczogbnVsbCEsIC8vIGFzc2lnbmVkIGluIG5vU2lkZUVmZmVjdHNcbiAgICAgIHBpcGVEZWZzOiBudWxsISwgLy8gYXNzaWduZWQgaW4gbm9TaWRlRWZmZWN0c1xuICAgICAgZGVwZW5kZW5jaWVzOiAoYmFzZURlZi5zdGFuZGFsb25lICYmIGNvbXBvbmVudERlZmluaXRpb24uZGVwZW5kZW5jaWVzKSB8fCBudWxsLFxuICAgICAgZ2V0U3RhbmRhbG9uZUluamVjdG9yOiBudWxsLFxuICAgICAgc2lnbmFsczogY29tcG9uZW50RGVmaW5pdGlvbi5zaWduYWxzID8/IGZhbHNlLFxuICAgICAgZGF0YTogY29tcG9uZW50RGVmaW5pdGlvbi5kYXRhIHx8IHt9LFxuICAgICAgZW5jYXBzdWxhdGlvbjogY29tcG9uZW50RGVmaW5pdGlvbi5lbmNhcHN1bGF0aW9uIHx8IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkLFxuICAgICAgc3R5bGVzOiBjb21wb25lbnREZWZpbml0aW9uLnN0eWxlcyB8fCBFTVBUWV9BUlJBWSxcbiAgICAgIF86IG51bGwsXG4gICAgICBzY2hlbWFzOiBjb21wb25lbnREZWZpbml0aW9uLnNjaGVtYXMgfHwgbnVsbCxcbiAgICAgIHRWaWV3OiBudWxsLFxuICAgICAgaWQ6ICcnLFxuICAgIH07XG5cbiAgICBpbml0RmVhdHVyZXMoZGVmKTtcbiAgICBjb25zdCBkZXBlbmRlbmNpZXMgPSBjb21wb25lbnREZWZpbml0aW9uLmRlcGVuZGVuY2llcztcbiAgICBkZWYuZGlyZWN0aXZlRGVmcyA9IGV4dHJhY3REZWZMaXN0T3JGYWN0b3J5KGRlcGVuZGVuY2llcywgLyogcGlwZURlZiAqLyBmYWxzZSk7XG4gICAgZGVmLnBpcGVEZWZzID0gZXh0cmFjdERlZkxpc3RPckZhY3RvcnkoZGVwZW5kZW5jaWVzLCAvKiBwaXBlRGVmICovIHRydWUpO1xuICAgIGRlZi5pZCA9IGdldENvbXBvbmVudElkKGRlZik7XG5cbiAgICByZXR1cm4gZGVmO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3REaXJlY3RpdmVEZWYodHlwZTogVHlwZTxhbnk+KTogRGlyZWN0aXZlRGVmPGFueT4gfCBDb21wb25lbnREZWY8YW55PiB8IG51bGwge1xuICByZXR1cm4gZ2V0Q29tcG9uZW50RGVmKHR5cGUpIHx8IGdldERpcmVjdGl2ZURlZih0eXBlKTtcbn1cblxuZnVuY3Rpb24gbm9uTnVsbDxUPih2YWx1ZTogVCB8IG51bGwpOiB2YWx1ZSBpcyBUIHtcbiAgcmV0dXJuIHZhbHVlICE9PSBudWxsO1xufVxuXG4vKipcbiAqIEBjb2RlR2VuQXBpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiDJtcm1ZGVmaW5lTmdNb2R1bGU8VD4oZGVmOiB7XG4gIC8qKiBUb2tlbiByZXByZXNlbnRpbmcgdGhlIG1vZHVsZS4gVXNlZCBieSBESS4gKi9cbiAgdHlwZTogVDtcblxuICAvKiogTGlzdCBvZiBjb21wb25lbnRzIHRvIGJvb3RzdHJhcC4gKi9cbiAgYm9vdHN0cmFwPzogVHlwZTxhbnk+W10gfCAoKCkgPT4gVHlwZTxhbnk+W10pO1xuXG4gIC8qKiBMaXN0IG9mIGNvbXBvbmVudHMsIGRpcmVjdGl2ZXMsIGFuZCBwaXBlcyBkZWNsYXJlZCBieSB0aGlzIG1vZHVsZS4gKi9cbiAgZGVjbGFyYXRpb25zPzogVHlwZTxhbnk+W10gfCAoKCkgPT4gVHlwZTxhbnk+W10pO1xuXG4gIC8qKiBMaXN0IG9mIG1vZHVsZXMgb3IgYE1vZHVsZVdpdGhQcm92aWRlcnNgIGltcG9ydGVkIGJ5IHRoaXMgbW9kdWxlLiAqL1xuICBpbXBvcnRzPzogVHlwZTxhbnk+W10gfCAoKCkgPT4gVHlwZTxhbnk+W10pO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIG1vZHVsZXMsIGBNb2R1bGVXaXRoUHJvdmlkZXJzYCwgY29tcG9uZW50cywgZGlyZWN0aXZlcywgb3IgcGlwZXMgZXhwb3J0ZWQgYnkgdGhpc1xuICAgKiBtb2R1bGUuXG4gICAqL1xuICBleHBvcnRzPzogVHlwZTxhbnk+W10gfCAoKCkgPT4gVHlwZTxhbnk+W10pO1xuXG4gIC8qKiBUaGUgc2V0IG9mIHNjaGVtYXMgdGhhdCBkZWNsYXJlIGVsZW1lbnRzIHRvIGJlIGFsbG93ZWQgaW4gdGhlIE5nTW9kdWxlLiAqL1xuICBzY2hlbWFzPzogU2NoZW1hTWV0YWRhdGFbXSB8IG51bGw7XG5cbiAgLyoqIFVuaXF1ZSBJRCBmb3IgdGhlIG1vZHVsZSB0aGF0IGlzIHVzZWQgd2l0aCBgZ2V0TW9kdWxlRmFjdG9yeWAuICovXG4gIGlkPzogc3RyaW5nIHwgbnVsbDtcbn0pOiB1bmtub3duIHtcbiAgcmV0dXJuIG5vU2lkZUVmZmVjdHMoKCkgPT4ge1xuICAgIGNvbnN0IHJlczogTmdNb2R1bGVEZWY8VD4gPSB7XG4gICAgICB0eXBlOiBkZWYudHlwZSxcbiAgICAgIGJvb3RzdHJhcDogZGVmLmJvb3RzdHJhcCB8fCBFTVBUWV9BUlJBWSxcbiAgICAgIGRlY2xhcmF0aW9uczogZGVmLmRlY2xhcmF0aW9ucyB8fCBFTVBUWV9BUlJBWSxcbiAgICAgIGltcG9ydHM6IGRlZi5pbXBvcnRzIHx8IEVNUFRZX0FSUkFZLFxuICAgICAgZXhwb3J0czogZGVmLmV4cG9ydHMgfHwgRU1QVFlfQVJSQVksXG4gICAgICB0cmFuc2l0aXZlQ29tcGlsZVNjb3BlczogbnVsbCxcbiAgICAgIHNjaGVtYXM6IGRlZi5zY2hlbWFzIHx8IG51bGwsXG4gICAgICBpZDogZGVmLmlkIHx8IG51bGwsXG4gICAgfTtcbiAgICByZXR1cm4gcmVzO1xuICB9KTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBiaW5kaW5nIG9iamVjdHMgZnJvbSB0aGUgYERpcmVjdGl2ZURlZmluaXRpb25gIGludG8gbW9yZSBlZmZpY2llbnRcbiAqIGxvb2t1cCBkaWN0aW9uYXJpZXMgdGhhdCBhcmUgb3B0aW1pemVkIGZvciB0aGUgZnJhbWV3b3JrIHJ1bnRpbWUuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBjb252ZXJ0cyBpbnB1dHMgb3Igb3V0cHV0IGRpcmVjdGl2ZSBpbmZvcm1hdGlvbiBpbnRvIG5ldyBvYmplY3RzXG4gKiB3aGVyZSB0aGUgcHVibGljIG5hbWUgY29udmVuaWVudGx5IG1hcHMgdG8gdGhlIG1pbmlmaWVkIGludGVybmFsIGZpZWxkIG5hbWUuXG4gKlxuICogRm9yIGlucHV0cywgdGhlIGlucHV0IGZsYWdzIGFyZSBhZGRpdGlvbmFsbHkgcGVyc2lzdGVkIGludG8gdGhlIG5ldyBkYXRhIHN0cnVjdHVyZSxcbiAqIHNvIHRoYXQgdGhvc2UgY2FuIGJlIHF1aWNrbHkgcmV0cmlldmVkIHdoZW4gbmVlZGVkLlxuICpcbiAqIGUuZy4gZm9yXG4gKlxuICogYGBgXG4gKiBjbGFzcyBDb21wIHtcbiAqICAgQElucHV0KClcbiAqICAgcHJvcE5hbWUxOiBzdHJpbmc7XG4gKlxuICogICBASW5wdXQoJ3B1YmxpY05hbWUyJylcbiAqICAgZGVjbGFyZWRQcm9wTmFtZTI6IG51bWJlcjtcbiAqXG4gKiAgIGlucHV0U2lnbmFsID0gaW5wdXQoMyk7XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiB3aWxsIGJlIHNlcmlhbGl6ZWQgYXNcbiAqXG4gKiBgYGBcbiAqIHtcbiAqICAgcHJvcE5hbWUxOiAncHJvcE5hbWUxJyxcbiAqICAgZGVjbGFyZWRQcm9wTmFtZTI6IFsncHVibGljTmFtZTInLCAnZGVjbGFyZWRQcm9wTmFtZTInXSxcbiAqICAgaW5wdXRTaWduYWw6IFtJbnB1dEZsYWdzLlNpZ25hbEJhc2VkLCAnaW5wdXRTaWduYWwnXSxcbiAqIH1cbiAqIGBgYFxuICpcbiAqIHdoaWNoIGlzIHRoYW4gdHJhbnNsYXRlZCBieSB0aGUgbWluaWZpZXIgYXM6XG4gKlxuICogYGBgXG4gKiB7XG4gKiAgIG1pbmlmaWVkUHJvcE5hbWUxOiAncHJvcE5hbWUxJyxcbiAqICAgbWluaWZpZWRQcm9wTmFtZTI6IFsncHVibGljTmFtZTInLCAnZGVjbGFyZWRQcm9wTmFtZTInXSxcbiAqICAgbWluaWZpZWRJbnB1dFNpZ25hbDogW0lucHV0RmxhZ3MuU2lnbmFsQmFzZWQsICdpbnB1dFNpZ25hbCddLFxuICogfVxuICogYGBgXG4gKlxuICogYmVjb21lczogKHB1YmxpYyBuYW1lID0+IG1pbmlmaWVkTmFtZSArIGlzU2lnbmFsIGlmIG5lZWRlZClcbiAqXG4gKiBgYGBcbiAqIHtcbiAqICAncHJvcE5hbWUxJzogJ21pbmlmaWVkUHJvcE5hbWUxJyxcbiAqICAncHVibGljTmFtZTInOiAnbWluaWZpZWRQcm9wTmFtZTInLFxuICogICdpbnB1dFNpZ25hbCc6IFsnbWluaWZpZWRJbnB1dFNpZ25hbCcsIElucHV0RmxhZ3MuU2lnbmFsQmFzZWRdLFxuICogfVxuICogYGBgXG4gKlxuICogT3B0aW9uYWxseSB0aGUgZnVuY3Rpb24gY2FuIHRha2UgYGRlY2xhcmVkSW5wdXRzYCB3aGljaCB3aWxsIHJlc3VsdFxuICogaW46IChwdWJsaWMgbmFtZSA9PiBkZWNsYXJlZCBuYW1lKVxuICpcbiAqIGBgYFxuICoge1xuICogICdwcm9wTmFtZTEnOiAncHJvcE5hbWUxJyxcbiAqICAncHVibGljTmFtZTInOiAnZGVjbGFyZWRQcm9wTmFtZTInLFxuICogICdpbnB1dFNpZ25hbCc6ICdpbnB1dFNpZ25hbCcsXG4gKiB9XG4gKiBgYGBcbiAqXG5cbiAqL1xuZnVuY3Rpb24gcGFyc2VBbmRDb252ZXJ0QmluZGluZ3NGb3JEZWZpbml0aW9uPFQ+KFxuICBvYmo6IERpcmVjdGl2ZURlZmluaXRpb248VD5bJ291dHB1dHMnXSB8IHVuZGVmaW5lZCxcbik6IFJlY29yZDxrZXlvZiBULCBzdHJpbmc+O1xuZnVuY3Rpb24gcGFyc2VBbmRDb252ZXJ0QmluZGluZ3NGb3JEZWZpbml0aW9uPFQ+KFxuICBvYmo6IERpcmVjdGl2ZUlucHV0czxUPiB8IHVuZGVmaW5lZCxcbiAgZGVjbGFyZWRJbnB1dHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pOiBSZWNvcmQ8a2V5b2YgVCwgc3RyaW5nIHwgW21pbmlmaWVkTmFtZTogc3RyaW5nLCBmbGFnczogSW5wdXRGbGFnc10+O1xuXG5mdW5jdGlvbiBwYXJzZUFuZENvbnZlcnRCaW5kaW5nc0ZvckRlZmluaXRpb248VD4oXG4gIG9iajogdW5kZWZpbmVkIHwgRGlyZWN0aXZlSW5wdXRzPFQ+IHwgRGlyZWN0aXZlRGVmaW5pdGlvbjxUPlsnb3V0cHV0cyddLFxuICBkZWNsYXJlZElucHV0cz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pOiBSZWNvcmQ8a2V5b2YgVCwgc3RyaW5nIHwgW21pbmlmaWVkTmFtZTogc3RyaW5nLCBmbGFnczogSW5wdXRGbGFnc10+IHtcbiAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gRU1QVFlfT0JKIGFzIGFueTtcbiAgY29uc3QgbmV3TG9va3VwOiBhbnkgPSB7fTtcbiAgZm9yIChjb25zdCBtaW5pZmllZEtleSBpbiBvYmopIHtcbiAgICBpZiAob2JqLmhhc093blByb3BlcnR5KG1pbmlmaWVkS2V5KSkge1xuICAgICAgY29uc3QgdmFsdWUgPSBvYmpbbWluaWZpZWRLZXldITtcbiAgICAgIGxldCBwdWJsaWNOYW1lOiBzdHJpbmc7XG4gICAgICBsZXQgZGVjbGFyZWROYW1lOiBzdHJpbmc7XG4gICAgICBsZXQgaW5wdXRGbGFncyA9IElucHV0RmxhZ3MuTm9uZTtcblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIGlucHV0RmxhZ3MgPSB2YWx1ZVswXTtcbiAgICAgICAgcHVibGljTmFtZSA9IHZhbHVlWzFdO1xuICAgICAgICBkZWNsYXJlZE5hbWUgPSB2YWx1ZVsyXSA/PyBwdWJsaWNOYW1lOyAvLyBkZWNsYXJlZCBuYW1lIG1pZ2h0IG5vdCBiZSBzZXQgdG8gc2F2ZSBieXRlcy5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHB1YmxpY05hbWUgPSB2YWx1ZTtcbiAgICAgICAgZGVjbGFyZWROYW1lID0gdmFsdWU7XG4gICAgICB9XG5cbiAgICAgIC8vIEZvciBpbnB1dHMsIGNhcHR1cmUgdGhlIGRlY2xhcmVkIG5hbWUsIG9yIGlmIHNvbWUgZmxhZ3MgYXJlIHNldC5cbiAgICAgIGlmIChkZWNsYXJlZElucHV0cykge1xuICAgICAgICAvLyBQZXJmIG5vdGU6IEFuIGFycmF5IGlzIG9ubHkgYWxsb2NhdGVkIGZvciB0aGUgaW5wdXQgaWYgdGhlcmUgYXJlIGZsYWdzLlxuICAgICAgICBuZXdMb29rdXBbcHVibGljTmFtZV0gPVxuICAgICAgICAgIGlucHV0RmxhZ3MgIT09IElucHV0RmxhZ3MuTm9uZSA/IFttaW5pZmllZEtleSwgaW5wdXRGbGFnc10gOiBtaW5pZmllZEtleTtcbiAgICAgICAgZGVjbGFyZWRJbnB1dHNbcHVibGljTmFtZV0gPSBkZWNsYXJlZE5hbWUgYXMgc3RyaW5nO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3TG9va3VwW3B1YmxpY05hbWVdID0gbWluaWZpZWRLZXk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBuZXdMb29rdXA7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgZGlyZWN0aXZlIGRlZmluaXRpb24gb2JqZWN0LlxuICpcbiAqICMgRXhhbXBsZVxuICogYGBgdHNcbiAqIGNsYXNzIE15RGlyZWN0aXZlIHtcbiAqICAgLy8gR2VuZXJhdGVkIGJ5IEFuZ3VsYXIgVGVtcGxhdGUgQ29tcGlsZXJcbiAqICAgLy8gW1N5bWJvbF0gc3ludGF4IHdpbGwgbm90IGJlIHN1cHBvcnRlZCBieSBUeXBlU2NyaXB0IHVudGlsIHYyLjdcbiAqICAgc3RhdGljIMm1ZGlyID0gybXJtWRlZmluZURpcmVjdGl2ZSh7XG4gKiAgICAgLi4uXG4gKiAgIH0pO1xuICogfVxuICogYGBgXG4gKlxuICogQGNvZGVHZW5BcGlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIMm1ybVkZWZpbmVEaXJlY3RpdmU8VD4oXG4gIGRpcmVjdGl2ZURlZmluaXRpb246IERpcmVjdGl2ZURlZmluaXRpb248VD4sXG4pOiBEaXJlY3RpdmVEZWY8YW55PiB7XG4gIHJldHVybiBub1NpZGVFZmZlY3RzKCgpID0+IHtcbiAgICBjb25zdCBkZWYgPSBnZXROZ0RpcmVjdGl2ZURlZihkaXJlY3RpdmVEZWZpbml0aW9uKTtcbiAgICBpbml0RmVhdHVyZXMoZGVmKTtcblxuICAgIHJldHVybiBkZWY7XG4gIH0pO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIHBpcGUgZGVmaW5pdGlvbiBvYmplY3QuXG4gKlxuICogIyBFeGFtcGxlXG4gKiBgYGBcbiAqIGNsYXNzIE15UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICogICAvLyBHZW5lcmF0ZWQgYnkgQW5ndWxhciBUZW1wbGF0ZSBDb21waWxlclxuICogICBzdGF0aWMgybVwaXBlID0gZGVmaW5lUGlwZSh7XG4gKiAgICAgLi4uXG4gKiAgIH0pO1xuICogfVxuICogYGBgXG4gKiBAcGFyYW0gcGlwZURlZiBQaXBlIGRlZmluaXRpb24gZ2VuZXJhdGVkIGJ5IHRoZSBjb21waWxlclxuICpcbiAqIEBjb2RlR2VuQXBpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiDJtcm1ZGVmaW5lUGlwZTxUPihwaXBlRGVmOiB7XG4gIC8qKiBOYW1lIG9mIHRoZSBwaXBlLiBVc2VkIGZvciBtYXRjaGluZyBwaXBlcyBpbiB0ZW1wbGF0ZSB0byBwaXBlIGRlZnMuICovXG4gIG5hbWU6IHN0cmluZztcblxuICAvKiogUGlwZSBjbGFzcyByZWZlcmVuY2UuIE5lZWRlZCB0byBleHRyYWN0IHBpcGUgbGlmZWN5Y2xlIGhvb2tzLiAqL1xuICB0eXBlOiBUeXBlPFQ+O1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBwaXBlIGlzIHB1cmUuICovXG4gIHB1cmU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBwaXBlIGlzIHN0YW5kYWxvbmUuXG4gICAqL1xuICBzdGFuZGFsb25lPzogYm9vbGVhbjtcbn0pOiB1bmtub3duIHtcbiAgcmV0dXJuIDxQaXBlRGVmPFQ+PntcbiAgICB0eXBlOiBwaXBlRGVmLnR5cGUsXG4gICAgbmFtZTogcGlwZURlZi5uYW1lLFxuICAgIGZhY3Rvcnk6IG51bGwsXG4gICAgcHVyZTogcGlwZURlZi5wdXJlICE9PSBmYWxzZSxcbiAgICBzdGFuZGFsb25lOiBwaXBlRGVmLnN0YW5kYWxvbmUgPT09IHRydWUsXG4gICAgb25EZXN0cm95OiBwaXBlRGVmLnR5cGUucHJvdG90eXBlLm5nT25EZXN0cm95IHx8IG51bGwsXG4gIH07XG59XG5cbi8qKlxuICogVGhlIGZvbGxvd2luZyBnZXR0ZXIgbWV0aG9kcyByZXRyaWV2ZSB0aGUgZGVmaW5pdGlvbiBmcm9tIHRoZSB0eXBlLiBDdXJyZW50bHkgdGhlIHJldHJpZXZhbFxuICogaG9ub3JzIGluaGVyaXRhbmNlLCBidXQgaW4gdGhlIGZ1dHVyZSB3ZSBtYXkgY2hhbmdlIHRoZSBydWxlIHRvIHJlcXVpcmUgdGhhdCBkZWZpbml0aW9ucyBhcmVcbiAqIGV4cGxpY2l0LiBUaGlzIHdvdWxkIHJlcXVpcmUgc29tZSBzb3J0IG9mIG1pZ3JhdGlvbiBzdHJhdGVneS5cbiAqL1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29tcG9uZW50RGVmPFQ+KHR5cGU6IGFueSk6IENvbXBvbmVudERlZjxUPiB8IG51bGwge1xuICByZXR1cm4gdHlwZVtOR19DT01QX0RFRl0gfHwgbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERpcmVjdGl2ZURlZjxUPih0eXBlOiBhbnkpOiBEaXJlY3RpdmVEZWY8VD4gfCBudWxsIHtcbiAgcmV0dXJuIHR5cGVbTkdfRElSX0RFRl0gfHwgbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFBpcGVEZWY8VD4odHlwZTogYW55KTogUGlwZURlZjxUPiB8IG51bGwge1xuICByZXR1cm4gdHlwZVtOR19QSVBFX0RFRl0gfHwgbnVsbDtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIGdpdmVuIENvbXBvbmVudCwgRGlyZWN0aXZlIG9yIFBpcGUgaXMgbWFya2VkIGFzIHN0YW5kYWxvbmUuXG4gKiBUaGlzIHdpbGwgcmV0dXJuIGZhbHNlIGlmIHBhc3NlZCBhbnl0aGluZyBvdGhlciB0aGFuIGEgQ29tcG9uZW50LCBEaXJlY3RpdmUsIG9yIFBpcGUgY2xhc3NcbiAqIFNlZSBbdGhpcyBndWlkZV0oZ3VpZGUvY29tcG9uZW50cy9pbXBvcnRpbmcpIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uOlxuICpcbiAqIEBwYXJhbSB0eXBlIEEgcmVmZXJlbmNlIHRvIGEgQ29tcG9uZW50LCBEaXJlY3RpdmUgb3IgUGlwZS5cbiAqIEBwdWJsaWNBcGlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3RhbmRhbG9uZSh0eXBlOiBUeXBlPHVua25vd24+KTogYm9vbGVhbiB7XG4gIGNvbnN0IGRlZiA9IGdldENvbXBvbmVudERlZih0eXBlKSB8fCBnZXREaXJlY3RpdmVEZWYodHlwZSkgfHwgZ2V0UGlwZURlZih0eXBlKTtcbiAgcmV0dXJuIGRlZiAhPT0gbnVsbCA/IGRlZi5zdGFuZGFsb25lIDogZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROZ01vZHVsZURlZjxUPih0eXBlOiBhbnksIHRocm93Tm90Rm91bmQ6IHRydWUpOiBOZ01vZHVsZURlZjxUPjtcbmV4cG9ydCBmdW5jdGlvbiBnZXROZ01vZHVsZURlZjxUPih0eXBlOiBhbnkpOiBOZ01vZHVsZURlZjxUPiB8IG51bGw7XG5leHBvcnQgZnVuY3Rpb24gZ2V0TmdNb2R1bGVEZWY8VD4odHlwZTogYW55LCB0aHJvd05vdEZvdW5kPzogYm9vbGVhbik6IE5nTW9kdWxlRGVmPFQ+IHwgbnVsbCB7XG4gIGNvbnN0IG5nTW9kdWxlRGVmID0gdHlwZVtOR19NT0RfREVGXSB8fCBudWxsO1xuICBpZiAoIW5nTW9kdWxlRGVmICYmIHRocm93Tm90Rm91bmQgPT09IHRydWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFR5cGUgJHtzdHJpbmdpZnkodHlwZSl9IGRvZXMgbm90IGhhdmUgJ8m1bW9kJyBwcm9wZXJ0eS5gKTtcbiAgfVxuICByZXR1cm4gbmdNb2R1bGVEZWY7XG59XG5cbmZ1bmN0aW9uIGdldE5nRGlyZWN0aXZlRGVmPFQ+KGRpcmVjdGl2ZURlZmluaXRpb246IERpcmVjdGl2ZURlZmluaXRpb248VD4pOiBEaXJlY3RpdmVEZWY8VD4ge1xuICBjb25zdCBkZWNsYXJlZElucHV0czogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gIHJldHVybiB7XG4gICAgdHlwZTogZGlyZWN0aXZlRGVmaW5pdGlvbi50eXBlLFxuICAgIHByb3ZpZGVyc1Jlc29sdmVyOiBudWxsLFxuICAgIGZhY3Rvcnk6IG51bGwsXG4gICAgaG9zdEJpbmRpbmdzOiBkaXJlY3RpdmVEZWZpbml0aW9uLmhvc3RCaW5kaW5ncyB8fCBudWxsLFxuICAgIGhvc3RWYXJzOiBkaXJlY3RpdmVEZWZpbml0aW9uLmhvc3RWYXJzIHx8IDAsXG4gICAgaG9zdEF0dHJzOiBkaXJlY3RpdmVEZWZpbml0aW9uLmhvc3RBdHRycyB8fCBudWxsLFxuICAgIGNvbnRlbnRRdWVyaWVzOiBkaXJlY3RpdmVEZWZpbml0aW9uLmNvbnRlbnRRdWVyaWVzIHx8IG51bGwsXG4gICAgZGVjbGFyZWRJbnB1dHM6IGRlY2xhcmVkSW5wdXRzLFxuICAgIGlucHV0VHJhbnNmb3JtczogbnVsbCxcbiAgICBpbnB1dENvbmZpZzogZGlyZWN0aXZlRGVmaW5pdGlvbi5pbnB1dHMgfHwgRU1QVFlfT0JKLFxuICAgIGV4cG9ydEFzOiBkaXJlY3RpdmVEZWZpbml0aW9uLmV4cG9ydEFzIHx8IG51bGwsXG4gICAgc3RhbmRhbG9uZTogZGlyZWN0aXZlRGVmaW5pdGlvbi5zdGFuZGFsb25lID09PSB0cnVlLFxuICAgIHNpZ25hbHM6IGRpcmVjdGl2ZURlZmluaXRpb24uc2lnbmFscyA9PT0gdHJ1ZSxcbiAgICBzZWxlY3RvcnM6IGRpcmVjdGl2ZURlZmluaXRpb24uc2VsZWN0b3JzIHx8IEVNUFRZX0FSUkFZLFxuICAgIHZpZXdRdWVyeTogZGlyZWN0aXZlRGVmaW5pdGlvbi52aWV3UXVlcnkgfHwgbnVsbCxcbiAgICBmZWF0dXJlczogZGlyZWN0aXZlRGVmaW5pdGlvbi5mZWF0dXJlcyB8fCBudWxsLFxuICAgIHNldElucHV0OiBudWxsLFxuICAgIGZpbmRIb3N0RGlyZWN0aXZlRGVmczogbnVsbCxcbiAgICBob3N0RGlyZWN0aXZlczogbnVsbCxcbiAgICBpbnB1dHM6IHBhcnNlQW5kQ29udmVydEJpbmRpbmdzRm9yRGVmaW5pdGlvbihkaXJlY3RpdmVEZWZpbml0aW9uLmlucHV0cywgZGVjbGFyZWRJbnB1dHMpLFxuICAgIG91dHB1dHM6IHBhcnNlQW5kQ29udmVydEJpbmRpbmdzRm9yRGVmaW5pdGlvbihkaXJlY3RpdmVEZWZpbml0aW9uLm91dHB1dHMpLFxuICAgIGRlYnVnSW5mbzogbnVsbCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gaW5pdEZlYXR1cmVzPFQ+KGRlZmluaXRpb246IERpcmVjdGl2ZURlZjxUPiB8IENvbXBvbmVudERlZjxUPik6IHZvaWQge1xuICBkZWZpbml0aW9uLmZlYXR1cmVzPy5mb3JFYWNoKChmbikgPT4gZm4oZGVmaW5pdGlvbikpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdERlZkxpc3RPckZhY3RvcnkoXG4gIGRlcGVuZGVuY2llczogVHlwZU9yRmFjdG9yeTxEZXBlbmRlbmN5VHlwZUxpc3Q+IHwgdW5kZWZpbmVkLFxuICBwaXBlRGVmOiBmYWxzZSxcbik6IERpcmVjdGl2ZURlZkxpc3RPckZhY3RvcnkgfCBudWxsO1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3REZWZMaXN0T3JGYWN0b3J5KFxuICBkZXBlbmRlbmNpZXM6IFR5cGVPckZhY3Rvcnk8RGVwZW5kZW5jeVR5cGVMaXN0PiB8IHVuZGVmaW5lZCxcbiAgcGlwZURlZjogdHJ1ZSxcbik6IFBpcGVEZWZMaXN0T3JGYWN0b3J5IHwgbnVsbDtcbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0RGVmTGlzdE9yRmFjdG9yeShcbiAgZGVwZW5kZW5jaWVzOiBUeXBlT3JGYWN0b3J5PERlcGVuZGVuY3lUeXBlTGlzdD4gfCB1bmRlZmluZWQsXG4gIHBpcGVEZWY6IGJvb2xlYW4sXG4pOiB1bmtub3duIHtcbiAgaWYgKCFkZXBlbmRlbmNpZXMpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGRlZkV4dHJhY3RvciA9IHBpcGVEZWYgPyBnZXRQaXBlRGVmIDogZXh0cmFjdERpcmVjdGl2ZURlZjtcblxuICByZXR1cm4gKCkgPT5cbiAgICAodHlwZW9mIGRlcGVuZGVuY2llcyA9PT0gJ2Z1bmN0aW9uJyA/IGRlcGVuZGVuY2llcygpIDogZGVwZW5kZW5jaWVzKVxuICAgICAgLm1hcCgoZGVwKSA9PiBkZWZFeHRyYWN0b3IoZGVwKSlcbiAgICAgIC5maWx0ZXIobm9uTnVsbCk7XG59XG5cbi8qKlxuICogQSBtYXAgdGhhdCBjb250YWlucyB0aGUgZ2VuZXJhdGVkIGNvbXBvbmVudCBJRHMgYW5kIHR5cGUuXG4gKi9cbmV4cG9ydCBjb25zdCBHRU5FUkFURURfQ09NUF9JRFMgPSBuZXcgTWFwPHN0cmluZywgVHlwZTx1bmtub3duPj4oKTtcblxuLyoqXG4gKiBBIG1ldGhvZCBjYW4gcmV0dXJucyBhIGNvbXBvbmVudCBJRCBmcm9tIHRoZSBjb21wb25lbnQgZGVmaW5pdGlvbiB1c2luZyBhIHZhcmlhbnQgb2YgREpCMiBoYXNoXG4gKiBhbGdvcml0aG0uXG4gKi9cbmZ1bmN0aW9uIGdldENvbXBvbmVudElkPFQ+KGNvbXBvbmVudERlZjogQ29tcG9uZW50RGVmPFQ+KTogc3RyaW5nIHtcbiAgbGV0IGhhc2ggPSAwO1xuXG4gIC8vIFdlIGNhbm5vdCByZWx5IHNvbGVseSBvbiB0aGUgY29tcG9uZW50IHNlbGVjdG9yIGFzIHRoZSBzYW1lIHNlbGVjdG9yIGNhbiBiZSB1c2VkIGluIGRpZmZlcmVudFxuICAvLyBtb2R1bGVzLlxuICAvL1xuICAvLyBgY29tcG9uZW50RGVmLnN0eWxlYCBpcyBub3QgdXNlZCwgZHVlIHRvIGl0IGNhdXNpbmcgaW5jb25zaXN0ZW5jaWVzLiBFeDogd2hlbiBzZXJ2ZXJcbiAgLy8gY29tcG9uZW50IHN0eWxlcyBoYXMgbm8gc291cmNlbWFwcyBhbmQgYnJvd3NlcnMgZG8uXG4gIC8vXG4gIC8vIEV4YW1wbGU6XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvYmxvYi9kOWY4MmM4Zjk1MzA5ZTc3YTZkODJmZDU3NGM2NTg3MWU5MTM1NGMyL3NyYy9tYXRlcmlhbC9jb3JlL29wdGlvbi9vcHRpb24udHMjTDI0OFxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2Jsb2IvMjg1ZjQ2ZGMyYjRjNWIxMjdkMzU2Y2I3YzQ3MTRiMjIxZjAzY2U1MC9zcmMvbWF0ZXJpYWwvbGVnYWN5LWNvcmUvb3B0aW9uL29wdGlvbi50cyNMMzJcblxuICBjb25zdCBoYXNoU2VsZWN0b3JzID0gW1xuICAgIGNvbXBvbmVudERlZi5zZWxlY3RvcnMsXG4gICAgY29tcG9uZW50RGVmLm5nQ29udGVudFNlbGVjdG9ycyxcbiAgICBjb21wb25lbnREZWYuaG9zdFZhcnMsXG4gICAgY29tcG9uZW50RGVmLmhvc3RBdHRycyxcbiAgICBjb21wb25lbnREZWYuY29uc3RzLFxuICAgIGNvbXBvbmVudERlZi52YXJzLFxuICAgIGNvbXBvbmVudERlZi5kZWNscyxcbiAgICBjb21wb25lbnREZWYuZW5jYXBzdWxhdGlvbixcbiAgICBjb21wb25lbnREZWYuc3RhbmRhbG9uZSxcbiAgICBjb21wb25lbnREZWYuc2lnbmFscyxcbiAgICBjb21wb25lbnREZWYuZXhwb3J0QXMsXG4gICAgSlNPTi5zdHJpbmdpZnkoY29tcG9uZW50RGVmLmlucHV0cyksXG4gICAgSlNPTi5zdHJpbmdpZnkoY29tcG9uZW50RGVmLm91dHB1dHMpLFxuICAgIC8vIFdlIGNhbm5vdCB1c2UgJ2NvbXBvbmVudERlZi50eXBlLm5hbWUnIGFzIHRoZSBuYW1lIG9mIHRoZSBzeW1ib2wgd2lsbCBjaGFuZ2UgYW5kIHdpbGwgbm90XG4gICAgLy8gbWF0Y2ggaW4gdGhlIHNlcnZlciBhbmQgYnJvd3NlciBidW5kbGVzLlxuICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGNvbXBvbmVudERlZi50eXBlLnByb3RvdHlwZSksXG4gICAgISFjb21wb25lbnREZWYuY29udGVudFF1ZXJpZXMsXG4gICAgISFjb21wb25lbnREZWYudmlld1F1ZXJ5LFxuICBdLmpvaW4oJ3wnKTtcblxuICBmb3IgKGNvbnN0IGNoYXIgb2YgaGFzaFNlbGVjdG9ycykge1xuICAgIGhhc2ggPSAoTWF0aC5pbXVsKDMxLCBoYXNoKSArIGNoYXIuY2hhckNvZGVBdCgwKSkgPDwgMDtcbiAgfVxuXG4gIC8vIEZvcmNlIHBvc2l0aXZlIG51bWJlciBoYXNoLlxuICAvLyAyMTQ3NDgzNjQ3ID0gZXF1aXZhbGVudCBvZiBJbnRlZ2VyLk1BWF9WQUxVRS5cbiAgaGFzaCArPSAyMTQ3NDgzNjQ3ICsgMTtcblxuICBjb25zdCBjb21wSWQgPSAnYycgKyBoYXNoO1xuXG4gIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICBpZiAoR0VORVJBVEVEX0NPTVBfSURTLmhhcyhjb21wSWQpKSB7XG4gICAgICBjb25zdCBwcmV2aW91c0NvbXBEZWZUeXBlID0gR0VORVJBVEVEX0NPTVBfSURTLmdldChjb21wSWQpITtcbiAgICAgIGlmIChwcmV2aW91c0NvbXBEZWZUeXBlICE9PSBjb21wb25lbnREZWYudHlwZSkge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgZm9ybWF0UnVudGltZUVycm9yKFxuICAgICAgICAgICAgUnVudGltZUVycm9yQ29kZS5DT01QT05FTlRfSURfQ09MTElTSU9OLFxuICAgICAgICAgICAgYENvbXBvbmVudCBJRCBnZW5lcmF0aW9uIGNvbGxpc2lvbiBkZXRlY3RlZC4gQ29tcG9uZW50cyAnJHtcbiAgICAgICAgICAgICAgcHJldmlvdXNDb21wRGVmVHlwZS5uYW1lXG4gICAgICAgICAgICB9JyBhbmQgJyR7Y29tcG9uZW50RGVmLnR5cGUubmFtZX0nIHdpdGggc2VsZWN0b3IgJyR7c3RyaW5naWZ5Q1NTU2VsZWN0b3JMaXN0KFxuICAgICAgICAgICAgICBjb21wb25lbnREZWYuc2VsZWN0b3JzLFxuICAgICAgICAgICAgKX0nIGdlbmVyYXRlZCB0aGUgc2FtZSBjb21wb25lbnQgSUQuIFRvIGZpeCB0aGlzLCB5b3UgY2FuIGNoYW5nZSB0aGUgc2VsZWN0b3Igb2Ygb25lIG9mIHRob3NlIGNvbXBvbmVudHMgb3IgYWRkIGFuIGV4dHJhIGhvc3QgYXR0cmlidXRlIHRvIGZvcmNlIGEgZGlmZmVyZW50IElELmAsXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgR0VORVJBVEVEX0NPTVBfSURTLnNldChjb21wSWQsIGNvbXBvbmVudERlZi50eXBlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29tcElkO1xufVxuIl19
@@ -28,4 +28,4 @@ export function ɵɵInputTransformsFeature(definition) {
28
28
  }
29
29
  definition.inputTransforms = inputTransforms;
30
30
  }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRfdHJhbnNmb3Jtc19mZWF0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvcmVuZGVyMy9mZWF0dXJlcy9pbnB1dF90cmFuc2Zvcm1zX2ZlYXR1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBS0g7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSx3QkFBd0IsQ0FBSSxVQUEyQjtJQUNyRSxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDO0lBQ3RDLE1BQU0sZUFBZSxHQUEyQyxFQUFFLENBQUM7SUFFbkUsS0FBSyxNQUFNLFdBQVcsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNqQyxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUN2Qyw2RkFBNkY7WUFDN0YsZ0ZBQWdGO1lBQ2hGLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNsQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JDLGVBQWUsQ0FBQyxXQUFXLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUEsVUFBMEQsQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO0FBQ2hHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZVxuICovXG5cbmltcG9ydCB7TXV0YWJsZX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlL3R5cGUnO1xuaW1wb3J0IHtEaXJlY3RpdmVEZWYsIElucHV0VHJhbnNmb3JtRnVuY3Rpb259IGZyb20gJy4uL2ludGVyZmFjZXMvZGVmaW5pdGlvbic7XG5cbi8qKlxuICogRGVjb3JhdGVzIHRoZSBkaXJlY3RpdmUgZGVmaW5pdGlvbiB3aXRoIHN1cHBvcnQgZm9yIGlucHV0IHRyYW5zZm9ybSBmdW5jdGlvbnMuXG4gKlxuICogSWYgdGhlIGRpcmVjdGl2ZSB1c2VzIGluaGVyaXRhbmNlLCB0aGUgZmVhdHVyZSBzaG91bGQgYmUgaW5jbHVkZWQgYmVmb3JlIHRoZVxuICogYEluaGVyaXREZWZpbml0aW9uRmVhdHVyZWAgdG8gZW5zdXJlIHRoYXQgdGhlIGBpbnB1dFRyYW5zZm9ybXNgIGZpZWxkIGlzIHBvcHVsYXRlZC5cbiAqXG4gKiBAY29kZUdlbkFwaVxuICovXG5leHBvcnQgZnVuY3Rpb24gybXJtUlucHV0VHJhbnNmb3Jtc0ZlYXR1cmU8VD4oZGVmaW5pdGlvbjogRGlyZWN0aXZlRGVmPFQ+KTogdm9pZCB7XG4gIGNvbnN0IGlucHV0cyA9IGRlZmluaXRpb24uaW5wdXRDb25maWc7XG4gIGNvbnN0IGlucHV0VHJhbnNmb3JtczogUmVjb3JkPHN0cmluZywgSW5wdXRUcmFuc2Zvcm1GdW5jdGlvbj4gPSB7fTtcblxuICBmb3IgKGNvbnN0IG1pbmlmaWVkS2V5IGluIGlucHV0cykge1xuICAgIGlmIChpbnB1dHMuaGFzT3duUHJvcGVydHkobWluaWZpZWRLZXkpKSB7XG4gICAgICAvLyBOb3RlOiB0aGUgcHJpdmF0ZSBuYW1lcyBhcmUgdXNlZCBmb3IgdGhlIGtleXMsIHJhdGhlciB0aGFuIHRoZSBwdWJsaWMgb25lcywgYmVjYXVzZSBwdWJsaWNcbiAgICAgIC8vIG5hbWVzIGNhbiBiZSByZS1hbGlhc2VkIGluIGhvc3QgZGlyZWN0aXZlcyB3aGljaCB3b3VsZCBpbnZhbGlkYXRlIHRoZSBsb29rdXAuXG4gICAgICBjb25zdCB2YWx1ZSA9IGlucHV0c1ttaW5pZmllZEtleV07XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWVbM10pIHtcbiAgICAgICAgaW5wdXRUcmFuc2Zvcm1zW21pbmlmaWVkS2V5XSA9IHZhbHVlWzNdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIChkZWZpbml0aW9uIGFzIE11dGFibGU8RGlyZWN0aXZlRGVmPFQ+LCAnaW5wdXRUcmFuc2Zvcm1zJz4pLmlucHV0VHJhbnNmb3JtcyA9IGlucHV0VHJhbnNmb3Jtcztcbn1cbiJdfQ==
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRfdHJhbnNmb3Jtc19mZWF0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvcmVuZGVyMy9mZWF0dXJlcy9pbnB1dF90cmFuc2Zvcm1zX2ZlYXR1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBS0g7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSx3QkFBd0IsQ0FBSSxVQUEyQjtJQUNyRSxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDO0lBQ3RDLE1BQU0sZUFBZSxHQUEyQyxFQUFFLENBQUM7SUFFbkUsS0FBSyxNQUFNLFdBQVcsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNqQyxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUN2Qyw2RkFBNkY7WUFDN0YsZ0ZBQWdGO1lBQ2hGLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNsQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JDLGVBQWUsQ0FBQyxXQUFXLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUEsVUFBd0MsQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO0FBQzlFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZVxuICovXG5cbmltcG9ydCB7V3JpdGFibGV9IGZyb20gJy4uLy4uL2ludGVyZmFjZS90eXBlJztcbmltcG9ydCB7RGlyZWN0aXZlRGVmLCBJbnB1dFRyYW5zZm9ybUZ1bmN0aW9ufSBmcm9tICcuLi9pbnRlcmZhY2VzL2RlZmluaXRpb24nO1xuXG4vKipcbiAqIERlY29yYXRlcyB0aGUgZGlyZWN0aXZlIGRlZmluaXRpb24gd2l0aCBzdXBwb3J0IGZvciBpbnB1dCB0cmFuc2Zvcm0gZnVuY3Rpb25zLlxuICpcbiAqIElmIHRoZSBkaXJlY3RpdmUgdXNlcyBpbmhlcml0YW5jZSwgdGhlIGZlYXR1cmUgc2hvdWxkIGJlIGluY2x1ZGVkIGJlZm9yZSB0aGVcbiAqIGBJbmhlcml0RGVmaW5pdGlvbkZlYXR1cmVgIHRvIGVuc3VyZSB0aGF0IHRoZSBgaW5wdXRUcmFuc2Zvcm1zYCBmaWVsZCBpcyBwb3B1bGF0ZWQuXG4gKlxuICogQGNvZGVHZW5BcGlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIMm1ybVJbnB1dFRyYW5zZm9ybXNGZWF0dXJlPFQ+KGRlZmluaXRpb246IERpcmVjdGl2ZURlZjxUPik6IHZvaWQge1xuICBjb25zdCBpbnB1dHMgPSBkZWZpbml0aW9uLmlucHV0Q29uZmlnO1xuICBjb25zdCBpbnB1dFRyYW5zZm9ybXM6IFJlY29yZDxzdHJpbmcsIElucHV0VHJhbnNmb3JtRnVuY3Rpb24+ID0ge307XG5cbiAgZm9yIChjb25zdCBtaW5pZmllZEtleSBpbiBpbnB1dHMpIHtcbiAgICBpZiAoaW5wdXRzLmhhc093blByb3BlcnR5KG1pbmlmaWVkS2V5KSkge1xuICAgICAgLy8gTm90ZTogdGhlIHByaXZhdGUgbmFtZXMgYXJlIHVzZWQgZm9yIHRoZSBrZXlzLCByYXRoZXIgdGhhbiB0aGUgcHVibGljIG9uZXMsIGJlY2F1c2UgcHVibGljXG4gICAgICAvLyBuYW1lcyBjYW4gYmUgcmUtYWxpYXNlZCBpbiBob3N0IGRpcmVjdGl2ZXMgd2hpY2ggd291bGQgaW52YWxpZGF0ZSB0aGUgbG9va3VwLlxuICAgICAgY29uc3QgdmFsdWUgPSBpbnB1dHNbbWluaWZpZWRLZXldO1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlWzNdKSB7XG4gICAgICAgIGlucHV0VHJhbnNmb3Jtc1ttaW5pZmllZEtleV0gPSB2YWx1ZVszXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAoZGVmaW5pdGlvbiBhcyBXcml0YWJsZTxEaXJlY3RpdmVEZWY8VD4+KS5pbnB1dFRyYW5zZm9ybXMgPSBpbnB1dFRyYW5zZm9ybXM7XG59XG4iXX0=