angular-three 2.0.0-beta.40 → 2.0.0-beta.42

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 (45) hide show
  1. package/esm2022/index.mjs +2 -1
  2. package/esm2022/lib/before-render.mjs +3 -4
  3. package/esm2022/lib/canvas.mjs +12 -13
  4. package/esm2022/lib/directives/args.mjs +3 -3
  5. package/esm2022/lib/directives/common.mjs +3 -3
  6. package/esm2022/lib/directives/key.mjs +3 -3
  7. package/esm2022/lib/directives/parent.mjs +3 -3
  8. package/esm2022/lib/instance.mjs +32 -29
  9. package/esm2022/lib/loader.mjs +6 -6
  10. package/esm2022/lib/portal.mjs +33 -36
  11. package/esm2022/lib/ref.mjs +15 -13
  12. package/esm2022/lib/renderer/index.mjs +15 -8
  13. package/esm2022/lib/renderer/store.mjs +9 -11
  14. package/esm2022/lib/renderer/utils.mjs +10 -18
  15. package/esm2022/lib/roots.mjs +11 -6
  16. package/esm2022/lib/routed-scene.mjs +3 -3
  17. package/esm2022/lib/utils/apply-props.mjs +5 -7
  18. package/esm2022/lib/utils/create-api-token.mjs +13 -0
  19. package/esm2022/lib/utils/signal-store.mjs +7 -4
  20. package/esm2022/lib/utils/update.mjs +1 -1
  21. package/fesm2022/angular-three.mjs +163 -149
  22. package/fesm2022/angular-three.mjs.map +1 -1
  23. package/index.d.ts +1 -0
  24. package/lib/instance.d.ts +10 -6
  25. package/lib/portal.d.ts +5 -10
  26. package/lib/ref.d.ts +0 -1
  27. package/lib/roots.d.ts +1 -1
  28. package/lib/store.d.ts +2 -2
  29. package/lib/utils/create-api-token.d.ts +17 -0
  30. package/package.json +6 -4
  31. package/plugin/generators.json +10 -0
  32. package/plugin/package.json +5 -4
  33. package/plugin/src/generators/init-rapier/compat.d.ts +2 -0
  34. package/plugin/src/generators/init-rapier/compat.js +6 -0
  35. package/plugin/src/generators/init-rapier/compat.js.map +1 -0
  36. package/plugin/src/generators/init-rapier/generator.d.ts +2 -0
  37. package/plugin/src/generators/init-rapier/generator.js +22 -0
  38. package/plugin/src/generators/init-rapier/generator.js.map +1 -0
  39. package/plugin/src/generators/init-rapier/schema.json +6 -0
  40. package/plugin/src/generators/versions.d.ts +1 -0
  41. package/plugin/src/generators/versions.js +2 -1
  42. package/plugin/src/generators/versions.js.map +1 -1
  43. package/plugin/src/index.d.ts +2 -0
  44. package/plugin/src/index.js +11 -7
  45. package/plugin/src/index.js.map +1 -1
@@ -1,4 +1,4 @@
1
- import { ChangeDetectorRef, EventEmitter, NgZone, untracked } from '@angular/core';
1
+ import { ChangeDetectorRef, EventEmitter, NgZone } from '@angular/core';
2
2
  import { removeInteractivity } from '../events';
3
3
  import { getLocalState, invalidateInstance } from '../instance';
4
4
  import { attach, detach } from '../utils/attach';
@@ -73,10 +73,8 @@ export function attachThreeChild(parent, child) {
73
73
  }
74
74
  // attach
75
75
  if (cLS.isRaw) {
76
- if (cLS.parent && cLS.parent() !== parent) {
77
- untracked(() => {
78
- cLS.parent.set(parent);
79
- });
76
+ if (cLS.instanceStore.get('parent') !== parent) {
77
+ cLS.setParent(parent);
80
78
  }
81
79
  // at this point we don't have rawValue yet, so we bail and wait until the Renderer recalls attach
82
80
  if (child.__ngt_renderer__[NgtRendererClassId.rawValue] === undefined)
@@ -95,10 +93,8 @@ export function attachThreeChild(parent, child) {
95
93
  added = true;
96
94
  }
97
95
  pLS.add(child, added ? 'objects' : 'nonObjects');
98
- if (cLS.parent && cLS.parent() !== parent) {
99
- untracked(() => {
100
- cLS.parent.set(parent);
101
- });
96
+ if (cLS.instanceStore.get('parent') !== parent) {
97
+ cLS.setParent(parent);
102
98
  }
103
99
  if (cLS.afterAttach)
104
100
  cLS.afterAttach.emit({ parent, node: child });
@@ -109,14 +105,10 @@ export function removeThreeChild(parent, child, dispose) {
109
105
  const pLS = getLocalState(parent);
110
106
  const cLS = getLocalState(child);
111
107
  // clear parent ref
112
- untracked(() => {
113
- cLS.parent?.set(null);
114
- });
108
+ cLS.setParent?.(null);
115
109
  // remove child from parent
116
- if (pLS.objects && untracked(pLS.objects))
117
- pLS.remove(child, 'objects');
118
- if (pLS.nonObjects && untracked(pLS.nonObjects))
119
- pLS.remove(child, 'nonObjects');
110
+ pLS.remove?.(child, 'objects');
111
+ pLS.remove?.(child, 'nonObjects');
120
112
  if (cLS.attach) {
121
113
  detach(parent, child, cLS.attach);
122
114
  }
@@ -126,7 +118,7 @@ export function removeThreeChild(parent, child, dispose) {
126
118
  }
127
119
  const isPrimitive = cLS.primitive;
128
120
  if (!isPrimitive) {
129
- removeThreeRecursive(cLS.objects ? untracked(cLS.objects) : [], child, !!dispose);
121
+ removeThreeRecursive(cLS.instanceStore?.get('objects') || [], child, !!dispose);
130
122
  removeThreeRecursive(child.children, child, !!dispose);
131
123
  }
132
124
  // dispose
@@ -194,4 +186,4 @@ export function processThreeEvent(instance, priority, eventName, callback, zone,
194
186
  }
195
187
  };
196
188
  }
197
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9yZW5kZXJlci91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQXdCLE1BQU0sYUFBYSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTdDLFlBQVk7QUFDWixNQUFNLENBQU4sSUFBa0Isa0JBZ0JqQjtBQWhCRCxXQUFrQixrQkFBa0I7SUFDbkMsMkRBQUksQ0FBQTtJQUNKLCtEQUFNLENBQUE7SUFDTiwrRUFBYyxDQUFBO0lBQ2QsbUVBQVEsQ0FBQTtJQUNSLHFFQUFTLENBQUE7SUFDVCxtRUFBUSxDQUFBO0lBQ1IsK0VBQWMsQ0FBQTtJQUNkLHVFQUFVLENBQUE7SUFDVixtRUFBUSxDQUFBO0lBQ1IsdUVBQVUsQ0FBQTtJQUNWLHdFQUFVLENBQUE7SUFDVixvRUFBUSxDQUFBO0lBQ1IsMERBQUcsQ0FBQTtJQUNILGtGQUFlLENBQUE7SUFDZixrRkFBZSxDQUFBO0FBQ2hCLENBQUMsRUFoQmlCLGtCQUFrQixLQUFsQixrQkFBa0IsUUFnQm5DO0FBRUQsWUFBWTtBQUNaLE1BQU0sQ0FBTixJQUFrQixrQkFHakI7QUFIRCxXQUFrQixrQkFBa0I7SUFDbkMsdUVBQVUs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TSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBRTdELGdDQUFnQztJQUNoQyxFQUFFLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQztJQUNuQix1SEFBdUg7SUFDdkgsMkNBQTJDO0lBQzNDLElBQUksRUFBRSxDQUFDLFVBQVUsS0FBSyxDQUFDLElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQztRQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFdkcsZ0ZBQWdGO0lBQ2hGLE9BQU8sR0FBRyxFQUFFO1FBQ1gsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNDLElBQUksVUFBVSxJQUFJLFVBQVUsQ0FBQyxVQUFVLEVBQUU7WUFDeEMsVUFBVSxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUM7WUFDM0IsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUs7aUJBQzVCLEdBQUcsQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDO2lCQUM5QixTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pELElBQUksS0FBSyxJQUFJLENBQUM7Z0JBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDakY7SUFDRixDQUFDLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIEV2ZW50RW1pdHRlciwgTmdab25lLCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHJlbW92ZUludGVyYWN0aXZpdHkgfSBmcm9tICcuLi9ldmVudHMnO1xuaW1wb3J0IHsgZ2V0TG9jYWxTdGF0ZSwgaW52YWxpZGF0ZUluc3RhbmNlLCB0eXBlIE5ndEluc3RhbmNlTm9kZSB9IGZyb20gJy4uL2luc3RhbmNlJztcbmltcG9ydCB7IGF0dGFjaCwgZGV0YWNoIH0gZnJvbSAnLi4vdXRpbHMvYXR0YWNoJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi4vdXRpbHMvaXMnO1xuaW1wb3J0IHsgc2FmZURldGVjdENoYW5nZXMgfSBmcm9tICcuLi91dGlscy9zYWZlLWRldGVjdC1jaGFuZ2VzJztcbmltcG9ydCB7IFNQRUNJQUxfRVZFTlRTIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG4vLyBAaW50ZXJuYWxcbmV4cG9ydCBjb25zdCBlbnVtIE5ndFJlbmRlcmVyQ2xhc3NJZCB7XG5cdHR5cGUsXG5cdHBhcmVudCxcblx0aW5qZWN0ZWRQYXJlbnQsXG5cdGNoaWxkcmVuLFxuXHRkZXN0cm95ZWQsXG5cdGNvbXBvdW5kLFxuXHRjb21wb3VuZFBhcmVudCxcblx0Y29tcG91bmRlZCxcblx0cXVldWVPcHMsXG5cdGF0dHJpYnV0ZXMsXG5cdHByb3BlcnRpZXMsXG5cdHJhd1ZhbHVlLFxuXHRyZWYsXG5cdHBvcnRhbENvbnRhaW5lcixcblx0aW5qZWN0b3JGYWN0b3J5LFxufVxuXG4vLyBAaW50ZXJuYWxcbmV4cG9ydCBjb25zdCBlbnVtIE5ndENvbXBvdW5kQ2xhc3NJZCB7XG5cdGFwcGx5Rmlyc3QsXG5cdHByb3BzLFxufVxuXG4vLyBAaW50ZXJuYWxcbmV4cG9ydCBjb25zdCBlbnVtIE5ndFF1ZXVlT3BDbGFzc0lkIHtcblx0dHlwZSxcblx0b3AsXG5cdGRvbmUsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhdHRhY2hUaHJlZUNoaWxkKHBhcmVudDogTmd0SW5zdGFuY2VOb2RlLCBjaGlsZDogTmd0SW5zdGFuY2VOb2RlKSB7XG5cdGNvbnN0IHBMUyA9IGdldExvY2FsU3RhdGUocGFyZW50KTtcblx0Y29uc3QgY0xTID0gZ2V0TG9jYWxTdGF0ZShjaGlsZCk7XG5cblx0aWYgKCFwTFMgfHwgIWNMUykge1xuXHRcdHRocm93IG5ldyBFcnJvcihgW05HVF0gVEhSRUUgaW5zdGFuY2VzIG5lZWQgdG8gYmUgcHJlcGFyZWQgd2l0aCBsb2NhbCBzdGF0ZS5gKTtcblx0fVxuXG5cdC8vIHdoZXRoZXIgdGhlIGNoaWxkIGlzIGFkZGVkIHRvIHRoZSBwYXJlbnQgd2l0aCBwYXJlbnQuYWRkKClcblx0bGV0IGFkZGVkID0gZmFsc2U7XG5cblx0Ly8gYXNzaWduIHN0b3JlIG9uIGNoaWxkIGlmIG5vdCBhbHJlYWR5IGV4aXN0XG5cdC8vIG9yIGNoaWxkIHN0b3JlIGlzIHRoZSBwYXJlbnQgb2YgcGFyZW50IHN0b3JlXG5cdGlmICghY0xTLnN0b3JlIHx8IGNMUy5zdG9yZSA9PT0gcExTLnN0b3JlLmdldCgncHJldmlvdXNSb290JykpIHtcblx0XHRjTFMuc3RvcmUgPSBwTFMuc3RvcmU7XG5cdH1cblxuXHRpZiAoY0xTLmF0dGFjaCkge1xuXHRcdGNvbnN0IGF0dGFjaFByb3AgPSBjTFMuYXR0YWNoO1xuXG5cdFx0aWYgKHR5cGVvZiBhdHRhY2hQcm9wID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRjb25zdCBhdHRhY2hDbGVhblVwID0gYXR0YWNoUHJvcChwYXJlbnQsIGNoaWxkLCBjTFMuc3RvcmUpO1xuXHRcdFx0aWYgKGF0dGFjaENsZWFuVXApIGNMUy5wcmV2aW91c0F0dGFjaCA9IGF0dGFjaENsZWFuVXA7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIHdlIHNraXAgYXR0YWNoIG5vbmUgaWYgc2V0IGV4cGxpY2l0bHlcblx0XHRcdGlmIChhdHRhY2hQcm9wWzBdID09PSAnbm9uZScpIHtcblx0XHRcdFx0aW52YWxpZGF0ZUluc3RhbmNlKGNoaWxkKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBoYW5kbGUgbWF0ZXJpYWwgYXJyYXlcblx0XHRcdGlmIChcblx0XHRcdFx0YXR0YWNoUHJvcFswXSA9PT0gJ21hdGVyaWFsJyAmJlxuXHRcdFx0XHRhdHRhY2hQcm9wWzFdICYmXG5cdFx0XHRcdHR5cGVvZiBOdW1iZXIoYXR0YWNoUHJvcFsxXSkgPT09ICdudW1iZXInICYmXG5cdFx0XHRcdGlzLm1hdGVyaWFsKGNoaWxkKSAmJlxuXHRcdFx0XHQhQXJyYXkuaXNBcnJheShwYXJlbnRbJ21hdGVyaWFsJ10pXG5cdFx0XHQpIHtcblx0XHRcdFx0cGFyZW50WydtYXRlcmlhbCddID0gW107XG5cdFx0XHR9XG5cblx0XHRcdC8vIGF0dGFjaFxuXHRcdFx0aWYgKGNMUy5pc1Jhdykge1xuXHRcdFx0XHRpZiAoY0xTLnBhcmVudCAmJiBjTFMucGFyZW50KCkgIT09IHBhcmVudCkge1xuXHRcdFx0XHRcdHVudHJhY2tlZCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRjTFMucGFyZW50LnNldChwYXJlbnQpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIGF0IHRoaXMgcG9pbnQgd2UgZG9uJ3QgaGF2ZSByYXdWYWx1ZSB5ZXQsIHNvIHdlIGJhaWwgYW5kIHdhaXQgdW50aWwgdGhlIFJlbmRlcmVyIHJlY2FsbHMgYXR0YWNoXG5cdFx0XHRcdGlmIChjaGlsZC5fX25ndF9yZW5kZXJlcl9fW05ndFJlbmRlcmVyQ2xhc3NJZC5yYXdWYWx1ZV0gPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuXHRcdFx0XHRhdHRhY2gocGFyZW50LCBjaGlsZC5fX25ndF9yZW5kZXJlcl9fW05ndFJlbmRlcmVyQ2xhc3NJZC5yYXdWYWx1ZV0sIGF0dGFjaFByb3ApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0YXR0YWNoKHBhcmVudCwgY2hpbGQsIGF0dGFjaFByb3ApO1xuXHRcdFx0fVxuXHRcdFx0Ly8gc2F2ZSB2YWx1ZVxuXHRcdFx0Y0xTLnByZXZpb3VzQXR0YWNoID0gYXR0YWNoUHJvcC5yZWR1Y2UoKHZhbHVlLCBwcm9wZXJ0eSkgPT4gdmFsdWVbcHJvcGVydHldLCBwYXJlbnQpO1xuXHRcdH1cblx0fSBlbHNlIGlmIChpcy5vYmplY3QzRChwYXJlbnQpICYmIGlzLm9iamVjdDNEKGNoaWxkKSkge1xuXHRcdHBhcmVudC5hZGQoY2hpbGQpO1xuXHRcdGFkZGVkID0gdHJ1ZTtcblx0fVxuXG5cdHBMUy5hZGQoY2hpbGQsIGFkZGVkID8gJ29iamVjdHMnIDogJ25vbk9iamVjdHMnKTtcblxuXHRpZiAoY0xTLnBhcmVudCAmJiBjTFMucGFyZW50KCkgIT09IHBhcmVudCkge1xuXHRcdHVudHJhY2tlZCgoKSA9PiB7XG5cdFx0XHRjTFMucGFyZW50LnNldChwYXJlbnQpO1xuXHRcdH0pO1xuXHR9XG5cblx0aWYgKGNMUy5hZnRlckF0dGFjaCkgY0xTLmFmdGVyQXR0YWNoLmVtaXQoeyBwYXJlbnQsIG5vZGU6IGNoaWxkIH0pO1xuXG5cdGludmFsaWRhdGVJbnN0YW5jZShjaGlsZCk7XG5cdGludmFsaWRhdGVJbnN0YW5jZShwYXJlbnQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlVGhyZWVDaGlsZChwYXJlbnQ6IE5ndEluc3RhbmNlTm9kZSwgY2hpbGQ6IE5ndEluc3RhbmNlTm9kZSwgZGlzcG9zZT86IGJvb2xlYW4pIHtcblx0Y29uc3QgcExTID0gZ2V0TG9jYWxTdGF0ZShwYXJlbnQpO1xuXHRjb25zdCBjTFMgPSBnZXRMb2NhbFN0YXRlKGNoaWxkKTtcblxuXHQvLyBjbGVhciBwYXJlbnQgcmVmXG5cdHVudHJhY2tlZCgoKSA9PiB7XG5cdFx0Y0xTLnBhcmVudD8uc2V0KG51bGwpO1xuXHR9KTtcblxuXHQvLyByZW1vdmUgY2hpbGQgZnJvbSBwYXJlbnRcblx0aWYgKHBMUy5vYmplY3RzICYmIHVudHJhY2tlZChwTFMub2JqZWN0cykpIHBMUy5yZW1vdmUoY2hpbGQsICdvYmplY3RzJyk7XG5cdGlmIChwTFMubm9uT2JqZWN0cyAmJiB1bnRyYWNrZWQocExTLm5vbk9iamVjdHMpKSBwTFMucmVtb3ZlKGNoaWxkLCAnbm9uT2JqZWN0cycpO1xuXG5cdGlmIChjTFMuYXR0YWNoKSB7XG5cdFx0ZGV0YWNoKHBhcmVudCwgY2hpbGQsIGNMUy5hdHRhY2gpO1xuXHR9IGVsc2UgaWYgKGlzLm9iamVjdDNEKHBhcmVudCkgJiYgaXMub2JqZWN0M0QoY2hpbGQpKSB7XG5cdFx0cGFyZW50LnJlbW92ZShjaGlsZCk7XG5cdFx0cmVtb3ZlSW50ZXJhY3Rpdml0eShjTFMuc3RvcmUgfHwgcExTLnN0b3JlLCBjaGlsZCk7XG5cdH1cblxuXHRjb25zdCBpc1ByaW1pdGl2ZSA9IGNMUy5wcmltaXRpdmU7XG5cdGlmICghaXNQcmltaXRpdmUpIHtcblx0XHRyZW1vdmVUaHJlZVJlY3Vyc2l2ZShjTFMub2JqZWN0cyA/IHVudHJhY2tlZChjTFMub2JqZWN0cykgOiBbXSwgY2hpbGQsICEhZGlzcG9zZSk7XG5cdFx0cmVtb3ZlVGhyZWVSZWN1cnNpdmUoY2hpbGQuY2hpbGRyZW4sIGNoaWxkLCAhIWRpc3Bvc2UpO1xuXHR9XG5cblx0Ly8gZGlzcG9zZVxuXHRpZiAoIWlzUHJpbWl0aXZlICYmIGNoaWxkWydkaXNwb3NlJ10gJiYgIWlzLnNjZW5lKGNoaWxkKSkge1xuXHRcdHF1ZXVlTWljcm90YXNrKCgpID0+IGNoaWxkWydkaXNwb3NlJ10oKSk7XG5cdH1cblxuXHRpbnZhbGlkYXRlSW5zdGFuY2UocGFyZW50KTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlVGhyZWVSZWN1cnNpdmUoYXJyYXk6IE5ndEluc3RhbmNlTm9kZVtdLCBwYXJlbnQ6IE5ndEluc3RhbmNlTm9kZSwgZGlzcG9zZTogYm9vbGVhbikge1xuXHRpZiAoYXJyYXkpIFsuLi5hcnJheV0uZm9yRWFjaCgoY2hpbGQpID0+IHJlbW92ZVRocmVlQ2hpbGQocGFyZW50LCBjaGlsZCwgZGlzcG9zZSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24ga2ViYWJUb1Bhc2NhbChzdHI6IHN0cmluZyk6IHN0cmluZyB7XG5cdC8vIHNwbGl0IHRoZSBzdHJpbmcgYXQgZWFjaCBoeXBoZW5cblx0Y29uc3QgcGFydHMgPSBzdHIuc3BsaXQoJy0nKTtcblxuXHQvLyBtYXAgb3ZlciB0aGUgcGFydHMsIGNhcGl0YWxpemluZyB0aGUgZmlyc3QgbGV0dGVyIG9mIGVhY2ggcGFydFxuXHRjb25zdCBwYXNjYWxQYXJ0cyA9IHBhcnRzLm1hcCgocGFydCkgPT4gcGFydC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHBhcnQuc2xpY2UoMSkpO1xuXG5cdC8vIGpvaW4gdGhlIHBhcnRzIHRvZ2V0aGVyIHRvIGNyZWF0ZSB0aGUgZmluYWwgUGFzY2FsQ2FzZSBzdHJpbmdcblx0cmV0dXJuIHBhc2NhbFBhcnRzLmpvaW4oJycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvY2Vzc1RocmVlRXZlbnQoXG5cdGluc3RhbmNlOiBOZ3RJbnN0YW5jZU5vZGUsXG5cdHByaW9yaXR5OiBudW1iZXIsXG5cdGV2ZW50TmFtZTogc3RyaW5nLFxuXHRjYWxsYmFjazogKGV2ZW50OiBhbnkpID0+IHZvaWQsXG5cdHpvbmU6IE5nWm9uZSxcblx0cm9vdENkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG5cdHRhcmdldENkcj86IENoYW5nZURldGVjdG9yUmVmIHwgbnVsbCxcbik6ICgpID0+IHZvaWQge1xuXHRjb25zdCBsUyA9IGdldExvY2FsU3RhdGUoaW5zdGFuY2UpO1xuXHRpZiAoZXZlbnROYW1lID09PSBTUEVDSUFMX0VWRU5UUy5CRUZPUkVfUkVOREVSKSB7XG5cdFx0cmV0dXJuIGxTLnN0b3JlXG5cdFx0XHQuZ2V0KCdpbnRlcm5hbCcpXG5cdFx0XHQuc3Vic2NyaWJlKChzdGF0ZSkgPT4gY2FsbGJhY2soeyBzdGF0ZSwgb2JqZWN0OiBpbnN0YW5jZSB9KSwgcHJpb3JpdHkgfHwgbFMucHJpb3JpdHkgfHwgMCk7XG5cdH1cblxuXHRpZiAoZXZlbnROYW1lID09PSBTUEVDSUFMX0VWRU5UUy5BRlRFUl9VUERBVEUgfHwgZXZlbnROYW1lID09PSBTUEVDSUFMX0VWRU5UUy5BRlRFUl9BVFRBQ0gpIHtcblx0XHRsZXQgZW1pdHRlciA9IGxTW2V2ZW50TmFtZV07XG5cdFx0aWYgKCFlbWl0dGVyKSBlbWl0dGVyID0gbFNbZXZlbnROYW1lXSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblx0XHRjb25zdCBzdWIgPSBlbWl0dGVyLnN1YnNjcmliZShjYWxsYmFjayk7XG5cdFx0cmV0dXJuIHN1Yi51bnN1YnNjcmliZS5iaW5kKHN1Yik7XG5cdH1cblxuXHRpZiAoIWxTLmhhbmRsZXJzKSBsUy5oYW5kbGVycyA9IHt9O1xuXG5cdC8vIHRyeSB0byBnZXQgdGhlIHByZXZpb3VzIGhhbmRsZXIuIGNvbXBvdW5kIG1pZ2h0IGhhdmUgb25lLCB0aGUgVEhSRUUgb2JqZWN0IG1pZ2h0IGFsc28gaGF2ZSBvbmUgd2l0aCB0aGUgc2FtZSBuYW1lXG5cdGNvbnN0IHByZXZpb3VzSGFuZGxlciA9IGxTLmhhbmRsZXJzW2V2ZW50TmFtZSBhcyBrZXlvZiB0eXBlb2YgbFMuaGFuZGxlcnNdO1xuXHQvLyByZWFkanVzdCB0aGUgY2FsbGJhY2tcblx0Y29uc3QgdXBkYXRlZENhbGxiYWNrOiB0eXBlb2YgY2FsbGJhY2sgPSAoZXZlbnQpID0+IHtcblx0XHRpZiAocHJldmlvdXNIYW5kbGVyKSBwcmV2aW91c0hhbmRsZXIoZXZlbnQpO1xuXHRcdHpvbmUucnVuKCgpID0+IHtcblx0XHRcdGNhbGxiYWNrKGV2ZW50KTtcblx0XHRcdHNhZmVEZXRlY3RDaGFuZ2VzKHRhcmdldENkciwgcm9vdENkcik7XG5cdFx0fSk7XG5cdH07XG5cblx0T2JqZWN0LmFzc2lnbihsUy5oYW5kbGVycywgeyBbZXZlbnROYW1lXTogdXBkYXRlZENhbGxiYWNrIH0pO1xuXG5cdC8vIGluY3JlbWVudCB0aGUgY291bnQgZXZlcnl0aW1lXG5cdGxTLmV2ZW50Q291bnQgKz0gMTtcblx0Ly8gYnV0IG9ubHkgYWRkIHRoZSBpbnN0YW5jZSAodGFyZ2V0KSB0byB0aGUgaW50ZXJhY3Rpb24gYXJyYXkgKHNvIHRoYXQgaXQgaXMgaGFuZGxlZCBieSB0aGUgRXZlbnRNYW5hZ2VyIHdpdGggUmF5Y2FzdClcblx0Ly8gdGhlIGZpcnN0IHRpbWUgZXZlbnRDb3VudCBpcyBpbmNyZW1lbnRlZFxuXHRpZiAobFMuZXZlbnRDb3VudCA9PT0gMSAmJiBpbnN0YW5jZVsncmF5Y2FzdCddKSBsUy5zdG9yZS5nZXQoJ2ludGVybmFsJywgJ2ludGVyYWN0aW9uJykucHVzaChpbnN0YW5jZSk7XG5cblx0Ly8gY2xlYW4gdXAgdGhlIGV2ZW50IGxpc3RlbmVyIGJ5IHJlbW92aW5nIHRoZSB0YXJnZXQgZnJvbSB0aGUgaW50ZXJhY3Rpb24gYXJyYXlcblx0cmV0dXJuICgpID0+IHtcblx0XHRjb25zdCBsb2NhbFN0YXRlID0gZ2V0TG9jYWxTdGF0ZShpbnN0YW5jZSk7XG5cdFx0aWYgKGxvY2FsU3RhdGUgJiYgbG9jYWxTdGF0ZS5ldmVudENvdW50KSB7XG5cdFx0XHRsb2NhbFN0YXRlLmV2ZW50Q291bnQgLT0gMTtcblx0XHRcdGNvbnN0IGluZGV4ID0gbG9jYWxTdGF0ZS5zdG9yZVxuXHRcdFx0XHQuZ2V0KCdpbnRlcm5hbCcsICdpbnRlcmFjdGlvbicpXG5cdFx0XHRcdC5maW5kSW5kZXgoKG9iaikgPT4gb2JqLnV1aWQgPT09IGluc3RhbmNlLnV1aWQpO1xuXHRcdFx0aWYgKGluZGV4ID49IDApIGxvY2FsU3RhdGUuc3RvcmUuZ2V0KCdpbnRlcm5hbCcsICdpbnRlcmFjdGlvbicpLnNwbGljZShpbmRleCwgMSk7XG5cdFx0fVxuXHR9O1xufVxuIl19
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9yZW5kZXJlci91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBd0IsTUFBTSxhQUFhLENBQUM7QUFDdEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFN0MsWUFBWTtBQUNaLE1BQU0sQ0FBTixJQUFrQixrQkFnQmpCO0FBaEJELFdBQWtCLGtCQUFrQjtJQUNuQywyREFBSSxDQUFBO0lBQ0osK0RBQU0sQ0FBQTtJQUNOLCtFQUFjLENBQUE7SUFDZCxtRUFBUSxDQUFBO0lBQ1IscUVBQVMsQ0FBQTtJQUNULG1FQUFRLENBQUE7SUFDUiwrRUFBYyxDQUFBO0lBQ2QsdUVBQVUsQ0FBQTtJQUNWLG1FQUFRLENBQUE7SUFDUix1RUFBVSxDQUFBO0lBQ1Ysd0VBQVUsQ0FBQTtJQUNWLG9FQUFRLENBQUE7SUFDUiwwREFBRyxDQUFBO0lBQ0gsa0ZBQWUsQ0FBQTtJQUNmLGtGQUFlLENBQUE7QUFDaEIsQ0FBQyxFQWhCaUIsa0JBQWtCLEtBQWxCLGtCQUFrQixRQWdCbkM7QUFFRCxZQUFZO0FBQ1osTUFBTSxDQUFOLElBQWtCLGtCQUdqQjtBQUhELFdBQWtCLGtCQUFrQjtJQUNuQyx1RUFBVSxDQUFBO0lBQ1Ys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QWdGO0lBQ2hGLE9BQU8sR0FBRyxFQUFFO1FBQ1gsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNDLElBQUksVUFBVSxJQUFJLFVBQVUsQ0FBQyxVQUFVLEVBQUU7WUFDeEMsVUFBVSxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUM7WUFDM0IsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUs7aUJBQzVCLEdBQUcsQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDO2lCQUM5QixTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pELElBQUksS0FBSyxJQUFJLENBQUM7Z0JBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDakY7SUFDRixDQUFDLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIEV2ZW50RW1pdHRlciwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyByZW1vdmVJbnRlcmFjdGl2aXR5IH0gZnJvbSAnLi4vZXZlbnRzJztcbmltcG9ydCB7IGdldExvY2FsU3RhdGUsIGludmFsaWRhdGVJbnN0YW5jZSwgdHlwZSBOZ3RJbnN0YW5jZU5vZGUgfSBmcm9tICcuLi9pbnN0YW5jZSc7XG5pbXBvcnQgeyBhdHRhY2gsIGRldGFjaCB9IGZyb20gJy4uL3V0aWxzL2F0dGFjaCc7XG5pbXBvcnQgeyBpcyB9IGZyb20gJy4uL3V0aWxzL2lzJztcbmltcG9ydCB7IHNhZmVEZXRlY3RDaGFuZ2VzIH0gZnJvbSAnLi4vdXRpbHMvc2FmZS1kZXRlY3QtY2hhbmdlcyc7XG5pbXBvcnQgeyBTUEVDSUFMX0VWRU5UUyB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuLy8gQGludGVybmFsXG5leHBvcnQgY29uc3QgZW51bSBOZ3RSZW5kZXJlckNsYXNzSWQge1xuXHR0eXBlLFxuXHRwYXJlbnQsXG5cdGluamVjdGVkUGFyZW50LFxuXHRjaGlsZHJlbixcblx0ZGVzdHJveWVkLFxuXHRjb21wb3VuZCxcblx0Y29tcG91bmRQYXJlbnQsXG5cdGNvbXBvdW5kZWQsXG5cdHF1ZXVlT3BzLFxuXHRhdHRyaWJ1dGVzLFxuXHRwcm9wZXJ0aWVzLFxuXHRyYXdWYWx1ZSxcblx0cmVmLFxuXHRwb3J0YWxDb250YWluZXIsXG5cdGluamVjdG9yRmFjdG9yeSxcbn1cblxuLy8gQGludGVybmFsXG5leHBvcnQgY29uc3QgZW51bSBOZ3RDb21wb3VuZENsYXNzSWQge1xuXHRhcHBseUZpcnN0LFxuXHRwcm9wcyxcbn1cblxuLy8gQGludGVybmFsXG5leHBvcnQgY29uc3QgZW51bSBOZ3RRdWV1ZU9wQ2xhc3NJZCB7XG5cdHR5cGUsXG5cdG9wLFxuXHRkb25lLFxufVxuXG5leHBvcnQgZnVuY3Rpb24gYXR0YWNoVGhyZWVDaGlsZChwYXJlbnQ6IE5ndEluc3RhbmNlTm9kZSwgY2hpbGQ6IE5ndEluc3RhbmNlTm9kZSkge1xuXHRjb25zdCBwTFMgPSBnZXRMb2NhbFN0YXRlKHBhcmVudCk7XG5cdGNvbnN0IGNMUyA9IGdldExvY2FsU3RhdGUoY2hpbGQpO1xuXG5cdGlmICghcExTIHx8ICFjTFMpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoYFtOR1RdIFRIUkVFIGluc3RhbmNlcyBuZWVkIHRvIGJlIHByZXBhcmVkIHdpdGggbG9jYWwgc3RhdGUuYCk7XG5cdH1cblxuXHQvLyB3aGV0aGVyIHRoZSBjaGlsZCBpcyBhZGRlZCB0byB0aGUgcGFyZW50IHdpdGggcGFyZW50LmFkZCgpXG5cdGxldCBhZGRlZCA9IGZhbHNlO1xuXG5cdC8vIGFzc2lnbiBzdG9yZSBvbiBjaGlsZCBpZiBub3QgYWxyZWFkeSBleGlzdFxuXHQvLyBvciBjaGlsZCBzdG9yZSBpcyB0aGUgcGFyZW50IG9mIHBhcmVudCBzdG9yZVxuXHRpZiAoIWNMUy5zdG9yZSB8fCBjTFMuc3RvcmUgPT09IHBMUy5zdG9yZS5nZXQoJ3ByZXZpb3VzUm9vdCcpKSB7XG5cdFx0Y0xTLnN0b3JlID0gcExTLnN0b3JlO1xuXHR9XG5cblx0aWYgKGNMUy5hdHRhY2gpIHtcblx0XHRjb25zdCBhdHRhY2hQcm9wID0gY0xTLmF0dGFjaDtcblxuXHRcdGlmICh0eXBlb2YgYXR0YWNoUHJvcCA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0Y29uc3QgYXR0YWNoQ2xlYW5VcCA9IGF0dGFjaFByb3AocGFyZW50LCBjaGlsZCwgY0xTLnN0b3JlKTtcblx0XHRcdGlmIChhdHRhY2hDbGVhblVwKSBjTFMucHJldmlvdXNBdHRhY2ggPSBhdHRhY2hDbGVhblVwO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyB3ZSBza2lwIGF0dGFjaCBub25lIGlmIHNldCBleHBsaWNpdGx5XG5cdFx0XHRpZiAoYXR0YWNoUHJvcFswXSA9PT0gJ25vbmUnKSB7XG5cdFx0XHRcdGludmFsaWRhdGVJbnN0YW5jZShjaGlsZCk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0Ly8gaGFuZGxlIG1hdGVyaWFsIGFycmF5XG5cdFx0XHRpZiAoXG5cdFx0XHRcdGF0dGFjaFByb3BbMF0gPT09ICdtYXRlcmlhbCcgJiZcblx0XHRcdFx0YXR0YWNoUHJvcFsxXSAmJlxuXHRcdFx0XHR0eXBlb2YgTnVtYmVyKGF0dGFjaFByb3BbMV0pID09PSAnbnVtYmVyJyAmJlxuXHRcdFx0XHRpcy5tYXRlcmlhbChjaGlsZCkgJiZcblx0XHRcdFx0IUFycmF5LmlzQXJyYXkocGFyZW50WydtYXRlcmlhbCddKVxuXHRcdFx0KSB7XG5cdFx0XHRcdHBhcmVudFsnbWF0ZXJpYWwnXSA9IFtdO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBhdHRhY2hcblx0XHRcdGlmIChjTFMuaXNSYXcpIHtcblx0XHRcdFx0aWYgKGNMUy5pbnN0YW5jZVN0b3JlLmdldCgncGFyZW50JykgIT09IHBhcmVudCkge1xuXHRcdFx0XHRcdGNMUy5zZXRQYXJlbnQocGFyZW50KTtcblx0XHRcdFx0fVxuXHRcdFx0XHQvLyBhdCB0aGlzIHBvaW50IHdlIGRvbid0IGhhdmUgcmF3VmFsdWUgeWV0LCBzbyB3ZSBiYWlsIGFuZCB3YWl0IHVudGlsIHRoZSBSZW5kZXJlciByZWNhbGxzIGF0dGFjaFxuXHRcdFx0XHRpZiAoY2hpbGQuX19uZ3RfcmVuZGVyZXJfX1tOZ3RSZW5kZXJlckNsYXNzSWQucmF3VmFsdWVdID09PSB1bmRlZmluZWQpIHJldHVybjtcblx0XHRcdFx0YXR0YWNoKHBhcmVudCwgY2hpbGQuX19uZ3RfcmVuZGVyZXJfX1tOZ3RSZW5kZXJlckNsYXNzSWQucmF3VmFsdWVdLCBhdHRhY2hQcm9wKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGF0dGFjaChwYXJlbnQsIGNoaWxkLCBhdHRhY2hQcm9wKTtcblx0XHRcdH1cblx0XHRcdC8vIHNhdmUgdmFsdWVcblx0XHRcdGNMUy5wcmV2aW91c0F0dGFjaCA9IGF0dGFjaFByb3AucmVkdWNlKCh2YWx1ZSwgcHJvcGVydHkpID0+IHZhbHVlW3Byb3BlcnR5XSwgcGFyZW50KTtcblx0XHR9XG5cdH0gZWxzZSBpZiAoaXMub2JqZWN0M0QocGFyZW50KSAmJiBpcy5vYmplY3QzRChjaGlsZCkpIHtcblx0XHRwYXJlbnQuYWRkKGNoaWxkKTtcblx0XHRhZGRlZCA9IHRydWU7XG5cdH1cblxuXHRwTFMuYWRkKGNoaWxkLCBhZGRlZCA/ICdvYmplY3RzJyA6ICdub25PYmplY3RzJyk7XG5cblx0aWYgKGNMUy5pbnN0YW5jZVN0b3JlLmdldCgncGFyZW50JykgIT09IHBhcmVudCkge1xuXHRcdGNMUy5zZXRQYXJlbnQocGFyZW50KTtcblx0fVxuXG5cdGlmIChjTFMuYWZ0ZXJBdHRhY2gpIGNMUy5hZnRlckF0dGFjaC5lbWl0KHsgcGFyZW50LCBub2RlOiBjaGlsZCB9KTtcblxuXHRpbnZhbGlkYXRlSW5zdGFuY2UoY2hpbGQpO1xuXHRpbnZhbGlkYXRlSW5zdGFuY2UocGFyZW50KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVRocmVlQ2hpbGQocGFyZW50OiBOZ3RJbnN0YW5jZU5vZGUsIGNoaWxkOiBOZ3RJbnN0YW5jZU5vZGUsIGRpc3Bvc2U/OiBib29sZWFuKSB7XG5cdGNvbnN0IHBMUyA9IGdldExvY2FsU3RhdGUocGFyZW50KTtcblx0Y29uc3QgY0xTID0gZ2V0TG9jYWxTdGF0ZShjaGlsZCk7XG5cblx0Ly8gY2xlYXIgcGFyZW50IHJlZlxuXHRjTFMuc2V0UGFyZW50Py4obnVsbCk7XG5cblx0Ly8gcmVtb3ZlIGNoaWxkIGZyb20gcGFyZW50XG5cdHBMUy5yZW1vdmU/LihjaGlsZCwgJ29iamVjdHMnKTtcblx0cExTLnJlbW92ZT8uKGNoaWxkLCAnbm9uT2JqZWN0cycpO1xuXG5cdGlmIChjTFMuYXR0YWNoKSB7XG5cdFx0ZGV0YWNoKHBhcmVudCwgY2hpbGQsIGNMUy5hdHRhY2gpO1xuXHR9IGVsc2UgaWYgKGlzLm9iamVjdDNEKHBhcmVudCkgJiYgaXMub2JqZWN0M0QoY2hpbGQpKSB7XG5cdFx0cGFyZW50LnJlbW92ZShjaGlsZCk7XG5cdFx0cmVtb3ZlSW50ZXJhY3Rpdml0eShjTFMuc3RvcmUgfHwgcExTLnN0b3JlLCBjaGlsZCk7XG5cdH1cblxuXHRjb25zdCBpc1ByaW1pdGl2ZSA9IGNMUy5wcmltaXRpdmU7XG5cdGlmICghaXNQcmltaXRpdmUpIHtcblx0XHRyZW1vdmVUaHJlZVJlY3Vyc2l2ZShjTFMuaW5zdGFuY2VTdG9yZT8uZ2V0KCdvYmplY3RzJykgfHwgW10sIGNoaWxkLCAhIWRpc3Bvc2UpO1xuXHRcdHJlbW92ZVRocmVlUmVjdXJzaXZlKGNoaWxkLmNoaWxkcmVuLCBjaGlsZCwgISFkaXNwb3NlKTtcblx0fVxuXG5cdC8vIGRpc3Bvc2Vcblx0aWYgKCFpc1ByaW1pdGl2ZSAmJiBjaGlsZFsnZGlzcG9zZSddICYmICFpcy5zY2VuZShjaGlsZCkpIHtcblx0XHRxdWV1ZU1pY3JvdGFzaygoKSA9PiBjaGlsZFsnZGlzcG9zZSddKCkpO1xuXHR9XG5cblx0aW52YWxpZGF0ZUluc3RhbmNlKHBhcmVudCk7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZVRocmVlUmVjdXJzaXZlKGFycmF5OiBOZ3RJbnN0YW5jZU5vZGVbXSwgcGFyZW50OiBOZ3RJbnN0YW5jZU5vZGUsIGRpc3Bvc2U6IGJvb2xlYW4pIHtcblx0aWYgKGFycmF5KSBbLi4uYXJyYXldLmZvckVhY2goKGNoaWxkKSA9PiByZW1vdmVUaHJlZUNoaWxkKHBhcmVudCwgY2hpbGQsIGRpc3Bvc2UpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGtlYmFiVG9QYXNjYWwoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuXHQvLyBzcGxpdCB0aGUgc3RyaW5nIGF0IGVhY2ggaHlwaGVuXG5cdGNvbnN0IHBhcnRzID0gc3RyLnNwbGl0KCctJyk7XG5cblx0Ly8gbWFwIG92ZXIgdGhlIHBhcnRzLCBjYXBpdGFsaXppbmcgdGhlIGZpcnN0IGxldHRlciBvZiBlYWNoIHBhcnRcblx0Y29uc3QgcGFzY2FsUGFydHMgPSBwYXJ0cy5tYXAoKHBhcnQpID0+IHBhcnQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBwYXJ0LnNsaWNlKDEpKTtcblxuXHQvLyBqb2luIHRoZSBwYXJ0cyB0b2dldGhlciB0byBjcmVhdGUgdGhlIGZpbmFsIFBhc2NhbENhc2Ugc3RyaW5nXG5cdHJldHVybiBwYXNjYWxQYXJ0cy5qb2luKCcnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb2Nlc3NUaHJlZUV2ZW50KFxuXHRpbnN0YW5jZTogTmd0SW5zdGFuY2VOb2RlLFxuXHRwcmlvcml0eTogbnVtYmVyLFxuXHRldmVudE5hbWU6IHN0cmluZyxcblx0Y2FsbGJhY2s6IChldmVudDogYW55KSA9PiB2b2lkLFxuXHR6b25lOiBOZ1pvbmUsXG5cdHJvb3RDZHI6IENoYW5nZURldGVjdG9yUmVmLFxuXHR0YXJnZXRDZHI/OiBDaGFuZ2VEZXRlY3RvclJlZiB8IG51bGwsXG4pOiAoKSA9PiB2b2lkIHtcblx0Y29uc3QgbFMgPSBnZXRMb2NhbFN0YXRlKGluc3RhbmNlKTtcblx0aWYgKGV2ZW50TmFtZSA9PT0gU1BFQ0lBTF9FVkVOVFMuQkVGT1JFX1JFTkRFUikge1xuXHRcdHJldHVybiBsUy5zdG9yZVxuXHRcdFx0LmdldCgnaW50ZXJuYWwnKVxuXHRcdFx0LnN1YnNjcmliZSgoc3RhdGUpID0+IGNhbGxiYWNrKHsgc3RhdGUsIG9iamVjdDogaW5zdGFuY2UgfSksIHByaW9yaXR5IHx8IGxTLnByaW9yaXR5IHx8IDApO1xuXHR9XG5cblx0aWYgKGV2ZW50TmFtZSA9PT0gU1BFQ0lBTF9FVkVOVFMuQUZURVJfVVBEQVRFIHx8IGV2ZW50TmFtZSA9PT0gU1BFQ0lBTF9FVkVOVFMuQUZURVJfQVRUQUNIKSB7XG5cdFx0bGV0IGVtaXR0ZXIgPSBsU1tldmVudE5hbWVdO1xuXHRcdGlmICghZW1pdHRlcikgZW1pdHRlciA9IGxTW2V2ZW50TmFtZV0gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cdFx0Y29uc3Qgc3ViID0gZW1pdHRlci5zdWJzY3JpYmUoY2FsbGJhY2spO1xuXHRcdHJldHVybiBzdWIudW5zdWJzY3JpYmUuYmluZChzdWIpO1xuXHR9XG5cblx0aWYgKCFsUy5oYW5kbGVycykgbFMuaGFuZGxlcnMgPSB7fTtcblxuXHQvLyB0cnkgdG8gZ2V0IHRoZSBwcmV2aW91cyBoYW5kbGVyLiBjb21wb3VuZCBtaWdodCBoYXZlIG9uZSwgdGhlIFRIUkVFIG9iamVjdCBtaWdodCBhbHNvIGhhdmUgb25lIHdpdGggdGhlIHNhbWUgbmFtZVxuXHRjb25zdCBwcmV2aW91c0hhbmRsZXIgPSBsUy5oYW5kbGVyc1tldmVudE5hbWUgYXMga2V5b2YgdHlwZW9mIGxTLmhhbmRsZXJzXTtcblx0Ly8gcmVhZGp1c3QgdGhlIGNhbGxiYWNrXG5cdGNvbnN0IHVwZGF0ZWRDYWxsYmFjazogdHlwZW9mIGNhbGxiYWNrID0gKGV2ZW50KSA9PiB7XG5cdFx0aWYgKHByZXZpb3VzSGFuZGxlcikgcHJldmlvdXNIYW5kbGVyKGV2ZW50KTtcblx0XHR6b25lLnJ1bigoKSA9PiB7XG5cdFx0XHRjYWxsYmFjayhldmVudCk7XG5cdFx0XHRzYWZlRGV0ZWN0Q2hhbmdlcyh0YXJnZXRDZHIsIHJvb3RDZHIpO1xuXHRcdH0pO1xuXHR9O1xuXG5cdE9iamVjdC5hc3NpZ24obFMuaGFuZGxlcnMsIHsgW2V2ZW50TmFtZV06IHVwZGF0ZWRDYWxsYmFjayB9KTtcblxuXHQvLyBpbmNyZW1lbnQgdGhlIGNvdW50IGV2ZXJ5dGltZVxuXHRsUy5ldmVudENvdW50ICs9IDE7XG5cdC8vIGJ1dCBvbmx5IGFkZCB0aGUgaW5zdGFuY2UgKHRhcmdldCkgdG8gdGhlIGludGVyYWN0aW9uIGFycmF5IChzbyB0aGF0IGl0IGlzIGhhbmRsZWQgYnkgdGhlIEV2ZW50TWFuYWdlciB3aXRoIFJheWNhc3QpXG5cdC8vIHRoZSBmaXJzdCB0aW1lIGV2ZW50Q291bnQgaXMgaW5jcmVtZW50ZWRcblx0aWYgKGxTLmV2ZW50Q291bnQgPT09IDEgJiYgaW5zdGFuY2VbJ3JheWNhc3QnXSkgbFMuc3RvcmUuZ2V0KCdpbnRlcm5hbCcsICdpbnRlcmFjdGlvbicpLnB1c2goaW5zdGFuY2UpO1xuXG5cdC8vIGNsZWFuIHVwIHRoZSBldmVudCBsaXN0ZW5lciBieSByZW1vdmluZyB0aGUgdGFyZ2V0IGZyb20gdGhlIGludGVyYWN0aW9uIGFycmF5XG5cdHJldHVybiAoKSA9PiB7XG5cdFx0Y29uc3QgbG9jYWxTdGF0ZSA9IGdldExvY2FsU3RhdGUoaW5zdGFuY2UpO1xuXHRcdGlmIChsb2NhbFN0YXRlICYmIGxvY2FsU3RhdGUuZXZlbnRDb3VudCkge1xuXHRcdFx0bG9jYWxTdGF0ZS5ldmVudENvdW50IC09IDE7XG5cdFx0XHRjb25zdCBpbmRleCA9IGxvY2FsU3RhdGUuc3RvcmVcblx0XHRcdFx0LmdldCgnaW50ZXJuYWwnLCAnaW50ZXJhY3Rpb24nKVxuXHRcdFx0XHQuZmluZEluZGV4KChvYmopID0+IG9iai51dWlkID09PSBpbnN0YW5jZS51dWlkKTtcblx0XHRcdGlmIChpbmRleCA+PSAwKSBsb2NhbFN0YXRlLnN0b3JlLmdldCgnaW50ZXJuYWwnLCAnaW50ZXJhY3Rpb24nKS5zcGxpY2UoaW5kZXgsIDEpO1xuXHRcdH1cblx0fTtcbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { DestroyRef, effect, inject, runInInjectionContext } from '@angular/core';
1
+ import { DestroyRef, Injector, effect, inject } from '@angular/core';
2
2
  import { assertInjector } from 'ngxtension/assert-injector';
3
3
  import * as THREE from 'three';
4
4
  import { prepare } from './instance';
@@ -11,8 +11,8 @@ import { checkNeedsUpdate } from './utils/update';
11
11
  const shallowLoose = { objects: 'shallow', strict: false };
12
12
  export const roots = new Map();
13
13
  export function injectCanvasRootInitializer(injector) {
14
- injector = assertInjector(injectCanvasRootInitializer, injector);
15
- return runInInjectionContext(injector, () => {
14
+ return assertInjector(injectCanvasRootInitializer, injector, () => {
15
+ const assertedInjector = inject(Injector);
16
16
  const injectedStore = injectNgtStore();
17
17
  const loop = injectNgtLoop();
18
18
  const destroyRef = inject(DestroyRef);
@@ -222,8 +222,13 @@ export function injectCanvasRootInitializer(injector) {
222
222
  if (state.frameloop !== frameloop)
223
223
  state.setFrameloop(frameloop);
224
224
  isConfigured = true;
225
- invalidateRef?.destroy();
226
- invalidateRef = effect(() => void store.state().invalidate(), { manualCleanup: true, injector });
225
+ queueMicrotask(() => {
226
+ invalidateRef?.destroy();
227
+ invalidateRef = effect(() => void store.state().invalidate(), {
228
+ manualCleanup: true,
229
+ injector: assertedInjector,
230
+ });
231
+ });
227
232
  },
228
233
  };
229
234
  };
@@ -246,4 +251,4 @@ function dispose(obj) {
246
251
  delete obj[p];
247
252
  }
248
253
  }
249
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9yb290cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUscUJBQXFCLEVBQWlDLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUvQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBK0IsTUFBTSxTQUFTLENBQUM7QUFFdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUvRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRCxNQUFNLFlBQVksR0FBRyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBa0IsQ0FBQztBQUUzRSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQStDLENBQUM7QUFFNUUsTUFBTSxVQUFVLDJCQUEyQixDQUFDLFFBQW1CO0lBQzlELFFBQVEsR0FBRyxjQUFjLENBQUMsMkJBQTJCLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFFakUsT0FBTyxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQzNDLE1BQU0sYUFBYSxHQUFHLGNBQWMsRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sSUFB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QUFhLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUNsRyxDQUFDO2FBQ0QsQ0FBQztRQUNILENBQUMsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUlELFNBQVMsa0JBQWtCLENBQUMsTUFBaUQsRUFBRSxXQUFxQjtJQUNuRyxJQUFJLFdBQVc7UUFBRSxPQUFPLFdBQVcsQ0FBQztJQUVwQyxJQUFJLE1BQU0sWUFBWSxpQkFBaUIsSUFBSSxNQUFNLENBQUMsYUFBYSxFQUFFO1FBQ2hFLE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0tBQ3BEO0lBRUQsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUNqRCxDQUFDO0FBRUQsNENBQTRDO0FBQzVDLFNBQVMsT0FBTyxDQUEyRSxHQUFTO0lBQ25HLElBQUksR0FBRyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLE9BQU87UUFBRSxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdkQsS0FBSyxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQUU7UUFDbkIsQ0FBUyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDdkIsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDZDtBQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXN0cm95UmVmLCBlZmZlY3QsIGluamVjdCwgcnVuSW5JbmplY3Rpb25Db250ZXh0LCB0eXBlIEVmZmVjdFJlZiwgdHlwZSBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYXNzZXJ0SW5qZWN0b3IgfSBmcm9tICduZ3h0ZW5zaW9uL2Fzc2VydC1pbmplY3Rvcic7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgdHlwZSB7IE5ndENhbnZhc0lucHV0cyB9IGZyb20gJy4vY2FudmFzJztcbmltcG9ydCB7IHByZXBhcmUgfSBmcm9tICcuL2luc3RhbmNlJztcbmltcG9ydCB7IGluamVjdE5ndExvb3AgfSBmcm9tICcuL2xvb3AnO1xuaW1wb3J0IHsgaW5qZWN0Tmd0U3RvcmUsIHR5cGUgTmd0U2l6ZSwgdHlwZSBOZ3RTdGF0ZSB9IGZyb20gJy4vc3RvcmUnO1xuaW1wb3J0IHR5cGUgeyBOZ3RBbnlSZWNvcmQsIE5ndEVxdUNvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgYXBwbHlQcm9wcyB9IGZyb20gJy4vdXRpbHMvYXBwbHktcHJvcHMnO1xuaW1wb3J0IHsgaXMgfSBmcm9tICcuL3V0aWxzL2lzJztcbmltcG9ydCB7IG1ha2VEZWZhdWx0Q2FtZXJhLCBtYWtlRGVmYXVsdFJlbmRlcmVyLCBtYWtlRHByIH0gZnJvbSAnLi91dGlscy9tYWtlJztcbmltcG9ydCB0eXBlIHsgTmd0U2lnbmFsU3RvcmUgfSBmcm9tICcuL3V0aWxzL3NpZ25hbC1zdG9yZSc7XG5pbXBvcnQgeyBjaGVja05lZWRzVXBkYXRlIH0gZnJvbSAnLi91dGlscy91cGRhdGUnO1xuXG5jb25zdCBzaGFsbG93TG9vc2UgPSB7IG9iamVjdHM6ICdzaGFsbG93Jywgc3RyaWN0OiBmYWxzZSB9IGFzIE5ndEVxdUNvbmZpZztcblxuZXhwb3J0IGNvbnN0IHJvb3RzID0gbmV3IE1hcDxIVE1MQ2FudmFzRWxlbWVudCwgTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+PigpO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0Q2FudmFzUm9vdEluaXRpYWxpemVyKGluamVjdG9yPzogSW5qZWN0b3IpIHtcblx0aW5qZWN0b3IgPSBhc3NlcnRJbmplY3RvcihpbmplY3RDYW52YXNSb290SW5pdGlhbGl6ZXIsIGluamVjdG9yKTtcblxuXHRyZXR1cm4gcnVuSW5JbmplY3Rpb25Db250ZXh0KGluamVjdG9yLCAoKSA9PiB7XG5cdFx0Y29uc3QgaW5qZWN0ZWRTdG9yZSA9IGluamVjdE5ndFN0b3JlKCk7XG5cdFx0Y29uc3QgbG9vcCA9IGluamVjdE5ndExvb3AoKTtcblx0XHRjb25zdCBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG5cdFx0cmV0dXJuIChjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50KSA9PiB7XG5cdFx0XHRjb25zdCBleGlzdCA9IHJvb3RzLmhhcyhjYW52YXMpO1xuXHRcdFx0bGV0IHN0b3JlID0gcm9vdHMuZ2V0KGNhbnZhcykgYXMgTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+O1xuXG5cdFx0XHRpZiAoc3RvcmUpIHtcblx0XHRcdFx0Y29uc29sZS53YXJuKCdbTkdUXSBTYW1lIGNhbnZhcyByb290IGlzIGJlaW5nIGNyZWF0ZWQgdHdpY2UnKTtcblx0XHRcdH1cblxuXHRcdFx0c3RvcmUgfHw9IGluamVjdGVkU3RvcmU7XG5cblx0XHRcdGlmICghc3RvcmUpIHtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKCdbTkdUXSBObyBzdG9yZSBpbml0aWFsaXplZCcpO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIWV4aXN0KSB7XG5cdFx0XHRcdHJvb3RzLnNldChjYW52YXMsIHN0b3JlKTtcblx0XHRcdH1cblxuXHRcdFx0bGV0IGlzQ29uZmlndXJlZCA9IGZhbHNlO1xuXHRcdFx0bGV0IGludmFsaWRhdGVSZWY6IEVmZmVjdFJlZjtcblxuXHRcdFx0ZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4gaW52YWxpZGF0ZVJlZj8uZGVzdHJveSgpKTtcblxuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0aXNDb25maWd1cmVkLFxuXHRcdFx0XHRkZXN0cm95OiAodGltZW91dCA9IDUwMCkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IHJvb3QgPSByb290cy5nZXQoY2FudmFzKTtcblx0XHRcdFx0XHRpZiAocm9vdCkge1xuXHRcdFx0XHRcdFx0cm9vdC5zZXQoKHN0YXRlKSA9PiAoeyBpbnRlcm5hbDogeyAuLi5zdGF0ZS5pbnRlcm5hbCwgYWN0aXZlOiBmYWxzZSB9IH0pKTtcblx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IHN0YXRlID0gcm9vdC5nZXQoKTtcblx0XHRcdFx0XHRcdFx0XHRzdGF0ZS5ldmVudHMuZGlzY29ubmVjdD8uKCk7XG5cdFx0XHRcdFx0XHRcdFx0c3RhdGUuZ2w/LnJlbmRlckxpc3RzPy5kaXNwb3NlPy4oKTtcblx0XHRcdFx0XHRcdFx0XHRzdGF0ZS5nbD8uZm9yY2VDb250ZXh0TG9zcz8uKCk7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKHN0YXRlLmdsPy54cikgc3RhdGUueHIuZGlzY29ubmVjdCgpO1xuXHRcdFx0XHRcdFx0XHRcdGRpc3Bvc2Uoc3RhdGUpO1xuXHRcdFx0XHRcdFx0XHRcdHJvb3RzLmRlbGV0ZShjYW52YXMpO1xuXHRcdFx0XHRcdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5lcnJvcignW05HVF0gVW5leHBlY3RlZCBlcnJvciB3aGlsZSBkZXN0cm95aW5nIENhbnZhcyBSb290JywgZSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0sIHRpbWVvdXQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0Y29uZmlndXJlOiAoaW5wdXRzOiBOZ3RDYW52YXNJbnB1dHMpID0+IHtcblx0XHRcdFx0XHRjb25zdCB7XG5cdFx0XHRcdFx0XHRnbDogZ2xPcHRpb25zLFxuXHRcdFx0XHRcdFx0c2l6ZTogc2l6ZU9wdGlvbnMsXG5cdFx0XHRcdFx0XHRjYW1lcmE6IGNhbWVyYU9wdGlvbnMsXG5cdFx0XHRcdFx0XHRyYXljYXN0ZXI6IHJheWNhc3Rlck9wdGlvbnMsXG5cdFx0XHRcdFx0XHRzY2VuZTogc2NlbmVPcHRpb25zLFxuXHRcdFx0XHRcdFx0ZXZlbnRzLFxuXHRcdFx0XHRcdFx0b3J0aG9ncmFwaGljLFxuXHRcdFx0XHRcdFx0bG9va0F0LFxuXHRcdFx0XHRcdFx0c2hhZG93cyxcblx0XHRcdFx0XHRcdGxpbmVhcixcblx0XHRcdFx0XHRcdGxlZ2FjeSxcblx0XHRcdFx0XHRcdGZsYXQsXG5cdFx0XHRcdFx0XHRkcHIsXG5cdFx0XHRcdFx0XHRmcmFtZWxvb3AsXG5cdFx0XHRcdFx0XHRwZXJmb3JtYW5jZSxcblx0XHRcdFx0XHR9ID0gaW5wdXRzO1xuXG5cdFx0XHRcdFx0Y29uc3Qgc3RhdGUgPSBzdG9yZS5nZXQoKTtcblx0XHRcdFx0XHRjb25zdCBzdGF0ZVRvVXBkYXRlOiBQYXJ0aWFsPE5ndFN0YXRlPiA9IHt9O1xuXG5cdFx0XHRcdFx0Ly8gc2V0dXAgcmVuZGVyZXJcblx0XHRcdFx0XHRsZXQgZ2wgPSBzdGF0ZS5nbDtcblx0XHRcdFx0XHRpZiAoIXN0YXRlLmdsKSBzdGF0ZVRvVXBkYXRlLmdsID0gZ2wgPSBtYWtlRGVmYXVsdFJlbmRlcmVyKGdsT3B0aW9ucywgY2FudmFzKTtcblxuXHRcdFx0XHRcdC8vIHNldHVwIHJheWNhc3RlclxuXHRcdFx0XHRcdGxldCByYXljYXN0ZXIgPSBzdGF0ZS5yYXljYXN0ZXI7XG5cdFx0XHRcdFx0aWYgKCFyYXljYXN0ZXIpIHN0YXRlVG9VcGRhdGUucmF5Y2FzdGVyID0gcmF5Y2FzdGVyID0gbmV3IFRIUkVFLlJheWNhc3RlcigpO1xuXG5cdFx0XHRcdFx0Ly8gc2V0IHJheWNhc3RlciBvcHRpb25zXG5cdFx0XHRcdFx0Y29uc3QgeyBwYXJhbXMsIC4uLm9wdGlvbnMgfSA9IHJheWNhc3Rlck9wdGlvbnMgfHwge307XG5cdFx0XHRcdFx0aWYgKCFpcy5lcXUob3B0aW9ucywgcmF5Y2FzdGVyLCBzaGFsbG93TG9vc2UpKSBhcHBseVByb3BzKHJheWNhc3RlciwgeyAuLi5vcHRpb25zIH0pO1xuXHRcdFx0XHRcdGlmICghaXMuZXF1KHBhcmFtcywgcmF5Y2FzdGVyLnBhcmFtcywgc2hhbGxvd0xvb3NlKSkge1xuXHRcdFx0XHRcdFx0YXBwbHlQcm9wcyhyYXljYXN0ZXIsIHsgcGFyYW1zOiB7IC4uLnJheWNhc3Rlci5wYXJhbXMsIC4uLihwYXJhbXMgfHwge30pIH0gfSk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gY3JlYXRlIGRlZmF1bHQgY2FtZXJhXG5cdFx0XHRcdFx0aWYgKCFzdGF0ZS5jYW1lcmEpIHtcblx0XHRcdFx0XHRcdGNvbnN0IGlzQ2FtZXJhID0gaXMuY2FtZXJhKGNhbWVyYU9wdGlvbnMpO1xuXHRcdFx0XHRcdFx0bGV0IGNhbWVyYSA9IGlzQ2FtZXJhID8gY2FtZXJhT3B0aW9ucyA6IG1ha2VEZWZhdWx0Q2FtZXJhKG9ydGhvZ3JhcGhpYyB8fCBmYWxzZSwgc3RhdGUuc2l6ZSk7XG5cblx0XHRcdFx0XHRcdGlmICghaXNDYW1lcmEpIHtcblx0XHRcdFx0XHRcdFx0aWYgKGNhbWVyYU9wdGlvbnMpIGFwcGx5UHJvcHMoY2FtZXJhLCBjYW1lcmFPcHRpb25zKTtcblxuXHRcdFx0XHRcdFx0XHQvLyBzZXQgcG9zaXRpb24uelxuXHRcdFx0XHRcdFx0XHRpZiAoIWNhbWVyYU9wdGlvbnM/LnBvc2l0aW9uKSBjYW1lcmEucG9zaXRpb24ueiA9IDU7XG5cblx0XHRcdFx0XHRcdFx0Ly8gYWx3YXlzIGxvb2sgYXQgY2VudGVyIG9yIHBhc3NlZC1pbiBsb29rQXQgYnkgZGVmYXVsdFxuXHRcdFx0XHRcdFx0XHRpZiAoIWNhbWVyYU9wdGlvbnM/LnJvdGF0aW9uICYmICFjYW1lcmFPcHRpb25zPy5xdWF0ZXJuaW9uKSB7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKEFycmF5LmlzQXJyYXkobG9va0F0KSkgY2FtZXJhLmxvb2tBdChsb29rQXRbMF0sIGxvb2tBdFsxXSwgbG9va0F0WzJdKTtcblx0XHRcdFx0XHRcdFx0XHRlbHNlIGlmIChsb29rQXQgaW5zdGFuY2VvZiBUSFJFRS5WZWN0b3IzKSBjYW1lcmEubG9va0F0KGxvb2tBdCk7XG5cdFx0XHRcdFx0XHRcdFx0ZWxzZSBjYW1lcmEubG9va0F0KDAsIDAsIDApO1xuXHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0Ly8gdXBkYXRlIHByb2plY3Rpb24gbWF0cml4IGFmdGVyIGFwcGx5cHJvcHNcblx0XHRcdFx0XHRcdFx0Y2FtZXJhLnVwZGF0ZVByb2plY3Rpb25NYXRyaXg/LigpO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRpZiAoIWlzLmluc3RhbmNlKGNhbWVyYSkpIGNhbWVyYSA9IHByZXBhcmUoY2FtZXJhLCB7IHN0b3JlIH0pO1xuXG5cdFx0XHRcdFx0XHRzdGF0ZVRvVXBkYXRlLmNhbWVyYSA9IGNhbWVyYTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBTZXQgdXAgc2NlbmUgKG9uZSB0aW1lIG9ubHkhKVxuXHRcdFx0XHRcdGlmICghc3RhdGUuc2NlbmUpIHtcblx0XHRcdFx0XHRcdGxldCBzY2VuZTogVEhSRUUuU2NlbmU7XG5cblx0XHRcdFx0XHRcdGlmIChzY2VuZU9wdGlvbnMgaW5zdGFuY2VvZiBUSFJFRS5TY2VuZSkge1xuXHRcdFx0XHRcdFx0XHRzY2VuZSA9IHByZXBhcmUoc2NlbmVPcHRpb25zLCB7IHN0b3JlIH0pO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0c2NlbmUgPSBwcmVwYXJlKG5ldyBUSFJFRS5TY2VuZSgpLCB7IHN0b3JlIH0pO1xuXHRcdFx0XHRcdFx0XHRpZiAoc2NlbmVPcHRpb25zKSBhcHBseVByb3BzKHNjZW5lLCBzY2VuZU9wdGlvbnMpO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRzdGF0ZVRvVXBkYXRlLnNjZW5lID0gc2NlbmU7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gU2V0IHVwIFhSIChvbmUgdGltZSBvbmx5ISlcblx0XHRcdFx0XHRpZiAoIXN0YXRlLnhyKSB7XG5cdFx0XHRcdFx0XHQvLyBIYW5kbGUgZnJhbWUgYmVoYXZpb3IgaW4gV2ViWFJcblx0XHRcdFx0XHRcdGNvbnN0IGhhbmRsZVhSRnJhbWU6IFhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2sgPSAodGltZXN0YW1wOiBudW1iZXIsIGZyYW1lPzogWFJGcmFtZSkgPT4ge1xuXHRcdFx0XHRcdFx0XHRjb25zdCBzdGF0ZSA9IHN0b3JlLmdldCgpO1xuXHRcdFx0XHRcdFx0XHRpZiAoc3RhdGUuZnJhbWVsb29wID09PSAnbmV2ZXInKSByZXR1cm47XG5cdFx0XHRcdFx0XHRcdGxvb3AuYWR2YW5jZSh0aW1lc3RhbXAsIHRydWUsIHN0b3JlLCBmcmFtZSk7XG5cdFx0XHRcdFx0XHR9O1xuXG5cdFx0XHRcdFx0XHQvLyBUb2dnbGUgcmVuZGVyIHN3aXRjaGluZyBvbiBzZXNzaW9uXG5cdFx0XHRcdFx0XHRjb25zdCBoYW5kbGVTZXNzaW9uQ2hhbmdlID0gKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRjb25zdCBzdGF0ZSA9IHN0b3JlLmdldCgpO1xuXHRcdFx0XHRcdFx0XHRzdGF0ZS5nbC54ci5lbmFibGVkID0gc3RhdGUuZ2wueHIuaXNQcmVzZW50aW5nO1xuXG5cdFx0XHRcdFx0XHRcdHN0YXRlLmdsLnhyLnNldEFuaW1hdGlvbkxvb3Aoc3RhdGUuZ2wueHIuaXNQcmVzZW50aW5nID8gaGFuZGxlWFJGcmFtZSA6IG51bGwpO1xuXHRcdFx0XHRcdFx0XHRpZiAoIXN0YXRlLmdsLnhyLmlzUHJlc2VudGluZykgbG9vcC5pbnZhbGlkYXRlKHN0b3JlKTtcblx0XHRcdFx0XHRcdH07XG5cblx0XHRcdFx0XHRcdC8vIFdlYlhSIHNlc3Npb24gbWFuYWdlclxuXHRcdFx0XHRcdFx0Y29uc3QgeHIgPSB7XG5cdFx0XHRcdFx0XHRcdGNvbm5lY3Q6ICgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRnbC54ci5hZGRFdmVudExpc3RlbmVyKCdzZXNzaW9uc3RhcnQnLCBoYW5kbGVTZXNzaW9uQ2hhbmdlKTtcblx0XHRcdFx0XHRcdFx0XHRnbC54ci5hZGRFdmVudExpc3RlbmVyKCdzZXNzaW9uZW5kJywgaGFuZGxlU2Vzc2lvbkNoYW5nZSk7XG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdGRpc2Nvbm5lY3Q6ICgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRnbC54ci5yZW1vdmVFdmVudExpc3RlbmVyKCdzZXNzaW9uc3RhcnQnLCBoYW5kbGVTZXNzaW9uQ2hhbmdlKTtcblx0XHRcdFx0XHRcdFx0XHRnbC54ci5yZW1vdmVFdmVudExpc3RlbmVyKCdzZXNzaW9uZW5kJywgaGFuZGxlU2Vzc2lvbkNoYW5nZSk7XG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHR9O1xuXG5cdFx0XHRcdFx0XHQvLyBTdWJzY3JpYmUgdG8gV2ViWFIgc2Vzc2lvbiBldmVudHNcblx0XHRcdFx0XHRcdGlmIChnbC54ciAmJiB0eXBlb2YgZ2wueHIuYWRkRXZlbnRMaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykgeHIuY29ubmVjdCgpO1xuXHRcdFx0XHRcdFx0c3RhdGVUb1VwZGF0ZS54ciA9IHhyO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIFNldCBzaGFkb3dtYXBcblx0XHRcdFx0XHRpZiAoZ2wuc2hhZG93TWFwKSB7XG5cdFx0XHRcdFx0XHRjb25zdCBvbGRFbmFibGVkID0gZ2wuc2hhZG93TWFwLmVuYWJsZWQ7XG5cdFx0XHRcdFx0XHRjb25zdCBvbGRUeXBlID0gZ2wuc2hhZG93TWFwLnR5cGU7XG5cdFx0XHRcdFx0XHRnbC5zaGFkb3dNYXAuZW5hYmxlZCA9ICEhc2hhZG93cztcblxuXHRcdFx0XHRcdFx0aWYgKHR5cGVvZiBzaGFkb3dzID09PSAnYm9vbGVhbicpIHtcblx0XHRcdFx0XHRcdFx0Z2wuc2hhZG93TWFwLnR5cGUgPSBUSFJFRS5QQ0ZTb2Z0U2hhZG93TWFwO1xuXHRcdFx0XHRcdFx0fSBlbHNlIGlmICh0eXBlb2Ygc2hhZG93cyA9PT0gJ3N0cmluZycpIHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgdHlwZXMgPSB7XG5cdFx0XHRcdFx0XHRcdFx0YmFzaWM6IFRIUkVFLkJhc2ljU2hhZG93TWFwLFxuXHRcdFx0XHRcdFx0XHRcdHBlcmNlbnRhZ2U6IFRIUkVFLlBDRlNoYWRvd01hcCxcblx0XHRcdFx0XHRcdFx0XHRzb2Z0OiBUSFJFRS5QQ0ZTb2Z0U2hhZG93TWFwLFxuXHRcdFx0XHRcdFx0XHRcdHZhcmlhbmNlOiBUSFJFRS5WU01TaGFkb3dNYXAsXG5cdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRcdGdsLnNoYWRvd01hcC50eXBlID0gdHlwZXNbc2hhZG93c10gPz8gVEhSRUUuUENGU29mdFNoYWRvd01hcDtcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoaXMub2JqKHNoYWRvd3MpKSB7XG5cdFx0XHRcdFx0XHRcdE9iamVjdC5hc3NpZ24oZ2wuc2hhZG93TWFwLCBzaGFkb3dzKTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0aWYgKG9sZEVuYWJsZWQgIT09IGdsLnNoYWRvd01hcC5lbmFibGVkIHx8IG9sZFR5cGUgIT09IGdsLnNoYWRvd01hcC50eXBlKVxuXHRcdFx0XHRcdFx0XHRjaGVja05lZWRzVXBkYXRlKGdsLnNoYWRvd01hcCk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gU2FmZWx5IHNldCBjb2xvciBtYW5hZ2VtZW50IGlmIGF2YWlsYWJsZS5cblx0XHRcdFx0XHQvLyBBdm9pZCBhY2Nlc3NpbmcgVEhSRUUuQ29sb3JNYW5hZ2VtZW50IHRvIHBsYXkgbmljZSB3aXRoIG9sZGVyIHZlcnNpb25zXG5cdFx0XHRcdFx0aWYgKFRIUkVFLkNvbG9yTWFuYWdlbWVudCkge1xuXHRcdFx0XHRcdFx0Y29uc3QgQ29sb3JNYW5hZ2VtZW50ID0gVEhSRUUuQ29sb3JNYW5hZ2VtZW50IGFzIE5ndEFueVJlY29yZDtcblx0XHRcdFx0XHRcdGlmICgnZW5hYmxlZCcgaW4gQ29sb3JNYW5hZ2VtZW50KSBDb2xvck1hbmFnZW1lbnRbJ2VuYWJsZWQnXSA9ICFsZWdhY3kgPz8gZmFsc2U7XG5cdFx0XHRcdFx0XHRlbHNlIGlmICgnbGVnYWN5TW9kZScgaW4gQ29sb3JNYW5hZ2VtZW50KSBDb2xvck1hbmFnZW1lbnRbJ2xlZ2FjeU1vZGUnXSA9IGxlZ2FjeSA/PyB0cnVlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIHNldCBjb2xvciBzcGFjZSBhbmQgdG9uZW1hcHBpbmcgcHJlZmVyZW5jZXNcblx0XHRcdFx0XHRjb25zdCBMaW5lYXJFbmNvZGluZyA9IDMwMDA7XG5cdFx0XHRcdFx0Y29uc3Qgc1JHQkVuY29kaW5nID0gMzAwMTtcblx0XHRcdFx0XHRhcHBseVByb3BzKGdsLCB7XG5cdFx0XHRcdFx0XHRvdXRwdXRFbmNvZGluZzogbGluZWFyID8gTGluZWFyRW5jb2RpbmcgOiBzUkdCRW5jb2RpbmcsXG5cdFx0XHRcdFx0XHR0b25lTWFwcGluZzogZmxhdCA/IFRIUkVFLk5vVG9uZU1hcHBpbmcgOiBUSFJFRS5BQ0VTRmlsbWljVG9uZU1hcHBpbmcsXG5cdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0XHQvLyBVcGRhdGUgY29sb3IgbWFuYWdlbWVudCBzdGF0ZVxuXHRcdFx0XHRcdGlmIChzdGF0ZS5sZWdhY3kgIT09IGxlZ2FjeSkgc3RhdGVUb1VwZGF0ZS5sZWdhY3kgPSBsZWdhY3k7XG5cdFx0XHRcdFx0aWYgKHN0YXRlLmxpbmVhciAhPT0gbGluZWFyKSBzdGF0ZVRvVXBkYXRlLmxpbmVhciA9IGxpbmVhcjtcblx0XHRcdFx0XHRpZiAoc3RhdGUuZmxhdCAhPT0gZmxhdCkgc3RhdGVUb1VwZGF0ZS5mbGF0ID0gZmxhdDtcblxuXHRcdFx0XHRcdC8vIFNldCBnbCBwcm9wc1xuXHRcdFx0XHRcdGdsLnNldENsZWFyQWxwaGEoMCk7XG5cdFx0XHRcdFx0Z2wuc2V0UGl4ZWxSYXRpbyhtYWtlRHByKHN0YXRlLnZpZXdwb3J0LmRwcikpO1xuXHRcdFx0XHRcdGdsLnNldFNpemUoc3RhdGUuc2l6ZS53aWR0aCwgc3RhdGUuc2l6ZS5oZWlnaHQpO1xuXG5cdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0aXMub2JqKGdsT3B0aW9ucykgJiZcblx0XHRcdFx0XHRcdCEodHlwZW9mIGdsT3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJykgJiZcblx0XHRcdFx0XHRcdCFpcy5yZW5kZXJlcihnbE9wdGlvbnMpICYmXG5cdFx0XHRcdFx0XHQhaXMuZXF1KGdsT3B0aW9ucywgZ2wsIHNoYWxsb3dMb29zZSlcblx0XHRcdFx0XHQpIHtcblx0XHRcdFx0XHRcdGFwcGx5UHJvcHMoZ2wsIGdsT3B0aW9ucyk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gU3RvcmUgZXZlbnRzIGludGVybmFsbHlcblx0XHRcdFx0XHRpZiAoZXZlbnRzICYmICFzdGF0ZS5ldmVudHMuaGFuZGxlcnMpIHN0YXRlVG9VcGRhdGUuZXZlbnRzID0gZXZlbnRzKHN0b3JlKTtcblxuXHRcdFx0XHRcdC8vIENoZWNrIHBlcmZvcm1hbmNlXG5cdFx0XHRcdFx0aWYgKHBlcmZvcm1hbmNlICYmICFpcy5lcXUocGVyZm9ybWFuY2UsIHN0YXRlLnBlcmZvcm1hbmNlLCBzaGFsbG93TG9vc2UpKSB7XG5cdFx0XHRcdFx0XHRzdGF0ZVRvVXBkYXRlLnBlcmZvcm1hbmNlID0geyAuLi5zdGF0ZS5wZXJmb3JtYW5jZSwgLi4ucGVyZm9ybWFuY2UgfTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRzdG9yZS5zZXQoc3RhdGVUb1VwZGF0ZSk7XG5cblx0XHRcdFx0XHQvLyBDaGVjayBzaXplLCBhbGxvdyBpdCB0byB0YWtlIG9uIGNvbnRhaW5lciBib3VuZHMgaW5pdGlhbGx5XG5cdFx0XHRcdFx0Y29uc3Qgc2l6ZSA9IGNvbXB1dGVJbml0aWFsU2l6ZShjYW52YXMsIHNpemVPcHRpb25zKTtcblx0XHRcdFx0XHRpZiAoIWlzLmVxdShzaXplLCBzdGF0ZS5zaXplLCBzaGFsbG93TG9vc2UpKSB7XG5cdFx0XHRcdFx0XHRzdGF0ZS5zZXRTaXplKHNpemUud2lkdGgsIHNpemUuaGVpZ2h0LCBzaXplLnRvcCwgc2l6ZS5sZWZ0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Ly8gQ2hlY2sgcGl4ZWxyYXRpb1xuXHRcdFx0XHRcdGlmIChkcHIgJiYgc3RhdGUudmlld3BvcnQuZHByICE9PSBtYWtlRHByKGRwcikpIHN0YXRlLnNldERwcihkcHIpO1xuXHRcdFx0XHRcdC8vIENoZWNrIGZyYW1lbG9vcFxuXHRcdFx0XHRcdGlmIChzdGF0ZS5mcmFtZWxvb3AgIT09IGZyYW1lbG9vcCkgc3RhdGUuc2V0RnJhbWVsb29wKGZyYW1lbG9vcCk7XG5cblx0XHRcdFx0XHRpc0NvbmZpZ3VyZWQgPSB0cnVlO1xuXG5cdFx0XHRcdFx0aW52YWxpZGF0ZVJlZj8uZGVzdHJveSgpO1xuXHRcdFx0XHRcdGludmFsaWRhdGVSZWYgPSBlZmZlY3QoKCkgPT4gdm9pZCBzdG9yZS5zdGF0ZSgpLmludmFsaWRhdGUoKSwgeyBtYW51YWxDbGVhbnVwOiB0cnVlLCBpbmplY3RvciB9KTtcblx0XHRcdFx0fSxcblx0XHRcdH07XG5cdFx0fTtcblx0fSk7XG59XG5cbmV4cG9ydCB0eXBlIE5ndENhbnZhc0NvbmZpZ3VyYXRvciA9IFJldHVyblR5cGU8UmV0dXJuVHlwZTx0eXBlb2YgaW5qZWN0Q2FudmFzUm9vdEluaXRpYWxpemVyPj47XG5cbmZ1bmN0aW9uIGNvbXB1dGVJbml0aWFsU2l6ZShjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50IHwgVEhSRUUuT2Zmc2NyZWVuQ2FudmFzLCBkZWZhdWx0U2l6ZT86IE5ndFNpemUpOiBOZ3RTaXplIHtcblx0aWYgKGRlZmF1bHRTaXplKSByZXR1cm4gZGVmYXVsdFNpemU7XG5cblx0aWYgKGNhbnZhcyBpbnN0YW5jZW9mIEhUTUxDYW52YXNFbGVtZW50ICYmIGNhbnZhcy5wYXJlbnRFbGVtZW50KSB7XG5cdFx0cmV0dXJuIGNhbnZhcy5wYXJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXHR9XG5cblx0cmV0dXJuIHsgd2lkdGg6IDAsIGhlaWdodDogMCwgdG9wOiAwLCBsZWZ0OiAwIH07XG59XG5cbi8vIERpc3Bvc2VzIGFuIG9iamVjdCBhbmQgYWxsIGl0cyBwcm9wZXJ0aWVzXG5mdW5jdGlvbiBkaXNwb3NlPFRPYmogZXh0ZW5kcyB7IGRpc3Bvc2U/OiAoKSA9PiB2b2lkOyB0eXBlPzogc3RyaW5nOyBba2V5OiBzdHJpbmddOiBhbnkgfT4ob2JqOiBUT2JqKSB7XG5cdGlmIChvYmouZGlzcG9zZSAmJiBvYmoudHlwZSAhPT0gJ1NjZW5lJykgb2JqLmRpc3Bvc2UoKTtcblx0Zm9yIChjb25zdCBwIGluIG9iaikge1xuXHRcdChwIGFzIGFueSkuZGlzcG9zZT8uKCk7XG5cdFx0ZGVsZXRlIG9ialtwXTtcblx0fVxufVxuIl19
254
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9yb290cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFL0IsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxjQUFjLEVBQStCLE1BQU0sU0FBUyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEQsTUFBTSxZQUFZLEdBQUcsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWtCLENBQUM7QUFFM0UsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxFQUErQyxDQUFDO0FBRTVFLE1BQU0sVUFBVSwyQkFBMkIsQ0FBQyxRQUFtQjtJQUM5RCxPQUFPLGNBQWMsQ0FBQywyQkFBMkIsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQ2pFLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sYUFBYSxHQUFHLGNBQWMsRUFBRSxDQUFDO1FBQ3ZDLE1BQU0s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YSxFQUFFLE9BQU8sRUFBRSxDQUFDO3dCQUN6QixhQUFhLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLFVBQVUsRUFBRSxFQUFFOzRCQUM3RCxhQUFhLEVBQUUsSUFBSTs0QkFDbkIsUUFBUSxFQUFFLGdCQUFnQjt5QkFDMUIsQ0FBQyxDQUFDO29CQUNKLENBQUMsQ0FBQyxDQUFDO2dCQUNKLENBQUM7YUFDRCxDQUFDO1FBQ0gsQ0FBQyxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBSUQsU0FBUyxrQkFBa0IsQ0FBQyxNQUFpRCxFQUFFLFdBQXFCO0lBQ25HLElBQUksV0FBVztRQUFFLE9BQU8sV0FBVyxDQUFDO0lBRXBDLElBQUksTUFBTSxZQUFZLGlCQUFpQixJQUFJLE1BQU0sQ0FBQyxhQUFhLEVBQUU7UUFDaEUsT0FBTyxNQUFNLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7S0FDcEQ7SUFFRCxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO0FBQ2pELENBQUM7QUFFRCw0Q0FBNEM7QUFDNUMsU0FBUyxPQUFPLENBQTJFLEdBQVM7SUFDbkcsSUFBSSxHQUFHLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssT0FBTztRQUFFLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN2RCxLQUFLLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRTtRQUNuQixDQUFTLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUN2QixPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNkO0FBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIEluamVjdG9yLCBlZmZlY3QsIGluamVjdCwgdHlwZSBFZmZlY3RSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFzc2VydEluamVjdG9yIH0gZnJvbSAnbmd4dGVuc2lvbi9hc3NlcnQtaW5qZWN0b3InO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHR5cGUgeyBOZ3RDYW52YXNJbnB1dHMgfSBmcm9tICcuL2NhbnZhcyc7XG5pbXBvcnQgeyBwcmVwYXJlIH0gZnJvbSAnLi9pbnN0YW5jZSc7XG5pbXBvcnQgeyBpbmplY3ROZ3RMb29wIH0gZnJvbSAnLi9sb29wJztcbmltcG9ydCB7IGluamVjdE5ndFN0b3JlLCB0eXBlIE5ndFNpemUsIHR5cGUgTmd0U3RhdGUgfSBmcm9tICcuL3N0b3JlJztcbmltcG9ydCB0eXBlIHsgTmd0QW55UmVjb3JkLCBOZ3RFcXVDb25maWcgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGFwcGx5UHJvcHMgfSBmcm9tICcuL3V0aWxzL2FwcGx5LXByb3BzJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi91dGlscy9pcyc7XG5pbXBvcnQgeyBtYWtlRGVmYXVsdENhbWVyYSwgbWFrZURlZmF1bHRSZW5kZXJlciwgbWFrZURwciB9IGZyb20gJy4vdXRpbHMvbWFrZSc7XG5pbXBvcnQgdHlwZSB7IE5ndFNpZ25hbFN0b3JlIH0gZnJvbSAnLi91dGlscy9zaWduYWwtc3RvcmUnO1xuaW1wb3J0IHsgY2hlY2tOZWVkc1VwZGF0ZSB9IGZyb20gJy4vdXRpbHMvdXBkYXRlJztcblxuY29uc3Qgc2hhbGxvd0xvb3NlID0geyBvYmplY3RzOiAnc2hhbGxvdycsIHN0cmljdDogZmFsc2UgfSBhcyBOZ3RFcXVDb25maWc7XG5cbmV4cG9ydCBjb25zdCByb290cyA9IG5ldyBNYXA8SFRNTENhbnZhc0VsZW1lbnQsIE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPj4oKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdENhbnZhc1Jvb3RJbml0aWFsaXplcihpbmplY3Rvcj86IEluamVjdG9yKSB7XG5cdHJldHVybiBhc3NlcnRJbmplY3RvcihpbmplY3RDYW52YXNSb290SW5pdGlhbGl6ZXIsIGluamVjdG9yLCAoKSA9PiB7XG5cdFx0Y29uc3QgYXNzZXJ0ZWRJbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cdFx0Y29uc3QgaW5qZWN0ZWRTdG9yZSA9IGluamVjdE5ndFN0b3JlKCk7XG5cdFx0Y29uc3QgbG9vcCA9IGluamVjdE5ndExvb3AoKTtcblx0XHRjb25zdCBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG5cdFx0cmV0dXJuIChjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50KSA9PiB7XG5cdFx0XHRjb25zdCBleGlzdCA9IHJvb3RzLmhhcyhjYW52YXMpO1xuXHRcdFx0bGV0IHN0b3JlID0gcm9vdHMuZ2V0KGNhbnZhcykgYXMgTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+O1xuXG5cdFx0XHRpZiAoc3RvcmUpIHtcblx0XHRcdFx0Y29uc29sZS53YXJuKCdbTkdUXSBTYW1lIGNhbnZhcyByb290IGlzIGJlaW5nIGNyZWF0ZWQgdHdpY2UnKTtcblx0XHRcdH1cblxuXHRcdFx0c3RvcmUgfHw9IGluamVjdGVkU3RvcmU7XG5cblx0XHRcdGlmICghc3RvcmUpIHtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKCdbTkdUXSBObyBzdG9yZSBpbml0aWFsaXplZCcpO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIWV4aXN0KSB7XG5cdFx0XHRcdHJvb3RzLnNldChjYW52YXMsIHN0b3JlKTtcblx0XHRcdH1cblxuXHRcdFx0bGV0IGlzQ29uZmlndXJlZCA9IGZhbHNlO1xuXHRcdFx0bGV0IGludmFsaWRhdGVSZWY6IEVmZmVjdFJlZjtcblxuXHRcdFx0ZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4gaW52YWxpZGF0ZVJlZj8uZGVzdHJveSgpKTtcblxuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0aXNDb25maWd1cmVkLFxuXHRcdFx0XHRkZXN0cm95OiAodGltZW91dCA9IDUwMCkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IHJvb3QgPSByb290cy5nZXQoY2FudmFzKTtcblx0XHRcdFx0XHRpZiAocm9vdCkge1xuXHRcdFx0XHRcdFx0cm9vdC5zZXQoKHN0YXRlKSA9PiAoeyBpbnRlcm5hbDogeyAuLi5zdGF0ZS5pbnRlcm5hbCwgYWN0aXZlOiBmYWxzZSB9IH0pKTtcblx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IHN0YXRlID0gcm9vdC5nZXQoKTtcblx0XHRcdFx0XHRcdFx0XHRzdGF0ZS5ldmVudHMuZGlzY29ubmVjdD8uKCk7XG5cdFx0XHRcdFx0XHRcdFx0c3RhdGUuZ2w/LnJlbmRlckxpc3RzPy5kaXNwb3NlPy4oKTtcblx0XHRcdFx0XHRcdFx0XHRzdGF0ZS5nbD8uZm9yY2VDb250ZXh0TG9zcz8uKCk7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKHN0YXRlLmdsPy54cikgc3RhdGUueHIuZGlzY29ubmVjdCgpO1xuXHRcdFx0XHRcdFx0XHRcdGRpc3Bvc2Uoc3RhdGUpO1xuXHRcdFx0XHRcdFx0XHRcdHJvb3RzLmRlbGV0ZShjYW52YXMpO1xuXHRcdFx0XHRcdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5lcnJvcignW05HVF0gVW5leHBlY3RlZCBlcnJvciB3aGlsZSBkZXN0cm95aW5nIENhbnZhcyBSb290JywgZSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0sIHRpbWVvdXQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0Y29uZmlndXJlOiAoaW5wdXRzOiBOZ3RDYW52YXNJbnB1dHMpID0+IHtcblx0XHRcdFx0XHRjb25zdCB7XG5cdFx0XHRcdFx0XHRnbDogZ2xPcHRpb25zLFxuXHRcdFx0XHRcdFx0c2l6ZTogc2l6ZU9wdGlvbnMsXG5cdFx0XHRcdFx0XHRjYW1lcmE6IGNhbWVyYU9wdGlvbnMsXG5cdFx0XHRcdFx0XHRyYXljYXN0ZXI6IHJheWNhc3Rlck9wdGlvbnMsXG5cdFx0XHRcdFx0XHRzY2VuZTogc2NlbmVPcHRpb25zLFxuXHRcdFx0XHRcdFx0ZXZlbnRzLFxuXHRcdFx0XHRcdFx0b3J0aG9ncmFwaGljLFxuXHRcdFx0XHRcdFx0bG9va0F0LFxuXHRcdFx0XHRcdFx0c2hhZG93cyxcblx0XHRcdFx0XHRcdGxpbmVhcixcblx0XHRcdFx0XHRcdGxlZ2FjeSxcblx0XHRcdFx0XHRcdGZsYXQsXG5cdFx0XHRcdFx0XHRkcHIsXG5cdFx0XHRcdFx0XHRmcmFtZWxvb3AsXG5cdFx0XHRcdFx0XHRwZXJmb3JtYW5jZSxcblx0XHRcdFx0XHR9ID0gaW5wdXRzO1xuXG5cdFx0XHRcdFx0Y29uc3Qgc3RhdGUgPSBzdG9yZS5nZXQoKTtcblx0XHRcdFx0XHRjb25zdCBzdGF0ZVRvVXBkYXRlOiBQYXJ0aWFsPE5ndFN0YXRlPiA9IHt9O1xuXG5cdFx0XHRcdFx0Ly8gc2V0dXAgcmVuZGVyZXJcblx0XHRcdFx0XHRsZXQgZ2wgPSBzdGF0ZS5nbDtcblx0XHRcdFx0XHRpZiAoIXN0YXRlLmdsKSBzdGF0ZVRvVXBkYXRlLmdsID0gZ2wgPSBtYWtlRGVmYXVsdFJlbmRlcmVyKGdsT3B0aW9ucywgY2FudmFzKTtcblxuXHRcdFx0XHRcdC8vIHNldHVwIHJheWNhc3RlclxuXHRcdFx0XHRcdGxldCByYXljYXN0ZXIgPSBzdGF0ZS5yYXljYXN0ZXI7XG5cdFx0XHRcdFx0aWYgKCFyYXljYXN0ZXIpIHN0YXRlVG9VcGRhdGUucmF5Y2FzdGVyID0gcmF5Y2FzdGVyID0gbmV3IFRIUkVFLlJheWNhc3RlcigpO1xuXG5cdFx0XHRcdFx0Ly8gc2V0IHJheWNhc3RlciBvcHRpb25zXG5cdFx0XHRcdFx0Y29uc3QgeyBwYXJhbXMsIC4uLm9wdGlvbnMgfSA9IHJheWNhc3Rlck9wdGlvbnMgfHwge307XG5cdFx0XHRcdFx0aWYgKCFpcy5lcXUob3B0aW9ucywgcmF5Y2FzdGVyLCBzaGFsbG93TG9vc2UpKSBhcHBseVByb3BzKHJheWNhc3RlciwgeyAuLi5vcHRpb25zIH0pO1xuXHRcdFx0XHRcdGlmICghaXMuZXF1KHBhcmFtcywgcmF5Y2FzdGVyLnBhcmFtcywgc2hhbGxvd0xvb3NlKSkge1xuXHRcdFx0XHRcdFx0YXBwbHlQcm9wcyhyYXljYXN0ZXIsIHsgcGFyYW1zOiB7IC4uLnJheWNhc3Rlci5wYXJhbXMsIC4uLihwYXJhbXMgfHwge30pIH0gfSk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gY3JlYXRlIGRlZmF1bHQgY2FtZXJhXG5cdFx0XHRcdFx0aWYgKCFzdGF0ZS5jYW1lcmEpIHtcblx0XHRcdFx0XHRcdGNvbnN0IGlzQ2FtZXJhID0gaXMuY2FtZXJhKGNhbWVyYU9wdGlvbnMpO1xuXHRcdFx0XHRcdFx0bGV0IGNhbWVyYSA9IGlzQ2FtZXJhID8gY2FtZXJhT3B0aW9ucyA6IG1ha2VEZWZhdWx0Q2FtZXJhKG9ydGhvZ3JhcGhpYyB8fCBmYWxzZSwgc3RhdGUuc2l6ZSk7XG5cblx0XHRcdFx0XHRcdGlmICghaXNDYW1lcmEpIHtcblx0XHRcdFx0XHRcdFx0aWYgKGNhbWVyYU9wdGlvbnMpIGFwcGx5UHJvcHMoY2FtZXJhLCBjYW1lcmFPcHRpb25zKTtcblxuXHRcdFx0XHRcdFx0XHQvLyBzZXQgcG9zaXRpb24uelxuXHRcdFx0XHRcdFx0XHRpZiAoIWNhbWVyYU9wdGlvbnM/LnBvc2l0aW9uKSBjYW1lcmEucG9zaXRpb24ueiA9IDU7XG5cblx0XHRcdFx0XHRcdFx0Ly8gYWx3YXlzIGxvb2sgYXQgY2VudGVyIG9yIHBhc3NlZC1pbiBsb29rQXQgYnkgZGVmYXVsdFxuXHRcdFx0XHRcdFx0XHRpZiAoIWNhbWVyYU9wdGlvbnM/LnJvdGF0aW9uICYmICFjYW1lcmFPcHRpb25zPy5xdWF0ZXJuaW9uKSB7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKEFycmF5LmlzQXJyYXkobG9va0F0KSkgY2FtZXJhLmxvb2tBdChsb29rQXRbMF0sIGxvb2tBdFsxXSwgbG9va0F0WzJdKTtcblx0XHRcdFx0XHRcdFx0XHRlbHNlIGlmIChsb29rQXQgaW5zdGFuY2VvZiBUSFJFRS5WZWN0b3IzKSBjYW1lcmEubG9va0F0KGxvb2tBdCk7XG5cdFx0XHRcdFx0XHRcdFx0ZWxzZSBjYW1lcmEubG9va0F0KDAsIDAsIDApO1xuXHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0Ly8gdXBkYXRlIHByb2plY3Rpb24gbWF0cml4IGFmdGVyIGFwcGx5cHJvcHNcblx0XHRcdFx0XHRcdFx0Y2FtZXJhLnVwZGF0ZVByb2plY3Rpb25NYXRyaXg/LigpO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRpZiAoIWlzLmluc3RhbmNlKGNhbWVyYSkpIGNhbWVyYSA9IHByZXBhcmUoY2FtZXJhLCB7IHN0b3JlIH0pO1xuXG5cdFx0XHRcdFx0XHRzdGF0ZVRvVXBkYXRlLmNhbWVyYSA9IGNhbWVyYTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBTZXQgdXAgc2NlbmUgKG9uZSB0aW1lIG9ubHkhKVxuXHRcdFx0XHRcdGlmICghc3RhdGUuc2NlbmUpIHtcblx0XHRcdFx0XHRcdGxldCBzY2VuZTogVEhSRUUuU2NlbmU7XG5cblx0XHRcdFx0XHRcdGlmIChzY2VuZU9wdGlvbnMgaW5zdGFuY2VvZiBUSFJFRS5TY2VuZSkge1xuXHRcdFx0XHRcdFx0XHRzY2VuZSA9IHByZXBhcmUoc2NlbmVPcHRpb25zLCB7IHN0b3JlIH0pO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0c2NlbmUgPSBwcmVwYXJlKG5ldyBUSFJFRS5TY2VuZSgpLCB7IHN0b3JlIH0pO1xuXHRcdFx0XHRcdFx0XHRpZiAoc2NlbmVPcHRpb25zKSBhcHBseVByb3BzKHNjZW5lLCBzY2VuZU9wdGlvbnMpO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRzdGF0ZVRvVXBkYXRlLnNjZW5lID0gc2NlbmU7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gU2V0IHVwIFhSIChvbmUgdGltZSBvbmx5ISlcblx0XHRcdFx0XHRpZiAoIXN0YXRlLnhyKSB7XG5cdFx0XHRcdFx0XHQvLyBIYW5kbGUgZnJhbWUgYmVoYXZpb3IgaW4gV2ViWFJcblx0XHRcdFx0XHRcdGNvbnN0IGhhbmRsZVhSRnJhbWU6IFhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2sgPSAodGltZXN0YW1wOiBudW1iZXIsIGZyYW1lPzogWFJGcmFtZSkgPT4ge1xuXHRcdFx0XHRcdFx0XHRjb25zdCBzdGF0ZSA9IHN0b3JlLmdldCgpO1xuXHRcdFx0XHRcdFx0XHRpZiAoc3RhdGUuZnJhbWVsb29wID09PSAnbmV2ZXInKSByZXR1cm47XG5cdFx0XHRcdFx0XHRcdGxvb3AuYWR2YW5jZSh0aW1lc3RhbXAsIHRydWUsIHN0b3JlLCBmcmFtZSk7XG5cdFx0XHRcdFx0XHR9O1xuXG5cdFx0XHRcdFx0XHQvLyBUb2dnbGUgcmVuZGVyIHN3aXRjaGluZyBvbiBzZXNzaW9uXG5cdFx0XHRcdFx0XHRjb25zdCBoYW5kbGVTZXNzaW9uQ2hhbmdlID0gKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRjb25zdCBzdGF0ZSA9IHN0b3JlLmdldCgpO1xuXHRcdFx0XHRcdFx0XHRzdGF0ZS5nbC54ci5lbmFibGVkID0gc3RhdGUuZ2wueHIuaXNQcmVzZW50aW5nO1xuXG5cdFx0XHRcdFx0XHRcdHN0YXRlLmdsLnhyLnNldEFuaW1hdGlvbkxvb3Aoc3RhdGUuZ2wueHIuaXNQcmVzZW50aW5nID8gaGFuZGxlWFJGcmFtZSA6IG51bGwpO1xuXHRcdFx0XHRcdFx0XHRpZiAoIXN0YXRlLmdsLnhyLmlzUHJlc2VudGluZykgbG9vcC5pbnZhbGlkYXRlKHN0b3JlKTtcblx0XHRcdFx0XHRcdH07XG5cblx0XHRcdFx0XHRcdC8vIFdlYlhSIHNlc3Npb24gbWFuYWdlclxuXHRcdFx0XHRcdFx0Y29uc3QgeHIgPSB7XG5cdFx0XHRcdFx0XHRcdGNvbm5lY3Q6ICgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRnbC54ci5hZGRFdmVudExpc3RlbmVyKCdzZXNzaW9uc3RhcnQnLCBoYW5kbGVTZXNzaW9uQ2hhbmdlKTtcblx0XHRcdFx0XHRcdFx0XHRnbC54ci5hZGRFdmVudExpc3RlbmVyKCdzZXNzaW9uZW5kJywgaGFuZGxlU2Vzc2lvbkNoYW5nZSk7XG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdGRpc2Nvbm5lY3Q6ICgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRnbC54ci5yZW1vdmVFdmVudExpc3RlbmVyKCdzZXNzaW9uc3RhcnQnLCBoYW5kbGVTZXNzaW9uQ2hhbmdlKTtcblx0XHRcdFx0XHRcdFx0XHRnbC54ci5yZW1vdmVFdmVudExpc3RlbmVyKCdzZXNzaW9uZW5kJywgaGFuZGxlU2Vzc2lvbkNoYW5nZSk7XG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHR9O1xuXG5cdFx0XHRcdFx0XHQvLyBTdWJzY3JpYmUgdG8gV2ViWFIgc2Vzc2lvbiBldmVudHNcblx0XHRcdFx0XHRcdGlmIChnbC54ciAmJiB0eXBlb2YgZ2wueHIuYWRkRXZlbnRMaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykgeHIuY29ubmVjdCgpO1xuXHRcdFx0XHRcdFx0c3RhdGVUb1VwZGF0ZS54ciA9IHhyO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIFNldCBzaGFkb3dtYXBcblx0XHRcdFx0XHRpZiAoZ2wuc2hhZG93TWFwKSB7XG5cdFx0XHRcdFx0XHRjb25zdCBvbGRFbmFibGVkID0gZ2wuc2hhZG93TWFwLmVuYWJsZWQ7XG5cdFx0XHRcdFx0XHRjb25zdCBvbGRUeXBlID0gZ2wuc2hhZG93TWFwLnR5cGU7XG5cdFx0XHRcdFx0XHRnbC5zaGFkb3dNYXAuZW5hYmxlZCA9ICEhc2hhZG93cztcblxuXHRcdFx0XHRcdFx0aWYgKHR5cGVvZiBzaGFkb3dzID09PSAnYm9vbGVhbicpIHtcblx0XHRcdFx0XHRcdFx0Z2wuc2hhZG93TWFwLnR5cGUgPSBUSFJFRS5QQ0ZTb2Z0U2hhZG93TWFwO1xuXHRcdFx0XHRcdFx0fSBlbHNlIGlmICh0eXBlb2Ygc2hhZG93cyA9PT0gJ3N0cmluZycpIHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgdHlwZXMgPSB7XG5cdFx0XHRcdFx0XHRcdFx0YmFzaWM6IFRIUkVFLkJhc2ljU2hhZG93TWFwLFxuXHRcdFx0XHRcdFx0XHRcdHBlcmNlbnRhZ2U6IFRIUkVFLlBDRlNoYWRvd01hcCxcblx0XHRcdFx0XHRcdFx0XHRzb2Z0OiBUSFJFRS5QQ0ZTb2Z0U2hhZG93TWFwLFxuXHRcdFx0XHRcdFx0XHRcdHZhcmlhbmNlOiBUSFJFRS5WU01TaGFkb3dNYXAsXG5cdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRcdGdsLnNoYWRvd01hcC50eXBlID0gdHlwZXNbc2hhZG93c10gPz8gVEhSRUUuUENGU29mdFNoYWRvd01hcDtcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoaXMub2JqKHNoYWRvd3MpKSB7XG5cdFx0XHRcdFx0XHRcdE9iamVjdC5hc3NpZ24oZ2wuc2hhZG93TWFwLCBzaGFkb3dzKTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0aWYgKG9sZEVuYWJsZWQgIT09IGdsLnNoYWRvd01hcC5lbmFibGVkIHx8IG9sZFR5cGUgIT09IGdsLnNoYWRvd01hcC50eXBlKVxuXHRcdFx0XHRcdFx0XHRjaGVja05lZWRzVXBkYXRlKGdsLnNoYWRvd01hcCk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gU2FmZWx5IHNldCBjb2xvciBtYW5hZ2VtZW50IGlmIGF2YWlsYWJsZS5cblx0XHRcdFx0XHQvLyBBdm9pZCBhY2Nlc3NpbmcgVEhSRUUuQ29sb3JNYW5hZ2VtZW50IHRvIHBsYXkgbmljZSB3aXRoIG9sZGVyIHZlcnNpb25zXG5cdFx0XHRcdFx0aWYgKFRIUkVFLkNvbG9yTWFuYWdlbWVudCkge1xuXHRcdFx0XHRcdFx0Y29uc3QgQ29sb3JNYW5hZ2VtZW50ID0gVEhSRUUuQ29sb3JNYW5hZ2VtZW50IGFzIE5ndEFueVJlY29yZDtcblx0XHRcdFx0XHRcdGlmICgnZW5hYmxlZCcgaW4gQ29sb3JNYW5hZ2VtZW50KSBDb2xvck1hbmFnZW1lbnRbJ2VuYWJsZWQnXSA9ICFsZWdhY3kgPz8gZmFsc2U7XG5cdFx0XHRcdFx0XHRlbHNlIGlmICgnbGVnYWN5TW9kZScgaW4gQ29sb3JNYW5hZ2VtZW50KSBDb2xvck1hbmFnZW1lbnRbJ2xlZ2FjeU1vZGUnXSA9IGxlZ2FjeSA/PyB0cnVlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIHNldCBjb2xvciBzcGFjZSBhbmQgdG9uZW1hcHBpbmcgcHJlZmVyZW5jZXNcblx0XHRcdFx0XHRjb25zdCBMaW5lYXJFbmNvZGluZyA9IDMwMDA7XG5cdFx0XHRcdFx0Y29uc3Qgc1JHQkVuY29kaW5nID0gMzAwMTtcblx0XHRcdFx0XHRhcHBseVByb3BzKGdsLCB7XG5cdFx0XHRcdFx0XHRvdXRwdXRFbmNvZGluZzogbGluZWFyID8gTGluZWFyRW5jb2RpbmcgOiBzUkdCRW5jb2RpbmcsXG5cdFx0XHRcdFx0XHR0b25lTWFwcGluZzogZmxhdCA/IFRIUkVFLk5vVG9uZU1hcHBpbmcgOiBUSFJFRS5BQ0VTRmlsbWljVG9uZU1hcHBpbmcsXG5cdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0XHQvLyBVcGRhdGUgY29sb3IgbWFuYWdlbWVudCBzdGF0ZVxuXHRcdFx0XHRcdGlmIChzdGF0ZS5sZWdhY3kgIT09IGxlZ2FjeSkgc3RhdGVUb1VwZGF0ZS5sZWdhY3kgPSBsZWdhY3k7XG5cdFx0XHRcdFx0aWYgKHN0YXRlLmxpbmVhciAhPT0gbGluZWFyKSBzdGF0ZVRvVXBkYXRlLmxpbmVhciA9IGxpbmVhcjtcblx0XHRcdFx0XHRpZiAoc3RhdGUuZmxhdCAhPT0gZmxhdCkgc3RhdGVUb1VwZGF0ZS5mbGF0ID0gZmxhdDtcblxuXHRcdFx0XHRcdC8vIFNldCBnbCBwcm9wc1xuXHRcdFx0XHRcdGdsLnNldENsZWFyQWxwaGEoMCk7XG5cdFx0XHRcdFx0Z2wuc2V0UGl4ZWxSYXRpbyhtYWtlRHByKHN0YXRlLnZpZXdwb3J0LmRwcikpO1xuXHRcdFx0XHRcdGdsLnNldFNpemUoc3RhdGUuc2l6ZS53aWR0aCwgc3RhdGUuc2l6ZS5oZWlnaHQpO1xuXG5cdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0aXMub2JqKGdsT3B0aW9ucykgJiZcblx0XHRcdFx0XHRcdCEodHlwZW9mIGdsT3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJykgJiZcblx0XHRcdFx0XHRcdCFpcy5yZW5kZXJlcihnbE9wdGlvbnMpICYmXG5cdFx0XHRcdFx0XHQhaXMuZXF1KGdsT3B0aW9ucywgZ2wsIHNoYWxsb3dMb29zZSlcblx0XHRcdFx0XHQpIHtcblx0XHRcdFx0XHRcdGFwcGx5UHJvcHMoZ2wsIGdsT3B0aW9ucyk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gU3RvcmUgZXZlbnRzIGludGVybmFsbHlcblx0XHRcdFx0XHRpZiAoZXZlbnRzICYmICFzdGF0ZS5ldmVudHMuaGFuZGxlcnMpIHN0YXRlVG9VcGRhdGUuZXZlbnRzID0gZXZlbnRzKHN0b3JlKTtcblxuXHRcdFx0XHRcdC8vIENoZWNrIHBlcmZvcm1hbmNlXG5cdFx0XHRcdFx0aWYgKHBlcmZvcm1hbmNlICYmICFpcy5lcXUocGVyZm9ybWFuY2UsIHN0YXRlLnBlcmZvcm1hbmNlLCBzaGFsbG93TG9vc2UpKSB7XG5cdFx0XHRcdFx0XHRzdGF0ZVRvVXBkYXRlLnBlcmZvcm1hbmNlID0geyAuLi5zdGF0ZS5wZXJmb3JtYW5jZSwgLi4ucGVyZm9ybWFuY2UgfTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRzdG9yZS5zZXQoc3RhdGVUb1VwZGF0ZSk7XG5cblx0XHRcdFx0XHQvLyBDaGVjayBzaXplLCBhbGxvdyBpdCB0byB0YWtlIG9uIGNvbnRhaW5lciBib3VuZHMgaW5pdGlhbGx5XG5cdFx0XHRcdFx0Y29uc3Qgc2l6ZSA9IGNvbXB1dGVJbml0aWFsU2l6ZShjYW52YXMsIHNpemVPcHRpb25zKTtcblx0XHRcdFx0XHRpZiAoIWlzLmVxdShzaXplLCBzdGF0ZS5zaXplLCBzaGFsbG93TG9vc2UpKSB7XG5cdFx0XHRcdFx0XHRzdGF0ZS5zZXRTaXplKHNpemUud2lkdGgsIHNpemUuaGVpZ2h0LCBzaXplLnRvcCwgc2l6ZS5sZWZ0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Ly8gQ2hlY2sgcGl4ZWxyYXRpb1xuXHRcdFx0XHRcdGlmIChkcHIgJiYgc3RhdGUudmlld3BvcnQuZHByICE9PSBtYWtlRHByKGRwcikpIHN0YXRlLnNldERwcihkcHIpO1xuXHRcdFx0XHRcdC8vIENoZWNrIGZyYW1lbG9vcFxuXHRcdFx0XHRcdGlmIChzdGF0ZS5mcmFtZWxvb3AgIT09IGZyYW1lbG9vcCkgc3RhdGUuc2V0RnJhbWVsb29wKGZyYW1lbG9vcCk7XG5cblx0XHRcdFx0XHRpc0NvbmZpZ3VyZWQgPSB0cnVlO1xuXHRcdFx0XHRcdHF1ZXVlTWljcm90YXNrKCgpID0+IHtcblx0XHRcdFx0XHRcdGludmFsaWRhdGVSZWY/LmRlc3Ryb3koKTtcblx0XHRcdFx0XHRcdGludmFsaWRhdGVSZWYgPSBlZmZlY3QoKCkgPT4gdm9pZCBzdG9yZS5zdGF0ZSgpLmludmFsaWRhdGUoKSwge1xuXHRcdFx0XHRcdFx0XHRtYW51YWxDbGVhbnVwOiB0cnVlLFxuXHRcdFx0XHRcdFx0XHRpbmplY3RvcjogYXNzZXJ0ZWRJbmplY3Rvcixcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9LFxuXHRcdFx0fTtcblx0XHR9O1xuXHR9KTtcbn1cblxuZXhwb3J0IHR5cGUgTmd0Q2FudmFzQ29uZmlndXJhdG9yID0gUmV0dXJuVHlwZTxSZXR1cm5UeXBlPHR5cGVvZiBpbmplY3RDYW52YXNSb290SW5pdGlhbGl6ZXI+PjtcblxuZnVuY3Rpb24gY29tcHV0ZUluaXRpYWxTaXplKGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQgfCBUSFJFRS5PZmZzY3JlZW5DYW52YXMsIGRlZmF1bHRTaXplPzogTmd0U2l6ZSk6IE5ndFNpemUge1xuXHRpZiAoZGVmYXVsdFNpemUpIHJldHVybiBkZWZhdWx0U2l6ZTtcblxuXHRpZiAoY2FudmFzIGluc3RhbmNlb2YgSFRNTENhbnZhc0VsZW1lbnQgJiYgY2FudmFzLnBhcmVudEVsZW1lbnQpIHtcblx0XHRyZXR1cm4gY2FudmFzLnBhcmVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cdH1cblxuXHRyZXR1cm4geyB3aWR0aDogMCwgaGVpZ2h0OiAwLCB0b3A6IDAsIGxlZnQ6IDAgfTtcbn1cblxuLy8gRGlzcG9zZXMgYW4gb2JqZWN0IGFuZCBhbGwgaXRzIHByb3BlcnRpZXNcbmZ1bmN0aW9uIGRpc3Bvc2U8VE9iaiBleHRlbmRzIHsgZGlzcG9zZT86ICgpID0+IHZvaWQ7IHR5cGU/OiBzdHJpbmc7IFtrZXk6IHN0cmluZ106IGFueSB9PihvYmo6IFRPYmopIHtcblx0aWYgKG9iai5kaXNwb3NlICYmIG9iai50eXBlICE9PSAnU2NlbmUnKSBvYmouZGlzcG9zZSgpO1xuXHRmb3IgKGNvbnN0IHAgaW4gb2JqKSB7XG5cdFx0KHAgYXMgYW55KS5kaXNwb3NlPy4oKTtcblx0XHRkZWxldGUgb2JqW3BdO1xuXHR9XG59XG4iXX0=
@@ -15,12 +15,12 @@ export class NgtRoutedScene {
15
15
  .pipe(filter((event) => event instanceof ActivationEnd), takeUntilDestroyed())
16
16
  .subscribe(() => safeDetectChanges(cdr));
17
17
  }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtRoutedScene, deps: [{ token: i1.Router }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
19
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: NgtRoutedScene, isStandalone: true, selector: "ngt-routed-scene", ngImport: i0, template: `
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: NgtRoutedScene, deps: [{ token: i1.Router }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
19
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: NgtRoutedScene, isStandalone: true, selector: "ngt-routed-scene", ngImport: i0, template: `
20
20
  <router-outlet />
21
21
  `, isInline: true, dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtRoutedScene, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: NgtRoutedScene, decorators: [{
24
24
  type: Component,
25
25
  args: [{
26
26
  standalone: true,
@@ -1,4 +1,3 @@
1
- import { untracked } from '@angular/core';
2
1
  import * as THREE from 'three';
3
2
  import { getLocalState, invalidateInstance } from '../instance';
4
3
  import { is } from './is';
@@ -28,8 +27,7 @@ export function applyProps(instance, props) {
28
27
  // if props is empty
29
28
  if (!Object.keys(props).length)
30
29
  return instance;
31
- // Filter equals, events and reserved props
32
- // filter equals, events , and reserved props
30
+ // filter equals, and reserved props
33
31
  const localState = getLocalState(instance);
34
32
  const rootState = localState.store?.get();
35
33
  const changes = diffProps(instance, props);
@@ -108,9 +106,9 @@ export function applyProps(instance, props) {
108
106
  checkUpdate(targetProp);
109
107
  invalidateInstance(instance);
110
108
  }
111
- const instanceHandlers = localState.eventCount;
112
- const parent = localState.parent ? untracked(localState.parent) : null;
113
- if (parent && rootState.internal && instance['raycast'] && instanceHandlers !== localState.eventCount) {
109
+ const instanceHandlersCount = localState.eventCount;
110
+ const parent = localState.instanceStore?.get('parent');
111
+ if (parent && rootState.internal && instance['raycast'] && instanceHandlersCount !== localState.eventCount) {
114
112
  // Pre-emptively remove the instance from the interaction manager
115
113
  const index = rootState.internal.interaction.indexOf(instance);
116
114
  if (index > -1)
@@ -124,4 +122,4 @@ export function applyProps(instance, props) {
124
122
  }
125
123
  return instance;
126
124
  }
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHktcHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi91dGlscy9hcHBseS1wcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQXdCLE1BQU0sYUFBYSxDQUFDO0FBRXRGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV2Qyx3RUFBd0U7QUFDeEUsTUFBTSxVQUFVLFNBQVMsQ0FBQyxRQUFzQixFQUFFLEtBQW1CO0lBQ3BFLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsTUFBTSxPQUFPLEdBQW9DLEVBQUUsQ0FBQztJQUVwRCxLQUFLLE1BQU0sQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLElBQUksWUFBWSxFQUFFO1FBQ2hELElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQztRQUNsQixJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDakMsSUFBSSxPQUFPLEtBQUssVUFBVSxFQUFFO2dCQUMzQixHQUFHLEdBQUcsWUFBWSxDQUFDO2FBQ25CO2lCQUFNLElBQUksT0FBTyxLQUFLLGdCQUFnQixFQUFFO2dCQUN4QyxHQUFHLEdBQUcsa0JBQWtCLENBQUM7YUFDekI7U0FDRDtRQUNELElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQUUsU0FBUztRQUMvQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxD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QUN0QztJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IGdldExvY2FsU3RhdGUsIGludmFsaWRhdGVJbnN0YW5jZSwgdHlwZSBOZ3RJbnN0YW5jZU5vZGUgfSBmcm9tICcuLi9pbnN0YW5jZSc7XG5pbXBvcnQgdHlwZSB7IE5ndEFueVJlY29yZCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi9pcyc7XG5pbXBvcnQgeyBjaGVja1VwZGF0ZSB9IGZyb20gJy4vdXBkYXRlJztcblxuLy8gVGhpcyBmdW5jdGlvbiBwcmVwYXJlcyBhIHNldCBvZiBjaGFuZ2VzIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGluc3RhbmNlXG5leHBvcnQgZnVuY3Rpb24gZGlmZlByb3BzKGluc3RhbmNlOiBOZ3RBbnlSZWNvcmQsIHByb3BzOiBOZ3RBbnlSZWNvcmQpIHtcblx0Y29uc3QgcHJvcHNFbnRyaWVzID0gT2JqZWN0LmVudHJpZXMocHJvcHMpO1xuXHRjb25zdCBjaGFuZ2VzOiBba2V5OiBzdHJpbmcsIHZhbHVlOiB1bmtub3duXVtdID0gW107XG5cblx0Zm9yIChjb25zdCBbcHJvcEtleSwgcHJvcFZhbHVlXSBvZiBwcm9wc0VudHJpZXMpIHtcblx0XHRsZXQga2V5ID0gcHJvcEtleTtcblx0XHRpZiAoaXMuY29sb3JTcGFjZUV4aXN0KGluc3RhbmNlKSkge1xuXHRcdFx0aWYgKHByb3BLZXkgPT09ICdlbmNvZGluZycpIHtcblx0XHRcdFx0a2V5ID0gJ2NvbG9yU3BhY2UnO1xuXHRcdFx0fSBlbHNlIGlmIChwcm9wS2V5ID09PSAnb3V0cHV0RW5jb2RpbmcnKSB7XG5cdFx0XHRcdGtleSA9ICdvdXRwdXRDb2xvclNwYWNlJztcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKGlzLmVxdShwcm9wVmFsdWUsIGluc3RhbmNlW2tleV0pKSBjb250aW51ZTtcblx0XHRjaGFuZ2VzLnB1c2goW3Byb3BLZXksIHByb3BWYWx1ZV0pO1xuXHR9XG5cblx0cmV0dXJuIGNoYW5nZXM7XG59XG5cbi8vIFRoaXMgZnVuY3Rpb24gYXBwbGllcyBhIHNldCBvZiBjaGFuZ2VzIHRvIHRoZSBpbnN0YW5jZVxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5UHJvcHMoaW5zdGFuY2U6IE5ndEluc3RhbmNlTm9kZSwgcHJvcHM6IE5ndEFueVJlY29yZCkge1xuXHQvLyBpZiBwcm9wcyBpcyBlbXB0eVxuXHRpZiAoIU9iamVjdC5rZXlzKHByb3BzKS5sZW5ndGgpIHJldHVybiBpbnN0YW5jZTtcblxuXHQvLyBGaWx0ZXIgZXF1YWxzLCBldmVudHMgYW5kIHJlc2VydmVkIHByb3BzXG5cdC8vIGZpbHRlciBlcXVhbHMsIGV2ZW50cyAsIGFuZCByZXNlcnZlZCBwcm9wc1xuXHRjb25zdCBsb2NhbFN0YXRlID0gZ2V0TG9jYWxTdGF0ZShpbnN0YW5jZSk7XG5cdGNvbnN0IHJvb3RTdGF0ZSA9IGxvY2FsU3RhdGUuc3RvcmU/LmdldCgpO1xuXHRjb25zdCBjaGFuZ2VzID0gZGlmZlByb3BzKGluc3RhbmNlLCBwcm9wcyk7XG5cblx0Zm9yIChsZXQgaSA9IDA7IGkgPCBjaGFuZ2VzLmxlbmd0aDsgaSsrKSB7XG5cdFx0bGV0IFtrZXksIHZhbHVlXSA9IGNoYW5nZXNbaV07XG5cblx0XHQvLyBBbGlhcyAob3V0cHV0KWVuY29kaW5nID0+IChvdXRwdXQpY29sb3JTcGFjZSAoc2luY2UgcjE1Milcblx0XHQvLyBodHRwczovL2dpdGh1Yi5jb20vcG1uZHJzL3JlYWN0LXRocmVlLWZpYmVyL3B1bGwvMjgyOVxuXHRcdGlmIChpcy5jb2xvclNwYWNlRXhpc3QoaW5zdGFuY2UpKSB7XG5cdFx0XHRjb25zdCBzUkdCRW5jb2RpbmcgPSAzMDAxO1xuXHRcdFx0Y29uc3QgU1JHQkNvbG9yU3BhY2UgPSAnc3JnYic7XG5cdFx0XHRjb25zdCBMaW5lYXJTUkdCQ29sb3JTcGFjZSA9ICdzcmdiLWxpbmVhcic7XG5cblx0XHRcdGlmIChrZXkgPT09ICdlbmNvZGluZycpIHtcblx0XHRcdFx0a2V5ID0gJ2NvbG9yU3BhY2UnO1xuXHRcdFx0XHR2YWx1ZSA9IHZhbHVlID09PSBzUkdCRW5jb2RpbmcgPyBTUkdCQ29sb3JTcGFjZSA6IExpbmVhclNSR0JDb2xvclNwYWNlO1xuXHRcdFx0fSBlbHNlIGlmIChrZXkgPT09ICdvdXRwdXRFbmNvZGluZycpIHtcblx0XHRcdFx0a2V5ID0gJ291dHB1dENvbG9yU3BhY2UnO1xuXHRcdFx0XHR2YWx1ZSA9IHZhbHVlID09PSBzUkdCRW5jb2RpbmcgPyBTUkdCQ29sb3JTcGFjZSA6IExpbmVhclNSR0JDb2xvclNwYWNlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGNvbnN0IGN1cnJlbnRJbnN0YW5jZSA9IGluc3RhbmNlO1xuXHRcdGNvbnN0IHRhcmdldFByb3AgPSBjdXJyZW50SW5zdGFuY2Vba2V5XSBhcyBOZ3RBbnlSZWNvcmQ7XG5cblx0XHQvLyBzcGVjaWFsIHRyZWF0bWVuIGZvciBvYmplY3RzIHdpdGggc3VwcG9ydCBmb3Igc2V0L2NvcHksIGFuZCBsYXllcnNcblx0XHRpZiAodGFyZ2V0UHJvcCAmJiB0YXJnZXRQcm9wWydzZXQnXSAmJiAodGFyZ2V0UHJvcFsnY29weSddIHx8IHRhcmdldFByb3AgaW5zdGFuY2VvZiBUSFJFRS5MYXllcnMpKSB7XG5cdFx0XHRjb25zdCBpc0NvbG9yID0gdGFyZ2V0UHJvcCBpbnN0YW5jZW9mIFRIUkVFLkNvbG9yO1xuXHRcdFx0Ly8gaWYgdmFsdWUgaXMgYW4gYXJyYXlcblx0XHRcdGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuXHRcdFx0XHRpZiAoKHRhcmdldFByb3AgYXMgTmd0QW55UmVjb3JkKVsnZnJvbUFycmF5J10pICh0YXJnZXRQcm9wIGFzIE5ndEFueVJlY29yZClbJ2Zyb21BcnJheSddKHZhbHVlKTtcblx0XHRcdFx0ZWxzZSB0YXJnZXRQcm9wWydzZXQnXSguLi52YWx1ZSk7XG5cdFx0XHR9XG5cdFx0XHQvLyB0ZXN0IGFnYWluIHRhcmdldC5jb3B5XG5cdFx0XHRlbHNlIGlmIChcblx0XHRcdFx0KHRhcmdldFByb3AgYXMgTmd0QW55UmVjb3JkKVsnY29weSddICYmXG5cdFx0XHRcdHZhbHVlICYmXG5cdFx0XHRcdHZhbHVlLmNvbnN0cnVjdG9yICYmXG5cdFx0XHRcdHRhcmdldFByb3AuY29uc3RydWN0b3IubmFtZSA9PT0gdmFsdWUuY29uc3RydWN0b3IubmFtZVxuXHRcdFx0KSB7XG5cdFx0XHRcdCh0YXJnZXRQcm9wIGFzIE5ndEFueVJlY29yZClbJ2NvcHknXSh2YWx1ZSk7XG5cdFx0XHRcdGlmICghVEhSRUUuQ29sb3JNYW5hZ2VtZW50ICYmICFyb290U3RhdGUubGluZWFyICYmIGlzQ29sb3IpIHRhcmdldFByb3BbJ2NvbnZlcnRTUkdCVG9MaW5lYXInXSgpO1xuXHRcdFx0fVxuXHRcdFx0Ly8gaWYgbm90aGluZyBlbHNlIGZpdHMsIGp1c3Qgc2V0IHRoZSBzaW5nbGUgdmFsdWUsIGlnbm9yZSB1bmRlZmluZWRcblx0XHRcdGVsc2UgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0Y29uc3QgaXNDb2xvciA9IHRhcmdldFByb3AgaW5zdGFuY2VvZiBUSFJFRS5Db2xvcjtcblx0XHRcdFx0Ly8gYWxsb3cgc2V0dGluZyBhcnJheSBzY2FsYXJzXG5cdFx0XHRcdGlmICghaXNDb2xvciAmJiAodGFyZ2V0UHJvcCBhcyBOZ3RBbnlSZWNvcmQpWydzZXRTY2FsYXInXSlcblx0XHRcdFx0XHQodGFyZ2V0UHJvcCBhcyBOZ3RBbnlSZWNvcmQpWydzZXRTY2FsYXInXSh2YWx1ZSk7XG5cdFx0XHRcdC8vIGxheWVycyBoYXZlIG5vIGNvcHkgZnVuY3Rpb24sIGNvcHkgdGhlIG1hc2tcblx0XHRcdFx0ZWxzZSBpZiAodGFyZ2V0UHJvcCBpbnN0YW5jZW9mIFRIUkVFLkxheWVycyAmJiB2YWx1ZSBpbnN0YW5jZW9mIFRIUkVFLkxheWVycylcblx0XHRcdFx0XHR0YXJnZXRQcm9wLm1hc2sgPSB2YWx1ZS5tYXNrO1xuXHRcdFx0XHQvLyBvdGhlcndpc2UganVzdCBzZXQgLi4uXG5cdFx0XHRcdGVsc2UgdGFyZ2V0UHJvcFsnc2V0J10odmFsdWUpO1xuXG5cdFx0XHRcdC8vIGF1dG8tY29udmVydCBzcmdiXG5cdFx0XHRcdGlmICghVEhSRUUuQ29sb3JNYW5hZ2VtZW50ICYmICFyb290U3RhdGU/LmxpbmVhciAmJiBpc0NvbG9yKSB0YXJnZXRQcm9wLmNvbnZlcnRTUkdCVG9MaW5lYXIoKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0Ly8gZWxzZSBqdXN0IG92ZXJ3cml0ZSB0aGUgdmFsdWVcblx0XHRlbHNlIHtcblx0XHRcdGN1cnJlbnRJbnN0YW5jZVtrZXldID0gdmFsdWU7XG5cdFx0XHQvLyBhdXRvLWNvbnZlcnQgc3JnYiB0ZXh0dXJlc1xuXHRcdFx0aWYgKFxuXHRcdFx0XHRjdXJyZW50SW5zdGFuY2Vba2V5XSBpbnN0YW5jZW9mIFRIUkVFLlRleHR1cmUgJiZcblx0XHRcdFx0Y3VycmVudEluc3RhbmNlW2tleV0uZm9ybWF0ID09PSBUSFJFRS5SR0JBRm9ybWF0ICYmXG5cdFx0XHRcdGN1cnJlbnRJbnN0YW5jZVtrZXldLnR5cGUgPT09IFRIUkVFLlVuc2lnbmVkQnl0ZVR5cGVcblx0XHRcdCkge1xuXHRcdFx0XHRjb25zdCB0ZXh0dXJlID0gY3VycmVudEluc3RhbmNlW2tleV0gYXMgVEhSRUUuVGV4dHVyZTtcblxuXHRcdFx0XHRpZiAocm9vdFN0YXRlPy5nbCkge1xuXHRcdFx0XHRcdGlmIChpcy5jb2xvclNwYWNlRXhpc3QodGV4dHVyZSkgJiYgaXMuY29sb3JTcGFjZUV4aXN0KHJvb3RTdGF0ZS5nbCkpXG5cdFx0XHRcdFx0XHR0ZXh0dXJlLmNvbG9yU3BhY2UgPSByb290U3RhdGUuZ2wub3V0cHV0Q29sb3JTcGFjZTtcblx0XHRcdFx0XHRlbHNlIHRleHR1cmUuZW5jb2RpbmcgPSByb290U3RhdGUuZ2wub3V0cHV0RW5jb2Rpbmc7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRjaGVja1VwZGF0ZShjdXJyZW50SW5zdGFuY2Vba2V5XSk7XG5cdFx0Y2hlY2tVcGRhdGUodGFyZ2V0UHJvcCk7XG5cdFx0aW52YWxpZGF0ZUluc3RhbmNlKGluc3RhbmNlKTtcblx0fVxuXG5cdGNvbnN0IGluc3RhbmNlSGFuZGxlcnMgPSBsb2NhbFN0YXRlLmV2ZW50Q291bnQ7XG5cdGNvbnN0IHBhcmVudCA9IGxvY2FsU3RhdGUucGFyZW50ID8gdW50cmFja2VkKGxvY2FsU3RhdGUucGFyZW50KSA6IG51bGw7XG5cblx0aWYgKHBhcmVudCAmJiByb290U3RhdGUuaW50ZXJuYWwgJiYgaW5zdGFuY2VbJ3JheWNhc3QnXSAmJiBpbnN0YW5jZUhhbmRsZXJzICE9PSBsb2NhbFN0YXRlLmV2ZW50Q291bnQpIHtcblx0XHQvLyBQcmUtZW1wdGl2ZWx5IHJlbW92ZSB0aGUgaW5zdGFuY2UgZnJvbSB0aGUgaW50ZXJhY3Rpb24gbWFuYWdlclxuXHRcdGNvbnN0IGluZGV4ID0gcm9vdFN0YXRlLmludGVybmFsLmludGVyYWN0aW9uLmluZGV4T2YoaW5zdGFuY2UpO1xuXHRcdGlmIChpbmRleCA+IC0xKSByb290U3RhdGUuaW50ZXJuYWwuaW50ZXJhY3Rpb24uc3BsaWNlKGluZGV4LCAxKTtcblx0XHQvLyBBZGQgdGhlIGluc3RhbmNlIHRvIHRoZSBpbnRlcmFjdGlvbiBtYW5hZ2VyIG9ubHkgd2hlbiBpdCBoYXMgaGFuZGxlcnNcblx0XHRpZiAobG9jYWxTdGF0ZS5ldmVudENvdW50KSByb290U3RhdGUuaW50ZXJuYWwuaW50ZXJhY3Rpb24ucHVzaChpbnN0YW5jZSk7XG5cdH1cblxuXHRpZiAocGFyZW50ICYmIGxvY2FsU3RhdGUuYWZ0ZXJVcGRhdGUgJiYgbG9jYWxTdGF0ZS5hZnRlclVwZGF0ZS5vYnNlcnZlZCAmJiBjaGFuZ2VzLmxlbmd0aCkge1xuXHRcdGxvY2FsU3RhdGUuYWZ0ZXJVcGRhdGUuZW1pdChpbnN0YW5jZSk7XG5cdH1cblxuXHRyZXR1cm4gaW5zdGFuY2U7XG59XG4iXX0=
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHktcHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi91dGlscy9hcHBseS1wcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUF3QixNQUFNLGFBQWEsQ0FBQztBQUV0RixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFdkMsd0VBQXdFO0FBQ3hFLE1BQU0sVUFBVSxTQUFTLENBQUMsUUFBc0IsRUFBRSxLQUFtQjtJQUNwRSxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLE1BQU0sT0FBTyxHQUFvQyxFQUFFLENBQUM7SUFFcEQsS0FBSyxNQUFNLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxJQUFJLFlBQVksRUFBRTtRQUNoRCxJQUFJLEdBQUcsR0FBRyxPQUFPLENBQUM7UUFDbEIsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2pDLElBQUksT0FBTyxLQUFLLFVBQVUsRUFBRTtnQkFDM0IsR0FBRyxHQUFHLFlBQVksQ0FBQzthQUNuQjtpQkFBTSxJQUFJLE9BQU8sS0FBSyxnQkFBZ0IsRUFBRTtnQkFDeEMsR0FBRyxHQUFHLGtCQUFrQixDQUFDO2FBQ3pCO1NBQ0Q7UUFDRCxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUFFLFNBQVM7UUFDL0MsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO0tBQ25DO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDaEIs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dCB7IGdldExvY2FsU3RhdGUsIGludmFsaWRhdGVJbnN0YW5jZSwgdHlwZSBOZ3RJbnN0YW5jZU5vZGUgfSBmcm9tICcuLi9pbnN0YW5jZSc7XG5pbXBvcnQgdHlwZSB7IE5ndEFueVJlY29yZCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi9pcyc7XG5pbXBvcnQgeyBjaGVja1VwZGF0ZSB9IGZyb20gJy4vdXBkYXRlJztcblxuLy8gVGhpcyBmdW5jdGlvbiBwcmVwYXJlcyBhIHNldCBvZiBjaGFuZ2VzIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGluc3RhbmNlXG5leHBvcnQgZnVuY3Rpb24gZGlmZlByb3BzKGluc3RhbmNlOiBOZ3RBbnlSZWNvcmQsIHByb3BzOiBOZ3RBbnlSZWNvcmQpIHtcblx0Y29uc3QgcHJvcHNFbnRyaWVzID0gT2JqZWN0LmVudHJpZXMocHJvcHMpO1xuXHRjb25zdCBjaGFuZ2VzOiBba2V5OiBzdHJpbmcsIHZhbHVlOiB1bmtub3duXVtdID0gW107XG5cblx0Zm9yIChjb25zdCBbcHJvcEtleSwgcHJvcFZhbHVlXSBvZiBwcm9wc0VudHJpZXMpIHtcblx0XHRsZXQga2V5ID0gcHJvcEtleTtcblx0XHRpZiAoaXMuY29sb3JTcGFjZUV4aXN0KGluc3RhbmNlKSkge1xuXHRcdFx0aWYgKHByb3BLZXkgPT09ICdlbmNvZGluZycpIHtcblx0XHRcdFx0a2V5ID0gJ2NvbG9yU3BhY2UnO1xuXHRcdFx0fSBlbHNlIGlmIChwcm9wS2V5ID09PSAnb3V0cHV0RW5jb2RpbmcnKSB7XG5cdFx0XHRcdGtleSA9ICdvdXRwdXRDb2xvclNwYWNlJztcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKGlzLmVxdShwcm9wVmFsdWUsIGluc3RhbmNlW2tleV0pKSBjb250aW51ZTtcblx0XHRjaGFuZ2VzLnB1c2goW3Byb3BLZXksIHByb3BWYWx1ZV0pO1xuXHR9XG5cblx0cmV0dXJuIGNoYW5nZXM7XG59XG5cbi8vIFRoaXMgZnVuY3Rpb24gYXBwbGllcyBhIHNldCBvZiBjaGFuZ2VzIHRvIHRoZSBpbnN0YW5jZVxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5UHJvcHMoaW5zdGFuY2U6IE5ndEluc3RhbmNlTm9kZSwgcHJvcHM6IE5ndEFueVJlY29yZCkge1xuXHQvLyBpZiBwcm9wcyBpcyBlbXB0eVxuXHRpZiAoIU9iamVjdC5rZXlzKHByb3BzKS5sZW5ndGgpIHJldHVybiBpbnN0YW5jZTtcblxuXHQvLyBmaWx0ZXIgZXF1YWxzLCBhbmQgcmVzZXJ2ZWQgcHJvcHNcblx0Y29uc3QgbG9jYWxTdGF0ZSA9IGdldExvY2FsU3RhdGUoaW5zdGFuY2UpO1xuXHRjb25zdCByb290U3RhdGUgPSBsb2NhbFN0YXRlLnN0b3JlPy5nZXQoKTtcblx0Y29uc3QgY2hhbmdlcyA9IGRpZmZQcm9wcyhpbnN0YW5jZSwgcHJvcHMpO1xuXG5cdGZvciAobGV0IGkgPSAwOyBpIDwgY2hhbmdlcy5sZW5ndGg7IGkrKykge1xuXHRcdGxldCBba2V5LCB2YWx1ZV0gPSBjaGFuZ2VzW2ldO1xuXG5cdFx0Ly8gQWxpYXMgKG91dHB1dCllbmNvZGluZyA9PiAob3V0cHV0KWNvbG9yU3BhY2UgKHNpbmNlIHIxNTIpXG5cdFx0Ly8gaHR0cHM6Ly9naXRodWIuY29tL3BtbmRycy9yZWFjdC10aHJlZS1maWJlci9wdWxsLzI4Mjlcblx0XHRpZiAoaXMuY29sb3JTcGFjZUV4aXN0KGluc3RhbmNlKSkge1xuXHRcdFx0Y29uc3Qgc1JHQkVuY29kaW5nID0gMzAwMTtcblx0XHRcdGNvbnN0IFNSR0JDb2xvclNwYWNlID0gJ3NyZ2InO1xuXHRcdFx0Y29uc3QgTGluZWFyU1JHQkNvbG9yU3BhY2UgPSAnc3JnYi1saW5lYXInO1xuXG5cdFx0XHRpZiAoa2V5ID09PSAnZW5jb2RpbmcnKSB7XG5cdFx0XHRcdGtleSA9ICdjb2xvclNwYWNlJztcblx0XHRcdFx0dmFsdWUgPSB2YWx1ZSA9PT0gc1JHQkVuY29kaW5nID8gU1JHQkNvbG9yU3BhY2UgOiBMaW5lYXJTUkdCQ29sb3JTcGFjZTtcblx0XHRcdH0gZWxzZSBpZiAoa2V5ID09PSAnb3V0cHV0RW5jb2RpbmcnKSB7XG5cdFx0XHRcdGtleSA9ICdvdXRwdXRDb2xvclNwYWNlJztcblx0XHRcdFx0dmFsdWUgPSB2YWx1ZSA9PT0gc1JHQkVuY29kaW5nID8gU1JHQkNvbG9yU3BhY2UgOiBMaW5lYXJTUkdCQ29sb3JTcGFjZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRjb25zdCBjdXJyZW50SW5zdGFuY2UgPSBpbnN0YW5jZTtcblx0XHRjb25zdCB0YXJnZXRQcm9wID0gY3VycmVudEluc3RhbmNlW2tleV0gYXMgTmd0QW55UmVjb3JkO1xuXG5cdFx0Ly8gc3BlY2lhbCB0cmVhdG1lbiBmb3Igb2JqZWN0cyB3aXRoIHN1cHBvcnQgZm9yIHNldC9jb3B5LCBhbmQgbGF5ZXJzXG5cdFx0aWYgKHRhcmdldFByb3AgJiYgdGFyZ2V0UHJvcFsnc2V0J10gJiYgKHRhcmdldFByb3BbJ2NvcHknXSB8fCB0YXJnZXRQcm9wIGluc3RhbmNlb2YgVEhSRUUuTGF5ZXJzKSkge1xuXHRcdFx0Y29uc3QgaXNDb2xvciA9IHRhcmdldFByb3AgaW5zdGFuY2VvZiBUSFJFRS5Db2xvcjtcblx0XHRcdC8vIGlmIHZhbHVlIGlzIGFuIGFycmF5XG5cdFx0XHRpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcblx0XHRcdFx0aWYgKCh0YXJnZXRQcm9wIGFzIE5ndEFueVJlY29yZClbJ2Zyb21BcnJheSddKSAodGFyZ2V0UHJvcCBhcyBOZ3RBbnlSZWNvcmQpWydmcm9tQXJyYXknXSh2YWx1ZSk7XG5cdFx0XHRcdGVsc2UgdGFyZ2V0UHJvcFsnc2V0J10oLi4udmFsdWUpO1xuXHRcdFx0fVxuXHRcdFx0Ly8gdGVzdCBhZ2FpbiB0YXJnZXQuY29weVxuXHRcdFx0ZWxzZSBpZiAoXG5cdFx0XHRcdCh0YXJnZXRQcm9wIGFzIE5ndEFueVJlY29yZClbJ2NvcHknXSAmJlxuXHRcdFx0XHR2YWx1ZSAmJlxuXHRcdFx0XHR2YWx1ZS5jb25zdHJ1Y3RvciAmJlxuXHRcdFx0XHR0YXJnZXRQcm9wLmNvbnN0cnVjdG9yLm5hbWUgPT09IHZhbHVlLmNvbnN0cnVjdG9yLm5hbWVcblx0XHRcdCkge1xuXHRcdFx0XHQodGFyZ2V0UHJvcCBhcyBOZ3RBbnlSZWNvcmQpWydjb3B5J10odmFsdWUpO1xuXHRcdFx0XHRpZiAoIVRIUkVFLkNvbG9yTWFuYWdlbWVudCAmJiAhcm9vdFN0YXRlLmxpbmVhciAmJiBpc0NvbG9yKSB0YXJnZXRQcm9wWydjb252ZXJ0U1JHQlRvTGluZWFyJ10oKTtcblx0XHRcdH1cblx0XHRcdC8vIGlmIG5vdGhpbmcgZWxzZSBmaXRzLCBqdXN0IHNldCB0aGUgc2luZ2xlIHZhbHVlLCBpZ25vcmUgdW5kZWZpbmVkXG5cdFx0XHRlbHNlIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdGNvbnN0IGlzQ29sb3IgPSB0YXJnZXRQcm9wIGluc3RhbmNlb2YgVEhSRUUuQ29sb3I7XG5cdFx0XHRcdC8vIGFsbG93IHNldHRpbmcgYXJyYXkgc2NhbGFyc1xuXHRcdFx0XHRpZiAoIWlzQ29sb3IgJiYgKHRhcmdldFByb3AgYXMgTmd0QW55UmVjb3JkKVsnc2V0U2NhbGFyJ10pXG5cdFx0XHRcdFx0KHRhcmdldFByb3AgYXMgTmd0QW55UmVjb3JkKVsnc2V0U2NhbGFyJ10odmFsdWUpO1xuXHRcdFx0XHQvLyBsYXllcnMgaGF2ZSBubyBjb3B5IGZ1bmN0aW9uLCBjb3B5IHRoZSBtYXNrXG5cdFx0XHRcdGVsc2UgaWYgKHRhcmdldFByb3AgaW5zdGFuY2VvZiBUSFJFRS5MYXllcnMgJiYgdmFsdWUgaW5zdGFuY2VvZiBUSFJFRS5MYXllcnMpXG5cdFx0XHRcdFx0dGFyZ2V0UHJvcC5tYXNrID0gdmFsdWUubWFzaztcblx0XHRcdFx0Ly8gb3RoZXJ3aXNlIGp1c3Qgc2V0IC4uLlxuXHRcdFx0XHRlbHNlIHRhcmdldFByb3BbJ3NldCddKHZhbHVlKTtcblxuXHRcdFx0XHQvLyBhdXRvLWNvbnZlcnQgc3JnYlxuXHRcdFx0XHRpZiAoIVRIUkVFLkNvbG9yTWFuYWdlbWVudCAmJiAhcm9vdFN0YXRlPy5saW5lYXIgJiYgaXNDb2xvcikgdGFyZ2V0UHJvcC5jb252ZXJ0U1JHQlRvTGluZWFyKCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC8vIGVsc2UganVzdCBvdmVyd3JpdGUgdGhlIHZhbHVlXG5cdFx0ZWxzZSB7XG5cdFx0XHRjdXJyZW50SW5zdGFuY2Vba2V5XSA9IHZhbHVlO1xuXHRcdFx0Ly8gYXV0by1jb252ZXJ0IHNyZ2IgdGV4dHVyZXNcblx0XHRcdGlmIChcblx0XHRcdFx0Y3VycmVudEluc3RhbmNlW2tleV0gaW5zdGFuY2VvZiBUSFJFRS5UZXh0dXJlICYmXG5cdFx0XHRcdGN1cnJlbnRJbnN0YW5jZVtrZXldLmZvcm1hdCA9PT0gVEhSRUUuUkdCQUZvcm1hdCAmJlxuXHRcdFx0XHRjdXJyZW50SW5zdGFuY2Vba2V5XS50eXBlID09PSBUSFJFRS5VbnNpZ25lZEJ5dGVUeXBlXG5cdFx0XHQpIHtcblx0XHRcdFx0Y29uc3QgdGV4dHVyZSA9IGN1cnJlbnRJbnN0YW5jZVtrZXldIGFzIFRIUkVFLlRleHR1cmU7XG5cblx0XHRcdFx0aWYgKHJvb3RTdGF0ZT8uZ2wpIHtcblx0XHRcdFx0XHRpZiAoaXMuY29sb3JTcGFjZUV4aXN0KHRleHR1cmUpICYmIGlzLmNvbG9yU3BhY2VFeGlzdChyb290U3RhdGUuZ2wpKVxuXHRcdFx0XHRcdFx0dGV4dHVyZS5jb2xvclNwYWNlID0gcm9vdFN0YXRlLmdsLm91dHB1dENvbG9yU3BhY2U7XG5cdFx0XHRcdFx0ZWxzZSB0ZXh0dXJlLmVuY29kaW5nID0gcm9vdFN0YXRlLmdsLm91dHB1dEVuY29kaW5nO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Y2hlY2tVcGRhdGUoY3VycmVudEluc3RhbmNlW2tleV0pO1xuXHRcdGNoZWNrVXBkYXRlKHRhcmdldFByb3ApO1xuXHRcdGludmFsaWRhdGVJbnN0YW5jZShpbnN0YW5jZSk7XG5cdH1cblxuXHRjb25zdCBpbnN0YW5jZUhhbmRsZXJzQ291bnQgPSBsb2NhbFN0YXRlLmV2ZW50Q291bnQ7XG5cdGNvbnN0IHBhcmVudCA9IGxvY2FsU3RhdGUuaW5zdGFuY2VTdG9yZT8uZ2V0KCdwYXJlbnQnKTtcblxuXHRpZiAocGFyZW50ICYmIHJvb3RTdGF0ZS5pbnRlcm5hbCAmJiBpbnN0YW5jZVsncmF5Y2FzdCddICYmIGluc3RhbmNlSGFuZGxlcnNDb3VudCAhPT0gbG9jYWxTdGF0ZS5ldmVudENvdW50KSB7XG5cdFx0Ly8gUHJlLWVtcHRpdmVseSByZW1vdmUgdGhlIGluc3RhbmNlIGZyb20gdGhlIGludGVyYWN0aW9uIG1hbmFnZXJcblx0XHRjb25zdCBpbmRleCA9IHJvb3RTdGF0ZS5pbnRlcm5hbC5pbnRlcmFjdGlvbi5pbmRleE9mKGluc3RhbmNlKTtcblx0XHRpZiAoaW5kZXggPiAtMSkgcm9vdFN0YXRlLmludGVybmFsLmludGVyYWN0aW9uLnNwbGljZShpbmRleCwgMSk7XG5cdFx0Ly8gQWRkIHRoZSBpbnN0YW5jZSB0byB0aGUgaW50ZXJhY3Rpb24gbWFuYWdlciBvbmx5IHdoZW4gaXQgaGFzIGhhbmRsZXJzXG5cdFx0aWYgKGxvY2FsU3RhdGUuZXZlbnRDb3VudCkgcm9vdFN0YXRlLmludGVybmFsLmludGVyYWN0aW9uLnB1c2goaW5zdGFuY2UpO1xuXHR9XG5cblx0aWYgKHBhcmVudCAmJiBsb2NhbFN0YXRlLmFmdGVyVXBkYXRlICYmIGxvY2FsU3RhdGUuYWZ0ZXJVcGRhdGUub2JzZXJ2ZWQgJiYgY2hhbmdlcy5sZW5ndGgpIHtcblx0XHRsb2NhbFN0YXRlLmFmdGVyVXBkYXRlLmVtaXQoaW5zdGFuY2UpO1xuXHR9XG5cblx0cmV0dXJuIGluc3RhbmNlO1xufVxuIl19
@@ -0,0 +1,13 @@
1
+ import { forwardRef } from '@angular/core';
2
+ import { createInjectionToken } from 'ngxtension/create-injection-token';
3
+ export function createApiToken(forwardedObject) {
4
+ function apiFactory(obj) {
5
+ return obj.api;
6
+ }
7
+ const [injectFn, provideFn] = createInjectionToken(apiFactory, {
8
+ isRoot: false,
9
+ deps: [forwardRef(forwardedObject)],
10
+ });
11
+ return [injectFn, () => provideFn()];
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWFwaS10b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL2NyZWF0ZS1hcGktdG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQW9DLE1BQU0sbUNBQW1DLENBQUM7QUFFM0csTUFBTSxVQUFVLGNBQWMsQ0FDN0IsZUFBb0M7SUFFcEMsU0FBUyxVQUFVLENBQUMsR0FBWTtRQUMvQixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLEdBQUcsb0JBQW9CLENBQUMsVUFBVSxFQUFFO1FBQzlELE1BQU0sRUFBRSxLQUFLO1FBQ2IsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0tBQ3FDLENBQUMsQ0FBQztJQUUzRSxPQUFPLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFVLENBQUM7QUFDL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcndhcmRSZWYsIHR5cGUgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY3JlYXRlSW5qZWN0aW9uVG9rZW4sIHR5cGUgQ3JlYXRlSW5qZWN0aW9uVG9rZW5PcHRpb25zIH0gZnJvbSAnbmd4dGVuc2lvbi9jcmVhdGUtaW5qZWN0aW9uLXRva2VuJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFwaVRva2VuPFRPYmplY3QgZXh0ZW5kcyB7IGFwaTogYW55IH0sIFRBcGkgPSBUT2JqZWN0IGV4dGVuZHMgeyBhcGk6IGluZmVyIEFwaSB9ID8gQXBpIDogbmV2ZXI+KFxuXHRmb3J3YXJkZWRPYmplY3Q6ICgpID0+IFR5cGU8VE9iamVjdD4sXG4pIHtcblx0ZnVuY3Rpb24gYXBpRmFjdG9yeShvYmo6IFRPYmplY3QpOiBUQXBpIHtcblx0XHRyZXR1cm4gb2JqLmFwaTtcblx0fVxuXG5cdGNvbnN0IFtpbmplY3RGbiwgcHJvdmlkZUZuXSA9IGNyZWF0ZUluamVjdGlvblRva2VuKGFwaUZhY3RvcnksIHtcblx0XHRpc1Jvb3Q6IGZhbHNlLFxuXHRcdGRlcHM6IFtmb3J3YXJkUmVmKGZvcndhcmRlZE9iamVjdCldLFxuXHR9IGFzIHVua25vd24gYXMgQ3JlYXRlSW5qZWN0aW9uVG9rZW5PcHRpb25zPHR5cGVvZiBhcGlGYWN0b3J5LCBbVE9iamVjdF0+KTtcblxuXHRyZXR1cm4gW2luamVjdEZuLCAoKSA9PiBwcm92aWRlRm4oKV0gYXMgY29uc3Q7XG59XG4iXX0=
@@ -47,7 +47,7 @@ const selector = (_state, computedCache) => (...keysAndOptions) => {
47
47
  }
48
48
  const [keys, options] = parseStoreOptions(keysAndOptions);
49
49
  const joinedKeys = keys.join('-');
50
- const cachedKeys = joinedKeys.concat(options ? JSON.stringify(options) : '');
50
+ const cachedKeys = joinedKeys.concat(JSON.stringify(options));
51
51
  if (!computedCache.has(cachedKeys)) {
52
52
  computedCache.set(cachedKeys, computed(() => keys.reduce((value, key) => value[key], _state()), options));
53
53
  }
@@ -61,6 +61,9 @@ export function signalStore(initialState = {}, options) {
61
61
  let select;
62
62
  let state;
63
63
  const computedCache = new Map();
64
+ if (!options) {
65
+ options = { equal: Object.is };
66
+ }
64
67
  if (typeof initialState === 'function') {
65
68
  source = signal({}, options);
66
69
  state = source.asReadonly();
@@ -81,7 +84,7 @@ export function signalStore(initialState = {}, options) {
81
84
  const store = { select, get, set, patch, state };
82
85
  // NOTE: internal _snapshot to debug current state
83
86
  Object.defineProperty(store, '_snapshot', {
84
- get: state,
87
+ get: untracked.bind({}, state),
85
88
  configurable: false,
86
89
  enumerable: false,
87
90
  });
@@ -91,6 +94,6 @@ function parseStoreOptions(keysAndOptions) {
91
94
  if (typeof keysAndOptions.at(-1) === 'object') {
92
95
  return [keysAndOptions.slice(0, -1), keysAndOptions.at(-1)];
93
96
  }
94
- return [keysAndOptions];
97
+ return [keysAndOptions, { equal: Object.is }];
95
98
  }
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdXRpbHMvc2lnbmFsLXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsR0FLVCxNQUFNLGVBQWUsQ0FBQztBQUd2QixNQUFNLGtCQUFrQixHQUFHLCtCQUErQixDQUFDO0FBdUQzRCxNQUFNLE1BQU0sR0FDWCxDQUF1QixPQUE4QixFQUFFLEVBQUUsQ0FDekQsQ0FBQyxLQUEyQyxFQUFFLEVBQUU7SUFDL0MsTUFBTSxPQUFPLEdBQUcsQ0FBQyxRQUFlLEVBQUUsRUFBRTtRQUNuQyxNQUFNLE9BQU8sR0FBRyxPQUFPLEtBQUssS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3RFLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDcEMsTUFBTSxRQUFRLEdBQUcsR0FBa0IsQ0FBQztZQUNwQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxTQUFTLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksRUFBRTtnQkFDbEUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUN2QztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUM7SUFDaEIsQ0FBQyxDQUFDO0lBQ0YsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNkLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLFFBQVEsRUFBRSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMs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QUFDO1FBQzVCLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckIsR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyQixLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLE1BQU0sR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0tBQ3hDO0lBRUQsTUFBTSxLQUFLLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFFakQsa0RBQWtEO0lBQ2xELE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRTtRQUN6QyxHQUFHLEVBQUUsS0FBSztRQUNWLFlBQVksRUFBRSxLQUFLO1FBQ25CLFVBQVUsRUFBRSxLQUFLO0tBQ2pCLENBQUMsQ0FBQztJQUVILE9BQU8sS0FBSyxDQUFDO0FBQ2QsQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQUMsY0FBcUI7SUFDL0MsSUFBSSxPQUFPLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLEVBQUU7UUFDOUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDNUQ7SUFFRCxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdGNvbXB1dGVkLFxuXHRzaWduYWwsXG5cdHVudHJhY2tlZCxcblx0dHlwZSBDcmVhdGVDb21wdXRlZE9wdGlvbnMsXG5cdHR5cGUgQ3JlYXRlU2lnbmFsT3B0aW9ucyxcblx0dHlwZSBTaWduYWwsXG5cdHR5cGUgV3JpdGFibGVTaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBOZ3RBbnlSZWNvcmQgfSBmcm9tICcuLi90eXBlcyc7XG5cbmNvbnN0IFNUT1JFX0NPTVBVVEVEX0tFWSA9ICdfX25ndF9zaWduYWxfc3RvcmVfY29tcHV0ZWRfXyc7XG5cbmV4cG9ydCB0eXBlIE5ndFNpZ25hbFN0b3JlPFN0YXRlIGV4dGVuZHMgb2JqZWN0PiA9IHtcblx0c2VsZWN0PFxuXHRcdEtleTEgZXh0ZW5kcyBrZXlvZiBTdGF0ZSxcblx0XHRLZXkyIGV4dGVuZHMga2V5b2YgU3RhdGVbS2V5MV0sXG5cdFx0S2V5MyBleHRlbmRzIGtleW9mIFN0YXRlW0tleTFdW0tleTJdLFxuXHRcdEtleTQgZXh0ZW5kcyBrZXlvZiBTdGF0ZVtLZXkxXVtLZXkyXVtLZXkzXSxcblx0Pihcblx0XHRrZXkxOiBLZXkxLFxuXHRcdGtleTI6IEtleTIsXG5cdFx0a2V5MzogS2V5Myxcblx0XHRrZXk0OiBLZXk0LFxuXHRcdG9wdGlvbnM/OiBDcmVhdGVDb21wdXRlZE9wdGlvbnM8U3RhdGVbS2V5MV1bS2V5Ml1bS2V5M11bS2V5NF0+LFxuXHQpOiBTaWduYWw8U3RhdGVbS2V5MV1bS2V5Ml1bS2V5M11bS2V5NF0+O1xuXHRzZWxlY3Q8S2V5MSBleHRlbmRzIGtleW9mIFN0YXRlLCBLZXkyIGV4dGVuZHMga2V5b2YgU3RhdGVbS2V5MV0sIEtleTMgZXh0ZW5kcyBrZXlvZiBTdGF0ZVtLZXkxXVtLZXkyXT4oXG5cdFx0a2V5MTogS2V5MSxcblx0XHRrZXkyOiBLZXkyLFxuXHRcdGtleTM6IEtleTMsXG5cdFx0b3B0aW9ucz86IENyZWF0ZUNvbXB1dGVkT3B0aW9uczxTdGF0ZVtLZXkxXVtLZXkyXVtLZXkzXT4sXG5cdCk6IFNpZ25hbDxTdGF0ZVtLZXkxXVtLZXkyXVtLZXkzXT47XG5cdHNlbGVjdDxLZXkxIGV4dGVuZHMga2V5b2YgU3RhdGUsIEtleTIgZXh0ZW5kcyBrZXlvZiBTdGF0ZVtLZXkxXT4oXG5cdFx0a2V5MTogS2V5MSxcblx0XHRrZXkyOiBLZXkyLFxuXHRcdG9wdGlvbnM/OiBDcmVhdGVDb21wdXRlZE9wdGlvbnM8U3RhdGVbS2V5MV1bS2V5Ml0+LFxuXHQpOiBTaWduYWw8U3RhdGVbS2V5MV1bS2V5Ml0+O1xuXHRzZWxlY3Q8S2V5IGV4dGVuZHMga2V5b2YgU3RhdGU+KGtleTogS2V5LCBvcHRpb25zPzogQ3JlYXRlQ29tcHV0ZWRPcHRpb25zPFN0YXRlW0tleV0+KTogU2lnbmFsPFN0YXRlW0tleV0+O1xuXHRzZWxlY3Qob3B0aW9ucz86IENyZWF0ZUNvbXB1dGVkT3B0aW9uczxTdGF0ZT4pOiBTaWduYWw8U3RhdGU+O1xuXG5cdGdldDxcblx0XHRLZXkxIGV4dGVuZHMga2V5b2YgU3RhdGUsXG5cdFx0S2V5MiBleHRlbmRzIGtleW9mIFN0YXRlW0tleTFdLFxuXHRcdEtleTMgZXh0ZW5kcyBrZXlvZiBTdGF0ZVtLZXkxXVtLZXkyXSxcblx0XHRLZXk0IGV4dGVuZHMga2V5b2YgU3RhdGVbS2V5MV1bS2V5Ml1bS2V5M10sXG5cdD4oXG5cdFx0a2V5MTogS2V5MSxcblx0XHRrZXkyOiBLZXkyLFxuXHRcdGtleTM6IEtleTMsXG5cdFx0a2V5NDogS2V5NCxcblx0KTogU3RhdGVbS2V5MV1bS2V5Ml1bS2V5M11bS2V5NF07XG5cdGdldDxLZXkxIGV4dGVuZHMga2V5b2YgU3RhdGUsIEtleTIgZXh0ZW5kcyBrZXlvZiBTdGF0ZVtLZXkxXSwgS2V5MyBleHRlbmRzIGtleW9mIFN0YXRlW0tleTFdW0tleTJdPihcblx0XHRrZXkxOiBLZXkxLFxuXHRcdGtleTI6IEtleTIsXG5cdFx0a2V5MzogS2V5Myxcblx0KTogU3RhdGVbS2V5MV1bS2V5Ml1bS2V5M107XG5cdGdldDxLZXkxIGV4dGVuZHMga2V5b2YgU3RhdGUsIEtleTIgZXh0ZW5kcyBrZXlvZiBTdGF0ZVtLZXkxXT4oa2V5MTogS2V5MSwga2V5MjogS2V5Mik6IFN0YXRlW0tleTFdW0tleTJdO1xuXHRnZXQ8S2V5IGV4dGVuZHMga2V5b2YgU3RhdGU+KGtleTogS2V5KTogU3RhdGVbS2V5XTtcblx0Z2V0KCk6IFN0YXRlO1xuXG5cdHNldChzdGF0ZTogUGFydGlhbDxTdGF0ZT4gfCAoKHByZXZpb3VzOiBTdGF0ZSkgPT4gUGFydGlhbDxTdGF0ZT4pKTogdm9pZDtcblx0cGF0Y2goc3RhdGU6IFBhcnRpYWw8U3RhdGU+KTogdm9pZDtcblxuXHRzdGF0ZTogU2lnbmFsPFN0YXRlPjtcbn07XG5cbmNvbnN0IHNldHRlciA9XG5cdDxTdGF0ZSBleHRlbmRzIG9iamVjdD4oX3NvdXJjZTogV3JpdGFibGVTaWduYWw8U3RhdGU+KSA9PlxuXHQoc3RhdGU6IFN0YXRlIHwgKChwcmV2aW91czogU3RhdGUpID0+IFN0YXRlKSkgPT4ge1xuXHRcdGNvbnN0IHVwZGF0ZXIgPSAocHJldmlvdXM6IFN0YXRlKSA9PiB7XG5cdFx0XHRjb25zdCBwYXJ0aWFsID0gdHlwZW9mIHN0YXRlID09PSAnZnVuY3Rpb24nID8gc3RhdGUocHJldmlvdXMpIDogc3RhdGU7XG5cdFx0XHRPYmplY3Qua2V5cyhwYXJ0aWFsKS5mb3JFYWNoKChrZXkpID0+IHtcblx0XHRcdFx0Y29uc3QgdHlwZWRLZXkgPSBrZXkgYXMga2V5b2YgU3RhdGU7XG5cdFx0XHRcdGlmIChwYXJ0aWFsW3R5cGVkS2V5XSA9PT0gdW5kZWZpbmVkICYmIHByZXZpb3VzW3R5cGVkS2V5XSAhPSBudWxsKSB7XG5cdFx0XHRcdFx0cGFydGlhbFt0eXBlZEtleV0gPSBwcmV2aW91c1t0eXBlZEtleV07XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIHBhcnRpYWw7XG5cdFx0fTtcblx0XHR1bnRyYWNrZWQoKCkgPT4ge1xuXHRcdFx0X3NvdXJjZS51cGRhdGUoKHByZXZpb3VzKSA9PiAoeyAuLi5wcmV2aW91cywgLi4udXBkYXRlcihwcmV2aW91cykgfSkpO1xuXHRcdH0pO1xuXHR9O1xuXG5jb25zdCBwYXRjaGVyID1cblx0PFN0YXRlIGV4dGVuZHMgb2JqZWN0Pihfc291cmNlOiBXcml0YWJsZVNpZ25hbDxTdGF0ZT4pID0+XG5cdChzdGF0ZTogU3RhdGUpID0+IHtcblx0XHRjb25zdCB1cGRhdGVyID0gKHByZXZpb3VzOiBTdGF0ZSkgPT4ge1xuXHRcdFx0T2JqZWN0LmtleXMoc3RhdGUpLmZvckVhY2goKGtleSkgPT4ge1xuXHRcdFx0XHRjb25zdCB0eXBlZEtleSA9IGtleSBhcyBrZXlvZiBTdGF0ZTtcblx0XHRcdFx0aWYgKHN0YXRlW3R5cGVkS2V5XSA9PT0gdW5kZWZpbmVkICYmIHByZXZpb3VzW3R5cGVkS2V5XSAhPSBudWxsKSB7XG5cdFx0XHRcdFx0c3RhdGVbdHlwZWRLZXldID0gcHJldmlvdXNbdHlwZWRLZXldO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdHJldHVybiBzdGF0ZTtcblx0XHR9O1xuXHRcdHVudHJhY2tlZCgoKSA9PiB7XG5cdFx0XHRfc291cmNlLnVwZGF0ZSgocHJldmlvdXMpID0+ICh7IC4uLnVwZGF0ZXIocHJldmlvdXMpLCAuLi5wcmV2aW91cyB9KSk7XG5cdFx0fSk7XG5cdH07XG5cbmNvbnN0IGdldHRlciA9XG5cdDxTdGF0ZSBleHRlbmRzIG9iamVjdD4oX3NvdXJjZTogV3JpdGFibGVTaWduYWw8U3RhdGU+KSA9PlxuXHQoLi4ua2V5czogc3RyaW5nW10pID0+IHtcblx0XHRjb25zdCByb290ID0gdW50cmFja2VkKF9zb3VyY2UpO1xuXHRcdGlmIChrZXlzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHJvb3Q7XG5cdFx0cmV0dXJuIGtleXMucmVkdWNlKCh2YWx1ZSwga2V5KSA9PiAodmFsdWUgYXMgTmd0QW55UmVjb3JkKVtrZXldLCByb290KTtcblx0fTtcblxuY29uc3Qgc2VsZWN0b3IgPVxuXHQ8U3RhdGUgZXh0ZW5kcyBvYmplY3Q+KF9zdGF0ZTogU2lnbmFsPFN0YXRlPiwgY29tcHV0ZWRDYWNoZTogTWFwPHN0cmluZywgU2lnbmFsPGFueT4+KSA9PlxuXHQoLi4ua2V5c0FuZE9wdGlvbnM6IGFueVtdKSA9PiB7XG5cdFx0aWYgKGtleXNBbmRPcHRpb25zLmxlbmd0aCA9PT0gMCkgcmV0dXJuIF9zdGF0ZTtcblx0XHRpZiAoa2V5c0FuZE9wdGlvbnMubGVuZ3RoID09PSAxICYmIHR5cGVvZiBrZXlzQW5kT3B0aW9uc1swXSA9PT0gJ29iamVjdCcpIHtcblx0XHRcdGNvbnN0IGNhY2hlZEtleSA9IFNUT1JFX0NPTVBVVEVEX0tFWS5jb25jYXQoSlNPTi5zdHJpbmdpZnkoa2V5c0FuZE9wdGlvbnNbMF0pKTtcblx0XHRcdGlmICghY29tcHV0ZWRDYWNoZS5oYXMoY2FjaGVkS2V5KSkge1xuXHRcdFx0XHRjb21wdXRlZENhY2hlLnNldChjYWNoZWRLZXksIGNvbXB1dGVkKF9zdGF0ZSwga2V5c0FuZE9wdGlvbnMgYXMgQ3JlYXRlQ29tcHV0ZWRPcHRpb25zPG9iamVjdD4pKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBjb21wdXRlZENhY2hlLmdldChjYWNoZWRLZXkpITtcblx0XHR9XG5cdFx0Y29uc3QgW2tleXMsIG9wdGlvbnNdID0gcGFyc2VTdG9yZU9wdGlvbnMoa2V5c0FuZE9wdGlvbnMpO1xuXHRcdGNvbnN0IGpvaW5lZEtleXMgPSBrZXlzLmpvaW4oJy0nKTtcblx0XHRjb25zdCBjYWNoZWRLZXlzID0gam9pbmVkS2V5cy5jb25jYXQob3B0aW9ucyA/IEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpIDogJycpO1xuXG5cdFx0aWYgKCFjb21wdXRlZENhY2hlLmhhcyhjYWNoZWRLZXlzKSkge1xuXHRcdFx0Y29tcHV0ZWRDYWNoZS5zZXQoXG5cdFx0XHRcdGNhY2hlZEtleXMsXG5cdFx0XHRcdGNvbXB1dGVkKCgpID0+IGtleXMucmVkdWNlKCh2YWx1ZSwga2V5KSA9PiAodmFsdWUgYXMgTmd0QW55UmVjb3JkKVtrZXldLCBfc3RhdGUoKSksIG9wdGlvbnMpLFxuXHRcdFx0KTtcblx0XHR9XG5cdFx0cmV0dXJuIGNvbXB1dGVkQ2FjaGUuZ2V0KGNhY2hlZEtleXMpITtcblx0fTtcblxuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFN0YXRlIGV4dGVuZHMgb2JqZWN0Pihcblx0aW5pdGlhbFN0YXRlOlxuXHRcdHwgUGFydGlhbDxTdGF0ZT5cblx0XHR8ICgoc3RvcmVBcGk6IFBpY2s8Tmd0U2lnbmFsU3RvcmU8U3RhdGU+LCAnZ2V0JyB8ICdzZXQnIHwgJ3BhdGNoJyB8ICdzZWxlY3QnPikgPT4gUGFydGlhbDxTdGF0ZT4pID0ge30sXG5cdG9wdGlvbnM/OiBDcmVhdGVTaWduYWxPcHRpb25zPFN0YXRlPixcbik6IE5ndFNpZ25hbFN0b3JlPFN0YXRlPiB7XG5cdGxldCBzb3VyY2U6IFdyaXRhYmxlU2lnbmFsPFN0YXRlPjtcblx0bGV0IHNldDogTmd0U2lnbmFsU3RvcmU8U3RhdGU+WydzZXQnXTtcblx0bGV0IGdldDogTmd0U2lnbmFsU3RvcmU8U3RhdGU+WydnZXQnXTtcblx0bGV0IHBhdGNoOiBOZ3RTaWduYWxTdG9yZTxTdGF0ZT5bJ3BhdGNoJ107XG5cdGxldCBzZWxlY3Q6IE5ndFNpZ25hbFN0b3JlPFN0YXRlPlsnc2VsZWN0J107XG5cdGxldCBzdGF0ZTogU2lnbmFsPFN0YXRlPjtcblxuXHRjb25zdCBjb21wdXRlZENhY2hlID0gbmV3IE1hcCgpO1xuXG5cdGlmICh0eXBlb2YgaW5pdGlhbFN0YXRlID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0c291cmNlID0gc2lnbmFsKHt9IGFzIFN0YXRlLCBvcHRpb25zKTtcblx0XHRzdGF0ZSA9IHNvdXJjZS5hc1JlYWRvbmx5KCk7XG5cdFx0Z2V0ID0gZ2V0dGVyKHNvdXJjZSk7XG5cdFx0c2V0ID0gc2V0dGVyKHNvdXJjZSk7XG5cdFx0cGF0Y2ggPSBwYXRjaGVyKHNvdXJjZSk7XG5cdFx0c2VsZWN0ID0gc2VsZWN0b3Ioc3RhdGUsIGNvbXB1dGVkQ2FjaGUpO1xuXHRcdHNvdXJjZS5zZXQoaW5pdGlhbFN0YXRlKHsgc2V0LCBnZXQsIHBhdGNoLCBzZWxlY3QgfSkgYXMgU3RhdGUpO1xuXHR9IGVsc2Uge1xuXHRcdHNvdXJjZSA9IHNpZ25hbChpbml0aWFsU3RhdGUgYXMgU3RhdGUsIG9wdGlvbnMpO1xuXHRcdHN0YXRlID0gc291cmNlLmFzUmVhZG9ubHkoKTtcblx0XHRnZXQgPSBnZXR0ZXIoc291cmNlKTtcblx0XHRzZXQgPSBzZXR0ZXIoc291cmNlKTtcblx0XHRwYXRjaCA9IHBhdGNoZXIoc291cmNlKTtcblx0XHRzZWxlY3QgPSBzZWxlY3RvcihzdGF0ZSwgY29tcHV0ZWRDYWNoZSk7XG5cdH1cblxuXHRjb25zdCBzdG9yZSA9IHsgc2VsZWN0LCBnZXQsIHNldCwgcGF0Y2gsIHN0YXRlIH07XG5cblx0Ly8gTk9URTogaW50ZXJuYWwgX3NuYXBzaG90IHRvIGRlYnVnIGN1cnJlbnQgc3RhdGVcblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KHN0b3JlLCAnX3NuYXBzaG90Jywge1xuXHRcdGdldDogc3RhdGUsXG5cdFx0Y29uZmlndXJhYmxlOiBmYWxzZSxcblx0XHRlbnVtZXJhYmxlOiBmYWxzZSxcblx0fSk7XG5cblx0cmV0dXJuIHN0b3JlO1xufVxuXG5mdW5jdGlvbiBwYXJzZVN0b3JlT3B0aW9ucyhrZXlzQW5kT3B0aW9uczogYW55W10pOiBbc3RyaW5nW10sIENyZWF0ZUNvbXB1dGVkT3B0aW9uczxhbnk+P10ge1xuXHRpZiAodHlwZW9mIGtleXNBbmRPcHRpb25zLmF0KC0xKSA9PT0gJ29iamVjdCcpIHtcblx0XHRyZXR1cm4gW2tleXNBbmRPcHRpb25zLnNsaWNlKDAsIC0xKSwga2V5c0FuZE9wdGlvbnMuYXQoLTEpXTtcblx0fVxuXG5cdHJldHVybiBba2V5c0FuZE9wdGlvbnNdO1xufVxuIl19
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdXRpbHMvc2lnbmFsLXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsR0FLVCxNQUFNLGVBQWUsQ0FBQztBQUd2QixNQUFNLGtCQUFrQixHQUFHLCtCQUErQixDQUFDO0FBdUQzRCxNQUFNLE1BQU0sR0FDWCxDQUF1QixPQUE4QixFQUFFLEVBQUUsQ0FDekQsQ0FBQyxLQUEyQyxFQUFFLEVBQUU7SUFDL0MsTUFBTSxPQUFPLEdBQUcsQ0FBQyxRQUFlLEVBQUUsRUFBRTtRQUNuQyxNQUFNLE9BQU8sR0FBRyxPQUFPLEtBQUssS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3RFLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDcEMsTUFBTSxRQUFRLEdBQUcsR0FBa0IsQ0FBQztZQUNwQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxTQUFTLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksRUFBRTtnQkFDbEUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUN2QztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUM7SUFDaEIsQ0FBQyxDQUFDO0lBQ0YsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNkLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLFFBQVEsRUFBRSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMs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QUFDLENBQUM7UUFDaEQsS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM1QixHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JCLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckIsS0FBSyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QixNQUFNLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQztLQUN4QztJQUVELE1BQU0sS0FBSyxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBRWpELGtEQUFrRDtJQUNsRCxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUU7UUFDekMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQztRQUM5QixZQUFZLEVBQUUsS0FBSztRQUNuQixVQUFVLEVBQUUsS0FBSztLQUNqQixDQUFDLENBQUM7SUFFSCxPQUFPLEtBQUssQ0FBQztBQUNkLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLGNBQXFCO0lBQy9DLElBQUksT0FBTyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxFQUFFO1FBQzlDLE9BQU8sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQzVEO0lBRUQsT0FBTyxDQUFDLGNBQWMsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUMvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Y29tcHV0ZWQsXG5cdHNpZ25hbCxcblx0dW50cmFja2VkLFxuXHR0eXBlIENyZWF0ZUNvbXB1dGVkT3B0aW9ucyxcblx0dHlwZSBDcmVhdGVTaWduYWxPcHRpb25zLFxuXHR0eXBlIFNpZ25hbCxcblx0dHlwZSBXcml0YWJsZVNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IE5ndEFueVJlY29yZCB9IGZyb20gJy4uL3R5cGVzJztcblxuY29uc3QgU1RPUkVfQ09NUFVURURfS0VZID0gJ19fbmd0X3NpZ25hbF9zdG9yZV9jb21wdXRlZF9fJztcblxuZXhwb3J0IHR5cGUgTmd0U2lnbmFsU3RvcmU8U3RhdGUgZXh0ZW5kcyBvYmplY3Q+ID0ge1xuXHRzZWxlY3Q8XG5cdFx0S2V5MSBleHRlbmRzIGtleW9mIFN0YXRlLFxuXHRcdEtleTIgZXh0ZW5kcyBrZXlvZiBTdGF0ZVtLZXkxXSxcblx0XHRLZXkzIGV4dGVuZHMga2V5b2YgU3RhdGVbS2V5MV1bS2V5Ml0sXG5cdFx0S2V5NCBleHRlbmRzIGtleW9mIFN0YXRlW0tleTFdW0tleTJdW0tleTNdLFxuXHQ+KFxuXHRcdGtleTE6IEtleTEsXG5cdFx0a2V5MjogS2V5Mixcblx0XHRrZXkzOiBLZXkzLFxuXHRcdGtleTQ6IEtleTQsXG5cdFx0b3B0aW9ucz86IENyZWF0ZUNvbXB1dGVkT3B0aW9uczxTdGF0ZVtLZXkxXVtLZXkyXVtLZXkzXVtLZXk0XT4sXG5cdCk6IFNpZ25hbDxTdGF0ZVtLZXkxXVtLZXkyXVtLZXkzXVtLZXk0XT47XG5cdHNlbGVjdDxLZXkxIGV4dGVuZHMga2V5b2YgU3RhdGUsIEtleTIgZXh0ZW5kcyBrZXlvZiBTdGF0ZVtLZXkxXSwgS2V5MyBleHRlbmRzIGtleW9mIFN0YXRlW0tleTFdW0tleTJdPihcblx0XHRrZXkxOiBLZXkxLFxuXHRcdGtleTI6IEtleTIsXG5cdFx0a2V5MzogS2V5Myxcblx0XHRvcHRpb25zPzogQ3JlYXRlQ29tcHV0ZWRPcHRpb25zPFN0YXRlW0tleTFdW0tleTJdW0tleTNdPixcblx0KTogU2lnbmFsPFN0YXRlW0tleTFdW0tleTJdW0tleTNdPjtcblx0c2VsZWN0PEtleTEgZXh0ZW5kcyBrZXlvZiBTdGF0ZSwgS2V5MiBleHRlbmRzIGtleW9mIFN0YXRlW0tleTFdPihcblx0XHRrZXkxOiBLZXkxLFxuXHRcdGtleTI6IEtleTIsXG5cdFx0b3B0aW9ucz86IENyZWF0ZUNvbXB1dGVkT3B0aW9uczxTdGF0ZVtLZXkxXVtLZXkyXT4sXG5cdCk6IFNpZ25hbDxTdGF0ZVtLZXkxXVtLZXkyXT47XG5cdHNlbGVjdDxLZXkgZXh0ZW5kcyBrZXlvZiBTdGF0ZT4oa2V5OiBLZXksIG9wdGlvbnM/OiBDcmVhdGVDb21wdXRlZE9wdGlvbnM8U3RhdGVbS2V5XT4pOiBTaWduYWw8U3RhdGVbS2V5XT47XG5cdHNlbGVjdChvcHRpb25zPzogQ3JlYXRlQ29tcHV0ZWRPcHRpb25zPFN0YXRlPik6IFNpZ25hbDxTdGF0ZT47XG5cblx0Z2V0PFxuXHRcdEtleTEgZXh0ZW5kcyBrZXlvZiBTdGF0ZSxcblx0XHRLZXkyIGV4dGVuZHMga2V5b2YgU3RhdGVbS2V5MV0sXG5cdFx0S2V5MyBleHRlbmRzIGtleW9mIFN0YXRlW0tleTFdW0tleTJdLFxuXHRcdEtleTQgZXh0ZW5kcyBrZXlvZiBTdGF0ZVtLZXkxXVtLZXkyXVtLZXkzXSxcblx0Pihcblx0XHRrZXkxOiBLZXkxLFxuXHRcdGtleTI6IEtleTIsXG5cdFx0a2V5MzogS2V5Myxcblx0XHRrZXk0OiBLZXk0LFxuXHQpOiBTdGF0ZVtLZXkxXVtLZXkyXVtLZXkzXVtLZXk0XTtcblx0Z2V0PEtleTEgZXh0ZW5kcyBrZXlvZiBTdGF0ZSwgS2V5MiBleHRlbmRzIGtleW9mIFN0YXRlW0tleTFdLCBLZXkzIGV4dGVuZHMga2V5b2YgU3RhdGVbS2V5MV1bS2V5Ml0+KFxuXHRcdGtleTE6IEtleTEsXG5cdFx0a2V5MjogS2V5Mixcblx0XHRrZXkzOiBLZXkzLFxuXHQpOiBTdGF0ZVtLZXkxXVtLZXkyXVtLZXkzXTtcblx0Z2V0PEtleTEgZXh0ZW5kcyBrZXlvZiBTdGF0ZSwgS2V5MiBleHRlbmRzIGtleW9mIFN0YXRlW0tleTFdPihrZXkxOiBLZXkxLCBrZXkyOiBLZXkyKTogU3RhdGVbS2V5MV1bS2V5Ml07XG5cdGdldDxLZXkgZXh0ZW5kcyBrZXlvZiBTdGF0ZT4oa2V5OiBLZXkpOiBTdGF0ZVtLZXldO1xuXHRnZXQoKTogU3RhdGU7XG5cblx0c2V0KHN0YXRlOiBQYXJ0aWFsPFN0YXRlPiB8ICgocHJldmlvdXM6IFN0YXRlKSA9PiBQYXJ0aWFsPFN0YXRlPikpOiB2b2lkO1xuXHRwYXRjaChzdGF0ZTogUGFydGlhbDxTdGF0ZT4pOiB2b2lkO1xuXG5cdHN0YXRlOiBTaWduYWw8U3RhdGU+O1xufTtcblxuY29uc3Qgc2V0dGVyID1cblx0PFN0YXRlIGV4dGVuZHMgb2JqZWN0Pihfc291cmNlOiBXcml0YWJsZVNpZ25hbDxTdGF0ZT4pID0+XG5cdChzdGF0ZTogU3RhdGUgfCAoKHByZXZpb3VzOiBTdGF0ZSkgPT4gU3RhdGUpKSA9PiB7XG5cdFx0Y29uc3QgdXBkYXRlciA9IChwcmV2aW91czogU3RhdGUpID0+IHtcblx0XHRcdGNvbnN0IHBhcnRpYWwgPSB0eXBlb2Ygc3RhdGUgPT09ICdmdW5jdGlvbicgPyBzdGF0ZShwcmV2aW91cykgOiBzdGF0ZTtcblx0XHRcdE9iamVjdC5rZXlzKHBhcnRpYWwpLmZvckVhY2goKGtleSkgPT4ge1xuXHRcdFx0XHRjb25zdCB0eXBlZEtleSA9IGtleSBhcyBrZXlvZiBTdGF0ZTtcblx0XHRcdFx0aWYgKHBhcnRpYWxbdHlwZWRLZXldID09PSB1bmRlZmluZWQgJiYgcHJldmlvdXNbdHlwZWRLZXldICE9IG51bGwpIHtcblx0XHRcdFx0XHRwYXJ0aWFsW3R5cGVkS2V5XSA9IHByZXZpb3VzW3R5cGVkS2V5XTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHRyZXR1cm4gcGFydGlhbDtcblx0XHR9O1xuXHRcdHVudHJhY2tlZCgoKSA9PiB7XG5cdFx0XHRfc291cmNlLnVwZGF0ZSgocHJldmlvdXMpID0+ICh7IC4uLnByZXZpb3VzLCAuLi51cGRhdGVyKHByZXZpb3VzKSB9KSk7XG5cdFx0fSk7XG5cdH07XG5cbmNvbnN0IHBhdGNoZXIgPVxuXHQ8U3RhdGUgZXh0ZW5kcyBvYmplY3Q+KF9zb3VyY2U6IFdyaXRhYmxlU2lnbmFsPFN0YXRlPikgPT5cblx0KHN0YXRlOiBTdGF0ZSkgPT4ge1xuXHRcdGNvbnN0IHVwZGF0ZXIgPSAocHJldmlvdXM6IFN0YXRlKSA9PiB7XG5cdFx0XHRPYmplY3Qua2V5cyhzdGF0ZSkuZm9yRWFjaCgoa2V5KSA9PiB7XG5cdFx0XHRcdGNvbnN0IHR5cGVkS2V5ID0ga2V5IGFzIGtleW9mIFN0YXRlO1xuXHRcdFx0XHRpZiAoc3RhdGVbdHlwZWRLZXldID09PSB1bmRlZmluZWQgJiYgcHJldmlvdXNbdHlwZWRLZXldICE9IG51bGwpIHtcblx0XHRcdFx0XHRzdGF0ZVt0eXBlZEtleV0gPSBwcmV2aW91c1t0eXBlZEtleV07XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIHN0YXRlO1xuXHRcdH07XG5cdFx0dW50cmFja2VkKCgpID0+IHtcblx0XHRcdF9zb3VyY2UudXBkYXRlKChwcmV2aW91cykgPT4gKHsgLi4udXBkYXRlcihwcmV2aW91cyksIC4uLnByZXZpb3VzIH0pKTtcblx0XHR9KTtcblx0fTtcblxuY29uc3QgZ2V0dGVyID1cblx0PFN0YXRlIGV4dGVuZHMgb2JqZWN0Pihfc291cmNlOiBXcml0YWJsZVNpZ25hbDxTdGF0ZT4pID0+XG5cdCguLi5rZXlzOiBzdHJpbmdbXSkgPT4ge1xuXHRcdGNvbnN0IHJvb3QgPSB1bnRyYWNrZWQoX3NvdXJjZSk7XG5cdFx0aWYgKGtleXMubGVuZ3RoID09PSAwKSByZXR1cm4gcm9vdDtcblx0XHRyZXR1cm4ga2V5cy5yZWR1Y2UoKHZhbHVlLCBrZXkpID0+ICh2YWx1ZSBhcyBOZ3RBbnlSZWNvcmQpW2tleV0sIHJvb3QpO1xuXHR9O1xuXG5jb25zdCBzZWxlY3RvciA9XG5cdDxTdGF0ZSBleHRlbmRzIG9iamVjdD4oX3N0YXRlOiBTaWduYWw8U3RhdGU+LCBjb21wdXRlZENhY2hlOiBNYXA8c3RyaW5nLCBTaWduYWw8YW55Pj4pID0+XG5cdCguLi5rZXlzQW5kT3B0aW9uczogYW55W10pID0+IHtcblx0XHRpZiAoa2V5c0FuZE9wdGlvbnMubGVuZ3RoID09PSAwKSByZXR1cm4gX3N0YXRlO1xuXHRcdGlmIChrZXlzQW5kT3B0aW9ucy5sZW5ndGggPT09IDEgJiYgdHlwZW9mIGtleXNBbmRPcHRpb25zWzBdID09PSAnb2JqZWN0Jykge1xuXHRcdFx0Y29uc3QgY2FjaGVkS2V5ID0gU1RPUkVfQ09NUFVURURfS0VZLmNvbmNhdChKU09OLnN0cmluZ2lmeShrZXlzQW5kT3B0aW9uc1swXSkpO1xuXHRcdFx0aWYgKCFjb21wdXRlZENhY2hlLmhhcyhjYWNoZWRLZXkpKSB7XG5cdFx0XHRcdGNvbXB1dGVkQ2FjaGUuc2V0KGNhY2hlZEtleSwgY29tcHV0ZWQoX3N0YXRlLCBrZXlzQW5kT3B0aW9ucyBhcyBDcmVhdGVDb21wdXRlZE9wdGlvbnM8b2JqZWN0PikpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIGNvbXB1dGVkQ2FjaGUuZ2V0KGNhY2hlZEtleSkhO1xuXHRcdH1cblx0XHRjb25zdCBba2V5cywgb3B0aW9uc10gPSBwYXJzZVN0b3JlT3B0aW9ucyhrZXlzQW5kT3B0aW9ucyk7XG5cdFx0Y29uc3Qgam9pbmVkS2V5cyA9IGtleXMuam9pbignLScpO1xuXHRcdGNvbnN0IGNhY2hlZEtleXMgPSBqb2luZWRLZXlzLmNvbmNhdChKU09OLnN0cmluZ2lmeShvcHRpb25zKSk7XG5cblx0XHRpZiAoIWNvbXB1dGVkQ2FjaGUuaGFzKGNhY2hlZEtleXMpKSB7XG5cdFx0XHRjb21wdXRlZENhY2hlLnNldChcblx0XHRcdFx0Y2FjaGVkS2V5cyxcblx0XHRcdFx0Y29tcHV0ZWQoKCkgPT4ga2V5cy5yZWR1Y2UoKHZhbHVlLCBrZXkpID0+ICh2YWx1ZSBhcyBOZ3RBbnlSZWNvcmQpW2tleV0sIF9zdGF0ZSgpKSwgb3B0aW9ucyksXG5cdFx0XHQpO1xuXHRcdH1cblx0XHRyZXR1cm4gY29tcHV0ZWRDYWNoZS5nZXQoY2FjaGVkS2V5cykhO1xuXHR9O1xuXG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8U3RhdGUgZXh0ZW5kcyBvYmplY3Q+KFxuXHRpbml0aWFsU3RhdGU6XG5cdFx0fCBQYXJ0aWFsPFN0YXRlPlxuXHRcdHwgKChzdG9yZUFwaTogUGljazxOZ3RTaWduYWxTdG9yZTxTdGF0ZT4sICdnZXQnIHwgJ3NldCcgfCAncGF0Y2gnIHwgJ3NlbGVjdCc+KSA9PiBQYXJ0aWFsPFN0YXRlPikgPSB7fSxcblx0b3B0aW9ucz86IENyZWF0ZVNpZ25hbE9wdGlvbnM8U3RhdGU+LFxuKTogTmd0U2lnbmFsU3RvcmU8U3RhdGU+IHtcblx0bGV0IHNvdXJjZTogV3JpdGFibGVTaWduYWw8U3RhdGU+O1xuXHRsZXQgc2V0OiBOZ3RTaWduYWxTdG9yZTxTdGF0ZT5bJ3NldCddO1xuXHRsZXQgZ2V0OiBOZ3RTaWduYWxTdG9yZTxTdGF0ZT5bJ2dldCddO1xuXHRsZXQgcGF0Y2g6IE5ndFNpZ25hbFN0b3JlPFN0YXRlPlsncGF0Y2gnXTtcblx0bGV0IHNlbGVjdDogTmd0U2lnbmFsU3RvcmU8U3RhdGU+WydzZWxlY3QnXTtcblx0bGV0IHN0YXRlOiBTaWduYWw8U3RhdGU+O1xuXG5cdGNvbnN0IGNvbXB1dGVkQ2FjaGUgPSBuZXcgTWFwKCk7XG5cblx0aWYgKCFvcHRpb25zKSB7XG5cdFx0b3B0aW9ucyA9IHsgZXF1YWw6IE9iamVjdC5pcyB9O1xuXHR9XG5cblx0aWYgKHR5cGVvZiBpbml0aWFsU3RhdGUgPT09ICdmdW5jdGlvbicpIHtcblx0XHRzb3VyY2UgPSBzaWduYWwoe30gYXMgU3RhdGUsIG9wdGlvbnMpO1xuXHRcdHN0YXRlID0gc291cmNlLmFzUmVhZG9ubHkoKTtcblx0XHRnZXQgPSBnZXR0ZXIoc291cmNlKTtcblx0XHRzZXQgPSBzZXR0ZXIoc291cmNlKTtcblx0XHRwYXRjaCA9IHBhdGNoZXIoc291cmNlKTtcblx0XHRzZWxlY3QgPSBzZWxlY3RvcihzdGF0ZSwgY29tcHV0ZWRDYWNoZSk7XG5cdFx0c291cmNlLnNldChpbml0aWFsU3RhdGUoeyBzZXQsIGdldCwgcGF0Y2gsIHNlbGVjdCB9KSBhcyBTdGF0ZSk7XG5cdH0gZWxzZSB7XG5cdFx0c291cmNlID0gc2lnbmFsKGluaXRpYWxTdGF0ZSBhcyBTdGF0ZSwgb3B0aW9ucyk7XG5cdFx0c3RhdGUgPSBzb3VyY2UuYXNSZWFkb25seSgpO1xuXHRcdGdldCA9IGdldHRlcihzb3VyY2UpO1xuXHRcdHNldCA9IHNldHRlcihzb3VyY2UpO1xuXHRcdHBhdGNoID0gcGF0Y2hlcihzb3VyY2UpO1xuXHRcdHNlbGVjdCA9IHNlbGVjdG9yKHN0YXRlLCBjb21wdXRlZENhY2hlKTtcblx0fVxuXG5cdGNvbnN0IHN0b3JlID0geyBzZWxlY3QsIGdldCwgc2V0LCBwYXRjaCwgc3RhdGUgfTtcblxuXHQvLyBOT1RFOiBpbnRlcm5hbCBfc25hcHNob3QgdG8gZGVidWcgY3VycmVudCBzdGF0ZVxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoc3RvcmUsICdfc25hcHNob3QnLCB7XG5cdFx0Z2V0OiB1bnRyYWNrZWQuYmluZCh7fSwgc3RhdGUpLFxuXHRcdGNvbmZpZ3VyYWJsZTogZmFsc2UsXG5cdFx0ZW51bWVyYWJsZTogZmFsc2UsXG5cdH0pO1xuXG5cdHJldHVybiBzdG9yZTtcbn1cblxuZnVuY3Rpb24gcGFyc2VTdG9yZU9wdGlvbnMoa2V5c0FuZE9wdGlvbnM6IGFueVtdKTogW3N0cmluZ1tdLCBDcmVhdGVDb21wdXRlZE9wdGlvbnM8YW55Pj9dIHtcblx0aWYgKHR5cGVvZiBrZXlzQW5kT3B0aW9ucy5hdCgtMSkgPT09ICdvYmplY3QnKSB7XG5cdFx0cmV0dXJuIFtrZXlzQW5kT3B0aW9ucy5zbGljZSgwLCAtMSksIGtleXNBbmRPcHRpb25zLmF0KC0xKV07XG5cdH1cblxuXHRyZXR1cm4gW2tleXNBbmRPcHRpb25zLCB7IGVxdWFsOiBPYmplY3QuaXMgfV07XG59XG4iXX0=
@@ -30,4 +30,4 @@ export function updateCamera(camera, size) {
30
30
  camera.updateMatrixWorld();
31
31
  }
32
32
  }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdXRpbHMvdXBkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUIsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEtBQWM7SUFDOUMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksYUFBYSxJQUFLLEtBQXNCLEVBQUU7UUFDL0UsS0FBc0IsQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDOUMsSUFBSSxvQkFBb0IsSUFBSyxLQUFzQjtZQUFHLEtBQXNCLENBQUMsb0JBQW9CLENBQUMsR0FBRyxJQUFJLENBQUM7S0FDMUc7QUFDRixDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxLQUFjO0lBQ3pDLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFBRSxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFN0MsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3JCLElBQUksRUFBRSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7WUFBRSxLQUFLLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUNoRyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztLQUMxQjtJQUVELGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pCLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLE1BQXVCLEVBQUUsSUFBYTtJQUNsRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNuQixJQUFJLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNsQyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDOUIsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUM5QixNQUFNLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQzdCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNqQzs7WUFBTSxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUVoRCxNQUFNLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUNoQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztLQUMzQjtBQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE5ndENhbWVyYU1hbnVhbCwgTmd0U2l6ZSB9IGZyb20gJy4uL3N0b3JlJztcbmltcG9ydCB0eXBlIHsgTmd0QW55UmVjb3JkIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgaXMgfSBmcm9tICcuL2lzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrTmVlZHNVcGRhdGUodmFsdWU6IHVua25vd24pIHtcblx0aWYgKHZhbHVlICE9PSBudWxsICYmIGlzLm9iaih2YWx1ZSkgJiYgJ25lZWRzVXBkYXRlJyBpbiAodmFsdWUgYXMgTmd0QW55UmVjb3JkKSkge1xuXHRcdCh2YWx1ZSBhcyBOZ3RBbnlSZWNvcmQpWyduZWVkc1VwZGF0ZSddID0gdHJ1ZTtcblx0XHRpZiAoJ3VuaWZvcm1zTmVlZFVwZGF0ZScgaW4gKHZhbHVlIGFzIE5ndEFueVJlY29yZCkpICh2YWx1ZSBhcyBOZ3RBbnlSZWNvcmQpWyd1bmlmb3Jtc05lZWRVcGRhdGUnXSA9IHRydWU7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrVXBkYXRlKHZhbHVlOiB1bmtub3duKSB7XG5cdGlmIChpcy5vYmplY3QzRCh2YWx1ZSkpIHZhbHVlLnVwZGF0ZU1hdHJpeCgpO1xuXG5cdGlmIChpcy5jYW1lcmEodmFsdWUpKSB7XG5cdFx0aWYgKGlzLnBlcnNwZWN0aXZlQ2FtZXJhKHZhbHVlKSB8fCBpcy5vcnRob2dyYXBoaWNDYW1lcmEodmFsdWUpKSB2YWx1ZS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCk7XG5cdFx0dmFsdWUudXBkYXRlTWF0cml4V29ybGQoKTtcblx0fVxuXG5cdGNoZWNrTmVlZHNVcGRhdGUodmFsdWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlQ2FtZXJhKGNhbWVyYTogTmd0Q2FtZXJhTWFudWFsLCBzaXplOiBOZ3RTaXplKSB7XG5cdGlmICghY2FtZXJhLm1hbnVhbCkge1xuXHRcdGlmIChpcy5vcnRob2dyYXBoaWNDYW1lcmEoY2FtZXJhKSkge1xuXHRcdFx0Y2FtZXJhLmxlZnQgPSBzaXplLndpZHRoIC8gLTI7XG5cdFx0XHRjYW1lcmEucmlnaHQgPSBzaXplLndpZHRoIC8gMjtcblx0XHRcdGNhbWVyYS50b3AgPSBzaXplLmhlaWdodCAvIDI7XG5cdFx0XHRjYW1lcmEuYm90dG9tID0gc2l6ZS5oZWlnaHQgLyAtMjtcblx0XHR9IGVsc2UgY2FtZXJhLmFzcGVjdCA9IHNpemUud2lkdGggLyBzaXplLmhlaWdodDtcblxuXHRcdGNhbWVyYS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCk7XG5cdFx0Y2FtZXJhLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XG5cdH1cbn1cbiJdfQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdXRpbHMvdXBkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUIsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEtBQWM7SUFDOUMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksYUFBYSxJQUFJLEtBQUssRUFBRTtRQUM5RCxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQzVCLElBQUksb0JBQW9CLElBQUksS0FBSztZQUFFLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLElBQUksQ0FBQztLQUN0RTtBQUNGLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLEtBQWM7SUFDekMsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUFFLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUU3QyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDckIsSUFBSSxFQUFFLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQztZQUFFLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ2hHLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0tBQzFCO0lBRUQsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDekIsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBdUIsRUFBRSxJQUFhO0lBQ2xFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ25CLElBQUksRUFBRSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2xDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM5QixNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLE1BQU0sQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDN0IsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ2pDOztZQUFNLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBRWhELE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0tBQzNCO0FBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTmd0Q2FtZXJhTWFudWFsLCBOZ3RTaXplIH0gZnJvbSAnLi4vc3RvcmUnO1xuaW1wb3J0IHsgaXMgfSBmcm9tICcuL2lzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrTmVlZHNVcGRhdGUodmFsdWU6IHVua25vd24pIHtcblx0aWYgKHZhbHVlICE9PSBudWxsICYmIGlzLm9iaih2YWx1ZSkgJiYgJ25lZWRzVXBkYXRlJyBpbiB2YWx1ZSkge1xuXHRcdHZhbHVlWyduZWVkc1VwZGF0ZSddID0gdHJ1ZTtcblx0XHRpZiAoJ3VuaWZvcm1zTmVlZFVwZGF0ZScgaW4gdmFsdWUpIHZhbHVlWyd1bmlmb3Jtc05lZWRVcGRhdGUnXSA9IHRydWU7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrVXBkYXRlKHZhbHVlOiB1bmtub3duKSB7XG5cdGlmIChpcy5vYmplY3QzRCh2YWx1ZSkpIHZhbHVlLnVwZGF0ZU1hdHJpeCgpO1xuXG5cdGlmIChpcy5jYW1lcmEodmFsdWUpKSB7XG5cdFx0aWYgKGlzLnBlcnNwZWN0aXZlQ2FtZXJhKHZhbHVlKSB8fCBpcy5vcnRob2dyYXBoaWNDYW1lcmEodmFsdWUpKSB2YWx1ZS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCk7XG5cdFx0dmFsdWUudXBkYXRlTWF0cml4V29ybGQoKTtcblx0fVxuXG5cdGNoZWNrTmVlZHNVcGRhdGUodmFsdWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlQ2FtZXJhKGNhbWVyYTogTmd0Q2FtZXJhTWFudWFsLCBzaXplOiBOZ3RTaXplKSB7XG5cdGlmICghY2FtZXJhLm1hbnVhbCkge1xuXHRcdGlmIChpcy5vcnRob2dyYXBoaWNDYW1lcmEoY2FtZXJhKSkge1xuXHRcdFx0Y2FtZXJhLmxlZnQgPSBzaXplLndpZHRoIC8gLTI7XG5cdFx0XHRjYW1lcmEucmlnaHQgPSBzaXplLndpZHRoIC8gMjtcblx0XHRcdGNhbWVyYS50b3AgPSBzaXplLmhlaWdodCAvIDI7XG5cdFx0XHRjYW1lcmEuYm90dG9tID0gc2l6ZS5oZWlnaHQgLyAtMjtcblx0XHR9IGVsc2UgY2FtZXJhLmFzcGVjdCA9IHNpemUud2lkdGggLyBzaXplLmhlaWdodDtcblxuXHRcdGNhbWVyYS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCk7XG5cdFx0Y2FtZXJhLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XG5cdH1cbn1cbiJdfQ==