@ngrx/signals 18.0.0 → 18.1.0
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.
- package/esm2022/rxjs-interop/src/rx-method.mjs +28 -12
- package/esm2022/src/deep-computed.mjs +6 -0
- package/esm2022/src/index.mjs +2 -1
- package/esm2022/src/signal-store.mjs +5 -8
- package/esm2022/src/state-source.mjs +4 -8
- package/fesm2022/ngrx-signals-rxjs-interop.mjs +28 -12
- package/fesm2022/ngrx-signals-rxjs-interop.mjs.map +1 -1
- package/fesm2022/ngrx-signals.mjs +37 -40
- package/fesm2022/ngrx-signals.mjs.map +1 -1
- package/migrations/18_0_0-rc_3-protected-state/index.js +1 -1
- package/migrations/18_0_0-rc_3-protected-state/index.js.map +1 -1
- package/migrations/18_0_0-rc_3-writablestatesource/index.js +2 -3
- package/migrations/18_0_0-rc_3-writablestatesource/index.js.map +1 -1
- package/package.json +8 -7
- package/rxjs-interop/src/rx-method.d.ts +3 -1
- package/schematics/ng-add/index.js +1 -1
- package/schematics/ng-add/index.js.map +1 -1
- package/schematics-core/utility/ast-utils.js +14 -15
- package/schematics-core/utility/ast-utils.js.map +1 -1
- package/schematics-core/utility/change.js +5 -5
- package/schematics-core/utility/change.js.map +1 -1
- package/schematics-core/utility/config.js +2 -3
- package/schematics-core/utility/config.js.map +1 -1
- package/schematics-core/utility/find-component.js +3 -4
- package/schematics-core/utility/find-component.js.map +1 -1
- package/schematics-core/utility/find-module.js +3 -4
- package/schematics-core/utility/find-module.js.map +1 -1
- package/schematics-core/utility/json-utilts.js +1 -2
- package/schematics-core/utility/json-utilts.js.map +1 -1
- package/schematics-core/utility/libs-version.js +1 -1
- package/schematics-core/utility/libs-version.js.map +1 -1
- package/schematics-core/utility/ngrx-utils.js +6 -7
- package/schematics-core/utility/ngrx-utils.js.map +1 -1
- package/schematics-core/utility/package.js +1 -2
- package/schematics-core/utility/package.js.map +1 -1
- package/schematics-core/utility/parse-name.js +1 -2
- package/schematics-core/utility/parse-name.js.map +1 -1
- package/schematics-core/utility/project.js +4 -5
- package/schematics-core/utility/project.js.map +1 -1
- package/schematics-core/utility/strings.js +9 -10
- package/schematics-core/utility/strings.js.map +1 -1
- package/schematics-core/utility/update.js +1 -2
- package/schematics-core/utility/update.js.map +1 -1
- package/schematics-core/utility/visitors.js +7 -8
- package/schematics-core/utility/visitors.js.map +1 -1
- package/src/deep-computed.d.ts +2 -0
- package/src/index.d.ts +1 -0
|
@@ -4,30 +4,46 @@ export function rxMethod(generator, config) {
|
|
|
4
4
|
if (!config?.injector) {
|
|
5
5
|
assertInInjectionContext(rxMethod);
|
|
6
6
|
}
|
|
7
|
-
const
|
|
8
|
-
const destroyRef = injector.get(DestroyRef);
|
|
7
|
+
const sourceInjector = config?.injector ?? inject(Injector);
|
|
9
8
|
const source$ = new Subject();
|
|
10
9
|
const sourceSub = generator(source$).subscribe();
|
|
11
|
-
|
|
12
|
-
const rxMethodFn = (input) => {
|
|
10
|
+
sourceInjector.get(DestroyRef).onDestroy(() => sourceSub.unsubscribe());
|
|
11
|
+
const rxMethodFn = (input, config) => {
|
|
12
|
+
if (isStatic(input)) {
|
|
13
|
+
source$.next(input);
|
|
14
|
+
return { unsubscribe: noop };
|
|
15
|
+
}
|
|
16
|
+
const instanceInjector = config?.injector ?? getCallerInjector() ?? sourceInjector;
|
|
13
17
|
if (isSignal(input)) {
|
|
14
18
|
const watcher = effect(() => {
|
|
15
19
|
const value = input();
|
|
16
20
|
untracked(() => source$.next(value));
|
|
17
|
-
}, { injector });
|
|
21
|
+
}, { injector: instanceInjector });
|
|
18
22
|
const instanceSub = { unsubscribe: () => watcher.destroy() };
|
|
19
23
|
sourceSub.add(instanceSub);
|
|
20
24
|
return instanceSub;
|
|
21
25
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
+
const instanceSub = input.subscribe((value) => source$.next(value));
|
|
27
|
+
sourceSub.add(instanceSub);
|
|
28
|
+
if (instanceInjector !== sourceInjector) {
|
|
29
|
+
instanceInjector
|
|
30
|
+
.get(DestroyRef)
|
|
31
|
+
.onDestroy(() => instanceSub.unsubscribe());
|
|
26
32
|
}
|
|
27
|
-
|
|
28
|
-
return { unsubscribe: noop };
|
|
33
|
+
return instanceSub;
|
|
29
34
|
};
|
|
30
35
|
rxMethodFn.unsubscribe = sourceSub.unsubscribe.bind(sourceSub);
|
|
31
36
|
return rxMethodFn;
|
|
32
37
|
}
|
|
33
|
-
|
|
38
|
+
function isStatic(value) {
|
|
39
|
+
return !isSignal(value) && !isObservable(value);
|
|
40
|
+
}
|
|
41
|
+
function getCallerInjector() {
|
|
42
|
+
try {
|
|
43
|
+
return inject(Injector);
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicngtbWV0aG9kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9zaWduYWxzL3J4anMtaW50ZXJvcC9zcmMvcngtbWV0aG9kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsVUFBVSxFQUNWLE1BQU0sRUFDTixNQUFNLEVBQ04sUUFBUSxFQUNSLFFBQVEsRUFFUixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQWMsT0FBTyxFQUFrQixNQUFNLE1BQU0sQ0FBQztBQVEvRSxNQUFNLFVBQVUsUUFBUSxDQUN0QixTQUE4RCxFQUM5RCxNQUFnQztJQUVoQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQ3RCLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxNQUFNLGNBQWMsR0FBRyxNQUFNLEVBQUUsUUFBUSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1RCxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sRUFBUyxDQUFDO0lBQ3JDLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNqRCxjQUFjLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUV4RSxNQUFNLFVBQVUsR0FBRyxDQUNqQixLQUFnRCxFQUNoRCxNQUFnQyxFQUNoQyxFQUFFO1FBQ0YsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwQixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BCLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDL0IsQ0FBQztRQUVELE1BQU0sZ0JBQWdCLEdBQ3BCLE1BQU0sRUFBRSxRQUFRLElBQUksaUJBQWlCLEVBQUUsSUFBSSxjQUFjLENBQUM7UUFFNUQsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwQixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQ3BCLEdBQUcsRUFBRTtnQkFDSCxNQUFNLEtBQUssR0FBRyxLQUFLLEVBQUUsQ0FBQztnQkFDdEIsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN2QyxDQUFDLEVBQ0QsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsQ0FDL0IsQ0FBQztZQUNGLE1BQU0sV0FBVyxHQUFHLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQzdELFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFM0IsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQztRQUVELE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwRSxTQUFTLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTNCLElBQUksZ0JBQWdCLEtBQUssY0FBYyxFQUFFLENBQUM7WUFDeEMsZ0JBQWdCO2lCQUNiLEdBQUcsQ0FBQyxVQUFVLENBQUM7aUJBQ2YsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDLENBQUM7SUFDRixVQUFVLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRS9ELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUM7QUFFRCxTQUFTLFFBQVEsQ0FBSSxLQUFvQztJQUN2RCxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFFRCxTQUFTLGlCQUFpQjtJQUN4QixJQUFJLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFzc2VydEluSW5qZWN0aW9uQ29udGV4dCxcbiAgRGVzdHJveVJlZixcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIEluamVjdG9yLFxuICBpc1NpZ25hbCxcbiAgU2lnbmFsLFxuICB1bnRyYWNrZWQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNPYnNlcnZhYmxlLCBub29wLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBVbnN1YnNjcmliYWJsZSB9IGZyb20gJ3J4anMnO1xuXG50eXBlIFJ4TWV0aG9kPElucHV0PiA9ICgoXG4gIGlucHV0OiBJbnB1dCB8IFNpZ25hbDxJbnB1dD4gfCBPYnNlcnZhYmxlPElucHV0PixcbiAgY29uZmlnPzogeyBpbmplY3Rvcj86IEluamVjdG9yIH1cbikgPT4gVW5zdWJzY3JpYmFibGUpICZcbiAgVW5zdWJzY3JpYmFibGU7XG5cbmV4cG9ydCBmdW5jdGlvbiByeE1ldGhvZDxJbnB1dD4oXG4gIGdlbmVyYXRvcjogKHNvdXJjZSQ6IE9ic2VydmFibGU8SW5wdXQ+KSA9PiBPYnNlcnZhYmxlPHVua25vd24+LFxuICBjb25maWc/OiB7IGluamVjdG9yPzogSW5qZWN0b3IgfVxuKTogUnhNZXRob2Q8SW5wdXQ+IHtcbiAgaWYgKCFjb25maWc/LmluamVjdG9yKSB7XG4gICAgYXNzZXJ0SW5JbmplY3Rpb25Db250ZXh0KHJ4TWV0aG9kKTtcbiAgfVxuXG4gIGNvbnN0IHNvdXJjZUluamVjdG9yID0gY29uZmlnPy5pbmplY3RvciA/PyBpbmplY3QoSW5qZWN0b3IpO1xuICBjb25zdCBzb3VyY2UkID0gbmV3IFN1YmplY3Q8SW5wdXQ+KCk7XG4gIGNvbnN0IHNvdXJjZVN1YiA9IGdlbmVyYXRvcihzb3VyY2UkKS5zdWJzY3JpYmUoKTtcbiAgc291cmNlSW5qZWN0b3IuZ2V0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiBzb3VyY2VTdWIudW5zdWJzY3JpYmUoKSk7XG5cbiAgY29uc3QgcnhNZXRob2RGbiA9IChcbiAgICBpbnB1dDogSW5wdXQgfCBTaWduYWw8SW5wdXQ+IHwgT2JzZXJ2YWJsZTxJbnB1dD4sXG4gICAgY29uZmlnPzogeyBpbmplY3Rvcj86IEluamVjdG9yIH1cbiAgKSA9PiB7XG4gICAgaWYgKGlzU3RhdGljKGlucHV0KSkge1xuICAgICAgc291cmNlJC5uZXh0KGlucHV0KTtcbiAgICAgIHJldHVybiB7IHVuc3Vic2NyaWJlOiBub29wIH07XG4gICAgfVxuXG4gICAgY29uc3QgaW5zdGFuY2VJbmplY3RvciA9XG4gICAgICBjb25maWc/LmluamVjdG9yID8/IGdldENhbGxlckluamVjdG9yKCkgPz8gc291cmNlSW5qZWN0b3I7XG5cbiAgICBpZiAoaXNTaWduYWwoaW5wdXQpKSB7XG4gICAgICBjb25zdCB3YXRjaGVyID0gZWZmZWN0KFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBpbnB1dCgpO1xuICAgICAgICAgIHVudHJhY2tlZCgoKSA9PiBzb3VyY2UkLm5leHQodmFsdWUpKTtcbiAgICAgICAgfSxcbiAgICAgICAgeyBpbmplY3RvcjogaW5zdGFuY2VJbmplY3RvciB9XG4gICAgICApO1xuICAgICAgY29uc3QgaW5zdGFuY2VTdWIgPSB7IHVuc3Vic2NyaWJlOiAoKSA9PiB3YXRjaGVyLmRlc3Ryb3koKSB9O1xuICAgICAgc291cmNlU3ViLmFkZChpbnN0YW5jZVN1Yik7XG5cbiAgICAgIHJldHVybiBpbnN0YW5jZVN1YjtcbiAgICB9XG5cbiAgICBjb25zdCBpbnN0YW5jZVN1YiA9IGlucHV0LnN1YnNjcmliZSgodmFsdWUpID0+IHNvdXJjZSQubmV4dCh2YWx1ZSkpO1xuICAgIHNvdXJjZVN1Yi5hZGQoaW5zdGFuY2VTdWIpO1xuXG4gICAgaWYgKGluc3RhbmNlSW5qZWN0b3IgIT09IHNvdXJjZUluamVjdG9yKSB7XG4gICAgICBpbnN0YW5jZUluamVjdG9yXG4gICAgICAgIC5nZXQoRGVzdHJveVJlZilcbiAgICAgICAgLm9uRGVzdHJveSgoKSA9PiBpbnN0YW5jZVN1Yi51bnN1YnNjcmliZSgpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaW5zdGFuY2VTdWI7XG4gIH07XG4gIHJ4TWV0aG9kRm4udW5zdWJzY3JpYmUgPSBzb3VyY2VTdWIudW5zdWJzY3JpYmUuYmluZChzb3VyY2VTdWIpO1xuXG4gIHJldHVybiByeE1ldGhvZEZuO1xufVxuXG5mdW5jdGlvbiBpc1N0YXRpYzxUPih2YWx1ZTogVCB8IFNpZ25hbDxUPiB8IE9ic2VydmFibGU8VD4pOiB2YWx1ZSBpcyBUIHtcbiAgcmV0dXJuICFpc1NpZ25hbCh2YWx1ZSkgJiYgIWlzT2JzZXJ2YWJsZSh2YWx1ZSk7XG59XG5cbmZ1bmN0aW9uIGdldENhbGxlckluamVjdG9yKCk6IEluamVjdG9yIHwgbnVsbCB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGluamVjdChJbmplY3Rvcik7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { computed } from '@angular/core';
|
|
2
|
+
import { toDeepSignal } from './deep-signal';
|
|
3
|
+
export function deepComputed(computation) {
|
|
4
|
+
return toDeepSignal(computed(computation));
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcC1jb21wdXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc2lnbmFscy9zcmMvZGVlcC1jb21wdXRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBYyxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekQsTUFBTSxVQUFVLFlBQVksQ0FDMUIsV0FBb0I7SUFFcEIsT0FBTyxZQUFZLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7QUFDN0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZWVwU2lnbmFsLCB0b0RlZXBTaWduYWwgfSBmcm9tICcuL2RlZXAtc2lnbmFsJztcblxuZXhwb3J0IGZ1bmN0aW9uIGRlZXBDb21wdXRlZDxUIGV4dGVuZHMgb2JqZWN0PihcbiAgY29tcHV0YXRpb246ICgpID0+IFRcbik6IERlZXBTaWduYWw8VD4ge1xuICByZXR1cm4gdG9EZWVwU2lnbmFsKGNvbXB1dGVkKGNvbXB1dGF0aW9uKSk7XG59XG4iXX0=
|
package/esm2022/src/index.mjs
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { deepComputed } from './deep-computed';
|
|
1
2
|
export { signalState } from './signal-state';
|
|
2
3
|
export { signalStore } from './signal-store';
|
|
3
4
|
export { signalStoreFeature, type } from './signal-store-feature';
|
|
@@ -6,4 +7,4 @@ export { withComputed } from './with-computed';
|
|
|
6
7
|
export { withHooks } from './with-hooks';
|
|
7
8
|
export { withMethods } from './with-methods';
|
|
8
9
|
export { withState } from './with-state';
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3NpZ25hbHMvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsV0FBVyxFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU9sRSxPQUFPLEVBQ0wsUUFBUSxFQUVSLFVBQVUsRUFHVixVQUFVLEdBRVgsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZXBDb21wdXRlZCB9IGZyb20gJy4vZGVlcC1jb21wdXRlZCc7XG5leHBvcnQgeyBEZWVwU2lnbmFsIH0gZnJvbSAnLi9kZWVwLXNpZ25hbCc7XG5leHBvcnQgeyBzaWduYWxTdGF0ZSwgU2lnbmFsU3RhdGUgfSBmcm9tICcuL3NpZ25hbC1zdGF0ZSc7XG5leHBvcnQgeyBzaWduYWxTdG9yZSB9IGZyb20gJy4vc2lnbmFsLXN0b3JlJztcbmV4cG9ydCB7IHNpZ25hbFN0b3JlRmVhdHVyZSwgdHlwZSB9IGZyb20gJy4vc2lnbmFsLXN0b3JlLWZlYXR1cmUnO1xuZXhwb3J0IHtcbiAgRW1wdHlGZWF0dXJlUmVzdWx0LFxuICBTaWduYWxTdG9yZUZlYXR1cmUsXG4gIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgU3RhdGVTaWduYWxzLFxufSBmcm9tICcuL3NpZ25hbC1zdG9yZS1tb2RlbHMnO1xuZXhwb3J0IHtcbiAgZ2V0U3RhdGUsXG4gIFBhcnRpYWxTdGF0ZVVwZGF0ZXIsXG4gIHBhdGNoU3RhdGUsXG4gIFN0YXRlU291cmNlLFxuICBTdGF0ZVdhdGNoZXIsXG4gIHdhdGNoU3RhdGUsXG4gIFdyaXRhYmxlU3RhdGVTb3VyY2UsXG59IGZyb20gJy4vc3RhdGUtc291cmNlJztcbmV4cG9ydCB7IFByZXR0aWZ5IH0gZnJvbSAnLi90cy1oZWxwZXJzJztcblxuZXhwb3J0IHsgd2l0aENvbXB1dGVkIH0gZnJvbSAnLi93aXRoLWNvbXB1dGVkJztcbmV4cG9ydCB7IHdpdGhIb29rcyB9IGZyb20gJy4vd2l0aC1ob29rcyc7XG5leHBvcnQgeyB3aXRoTWV0aG9kcyB9IGZyb20gJy4vd2l0aC1tZXRob2RzJztcbmV4cG9ydCB7IHdpdGhTdGF0ZSB9IGZyb20gJy4vd2l0aC1zdGF0ZSc7XG4iXX0=
|
|
@@ -12,10 +12,7 @@ export function signalStore(...args) {
|
|
|
12
12
|
const innerStore = features.reduce((store, feature) => feature(store), getInitialInnerStore());
|
|
13
13
|
const { stateSignals, computedSignals, methods, hooks } = innerStore;
|
|
14
14
|
const storeMembers = { ...stateSignals, ...computedSignals, ...methods };
|
|
15
|
-
this[STATE_SOURCE] =
|
|
16
|
-
config.protectedState === false
|
|
17
|
-
? innerStore[STATE_SOURCE]
|
|
18
|
-
: innerStore[STATE_SOURCE].asReadonly();
|
|
15
|
+
this[STATE_SOURCE] = innerStore[STATE_SOURCE];
|
|
19
16
|
for (const key in storeMembers) {
|
|
20
17
|
this[key] = storeMembers[key];
|
|
21
18
|
}
|
|
@@ -27,10 +24,10 @@ export function signalStore(...args) {
|
|
|
27
24
|
inject(DestroyRef).onDestroy(onDestroy);
|
|
28
25
|
}
|
|
29
26
|
}
|
|
30
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
31
|
-
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.
|
|
27
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SignalStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
28
|
+
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SignalStore, providedIn: config.providedIn || null });
|
|
32
29
|
}
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SignalStore, decorators: [{
|
|
34
31
|
type: Injectable,
|
|
35
32
|
args: [{ providedIn: config.providedIn || null }]
|
|
36
33
|
}], ctorParameters: () => [] });
|
|
@@ -45,4 +42,4 @@ export function getInitialInnerStore() {
|
|
|
45
42
|
hooks: {},
|
|
46
43
|
};
|
|
47
44
|
}
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9zaWduYWxzL3NyYy9zaWduYWwtc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFvQyxNQUFNLGdCQUFnQixDQUFDOztBQXl6Q2hGLE1BQU0sVUFBVSxXQUFXLENBQ3pCLEdBQUcsSUFBeUU7SUFFNUUsTUFBTSxlQUFlLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBRWxDLE1BQU0sTUFBTSxHQUNWLE9BQU8sZUFBZSxDQUFDLENBQUMsQ0FBQyxLQUFLLFVBQVU7UUFDdEMsQ0FBQyxDQUFDLEVBQUU7UUFDSixDQUFDLENBQUUsZUFBZSxDQUFDLEtBQUssRUFBd0IsQ0FBQztJQUNyRCxNQUFNLFFBQVEsR0FBRyxlQUF1QyxDQUFDO0lBRXpELE1BQ00sV0FBVztRQUNmO1lBQ0UsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FDaEMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQ2xDLG9CQUFvQixFQUFFLENBQ3ZCLENBQUM7WUFDRixNQUFNLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsVUFBVSxDQUFDO1lBQ3JFLE1BQU0sWUFBWSxHQUFHLEVBQUUsR0FBRyxZQUFZLEVBQUUsR0FBRyxlQUFlLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQztZQUV4RSxJQUFZLENBQUMsWUFBWSxDQUFDO2dCQUN6QixNQUFNLENBQUMsY0FBYyxLQUFLLEtBQUs7b0JBQzdCLENBQUMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO29CQUMxQixDQUFDLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBRTVDLEtBQUssTUFBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQzlCLElBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekMsQ0FBQztZQUVELE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsS0FBSyxDQUFDO1lBRXBDLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1gsTUFBTSxFQUFFLENBQUM7WUFDWCxDQUFDO1lBRUQsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDZCxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzFDLENBQUM7UUFDSCxDQUFDOzhIQTNCRyxXQUFXO2tJQUFYLFdBQVcsY0FEUyxNQUFNLENBQUMsVUFBVSxJQUFJLElBQUk7OytGQUM3QyxXQUFXO3NCQURoQixVQUFVO3VCQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVLElBQUksSUFBSSxFQUFFOztJQStCckQsT0FBTyxXQUFXLENBQUM7Q0FDcEI7QUFFRCxNQUFNLFVBQVUsb0JBQW9CO0lBQ2xDLE9BQU87UUFDTCxDQUFDLFlBQVksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDMUIsWUFBWSxFQUFFLEVBQUU7UUFDaEIsZUFBZSxFQUFFLEVBQUU7UUFDbkIsT0FBTyxFQUFFLEVBQUU7UUFDWCxLQUFLLEVBQUUsRUFBRTtLQUNWLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzdHJveVJlZiwgaW5qZWN0LCBJbmplY3RhYmxlLCBzaWduYWwsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNUQVRFX1NPVVJDRSwgU3RhdGVTb3VyY2UsIFdyaXRhYmxlU3RhdGVTb3VyY2UgfSBmcm9tICcuL3N0YXRlLXNvdXJjZSc7XG5pbXBvcnQge1xuICBFbXB0eUZlYXR1cmVSZXN1bHQsXG4gIElubmVyU2lnbmFsU3RvcmUsXG4gIFNpZ25hbFN0b3JlRmVhdHVyZSxcbiAgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBTdGF0ZVNpZ25hbHMsXG59IGZyb20gJy4vc2lnbmFsLXN0b3JlLW1vZGVscyc7XG5pbXBvcnQgeyBPbWl0UHJpdmF0ZSwgUHJldHRpZnkgfSBmcm9tICcuL3RzLWhlbHBlcnMnO1xuXG50eXBlIFNpZ25hbFN0b3JlQ29uZmlnID0geyBwcm92aWRlZEluPzogJ3Jvb3QnOyBwcm90ZWN0ZWRTdGF0ZT86IGJvb2xlYW4gfTtcblxudHlwZSBTaWduYWxTdG9yZU1lbWJlcnM8RmVhdHVyZVJlc3VsdCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdD4gPVxuICBQcmV0dGlmeTxcbiAgICBPbWl0UHJpdmF0ZTxcbiAgICAgIFN0YXRlU2lnbmFsczxGZWF0dXJlUmVzdWx0WydzdGF0ZSddPiAmXG4gICAgICAgIEZlYXR1cmVSZXN1bHRbJ2NvbXB1dGVkJ10gJlxuICAgICAgICBGZWF0dXJlUmVzdWx0WydtZXRob2RzJ11cbiAgICA+XG4gID47XG5cbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdD4oXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT5cbik6IFR5cGU8XG4gIFNpZ25hbFN0b3JlTWVtYmVyczxGMT4gJiBTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxGMVsnc3RhdGUnXT4+PlxuPjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJiBGMlxuPihcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj5cbik6IFR5cGU8U2lnbmFsU3RvcmVNZW1iZXJzPFI+ICYgU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+Pj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmIEYyICYgRjNcbj4oXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPlxuKTogVHlwZTxTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxSWydzdGF0ZSddPj4+PjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmIEYyICYgRjMgJiBGNFxuPihcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmIEYyICYgRjMgJiBGNCAmIEY1XG4+KFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PlxuKTogVHlwZTxTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxSWydzdGF0ZSddPj4+PjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNlxuPihcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+LFxuICBmNTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0LCBGNT4sXG4gIGY2OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSwgRjY+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3XG4+KFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz5cbik6IFR5cGU8U2lnbmFsU3RvcmVNZW1iZXJzPFI+ICYgU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+Pj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjYgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY3IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjhcbj4oXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOVxuPihcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+LFxuICBmNTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0LCBGNT4sXG4gIGY2OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSwgRjY+LFxuICBmNzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiwgRjc+LFxuICBmODogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3LCBGOD4sXG4gIGY5OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCwgRjk+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTAgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmXG4gICAgRjIgJlxuICAgIEYzICZcbiAgICBGNCAmXG4gICAgRjUgJlxuICAgIEY2ICZcbiAgICBGNyAmXG4gICAgRjggJlxuICAgIEY5ICZcbiAgICBGMTBcbj4oXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PixcbiAgZjEwOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5LCBGMTA+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTAgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICZcbiAgICBGMiAmXG4gICAgRjMgJlxuICAgIEY0ICZcbiAgICBGNSAmXG4gICAgRjYgJlxuICAgIEY3ICZcbiAgICBGOCAmXG4gICAgRjkgJlxuICAgIEYxMCAmXG4gICAgRjExXG4+KFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz4sXG4gIGY4OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcsIEY4PixcbiAgZjk6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4LCBGOT4sXG4gIGYxMDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSwgRjEwPixcbiAgZjExOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwLCBGMTE+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTAgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOSAmXG4gICAgRjEwICZcbiAgICBGMTEgJlxuICAgIEYxMlxuPihcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+LFxuICBmNTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0LCBGNT4sXG4gIGY2OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSwgRjY+LFxuICBmNzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiwgRjc+LFxuICBmODogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3LCBGOD4sXG4gIGY5OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCwgRjk+LFxuICBmMTA6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjksIEYxMD4sXG4gIGYxMTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCxcbiAgICBGMTFcbiAgPixcbiAgZjEyOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExLFxuICAgIEYxMlxuICA+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTAgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmXG4gICAgRjIgJlxuICAgIEYzICZcbiAgICBGNCAmXG4gICAgRjUgJlxuICAgIEY2ICZcbiAgICBGNyAmXG4gICAgRjggJlxuICAgIEY5ICZcbiAgICBGMTAgJlxuICAgIEYxMSAmXG4gICAgRjEyICZcbiAgICBGMTNcbj4oXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PixcbiAgZjEwOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5LCBGMTA+LFxuICBmMTE6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAsXG4gICAgRjExXG4gID4sXG4gIGYxMjogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSxcbiAgICBGMTJcbiAgPixcbiAgZjEzOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExICYgRjEyLFxuICAgIEYxM1xuICA+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTAgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICZcbiAgICBGMiAmXG4gICAgRjMgJlxuICAgIEY0ICZcbiAgICBGNSAmXG4gICAgRjYgJlxuICAgIEY3ICZcbiAgICBGOCAmXG4gICAgRjkgJlxuICAgIEYxMCAmXG4gICAgRjExICZcbiAgICBGMTIgJlxuICAgIEYxMyAmXG4gICAgRjE0XG4+KFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz4sXG4gIGY4OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcsIEY4PixcbiAgZjk6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4LCBGOT4sXG4gIGYxMDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSwgRjEwPixcbiAgZjExOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwLFxuICAgIEYxMVxuICA+LFxuICBmMTI6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAgJiBGMTEsXG4gICAgRjEyXG4gID4sXG4gIGYxMzogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSAmIEYxMixcbiAgICBGMTNcbiAgPixcbiAgZjE0OiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExICYgRjEyICYgRjEzLFxuICAgIEYxNFxuICA+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTAgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjE1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOSAmXG4gICAgRjEwICZcbiAgICBGMTEgJlxuICAgIEYxMiAmXG4gICAgRjEzICZcbiAgICBGMTQgJlxuICAgIEYxNVxuPihcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+LFxuICBmNTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0LCBGNT4sXG4gIGY2OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSwgRjY+LFxuICBmNzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiwgRjc+LFxuICBmODogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3LCBGOD4sXG4gIGY5OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCwgRjk+LFxuICBmMTA6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjksIEYxMD4sXG4gIGYxMTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCxcbiAgICBGMTFcbiAgPixcbiAgZjEyOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExLFxuICAgIEYxMlxuICA+LFxuICBmMTM6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAgJiBGMTEgJiBGMTIsXG4gICAgRjEzXG4gID4sXG4gIGYxNDogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSAmIEYxMiAmIEYxMyxcbiAgICBGMTRcbiAgPixcbiAgZjE1OiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExICYgRjEyICYgRjEzICYgRjE0LFxuICAgIEYxNVxuICA+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuXG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8RjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQ+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU/OiB0cnVlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT5cbik6IFR5cGU8XG4gIFNpZ25hbFN0b3JlTWVtYmVyczxGMT4gJiBTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxGMVsnc3RhdGUnXT4+PlxuPjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJiBGMlxuPihcbiAgY29uZmlnOiB7IHByb3ZpZGVkSW4/OiAncm9vdCc7IHByb3RlY3RlZFN0YXRlPzogdHJ1ZSB9LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPlxuKTogVHlwZTxTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxSWydzdGF0ZSddPj4+PjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICYgRjIgJiBGM1xuPihcbiAgY29uZmlnOiB7IHByb3ZpZGVkSW4/OiAncm9vdCc7IHByb3RlY3RlZFN0YXRlPzogdHJ1ZSB9LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz5cbik6IFR5cGU8U2lnbmFsU3RvcmVNZW1iZXJzPFI+ICYgU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+Pj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJiBGMiAmIEYzICYgRjRcbj4oXG4gIGNvbmZpZzogeyBwcm92aWRlZEluPzogJ3Jvb3QnOyBwcm90ZWN0ZWRTdGF0ZT86IHRydWUgfSxcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmIEYyICYgRjMgJiBGNCAmIEY1XG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU/OiB0cnVlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2XG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU/OiB0cnVlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PlxuKTogVHlwZTxTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxSWydzdGF0ZSddPj4+PjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjcgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGN1xuPihcbiAgY29uZmlnOiB7IHByb3ZpZGVkSW4/OiAncm9vdCc7IHByb3RlY3RlZFN0YXRlPzogdHJ1ZSB9LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz5cbik6IFR5cGU8U2lnbmFsU3RvcmVNZW1iZXJzPFI+ICYgU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+Pj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjYgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY3IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjhcbj4oXG4gIGNvbmZpZzogeyBwcm92aWRlZEluPzogJ3Jvb3QnOyBwcm90ZWN0ZWRTdGF0ZT86IHRydWUgfSxcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+LFxuICBmNTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0LCBGNT4sXG4gIGY2OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSwgRjY+LFxuICBmNzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiwgRjc+LFxuICBmODogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3LCBGOD5cbik6IFR5cGU8U2lnbmFsU3RvcmVNZW1iZXJzPFI+ICYgU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+Pj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjYgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY3IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjkgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmXG4gICAgRjIgJlxuICAgIEYzICZcbiAgICBGNCAmXG4gICAgRjUgJlxuICAgIEY2ICZcbiAgICBGNyAmXG4gICAgRjggJlxuICAgIEY5XG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU/OiB0cnVlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PlxuKTogVHlwZTxTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxSWydzdGF0ZSddPj4+PjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjcgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY4IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEwIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOSAmXG4gICAgRjEwXG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU/OiB0cnVlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PixcbiAgZjEwOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5LCBGMTA+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTAgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICZcbiAgICBGMiAmXG4gICAgRjMgJlxuICAgIEY0ICZcbiAgICBGNSAmXG4gICAgRjYgJlxuICAgIEY3ICZcbiAgICBGOCAmXG4gICAgRjkgJlxuICAgIEYxMCAmXG4gICAgRjExXG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU/OiB0cnVlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PixcbiAgZjEwOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5LCBGMTA+LFxuICBmMTE6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAsIEYxMT5cbik6IFR5cGU8U2lnbmFsU3RvcmVNZW1iZXJzPFI+ICYgU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+Pj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjYgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY3IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjkgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjExIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmXG4gICAgRjIgJlxuICAgIEYzICZcbiAgICBGNCAmXG4gICAgRjUgJlxuICAgIEY2ICZcbiAgICBGNyAmXG4gICAgRjggJlxuICAgIEY5ICZcbiAgICBGMTAgJlxuICAgIEYxMSAmXG4gICAgRjEyXG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU/OiB0cnVlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PixcbiAgZjEwOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5LCBGMTA+LFxuICBmMTE6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAsXG4gICAgRjExXG4gID4sXG4gIGYxMjogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSxcbiAgICBGMTJcbiAgPlxuKTogVHlwZTxTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxSWydzdGF0ZSddPj4+PjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjcgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY4IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEwIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOSAmXG4gICAgRjEwICZcbiAgICBGMTEgJlxuICAgIEYxMiAmXG4gICAgRjEzXG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU/OiB0cnVlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PixcbiAgZjEwOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5LCBGMTA+LFxuICBmMTE6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAsXG4gICAgRjExXG4gID4sXG4gIGYxMjogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSxcbiAgICBGMTJcbiAgPixcbiAgZjEzOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExICYgRjEyLFxuICAgIEYxM1xuICA+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTAgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICZcbiAgICBGMiAmXG4gICAgRjMgJlxuICAgIEY0ICZcbiAgICBGNSAmXG4gICAgRjYgJlxuICAgIEY3ICZcbiAgICBGOCAmXG4gICAgRjkgJlxuICAgIEYxMCAmXG4gICAgRjExICZcbiAgICBGMTIgJlxuICAgIEYxMyAmXG4gICAgRjE0XG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU/OiB0cnVlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PixcbiAgZjEwOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5LCBGMTA+LFxuICBmMTE6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAsXG4gICAgRjExXG4gID4sXG4gIGYxMjogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSxcbiAgICBGMTJcbiAgPixcbiAgZjEzOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExICYgRjEyLFxuICAgIEYxM1xuICA+LFxuICBmMTQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAgJiBGMTEgJiBGMTIgJiBGMTMsXG4gICAgRjE0XG4gID5cbik6IFR5cGU8U2lnbmFsU3RvcmVNZW1iZXJzPFI+ICYgU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+Pj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjYgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY3IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjkgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjExIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjE0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmXG4gICAgRjIgJlxuICAgIEYzICZcbiAgICBGNCAmXG4gICAgRjUgJlxuICAgIEY2ICZcbiAgICBGNyAmXG4gICAgRjggJlxuICAgIEY5ICZcbiAgICBGMTAgJlxuICAgIEYxMSAmXG4gICAgRjEyICZcbiAgICBGMTMgJlxuICAgIEYxNCAmXG4gICAgRjE1XG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU/OiB0cnVlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PixcbiAgZjEwOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5LCBGMTA+LFxuICBmMTE6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAsXG4gICAgRjExXG4gID4sXG4gIGYxMjogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSxcbiAgICBGMTJcbiAgPixcbiAgZjEzOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExICYgRjEyLFxuICAgIEYxM1xuICA+LFxuICBmMTQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAgJiBGMTEgJiBGMTIgJiBGMTMsXG4gICAgRjE0XG4gID4sXG4gIGYxNTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSAmIEYxMiAmIEYxMyAmIEYxNCxcbiAgICBGMTVcbiAgPlxuKTogVHlwZTxTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxSWydzdGF0ZSddPj4+PjtcblxuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0PihcbiAgY29uZmlnOiB7IHByb3ZpZGVkSW4/OiAncm9vdCc7IHByb3RlY3RlZFN0YXRlOiBmYWxzZSB9LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+XG4pOiBUeXBlPFxuICBTaWduYWxTdG9yZU1lbWJlcnM8RjE+ICZcbiAgICBXcml0YWJsZVN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPEYxWydzdGF0ZSddPj4+XG4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmIEYyXG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU6IGZhbHNlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+XG4pOiBUeXBlPFxuICBTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBXcml0YWJsZVN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj5cbj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmIEYyICYgRjNcbj4oXG4gIGNvbmZpZzogeyBwcm92aWRlZEluPzogJ3Jvb3QnOyBwcm90ZWN0ZWRTdGF0ZTogZmFsc2UgfSxcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+XG4pOiBUeXBlPFxuICBTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBXcml0YWJsZVN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj5cbj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJiBGMiAmIEYzICYgRjRcbj4oXG4gIGNvbmZpZzogeyBwcm92aWRlZEluPzogJ3Jvb3QnOyBwcm90ZWN0ZWRTdGF0ZTogZmFsc2UgfSxcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+XG4pOiBUeXBlPFxuICBTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBXcml0YWJsZVN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj5cbj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICYgRjIgJiBGMyAmIEY0ICYgRjVcbj4oXG4gIGNvbmZpZzogeyBwcm92aWRlZEluPzogJ3Jvb3QnOyBwcm90ZWN0ZWRTdGF0ZTogZmFsc2UgfSxcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+LFxuICBmNTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0LCBGNT5cbik6IFR5cGU8XG4gIFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFdyaXRhYmxlU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+PlxuPjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNlxuPihcbiAgY29uZmlnOiB7IHByb3ZpZGVkSW4/OiAncm9vdCc7IHByb3RlY3RlZFN0YXRlOiBmYWxzZSB9LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj5cbik6IFR5cGU8XG4gIFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFdyaXRhYmxlU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+PlxuPjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjcgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGN1xuPihcbiAgY29uZmlnOiB7IHByb3ZpZGVkSW4/OiAncm9vdCc7IHByb3RlY3RlZFN0YXRlOiBmYWxzZSB9LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz5cbik6IFR5cGU8XG4gIFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFdyaXRhYmxlU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+PlxuPjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjcgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY4IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOFxuPihcbiAgY29uZmlnOiB7IHByb3ZpZGVkSW4/OiAncm9vdCc7IHByb3RlY3RlZFN0YXRlOiBmYWxzZSB9LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz4sXG4gIGY4OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcsIEY4PlxuKTogVHlwZTxcbiAgU2lnbmFsU3RvcmVNZW1iZXJzPFI+ICYgV3JpdGFibGVTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxSWydzdGF0ZSddPj4+XG4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOVxuPihcbiAgY29uZmlnOiB7IHByb3ZpZGVkSW4/OiAncm9vdCc7IHByb3RlY3RlZFN0YXRlOiBmYWxzZSB9LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz4sXG4gIGY4OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcsIEY4PixcbiAgZjk6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4LCBGOT5cbik6IFR5cGU8XG4gIFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFdyaXRhYmxlU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+PlxuPjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjcgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY4IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEwIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOSAmXG4gICAgRjEwXG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU6IGZhbHNlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PixcbiAgZjEwOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5LCBGMTA+XG4pOiBUeXBlPFxuICBTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBXcml0YWJsZVN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj5cbj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjYgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY3IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjkgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjExIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOSAmXG4gICAgRjEwICZcbiAgICBGMTFcbj4oXG4gIGNvbmZpZzogeyBwcm92aWRlZEluPzogJ3Jvb3QnOyBwcm90ZWN0ZWRTdGF0ZTogZmFsc2UgfSxcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+LFxuICBmNTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0LCBGNT4sXG4gIGY2OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSwgRjY+LFxuICBmNzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiwgRjc+LFxuICBmODogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3LCBGOD4sXG4gIGY5OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCwgRjk+LFxuICBmMTA6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjksIEYxMD4sXG4gIGYxMTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCwgRjExPlxuKTogVHlwZTxcbiAgU2lnbmFsU3RvcmVNZW1iZXJzPFI+ICYgV3JpdGFibGVTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxSWydzdGF0ZSddPj4+XG4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTAgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOSAmXG4gICAgRjEwICZcbiAgICBGMTEgJlxuICAgIEYxMlxuPihcbiAgY29uZmlnOiB7IHByb3ZpZGVkSW4/OiAncm9vdCc7IHByb3RlY3RlZFN0YXRlOiBmYWxzZSB9LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz4sXG4gIGY4OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcsIEY4PixcbiAgZjk6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4LCBGOT4sXG4gIGYxMDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSwgRjEwPixcbiAgZjExOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwLFxuICAgIEYxMVxuICA+LFxuICBmMTI6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAgJiBGMTEsXG4gICAgRjEyXG4gID5cbik6IFR5cGU8XG4gIFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFdyaXRhYmxlU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+PlxuPjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjcgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY4IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEwIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOSAmXG4gICAgRjEwICZcbiAgICBGMTEgJlxuICAgIEYxMiAmXG4gICAgRjEzXG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU6IGZhbHNlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PixcbiAgZjEwOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5LCBGMTA+LFxuICBmMTE6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAsXG4gICAgRjExXG4gID4sXG4gIGYxMjogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSxcbiAgICBGMTJcbiAgPixcbiAgZjEzOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExICYgRjEyLFxuICAgIEYxM1xuICA+XG4pOiBUeXBlPFxuICBTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBXcml0YWJsZVN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj5cbj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjYgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY3IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjkgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjExIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjE0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOSAmXG4gICAgRjEwICZcbiAgICBGMTEgJlxuICAgIEYxMiAmXG4gICAgRjEzICZcbiAgICBGMTRcbj4oXG4gIGNvbmZpZzogeyBwcm92aWRlZEluPzogJ3Jvb3QnOyBwcm90ZWN0ZWRTdGF0ZTogZmFsc2UgfSxcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+LFxuICBmNTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0LCBGNT4sXG4gIGY2OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSwgRjY+LFxuICBmNzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiwgRjc+LFxuICBmODogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3LCBGOD4sXG4gIGY5OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCwgRjk+LFxuICBmMTA6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjksIEYxMD4sXG4gIGYxMTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCxcbiAgICBGMTFcbiAgPixcbiAgZjEyOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExLFxuICAgIEYxMlxuICA+LFxuICBmMTM6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAgJiBGMTEgJiBGMTIsXG4gICAgRjEzXG4gID4sXG4gIGYxNDogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSAmIEYxMiAmIEYxMyxcbiAgICBGMTRcbiAgPlxuKTogVHlwZTxcbiAgU2lnbmFsU3RvcmVNZW1iZXJzPFI+ICYgV3JpdGFibGVTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxSWydzdGF0ZSddPj4+XG4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTAgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjE1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOSAmXG4gICAgRjEwICZcbiAgICBGMTEgJlxuICAgIEYxMiAmXG4gICAgRjEzICZcbiAgICBGMTQgJlxuICAgIEYxNVxuPihcbiAgY29uZmlnOiB7IHByb3ZpZGVkSW4/OiAncm9vdCc7IHByb3RlY3RlZFN0YXRlOiBmYWxzZSB9LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz4sXG4gIGY4OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcsIEY4PixcbiAgZjk6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4LCBGOT4sXG4gIGYxMDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSwgRjEwPixcbiAgZjExOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwLFxuICAgIEYxMVxuICA+LFxuICBmMTI6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAgJiBGMTEsXG4gICAgRjEyXG4gID4sXG4gIGYxMzogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSAmIEYxMixcbiAgICBGMTNcbiAgPixcbiAgZjE0OiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExICYgRjEyICYgRjEzLFxuICAgIEYxNFxuICA+LFxuICBmMTU6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAgJiBGMTEgJiBGMTIgJiBGMTMgJiBGMTQsXG4gICAgRjE1XG4gID5cbik6IFR5cGU8XG4gIFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFdyaXRhYmxlU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+PlxuPjtcblxuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlKFxuICAuLi5hcmdzOiBbU2lnbmFsU3RvcmVDb25maWcsIC4uLlNpZ25hbFN0b3JlRmVhdHVyZVtdXSB8IFNpZ25hbFN0b3JlRmVhdHVyZVtdXG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxhbnk+PiB7XG4gIGNvbnN0IHNpZ25hbFN0b3JlQXJncyA9IFsuLi5hcmdzXTtcblxuICBjb25zdCBjb25maWcgPVxuICAgIHR5cGVvZiBzaWduYWxTdG9yZUFyZ3NbMF0gPT09ICdmdW5jdGlvbidcbiAgICAgID8ge31cbiAgICAgIDogKHNpZ25hbFN0b3JlQXJncy5zaGlmdCgpIGFzIFNpZ25hbFN0b3JlQ29uZmlnKTtcbiAgY29uc3QgZmVhdHVyZXMgPSBzaWduYWxTdG9yZUFyZ3MgYXMgU2lnbmFsU3RvcmVGZWF0dXJlW107XG5cbiAgQEluamVjdGFibGUoeyBwcm92aWRlZEluOiBjb25maWcucHJvdmlkZWRJbiB8fCBudWxsIH0pXG4gIGNsYXNzIFNpZ25hbFN0b3JlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIGNvbnN0IGlubmVyU3RvcmUgPSBmZWF0dXJlcy5yZWR1Y2UoXG4gICAgICAgIChzdG9yZSwgZmVhdHVyZSkgPT4gZmVhdHVyZShzdG9yZSksXG4gICAgICAgIGdldEluaXRpYWxJbm5lclN0b3JlKClcbiAgICAgICk7XG4gICAgICBjb25zdCB7IHN0YXRlU2lnbmFscywgY29tcHV0ZWRTaWduYWxzLCBtZXRob2RzLCBob29rcyB9ID0gaW5uZXJTdG9yZTtcbiAgICAgIGNvbnN0IHN0b3JlTWVtYmVycyA9IHsgLi4uc3RhdGVTaWduYWxzLCAuLi5jb21wdXRlZFNpZ25hbHMsIC4uLm1ldGhvZHMgfTtcblxuICAgICAgKHRoaXMgYXMgYW55KVtTVEFURV9TT1VSQ0VdID1cbiAgICAgICAgY29uZmlnLnByb3RlY3RlZFN0YXRlID09PSBmYWxzZVxuICAgICAgICAgID8gaW5uZXJTdG9yZVtTVEFURV9TT1VSQ0VdXG4gICAgICAgICAgOiBpbm5lclN0b3JlW1NUQVRFX1NPVVJDRV0uYXNSZWFkb25seSgpO1xuXG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBzdG9yZU1lbWJlcnMpIHtcbiAgICAgICAgKHRoaXMgYXMgYW55KVtrZXldID0gc3RvcmVNZW1iZXJzW2tleV07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgb25Jbml0LCBvbkRlc3Ryb3kgfSA9IGhvb2tzO1xuXG4gICAgICBpZiAob25Jbml0KSB7XG4gICAgICAgIG9uSW5pdCgpO1xuICAgICAgfVxuXG4gICAgICBpZiAob25EZXN0cm95KSB7XG4gICAgICAgIGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3kob25EZXN0cm95KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gU2lnbmFsU3RvcmU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbml0aWFsSW5uZXJTdG9yZSgpOiBJbm5lclNpZ25hbFN0b3JlIHtcbiAgcmV0dXJuIHtcbiAgICBbU1RBVEVfU09VUkNFXTogc2lnbmFsKHt9KSxcbiAgICBzdGF0ZVNpZ25hbHM6IHt9LFxuICAgIGNvbXB1dGVkU2lnbmFsczoge30sXG4gICAgbWV0aG9kczoge30sXG4gICAgaG9va3M6IHt9LFxuICB9O1xufVxuIl19
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9zaWduYWxzL3NyYy9zaWduYWwtc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFvQyxNQUFNLGdCQUFnQixDQUFDOztBQXl6Q2hGLE1BQU0sVUFBVSxXQUFXLENBQ3pCLEdBQUcsSUFBeUU7SUFFNUUsTUFBTSxlQUFlLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBRWxDLE1BQU0sTUFBTSxHQUNWLE9BQU8sZUFBZSxDQUFDLENBQUMsQ0FBQyxLQUFLLFVBQVU7UUFDdEMsQ0FBQyxDQUFDLEVBQUU7UUFDSixDQUFDLENBQUUsZUFBZSxDQUFDLEtBQUssRUFBd0IsQ0FBQztJQUNyRCxNQUFNLFFBQVEsR0FBRyxlQUF1QyxDQUFDO0lBRXpELE1BQ00sV0FBVztRQUNmO1lBQ0UsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FDaEMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQ2xDLG9CQUFvQixFQUFFLENBQ3ZCLENBQUM7WUFDRixNQUFNLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsVUFBVSxDQUFDO1lBQ3JFLE1BQU0sWUFBWSxHQUFHLEVBQUUsR0FBRyxZQUFZLEVBQUUsR0FBRyxlQUFlLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQztZQUV4RSxJQUFZLENBQUMsWUFBWSxDQUFDLEdBQUcsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBRXZELEtBQUssTUFBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQzlCLElBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekMsQ0FBQztZQUVELE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsS0FBSyxDQUFDO1lBRXBDLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1gsTUFBTSxFQUFFLENBQUM7WUFDWCxDQUFDO1lBRUQsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDZCxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzFDLENBQUM7UUFDSCxDQUFDOzhIQXhCRyxXQUFXO2tJQUFYLFdBQVcsY0FEUyxNQUFNLENBQUMsVUFBVSxJQUFJLElBQUk7OytGQUM3QyxXQUFXO3NCQURoQixVQUFVO3VCQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVLElBQUksSUFBSSxFQUFFOztJQTRCckQsT0FBTyxXQUFXLENBQUM7Q0FDcEI7QUFFRCxNQUFNLFVBQVUsb0JBQW9CO0lBQ2xDLE9BQU87UUFDTCxDQUFDLFlBQVksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDMUIsWUFBWSxFQUFFLEVBQUU7UUFDaEIsZUFBZSxFQUFFLEVBQUU7UUFDbkIsT0FBTyxFQUFFLEVBQUU7UUFDWCxLQUFLLEVBQUUsRUFBRTtLQUNWLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzdHJveVJlZiwgaW5qZWN0LCBJbmplY3RhYmxlLCBzaWduYWwsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNUQVRFX1NPVVJDRSwgU3RhdGVTb3VyY2UsIFdyaXRhYmxlU3RhdGVTb3VyY2UgfSBmcm9tICcuL3N0YXRlLXNvdXJjZSc7XG5pbXBvcnQge1xuICBFbXB0eUZlYXR1cmVSZXN1bHQsXG4gIElubmVyU2lnbmFsU3RvcmUsXG4gIFNpZ25hbFN0b3JlRmVhdHVyZSxcbiAgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBTdGF0ZVNpZ25hbHMsXG59IGZyb20gJy4vc2lnbmFsLXN0b3JlLW1vZGVscyc7XG5pbXBvcnQgeyBPbWl0UHJpdmF0ZSwgUHJldHRpZnkgfSBmcm9tICcuL3RzLWhlbHBlcnMnO1xuXG50eXBlIFNpZ25hbFN0b3JlQ29uZmlnID0geyBwcm92aWRlZEluPzogJ3Jvb3QnOyBwcm90ZWN0ZWRTdGF0ZT86IGJvb2xlYW4gfTtcblxudHlwZSBTaWduYWxTdG9yZU1lbWJlcnM8RmVhdHVyZVJlc3VsdCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdD4gPVxuICBQcmV0dGlmeTxcbiAgICBPbWl0UHJpdmF0ZTxcbiAgICAgIFN0YXRlU2lnbmFsczxGZWF0dXJlUmVzdWx0WydzdGF0ZSddPiAmXG4gICAgICAgIEZlYXR1cmVSZXN1bHRbJ2NvbXB1dGVkJ10gJlxuICAgICAgICBGZWF0dXJlUmVzdWx0WydtZXRob2RzJ11cbiAgICA+XG4gID47XG5cbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdD4oXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT5cbik6IFR5cGU8XG4gIFNpZ25hbFN0b3JlTWVtYmVyczxGMT4gJiBTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxGMVsnc3RhdGUnXT4+PlxuPjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJiBGMlxuPihcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj5cbik6IFR5cGU8U2lnbmFsU3RvcmVNZW1iZXJzPFI+ICYgU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+Pj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmIEYyICYgRjNcbj4oXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPlxuKTogVHlwZTxTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxSWydzdGF0ZSddPj4+PjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmIEYyICYgRjMgJiBGNFxuPihcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmIEYyICYgRjMgJiBGNCAmIEY1XG4+KFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PlxuKTogVHlwZTxTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxSWydzdGF0ZSddPj4+PjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNlxuPihcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+LFxuICBmNTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0LCBGNT4sXG4gIGY2OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSwgRjY+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3XG4+KFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz5cbik6IFR5cGU8U2lnbmFsU3RvcmVNZW1iZXJzPFI+ICYgU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+Pj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjYgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY3IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjhcbj4oXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOVxuPihcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+LFxuICBmNTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0LCBGNT4sXG4gIGY2OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSwgRjY+LFxuICBmNzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiwgRjc+LFxuICBmODogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3LCBGOD4sXG4gIGY5OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCwgRjk+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTAgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmXG4gICAgRjIgJlxuICAgIEYzICZcbiAgICBGNCAmXG4gICAgRjUgJlxuICAgIEY2ICZcbiAgICBGNyAmXG4gICAgRjggJlxuICAgIEY5ICZcbiAgICBGMTBcbj4oXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PixcbiAgZjEwOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5LCBGMTA+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTAgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICZcbiAgICBGMiAmXG4gICAgRjMgJlxuICAgIEY0ICZcbiAgICBGNSAmXG4gICAgRjYgJlxuICAgIEY3ICZcbiAgICBGOCAmXG4gICAgRjkgJlxuICAgIEYxMCAmXG4gICAgRjExXG4+KFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz4sXG4gIGY4OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcsIEY4PixcbiAgZjk6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4LCBGOT4sXG4gIGYxMDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSwgRjEwPixcbiAgZjExOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwLCBGMTE+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTAgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOSAmXG4gICAgRjEwICZcbiAgICBGMTEgJlxuICAgIEYxMlxuPihcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+LFxuICBmNTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0LCBGNT4sXG4gIGY2OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSwgRjY+LFxuICBmNzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiwgRjc+LFxuICBmODogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3LCBGOD4sXG4gIGY5OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCwgRjk+LFxuICBmMTA6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjksIEYxMD4sXG4gIGYxMTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCxcbiAgICBGMTFcbiAgPixcbiAgZjEyOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExLFxuICAgIEYxMlxuICA+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTAgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmXG4gICAgRjIgJlxuICAgIEYzICZcbiAgICBGNCAmXG4gICAgRjUgJlxuICAgIEY2ICZcbiAgICBGNyAmXG4gICAgRjggJlxuICAgIEY5ICZcbiAgICBGMTAgJlxuICAgIEYxMSAmXG4gICAgRjEyICZcbiAgICBGMTNcbj4oXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PixcbiAgZjEwOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5LCBGMTA+LFxuICBmMTE6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAsXG4gICAgRjExXG4gID4sXG4gIGYxMjogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSxcbiAgICBGMTJcbiAgPixcbiAgZjEzOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExICYgRjEyLFxuICAgIEYxM1xuICA+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTAgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICZcbiAgICBGMiAmXG4gICAgRjMgJlxuICAgIEY0ICZcbiAgICBGNSAmXG4gICAgRjYgJlxuICAgIEY3ICZcbiAgICBGOCAmXG4gICAgRjkgJlxuICAgIEYxMCAmXG4gICAgRjExICZcbiAgICBGMTIgJlxuICAgIEYxMyAmXG4gICAgRjE0XG4+KFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz4sXG4gIGY4OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcsIEY4PixcbiAgZjk6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4LCBGOT4sXG4gIGYxMDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSwgRjEwPixcbiAgZjExOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwLFxuICAgIEYxMVxuICA+LFxuICBmMTI6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAgJiBGMTEsXG4gICAgRjEyXG4gID4sXG4gIGYxMzogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSAmIEYxMixcbiAgICBGMTNcbiAgPixcbiAgZjE0OiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExICYgRjEyICYgRjEzLFxuICAgIEYxNFxuICA+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTAgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjE1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOSAmXG4gICAgRjEwICZcbiAgICBGMTEgJlxuICAgIEYxMiAmXG4gICAgRjEzICZcbiAgICBGMTQgJlxuICAgIEYxNVxuPihcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+LFxuICBmNTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0LCBGNT4sXG4gIGY2OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSwgRjY+LFxuICBmNzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiwgRjc+LFxuICBmODogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3LCBGOD4sXG4gIGY5OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCwgRjk+LFxuICBmMTA6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjksIEYxMD4sXG4gIGYxMTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCxcbiAgICBGMTFcbiAgPixcbiAgZjEyOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExLFxuICAgIEYxMlxuICA+LFxuICBmMTM6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAgJiBGMTEgJiBGMTIsXG4gICAgRjEzXG4gID4sXG4gIGYxNDogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSAmIEYxMiAmIEYxMyxcbiAgICBGMTRcbiAgPixcbiAgZjE1OiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExICYgRjEyICYgRjEzICYgRjE0LFxuICAgIEYxNVxuICA+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuXG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8RjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQ+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU/OiB0cnVlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT5cbik6IFR5cGU8XG4gIFNpZ25hbFN0b3JlTWVtYmVyczxGMT4gJiBTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxGMVsnc3RhdGUnXT4+PlxuPjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJiBGMlxuPihcbiAgY29uZmlnOiB7IHByb3ZpZGVkSW4/OiAncm9vdCc7IHByb3RlY3RlZFN0YXRlPzogdHJ1ZSB9LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPlxuKTogVHlwZTxTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxSWydzdGF0ZSddPj4+PjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICYgRjIgJiBGM1xuPihcbiAgY29uZmlnOiB7IHByb3ZpZGVkSW4/OiAncm9vdCc7IHByb3RlY3RlZFN0YXRlPzogdHJ1ZSB9LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz5cbik6IFR5cGU8U2lnbmFsU3RvcmVNZW1iZXJzPFI+ICYgU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+Pj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJiBGMiAmIEYzICYgRjRcbj4oXG4gIGNvbmZpZzogeyBwcm92aWRlZEluPzogJ3Jvb3QnOyBwcm90ZWN0ZWRTdGF0ZT86IHRydWUgfSxcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmIEYyICYgRjMgJiBGNCAmIEY1XG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU/OiB0cnVlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2XG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU/OiB0cnVlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PlxuKTogVHlwZTxTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxSWydzdGF0ZSddPj4+PjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjcgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGN1xuPihcbiAgY29uZmlnOiB7IHByb3ZpZGVkSW4/OiAncm9vdCc7IHByb3RlY3RlZFN0YXRlPzogdHJ1ZSB9LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz5cbik6IFR5cGU8U2lnbmFsU3RvcmVNZW1iZXJzPFI+ICYgU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+Pj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjYgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY3IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjhcbj4oXG4gIGNvbmZpZzogeyBwcm92aWRlZEluPzogJ3Jvb3QnOyBwcm90ZWN0ZWRTdGF0ZT86IHRydWUgfSxcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+LFxuICBmNTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0LCBGNT4sXG4gIGY2OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSwgRjY+LFxuICBmNzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiwgRjc+LFxuICBmODogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3LCBGOD5cbik6IFR5cGU8U2lnbmFsU3RvcmVNZW1iZXJzPFI+ICYgU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+Pj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjYgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY3IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjkgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmXG4gICAgRjIgJlxuICAgIEYzICZcbiAgICBGNCAmXG4gICAgRjUgJlxuICAgIEY2ICZcbiAgICBGNyAmXG4gICAgRjggJlxuICAgIEY5XG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU/OiB0cnVlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PlxuKTogVHlwZTxTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxSWydzdGF0ZSddPj4+PjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjcgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY4IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEwIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOSAmXG4gICAgRjEwXG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU/OiB0cnVlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PixcbiAgZjEwOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5LCBGMTA+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTAgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICZcbiAgICBGMiAmXG4gICAgRjMgJlxuICAgIEY0ICZcbiAgICBGNSAmXG4gICAgRjYgJlxuICAgIEY3ICZcbiAgICBGOCAmXG4gICAgRjkgJlxuICAgIEYxMCAmXG4gICAgRjExXG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU/OiB0cnVlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PixcbiAgZjEwOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5LCBGMTA+LFxuICBmMTE6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAsIEYxMT5cbik6IFR5cGU8U2lnbmFsU3RvcmVNZW1iZXJzPFI+ICYgU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+Pj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjYgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY3IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjkgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjExIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmXG4gICAgRjIgJlxuICAgIEYzICZcbiAgICBGNCAmXG4gICAgRjUgJlxuICAgIEY2ICZcbiAgICBGNyAmXG4gICAgRjggJlxuICAgIEY5ICZcbiAgICBGMTAgJlxuICAgIEYxMSAmXG4gICAgRjEyXG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU/OiB0cnVlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PixcbiAgZjEwOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5LCBGMTA+LFxuICBmMTE6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAsXG4gICAgRjExXG4gID4sXG4gIGYxMjogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSxcbiAgICBGMTJcbiAgPlxuKTogVHlwZTxTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxSWydzdGF0ZSddPj4+PjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjcgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY4IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEwIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOSAmXG4gICAgRjEwICZcbiAgICBGMTEgJlxuICAgIEYxMiAmXG4gICAgRjEzXG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU/OiB0cnVlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PixcbiAgZjEwOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5LCBGMTA+LFxuICBmMTE6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAsXG4gICAgRjExXG4gID4sXG4gIGYxMjogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSxcbiAgICBGMTJcbiAgPixcbiAgZjEzOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExICYgRjEyLFxuICAgIEYxM1xuICA+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTAgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICZcbiAgICBGMiAmXG4gICAgRjMgJlxuICAgIEY0ICZcbiAgICBGNSAmXG4gICAgRjYgJlxuICAgIEY3ICZcbiAgICBGOCAmXG4gICAgRjkgJlxuICAgIEYxMCAmXG4gICAgRjExICZcbiAgICBGMTIgJlxuICAgIEYxMyAmXG4gICAgRjE0XG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU/OiB0cnVlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PixcbiAgZjEwOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5LCBGMTA+LFxuICBmMTE6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAsXG4gICAgRjExXG4gID4sXG4gIGYxMjogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSxcbiAgICBGMTJcbiAgPixcbiAgZjEzOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExICYgRjEyLFxuICAgIEYxM1xuICA+LFxuICBmMTQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAgJiBGMTEgJiBGMTIgJiBGMTMsXG4gICAgRjE0XG4gID5cbik6IFR5cGU8U2lnbmFsU3RvcmVNZW1iZXJzPFI+ICYgU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+Pj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjYgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY3IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjkgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjExIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjE0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmXG4gICAgRjIgJlxuICAgIEYzICZcbiAgICBGNCAmXG4gICAgRjUgJlxuICAgIEY2ICZcbiAgICBGNyAmXG4gICAgRjggJlxuICAgIEY5ICZcbiAgICBGMTAgJlxuICAgIEYxMSAmXG4gICAgRjEyICZcbiAgICBGMTMgJlxuICAgIEYxNCAmXG4gICAgRjE1XG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU/OiB0cnVlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PixcbiAgZjEwOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5LCBGMTA+LFxuICBmMTE6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAsXG4gICAgRjExXG4gID4sXG4gIGYxMjogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSxcbiAgICBGMTJcbiAgPixcbiAgZjEzOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExICYgRjEyLFxuICAgIEYxM1xuICA+LFxuICBmMTQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAgJiBGMTEgJiBGMTIgJiBGMTMsXG4gICAgRjE0XG4gID4sXG4gIGYxNTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSAmIEYxMiAmIEYxMyAmIEYxNCxcbiAgICBGMTVcbiAgPlxuKTogVHlwZTxTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxSWydzdGF0ZSddPj4+PjtcblxuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0PihcbiAgY29uZmlnOiB7IHByb3ZpZGVkSW4/OiAncm9vdCc7IHByb3RlY3RlZFN0YXRlOiBmYWxzZSB9LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+XG4pOiBUeXBlPFxuICBTaWduYWxTdG9yZU1lbWJlcnM8RjE+ICZcbiAgICBXcml0YWJsZVN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPEYxWydzdGF0ZSddPj4+XG4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmIEYyXG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU6IGZhbHNlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+XG4pOiBUeXBlPFxuICBTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBXcml0YWJsZVN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj5cbj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmIEYyICYgRjNcbj4oXG4gIGNvbmZpZzogeyBwcm92aWRlZEluPzogJ3Jvb3QnOyBwcm90ZWN0ZWRTdGF0ZTogZmFsc2UgfSxcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+XG4pOiBUeXBlPFxuICBTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBXcml0YWJsZVN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj5cbj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJiBGMiAmIEYzICYgRjRcbj4oXG4gIGNvbmZpZzogeyBwcm92aWRlZEluPzogJ3Jvb3QnOyBwcm90ZWN0ZWRTdGF0ZTogZmFsc2UgfSxcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+XG4pOiBUeXBlPFxuICBTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBXcml0YWJsZVN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj5cbj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICYgRjIgJiBGMyAmIEY0ICYgRjVcbj4oXG4gIGNvbmZpZzogeyBwcm92aWRlZEluPzogJ3Jvb3QnOyBwcm90ZWN0ZWRTdGF0ZTogZmFsc2UgfSxcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+LFxuICBmNTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0LCBGNT5cbik6IFR5cGU8XG4gIFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFdyaXRhYmxlU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+PlxuPjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNlxuPihcbiAgY29uZmlnOiB7IHByb3ZpZGVkSW4/OiAncm9vdCc7IHByb3RlY3RlZFN0YXRlOiBmYWxzZSB9LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj5cbik6IFR5cGU8XG4gIFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFdyaXRhYmxlU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+PlxuPjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjcgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGN1xuPihcbiAgY29uZmlnOiB7IHByb3ZpZGVkSW4/OiAncm9vdCc7IHByb3RlY3RlZFN0YXRlOiBmYWxzZSB9LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz5cbik6IFR5cGU8XG4gIFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFdyaXRhYmxlU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+PlxuPjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjcgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY4IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOFxuPihcbiAgY29uZmlnOiB7IHByb3ZpZGVkSW4/OiAncm9vdCc7IHByb3RlY3RlZFN0YXRlOiBmYWxzZSB9LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz4sXG4gIGY4OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcsIEY4PlxuKTogVHlwZTxcbiAgU2lnbmFsU3RvcmVNZW1iZXJzPFI+ICYgV3JpdGFibGVTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxSWydzdGF0ZSddPj4+XG4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOVxuPihcbiAgY29uZmlnOiB7IHByb3ZpZGVkSW4/OiAncm9vdCc7IHByb3RlY3RlZFN0YXRlOiBmYWxzZSB9LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz4sXG4gIGY4OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcsIEY4PixcbiAgZjk6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4LCBGOT5cbik6IFR5cGU8XG4gIFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFdyaXRhYmxlU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+PlxuPjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjcgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY4IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEwIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOSAmXG4gICAgRjEwXG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU6IGZhbHNlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PixcbiAgZjEwOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5LCBGMTA+XG4pOiBUeXBlPFxuICBTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBXcml0YWJsZVN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj5cbj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjYgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY3IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjkgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjExIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOSAmXG4gICAgRjEwICZcbiAgICBGMTFcbj4oXG4gIGNvbmZpZzogeyBwcm92aWRlZEluPzogJ3Jvb3QnOyBwcm90ZWN0ZWRTdGF0ZTogZmFsc2UgfSxcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+LFxuICBmNTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0LCBGNT4sXG4gIGY2OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSwgRjY+LFxuICBmNzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiwgRjc+LFxuICBmODogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3LCBGOD4sXG4gIGY5OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCwgRjk+LFxuICBmMTA6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjksIEYxMD4sXG4gIGYxMTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCwgRjExPlxuKTogVHlwZTxcbiAgU2lnbmFsU3RvcmVNZW1iZXJzPFI+ICYgV3JpdGFibGVTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxSWydzdGF0ZSddPj4+XG4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTAgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOSAmXG4gICAgRjEwICZcbiAgICBGMTEgJlxuICAgIEYxMlxuPihcbiAgY29uZmlnOiB7IHByb3ZpZGVkSW4/OiAncm9vdCc7IHByb3RlY3RlZFN0YXRlOiBmYWxzZSB9LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz4sXG4gIGY4OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcsIEY4PixcbiAgZjk6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4LCBGOT4sXG4gIGYxMDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSwgRjEwPixcbiAgZjExOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwLFxuICAgIEYxMVxuICA+LFxuICBmMTI6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAgJiBGMTEsXG4gICAgRjEyXG4gID5cbik6IFR5cGU8XG4gIFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFdyaXRhYmxlU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+PlxuPjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjcgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY4IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEwIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOSAmXG4gICAgRjEwICZcbiAgICBGMTEgJlxuICAgIEYxMiAmXG4gICAgRjEzXG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU6IGZhbHNlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PixcbiAgZjEwOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5LCBGMTA+LFxuICBmMTE6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAsXG4gICAgRjExXG4gID4sXG4gIGYxMjogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSxcbiAgICBGMTJcbiAgPixcbiAgZjEzOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExICYgRjEyLFxuICAgIEYxM1xuICA+XG4pOiBUeXBlPFxuICBTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBXcml0YWJsZVN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj5cbj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjYgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY3IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjkgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjExIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjE0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOSAmXG4gICAgRjEwICZcbiAgICBGMTEgJlxuICAgIEYxMiAmXG4gICAgRjEzICZcbiAgICBGMTRcbj4oXG4gIGNvbmZpZzogeyBwcm92aWRlZEluPzogJ3Jvb3QnOyBwcm90ZWN0ZWRTdGF0ZTogZmFsc2UgfSxcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+LFxuICBmNTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0LCBGNT4sXG4gIGY2OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSwgRjY+LFxuICBmNzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiwgRjc+LFxuICBmODogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3LCBGOD4sXG4gIGY5OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCwgRjk+LFxuICBmMTA6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjksIEYxMD4sXG4gIGYxMTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCxcbiAgICBGMTFcbiAgPixcbiAgZjEyOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExLFxuICAgIEYxMlxuICA+LFxuICBmMTM6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAgJiBGMTEgJiBGMTIsXG4gICAgRjEzXG4gID4sXG4gIGYxNDogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSAmIEYxMiAmIEYxMyxcbiAgICBGMTRcbiAgPlxuKTogVHlwZTxcbiAgU2lnbmFsU3RvcmVNZW1iZXJzPFI+ICYgV3JpdGFibGVTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxSWydzdGF0ZSddPj4+XG4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTAgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjE1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOSAmXG4gICAgRjEwICZcbiAgICBGMTEgJlxuICAgIEYxMiAmXG4gICAgRjEzICZcbiAgICBGMTQgJlxuICAgIEYxNVxuPihcbiAgY29uZmlnOiB7IHByb3ZpZGVkSW4/OiAncm9vdCc7IHByb3RlY3RlZFN0YXRlOiBmYWxzZSB9LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz4sXG4gIGY4OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcsIEY4PixcbiAgZjk6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4LCBGOT4sXG4gIGYxMDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSwgRjEwPixcbiAgZjExOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwLFxuICAgIEYxMVxuICA+LFxuICBmMTI6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAgJiBGMTEsXG4gICAgRjEyXG4gID4sXG4gIGYxMzogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSAmIEYxMixcbiAgICBGMTNcbiAgPixcbiAgZjE0OiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExICYgRjEyICYgRjEzLFxuICAgIEYxNFxuICA+LFxuICBmMTU6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAgJiBGMTEgJiBGMTIgJiBGMTMgJiBGMTQsXG4gICAgRjE1XG4gID5cbik6IFR5cGU8XG4gIFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFdyaXRhYmxlU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+PlxuPjtcblxuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlKFxuICAuLi5hcmdzOiBbU2lnbmFsU3RvcmVDb25maWcsIC4uLlNpZ25hbFN0b3JlRmVhdHVyZVtdXSB8IFNpZ25hbFN0b3JlRmVhdHVyZVtdXG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxhbnk+PiB7XG4gIGNvbnN0IHNpZ25hbFN0b3JlQXJncyA9IFsuLi5hcmdzXTtcblxuICBjb25zdCBjb25maWcgPVxuICAgIHR5cGVvZiBzaWduYWxTdG9yZUFyZ3NbMF0gPT09ICdmdW5jdGlvbidcbiAgICAgID8ge31cbiAgICAgIDogKHNpZ25hbFN0b3JlQXJncy5zaGlmdCgpIGFzIFNpZ25hbFN0b3JlQ29uZmlnKTtcbiAgY29uc3QgZmVhdHVyZXMgPSBzaWduYWxTdG9yZUFyZ3MgYXMgU2lnbmFsU3RvcmVGZWF0dXJlW107XG5cbiAgQEluamVjdGFibGUoeyBwcm92aWRlZEluOiBjb25maWcucHJvdmlkZWRJbiB8fCBudWxsIH0pXG4gIGNsYXNzIFNpZ25hbFN0b3JlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIGNvbnN0IGlubmVyU3RvcmUgPSBmZWF0dXJlcy5yZWR1Y2UoXG4gICAgICAgIChzdG9yZSwgZmVhdHVyZSkgPT4gZmVhdHVyZShzdG9yZSksXG4gICAgICAgIGdldEluaXRpYWxJbm5lclN0b3JlKClcbiAgICAgICk7XG4gICAgICBjb25zdCB7IHN0YXRlU2lnbmFscywgY29tcHV0ZWRTaWduYWxzLCBtZXRob2RzLCBob29rcyB9ID0gaW5uZXJTdG9yZTtcbiAgICAgIGNvbnN0IHN0b3JlTWVtYmVycyA9IHsgLi4uc3RhdGVTaWduYWxzLCAuLi5jb21wdXRlZFNpZ25hbHMsIC4uLm1ldGhvZHMgfTtcblxuICAgICAgKHRoaXMgYXMgYW55KVtTVEFURV9TT1VSQ0VdID0gaW5uZXJTdG9yZVtTVEFURV9TT1VSQ0VdO1xuXG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBzdG9yZU1lbWJlcnMpIHtcbiAgICAgICAgKHRoaXMgYXMgYW55KVtrZXldID0gc3RvcmVNZW1iZXJzW2tleV07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgb25Jbml0LCBvbkRlc3Ryb3kgfSA9IGhvb2tzO1xuXG4gICAgICBpZiAob25Jbml0KSB7XG4gICAgICAgIG9uSW5pdCgpO1xuICAgICAgfVxuXG4gICAgICBpZiAob25EZXN0cm95KSB7XG4gICAgICAgIGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3kob25EZXN0cm95KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gU2lnbmFsU3RvcmU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbml0aWFsSW5uZXJTdG9yZSgpOiBJbm5lclNpZ25hbFN0b3JlIHtcbiAgcmV0dXJuIHtcbiAgICBbU1RBVEVfU09VUkNFXTogc2lnbmFsKHt9KSxcbiAgICBzdGF0ZVNpZ25hbHM6IHt9LFxuICAgIGNvbXB1dGVkU2lnbmFsczoge30sXG4gICAgbWV0aG9kczoge30sXG4gICAgaG9va3M6IHt9LFxuICB9O1xufVxuIl19
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { assertInInjectionContext, DestroyRef, inject, Injector, untracked, } from '@angular/core';
|
|
2
|
-
import { SIGNAL } from '@angular/core/primitives/signals';
|
|
3
2
|
const STATE_WATCHERS = new WeakMap();
|
|
4
3
|
export const STATE_SOURCE = Symbol('STATE_SOURCE');
|
|
5
4
|
export function patchState(stateSource, ...updaters) {
|
|
@@ -25,7 +24,7 @@ export function watchState(stateSource, watcher, config) {
|
|
|
25
24
|
return { destroy };
|
|
26
25
|
}
|
|
27
26
|
function getWatchers(stateSource) {
|
|
28
|
-
return STATE_WATCHERS.get(stateSource[STATE_SOURCE]
|
|
27
|
+
return STATE_WATCHERS.get(stateSource[STATE_SOURCE]) || [];
|
|
29
28
|
}
|
|
30
29
|
function notifyWatchers(stateSource) {
|
|
31
30
|
const watchers = getWatchers(stateSource);
|
|
@@ -36,13 +35,10 @@ function notifyWatchers(stateSource) {
|
|
|
36
35
|
}
|
|
37
36
|
function addWatcher(stateSource, watcher) {
|
|
38
37
|
const watchers = getWatchers(stateSource);
|
|
39
|
-
STATE_WATCHERS.set(stateSource[STATE_SOURCE][
|
|
40
|
-
...watchers,
|
|
41
|
-
watcher,
|
|
42
|
-
]);
|
|
38
|
+
STATE_WATCHERS.set(stateSource[STATE_SOURCE], [...watchers, watcher]);
|
|
43
39
|
}
|
|
44
40
|
function removeWatcher(stateSource, watcher) {
|
|
45
41
|
const watchers = getWatchers(stateSource);
|
|
46
|
-
STATE_WATCHERS.set(stateSource[STATE_SOURCE]
|
|
42
|
+
STATE_WATCHERS.set(stateSource[STATE_SOURCE], watchers.filter((w) => w !== watcher));
|
|
47
43
|
}
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9zaWduYWxzL3NyYy9zdGF0ZS1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixVQUFVLEVBQ1YsTUFBTSxFQUNOLFFBQVEsRUFFUixTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFHdkIsTUFBTSxjQUFjLEdBQUcsSUFBSSxPQUFPLEVBQTRDLENBQUM7QUFFL0UsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztBQWtCbkQsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsV0FBdUMsRUFDdkMsR0FBRyxRQUVGO0lBRUQsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQ2hELFFBQVEsQ0FBQyxNQUFNLENBQ2IsQ0FBQyxTQUFnQixFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QixHQUFHLFNBQVM7UUFDWixHQUFHLENBQUMsT0FBTyxPQUFPLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztLQUNsRSxDQUFDLEVBQ0YsWUFBWSxDQUNiLENBQ0YsQ0FBQztJQUVGLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FDdEIsV0FBK0I7SUFFL0IsT0FBTyxXQUFXLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztBQUNyQyxDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsV0FBK0IsRUFDL0IsT0FBNEIsRUFDNUIsTUFBZ0M7SUFFaEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUN0Qix3QkFBd0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxFQUFFLFFBQVEsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEQsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUU1QyxVQUFVLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2pDLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUUvQixNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzFELFVBQVUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFOUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO0FBQ3JCLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FDbEIsV0FBK0I7SUFFL0IsT0FBTyxjQUFjLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUM3RCxDQUFDO0FBRUQsU0FBUyxjQUFjLENBQ3JCLFdBQStCO0lBRS9CLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUUxQyxLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQy9CLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNyRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakIsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FDakIsV0FBK0IsRUFDL0IsT0FBNEI7SUFFNUIsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUN4RSxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQ3BCLFdBQStCLEVBQy9CLE9BQTRCO0lBRTVCLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMxQyxjQUFjLENBQUMsR0FBRyxDQUNoQixXQUFXLENBQUMsWUFBWSxDQUFDLEVBQ3pCLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxPQUFPLENBQUMsQ0FDdEMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhc3NlcnRJbkluamVjdGlvbkNvbnRleHQsXG4gIERlc3Ryb3lSZWYsXG4gIGluamVjdCxcbiAgSW5qZWN0b3IsXG4gIFNpZ25hbCxcbiAgdW50cmFja2VkLFxuICBXcml0YWJsZVNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcmV0dGlmeSB9IGZyb20gJy4vdHMtaGVscGVycyc7XG5cbmNvbnN0IFNUQVRFX1dBVENIRVJTID0gbmV3IFdlYWtNYXA8U2lnbmFsPG9iamVjdD4sIEFycmF5PFN0YXRlV2F0Y2hlcjxhbnk+Pj4oKTtcblxuZXhwb3J0IGNvbnN0IFNUQVRFX1NPVVJDRSA9IFN5bWJvbCgnU1RBVEVfU09VUkNFJyk7XG5cbmV4cG9ydCB0eXBlIFdyaXRhYmxlU3RhdGVTb3VyY2U8U3RhdGUgZXh0ZW5kcyBvYmplY3Q+ID0ge1xuICBbU1RBVEVfU09VUkNFXTogV3JpdGFibGVTaWduYWw8U3RhdGU+O1xufTtcblxuZXhwb3J0IHR5cGUgU3RhdGVTb3VyY2U8U3RhdGUgZXh0ZW5kcyBvYmplY3Q+ID0ge1xuICBbU1RBVEVfU09VUkNFXTogU2lnbmFsPFN0YXRlPjtcbn07XG5cbmV4cG9ydCB0eXBlIFBhcnRpYWxTdGF0ZVVwZGF0ZXI8U3RhdGUgZXh0ZW5kcyBvYmplY3Q+ID0gKFxuICBzdGF0ZTogU3RhdGVcbikgPT4gUGFydGlhbDxTdGF0ZT47XG5cbmV4cG9ydCB0eXBlIFN0YXRlV2F0Y2hlcjxTdGF0ZSBleHRlbmRzIG9iamVjdD4gPSAoXG4gIHN0YXRlOiBOb0luZmVyPFN0YXRlPlxuKSA9PiB2b2lkO1xuXG5leHBvcnQgZnVuY3Rpb24gcGF0Y2hTdGF0ZTxTdGF0ZSBleHRlbmRzIG9iamVjdD4oXG4gIHN0YXRlU291cmNlOiBXcml0YWJsZVN0YXRlU291cmNlPFN0YXRlPixcbiAgLi4udXBkYXRlcnM6IEFycmF5PFxuICAgIFBhcnRpYWw8UHJldHRpZnk8U3RhdGU+PiB8IFBhcnRpYWxTdGF0ZVVwZGF0ZXI8UHJldHRpZnk8U3RhdGU+PlxuICA+XG4pOiB2b2lkIHtcbiAgc3RhdGVTb3VyY2VbU1RBVEVfU09VUkNFXS51cGRhdGUoKGN1cnJlbnRTdGF0ZSkgPT5cbiAgICB1cGRhdGVycy5yZWR1Y2UoXG4gICAgICAobmV4dFN0YXRlOiBTdGF0ZSwgdXBkYXRlcikgPT4gKHtcbiAgICAgICAgLi4ubmV4dFN0YXRlLFxuICAgICAgICAuLi4odHlwZW9mIHVwZGF0ZXIgPT09ICdmdW5jdGlvbicgPyB1cGRhdGVyKG5leHRTdGF0ZSkgOiB1cGRhdGVyKSxcbiAgICAgIH0pLFxuICAgICAgY3VycmVudFN0YXRlXG4gICAgKVxuICApO1xuXG4gIG5vdGlmeVdhdGNoZXJzKHN0YXRlU291cmNlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YXRlPFN0YXRlIGV4dGVuZHMgb2JqZWN0PihcbiAgc3RhdGVTb3VyY2U6IFN0YXRlU291cmNlPFN0YXRlPlxuKTogU3RhdGUge1xuICByZXR1cm4gc3RhdGVTb3VyY2VbU1RBVEVfU09VUkNFXSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2F0Y2hTdGF0ZTxTdGF0ZSBleHRlbmRzIG9iamVjdD4oXG4gIHN0YXRlU291cmNlOiBTdGF0ZVNvdXJjZTxTdGF0ZT4sXG4gIHdhdGNoZXI6IFN0YXRlV2F0Y2hlcjxTdGF0ZT4sXG4gIGNvbmZpZz86IHsgaW5qZWN0b3I/OiBJbmplY3RvciB9XG4pOiB7IGRlc3Ryb3koKTogdm9pZCB9IHtcbiAgaWYgKCFjb25maWc/LmluamVjdG9yKSB7XG4gICAgYXNzZXJ0SW5JbmplY3Rpb25Db250ZXh0KHdhdGNoU3RhdGUpO1xuICB9XG5cbiAgY29uc3QgaW5qZWN0b3IgPSBjb25maWc/LmluamVjdG9yID8/IGluamVjdChJbmplY3Rvcik7XG4gIGNvbnN0IGRlc3Ryb3lSZWYgPSBpbmplY3Rvci5nZXQoRGVzdHJveVJlZik7XG5cbiAgYWRkV2F0Y2hlcihzdGF0ZVNvdXJjZSwgd2F0Y2hlcik7XG4gIHdhdGNoZXIoZ2V0U3RhdGUoc3RhdGVTb3VyY2UpKTtcblxuICBjb25zdCBkZXN0cm95ID0gKCkgPT4gcmVtb3ZlV2F0Y2hlcihzdGF0ZVNvdXJjZSwgd2F0Y2hlcik7XG4gIGRlc3Ryb3lSZWYub25EZXN0cm95KGRlc3Ryb3kpO1xuXG4gIHJldHVybiB7IGRlc3Ryb3kgfTtcbn1cblxuZnVuY3Rpb24gZ2V0V2F0Y2hlcnM8U3RhdGUgZXh0ZW5kcyBvYmplY3Q+KFxuICBzdGF0ZVNvdXJjZTogU3RhdGVTb3VyY2U8U3RhdGU+XG4pOiBBcnJheTxTdGF0ZVdhdGNoZXI8U3RhdGU+PiB7XG4gIHJldHVybiBTVEFURV9XQVRDSEVSUy5nZXQoc3RhdGVTb3VyY2VbU1RBVEVfU09VUkNFXSkgfHwgW107XG59XG5cbmZ1bmN0aW9uIG5vdGlmeVdhdGNoZXJzPFN0YXRlIGV4dGVuZHMgb2JqZWN0PihcbiAgc3RhdGVTb3VyY2U6IFN0YXRlU291cmNlPFN0YXRlPlxuKTogdm9pZCB7XG4gIGNvbnN0IHdhdGNoZXJzID0gZ2V0V2F0Y2hlcnMoc3RhdGVTb3VyY2UpO1xuXG4gIGZvciAoY29uc3Qgd2F0Y2hlciBvZiB3YXRjaGVycykge1xuICAgIGNvbnN0IHN0YXRlID0gdW50cmFja2VkKCgpID0+IGdldFN0YXRlKHN0YXRlU291cmNlKSk7XG4gICAgd2F0Y2hlcihzdGF0ZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYWRkV2F0Y2hlcjxTdGF0ZSBleHRlbmRzIG9iamVjdD4oXG4gIHN0YXRlU291cmNlOiBTdGF0ZVNvdXJjZTxTdGF0ZT4sXG4gIHdhdGNoZXI6IFN0YXRlV2F0Y2hlcjxTdGF0ZT5cbik6IHZvaWQge1xuICBjb25zdCB3YXRjaGVycyA9IGdldFdhdGNoZXJzKHN0YXRlU291cmNlKTtcbiAgU1RBVEVfV0FUQ0hFUlMuc2V0KHN0YXRlU291cmNlW1NUQVRFX1NPVVJDRV0sIFsuLi53YXRjaGVycywgd2F0Y2hlcl0pO1xufVxuXG5mdW5jdGlvbiByZW1vdmVXYXRjaGVyPFN0YXRlIGV4dGVuZHMgb2JqZWN0PihcbiAgc3RhdGVTb3VyY2U6IFN0YXRlU291cmNlPFN0YXRlPixcbiAgd2F0Y2hlcjogU3RhdGVXYXRjaGVyPFN0YXRlPlxuKTogdm9pZCB7XG4gIGNvbnN0IHdhdGNoZXJzID0gZ2V0V2F0Y2hlcnMoc3RhdGVTb3VyY2UpO1xuICBTVEFURV9XQVRDSEVSUy5zZXQoXG4gICAgc3RhdGVTb3VyY2VbU1RBVEVfU09VUkNFXSxcbiAgICB3YXRjaGVycy5maWx0ZXIoKHcpID0+IHcgIT09IHdhdGNoZXIpXG4gICk7XG59XG4iXX0=
|
|
@@ -1,36 +1,52 @@
|
|
|
1
1
|
import { assertInInjectionContext, inject, Injector, DestroyRef, isSignal, effect, untracked } from '@angular/core';
|
|
2
|
-
import { Subject,
|
|
2
|
+
import { Subject, noop, isObservable } from 'rxjs';
|
|
3
3
|
|
|
4
4
|
function rxMethod(generator, config) {
|
|
5
5
|
if (!config?.injector) {
|
|
6
6
|
assertInInjectionContext(rxMethod);
|
|
7
7
|
}
|
|
8
|
-
const
|
|
9
|
-
const destroyRef = injector.get(DestroyRef);
|
|
8
|
+
const sourceInjector = config?.injector ?? inject(Injector);
|
|
10
9
|
const source$ = new Subject();
|
|
11
10
|
const sourceSub = generator(source$).subscribe();
|
|
12
|
-
|
|
13
|
-
const rxMethodFn = (input) => {
|
|
11
|
+
sourceInjector.get(DestroyRef).onDestroy(() => sourceSub.unsubscribe());
|
|
12
|
+
const rxMethodFn = (input, config) => {
|
|
13
|
+
if (isStatic(input)) {
|
|
14
|
+
source$.next(input);
|
|
15
|
+
return { unsubscribe: noop };
|
|
16
|
+
}
|
|
17
|
+
const instanceInjector = config?.injector ?? getCallerInjector() ?? sourceInjector;
|
|
14
18
|
if (isSignal(input)) {
|
|
15
19
|
const watcher = effect(() => {
|
|
16
20
|
const value = input();
|
|
17
21
|
untracked(() => source$.next(value));
|
|
18
|
-
}, { injector });
|
|
22
|
+
}, { injector: instanceInjector });
|
|
19
23
|
const instanceSub = { unsubscribe: () => watcher.destroy() };
|
|
20
24
|
sourceSub.add(instanceSub);
|
|
21
25
|
return instanceSub;
|
|
22
26
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
const instanceSub = input.subscribe((value) => source$.next(value));
|
|
28
|
+
sourceSub.add(instanceSub);
|
|
29
|
+
if (instanceInjector !== sourceInjector) {
|
|
30
|
+
instanceInjector
|
|
31
|
+
.get(DestroyRef)
|
|
32
|
+
.onDestroy(() => instanceSub.unsubscribe());
|
|
27
33
|
}
|
|
28
|
-
|
|
29
|
-
return { unsubscribe: noop };
|
|
34
|
+
return instanceSub;
|
|
30
35
|
};
|
|
31
36
|
rxMethodFn.unsubscribe = sourceSub.unsubscribe.bind(sourceSub);
|
|
32
37
|
return rxMethodFn;
|
|
33
38
|
}
|
|
39
|
+
function isStatic(value) {
|
|
40
|
+
return !isSignal(value) && !isObservable(value);
|
|
41
|
+
}
|
|
42
|
+
function getCallerInjector() {
|
|
43
|
+
try {
|
|
44
|
+
return inject(Injector);
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
34
50
|
|
|
35
51
|
/**
|
|
36
52
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngrx-signals-rxjs-interop.mjs","sources":["../../../../modules/signals/rxjs-interop/src/rx-method.ts","../../../../modules/signals/rxjs-interop/ngrx-signals-rxjs-interop.ts"],"sourcesContent":["import {\n assertInInjectionContext,\n DestroyRef,\n effect,\n inject,\n Injector,\n isSignal,\n Signal,\n untracked,\n} from '@angular/core';\nimport { isObservable, noop, Observable, Subject, Unsubscribable } from 'rxjs';\n\ntype RxMethod<Input> = ((\n input: Input | Signal<Input> | Observable<Input
|
|
1
|
+
{"version":3,"file":"ngrx-signals-rxjs-interop.mjs","sources":["../../../../modules/signals/rxjs-interop/src/rx-method.ts","../../../../modules/signals/rxjs-interop/ngrx-signals-rxjs-interop.ts"],"sourcesContent":["import {\n assertInInjectionContext,\n DestroyRef,\n effect,\n inject,\n Injector,\n isSignal,\n Signal,\n untracked,\n} from '@angular/core';\nimport { isObservable, noop, Observable, Subject, Unsubscribable } from 'rxjs';\n\ntype RxMethod<Input> = ((\n input: Input | Signal<Input> | Observable<Input>,\n config?: { injector?: Injector }\n) => Unsubscribable) &\n Unsubscribable;\n\nexport function rxMethod<Input>(\n generator: (source$: Observable<Input>) => Observable<unknown>,\n config?: { injector?: Injector }\n): RxMethod<Input> {\n if (!config?.injector) {\n assertInInjectionContext(rxMethod);\n }\n\n const sourceInjector = config?.injector ?? inject(Injector);\n const source$ = new Subject<Input>();\n const sourceSub = generator(source$).subscribe();\n sourceInjector.get(DestroyRef).onDestroy(() => sourceSub.unsubscribe());\n\n const rxMethodFn = (\n input: Input | Signal<Input> | Observable<Input>,\n config?: { injector?: Injector }\n ) => {\n if (isStatic(input)) {\n source$.next(input);\n return { unsubscribe: noop };\n }\n\n const instanceInjector =\n config?.injector ?? getCallerInjector() ?? sourceInjector;\n\n if (isSignal(input)) {\n const watcher = effect(\n () => {\n const value = input();\n untracked(() => source$.next(value));\n },\n { injector: instanceInjector }\n );\n const instanceSub = { unsubscribe: () => watcher.destroy() };\n sourceSub.add(instanceSub);\n\n return instanceSub;\n }\n\n const instanceSub = input.subscribe((value) => source$.next(value));\n sourceSub.add(instanceSub);\n\n if (instanceInjector !== sourceInjector) {\n instanceInjector\n .get(DestroyRef)\n .onDestroy(() => instanceSub.unsubscribe());\n }\n\n return instanceSub;\n };\n rxMethodFn.unsubscribe = sourceSub.unsubscribe.bind(sourceSub);\n\n return rxMethodFn;\n}\n\nfunction isStatic<T>(value: T | Signal<T> | Observable<T>): value is T {\n return !isSignal(value) && !isObservable(value);\n}\n\nfunction getCallerInjector(): Injector | null {\n try {\n return inject(Injector);\n } catch {\n return null;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAkBgB,SAAA,QAAQ,CACtB,SAA8D,EAC9D,MAAgC,EAAA;AAEhC,IAAA,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE;QACrB,wBAAwB,CAAC,QAAQ,CAAC,CAAC;KACpC;IAED,MAAM,cAAc,GAAG,MAAM,EAAE,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC5D,IAAA,MAAM,OAAO,GAAG,IAAI,OAAO,EAAS,CAAC;IACrC,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC;AACjD,IAAA,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAM,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;AAExE,IAAA,MAAM,UAAU,GAAG,CACjB,KAAgD,EAChD,MAAgC,KAC9B;AACF,QAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;AACnB,YAAA,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpB,YAAA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;SAC9B;QAED,MAAM,gBAAgB,GACpB,MAAM,EAAE,QAAQ,IAAI,iBAAiB,EAAE,IAAI,cAAc,CAAC;AAE5D,QAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;AACnB,YAAA,MAAM,OAAO,GAAG,MAAM,CACpB,MAAK;AACH,gBAAA,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC;gBACtB,SAAS,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACvC,aAAC,EACD,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAC/B,CAAC;AACF,YAAA,MAAM,WAAW,GAAG,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;AAC7D,YAAA,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAE3B,YAAA,OAAO,WAAW,CAAC;SACpB;AAED,QAAA,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACpE,QAAA,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAE3B,QAAA,IAAI,gBAAgB,KAAK,cAAc,EAAE;YACvC,gBAAgB;iBACb,GAAG,CAAC,UAAU,CAAC;iBACf,SAAS,CAAC,MAAM,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;SAC/C;AAED,QAAA,OAAO,WAAW,CAAC;AACrB,KAAC,CAAC;IACF,UAAU,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAE/D,IAAA,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,QAAQ,CAAI,KAAoC,EAAA;IACvD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,iBAAiB,GAAA;AACxB,IAAA,IAAI;AACF,QAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;KACzB;AAAC,IAAA,MAAM;AACN,QAAA,OAAO,IAAI,CAAC;KACb;AACH;;ACnFA;;AAEG;;;;"}
|