valtech-components 4.0.595 → 4.0.596

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.
@@ -1,6 +1,6 @@
1
1
  import { Injectable, inject } from '@angular/core';
2
2
  import { Auth } from '@angular/fire/auth';
3
- import { Firestore, doc, onSnapshot, serverTimestamp, setDoc } from '@angular/fire/firestore';
3
+ import { Firestore, doc, onSnapshot, setDoc } from '@angular/fire/firestore';
4
4
  import { Observable, from, of, switchMap } from 'rxjs';
5
5
  import { FirebaseService } from '../../../services/firebase/firebase.service';
6
6
  import * as i0 from "@angular/core";
@@ -48,11 +48,9 @@ export class ChessimalsAdventureProgressService {
48
48
  };
49
49
  const totalStars = Object.values(completedNodes).reduce((s, n) => s + n.stars, 0);
50
50
  await setDoc(this.progressRef(uid), {
51
- userId: uid,
52
51
  completedNodes,
53
52
  totalStars,
54
53
  updatedAt: new Date().toISOString(),
55
- updatedAtServer: serverTimestamp(),
56
54
  }, { merge: true });
57
55
  }
58
56
  empty() {
@@ -76,4 +74,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
76
74
  type: Injectable,
77
75
  args: [{ providedIn: 'root' }]
78
76
  }] });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlc3NpbWFscy1hZHZlbnR1cmUtcHJvZ3Jlc3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvbWluaS1nYW1lcy9jaGVzc2ltYWxzLWFkdmVudHVyZS1wcm9ncmVzcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlGLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOztBQUk5RSxNQUFNLE9BQU8sa0NBQWtDO0lBRC9DO1FBRW1CLGlCQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLGNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztLQWtGckQ7SUFoRkMsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUM7SUFDNUMsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ3JELFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDYixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQzVCLElBQUks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Q3BCLGNBQWMsRUFBRSxLQUFLLENBQUMsY0FBYyxJQUFJLEVBQUU7WUFDMUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLElBQUksQ0FBQztZQUNqQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsSUFBSSxFQUFFO1NBQ2pDLENBQUM7SUFDSixDQUFDO0lBRU8sV0FBVyxDQUFDLEdBQVc7UUFDN0IsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLEdBQUcsMENBQTBDLENBQUMsQ0FBQztJQUNyRixDQUFDOytHQXBGVSxrQ0FBa0M7bUhBQWxDLGtDQUFrQyxjQURyQixNQUFNOzs0RkFDbkIsa0NBQWtDO2tCQUQ5QyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXV0aCB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvYXV0aCc7XG5pbXBvcnQgeyBGaXJlc3RvcmUsIGRvYywgb25TbmFwc2hvdCwgc2VydmVyVGltZXN0YW1wLCBzZXREb2MgfSBmcm9tICdAYW5ndWxhci9maXJlL2ZpcmVzdG9yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmcm9tLCBvZiwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEZpcmViYXNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZpcmViYXNlL2ZpcmViYXNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2hlc3NpbWFsc0FkdmVudHVyZU5vZGVSZXN1bHQsIENoZXNzaW1hbHNBZHZlbnR1cmVQcm9ncmVzcyB9IGZyb20gJy4vdHlwZXMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIENoZXNzaW1hbHNBZHZlbnR1cmVQcm9ncmVzc1NlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGZpcmViYXNlQXV0aCA9IGluamVjdChBdXRoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBmaXJlc3RvcmUgPSBpbmplY3QoRmlyZXN0b3JlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBmaXJlYmFzZSA9IGluamVjdChGaXJlYmFzZVNlcnZpY2UpO1xuXG4gIGdldCBjdXJyZW50VWlkKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZmlyZWJhc2VBdXRoLmN1cnJlbnRVc2VyPy51aWQ7XG4gIH1cblxuICB3YXRjaFByb2dyZXNzKCk6IE9ic2VydmFibGU8Q2hlc3NpbWFsc0FkdmVudHVyZVByb2dyZXNzIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIGZyb20odGhpcy5maXJlYmFzZS53aGVuRmlyZWJhc2VBdXRoUmVhZHkoKSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHVpZCA9IHRoaXMuY3VycmVudFVpZDtcbiAgICAgICAgaWYgKCF1aWQpIHJldHVybiBvZih1bmRlZmluZWQpO1xuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8Q2hlc3NpbWFsc0FkdmVudHVyZVByb2dyZXNzIHwgdW5kZWZpbmVkPihzdWJzY3JpYmVyID0+IHtcbiAgICAgICAgICBjb25zdCB1bnN1YnNjcmliZSA9IG9uU25hcHNob3QoXG4gICAgICAgICAgICB0aGlzLnByb2dyZXNzUmVmKHVpZCksXG4gICAgICAgICAgICBzbmFwID0+XG4gICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChcbiAgICAgICAgICAgICAgICBzbmFwLmV4aXN0cygpXG4gICAgICAgICAgICAgICAgICA/IHRoaXMubm9ybWFsaXplKHNuYXAuZGF0YSgpIGFzIFBhcnRpYWw8Q2hlc3NpbWFsc0FkdmVudHVyZVByb2dyZXNzPilcbiAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICBlcnIgPT4gc3Vic2NyaWJlci5lcnJvcihlcnIpXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gdW5zdWJzY3JpYmU7XG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmVjb3JkTm9kZUNvbXBsZXRlZChub2RlSWQ6IHN0cmluZywgc3RhcnM6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuZmlyZWJhc2Uud2hlbkZpcmViYXNlQXV0aFJlYWR5KCk7XG4gICAgY29uc3QgdWlkID0gdGhpcy5maXJlYmFzZUF1dGguY3VycmVudFVzZXI/LnVpZDtcbiAgICBpZiAoIXVpZCkgdGhyb3cgbmV3IEVycm9yKCdBRFZFTlRVUkVfTE9HSU5fUkVRVUlSRUQnKTtcblxuICAgIGNvbnN0IHNuYXAgPSBhd2FpdCBuZXcgUHJvbWlzZTxDaGVzc2ltYWxzQWR2ZW50dXJlUHJvZ3Jlc3M+KHJlc29sdmUgPT4ge1xuICAgICAgY29uc3QgdW5zdWIgPSBvblNuYXBzaG90KHRoaXMucHJvZ3Jlc3NSZWYodWlkKSwgcyA9PiB7XG4gICAgICAgIHVuc3ViKCk7XG4gICAgICAgIHJlc29sdmUoXG4gICAgICAgICAgcy5leGlzdHMoKVxuICAgICAgICAgICAgPyB0aGlzLm5vcm1hbGl6ZShzLmRhdGEoKSBhcyBQYXJ0aWFsPENoZXNzaW1hbHNBZHZlbnR1cmVQcm9ncmVzcz4pXG4gICAgICAgICAgICA6IHRoaXMuZW1wdHkoKVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBwcmV2ID0gc25hcC5jb21wbGV0ZWROb2Rlc1tub2RlSWRdO1xuICAgIGlmIChwcmV2ICYmIHByZXYuc3RhcnMgPj0gc3RhcnMpIHJldHVybjtcblxuICAgIGNvbnN0IGNvbXBsZXRlZE5vZGVzOiBSZWNvcmQ8c3RyaW5nLCBDaGVzc2ltYWxzQWR2ZW50dXJlTm9kZVJlc3VsdD4gPSB7XG4gICAgICAuLi5zbmFwLmNvbXBsZXRlZE5vZGVzLFxuICAgICAgW25vZGVJZF06IHsgc3RhcnMsIGNvbXBsZXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkgfSxcbiAgICB9O1xuICAgIGNvbnN0IHRvdGFsU3RhcnMgPSBPYmplY3QudmFsdWVzKGNvbXBsZXRlZE5vZGVzKS5yZWR1Y2UoKHMsIG4pID0+IHMgKyBuLnN0YXJzLCAwKTtcblxuICAgIGF3YWl0IHNldERvYyhcbiAgICAgIHRoaXMucHJvZ3Jlc3NSZWYodWlkKSxcbiAgICAgIHtcbiAgICAgICAgdXNlcklkOiB1aWQsXG4gICAgICAgIGNvbXBsZXRlZE5vZGVzLFxuICAgICAgICB0b3RhbFN0YXJzLFxuICAgICAgICB1cGRhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgdXBkYXRlZEF0U2VydmVyOiBzZXJ2ZXJUaW1lc3RhbXAoKSxcbiAgICAgIH0sXG4gICAgICB7IG1lcmdlOiB0cnVlIH1cbiAgICApO1xuICB9XG5cbiAgZW1wdHkoKTogQ2hlc3NpbWFsc0FkdmVudHVyZVByb2dyZXNzIHtcbiAgICByZXR1cm4geyBjb21wbGV0ZWROb2Rlczoge30sIHRvdGFsU3RhcnM6IDAsIHVwZGF0ZWRBdDogJycgfTtcbiAgfVxuXG4gIHByaXZhdGUgbm9ybWFsaXplKHZhbHVlOiBQYXJ0aWFsPENoZXNzaW1hbHNBZHZlbnR1cmVQcm9ncmVzcz4pOiBDaGVzc2ltYWxzQWR2ZW50dXJlUHJvZ3Jlc3Mge1xuICAgIHJldHVybiB7XG4gICAgICB1c2VySWQ6IHZhbHVlLnVzZXJJZCxcbiAgICAgIGNvbXBsZXRlZE5vZGVzOiB2YWx1ZS5jb21wbGV0ZWROb2RlcyA/PyB7fSxcbiAgICAgIHRvdGFsU3RhcnM6IHZhbHVlLnRvdGFsU3RhcnMgPz8gMCxcbiAgICAgIHVwZGF0ZWRBdDogdmFsdWUudXBkYXRlZEF0ID8/ICcnLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHByb2dyZXNzUmVmKHVpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGRvYyh0aGlzLmZpcmVzdG9yZSwgYHVzZXJzLyR7dWlkfS9taW5pR2FtZXMvY2hlc3NpbWFscy9hZHZlbnR1cmUvcHJvZ3Jlc3NgKTtcbiAgfVxufVxuIl19
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlc3NpbWFscy1hZHZlbnR1cmUtcHJvZ3Jlc3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvbWluaS1nYW1lcy9jaGVzc2ltYWxzLWFkdmVudHVyZS1wcm9ncmVzcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7O0FBSTlFLE1BQU0sT0FBTyxrQ0FBa0M7SUFEL0M7UUFFbUIsaUJBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsY0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QixhQUFRLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0tBZ0ZyRDtJQTlFQyxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQztJQUM1QyxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDckQsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNiLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDNUIsSUFBSSxDQUFDLEdBQUc7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QUFLLENBQUMsVUFBVSxJQUFJLENBQUM7WUFDakMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLElBQUksRUFBRTtTQUNqQyxDQUFDO0lBQ0osQ0FBQztJQUVPLFdBQVcsQ0FBQyxHQUFXO1FBQzdCLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUyxHQUFHLDBDQUEwQyxDQUFDLENBQUM7SUFDckYsQ0FBQzsrR0FsRlUsa0NBQWtDO21IQUFsQyxrQ0FBa0MsY0FEckIsTUFBTTs7NEZBQ25CLGtDQUFrQztrQkFEOUMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF1dGggfSBmcm9tICdAYW5ndWxhci9maXJlL2F1dGgnO1xuaW1wb3J0IHsgRmlyZXN0b3JlLCBkb2MsIG9uU25hcHNob3QsIHNldERvYyB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvZmlyZXN0b3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGZyb20sIG9mLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRmlyZWJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZmlyZWJhc2UvZmlyZWJhc2Uuc2VydmljZSc7XG5pbXBvcnQgeyBDaGVzc2ltYWxzQWR2ZW50dXJlTm9kZVJlc3VsdCwgQ2hlc3NpbWFsc0FkdmVudHVyZVByb2dyZXNzIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQ2hlc3NpbWFsc0FkdmVudHVyZVByb2dyZXNzU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmlyZWJhc2VBdXRoID0gaW5qZWN0KEF1dGgpO1xuICBwcml2YXRlIHJlYWRvbmx5IGZpcmVzdG9yZSA9IGluamVjdChGaXJlc3RvcmUpO1xuICBwcml2YXRlIHJlYWRvbmx5IGZpcmViYXNlID0gaW5qZWN0KEZpcmViYXNlU2VydmljZSk7XG5cbiAgZ2V0IGN1cnJlbnRVaWQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5maXJlYmFzZUF1dGguY3VycmVudFVzZXI/LnVpZDtcbiAgfVxuXG4gIHdhdGNoUHJvZ3Jlc3MoKTogT2JzZXJ2YWJsZTxDaGVzc2ltYWxzQWR2ZW50dXJlUHJvZ3Jlc3MgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLmZpcmViYXNlLndoZW5GaXJlYmFzZUF1dGhSZWFkeSgpKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgY29uc3QgdWlkID0gdGhpcy5jdXJyZW50VWlkO1xuICAgICAgICBpZiAoIXVpZCkgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxDaGVzc2ltYWxzQWR2ZW50dXJlUHJvZ3Jlc3MgfCB1bmRlZmluZWQ+KHN1YnNjcmliZXIgPT4ge1xuICAgICAgICAgIGNvbnN0IHVuc3Vic2NyaWJlID0gb25TbmFwc2hvdChcbiAgICAgICAgICAgIHRoaXMucHJvZ3Jlc3NSZWYodWlkKSxcbiAgICAgICAgICAgIHNuYXAgPT5cbiAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KFxuICAgICAgICAgICAgICAgIHNuYXAuZXhpc3RzKClcbiAgICAgICAgICAgICAgICAgID8gdGhpcy5ub3JtYWxpemUoc25hcC5kYXRhKCkgYXMgUGFydGlhbDxDaGVzc2ltYWxzQWR2ZW50dXJlUHJvZ3Jlc3M+KVxuICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGVyciA9PiBzdWJzY3JpYmVyLmVycm9yKGVycilcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiB1bnN1YnNjcmliZTtcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBhc3luYyByZWNvcmROb2RlQ29tcGxldGVkKG5vZGVJZDogc3RyaW5nLCBzdGFyczogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5maXJlYmFzZS53aGVuRmlyZWJhc2VBdXRoUmVhZHkoKTtcbiAgICBjb25zdCB1aWQgPSB0aGlzLmZpcmViYXNlQXV0aC5jdXJyZW50VXNlcj8udWlkO1xuICAgIGlmICghdWlkKSB0aHJvdyBuZXcgRXJyb3IoJ0FEVkVOVFVSRV9MT0dJTl9SRVFVSVJFRCcpO1xuXG4gICAgY29uc3Qgc25hcCA9IGF3YWl0IG5ldyBQcm9taXNlPENoZXNzaW1hbHNBZHZlbnR1cmVQcm9ncmVzcz4ocmVzb2x2ZSA9PiB7XG4gICAgICBjb25zdCB1bnN1YiA9IG9uU25hcHNob3QodGhpcy5wcm9ncmVzc1JlZih1aWQpLCBzID0+IHtcbiAgICAgICAgdW5zdWIoKTtcbiAgICAgICAgcmVzb2x2ZShcbiAgICAgICAgICBzLmV4aXN0cygpXG4gICAgICAgICAgICA/IHRoaXMubm9ybWFsaXplKHMuZGF0YSgpIGFzIFBhcnRpYWw8Q2hlc3NpbWFsc0FkdmVudHVyZVByb2dyZXNzPilcbiAgICAgICAgICAgIDogdGhpcy5lbXB0eSgpXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHByZXYgPSBzbmFwLmNvbXBsZXRlZE5vZGVzW25vZGVJZF07XG4gICAgaWYgKHByZXYgJiYgcHJldi5zdGFycyA+PSBzdGFycykgcmV0dXJuO1xuXG4gICAgY29uc3QgY29tcGxldGVkTm9kZXM6IFJlY29yZDxzdHJpbmcsIENoZXNzaW1hbHNBZHZlbnR1cmVOb2RlUmVzdWx0PiA9IHtcbiAgICAgIC4uLnNuYXAuY29tcGxldGVkTm9kZXMsXG4gICAgICBbbm9kZUlkXTogeyBzdGFycywgY29tcGxldGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSB9LFxuICAgIH07XG4gICAgY29uc3QgdG90YWxTdGFycyA9IE9iamVjdC52YWx1ZXMoY29tcGxldGVkTm9kZXMpLnJlZHVjZSgocywgbikgPT4gcyArIG4uc3RhcnMsIDApO1xuXG4gICAgYXdhaXQgc2V0RG9jKFxuICAgICAgdGhpcy5wcm9ncmVzc1JlZih1aWQpLFxuICAgICAge1xuICAgICAgICBjb21wbGV0ZWROb2RlcyxcbiAgICAgICAgdG90YWxTdGFycyxcbiAgICAgICAgdXBkYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICB9LFxuICAgICAgeyBtZXJnZTogdHJ1ZSB9XG4gICAgKTtcbiAgfVxuXG4gIGVtcHR5KCk6IENoZXNzaW1hbHNBZHZlbnR1cmVQcm9ncmVzcyB7XG4gICAgcmV0dXJuIHsgY29tcGxldGVkTm9kZXM6IHt9LCB0b3RhbFN0YXJzOiAwLCB1cGRhdGVkQXQ6ICcnIH07XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZSh2YWx1ZTogUGFydGlhbDxDaGVzc2ltYWxzQWR2ZW50dXJlUHJvZ3Jlc3M+KTogQ2hlc3NpbWFsc0FkdmVudHVyZVByb2dyZXNzIHtcbiAgICByZXR1cm4ge1xuICAgICAgdXNlcklkOiB2YWx1ZS51c2VySWQsXG4gICAgICBjb21wbGV0ZWROb2RlczogdmFsdWUuY29tcGxldGVkTm9kZXMgPz8ge30sXG4gICAgICB0b3RhbFN0YXJzOiB2YWx1ZS50b3RhbFN0YXJzID8/IDAsXG4gICAgICB1cGRhdGVkQXQ6IHZhbHVlLnVwZGF0ZWRBdCA/PyAnJyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9ncmVzc1JlZih1aWQ6IHN0cmluZykge1xuICAgIHJldHVybiBkb2ModGhpcy5maXJlc3RvcmUsIGB1c2Vycy8ke3VpZH0vbWluaUdhbWVzL2NoZXNzaW1hbHMvYWR2ZW50dXJlL3Byb2dyZXNzYCk7XG4gIH1cbn1cbiJdfQ==