ng-easycommerce-v18 0.3.17-beta.2 → 0.3.17-beta.3

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/README.md CHANGED
@@ -7,6 +7,10 @@
7
7
  - Compatibilidad completa con mobile y desktop: cierre automático de pestaña o redirección según navegador.
8
8
  - Nuevo control de estado visual (idle / pagando / finalizando) para evitar repeticiones o confusión del usuario.
9
9
  - Simplificación de `catch` (RedsysCatchEcComponent) y limpieza de código legacy.
10
+ # Version 0.3.14-beta.2
11
+ - Pruebas para errores en console al desplegar
12
+ # Version 0.3.14-beta.1
13
+ - Pruebas para errores en console al desplegar
10
14
  # Version 0.3.13
11
15
  - Se hace estable 0.3.12-beta.1.
12
16
  - Se hace estable feature/pop-up-inicial.
@@ -1,3 +1,28 @@
1
+ /**
2
+ * Función auxiliar para remover acentos de forma segura para SSR
3
+ */
4
+ function safeRemoveAccents(str) {
5
+ if (typeof window !== 'undefined' && typeof String.prototype.normalize === 'function') {
6
+ return str.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
7
+ }
8
+ // Fallback para SSR - remover acentos manualmente
9
+ return str.replace(/[àáâãäå]/g, 'a')
10
+ .replace(/[èéêë]/g, 'e')
11
+ .replace(/[ìíîï]/g, 'i')
12
+ .replace(/[òóôõö]/g, 'o')
13
+ .replace(/[ùúûü]/g, 'u')
14
+ .replace(/[ýÿ]/g, 'y')
15
+ .replace(/[ñ]/g, 'n')
16
+ .replace(/[ç]/g, 'c')
17
+ .replace(/[ÀÁÂÃÄÅ]/g, 'A')
18
+ .replace(/[ÈÉÊË]/g, 'E')
19
+ .replace(/[ÌÍÎÏ]/g, 'I')
20
+ .replace(/[ÒÓÔÕÖ]/g, 'O')
21
+ .replace(/[ÙÚÛÜ]/g, 'U')
22
+ .replace(/[ÝŸ]/g, 'Y')
23
+ .replace(/[Ñ]/g, 'N')
24
+ .replace(/[Ç]/g, 'C');
25
+ }
1
26
  export class Filter {
2
27
  data = [];
3
28
  multi = false;
@@ -17,7 +42,7 @@ export class Filter {
17
42
  throw new Error("Method not implemented.");
18
43
  }
19
44
  removeAccents = (str) => {
20
- return str.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
45
+ return safeRemoveAccents(str);
21
46
  };
22
47
  setSelected(element, value) {
23
48
  //console.log(element, value);
@@ -80,4 +105,4 @@ export class Filter {
80
105
  return result;
81
106
  };
82
107
  }
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2NsYXNzZXMvZmlsdGVycy9maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLE1BQU07SUFFZixJQUFJLEdBQW9CLEVBQUUsQ0FBQztJQUMzQixLQUFLLEdBQVksS0FBSyxDQUFDO0lBRXZCLElBQUk7UUFDQSxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUNELFVBQVUsQ0FBQyxPQUFZO1FBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQ0QsVUFBVTtRQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQ0QsV0FBVztRQUNQLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQ0QsYUFBYSxDQUFDLE1BQVcsRUFBRSxRQUFhLEVBQUUsWUFBa0I7UUFDeEQsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFDRCxhQUFhLEdBQUcsQ0FBQyxHQUFVLEVBQUUsRUFBRTtRQUMzQixPQUFPLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLENBQUMsQ0FBQTtJQUVELFdBQVcsQ0FBQyxPQUFXLEVBQUUsS0FBVTtRQUMvQiw4QkFBOEI7UUFDOUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUks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SUFBSSxPQUFPLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRCxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1YsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUIsT0FBTyxNQUFNLENBQUM7UUFDbEIsQ0FBQztRQUNELFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDcEIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3hDLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDMUQsSUFBSSxVQUFVO29CQUFFLE1BQU0sR0FBRyxVQUFVLENBQUM7WUFDeEMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQyxDQUFBO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWx0ZXJFbGVtZW50LCBGaWx0ZXJUeXBlLCBJRmlsdGVyIH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXNcIjtcblxuZXhwb3J0IGNsYXNzIEZpbHRlciBpbXBsZW1lbnRzIElGaWx0ZXIgIHtcbiAgICBcbiAgICBkYXRhOiBGaWx0ZXJFbGVtZW50W10gPSBbXTtcbiAgICBtdWx0aTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIFxuICAgIHR5cGUoKTogRmlsdGVyVHlwZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cbiAgICBzZXRDb250ZW50KG9wdGlvbnM6IGFueSk6IHZvaWQge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICB9XG4gICAgZ2V0Q29udGVudCgpOiBGaWx0ZXJFbGVtZW50W10ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICB9XG4gICAgdG9VcmxQYXJhbXMoKTogc3RyaW5nIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuICAgIGNyZWF0ZUVsZW1lbnQoZmlsdGVyOiBhbnksIG9yaWdpbmFsOiBhbnksIGluaXRpYWxWYWx1ZT86IGFueSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICB9XG4gICAgcmVtb3ZlQWNjZW50cyA9IChzdHI6c3RyaW5nKSA9PiB7XG4gICAgICAgIHJldHVybiBzdHIubm9ybWFsaXplKFwiTkZEXCIpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csIFwiXCIpO1xuICAgIH1cblxuICAgIHNldFNlbGVjdGVkKGVsZW1lbnQ6YW55LCB2YWx1ZT86YW55KXtcbiAgICAgICAgLy9jb25zb2xlLmxvZyhlbGVtZW50LCB2YWx1ZSk7XG4gICAgICAgICgoZWxlbWVudC5tdWx0aSAhPSB1bmRlZmluZWQpICYmICFlbGVtZW50Lm11bHRpKSA/IHRoaXMuY2xlYW5GaWx0ZXIodGhpcy5kYXRhLCBlbGVtZW50KSA6IG51bGw7XG4gICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRWYWx1ZShlbGVtZW50LCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgY2xlYW5GaWx0ZXIgPSAoZGF0YTphbnksIGVsZW1lbnRfdG9fY2hhbmdlOmFueSkgPT4ge1xuICAgICAgICAvL2NvbnNvbGUubG9nKFwiY2xlYW5GaWx0ZXJcIik7XG4gICAgICAgIGVsZW1lbnRfdG9fY2hhbmdlICYmIGRhdGEuZm9yRWFjaCgoZWxlbWVudDphbnkpID0+IHtcbiAgICAgICAgICAgIGVsZW1lbnRfdG9fY2hhbmdlICE9IGVsZW1lbnQgPyBlbGVtZW50LnNlbGVjdGVkID0gZmFsc2UgOiBudWxsO1xuICAgICAgICAgICAgKGVsZW1lbnQuY2hpbGRyZW4gJiYgZWxlbWVudC5jaGlsZHJlbi5sZW5ndGggPiAwKSAmJiB0aGlzLmNsZWFuRmlsdGVyKGVsZW1lbnQuY2hpbGRyZW4sIGVsZW1lbnRfdG9fY2hhbmdlKTtcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBzZXRTZWxlY3RlZFZhbHVlKGVsZW1lbnQ6YW55LCB2YWx1ZT86YW55LCBzdWJsaXN0PzphbnksIG11bHRpPzphbnkpe1xuICAgICAgICBsZXQgZWxlbWVudHMgPSBzdWJsaXN0IHx8IHRoaXMuZGF0YTtcbiAgICAgICAgbGV0IGluZGV4ID0gZWxlbWVudHMuZmluZEluZGV4KChzdWJlbGVtZW50OmFueSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIChlbGVtZW50LmNvZGUgfHwgZWxlbWVudCkgPT0gc3ViZWxlbWVudC5jb2RlO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgICAgIGVsZW1lbnRzW2luZGV4XS5zZWxlY3RlZCA9IGVsZW1lbnRzW2luZGV4XS5zZWxlY3RlZCA/IGZhbHNlIDogdHJ1ZTtcbiAgICAgICAgICAgICFtdWx0aSAmJiBlbGVtZW50cy5mb3JFYWNoKChjaGlsZDphbnksIGk6bnVtYmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGkgIT0gaW5kZXgpIGNoaWxkLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZWxlbWVudHMsXG4gICAgICAgICAgICAgICAgZm91bmRlZDogdHJ1ZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVsZW1lbnRzLnNvbWUoKGVsZW06YW55KSA9PiBlbGVtLnR5cGUgPT0gJ3N1YicpICYmIGVsZW1lbnRzLnNvbWUoXG4gICAgICAgICAgICAgICAgKGZpbHRlcjphbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGZvdW5kZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHRlci50eXBlID09ICdzdWInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLnNldFNlbGVjdGVkVmFsdWUoZWxlbWVudCwgdmFsdWUsIGZpbHRlci5jaGlsZHJlbiwgZmlsdGVyLm11bHRpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LmZvdW5kZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIuY2hpbGRyZW4gPSByZXN1bHQuZWxlbWVudHM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZvdW5kZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG5cbiAgICBnZXRTZWxlY3RlZExpc3QgPSAoKTogYW55ID0+IHRoaXMuZmluZFNlbGVjdGVkKHRoaXMuZGF0YSwgW10pO1xuXG4gICAgZmluZFNlbGVjdGVkID0gKGVsZW1lbnRzOiBhbnlbXSwgcmVzdWx0OmFueSkgPT4ge1xuICAgICAgICBsZXQgZWxlbWVudCA9IGVsZW1lbnRzLmZpbmQoZWxlbSA9PiBlbGVtLnNlbGVjdGVkKTtcbiAgICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKGVsZW1lbnQuY29kZSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIGVsZW1lbnRzLmZvckVhY2goZWxlbSA9PiB7XG4gICAgICAgICAgICBpZiAoZWxlbS5jaGlsZHJlbiAmJiBlbGVtLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGxldCBuZXdfcmVzdWx0ID0gdGhpcy5maW5kU2VsZWN0ZWQoZWxlbS5jaGlsZHJlbiwgcmVzdWx0KTtcbiAgICAgICAgICAgICAgICBpZiAobmV3X3Jlc3VsdCkgcmVzdWx0ID0gbmV3X3Jlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG59XG4iXX0=
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2NsYXNzZXMvZmlsdGVycy9maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7O0dBRUc7QUFDSCxTQUFTLGlCQUFpQixDQUFDLEdBQVc7SUFDbEMsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLElBQUksT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUNwRixPQUFPLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFDRCxrREFBa0Q7SUFDbEQsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUM7U0FDL0IsT0FBTyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUM7U0FDdkIsT0FBTyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUM7U0FDdkIsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUM7U0FDeEIsT0FBTyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUM7U0FDdkIsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUM7U0FDckIsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUM7U0FDcEIsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUM7U0FDcEIsT0FBTyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUM7U0FDekIsT0FBTyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUM7U0FDdkIsT0FBTyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUM7U0FDdkIsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUM7U0FDeEIsT0FBTyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUM7U0FDdkIsT0FBTyxDQUFDLE9BQU8s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Q1YsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUIsT0FBTyxNQUFNLENBQUM7UUFDbEIsQ0FBQztRQUNELFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDcEIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3hDLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDMUQsSUFBSSxVQUFVO29CQUFFLE1BQU0sR0FBRyxVQUFVLENBQUM7WUFDeEMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQyxDQUFBO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWx0ZXJFbGVtZW50LCBGaWx0ZXJUeXBlLCBJRmlsdGVyIH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXNcIjtcblxuLyoqXG4gKiBGdW5jacOzbiBhdXhpbGlhciBwYXJhIHJlbW92ZXIgYWNlbnRvcyBkZSBmb3JtYSBzZWd1cmEgcGFyYSBTU1JcbiAqL1xuZnVuY3Rpb24gc2FmZVJlbW92ZUFjY2VudHMoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgU3RyaW5nLnByb3RvdHlwZS5ub3JtYWxpemUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIHN0ci5ub3JtYWxpemUoXCJORkRcIikucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgXCJcIik7XG4gICAgfVxuICAgIC8vIEZhbGxiYWNrIHBhcmEgU1NSIC0gcmVtb3ZlciBhY2VudG9zIG1hbnVhbG1lbnRlXG4gICAgcmV0dXJuIHN0ci5yZXBsYWNlKC9bw6DDocOiw6PDpMOlXS9nLCAnYScpXG4gICAgICAgIC5yZXBsYWNlKC9bw6jDqcOqw6tdL2csICdlJylcbiAgICAgICAgLnJlcGxhY2UoL1vDrMOtw67Dr10vZywgJ2knKVxuICAgICAgICAucmVwbGFjZSgvW8Oyw7PDtMO1w7ZdL2csICdvJylcbiAgICAgICAgLnJlcGxhY2UoL1vDucO6w7vDvF0vZywgJ3UnKVxuICAgICAgICAucmVwbGFjZSgvW8O9w79dL2csICd5JylcbiAgICAgICAgLnJlcGxhY2UoL1vDsV0vZywgJ24nKVxuICAgICAgICAucmVwbGFjZSgvW8OnXS9nLCAnYycpXG4gICAgICAgIC5yZXBsYWNlKC9bw4DDgcOCw4PDhMOFXS9nLCAnQScpXG4gICAgICAgIC5yZXBsYWNlKC9bw4jDicOKw4tdL2csICdFJylcbiAgICAgICAgLnJlcGxhY2UoL1vDjMONw47Dj10vZywgJ0knKVxuICAgICAgICAucmVwbGFjZSgvW8OSw5PDlMOVw5ZdL2csICdPJylcbiAgICAgICAgLnJlcGxhY2UoL1vDmcOaw5vDnF0vZywgJ1UnKVxuICAgICAgICAucmVwbGFjZSgvW8OdxbhdL2csICdZJylcbiAgICAgICAgLnJlcGxhY2UoL1vDkV0vZywgJ04nKVxuICAgICAgICAucmVwbGFjZSgvW8OHXS9nLCAnQycpO1xufVxuXG5leHBvcnQgY2xhc3MgRmlsdGVyIGltcGxlbWVudHMgSUZpbHRlciAge1xuICAgIFxuICAgIGRhdGE6IEZpbHRlckVsZW1lbnRbXSA9IFtdO1xuICAgIG11bHRpOiBib29sZWFuID0gZmFsc2U7XG4gICAgXG4gICAgdHlwZSgpOiBGaWx0ZXJUeXBlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuICAgIHNldENvbnRlbnQob3B0aW9uczogYW55KTogdm9pZCB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cbiAgICBnZXRDb250ZW50KCk6IEZpbHRlckVsZW1lbnRbXSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cbiAgICB0b1VybFBhcmFtcygpOiBzdHJpbmcge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICB9XG4gICAgY3JlYXRlRWxlbWVudChmaWx0ZXI6IGFueSwgb3JpZ2luYWw6IGFueSwgaW5pdGlhbFZhbHVlPzogYW55KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cbiAgICByZW1vdmVBY2NlbnRzID0gKHN0cjpzdHJpbmcpID0+IHtcbiAgICAgICAgcmV0dXJuIHNhZmVSZW1vdmVBY2NlbnRzKHN0cik7XG4gICAgfVxuXG4gICAgc2V0U2VsZWN0ZWQoZWxlbWVudDphbnksIHZhbHVlPzphbnkpe1xuICAgICAgICAvL2NvbnNvbGUubG9nKGVsZW1lbnQsIHZhbHVlKTtcbiAgICAgICAgKChlbGVtZW50Lm11bHRpICE9IHVuZGVmaW5lZCkgJiYgIWVsZW1lbnQubXVsdGkpID8gdGhpcy5jbGVhbkZpbHRlcih0aGlzLmRhdGEsIGVsZW1lbnQpIDogbnVsbDtcbiAgICAgICAgdGhpcy5zZXRTZWxlY3RlZFZhbHVlKGVsZW1lbnQsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBjbGVhbkZpbHRlciA9IChkYXRhOmFueSwgZWxlbWVudF90b19jaGFuZ2U6YW55KSA9PiB7XG4gICAgICAgIC8vY29uc29sZS5sb2coXCJjbGVhbkZpbHRlclwiKTtcbiAgICAgICAgZWxlbWVudF90b19jaGFuZ2UgJiYgZGF0YS5mb3JFYWNoKChlbGVtZW50OmFueSkgPT4ge1xuICAgICAgICAgICAgZWxlbWVudF90b19jaGFuZ2UgIT0gZWxlbWVudCA/IGVsZW1lbnQuc2VsZWN0ZWQgPSBmYWxzZSA6IG51bGw7XG4gICAgICAgICAgICAoZWxlbWVudC5jaGlsZHJlbiAmJiBlbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA+IDApICYmIHRoaXMuY2xlYW5GaWx0ZXIoZWxlbWVudC5jaGlsZHJlbiwgZWxlbWVudF90b19jaGFuZ2UpO1xuICAgICAgICB9KVxuICAgIH1cblxuICAgIHNldFNlbGVjdGVkVmFsdWUoZWxlbWVudDphbnksIHZhbHVlPzphbnksIHN1Ymxpc3Q/OmFueSwgbXVsdGk/OmFueSl7XG4gICAgICAgIGxldCBlbGVtZW50cyA9IHN1Ymxpc3QgfHwgdGhpcy5kYXRhO1xuICAgICAgICBsZXQgaW5kZXggPSBlbGVtZW50cy5maW5kSW5kZXgoKHN1YmVsZW1lbnQ6YW55KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gKGVsZW1lbnQuY29kZSB8fCBlbGVtZW50KSA9PSBzdWJlbGVtZW50LmNvZGU7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgICAgZWxlbWVudHNbaW5kZXhdLnNlbGVjdGVkID0gZWxlbWVudHNbaW5kZXhdLnNlbGVjdGVkID8gZmFsc2UgOiB0cnVlO1xuICAgICAgICAgICAgIW11bHRpICYmIGVsZW1lbnRzLmZvckVhY2goKGNoaWxkOmFueSwgaTpudW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaSAhPSBpbmRleCkgY2hpbGQuc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50cyxcbiAgICAgICAgICAgICAgICBmb3VuZGVkOiB0cnVlXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZWxlbWVudHMuc29tZSgoZWxlbTphbnkpID0+IGVsZW0udHlwZSA9PSAnc3ViJykgJiYgZWxlbWVudHMuc29tZShcbiAgICAgICAgICAgICAgICAoZmlsdGVyOmFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZm91bmRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyLnR5cGUgPT0gJ3N1YicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuc2V0U2VsZWN0ZWRWYWx1ZShlbGVtZW50LCB2YWx1ZSwgZmlsdGVyLmNoaWxkcmVuLCBmaWx0ZXIubXVsdGkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQuZm91bmRlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlci5jaGlsZHJlbiA9IHJlc3VsdC5lbGVtZW50cztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3VuZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZm91bmRlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcblxuICAgIGdldFNlbGVjdGVkTGlzdCA9ICgpOiBhbnkgPT4gdGhpcy5maW5kU2VsZWN0ZWQodGhpcy5kYXRhLCBbXSk7XG5cbiAgICBmaW5kU2VsZWN0ZWQgPSAoZWxlbWVudHM6IGFueVtdLCByZXN1bHQ6YW55KSA9PiB7XG4gICAgICAgIGxldCBlbGVtZW50ID0gZWxlbWVudHMuZmluZChlbGVtID0+IGVsZW0uc2VsZWN0ZWQpO1xuICAgICAgICBpZiAoZWxlbWVudCkge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goZWxlbWVudC5jb2RlKTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxlbWVudHMuZm9yRWFjaChlbGVtID0+IHtcbiAgICAgICAgICAgIGlmIChlbGVtLmNoaWxkcmVuICYmIGVsZW0uY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgbGV0IG5ld19yZXN1bHQgPSB0aGlzLmZpbmRTZWxlY3RlZChlbGVtLmNoaWxkcmVuLCByZXN1bHQpO1xuICAgICAgICAgICAgICAgIGlmIChuZXdfcmVzdWx0KSByZXN1bHQgPSBuZXdfcmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbn1cbiJdfQ==
@@ -1,92 +1,86 @@
1
- import { inject, Injectable } from '@angular/core';
1
+ import { inject, Injectable, PLATFORM_ID, Inject } from '@angular/core';
2
+ import { isPlatformServer } from '@angular/common';
2
3
  import { ENVIRONMENT_TOKEN } from '../providers';
3
4
  import { LocalStorageService } from '../ec-services';
4
5
  import { TranslateService } from '@ngx-translate/core';
5
6
  import * as i0 from "@angular/core";
6
7
  /**
7
- * Servicio que provee de datos que estan relacionado con las peticiones a la API
8
- * @export
9
- * @class ApiConstantsService
8
+ * Servicio que provee de datos relacionados con las peticiones a la API
10
9
  */
11
10
  export class ApiConstantsService {
11
+ ssrApiUrl;
12
12
  _localStorage = inject(LocalStorageService);
13
13
  _translate = inject(TranslateService);
14
- /**
15
- * Contiene los datos provisto por el frontend en el archivo environment.ts
16
- */
17
14
  environment = inject(ENVIRONMENT_TOKEN);
15
+ platformId = inject(PLATFORM_ID);
16
+ _channel;
17
+ LOCALE;
18
+ SHOP_API_URL = 'shop-api/';
19
+ CMS_URL = 'cms/';
20
+ constructor(ssrApiUrl) {
21
+ this.ssrApiUrl = ssrApiUrl;
22
+ this._channel = this.environment.channel;
23
+ this.LOCALE = this.environment.locale;
24
+ }
18
25
  /**
19
26
  * Canal actual del frontend
20
27
  */
21
28
  get CHANNEL() {
22
- // Verificar si estamos en el navegador (no en SSR)
23
29
  if (typeof window !== 'undefined') {
24
- // Primero intenta leer de window.__env (configurado por Docker)
25
30
  const windowEnv = window.__env;
26
- if (windowEnv?.channel) {
31
+ if (windowEnv?.channel)
27
32
  return windowEnv.channel;
28
- }
29
33
  }
30
- // Fallback al environment
31
34
  return this._channel;
32
35
  }
33
36
  set CHANNEL(value) {
34
37
  this._channel = value;
35
38
  }
36
- _channel;
37
- /**
38
- * Locale actual del frontend
39
- */
40
- LOCALE;
41
- /**
42
- * URL para las peticiones a shop-api
43
- */
44
- SHOP_API_URL = 'shop-api/';
45
- /**
46
- * URL para las peticiones a cms
47
- */
48
- CMS_URL = 'cms/';
49
- constructor() {
50
- this._channel = this.environment.channel;
51
- this.LOCALE = this.environment.locale;
52
- }
53
39
  /**
54
40
  * URL del backend para realizar las peticiones
55
41
  */
56
42
  get API_URL() {
57
- // Verificar si estamos en el navegador (no en SSR)
43
+ // Browser runtime-config
58
44
  if (typeof window !== 'undefined') {
59
- // Primero intenta leer de window.__env (configurado por Docker)
60
45
  const windowEnv = window.__env;
61
- if (windowEnv?.apiUrl) {
62
- return windowEnv.apiUrl;
63
- }
46
+ if (windowEnv?.apiBaseUrl)
47
+ return windowEnv.apiBaseUrl;
48
+ }
49
+ // SSR
50
+ if (isPlatformServer(this.platformId)) {
51
+ return this.ssrApiUrl;
64
52
  }
65
- // Fallback al environment (para SSR y como backup)
53
+ // Fallback environment
66
54
  return this.environment.apiUrl ?? '';
67
55
  }
68
56
  /**
69
- * Retorna la url base
70
- * @returns {string}
57
+ * URL base completa para shop-api con channel y locale
58
+ */
59
+ getShopApiBase() {
60
+ const channel = this.CHANNEL || 'undefined';
61
+ const locale = this.LOCALE || 'undefined';
62
+ return `${this.API_URL}/${this.SHOP_API_URL}${channel}/?locale=${locale}`;
63
+ }
64
+ /**
65
+ * Retorna la url base general (sin shop-api)
71
66
  */
72
67
  getUrlBase() {
73
68
  return this.API_URL;
74
69
  }
75
70
  /**
76
71
  * Cambia el canal actual
77
- * @param code
78
- * @returns
79
72
  */
80
- setChannel(code) { this.CHANNEL = code; }
73
+ setChannel(code) {
74
+ this.CHANNEL = code;
75
+ }
81
76
  setLocale(locale) {
82
77
  this._localStorage.setItem(this.LOCALE_KEY, locale);
83
78
  this._translate.use(locale.split('_')[0]);
84
79
  this.LOCALE = locale;
85
80
  }
86
- //Storage key
87
81
  LOCALE_KEY = 'LOCALE';
88
82
  CHANNEL_KEY = 'CHANNEL';
89
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiConstantsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
83
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiConstantsService, deps: [{ token: 'API_URL' }], target: i0.ɵɵFactoryTarget.Injectable });
90
84
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiConstantsService, providedIn: 'root' });
91
85
  }
92
86
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiConstantsService, decorators: [{
@@ -94,5 +88,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
94
88
  args: [{
95
89
  providedIn: 'root'
96
90
  }]
97
- }], ctorParameters: () => [] });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmNvbnN0YW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2NvbnN0YW50cy9hcGkuY29uc3RhbnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWpELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUd2RDs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLG1CQUFtQjtJQUN2QixhQUFhLEdBQXdCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ2pFLFVBQVUsR0FBcUIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFaEU7O09BRUc7SUFDSyxXQUFXLEdBQWdCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRTdEOztPQUVHO0lBQ0gsSUFBVyxPQUFPO1FBQ2pCLG1EQUFtRDtRQUNuRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ25DLGdFQUFnRTtZQUNoRSxNQUFNLFNBQVMsR0FBSSxNQUFjLENBQUMsS0FBSyxDQUFDO1lBQ3hDLElBQUksU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUFDO2dCQUN4QixPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUM7WUFDMUIsQ0FBQztRQUNGLENBQUM7UUFFRCwwQkFBMEI7UUFDMUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFXLE9BQU8sQ0FBQyxLQUFhO1FBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxRQUFRLENBQVM7SUFDekI7O09BRUc7SUFDSSxNQUFNLENBQVM7SUFFdEI7O09BRUc7SUFDYSxZQUFZLEdBQVcsV0FBVyxDQUFDO0lBQ25EOztPQUVHO0lBQ2EsT0FBTyxHQUFXLE1BQU0sQ0FBQztJQUV6QztRQUNDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLE9BQU87UUFDakIsbURBQW1EO1FBQ25ELElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDbkMsZ0VBQWdFO1lBQ2hFLE1BQU0sU0FBUyxHQUFJLE1BQWMsQ0FBQyxLQUFLLENBQUM7WUFDeEMsSUFBSSxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQ3ZCLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQztZQUN6QixDQUFDO1FBQ0YsQ0FBQztRQUVELG1EQUFtRDtRQUNuRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBQ0Q7OztPQUdHO0lBQ0ksVUFBVTtRQUNoQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDckIsQ0FBQztJQUNEOzs7O09BSUc7SUFDSSxVQUFVLENBQUMsSUFBWSxJQUFRLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUEsQ0FBQztJQUVwRCxTQUFTLENBQUMsTUFBYztRQUM5QixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN6QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN0QixDQUFDO0lBRUQsYUFBYTtJQUNJLFVBQVUsR0FBVSxRQUFRLENBQUM7SUFDN0IsV0FBVyxHQUFVLFNBQVMsQ0FBQzt3R0F4RnBDLG1CQUFtQjs0R0FBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVOVklST05NRU5UX1RPS0VOIH0gZnJvbSAnLi4vcHJvdmlkZXJzJztcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vZWMtc2VydmljZXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQ29yZUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuL2NvcmUuY29uc3RhbnRzLnNlcnZpY2UnO1xuXG4vKipcbiAqIFNlcnZpY2lvIHF1ZSBwcm92ZWUgZGUgZGF0b3MgcXVlIGVzdGFuIHJlbGFjaW9uYWRvIGNvbiBsYXMgcGV0aWNpb25lcyBhIGxhIEFQSVxuICogQGV4cG9ydFxuICogQGNsYXNzIEFwaUNvbnN0YW50c1NlcnZpY2VcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXBpQ29uc3RhbnRzU2VydmljZSB7XG5cdHByaXZhdGUgX2xvY2FsU3RvcmFnZTogTG9jYWxTdG9yYWdlU2VydmljZSA9IGluamVjdChMb2NhbFN0b3JhZ2VTZXJ2aWNlKTtcblx0cHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuXG5cdC8qKlxuXHQgKiBDb250aWVuZSBsb3MgZGF0b3MgcHJvdmlzdG8gcG9yIGVsIGZyb250ZW5kIGVuIGVsIGFyY2hpdm8gZW52aXJvbm1lbnQudHNcblx0ICovXG5cdHByaXZhdGUgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50ID0gaW5qZWN0KEVOVklST05NRU5UX1RPS0VOKTtcblx0XG5cdC8qKlxuXHQgKiBDYW5hbCBhY3R1YWwgZGVsIGZyb250ZW5kXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IENIQU5ORUwoKTogc3RyaW5nIHtcblx0XHQvLyBWZXJpZmljYXIgc2kgZXN0YW1vcyBlbiBlbCBuYXZlZ2Fkb3IgKG5vIGVuIFNTUilcblx0XHRpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcblx0XHRcdC8vIFByaW1lcm8gaW50ZW50YSBsZWVyIGRlIHdpbmRvdy5fX2VudiAoY29uZmlndXJhZG8gcG9yIERvY2tlcilcblx0XHRcdGNvbnN0IHdpbmRvd0VudiA9ICh3aW5kb3cgYXMgYW55KS5fX2Vudjtcblx0XHRcdGlmICh3aW5kb3dFbnY/LmNoYW5uZWwpIHtcblx0XHRcdFx0cmV0dXJuIHdpbmRvd0Vudi5jaGFubmVsO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHQvLyBGYWxsYmFjayBhbCBlbnZpcm9ubWVudFxuXHRcdHJldHVybiB0aGlzLl9jaGFubmVsO1xuXHR9XG5cdFxuXHRwdWJsaWMgc2V0IENIQU5ORUwodmFsdWU6IHN0cmluZykge1xuXHRcdHRoaXMuX2NoYW5uZWwgPSB2YWx1ZTtcblx0fVxuXHRcblx0cHJpdmF0ZSBfY2hhbm5lbDogc3RyaW5nO1xuXHQvKipcblx0ICogTG9jYWxlIGFjdHVhbCBkZWwgZnJvbnRlbmRcblx0ICovXG5cdHB1YmxpYyBMT0NBTEU6IHN0cmluZztcblx0XG5cdC8qKlxuXHQgKiBVUkwgcGFyYSBsYXMgcGV0aWNpb25lcyBhIHNob3AtYXBpXG5cdCAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgU0hPUF9BUElfVVJMOiBzdHJpbmcgPSAnc2hvcC1hcGkvJztcblx0LyoqXG5cdCAqIFVSTCBwYXJhIGxhcyBwZXRpY2lvbmVzIGEgY21zXG5cdCAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgQ01TX1VSTDogc3RyaW5nID0gJ2Ntcy8nO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHRoaXMuX2NoYW5uZWwgPSB0aGlzLmVudmlyb25tZW50LmNoYW5uZWw7XG5cdFx0dGhpcy5MT0NBTEUgPSB0aGlzLmVudmlyb25tZW50LmxvY2FsZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBVUkwgZGVsIGJhY2tlbmQgcGFyYSByZWFsaXphciBsYXMgcGV0aWNpb25lc1xuXHQgKi9cblx0cHVibGljIGdldCBBUElfVVJMKCk6IHN0cmluZyB7XG5cdFx0Ly8gVmVyaWZpY2FyIHNpIGVzdGFtb3MgZW4gZWwgbmF2ZWdhZG9yIChubyBlbiBTU1IpXG5cdFx0aWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG5cdFx0XHQvLyBQcmltZXJvIGludGVudGEgbGVlciBkZSB3aW5kb3cuX19lbnYgKGNvbmZpZ3VyYWRvIHBvciBEb2NrZXIpXG5cdFx0XHRjb25zdCB3aW5kb3dFbnYgPSAod2luZG93IGFzIGFueSkuX19lbnY7XG5cdFx0XHRpZiAod2luZG93RW52Py5hcGlVcmwpIHtcblx0XHRcdFx0cmV0dXJuIHdpbmRvd0Vudi5hcGlVcmw7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdC8vIEZhbGxiYWNrIGFsIGVudmlyb25tZW50IChwYXJhIFNTUiB5IGNvbW8gYmFja3VwKVxuXHRcdHJldHVybiB0aGlzLmVudmlyb25tZW50LmFwaVVybCA/PyAnJztcblx0fVxuXHQvKipcblx0ICogUmV0b3JuYSBsYSB1cmwgYmFzZVxuXHQgKiBAcmV0dXJucyB7c3RyaW5nfVxuXHQgKi9cblx0cHVibGljIGdldFVybEJhc2UoKTogc3RyaW5nIHsgXG5cdFx0cmV0dXJuIHRoaXMuQVBJX1VSTDtcblx0fSBcblx0LyoqXG5cdCAqIENhbWJpYSBlbCBjYW5hbCBhY3R1YWxcblx0ICogQHBhcmFtIGNvZGVcblx0ICogQHJldHVybnMgXG5cdCAqL1xuXHRwdWJsaWMgc2V0Q2hhbm5lbChjb2RlOiBzdHJpbmcpOnZvaWR7IHRoaXMuQ0hBTk5FTCA9IGNvZGU7fSBcblxuXHRwdWJsaWMgc2V0TG9jYWxlKGxvY2FsZTogc3RyaW5nKTp2b2lke1xuXHRcdHRoaXMuX2xvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuTE9DQUxFX0tFWSwgbG9jYWxlKTtcblx0XHR0aGlzLl90cmFuc2xhdGUudXNlKGxvY2FsZS5zcGxpdCgnXycpWzBdKVxuXHRcdHRoaXMuTE9DQUxFID0gbG9jYWxlO1xuXHR9XG5cblx0Ly9TdG9yYWdlIGtleVxuXHRwcml2YXRlIHJlYWRvbmx5IExPQ0FMRV9LRVk6c3RyaW5nID0gJ0xPQ0FMRSc7XG5cdHByaXZhdGUgcmVhZG9ubHkgQ0hBTk5FTF9LRVk6c3RyaW5nID0gJ0NIQU5ORUwnO1xufVxuIl19
91
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
92
+ type: Inject,
93
+ args: ['API_URL']
94
+ }] }] });
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmNvbnN0YW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2NvbnN0YW50cy9hcGkuY29uc3RhbnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBRXZEOztHQUVHO0FBSUgsTUFBTSxPQUFPLG1CQUFtQjtJQWFTO0lBWi9CLGFBQWEsR0FBd0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDakUsVUFBVSxHQUFxQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUV4RCxXQUFXLEdBQWdCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JELFVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFakMsUUFBUSxDQUFTO0lBQ2xCLE1BQU0sQ0FBUztJQUVOLFlBQVksR0FBVyxXQUFXLENBQUM7SUFDbkMsT0FBTyxHQUFXLE1BQU0sQ0FBQztJQUV6QyxZQUF1QyxTQUFpQjtRQUFqQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ3RELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUN4QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLE9BQU87UUFDaEIsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNsQyxNQUFNLFNBQVMsR0FBSSxNQUFjLENBQUMsS0FBSyxDQUFDO1lBQ3hDLElBQUksU0FBUyxFQUFFLE9BQU87Z0JBQUUsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDO1FBQ25ELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQVcsT0FBTyxDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxPQUFPO1FBQ2hCLHlCQUF5QjtRQUN6QixJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sU0FBUyxHQUFJLE1BQWMsQ0FBQyxLQUFLLENBQUM7WUFDeEMsSUFBSSxTQUFTLEVBQUUsVUFBVTtnQkFBRSxPQUFPLFNBQVMsQ0FBQyxVQUFVLENBQUM7UUFDekQsQ0FBQztRQUVELE1BQU07UUFDTixJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN4QixDQUFDO1FBRUQsdUJBQXVCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7T0FFRztJQUNJLGNBQWM7UUFDbkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxXQUFXLENBQUM7UUFDNUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxXQUFXLENBQUM7UUFDMUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLFlBQVksTUFBTSxFQUFFLENBQUM7SUFDNUUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksVUFBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxVQUFVLENBQUMsSUFBWTtRQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUN0QixDQUFDO0lBRU0sU0FBUyxDQUFDLE1BQWM7UUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVnQixVQUFVLEdBQVcsUUFBUSxDQUFDO0lBQzlCLFdBQVcsR0FBVyxTQUFTLENBQUM7d0dBbEZ0QyxtQkFBbUIsa0JBYVYsU0FBUzs0R0FibEIsbUJBQW1CLGNBRmxCLE1BQU07OzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWNjLE1BQU07MkJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgUExBVEZPUk1fSUQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybVNlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBFTlZJUk9OTUVOVF9UT0tFTiB9IGZyb20gJy4uL3Byb3ZpZGVycyc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL2VjLXNlcnZpY2VzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuLyoqXG4gKiBTZXJ2aWNpbyBxdWUgcHJvdmVlIGRlIGRhdG9zIHJlbGFjaW9uYWRvcyBjb24gbGFzIHBldGljaW9uZXMgYSBsYSBBUElcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXBpQ29uc3RhbnRzU2VydmljZSB7XG4gIHByaXZhdGUgX2xvY2FsU3RvcmFnZTogTG9jYWxTdG9yYWdlU2VydmljZSA9IGluamVjdChMb2NhbFN0b3JhZ2VTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuXG4gIHByaXZhdGUgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50ID0gaW5qZWN0KEVOVklST05NRU5UX1RPS0VOKTtcbiAgcHJpdmF0ZSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcblxuICBwcml2YXRlIF9jaGFubmVsOiBzdHJpbmc7XG4gIHB1YmxpYyBMT0NBTEU6IHN0cmluZztcblxuICBwdWJsaWMgcmVhZG9ubHkgU0hPUF9BUElfVVJMOiBzdHJpbmcgPSAnc2hvcC1hcGkvJztcbiAgcHVibGljIHJlYWRvbmx5IENNU19VUkw6IHN0cmluZyA9ICdjbXMvJztcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KCdBUElfVVJMJykgcHJpdmF0ZSBzc3JBcGlVcmw6IHN0cmluZykge1xuICAgIHRoaXMuX2NoYW5uZWwgPSB0aGlzLmVudmlyb25tZW50LmNoYW5uZWw7XG4gICAgdGhpcy5MT0NBTEUgPSB0aGlzLmVudmlyb25tZW50LmxvY2FsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYW5hbCBhY3R1YWwgZGVsIGZyb250ZW5kXG4gICAqL1xuICBwdWJsaWMgZ2V0IENIQU5ORUwoKTogc3RyaW5nIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNvbnN0IHdpbmRvd0VudiA9ICh3aW5kb3cgYXMgYW55KS5fX2VudjtcbiAgICAgIGlmICh3aW5kb3dFbnY/LmNoYW5uZWwpIHJldHVybiB3aW5kb3dFbnYuY2hhbm5lbDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2NoYW5uZWw7XG4gIH1cblxuICBwdWJsaWMgc2V0IENIQU5ORUwodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2NoYW5uZWwgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVUkwgZGVsIGJhY2tlbmQgcGFyYSByZWFsaXphciBsYXMgcGV0aWNpb25lc1xuICAgKi9cbiAgcHVibGljIGdldCBBUElfVVJMKCk6IHN0cmluZyB7XG4gICAgLy8gQnJvd3NlciBydW50aW1lLWNvbmZpZ1xuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgY29uc3Qgd2luZG93RW52ID0gKHdpbmRvdyBhcyBhbnkpLl9fZW52O1xuICAgICAgaWYgKHdpbmRvd0Vudj8uYXBpQmFzZVVybCkgcmV0dXJuIHdpbmRvd0Vudi5hcGlCYXNlVXJsO1xuICAgIH1cblxuICAgIC8vIFNTUlxuICAgIGlmIChpc1BsYXRmb3JtU2VydmVyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIHJldHVybiB0aGlzLnNzckFwaVVybDtcbiAgICB9XG5cbiAgICAvLyBGYWxsYmFjayBlbnZpcm9ubWVudFxuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmFwaVVybCA/PyAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBVUkwgYmFzZSBjb21wbGV0YSBwYXJhIHNob3AtYXBpIGNvbiBjaGFubmVsIHkgbG9jYWxlXG4gICAqL1xuICBwdWJsaWMgZ2V0U2hvcEFwaUJhc2UoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjaGFubmVsID0gdGhpcy5DSEFOTkVMIHx8ICd1bmRlZmluZWQnO1xuICAgIGNvbnN0IGxvY2FsZSA9IHRoaXMuTE9DQUxFIHx8ICd1bmRlZmluZWQnO1xuICAgIHJldHVybiBgJHt0aGlzLkFQSV9VUkx9LyR7dGhpcy5TSE9QX0FQSV9VUkx9JHtjaGFubmVsfS8/bG9jYWxlPSR7bG9jYWxlfWA7XG4gIH1cblxuICAvKipcbiAgICogUmV0b3JuYSBsYSB1cmwgYmFzZSBnZW5lcmFsIChzaW4gc2hvcC1hcGkpXG4gICAqL1xuICBwdWJsaWMgZ2V0VXJsQmFzZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLkFQSV9VUkw7XG4gIH1cblxuICAvKipcbiAgICogQ2FtYmlhIGVsIGNhbmFsIGFjdHVhbFxuICAgKi9cbiAgcHVibGljIHNldENoYW5uZWwoY29kZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5DSEFOTkVMID0gY29kZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRMb2NhbGUobG9jYWxlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9sb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLkxPQ0FMRV9LRVksIGxvY2FsZSk7XG4gICAgdGhpcy5fdHJhbnNsYXRlLnVzZShsb2NhbGUuc3BsaXQoJ18nKVswXSk7XG4gICAgdGhpcy5MT0NBTEUgPSBsb2NhbGU7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IExPQ0FMRV9LRVk6IHN0cmluZyA9ICdMT0NBTEUnO1xuICBwcml2YXRlIHJlYWRvbmx5IENIQU5ORUxfS0VZOiBzdHJpbmcgPSAnQ0hBTk5FTCc7XG59XG4iXX0=
@@ -1,7 +1,7 @@
1
1
  import { Component, CUSTOM_ELEMENTS_SCHEMA, inject, Input, PLATFORM_ID, signal } from '@angular/core';
2
2
  import { BlockEcComponent } from '../../abstractions-components';
3
3
  import { AnalyticsService } from '../../../ec-services';
4
- import { CommonModule } from '@angular/common';
4
+ import { CommonModule, isPlatformBrowser } from '@angular/common';
5
5
  // import function to register Swiper custom elements
6
6
  import { register } from 'swiper/element/bundle';
7
7
  import { ProductEcComponent } from "../../product-ec/product-ec.component";
@@ -66,7 +66,7 @@ export class BlockProductsEcComponent extends BlockEcComponent {
66
66
  * Permite personalización de las imágenes de las flechas mediante @Input.
67
67
  */
68
68
  setupSwiperNavigation() {
69
- if (this.meta?.styles?.carrousel !== false) {
69
+ if (this.meta?.styles?.carrousel !== false && isPlatformBrowser(this.platformId)) {
70
70
  // Usar setTimeout para asegurar que el swiper esté inicializado
71
71
  setTimeout(() => {
72
72
  this.initializeSwiperWithCustomNavigation();
@@ -78,6 +78,8 @@ export class BlockProductsEcComponent extends BlockEcComponent {
78
78
  * Esta función puede ser movida al componente base para reutilización.
79
79
  */
80
80
  initializeSwiperWithCustomNavigation() {
81
+ if (!isPlatformBrowser(this.platformId))
82
+ return;
81
83
  const prevButton = document.getElementById(`${this.meta?.code}-prev`);
82
84
  const nextButton = document.getElementById(`${this.meta?.code}-next`);
83
85
  const swiperElement = document.getElementById(this.meta?.code);
@@ -216,4 +218,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
216
218
  required: true
217
219
  }]
218
220
  }] } });
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stcHJvZHVjdHMtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvYmxvY2tzLWVjL2Jsb2NrLXByb2R1Y3RzLWVjL2Jsb2NrLXByb2R1Y3RzLWVjLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1jb21wb25lbnRzL2Jsb2Nrcy1lYy9ibG9jay1wcm9kdWN0cy1lYy9ibG9jay1wcm9kdWN0cy1lYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtDLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDbkosT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBcUIsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxxREFBcUQ7QUFDckQsT0FBTyxFQUFFLFFBQVEsRUFBbUIsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7O0FBRTNFLFFBQVEsRUFBRSxDQUFBO0FBQ1Y7Ozs7R0FJRztBQVNILE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxnQkFBZ0I7SUFDNUQsK0NBQStDO0lBQ2hELHlFQUF5RTtJQUNoRSxjQUFjLENBQVUsQ0FBQyxtQ0FBbUM7SUFDNUQsY0FBYyxDQUFVLENBQUMsbUNBQW1DO0lBQzVELGFBQWEsR0FBVyxHQUFHLENBQUM7SUFDNUIsYUFBYSxHQUFXLEdBQUcs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QUFsQixLQUFLO2dCQU1ILFFBQVE7c0JBRlYsS0FBSzt1QkFBQzt3QkFDTixRQUFRLEVBQUUsSUFBSTtxQkFDZDtnQkFNRSxJQUFJO3NCQUZOLEtBQUs7dUJBQUM7d0JBQ04sUUFBUSxFQUFFLElBQUk7cUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZnRlck5leHRSZW5kZXIsIEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgaW5qZWN0LCBJbnB1dCwgUExBVEZPUk1fSUQsIHNpZ25hbCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJsb2NrRWNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hYnN0cmFjdGlvbnMtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBTd2lwZXJPcHRpb25zIH0gZnJvbSAnc3dpcGVyL3R5cGVzJztcbmltcG9ydCB7IEFuYWx5dGljc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9lYy1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbi8vIGltcG9ydCBmdW5jdGlvbiB0byByZWdpc3RlciBTd2lwZXIgY3VzdG9tIGVsZW1lbnRzXG5pbXBvcnQgeyByZWdpc3RlciwgU3dpcGVyQ29udGFpbmVyIH0gZnJvbSAnc3dpcGVyL2VsZW1lbnQvYnVuZGxlJztcbmltcG9ydCB7IFByb2R1Y3RFY0NvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9wcm9kdWN0LWVjL3Byb2R1Y3QtZWMuY29tcG9uZW50XCI7XG5cbnJlZ2lzdGVyKClcbi8qKlxuICogQ29tcG9uZW4gcGFyYSBtYW5lamFyIGxvcyBibG9xdWVzIGRlIHByb2R1Y3Rvcy5cbiAqIEBleHRlbmRzIHtCbG9ja0VjQ29tcG9uZW50fVxuICogQGNsYXNzIEJsb2NrUHJvZHVjdHNFY0NvbXBvbmVudFxuICovXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdhcHAtYmxvY2stcHJvZHVjdHMtZWMnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBQcm9kdWN0RWNDb21wb25lbnRdLFxuXHR0ZW1wbGF0ZVVybDogJy4vYmxvY2stcHJvZHVjdHMtZWMuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybDogJy4vYmxvY2stcHJvZHVjdHMtZWMuY29tcG9uZW50LnNjc3MnLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV1cbn0pXG5leHBvcnQgY2xhc3MgQmxvY2tQcm9kdWN0c0VjQ29tcG9uZW50IGV4dGVuZHMgQmxvY2tFY0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXHRcdC8vIFBlcnNvbmFsaXphY2nDs24gZGUgbGFzIGZsZWNoYXMgZGUgbmF2ZWdhY2nDs25cblx0Ly8gUG9yIGRlZmVjdG8gdXNhIHPDrW1ib2xvcyBkZSB0ZXh0bywgcGVybyBzZSBwdWVkZW4gZXNwZWNpZmljYXIgaW3DoWdlbmVzXG5cdEBJbnB1dCgpIHByZXZBcnJvd0ltYWdlPzogc3RyaW5nOyAvLyB1bmRlZmluZWQgPSB1c2Egc8OtbWJvbG8gZGUgdGV4dG9cblx0QElucHV0KCkgbmV4dEFycm93SW1hZ2U/OiBzdHJpbmc7IC8vIHVuZGVmaW5lZCA9IHVzYSBzw61tYm9sbyBkZSB0ZXh0b1xuXHRASW5wdXQoKSBwcmV2QXJyb3dUZXh0OiBzdHJpbmcgPSAnPCc7XG5cdEBJbnB1dCgpIG5leHRBcnJvd1RleHQ6IHN0cmluZyA9ICc+Jztcblx0LyoqXG5cdCAqIFNlcnZpY2lvIGRlIEFuYWx5dGljc1xuXHQgKi9cblx0cHJpdmF0ZSBhbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlID0gaW5qZWN0KEFuYWx5dGljc1NlcnZpY2UpXG5cdC8qKlxuXHQgKiBTaWduYWwgdXRsaXphZG8gcGFyYSBndWFyZGEgZWwgY29udGVuZWRvciBkZWwgY2FycnVzZWxcblx0ICovXG5cdHN3aXBlckVsZW1lbnQgPSBzaWduYWw8U3dpcGVyQ29udGFpbmVyIHwgbnVsbD4obnVsbClcblx0LyoqXG5cdCAqIElucHV0IHF1ZSByZWNpYmUgdW4gdGVtcGxhdGUgcGFyYSBlbCBwcm9kdWN0by5cblx0ICovXG5cdEBJbnB1dCgpIGFwcFByb2R1Y3Q6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBDb2xlY2Npw7NuIGRlIHByb2R1Y3Rvcy5cblx0ICovXG5cdEBJbnB1dCh7XG5cdFx0cmVxdWlyZWQ6IHRydWVcblx0fSkgcHJvZHVjdHM6IGFueTsgLy8gUHJvZHVjdFtdO1xuXHQvKipcblx0ICogQmxvcXVlIHByaW5jaXBhbCBxdWUgY29udGllbmUgbG9zIHByb2R1Y3Rvc1xuXHQgKi9cblx0QElucHV0KHtcblx0XHRyZXF1aXJlZDogdHJ1ZVxuXHR9KSBtZXRhOiBhbnk7XG5cblx0bmdBZnRlclZpZXdJbml0KCkge1xuXHRcdHRoaXMuc2V0dXBTd2lwZXJOYXZpZ2F0aW9uKCk7XG5cdH1cblx0XG5cdHByaXZhdGUgZG9jdW1lbnQ/OiBEb2N1bWVudDtcblx0cHJpdmF0ZSBwbGF0Zm9ybUlkOiBhbnkgPSBpbmplY3QoUExBVEZPUk1fSUQpXG5cblx0LyoqXG5cdCAqIEVqZWN1dGEgZWwgbcOpdG9kbyBgYWZ0ZXJOZXh0UmVuZGVyYHBhcmEgY2FyZ2FyIGxhcyBjb25maWd1cmFjaW9uZXMgbmVjZXNhcmlhcyBcblx0ICogcGFyYSBlbCBjYXJydXNlbCBkZWwgYmFubmVycy4gRXN0byBkZWJlIHNlciBhc2kgZGViaWRvIGEgcXVlIHlhIGRlYmUgZXN0YXIgcHJlc2VudGVcblx0ICogZW4gZWwgRG9tIGVsIGVsZW1lbnQgYDxzd2lwZXItY29udGFpbmVyPmAgcGFyYSBwb2RlciBjb25maWd1cmFybG8uXG5cdCAqL1xuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpXG5cdH1cblx0LyoqXG5cdCAqIEFwbGljYSBlbCBldmVudG8gYHNlbGVjdF9wcm9tb3Rpb25gIGp1bnRvIGNvbiBlbCBiYW5uZXIgcXVlIGludGVyYWN0dWEuXG5cdCAqIEBwYXJhbSBiYW5uZXIgXG5cdCAqL1xuXHRzZWxlY3RQcm9tb3Rpb24oaXRlbTogYW55KTogdm9pZCB7XG5cdFx0dGhpcy5hbmFseXRpY3NTZXJ2aWNlLmNhbGxFdmVudCgnc2VsZWN0X3Byb21vdGlvbicsIGl0ZW0pXG5cdH1cblxuXHQvKipcblx0ICogQ29uZmlndXJhIGxhIG5hdmVnYWNpw7NuIHBlcnNvbmFsaXphZGEgZGVsIFN3aXBlci5cblx0ICogRXN0YSBmdW5jacOzbiBlc3TDoSBkaXNlw7FhZGEgcGFyYSBzZXIgbW92aWRhIGFsIGNvbXBvbmVudGUgYmFzZSBCbG9ja1Byb2R1Y3RzRWNDb21wb25lbnQuXG5cdCAqIFBlcm1pdGUgcGVyc29uYWxpemFjacOzbiBkZSBsYXMgaW3DoWdlbmVzIGRlIGxhcyBmbGVjaGFzIG1lZGlhbnRlIEBJbnB1dC5cblx0ICovXG5cdHByaXZhdGUgc2V0dXBTd2lwZXJOYXZpZ2F0aW9uKCkge1xuXHRcdGlmICh0aGlzLm1ldGE/LnN0eWxlcz8uY2Fycm91c2VsICE9PSBmYWxzZSkge1xuXHRcdFx0Ly8gVXNhciBzZXRUaW1lb3V0IHBhcmEgYXNlZ3VyYXIgcXVlIGVsIHN3aXBlciBlc3TDqSBpbmljaWFsaXphZG9cblx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLmluaXRpYWxpemVTd2lwZXJXaXRoQ3VzdG9tTmF2aWdhdGlvbigpO1xuXHRcdFx0fSwgMjAwKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogSW5pY2lhbGl6YSBlbCBTd2lwZXIgY29uIG5hdmVnYWNpw7NuIHBlcnNvbmFsaXphZGEuXG5cdCAqIEVzdGEgZnVuY2nDs24gcHVlZGUgc2VyIG1vdmlkYSBhbCBjb21wb25lbnRlIGJhc2UgcGFyYSByZXV0aWxpemFjacOzbi5cblx0ICovXG5cdHByaXZhdGUgaW5pdGlhbGl6ZVN3aXBlcldpdGhDdXN0b21OYXZpZ2F0aW9uKCkge1xuXHRcdGNvbnN0IHByZXZCdXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgJHt0aGlzLm1ldGE/LmNvZGV9LXByZXZgKTtcblx0XHRjb25zdCBuZXh0QnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYCR7dGhpcy5tZXRhPy5jb2RlfS1uZXh0YCk7XG5cdFx0Y29uc3Qgc3dpcGVyRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMubWV0YT8uY29kZSkgYXMgYW55O1xuXG5cdFx0aWYgKHByZXZCdXR0b24gJiYgbmV4dEJ1dHRvbiAmJiBzd2lwZXJFbGVtZW50KSB7XG5cdFx0XHQvLyBjb25zb2xlLmxvZygnQ29uZmlndXJhbmRvIG5hdmVnYWNpw7NuIHBlcnNvbmFsaXphZGEgcGFyYTonLCB0aGlzLm1ldGE/LmNvZGUpO1xuXHRcdFx0XG5cdFx0XHRjb25zdCBzd2lwZXJDb25maWcgPSB0aGlzLmdldFN3aXBlckNvbmZpZ3VyYXRpb24oKTtcblxuXHRcdFx0Ly8gVmVyaWZpY2FyIHNpIGVsIFN3aXBlciB5YSBlc3TDoSBpbmljaWFsaXphZG9cblx0XHRcdGlmICghc3dpcGVyRWxlbWVudC5zd2lwZXIpIHtcblx0XHRcdFx0dGhpcy5pbml0aWFsaXplTmV3U3dpcGVyKHN3aXBlckVsZW1lbnQsIHN3aXBlckNvbmZpZyk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLnVwZGF0ZUV4aXN0aW5nU3dpcGVyKHN3aXBlckVsZW1lbnQpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBDb25maWd1cmFyIGxvcyBldmVudCBsaXN0ZW5lcnMgcGFyYSBsb3MgYm90b25lc1xuXHRcdFx0dGhpcy5zZXR1cE5hdmlnYXRpb25FdmVudExpc3RlbmVycyhwcmV2QnV0dG9uLCBuZXh0QnV0dG9uLCBzd2lwZXJFbGVtZW50KTtcblx0XHRcdFxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ0V2ZW50IGxpc3RlbmVycyBjb25maWd1cmFkb3MgcGFyYSBsb3MgYm90b25lcyBkZSBuYXZlZ2FjacOzbicpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBjb25zb2xlLmxvZygnTm8gc2UgcHVkaWVyb24gZW5jb250cmFyIGxvcyBlbGVtZW50b3M6Jywge1xuXHRcdFx0Ly8gXHRwcmV2QnV0dG9uOiAhIXByZXZCdXR0b24sXG5cdFx0XHQvLyBcdG5leHRCdXR0b246ICEhbmV4dEJ1dHRvbixcblx0XHRcdC8vIFx0c3dpcGVyRWxlbWVudDogISFzd2lwZXJFbGVtZW50XG5cdFx0XHQvLyB9KTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogT2J0aWVuZSBsYSBjb25maWd1cmFjacOzbiBiYXNlIGRlbCBTd2lwZXIuXG5cdCAqIEVzdGEgY29uZmlndXJhY2nDs24gcHVlZGUgc2VyIHBlcnNvbmFsaXphZGEgZW4gZWwgZnV0dXJvIG1lZGlhbnRlIEBJbnB1dC5cblx0ICovXG5cdHByaXZhdGUgZ2V0U3dpcGVyQ29uZmlndXJhdGlvbigpIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0c2xpZGVzUGVyVmlldzogJ2F1dG8nLFxuXHRcdFx0c3BhY2VCZXR3ZWVuOiAxNixcblx0XHRcdHNsaWRlc1Blckdyb3VwOiAxLCAvLyBJbXBvcnRhbnRlOiBtb3ZlcnNlIGRlIHVubyBlbiB1bm9cblx0XHRcdG5hdmlnYXRpb246IGZhbHNlLCAvLyBEZXNoYWJpbGl0YW1vcyBsYSBuYXZlZ2FjacOzbiBwb3IgZGVmZWN0b1xuXHRcdFx0cGFnaW5hdGlvbjogZmFsc2UsXG5cdFx0XHRsb29wOiB0cnVlLFxuXHRcdFx0Z3JhYkN1cnNvcjogdHJ1ZSxcblx0XHRcdGF1dG9wbGF5OiB0cnVlLFxuXHRcdFx0YnJlYWtwb2ludHM6IHtcblx0XHRcdFx0MzIwOiB7XG5cdFx0XHRcdFx0c2xpZGVzUGVyVmlldzogMSxcblx0XHRcdFx0XHRzcGFjZUJldHdlZW46IDgsXG5cdFx0XHRcdFx0c2xpZGVzUGVyR3JvdXA6IDFcblx0XHRcdFx0fSxcblx0XHRcdFx0NTc2OiB7XG5cdFx0XHRcdFx0c2xpZGVzUGVyVmlldzogMixcblx0XHRcdFx0XHRzcGFjZUJldHdlZW46IDEyLFxuXHRcdFx0XHRcdHNsaWRlc1Blckdyb3VwOiAxXG5cdFx0XHRcdH0sXG5cdFx0XHRcdDc2ODoge1xuXHRcdFx0XHRcdHNsaWRlc1BlclZpZXc6IDMsXG5cdFx0XHRcdFx0c3BhY2VCZXR3ZWVuOiAxNixcblx0XHRcdFx0XHRzbGlkZXNQZXJHcm91cDogMVxuXHRcdFx0XHR9LFxuXHRcdFx0XHQxMDI0OiB7XG5cdFx0XHRcdFx0c2xpZGVzUGVyVmlldzogNCxcblx0XHRcdFx0XHRzcGFjZUJldHdlZW46IDE2LFxuXHRcdFx0XHRcdHNsaWRlc1Blckdyb3VwOiAxXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEluaWNpYWxpemEgdW4gbnVldm8gU3dpcGVyIGNvbiBsYSBjb25maWd1cmFjacOzbiBwcm9wb3JjaW9uYWRhLlxuXHQgKi9cblx0cHJpdmF0ZSBpbml0aWFsaXplTmV3U3dpcGVyKHN3aXBlckVsZW1lbnQ6IGFueSwgY29uZmlnOiBhbnkpIHtcblx0XHQvLyBBc2lnbmFyIGNvbmZpZ3VyYWNpw7NuIGFsIGVsZW1lbnRvXG5cdFx0T2JqZWN0LmFzc2lnbihzd2lwZXJFbGVtZW50LCBjb25maWcpO1xuXHRcdFxuXHRcdC8vIEluaWNpYWxpemFyIGVsIFN3aXBlclxuXHRcdHN3aXBlckVsZW1lbnQuaW5pdGlhbGl6ZSgpO1xuXHRcdFxuXHRcdC8vIGNvbnNvbGUubG9nKCdTd2lwZXIgaW5pY2lhbGl6YWRvIGNvbiBjb25maWd1cmFjacOzbiBwZXJzb25hbGl6YWRhJyk7XG5cdH1cblxuXHQvKipcblx0ICogQWN0dWFsaXphIHVuIFN3aXBlciBleGlzdGVudGUgcGFyYSBhc2VndXJhciBsYSBjb25maWd1cmFjacOzbiBjb3JyZWN0YS5cblx0ICovXG5cdHByaXZhdGUgdXBkYXRlRXhpc3RpbmdTd2lwZXIoc3dpcGVyRWxlbWVudDogYW55KSB7XG5cdFx0Ly8gY29uc29sZS5sb2coJ0FjdHVhbGl6YW5kbyBjb25maWd1cmFjacOzbiBkZSBTd2lwZXIgZXhpc3RlbnRlJyk7XG5cdFx0XG5cdFx0Ly8gRm9yemFyIHNsaWRlc1Blckdyb3VwIGEgMVxuXHRcdHN3aXBlckVsZW1lbnQuc3dpcGVyLnBhcmFtcy5zbGlkZXNQZXJHcm91cCA9IDE7XG5cdFx0c3dpcGVyRWxlbWVudC5zd2lwZXIuYWxsb3dTbGlkZU5leHQgPSB0cnVlO1xuXHRcdHN3aXBlckVsZW1lbnQuc3dpcGVyLmFsbG93U2xpZGVQcmV2ID0gdHJ1ZTtcblx0XHRcblx0XHQvLyBBY3R1YWxpemFyIHRhbWJpw6luIGxvcyBicmVha3BvaW50cyBzaSBleGlzdGVuXG5cdFx0aWYgKHN3aXBlckVsZW1lbnQuc3dpcGVyLnBhcmFtcy5icmVha3BvaW50cykge1xuXHRcdFx0T2JqZWN0LmtleXMoc3dpcGVyRWxlbWVudC5zd2lwZXIucGFyYW1zLmJyZWFrcG9pbnRzKS5mb3JFYWNoKGtleSA9PiB7XG5cdFx0XHRcdHN3aXBlckVsZW1lbnQuc3dpcGVyLnBhcmFtcy5icmVha3BvaW50c1trZXldLnNsaWRlc1Blckdyb3VwID0gMTtcblx0XHRcdH0pO1xuXHRcdH1cblx0XHRcblx0XHRzd2lwZXJFbGVtZW50LnN3aXBlci51cGRhdGUoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDb25maWd1cmEgbG9zIGV2ZW50IGxpc3RlbmVycyBwYXJhIGxvcyBib3RvbmVzIGRlIG5hdmVnYWNpw7NuLlxuXHQgKi9cblx0cHJpdmF0ZSBzZXR1cE5hdmlnYXRpb25FdmVudExpc3RlbmVycyhwcmV2QnV0dG9uOiBFbGVtZW50LCBuZXh0QnV0dG9uOiBFbGVtZW50LCBzd2lwZXJFbGVtZW50OiBhbnkpIHtcblx0XHRwcmV2QnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGUpID0+IHtcblx0XHRcdGUucHJldmVudERlZmF1bHQoKTtcblx0XHRcdGUuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0XHQvLyBjb25zb2xlLmxvZygnQ2xpY2sgZW4gYm90w7NuIGFudGVyaW9yJyk7XG5cdFx0XHRpZiAoc3dpcGVyRWxlbWVudC5zd2lwZXIpIHtcblx0XHRcdFx0c3dpcGVyRWxlbWVudC5zd2lwZXIuc2xpZGVQcmV2KCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRuZXh0QnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGUpID0+IHtcblx0XHRcdGUucHJldmVudERlZmF1bHQoKTtcblx0XHRcdGUuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0XHQvLyBjb25zb2xlLmxvZygnQ2xpY2sgZW4gYm90w7NuIHNpZ3VpZW50ZScpO1xuXHRcdFx0aWYgKHN3aXBlckVsZW1lbnQuc3dpcGVyKSB7XG5cdFx0XHRcdHN3aXBlckVsZW1lbnQuc3dpcGVyLnNsaWRlTmV4dCgpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG59XG4iLCI8c2VjdGlvbiBbbmdDbGFzc109XCJ0cmltQ2xhc3NCbG9jayhtZXRhLmNvZGUpICsgJyBjb250YWluZXItZmx1aWQnXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYmxvY2tQcm9kdWN0IGJsb2NrLXByb2R1Y3RcIj5cbiAgICAgICAgQGlmKG1ldGEubmFtZSl7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbXQtNFwiPlxuICAgICAgICAgICAgICAgIDxoMiAgY2xhc3M9XCJmb250LXdlaWdodC1ub3JtYWwgZm9udC1nZFwiPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e21ldGEubmFtZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuXG4gICAgICAgIEBpZihtZXRhLnN0eWxlcyAmJiBtZXRhLnN0eWxlcy5jYXJyb3VzZWwgPT0gZmFsc2Upe1xuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IFwiPlxuICAgICAgICAgICAgQGZvciAocHJvZHVjdCBvZiBwcm9kdWN0czsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8ZGl2IFtjbGFzc109XCInaXRlbSAnKyAnIGNvbC0nKyAobWV0YS5zdHlsZXMuaXRlbXM/LnNtKSArICcgY29sLW1kLScgKyAobWV0YS5zdHlsZXMuaXRlbXM/Lm1kKSAgKyAnIGNvbC1sZy0nICsgKG1ldGEuc3R5bGVzLml0ZW1zPy5sZykgICsgJyBweC0yJ1wiIFtpZF09XCIkaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8IS0tIHZlcmlmaWNhIHF1ZSBzaSB2aWVuZW4gdW4gdGVtcGxhdGUgcGFyYSB1biBjdXN0b20gYXBwUHJvZHVjdCBsbGFtYWRvIFwiYXBwUHJvZHVjdFwiIGNvbiB1biBvYmpldG8gXCJwcm9kdWN0XCItIHNpbm8gdXNhIHBvciBkZWZlY3RvIGVsIGRlbCBjb3JlIC0tPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhcHBQcm9kdWN0ID8gYXBwUHJvZHVjdCA6IGRlZmF1bHRBcHBQcm9kdWN0OyBjb250ZXh0OiB7cHJvZHVjdDpwcm9kdWN0fVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lciBwb3NpdGlvbi1yZWxhdGl2ZVwiPlxuICAgICAgICAgICAgPHN3aXBlci1jb250YWluZXIgXG4gICAgICAgICAgICAgICAgaW5pdD1cImZhbHNlXCIgXG4gICAgICAgICAgICAgICAgW2lkXT1cIm1ldGE/LmNvZGVcIlxuICAgICAgICAgICAgICAgIHNsaWRlcy1wZXItdmlldz1cImF1dG9cIlxuICAgICAgICAgICAgICAgIHNwYWNlLWJldHdlZW49XCIxNlwiXG4gICAgICAgICAgICAgICAgc2xpZGVzLXBlci1ncm91cD1cIjFcIlxuICAgICAgICAgICAgICAgIG5hdmlnYXRpb249XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgcGFnaW5hdGlvbj1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICBsb29wPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChwcm9kdWN0IG9mIHByb2R1Y3RzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICA8c3dpcGVyLXNsaWRlIGlkPVwic3dpcGVyLXNsaWRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiYXBwUHJvZHVjdCA/IGFwcFByb2R1Y3QgOiBkZWZhdWx0QXBwUHJvZHVjdDsgY29udGV4dDoge3Byb2R1Y3Q6cHJvZHVjdH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L3N3aXBlci1zbGlkZT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3N3aXBlci1jb250YWluZXI+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIDwhLS0gQm90b25lcyBkZSBuYXZlZ2FjacOzbiBwZXJzb25hbGl6YWRvcyAtLT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzd2lwZXItbmF2aWdhdGlvblwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzd2lwZXItYnV0dG9uLXByZXZcIiBbaWRdPVwibWV0YT8uY29kZSArICctcHJldidcIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmKHByZXZBcnJvd0ltYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwicHJldkFycm93SW1hZ2VcIiBhbHQ9XCJBbnRlcmlvclwiIC8+XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcnJvdy10ZXh0XCI+e3twcmV2QXJyb3dUZXh0fX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3dpcGVyLWJ1dHRvbi1uZXh0XCIgW2lkXT1cIm1ldGE/LmNvZGUgKyAnLW5leHQnXCI+XG4gICAgICAgICAgICAgICAgICAgIEBpZihuZXh0QXJyb3dJbWFnZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cIm5leHRBcnJvd0ltYWdlXCIgYWx0PVwiU2lndWllbnRlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFycm93LXRleHRcIj57e25leHRBcnJvd1RleHR9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgPC9kaXY+XG48L3NlY3Rpb24+XG5cblxuPCEtLSBjb21wb25lbnRlIHBvciBkZWZlY3RvICh0b21hcmEgY29tbyBwcm9kdWN0byBlbCBjb250ZXh0byBwYXNhZG8gY29tbyBcInByb2R1Y3RcIikgLS0+XG48bmctdGVtcGxhdGUgI2RlZmF1bHRBcHBQcm9kdWN0IGxldC1wcm9kdWN0PVwicHJvZHVjdFwiPlxuICAgIDxhcHAtcHJvZHVjdC1lYyBbcHJvZHVjdF09XCJwcm9kdWN0XCI+PC9hcHAtcHJvZHVjdC1lYz5cbjwvbmctdGVtcGxhdGU+Il19
221
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stcHJvZHVjdHMtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvYmxvY2tzLWVjL2Jsb2NrLXByb2R1Y3RzLWVjL2Jsb2NrLXByb2R1Y3RzLWVjLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1jb21wb25lbnRzL2Jsb2Nrcy1lYy9ibG9jay1wcm9kdWN0cy1lYy9ibG9jay1wcm9kdWN0cy1lYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtDLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDbkosT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLHFEQUFxRDtBQUNyRCxPQUFPLEVBQUUsUUFBUSxFQUFtQixNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7QUFFM0UsUUFBUSxFQUFFLENBQUE7QUFDVjs7OztHQUlHO0FBU0gsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGdCQUFnQjtJQUM1RCwrQ0FBK0M7SUFDaEQseUVBQXlFO0lBQ2hFLGNBQWMsQ0FBVSxDQUFDLG1DQUFtQztJQUM1RCxjQUFjLENBQVUsQ0FBQyxtQ0FBbUM7SUFDNUQsYUFBYSxHQUFXLEdBQUcsQ0FBQztJQUM1QixhQUFh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d0RBS3hCLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBWUcsVUFBVTtzQkFBbEIsS0FBSztnQkFNSCxRQUFRO3NCQUZWLEtBQUs7dUJBQUM7d0JBQ04sUUFBUSxFQUFFLElBQUk7cUJBQ2Q7Z0JBTUUsSUFBSTtzQkFGTixLQUFLO3VCQUFDO3dCQUNOLFFBQVEsRUFBRSxJQUFJO3FCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWZ0ZXJOZXh0UmVuZGVyLCBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIGluamVjdCwgSW5wdXQsIFBMQVRGT1JNX0lELCBzaWduYWwsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCbG9ja0VjQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYWJzdHJhY3Rpb25zLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgU3dpcGVyT3B0aW9ucyB9IGZyb20gJ3N3aXBlci90eXBlcyc7XG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZWMtc2VydmljZXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG4vLyBpbXBvcnQgZnVuY3Rpb24gdG8gcmVnaXN0ZXIgU3dpcGVyIGN1c3RvbSBlbGVtZW50c1xuaW1wb3J0IHsgcmVnaXN0ZXIsIFN3aXBlckNvbnRhaW5lciB9IGZyb20gJ3N3aXBlci9lbGVtZW50L2J1bmRsZSc7XG5pbXBvcnQgeyBQcm9kdWN0RWNDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vcHJvZHVjdC1lYy9wcm9kdWN0LWVjLmNvbXBvbmVudFwiO1xuXG5yZWdpc3RlcigpXG4vKipcbiAqIENvbXBvbmVuIHBhcmEgbWFuZWphciBsb3MgYmxvcXVlcyBkZSBwcm9kdWN0b3MuXG4gKiBAZXh0ZW5kcyB7QmxvY2tFY0NvbXBvbmVudH1cbiAqIEBjbGFzcyBCbG9ja1Byb2R1Y3RzRWNDb21wb25lbnRcbiAqL1xuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnYXBwLWJsb2NrLXByb2R1Y3RzLWVjJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUHJvZHVjdEVjQ29tcG9uZW50XSxcblx0dGVtcGxhdGVVcmw6ICcuL2Jsb2NrLXByb2R1Y3RzLWVjLmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmw6ICcuL2Jsb2NrLXByb2R1Y3RzLWVjLmNvbXBvbmVudC5zY3NzJyxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdXG59KVxuZXhwb3J0IGNsYXNzIEJsb2NrUHJvZHVjdHNFY0NvbXBvbmVudCBleHRlbmRzIEJsb2NrRWNDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblx0XHQvLyBQZXJzb25hbGl6YWNpw7NuIGRlIGxhcyBmbGVjaGFzIGRlIG5hdmVnYWNpw7NuXG5cdC8vIFBvciBkZWZlY3RvIHVzYSBzw61tYm9sb3MgZGUgdGV4dG8sIHBlcm8gc2UgcHVlZGVuIGVzcGVjaWZpY2FyIGltw6FnZW5lc1xuXHRASW5wdXQoKSBwcmV2QXJyb3dJbWFnZT86IHN0cmluZzsgLy8gdW5kZWZpbmVkID0gdXNhIHPDrW1ib2xvIGRlIHRleHRvXG5cdEBJbnB1dCgpIG5leHRBcnJvd0ltYWdlPzogc3RyaW5nOyAvLyB1bmRlZmluZWQgPSB1c2Egc8OtbWJvbG8gZGUgdGV4dG9cblx0QElucHV0KCkgcHJldkFycm93VGV4dDogc3RyaW5nID0gJzwnO1xuXHRASW5wdXQoKSBuZXh0QXJyb3dUZXh0OiBzdHJpbmcgPSAnPic7XG5cdC8qKlxuXHQgKiBTZXJ2aWNpbyBkZSBBbmFseXRpY3Ncblx0ICovXG5cdHByaXZhdGUgYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZSA9IGluamVjdChBbmFseXRpY3NTZXJ2aWNlKVxuXHQvKipcblx0ICogU2lnbmFsIHV0bGl6YWRvIHBhcmEgZ3VhcmRhIGVsIGNvbnRlbmVkb3IgZGVsIGNhcnJ1c2VsXG5cdCAqL1xuXHRzd2lwZXJFbGVtZW50ID0gc2lnbmFsPFN3aXBlckNvbnRhaW5lciB8IG51bGw+KG51bGwpXG5cdC8qKlxuXHQgKiBJbnB1dCBxdWUgcmVjaWJlIHVuIHRlbXBsYXRlIHBhcmEgZWwgcHJvZHVjdG8uXG5cdCAqL1xuXHRASW5wdXQoKSBhcHBQcm9kdWN0OiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogQ29sZWNjacOzbiBkZSBwcm9kdWN0b3MuXG5cdCAqL1xuXHRASW5wdXQoe1xuXHRcdHJlcXVpcmVkOiB0cnVlXG5cdH0pIHByb2R1Y3RzOiBhbnk7IC8vIFByb2R1Y3RbXTtcblx0LyoqXG5cdCAqIEJsb3F1ZSBwcmluY2lwYWwgcXVlIGNvbnRpZW5lIGxvcyBwcm9kdWN0b3Ncblx0ICovXG5cdEBJbnB1dCh7XG5cdFx0cmVxdWlyZWQ6IHRydWVcblx0fSkgbWV0YTogYW55O1xuXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpIHtcblx0XHR0aGlzLnNldHVwU3dpcGVyTmF2aWdhdGlvbigpO1xuXHR9XG5cdFxuXHRwcml2YXRlIGRvY3VtZW50PzogRG9jdW1lbnQ7XG5cdHByaXZhdGUgcGxhdGZvcm1JZDogYW55ID0gaW5qZWN0KFBMQVRGT1JNX0lEKVxuXG5cdC8qKlxuXHQgKiBFamVjdXRhIGVsIG3DqXRvZG8gYGFmdGVyTmV4dFJlbmRlcmBwYXJhIGNhcmdhciBsYXMgY29uZmlndXJhY2lvbmVzIG5lY2VzYXJpYXMgXG5cdCAqIHBhcmEgZWwgY2FycnVzZWwgZGVsIGJhbm5lcnMuIEVzdG8gZGViZSBzZXIgYXNpIGRlYmlkbyBhIHF1ZSB5YSBkZWJlIGVzdGFyIHByZXNlbnRlXG5cdCAqIGVuIGVsIERvbSBlbCBlbGVtZW50IGA8c3dpcGVyLWNvbnRhaW5lcj5gIHBhcmEgcG9kZXIgY29uZmlndXJhcmxvLlxuXHQgKi9cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0c3VwZXIoKVxuXHR9XG5cdC8qKlxuXHQgKiBBcGxpY2EgZWwgZXZlbnRvIGBzZWxlY3RfcHJvbW90aW9uYCBqdW50byBjb24gZWwgYmFubmVyIHF1ZSBpbnRlcmFjdHVhLlxuXHQgKiBAcGFyYW0gYmFubmVyIFxuXHQgKi9cblx0c2VsZWN0UHJvbW90aW9uKGl0ZW06IGFueSk6IHZvaWQge1xuXHRcdHRoaXMuYW5hbHl0aWNzU2VydmljZS5jYWxsRXZlbnQoJ3NlbGVjdF9wcm9tb3Rpb24nLCBpdGVtKVxuXHR9XG5cblx0LyoqXG5cdCAqIENvbmZpZ3VyYSBsYSBuYXZlZ2FjacOzbiBwZXJzb25hbGl6YWRhIGRlbCBTd2lwZXIuXG5cdCAqIEVzdGEgZnVuY2nDs24gZXN0w6EgZGlzZcOxYWRhIHBhcmEgc2VyIG1vdmlkYSBhbCBjb21wb25lbnRlIGJhc2UgQmxvY2tQcm9kdWN0c0VjQ29tcG9uZW50LlxuXHQgKiBQZXJtaXRlIHBlcnNvbmFsaXphY2nDs24gZGUgbGFzIGltw6FnZW5lcyBkZSBsYXMgZmxlY2hhcyBtZWRpYW50ZSBASW5wdXQuXG5cdCAqL1xuXHRwcml2YXRlIHNldHVwU3dpcGVyTmF2aWdhdGlvbigpIHtcblx0XHRpZiAodGhpcy5tZXRhPy5zdHlsZXM/LmNhcnJvdXNlbCAhPT0gZmFsc2UgJiYgaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuXHRcdFx0Ly8gVXNhciBzZXRUaW1lb3V0IHBhcmEgYXNlZ3VyYXIgcXVlIGVsIHN3aXBlciBlc3TDqSBpbmljaWFsaXphZG9cblx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLmluaXRpYWxpemVTd2lwZXJXaXRoQ3VzdG9tTmF2aWdhdGlvbigpO1xuXHRcdFx0fSwgMjAwKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogSW5pY2lhbGl6YSBlbCBTd2lwZXIgY29uIG5hdmVnYWNpw7NuIHBlcnNvbmFsaXphZGEuXG5cdCAqIEVzdGEgZnVuY2nDs24gcHVlZGUgc2VyIG1vdmlkYSBhbCBjb21wb25lbnRlIGJhc2UgcGFyYSByZXV0aWxpemFjacOzbi5cblx0ICovXG5cdHByaXZhdGUgaW5pdGlhbGl6ZVN3aXBlcldpdGhDdXN0b21OYXZpZ2F0aW9uKCkge1xuXHRcdGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuXHRcdFxuXHRcdGNvbnN0IHByZXZCdXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgJHt0aGlzLm1ldGE/LmNvZGV9LXByZXZgKTtcblx0XHRjb25zdCBuZXh0QnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYCR7dGhpcy5tZXRhPy5jb2RlfS1uZXh0YCk7XG5cdFx0Y29uc3Qgc3dpcGVyRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMubWV0YT8uY29kZSkgYXMgYW55O1xuXG5cdFx0aWYgKHByZXZCdXR0b24gJiYgbmV4dEJ1dHRvbiAmJiBzd2lwZXJFbGVtZW50KSB7XG5cdFx0XHQvLyBjb25zb2xlLmxvZygnQ29uZmlndXJhbmRvIG5hdmVnYWNpw7NuIHBlcnNvbmFsaXphZGEgcGFyYTonLCB0aGlzLm1ldGE/LmNvZGUpO1xuXHRcdFx0XG5cdFx0XHRjb25zdCBzd2lwZXJDb25maWcgPSB0aGlzLmdldFN3aXBlckNvbmZpZ3VyYXRpb24oKTtcblxuXHRcdFx0Ly8gVmVyaWZpY2FyIHNpIGVsIFN3aXBlciB5YSBlc3TDoSBpbmljaWFsaXphZG9cblx0XHRcdGlmICghc3dpcGVyRWxlbWVudC5zd2lwZXIpIHtcblx0XHRcdFx0dGhpcy5pbml0aWFsaXplTmV3U3dpcGVyKHN3aXBlckVsZW1lbnQsIHN3aXBlckNvbmZpZyk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLnVwZGF0ZUV4aXN0aW5nU3dpcGVyKHN3aXBlckVsZW1lbnQpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBDb25maWd1cmFyIGxvcyBldmVudCBsaXN0ZW5lcnMgcGFyYSBsb3MgYm90b25lc1xuXHRcdFx0dGhpcy5zZXR1cE5hdmlnYXRpb25FdmVudExpc3RlbmVycyhwcmV2QnV0dG9uLCBuZXh0QnV0dG9uLCBzd2lwZXJFbGVtZW50KTtcblx0XHRcdFxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ0V2ZW50IGxpc3RlbmVycyBjb25maWd1cmFkb3MgcGFyYSBsb3MgYm90b25lcyBkZSBuYXZlZ2FjacOzbicpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBjb25zb2xlLmxvZygnTm8gc2UgcHVkaWVyb24gZW5jb250cmFyIGxvcyBlbGVtZW50b3M6Jywge1xuXHRcdFx0Ly8gXHRwcmV2QnV0dG9uOiAhIXByZXZCdXR0b24sXG5cdFx0XHQvLyBcdG5leHRCdXR0b246ICEhbmV4dEJ1dHRvbixcblx0XHRcdC8vIFx0c3dpcGVyRWxlbWVudDogISFzd2lwZXJFbGVtZW50XG5cdFx0XHQvLyB9KTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogT2J0aWVuZSBsYSBjb25maWd1cmFjacOzbiBiYXNlIGRlbCBTd2lwZXIuXG5cdCAqIEVzdGEgY29uZmlndXJhY2nDs24gcHVlZGUgc2VyIHBlcnNvbmFsaXphZGEgZW4gZWwgZnV0dXJvIG1lZGlhbnRlIEBJbnB1dC5cblx0ICovXG5cdHByaXZhdGUgZ2V0U3dpcGVyQ29uZmlndXJhdGlvbigpIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0c2xpZGVzUGVyVmlldzogJ2F1dG8nLFxuXHRcdFx0c3BhY2VCZXR3ZWVuOiAxNixcblx0XHRcdHNsaWRlc1Blckdyb3VwOiAxLCAvLyBJbXBvcnRhbnRlOiBtb3ZlcnNlIGRlIHVubyBlbiB1bm9cblx0XHRcdG5hdmlnYXRpb246IGZhbHNlLCAvLyBEZXNoYWJpbGl0YW1vcyBsYSBuYXZlZ2FjacOzbiBwb3IgZGVmZWN0b1xuXHRcdFx0cGFnaW5hdGlvbjogZmFsc2UsXG5cdFx0XHRsb29wOiB0cnVlLFxuXHRcdFx0Z3JhYkN1cnNvcjogdHJ1ZSxcblx0XHRcdGF1dG9wbGF5OiB0cnVlLFxuXHRcdFx0YnJlYWtwb2ludHM6IHtcblx0XHRcdFx0MzIwOiB7XG5cdFx0XHRcdFx0c2xpZGVzUGVyVmlldzogMSxcblx0XHRcdFx0XHRzcGFjZUJldHdlZW46IDgsXG5cdFx0XHRcdFx0c2xpZGVzUGVyR3JvdXA6IDFcblx0XHRcdFx0fSxcblx0XHRcdFx0NTc2OiB7XG5cdFx0XHRcdFx0c2xpZGVzUGVyVmlldzogMixcblx0XHRcdFx0XHRzcGFjZUJldHdlZW46IDEyLFxuXHRcdFx0XHRcdHNsaWRlc1Blckdyb3VwOiAxXG5cdFx0XHRcdH0sXG5cdFx0XHRcdDc2ODoge1xuXHRcdFx0XHRcdHNsaWRlc1BlclZpZXc6IDMsXG5cdFx0XHRcdFx0c3BhY2VCZXR3ZWVuOiAxNixcblx0XHRcdFx0XHRzbGlkZXNQZXJHcm91cDogMVxuXHRcdFx0XHR9LFxuXHRcdFx0XHQxMDI0OiB7XG5cdFx0XHRcdFx0c2xpZGVzUGVyVmlldzogNCxcblx0XHRcdFx0XHRzcGFjZUJldHdlZW46IDE2LFxuXHRcdFx0XHRcdHNsaWRlc1Blckdyb3VwOiAxXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEluaWNpYWxpemEgdW4gbnVldm8gU3dpcGVyIGNvbiBsYSBjb25maWd1cmFjacOzbiBwcm9wb3JjaW9uYWRhLlxuXHQgKi9cblx0cHJpdmF0ZSBpbml0aWFsaXplTmV3U3dpcGVyKHN3aXBlckVsZW1lbnQ6IGFueSwgY29uZmlnOiBhbnkpIHtcblx0XHQvLyBBc2lnbmFyIGNvbmZpZ3VyYWNpw7NuIGFsIGVsZW1lbnRvXG5cdFx0T2JqZWN0LmFzc2lnbihzd2lwZXJFbGVtZW50LCBjb25maWcpO1xuXHRcdFxuXHRcdC8vIEluaWNpYWxpemFyIGVsIFN3aXBlclxuXHRcdHN3aXBlckVsZW1lbnQuaW5pdGlhbGl6ZSgpO1xuXHRcdFxuXHRcdC8vIGNvbnNvbGUubG9nKCdTd2lwZXIgaW5pY2lhbGl6YWRvIGNvbiBjb25maWd1cmFjacOzbiBwZXJzb25hbGl6YWRhJyk7XG5cdH1cblxuXHQvKipcblx0ICogQWN0dWFsaXphIHVuIFN3aXBlciBleGlzdGVudGUgcGFyYSBhc2VndXJhciBsYSBjb25maWd1cmFjacOzbiBjb3JyZWN0YS5cblx0ICovXG5cdHByaXZhdGUgdXBkYXRlRXhpc3RpbmdTd2lwZXIoc3dpcGVyRWxlbWVudDogYW55KSB7XG5cdFx0Ly8gY29uc29sZS5sb2coJ0FjdHVhbGl6YW5kbyBjb25maWd1cmFjacOzbiBkZSBTd2lwZXIgZXhpc3RlbnRlJyk7XG5cdFx0XG5cdFx0Ly8gRm9yemFyIHNsaWRlc1Blckdyb3VwIGEgMVxuXHRcdHN3aXBlckVsZW1lbnQuc3dpcGVyLnBhcmFtcy5zbGlkZXNQZXJHcm91cCA9IDE7XG5cdFx0c3dpcGVyRWxlbWVudC5zd2lwZXIuYWxsb3dTbGlkZU5leHQgPSB0cnVlO1xuXHRcdHN3aXBlckVsZW1lbnQuc3dpcGVyLmFsbG93U2xpZGVQcmV2ID0gdHJ1ZTtcblx0XHRcblx0XHQvLyBBY3R1YWxpemFyIHRhbWJpw6luIGxvcyBicmVha3BvaW50cyBzaSBleGlzdGVuXG5cdFx0aWYgKHN3aXBlckVsZW1lbnQuc3dpcGVyLnBhcmFtcy5icmVha3BvaW50cykge1xuXHRcdFx0T2JqZWN0LmtleXMoc3dpcGVyRWxlbWVudC5zd2lwZXIucGFyYW1zLmJyZWFrcG9pbnRzKS5mb3JFYWNoKGtleSA9PiB7XG5cdFx0XHRcdHN3aXBlckVsZW1lbnQuc3dpcGVyLnBhcmFtcy5icmVha3BvaW50c1trZXldLnNsaWRlc1Blckdyb3VwID0gMTtcblx0XHRcdH0pO1xuXHRcdH1cblx0XHRcblx0XHRzd2lwZXJFbGVtZW50LnN3aXBlci51cGRhdGUoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDb25maWd1cmEgbG9zIGV2ZW50IGxpc3RlbmVycyBwYXJhIGxvcyBib3RvbmVzIGRlIG5hdmVnYWNpw7NuLlxuXHQgKi9cblx0cHJpdmF0ZSBzZXR1cE5hdmlnYXRpb25FdmVudExpc3RlbmVycyhwcmV2QnV0dG9uOiBFbGVtZW50LCBuZXh0QnV0dG9uOiBFbGVtZW50LCBzd2lwZXJFbGVtZW50OiBhbnkpIHtcblx0XHRwcmV2QnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGUpID0+IHtcblx0XHRcdGUucHJldmVudERlZmF1bHQoKTtcblx0XHRcdGUuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0XHQvLyBjb25zb2xlLmxvZygnQ2xpY2sgZW4gYm90w7NuIGFudGVyaW9yJyk7XG5cdFx0XHRpZiAoc3dpcGVyRWxlbWVudC5zd2lwZXIpIHtcblx0XHRcdFx0c3dpcGVyRWxlbWVudC5zd2lwZXIuc2xpZGVQcmV2KCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRuZXh0QnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGUpID0+IHtcblx0XHRcdGUucHJldmVudERlZmF1bHQoKTtcblx0XHRcdGUuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0XHQvLyBjb25zb2xlLmxvZygnQ2xpY2sgZW4gYm90w7NuIHNpZ3VpZW50ZScpO1xuXHRcdFx0aWYgKHN3aXBlckVsZW1lbnQuc3dpcGVyKSB7XG5cdFx0XHRcdHN3aXBlckVsZW1lbnQuc3dpcGVyLnNsaWRlTmV4dCgpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG59XG4iLCI8c2VjdGlvbiBbbmdDbGFzc109XCJ0cmltQ2xhc3NCbG9jayhtZXRhLmNvZGUpICsgJyBjb250YWluZXItZmx1aWQnXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYmxvY2tQcm9kdWN0IGJsb2NrLXByb2R1Y3RcIj5cbiAgICAgICAgQGlmKG1ldGEubmFtZSl7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbXQtNFwiPlxuICAgICAgICAgICAgICAgIDxoMiAgY2xhc3M9XCJmb250LXdlaWdodC1ub3JtYWwgZm9udC1nZFwiPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e21ldGEubmFtZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuXG4gICAgICAgIEBpZihtZXRhLnN0eWxlcyAmJiBtZXRhLnN0eWxlcy5jYXJyb3VzZWwgPT0gZmFsc2Upe1xuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IFwiPlxuICAgICAgICAgICAgQGZvciAocHJvZHVjdCBvZiBwcm9kdWN0czsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8ZGl2IFtjbGFzc109XCInaXRlbSAnKyAnIGNvbC0nKyAobWV0YS5zdHlsZXMuaXRlbXM/LnNtKSArICcgY29sLW1kLScgKyAobWV0YS5zdHlsZXMuaXRlbXM/Lm1kKSAgKyAnIGNvbC1sZy0nICsgKG1ldGEuc3R5bGVzLml0ZW1zPy5sZykgICsgJyBweC0yJ1wiIFtpZF09XCIkaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8IS0tIHZlcmlmaWNhIHF1ZSBzaSB2aWVuZW4gdW4gdGVtcGxhdGUgcGFyYSB1biBjdXN0b20gYXBwUHJvZHVjdCBsbGFtYWRvIFwiYXBwUHJvZHVjdFwiIGNvbiB1biBvYmpldG8gXCJwcm9kdWN0XCItIHNpbm8gdXNhIHBvciBkZWZlY3RvIGVsIGRlbCBjb3JlIC0tPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhcHBQcm9kdWN0ID8gYXBwUHJvZHVjdCA6IGRlZmF1bHRBcHBQcm9kdWN0OyBjb250ZXh0OiB7cHJvZHVjdDpwcm9kdWN0fVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lciBwb3NpdGlvbi1yZWxhdGl2ZVwiPlxuICAgICAgICAgICAgPHN3aXBlci1jb250YWluZXIgXG4gICAgICAgICAgICAgICAgaW5pdD1cImZhbHNlXCIgXG4gICAgICAgICAgICAgICAgW2lkXT1cIm1ldGE/LmNvZGVcIlxuICAgICAgICAgICAgICAgIHNsaWRlcy1wZXItdmlldz1cImF1dG9cIlxuICAgICAgICAgICAgICAgIHNwYWNlLWJldHdlZW49XCIxNlwiXG4gICAgICAgICAgICAgICAgc2xpZGVzLXBlci1ncm91cD1cIjFcIlxuICAgICAgICAgICAgICAgIG5hdmlnYXRpb249XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgcGFnaW5hdGlvbj1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICBsb29wPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChwcm9kdWN0IG9mIHByb2R1Y3RzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICA8c3dpcGVyLXNsaWRlIGlkPVwic3dpcGVyLXNsaWRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiYXBwUHJvZHVjdCA/IGFwcFByb2R1Y3QgOiBkZWZhdWx0QXBwUHJvZHVjdDsgY29udGV4dDoge3Byb2R1Y3Q6cHJvZHVjdH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L3N3aXBlci1zbGlkZT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3N3aXBlci1jb250YWluZXI+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIDwhLS0gQm90b25lcyBkZSBuYXZlZ2FjacOzbiBwZXJzb25hbGl6YWRvcyAtLT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzd2lwZXItbmF2aWdhdGlvblwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzd2lwZXItYnV0dG9uLXByZXZcIiBbaWRdPVwibWV0YT8uY29kZSArICctcHJldidcIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmKHByZXZBcnJvd0ltYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwicHJldkFycm93SW1hZ2VcIiBhbHQ9XCJBbnRlcmlvclwiIC8+XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcnJvdy10ZXh0XCI+e3twcmV2QXJyb3dUZXh0fX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3dpcGVyLWJ1dHRvbi1uZXh0XCIgW2lkXT1cIm1ldGE/LmNvZGUgKyAnLW5leHQnXCI+XG4gICAgICAgICAgICAgICAgICAgIEBpZihuZXh0QXJyb3dJbWFnZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cIm5leHRBcnJvd0ltYWdlXCIgYWx0PVwiU2lndWllbnRlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFycm93LXRleHRcIj57e25leHRBcnJvd1RleHR9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgPC9kaXY+XG48L3NlY3Rpb24+XG5cblxuPCEtLSBjb21wb25lbnRlIHBvciBkZWZlY3RvICh0b21hcmEgY29tbyBwcm9kdWN0byBlbCBjb250ZXh0byBwYXNhZG8gY29tbyBcInByb2R1Y3RcIikgLS0+XG48bmctdGVtcGxhdGUgI2RlZmF1bHRBcHBQcm9kdWN0IGxldC1wcm9kdWN0PVwicHJvZHVjdFwiPlxuICAgIDxhcHAtcHJvZHVjdC1lYyBbcHJvZHVjdF09XCJwcm9kdWN0XCI+PC9hcHAtcHJvZHVjdC1lYz5cbjwvbmctdGVtcGxhdGU+Il19
@@ -1,11 +1,10 @@
1
1
  import { Component, inject, PLATFORM_ID, HostListener, ChangeDetectorRef } from '@angular/core';
2
- import { TitleCasePipe, AsyncPipe, JsonPipe, CommonModule } from '@angular/common';
2
+ import { TitleCasePipe, AsyncPipe, JsonPipe, CommonModule, isPlatformBrowser } from '@angular/common';
3
3
  import { MenuEcComponent } from '../abstractions-components';
4
4
  import { AuthService } from '../../ec-services';
5
5
  import { Router, NavigationEnd, RouterLink, RouterLinkActive } from '@angular/router';
6
6
  import { CoreConstantsService } from '../../constants';
7
7
  import { ChannelService } from '../../ec-services';
8
- import { isPlatformBrowser } from '@angular/common';
9
8
  import * as i0 from "@angular/core";
10
9
  /**
11
10
  * Componente que se encarga de manejar la funcionalidad del Header.
@@ -22,7 +21,6 @@ export class HeaderEcComponent extends MenuEcComponent {
22
21
  _channelService = inject(ChannelService);
23
22
  changeDetector = inject(ChangeDetectorRef);
24
23
  appRouter = inject(Router);
25
- platformId = inject(PLATFORM_ID);
26
24
  // Observable del estado de autenticación
27
25
  logged$;
28
26
  isAuthenticated$ = this.__authService.isAuthenticated();
@@ -38,6 +36,7 @@ export class HeaderEcComponent extends MenuEcComponent {
38
36
  coreConstantsService = inject(CoreConstantsService);
39
37
  router = inject(Router);
40
38
  cdr = inject(ChangeDetectorRef); // Inyectamos ChangeDetectorRef para forzar la actualización
39
+ platformId = inject(PLATFORM_ID);
41
40
  ngOnInit() {
42
41
  this.channel = this.coreConstantsService.getChannel();
43
42
  this.onWindowScroll();
@@ -76,17 +75,21 @@ export class HeaderEcComponent extends MenuEcComponent {
76
75
  });
77
76
  }
78
77
  onWindowScroll() {
79
- const scrollTop = window.scrollY;
80
- this.isScrolled = scrollTop > 80;
78
+ if (isPlatformBrowser(this.platformId)) {
79
+ const scrollTop = window.scrollY;
80
+ this.isScrolled = scrollTop > 80;
81
+ }
81
82
  }
82
83
  isHomeFunction() {
83
- const headerElement = document.querySelector('header');
84
- if (headerElement) {
85
- if (this.router.url !== '/home') {
86
- headerElement.classList.add('show-menu');
87
- }
88
- else {
89
- headerElement.classList.remove('show-menu');
84
+ if (isPlatformBrowser(this.platformId)) {
85
+ const headerElement = document.querySelector('header');
86
+ if (headerElement) {
87
+ if (this.router.url !== '/home') {
88
+ headerElement.classList.add('show-menu');
89
+ }
90
+ else {
91
+ headerElement.classList.remove('show-menu');
92
+ }
90
93
  }
91
94
  }
92
95
  }
@@ -110,26 +113,30 @@ export class HeaderEcComponent extends MenuEcComponent {
110
113
  }
111
114
  };
112
115
  borrarInput(inputId) {
113
- if (inputId) {
114
- const input = document.getElementById(inputId);
115
- if (input) {
116
- input.value = '';
117
- }
118
- }
119
- else {
120
- const inputs = ['searchInput1'];
121
- inputs.forEach((id) => {
122
- const input = document.getElementById(id);
116
+ if (isPlatformBrowser(this.platformId)) {
117
+ if (inputId) {
118
+ const input = document.getElementById(inputId);
123
119
  if (input) {
124
120
  input.value = '';
125
121
  }
126
- });
122
+ }
123
+ else {
124
+ const inputs = ['searchInput1'];
125
+ inputs.forEach((id) => {
126
+ const input = document.getElementById(id);
127
+ if (input) {
128
+ input.value = '';
129
+ }
130
+ });
131
+ }
127
132
  }
128
133
  this.searchValue = '';
129
134
  this.coreConstantsService.searchValue = '';
130
135
  this.getCollectionSearch();
131
136
  }
132
137
  setupMobileMenu() {
138
+ if (!isPlatformBrowser(this.platformId))
139
+ return;
133
140
  // console.log('setupMobileMenu called');
134
141
  const menuMobile = document.querySelector('.menuMobile');
135
142
  if (!(menuMobile instanceof HTMLElement))
@@ -165,6 +172,8 @@ export class HeaderEcComponent extends MenuEcComponent {
165
172
  });
166
173
  }
167
174
  setupSearchInputs() {
175
+ if (!isPlatformBrowser(this.platformId))
176
+ return;
168
177
  const inputs = ['searchInput1', 'searchInput2'];
169
178
  inputs.forEach(id => {
170
179
  const input = document.getElementById(id);
@@ -204,4 +213,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
204
213
  type: HostListener,
205
214
  args: ['window:scroll', []]
206
215
  }] } });
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWVjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1jb21wb25lbnRzL2hlYWRlci1lYy9oZWFkZXItZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvaGVhZGVyLWVjL2hlYWRlci1lYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1CLFNBQVMsRUFBRSxNQUFNLEVBQUMsV0FBVyxFQUFvQixZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEksT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUc3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFdEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUVwRDs7R0FFRztBQVFILE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxlQUFlO0lBQzdDLE9BQU8sQ0FBcUI7SUFDNUIsV0FBVyxHQUFXLEVBQUUsQ0FBQztJQUNoQyxXQUFXLEdBQVksS0FBSyxDQUFDO0lBQzdCLE1BQU0sR0FBWSxLQUFLLENBQUMsQ0FB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QUFLLEdBQUcsb0JBQW9CLENBQUM7Z0JBQ3JDLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVILEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO2dCQUNuQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDeEUsQ0FBQyxDQUFDLENBQUM7WUFFSCxRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3ZDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDbkIsS0FBSyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ2pCLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztnQkFDaEMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFTCxDQUFDO3dHQTlNVSxpQkFBaUI7NEZBQWpCLGlCQUFpQiw4SkN0QjlCLDJCQUNBLHlERGlCWSxZQUFZOzs0RkFJWCxpQkFBaUI7a0JBUDdCLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLENBQUM7d0RBNkV6RixjQUFjO3NCQURiLFlBQVk7dUJBQUMsZUFBZSxFQUFFLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZnRlck5leHRSZW5kZXIsIENvbXBvbmVudCwgaW5qZWN0LFBMQVRGT1JNX0lELCBJbmplY3RvciwgT25Jbml0LCBIb3N0TGlzdGVuZXIsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaXRsZUNhc2VQaXBlLCBBc3luY1BpcGUsIEpzb25QaXBlLCBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWVudUVjQ29tcG9uZW50IH0gZnJvbSAnLi4vYWJzdHJhY3Rpb25zLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQ2FydFNlcnZpY2UsIFRlc3RTZXJ2aWNlLCBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL2VjLXNlcnZpY2VzJztcbmltcG9ydCB7IFJvdXRlciwgTmF2aWdhdGlvbkVuZCwgUm91dGVyTGluaywgUm91dGVyTGlua0FjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDYXRlZ29yeSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ29yZUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQ2hhbm5lbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8qKlxuICogQ29tcG9uZW50ZSBxdWUgc2UgZW5jYXJnYSBkZSBtYW5lamFyIGxhIGZ1bmNpb25hbGlkYWQgZGVsIEhlYWRlci5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWhlYWRlci1lYycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRpdGxlQ2FzZVBpcGUsIEFzeW5jUGlwZSwgSnNvblBpcGUsIFJvdXRlckxpbmssIFJvdXRlckxpbmtBY3RpdmVdLFxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLWVjLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2hlYWRlci1lYy5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgSGVhZGVyRWNDb21wb25lbnQgZXh0ZW5kcyBNZW51RWNDb21wb25lbnQge1xuICBwdWJsaWMgY2hhbm5lbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgc2VhcmNoVmFsdWU6IHN0cmluZyA9ICcnO1xuICB0cmFuc3BhcmVudDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0hvbWU6IGJvb2xlYW4gPSBmYWxzZTsgLy8gTnVldmEgdmFyaWFibGUgcGFyYSB2ZXJpZmljYXIgc2kgZXN0YW1vcyBlbiAvaG9tZVxuICBpc1Njcm9sbGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHNob3dQcmljZXNPbmx5VG9Mb2dnZWRVc2VyczogYm9vbGVhbiA9IGZhbHNlO1xuICBoaWRlUHJpY2VzOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX19hdXRoU2VydmljZTogQXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpXG4gIHByaXZhdGUgX2NoYW5uZWxTZXJ2aWNlOiBDaGFubmVsU2VydmljZSA9IGluamVjdChDaGFubmVsU2VydmljZSk7XG4gIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3IgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIGFwcFJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcm90ZWN0ZWQgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG5cblxuXG4gIC8vIE9ic2VydmFibGUgZGVsIGVzdGFkbyBkZSBhdXRlbnRpY2FjacOzblxuICBwdWJsaWMgbG9nZ2VkJCE6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHB1YmxpYyBpc0F1dGhlbnRpY2F0ZWQkID0gdGhpcy5fX2F1dGhTZXJ2aWNlLmlzQXV0aGVudGljYXRlZCgpO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX2NoYW5uZWxTZXJ2aWNlLmNoYW5uZWwkLnN1YnNjcmliZShjZmcgPT4ge1xuICAgICAgLy8gY29uc29sZS5sb2coJ0NoYW5uZWwgY29uZmlndXJhdGlvbjonLCBjZmcpO1xuICAgICAgdGhpcy5zaG93UHJpY2VzT25seVRvTG9nZ2VkVXNlcnMgPSAhIWNmZy5zaG93UHJpY2VzT25seVRvTG9nZ2VkVXNlcnM7XG4gICAgICB0aGlzLmhpZGVQcmljZXMgPSAhIWNmZy5oaWRlUHJpY2VzO1xuICAgICAgLy8gY29uc29sZS5sb2coJ2hpZGVQcmljZXM6JywgdGhpcy5oaWRlUHJpY2VzKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY29yZUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQ29yZUNvbnN0YW50c1NlcnZpY2UpO1xuICBwcml2YXRlIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7IC8vIElueWVjdGFtb3MgQ2hhbmdlRGV0ZWN0b3JSZWYgcGFyYSBmb3J6YXIgbGEgYWN0dWFsaXphY2nDs25cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5uZWwgPSB0aGlzLmNvcmVDb25zdGFudHNTZXJ2aWNlLmdldENoYW5uZWwoKTtcbiAgICB0aGlzLm9uV2luZG93U2Nyb2xsKCk7XG4gICAgdGhpcy5kZXRlY3RSb3V0ZUNoYW5nZSgpOyAvLyBMbGFtYW1vcyBhIGxhIGZ1bmNpw7NuIHF1ZSBkZXRlY3RhIGVsIGNhbWJpbyBkZSBydXRhXG4gICAgLy8gVXNhciBlbCBPYnNlcnZhYmxlIGRlbCBBdXRoU2VydmljZVxuICAgIHRoaXMubG9nZ2VkJCA9IHRoaXMuX19hdXRoU2VydmljZS5sb2dnZWRJbiQ7XG5cbiAgICAvLyBTdXNjcmliaXJzZSBhbCBPYnNlcnZhYmxlIHkgZm9yemFyIGRldGVjY2nDs24gZGUgY2FtYmlvcyBjdWFuZG8gc2VhIG5lY2VzYXJpb1xuICAgIHRoaXMubG9nZ2VkJC5zdWJzY3JpYmUoaXNMb2dnZWRJbiA9PiB7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcbiAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIHRoaXMuYXBwUm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoZXZ0ID0+IHtcbiAgICAgICAgaWYgKGV2dCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcbiAgICAgICAgICAvLyBGb3J6YXIgZGV0ZWNjacOzbiBkZSBjYW1iaW9zIGRlc3B1w6lzIGRlIG5hdmVnYWNpw7NuXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICB9LCAxMDApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0dXBNb2JpbGVNZW51KCk7IC8vIEluaWNpYWxpemFtb3MgZWwgbWVuw7ogbcOzdmlsXG4gICAgdGhpcy5zZXR1cFNlYXJjaElucHV0cygpOyAvLyBJbmljaWFsaXphbW9zIGxvcyBpbnB1dHMgZGUgYsO6c3F1ZWRhICAgXG4gICAgdGhpcy5pc0hvbWVGdW5jdGlvbigpO1xuICB9XG4gIC8qKlxuICAgKiBEZXRlY3RhIGN1YW5kbyBjYW1iaWEgbGEgcnV0YSB5IGFjdHVhbGl6YSBsYSBjbGFzZSBkZWwgaGVhZGVyXG4gICAqL1xuICBwcml2YXRlIGRldGVjdFJvdXRlQ2hhbmdlKCkge1xuICAgIHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xuICAgICAgICB0aGlzLmlzSG9tZSA9IHRoaXMucm91dGVyLnVybCA9PT0gJy9ob21lJztcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpOyAvLyBGb3J6YW1vcyBsYSBkZXRlY2Npw7NuIGRlIGNhbWJpb3MgcGFyYSBhY3R1YWxpemFyIGxhIHZpc3RhXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6c2Nyb2xsJywgW10pXG4gIG9uV2luZG93U2Nyb2xsKCkge1xuICAgIGNvbnN0IHNjcm9sbFRvcCA9IHdpbmRvdy5zY3JvbGxZO1xuICAgIHRoaXMuaXNTY3JvbGxlZCA9IHNjcm9sbFRvcCA+IDgwO1xuICB9XG5cbiAgaXNIb21lRnVuY3Rpb24oKTogdm9pZCB7XG4gICAgY29uc3QgaGVhZGVyRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2hlYWRlcicpO1xuICAgIGlmIChoZWFkZXJFbGVtZW50KSB7XG4gICAgICBpZiAodGhpcy5yb3V0ZXIudXJsICE9PSAnL2hvbWUnKSB7XG4gICAgICAgIGhlYWRlckVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnc2hvdy1tZW51Jyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoZWFkZXJFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ3Nob3ctbWVudScpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNoYW5nZVVybFRyYW5zcGFyZW50ID0gKHVybFRyYW5zcGFyZW50OiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gdXJsVHJhbnNwYXJlbnQ7XG4gIH07XG5cblxuICBnZXRDb2xsZWN0aW9uU2VhcmNoID0gKCkgPT4ge1xuICAgIHRoaXMuY29yZUNvbnN0YW50c1NlcnZpY2Uuc2VhcmNoVmFsdWUgPSB0aGlzLnNlYXJjaFZhbHVlO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy9jb2xsZWN0aW9uP3NlYXJjaD0nICsgdGhpcy5zZWFyY2hWYWx1ZSk7XG4gIH07XG5cbiAgc2V0U2VhcmNoVmFsdWUgPSAoZXZlbnQ6IEV2ZW50LCBhZnRlclNlYXJjaD86IEZ1bmN0aW9uLCAuLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGlmICh0YXJnZXQpIHtcbiAgICAgIHRoaXMuc2VhcmNoVmFsdWUgPSB0YXJnZXQudmFsdWU7XG4gICAgfVxuXG4gICAgLy8gaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgIC8vIHRoaXMuZ2V0Q29sbGVjdGlvblNlYXJjaCgpO1xuICAgIGlmIChhZnRlclNlYXJjaCkge1xuICAgICAgYWZ0ZXJTZWFyY2goLi4uYXJncyk7XG4gICAgICAvLyB9XG4gICAgfVxuICB9O1xuXG4gIGJvcnJhcklucHV0KGlucHV0SWQ/OiBzdHJpbmcpIHtcbiAgICBpZiAoaW5wdXRJZCkge1xuICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpbnB1dElkKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgICAgaWYgKGlucHV0KSB7XG4gICAgICAgIGlucHV0LnZhbHVlID0gJyc7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGlucHV0cyA9IFsnc2VhcmNoSW5wdXQxJ107XG4gICAgICBpbnB1dHMuZm9yRWFjaCgoaWQpID0+IHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgaWYgKGlucHV0KSB7XG4gICAgICAgICAgaW5wdXQudmFsdWUgPSAnJztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5zZWFyY2hWYWx1ZSA9ICcnO1xuICAgIHRoaXMuY29yZUNvbnN0YW50c1NlcnZpY2Uuc2VhcmNoVmFsdWUgPSAnJztcbiAgICB0aGlzLmdldENvbGxlY3Rpb25TZWFyY2goKTtcbiAgfVxuICBzZXR1cE1vYmlsZU1lbnUoKSB7XG4gICAgLy8gY29uc29sZS5sb2coJ3NldHVwTW9iaWxlTWVudSBjYWxsZWQnKTtcbiAgICBjb25zdCBtZW51TW9iaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm1lbnVNb2JpbGUnKTtcbiAgICBpZiAoIShtZW51TW9iaWxlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpKSByZXR1cm47XG4gICAgY29uc3Qgb3BlbkJ0biA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hYnJlTWVudU1vYmlsZSAuYWJyZScpO1xuICAgIGNvbnN0IGNsb3NlQnRuID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmFicmVNZW51TW9iaWxlIC5jbG9zZScpO1xuICAgIGNvbnN0IGljb25NZW51ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ljTWVudScpO1xuICAgIGNvbnN0IHNlYXJjaE1vYmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5zZWFyY2hNb2JpbGUnKTtcblxuICAgIGNvbnN0IGNsb3NlTWVudSA9ICgpID0+IHtcbiAgICAgIG1lbnVNb2JpbGUuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgIGNsb3NlQnRuPy5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2Rpc3BsYXk6bm9uZScpO1xuICAgICAgaWNvbk1lbnU/LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnZGlzcGxheTpibG9jaycpO1xuICAgIH07XG5cbiAgICBtZW51TW9iaWxlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG5cbiAgICBvcGVuQnRuPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgIG1lbnVNb2JpbGUuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XG4gICAgICBjbG9zZUJ0bj8uc2V0QXR0cmlidXRlKCdzdHlsZScsICdkaXNwbGF5OmJsb2NrJyk7XG4gICAgICBpZiAoc2VhcmNoTW9iaWxlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgc2VhcmNoTW9iaWxlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICB9XG4gICAgICBpY29uTWVudT8uc2V0QXR0cmlidXRlKCdzdHlsZScsICdkaXNwbGF5Om5vbmUnKTtcbiAgICB9KTtcblxuICAgIGNsb3NlQnRuPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGNsb3NlTWVudSk7XG5cbiAgICAvLyBDaWVycmEgZWwgbWVuw7ogc2kgc2UgaGFjZSBjbGljIGVuIHVuIGVubGFjZSBlc3BlY8OtZmljbyBkZW50cm8gZGVsIG1lbsO6XG4gICAgY29uc3QgbGlua1NlbGVjdG9ycyA9IFsnLmNhdGVnb3J5TW9iaWxlJywgJy5zdWJjYXRlZ29yeU1vYmlsZScsICcudXN1YXJpb21vYmlsZSddO1xuICAgIGxpbmtTZWxlY3RvcnMuZm9yRWFjaChzZWxlY3RvciA9PiB7XG4gICAgICBjb25zdCBsaW5rcyA9IG1lbnVNb2JpbGUucXVlcnlTZWxlY3RvckFsbDxIVE1MQW5jaG9yRWxlbWVudD4oYGEke3NlbGVjdG9yfWApO1xuICAgICAgbGlua3MuZm9yRWFjaChsaW5rID0+IHtcbiAgICAgICAgbGluay5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICBjbG9zZU1lbnUoKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuICBzZXR1cFNlYXJjaElucHV0cygpIHtcbiAgICBjb25zdCBpbnB1dHMgPSBbJ3NlYXJjaElucHV0MScsICdzZWFyY2hJbnB1dDInXTtcblxuICAgIGlucHV0cy5mb3JFYWNoKGlkID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xuICAgICAgaWYgKCEoaW5wdXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50KSkgcmV0dXJuO1xuICAgICAgY29uc3QgY2xlYXJCdG4gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAuY2xlYXItYnRuJHtpZC5zbGljZSgtMSl9YCk7XG5cbiAgICAgIGlmICghaW5wdXQgfHwgIShjbGVhckJ0biBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSkgcmV0dXJuO1xuXG4gICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsICgpID0+IHtcbiAgICAgICAgaWYgKGlucHV0LnZhbHVlID09PSAnQnVzY2FyIHByb2R1Y3RvLi4uJykge1xuICAgICAgICAgIGlucHV0LnZhbHVlID0gJyc7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgKCkgPT4ge1xuICAgICAgICBpZiAoaW5wdXQudmFsdWUudHJpbSgpID09PSAnJykge1xuICAgICAgICAgIGlucHV0LnZhbHVlID0gJ0J1c2NhciBwcm9kdWN0by4uLic7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsICgpID0+IHtcbiAgICAgICAgY2xlYXJCdG4uc3R5bGUuZGlzcGxheSA9IGlucHV0LnZhbHVlLnRyaW0oKSAhPT0gJycgPyAnYmxvY2snIDogJ25vbmUnO1xuICAgICAgfSk7XG5cbiAgICAgIGNsZWFyQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGUpID0+IHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBpbnB1dC52YWx1ZSA9ICcnO1xuICAgICAgICBjbGVhckJ0bi5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICBpbnB1dC5mb2N1cygpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgfVxufVxuIiwiPHA+aGVhZGVyLWVjIHdvcmtzITwvcD5cbiJdfQ==
216
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWVjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1jb21wb25lbnRzL2hlYWRlci1lYy9oZWFkZXItZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvaGVhZGVyLWVjL2hlYWRlci1lYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1CLFNBQVMsRUFBRSxNQUFNLEVBQVcsV0FBVyxFQUFVLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSSxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV0RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBRW5EOztHQUVHO0FBUUgsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGVBQWU7SUFDN0MsT0FBTyxDQUFxQjtJQUM1QixXQUFXLEdBQVcsRUFBRSxDQUFDO0lBQ2hDLFdBQVcsR0FBWSxLQUFLLENBQUM7SUFDN0IsTUFBTSxHQUFZLEtBQUssQ0FBQyxDQUFDLG9EQUFvRDtJQUM3RSxVQUFVLEdBQVksS0FBSyxDQUFDO0lBQzVCLDJCQUEyQixHQUFZLEtBQUssQ0FBQztJQUM3QyxVQUFVLEdBQVksS0FBSyxDQUFDO0lBQ3BCLGFBQWEsR0FBZ0IsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQ2hELGVBQWUsR0FBbUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3pELGNBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMzQyxTQUFTLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBSW5DLHlDQUF5QztJQUNsQyxPQUFPLENBQXVCO0lBQzlCLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDL0Q7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM1Qyw4Q0FBOEM7WUFDOUMsSUFBSSxDQUFDLDJCQUEyQixHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUM7WUFDckUsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNuQywrQ0FBK0M7UUFDakQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sb0JBQW9CLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDcEQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QixHQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyw0REFBNEQ7SUFDM0YsVUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUUzQyxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDdEQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsc0RBQXNEO1FBQ2hGLHFDQUFxQztRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO1FBRTVDLCtFQUErRTtRQUMvRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNsQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3BDLElBQUksR0FBRyxZQUFZLGFBQWEsRUFBRSxDQUFDO29CQUNqQyxvREFBb0Q7b0JBQ3BELFVBQVUsQ0FBQyxHQUFHLEVBQUU7d0JBQ2QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztvQkFDdEMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUNWLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBQ0QsZUFBZTtRQUNiLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLDhCQUE4QjtRQUN0RCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLDBDQUEwQztRQUNwRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUNEOztPQUVHO0lBQ0ssaUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNuQyxJQUFJLEtBQUssWUFBWSxhQUFhLEVBQUUsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxPQUFPLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyw0REFBNEQ7WUFDeEYsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdELGNBQWM7UUFDWixJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDakMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDdkMsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN2RCxJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUNsQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLE9BQU8sRUFBRSxDQUFDO29CQUNoQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDM0MsQ0FBQztxQkFBTSxDQUFDO29CQUNOLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUM5QyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsb0JBQW9CLEdBQUcsQ0FBQyxjQUFzQixFQUFFLEVBQUU7UUFDaEQsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQyxDQUFDO0lBR0YsbUJBQW1CLEdBQUcsR0FBRyxFQUFFO1FBQ3pCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUN6RCxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEUsQ0FBQyxDQUFDO0lBRUYsY0FBYyxHQUFHLENBQUMsS0FBWSxFQUFFLFdBQXNCLEVBQUUsR0FBRyxJQUFXLEVBQUUsRUFBRTtRQUN4RSxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBMEIsQ0FBQztRQUNoRCxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ2xDLENBQUM7UUFFRCwrQkFBK0I7UUFDL0IsOEJBQThCO1FBQzlCLElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDckIsSUFBSTtRQUNOLENBQUM7SUFDSCxDQUFDLENBQUM7SUFFRixXQUFXLENBQUMsT0FBZ0I7UUFDMUIsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN2QyxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFxQixDQUFDO2dCQUNuRSxJQUFJLEtBQUssRUFBRSxDQUFDO29CQUNWLEtBQUssQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUNuQixDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sTUFBTSxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQ2hDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtvQkFDcEIsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQXFCLENBQUM7b0JBQzlELElBQUksS0FBSyxFQUFFLENBQUM7d0JBQ1YsS0FBSyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7b0JBQ25CLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFDRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7WUFBRSxPQUFPO1FBRWhELHlDQUF5QztRQUN6QyxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxDQUFDLFVBQVUsWUFBWSxXQUFXLENBQUM7WUFBRSxPQUFPO1FBQ2pELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUNoRSxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDbEUsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRCxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTdELE1BQU0sU0FBUyxHQUFHLEdBQUcsRUFBRTtZQUNyQixVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7WUFDbEMsUUFBUSxFQUFFLFlBQVksQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFDaEQsUUFBUSxFQUFFLFlBQVksQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUFDO1FBRUYsVUFBVSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBRWxDLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO1lBQ3RDLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztZQUNuQyxRQUFRLEVBQUUsWUFBWSxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsQ0FBQztZQUNqRCxJQUFJLFlBQVksWUFBWSxXQUFXLEVBQUUsQ0FBQztnQkFDeEMsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1lBQ3RDLENBQUM7WUFDRCxRQUFRLEVBQUUsWUFBWSxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztRQUVILFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFL0MseUVBQXlFO1FBQ3pFLE1BQU0sYUFBYSxHQUFHLENBQUMsaUJBQWlCLEVBQUUsb0JBQW9CLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRixhQUFhLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQy9CLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBb0IsSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQzdFLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO29CQUNsQyxTQUFTLEVBQUUsQ0FBQztnQkFDZCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7WUFBRSxPQUFPO1FBRWhELE1BQU0sTUFBTSxHQUFHLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBRWhELE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDbEIsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsQ0FBQyxLQUFLLFlBQVksZ0JBQWdCLENBQUM7Z0JBQUUsT0FBTztZQUNqRCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUVyRSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxRQUFRLFlBQVksV0FBVyxDQUFDO2dCQUFFLE9BQU87WUFFekQsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7Z0JBQ25DLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxvQkFBb0IsRUFBRSxDQUFDO29CQUN6QyxLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDbkIsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1lBRUgsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7Z0JBQ2xDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztvQkFDOUIsS0FBSyxDQUFDLEtBQUssR0FBRyxvQkFBb0IsQ0FBQztnQkFDckMsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1lBRUgsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7Z0JBQ25DLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUN4RSxDQUFDLENBQUMsQ0FBQztZQUVILFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDdkMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUNuQixLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDakIsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO2dCQUNoQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUVMLENBQUM7d0dBeE5VLGlCQUFpQjs0RkFBakIsaUJBQWlCLDhKQ3JCOUIsMkJBQ0EseUREZ0JZLFlBQVk7OzRGQUlYLGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDRSxlQUFlLGNBQ2IsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQzt3REE2RXpGLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFmdGVyTmV4dFJlbmRlciwgQ29tcG9uZW50LCBpbmplY3QsIEluamVjdG9yLFBMQVRGT1JNX0lELCBPbkluaXQsIEhvc3RMaXN0ZW5lciwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRpdGxlQ2FzZVBpcGUsIEFzeW5jUGlwZSwgSnNvblBpcGUsIENvbW1vbk1vZHVsZSwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWVudUVjQ29tcG9uZW50IH0gZnJvbSAnLi4vYWJzdHJhY3Rpb25zLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQ2FydFNlcnZpY2UsIFRlc3RTZXJ2aWNlLCBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL2VjLXNlcnZpY2VzJztcbmltcG9ydCB7IFJvdXRlciwgTmF2aWdhdGlvbkVuZCwgUm91dGVyTGluaywgUm91dGVyTGlua0FjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDYXRlZ29yeSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ29yZUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQ2hhbm5lbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcyc7XG5cbi8qKlxuICogQ29tcG9uZW50ZSBxdWUgc2UgZW5jYXJnYSBkZSBtYW5lamFyIGxhIGZ1bmNpb25hbGlkYWQgZGVsIEhlYWRlci5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWhlYWRlci1lYycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRpdGxlQ2FzZVBpcGUsIEFzeW5jUGlwZSwgSnNvblBpcGUsIFJvdXRlckxpbmssIFJvdXRlckxpbmtBY3RpdmVdLFxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLWVjLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2hlYWRlci1lYy5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgSGVhZGVyRWNDb21wb25lbnQgZXh0ZW5kcyBNZW51RWNDb21wb25lbnQge1xuICBwdWJsaWMgY2hhbm5lbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgc2VhcmNoVmFsdWU6IHN0cmluZyA9ICcnO1xuICB0cmFuc3BhcmVudDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0hvbWU6IGJvb2xlYW4gPSBmYWxzZTsgLy8gTnVldmEgdmFyaWFibGUgcGFyYSB2ZXJpZmljYXIgc2kgZXN0YW1vcyBlbiAvaG9tZVxuICBpc1Njcm9sbGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHNob3dQcmljZXNPbmx5VG9Mb2dnZWRVc2VyczogYm9vbGVhbiA9IGZhbHNlO1xuICBoaWRlUHJpY2VzOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX19hdXRoU2VydmljZTogQXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpXG4gIHByaXZhdGUgX2NoYW5uZWxTZXJ2aWNlOiBDaGFubmVsU2VydmljZSA9IGluamVjdChDaGFubmVsU2VydmljZSk7XG4gIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3IgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIGFwcFJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuXG5cblxuICAvLyBPYnNlcnZhYmxlIGRlbCBlc3RhZG8gZGUgYXV0ZW50aWNhY2nDs25cbiAgcHVibGljIGxvZ2dlZCQhOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBwdWJsaWMgaXNBdXRoZW50aWNhdGVkJCA9IHRoaXMuX19hdXRoU2VydmljZS5pc0F1dGhlbnRpY2F0ZWQoKTtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9jaGFubmVsU2VydmljZS5jaGFubmVsJC5zdWJzY3JpYmUoY2ZnID0+IHtcbiAgICAgIC8vIGNvbnNvbGUubG9nKCdDaGFubmVsIGNvbmZpZ3VyYXRpb246JywgY2ZnKTtcbiAgICAgIHRoaXMuc2hvd1ByaWNlc09ubHlUb0xvZ2dlZFVzZXJzID0gISFjZmcuc2hvd1ByaWNlc09ubHlUb0xvZ2dlZFVzZXJzO1xuICAgICAgdGhpcy5oaWRlUHJpY2VzID0gISFjZmcuaGlkZVByaWNlcztcbiAgICAgIC8vIGNvbnNvbGUubG9nKCdoaWRlUHJpY2VzOicsIHRoaXMuaGlkZVByaWNlcyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNvcmVDb25zdGFudHNTZXJ2aWNlID0gaW5qZWN0KENvcmVDb25zdGFudHNTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpOyAvLyBJbnllY3RhbW9zIENoYW5nZURldGVjdG9yUmVmIHBhcmEgZm9yemFyIGxhIGFjdHVhbGl6YWNpw7NuXG4gIHByb3RlY3RlZCBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5uZWwgPSB0aGlzLmNvcmVDb25zdGFudHNTZXJ2aWNlLmdldENoYW5uZWwoKTtcbiAgICB0aGlzLm9uV2luZG93U2Nyb2xsKCk7XG4gICAgdGhpcy5kZXRlY3RSb3V0ZUNoYW5nZSgpOyAvLyBMbGFtYW1vcyBhIGxhIGZ1bmNpw7NuIHF1ZSBkZXRlY3RhIGVsIGNhbWJpbyBkZSBydXRhXG4gICAgLy8gVXNhciBlbCBPYnNlcnZhYmxlIGRlbCBBdXRoU2VydmljZVxuICAgIHRoaXMubG9nZ2VkJCA9IHRoaXMuX19hdXRoU2VydmljZS5sb2dnZWRJbiQ7XG5cbiAgICAvLyBTdXNjcmliaXJzZSBhbCBPYnNlcnZhYmxlIHkgZm9yemFyIGRldGVjY2nDs24gZGUgY2FtYmlvcyBjdWFuZG8gc2VhIG5lY2VzYXJpb1xuICAgIHRoaXMubG9nZ2VkJC5zdWJzY3JpYmUoaXNMb2dnZWRJbiA9PiB7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcbiAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIHRoaXMuYXBwUm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoZXZ0ID0+IHtcbiAgICAgICAgaWYgKGV2dCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcbiAgICAgICAgICAvLyBGb3J6YXIgZGV0ZWNjacOzbiBkZSBjYW1iaW9zIGRlc3B1w6lzIGRlIG5hdmVnYWNpw7NuXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICB9LCAxMDApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0dXBNb2JpbGVNZW51KCk7IC8vIEluaWNpYWxpemFtb3MgZWwgbWVuw7ogbcOzdmlsXG4gICAgdGhpcy5zZXR1cFNlYXJjaElucHV0cygpOyAvLyBJbmljaWFsaXphbW9zIGxvcyBpbnB1dHMgZGUgYsO6c3F1ZWRhICAgXG4gICAgdGhpcy5pc0hvbWVGdW5jdGlvbigpO1xuICB9XG4gIC8qKlxuICAgKiBEZXRlY3RhIGN1YW5kbyBjYW1iaWEgbGEgcnV0YSB5IGFjdHVhbGl6YSBsYSBjbGFzZSBkZWwgaGVhZGVyXG4gICAqL1xuICBwcml2YXRlIGRldGVjdFJvdXRlQ2hhbmdlKCkge1xuICAgIHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xuICAgICAgICB0aGlzLmlzSG9tZSA9IHRoaXMucm91dGVyLnVybCA9PT0gJy9ob21lJztcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpOyAvLyBGb3J6YW1vcyBsYSBkZXRlY2Npw7NuIGRlIGNhbWJpb3MgcGFyYSBhY3R1YWxpemFyIGxhIHZpc3RhXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6c2Nyb2xsJywgW10pXG4gIG9uV2luZG93U2Nyb2xsKCkge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICBjb25zdCBzY3JvbGxUb3AgPSB3aW5kb3cuc2Nyb2xsWTtcbiAgICAgIHRoaXMuaXNTY3JvbGxlZCA9IHNjcm9sbFRvcCA+IDgwO1xuICAgIH1cbiAgfVxuXG4gIGlzSG9tZUZ1bmN0aW9uKCk6IHZvaWQge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICBjb25zdCBoZWFkZXJFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaGVhZGVyJyk7XG4gICAgICBpZiAoaGVhZGVyRWxlbWVudCkge1xuICAgICAgICBpZiAodGhpcy5yb3V0ZXIudXJsICE9PSAnL2hvbWUnKSB7XG4gICAgICAgICAgaGVhZGVyRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdzaG93LW1lbnUnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBoZWFkZXJFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ3Nob3ctbWVudScpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY2hhbmdlVXJsVHJhbnNwYXJlbnQgPSAodXJsVHJhbnNwYXJlbnQ6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiB1cmxUcmFuc3BhcmVudDtcbiAgfTtcblxuXG4gIGdldENvbGxlY3Rpb25TZWFyY2ggPSAoKSA9PiB7XG4gICAgdGhpcy5jb3JlQ29uc3RhbnRzU2VydmljZS5zZWFyY2hWYWx1ZSA9IHRoaXMuc2VhcmNoVmFsdWU7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2NvbGxlY3Rpb24/c2VhcmNoPScgKyB0aGlzLnNlYXJjaFZhbHVlKTtcbiAgfTtcblxuICBzZXRTZWFyY2hWYWx1ZSA9IChldmVudDogRXZlbnQsIGFmdGVyU2VhcmNoPzogRnVuY3Rpb24sIC4uLmFyZ3M6IGFueVtdKSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgaWYgKHRhcmdldCkge1xuICAgICAgdGhpcy5zZWFyY2hWYWx1ZSA9IHRhcmdldC52YWx1ZTtcbiAgICB9XG5cbiAgICAvLyBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgLy8gdGhpcy5nZXRDb2xsZWN0aW9uU2VhcmNoKCk7XG4gICAgaWYgKGFmdGVyU2VhcmNoKSB7XG4gICAgICBhZnRlclNlYXJjaCguLi5hcmdzKTtcbiAgICAgIC8vIH1cbiAgICB9XG4gIH07XG5cbiAgYm9ycmFySW5wdXQoaW5wdXRJZD86IHN0cmluZykge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICBpZiAoaW5wdXRJZCkge1xuICAgICAgICBjb25zdCBpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlucHV0SWQpIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICAgIGlmIChpbnB1dCkge1xuICAgICAgICAgIGlucHV0LnZhbHVlID0gJyc7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGlucHV0cyA9IFsnc2VhcmNoSW5wdXQxJ107XG4gICAgICAgIGlucHV0cy5mb3JFYWNoKChpZCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICAgICAgaWYgKGlucHV0KSB7XG4gICAgICAgICAgICBpbnB1dC52YWx1ZSA9ICcnO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5zZWFyY2hWYWx1ZSA9ICcnO1xuICAgIHRoaXMuY29yZUNvbnN0YW50c1NlcnZpY2Uuc2VhcmNoVmFsdWUgPSAnJztcbiAgICB0aGlzLmdldENvbGxlY3Rpb25TZWFyY2goKTtcbiAgfVxuICBzZXR1cE1vYmlsZU1lbnUoKSB7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgXG4gICAgLy8gY29uc29sZS5sb2coJ3NldHVwTW9iaWxlTWVudSBjYWxsZWQnKTtcbiAgICBjb25zdCBtZW51TW9iaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm1lbnVNb2JpbGUnKTtcbiAgICBpZiAoIShtZW51TW9iaWxlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpKSByZXR1cm47XG4gICAgY29uc3Qgb3BlbkJ0biA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hYnJlTWVudU1vYmlsZSAuYWJyZScpO1xuICAgIGNvbnN0IGNsb3NlQnRuID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmFicmVNZW51TW9iaWxlIC5jbG9zZScpO1xuICAgIGNvbnN0IGljb25NZW51ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ljTWVudScpO1xuICAgIGNvbnN0IHNlYXJjaE1vYmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5zZWFyY2hNb2JpbGUnKTtcblxuICAgIGNvbnN0IGNsb3NlTWVudSA9ICgpID0+IHtcbiAgICAgIG1lbnVNb2JpbGUuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgIGNsb3NlQnRuPy5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2Rpc3BsYXk6bm9uZScpO1xuICAgICAgaWNvbk1lbnU/LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnZGlzcGxheTpibG9jaycpO1xuICAgIH07XG5cbiAgICBtZW51TW9iaWxlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG5cbiAgICBvcGVuQnRuPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgIG1lbnVNb2JpbGUuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XG4gICAgICBjbG9zZUJ0bj8uc2V0QXR0cmlidXRlKCdzdHlsZScsICdkaXNwbGF5OmJsb2NrJyk7XG4gICAgICBpZiAoc2VhcmNoTW9iaWxlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgc2VhcmNoTW9iaWxlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICB9XG4gICAgICBpY29uTWVudT8uc2V0QXR0cmlidXRlKCdzdHlsZScsICdkaXNwbGF5Om5vbmUnKTtcbiAgICB9KTtcblxuICAgIGNsb3NlQnRuPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGNsb3NlTWVudSk7XG5cbiAgICAvLyBDaWVycmEgZWwgbWVuw7ogc2kgc2UgaGFjZSBjbGljIGVuIHVuIGVubGFjZSBlc3BlY8OtZmljbyBkZW50cm8gZGVsIG1lbsO6XG4gICAgY29uc3QgbGlua1NlbGVjdG9ycyA9IFsnLmNhdGVnb3J5TW9iaWxlJywgJy5zdWJjYXRlZ29yeU1vYmlsZScsICcudXN1YXJpb21vYmlsZSddO1xuICAgIGxpbmtTZWxlY3RvcnMuZm9yRWFjaChzZWxlY3RvciA9PiB7XG4gICAgICBjb25zdCBsaW5rcyA9IG1lbnVNb2JpbGUucXVlcnlTZWxlY3RvckFsbDxIVE1MQW5jaG9yRWxlbWVudD4oYGEke3NlbGVjdG9yfWApO1xuICAgICAgbGlua3MuZm9yRWFjaChsaW5rID0+IHtcbiAgICAgICAgbGluay5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICBjbG9zZU1lbnUoKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuICBzZXR1cFNlYXJjaElucHV0cygpIHtcbiAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybjtcbiAgICBcbiAgICBjb25zdCBpbnB1dHMgPSBbJ3NlYXJjaElucHV0MScsICdzZWFyY2hJbnB1dDInXTtcblxuICAgIGlucHV0cy5mb3JFYWNoKGlkID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xuICAgICAgaWYgKCEoaW5wdXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50KSkgcmV0dXJuO1xuICAgICAgY29uc3QgY2xlYXJCdG4gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAuY2xlYXItYnRuJHtpZC5zbGljZSgtMSl9YCk7XG5cbiAgICAgIGlmICghaW5wdXQgfHwgIShjbGVhckJ0biBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSkgcmV0dXJuO1xuXG4gICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsICgpID0+IHtcbiAgICAgICAgaWYgKGlucHV0LnZhbHVlID09PSAnQnVzY2FyIHByb2R1Y3RvLi4uJykge1xuICAgICAgICAgIGlucHV0LnZhbHVlID0gJyc7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgKCkgPT4ge1xuICAgICAgICBpZiAoaW5wdXQudmFsdWUudHJpbSgpID09PSAnJykge1xuICAgICAgICAgIGlucHV0LnZhbHVlID0gJ0J1c2NhciBwcm9kdWN0by4uLic7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsICgpID0+IHtcbiAgICAgICAgY2xlYXJCdG4uc3R5bGUuZGlzcGxheSA9IGlucHV0LnZhbHVlLnRyaW0oKSAhPT0gJycgPyAnYmxvY2snIDogJ25vbmUnO1xuICAgICAgfSk7XG5cbiAgICAgIGNsZWFyQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGUpID0+IHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBpbnB1dC52YWx1ZSA9ICcnO1xuICAgICAgICBjbGVhckJ0bi5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICBpbnB1dC5mb2N1cygpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgfVxufVxuIiwiPHA+aGVhZGVyLWVjIHdvcmtzITwvcD5cbiJdfQ==