ng-easycommerce-v18 0.3.21-beta.3 → 0.3.22-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. package/README.md +7 -7
  2. package/esm2022/lib/classes/filters/filter.mjs +27 -2
  3. package/esm2022/lib/constants/api.constants.service.mjs +7 -1
  4. package/esm2022/lib/ec-components/blocks-ec/block-products-ec/block-products-ec.component.mjs +5 -3
  5. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.mjs +1 -5
  6. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.mjs +44 -53
  7. package/esm2022/lib/ec-components/header-ec/header-ec.component.mjs +32 -23
  8. package/esm2022/lib/ec-components/related-products-ec/related-products-ec.component.mjs +6 -4
  9. package/esm2022/lib/ec-components/widgets-ec/magnizoom-ec/magnizoom-ec.component.mjs +4 -2
  10. package/esm2022/lib/ec-components/widgets-ec/redsys-catch-ec/redsys-catch-ec.component.mjs +7 -17
  11. package/esm2022/lib/ec-services/analytics/facebook-pixel.service.mjs +4 -2
  12. package/esm2022/lib/ec-services/analytics/google-analytics.service.mjs +4 -2
  13. package/esm2022/lib/ec-services/analytics/gtm.service.mjs +90 -30
  14. package/esm2022/lib/ec-services/options.service.mjs +27 -3
  15. package/esm2022/lib/ec-services/parameters.service.mjs +41 -1
  16. package/fesm2022/ng-easycommerce-v18.mjs +445 -296
  17. package/fesm2022/ng-easycommerce-v18.mjs.map +1 -1
  18. package/lib/constants/api.constants.service.d.ts +4 -0
  19. package/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.d.ts +0 -1
  20. package/lib/ec-services/analytics/gtm.service.d.ts +5 -0
  21. package/lib/ec-services/options.service.d.ts +4 -0
  22. package/lib/ec-services/parameters.service.d.ts +6 -0
  23. package/package.json +1 -1
@@ -127,26 +127,16 @@ export class RedsysCatchEcComponent extends ComponentHelper {
127
127
  }
128
128
  /** Intenta cerrar la pestaña actual; si falla, ejecuta el callback de fallback. */
129
129
  tryCloseSelf(onFail) {
130
- if (!isPlatformBrowser(this.platformId)) {
131
- onFail();
132
- return;
133
- }
134
- // Fallback de seguridad: si después de ~800 ms la página sigue visible,
135
- // asumimos que window.close() fue ignorado.
136
- const fallback = setTimeout(() => {
137
- // Si la pestaña siguiera abierta, document.hidden suele ser false.
138
- if (!document.hidden) {
139
- onFail();
140
- }
141
- }, 800);
130
+ if (!isPlatformBrowser(this.platformId))
131
+ return onFail();
132
+ let attempted = false;
142
133
  try {
143
134
  window.close();
144
- // Si window.close() lanza excepción, limpiamos el timeout y hacemos fallback inmediato.
135
+ attempted = true;
145
136
  }
146
- catch {
147
- clearTimeout(fallback);
137
+ catch { }
138
+ if (!attempted)
148
139
  onFail();
149
- }
150
140
  }
151
141
  /** Oculta header/footer para esta pantalla mínima. */
152
142
  hideHeaderFooter() {
@@ -200,4 +190,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
200
190
  type: Inject,
201
191
  args: [PLATFORM_ID]
202
192
  }] }] });
203
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkc3lzLWNhdGNoLWVjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1jb21wb25lbnRzL3dpZGdldHMtZWMvcmVkc3lzLWNhdGNoLWVjL3JlZHN5cy1jYXRjaC1lYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy93aWRnZXRzLWVjL3JlZHN5cy1jYXRjaC1lYy9yZWRzeXMtY2F0Y2gtZWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBNEMsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RyxPQUFPLEVBQUUsYUFBYSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7QUFJOUY7Ozs7O0dBS0c7QUFRSCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsZUFBZTtJQVE1QztJQUNBO0lBQ0E7SUFDQztJQUNBO0lBQ2tCO0lBQ0c7SUFaMUIsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNaLFlBQVksR0FBd0IsSUFBSSxDQUFDO0lBQ3pDLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDVCxFQUFFLENBQW9CO0lBRTlCLFlBQ1csWUFBNEIsRUFDNUIsTUFBYyxFQUNkLGVBQWdDLEVBQy9CLFFBQW1CLEVBQ25CLFVBQXNCLEVBQ0osUUFBa0IsRUFDZixVQUFlO1FBRTVDLEtBQUssRUFBRSxDQUFDO1FBUkQsaUJBQVksR0FBWixZQUFZLENBQWdCO1FBQzVCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDL0IsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ0osYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNmLGVBQVUsR0FBVixVQUFVLENBQUs7UUFJNUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksa0JBQWtCLElBQUksTUFBTSxFQUFFLENBQUM7WUFDckUsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDdkYsU0FBUyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM1QixJQUFJLFFBQVEsR0FBdUIsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3hELElBQUksUUFBUSxLQUFLLGVBQWU7Z0JBQUUsUUFBUSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUV6RCxNQUFNLFdBQVcsR0FBRyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzdFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFL0MsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckgsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXpCLElBQUksQ0FBQyxlQUFlLENBQUMsa0NBQWtDLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDaEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUV4QixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRTtnQkFDbkIsTUFBTSxNQUFNLEdBQUcsQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxTQUFTLENBQUM7b0JBQ3ZELENBQUMsQ0FBQyxDQUFDLHlCQUF5QixDQUFDO29CQUM3QixDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDcEIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3pELENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7UUFDUCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGlEQUFpRDtJQUN6QyxnQkFBZ0IsQ0FBQyxXQUFnQjtRQUNyQyxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDaEQsSUFBSSxXQUFXLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDcEQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDdEQsQ0FBQztJQUNMLENBQUM7SUFFRCwwQ0FBMEM7SUFDbEMsZUFBZSxHQUFHLENBQUMsT0FBZSxFQUFFLEtBQWEsRUFBUSxFQUFFO1FBQy9ELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQUUsT0FBTztRQUNoRCxJQUFJLENBQUM7WUFBQyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUFDLENBQUM7UUFBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQztZQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQUMsQ0FBQztRQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQyxDQUFBO0lBRUQsNERBQTREO0lBQ3BELGNBQWMsQ0FBQyxHQUFXO1FBQzlCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxTQUFTO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDbkUsSUFBSSxDQUFDLEtBQUssU0FBUztZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxLQUFLLFFBQVE7WUFBRSxPQUFPLFFBQVEsQ0FBQztRQUNwQyxPQUFPLFNBQVMsQ0FBQyxDQUFDLHdEQUF3RDtJQUM5RSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssV0FBVyxDQUFDLEtBQWM7UUFDOUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7WUFBRSxPQUFPO1FBQ2hELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0QsTUFBTSxPQUFPLEdBQUcsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUVqRCxJQUFJLENBQUM7WUFBQyxNQUFNLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUFDLENBQUM7UUFBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQztZQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQUMsQ0FBQztRQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDO1lBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEdBQUcsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQUMsQ0FBQztRQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDO1lBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFBQyxDQUFDO1FBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsbUZBQW1GO0lBQzNFLFlBQVksQ0FBQyxNQUFrQjtRQUNuQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDdEMsTUFBTSxFQUFFLENBQUM7WUFDVCxPQUFPO1FBQ1gsQ0FBQztRQUNELHdFQUF3RTtRQUN4RSw0Q0FBNEM7UUFDNUMsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUM3QixtRUFBbUU7WUFDbkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDbkIsTUFBTSxFQUFFLENBQUM7WUFDYixDQUFDO1FBQ0wsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1IsSUFBSSxDQUFDO1lBQ0QsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2Ysd0ZBQXdGO1FBQzVGLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDTCxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdkIsTUFBTSxFQUFFLENBQUM7UUFDYixDQUFDO0lBQ0wsQ0FBQztJQUVELHNEQUFzRDtJQUM5QyxnQkFBZ0I7UUFDcEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7WUFBRSxPQUFPO1FBQ2hELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JELElBQUksTUFBTTtZQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDOUQsSUFBSSxNQUFNO1lBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsdUNBQXVDO0lBQy9CLGdCQUFnQjtRQUNwQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUFFLE9BQU87UUFDaEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckQsSUFBSSxNQUFNO1lBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3pELElBQUksTUFBTTtZQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU8saUJBQWlCLENBQUMsT0FBZSxFQUFFLEtBQWM7UUFDckQsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7WUFBRSxPQUFPO1FBQ2hELElBQUksQ0FBQztZQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQUMsQ0FBQztRQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDO1lBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFBQyxDQUFDO1FBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUM7WUFBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUFDLENBQUM7UUFBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7d0dBaEpRLHNCQUFzQix3SkFhbkIsUUFBUSxhQUNSLFdBQVc7NEZBZGQsc0JBQXNCLHNHQ3pCbkMsMm5CQWVNLG1aRE1RLFlBQVksNEZBQUUsc0JBQXNCOzs0RkFJckMsc0JBQXNCO2tCQVBsQyxTQUFTOytCQUNJLHFCQUFxQixjQUNuQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsc0JBQXNCLENBQUM7OzBCQWlCMUMsTUFBTTsyQkFBQyxRQUFROzswQkFDZixNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95LCBSZW5kZXJlcjIsIEVsZW1lbnRSZWYsIEluamVjdCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb21wb25lbnRIZWxwZXIgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2NvbXBvbmVudC1oZWxwZXInO1xuaW1wb3J0IHsgQ2FydFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9lYy1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDaGVja291dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9lYy1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IExvYWRpbmdGdWxsRWNDb21wb25lbnQgfSBmcm9tICcuLi9sb2FkaW5nL2xvYWRpbmctZnVsbC1lYy9sb2FkaW5nLWZ1bGwtZWMuY29tcG9uZW50JztcblxudHlwZSBNcFN0YXRlID0gJ3N1Y2Nlc3MnIHwgJ3BlbmRpbmcnIHwgJ2ZhaWx1cmUnIHwgJ2NhbmNlbCc7XG5cbi8qKlxuICogQ2F0Y2ggZ2Vuw6lyaWNvIHBhcmEgcmVkaXJlY2Npb25lcyBkZSBwYWdvcy5cbiAqIC0gTm9ybWFsaXphIGVsIGVzdGFkbyByZWNpYmlkbyBwb3IgcGFyYW1zL3F1ZXJ5LlxuICogLSBJbmZvcm1hIGVsIHJlc3VsdGFkbyBhbCBvcGVuZXIgKHBvc3RNZXNzYWdlKSwgQnJvYWRjYXN0Q2hhbm5lbCB5IGxvY2FsU3RvcmFnZS5cbiAqIC0gSW50ZW50YSBjZXJyYXJzZTsgc2kgZWwgY2llcnJlIGZhbGxhLCByZWRpcmlnZSBzZWfDum4gZWwgZXN0YWRvLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1yZWRzeXMtY2F0Y2gtZWMnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTG9hZGluZ0Z1bGxFY0NvbXBvbmVudF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JlZHN5cy1jYXRjaC1lYy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcmVkc3lzLWNhdGNoLWVjLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUmVkc3lzQ2F0Y2hFY0NvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEhlbHBlciBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIHB1YmxpYyBtZXNzYWdlID0gJyc7XG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgc2lkID0gJyc7XG4gICAgcHJpdmF0ZSBiYz86IEJyb2FkY2FzdENoYW5uZWw7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGFjdGl2ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHB1YmxpYyByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHVibGljIGNoZWNrb3V0U2VydmljZTogQ2hlY2tvdXRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogYW55XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgdGhpcy5oaWRlSGVhZGVyRm9vdGVyKCk7XG4gICAgICAgIHRoaXMuZWNPbkNvbnN0cnVjdCgpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSAmJiAnQnJvYWRjYXN0Q2hhbm5lbCcgaW4gd2luZG93KSB7XG4gICAgICAgICAgICB0aGlzLmJjID0gbmV3IEJyb2FkY2FzdENoYW5uZWwoJ21wX3BheW1lbnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gY29tYmluZUxhdGVzdChbdGhpcy5hY3RpdmVkUm91dGUucGFyYW1zLCB0aGlzLmFjdGl2ZWRSb3V0ZS5xdWVyeVBhcmFtc10pXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChbcm91dGVQYXJhbXMsIHFdKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHN0YXRlU3RyOiBzdHJpbmcgfCB1bmRlZmluZWQgPSByb3V0ZVBhcmFtc1snc3RhdGUnXTtcbiAgICAgICAgICAgICAgICBpZiAoc3RhdGVTdHIgPT09ICdzdGF0dXNwYXltZW50Jykgc3RhdGVTdHIgPSBxWydzdGF0dXMnXTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXR1c1BhcmFtID0gKHN0YXRlU3RyIHx8IHFbJ3N0YXR1cyddIHx8IHFbJ3N0YXRlJ10gfHwgJycpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLm5vcm1hbGl6ZVN0YXRlKHN0YXR1c1BhcmFtKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuc2lkID0gKHFbJ3NpZCddIHx8IChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpID8gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ21wOnNpZCcpIDogJycpIHx8ICcnKS50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmVUb3RhbEFtb3VudChxKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGVJbkxvY2FsKCdTdSBwYWdvIGZ1ZSBwcm9jZXNhZG8gY29uIMOpeGl0by4nLCBzdGF0ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zaWduYWxTdGF0ZShzdGF0ZSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnRyeUNsb3NlU2VsZigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IChzdGF0ZSA9PT0gJ3N1Y2Nlc3MnIHx8IHN0YXRlID09PSAncGVuZGluZycpXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFsnL2NoZWNrb3V0L29yZGVyX3N1Y2Nlc3MnXVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBbJy9jaGVja291dCddO1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucm91dGVyLm5hdmlnYXRlKHRhcmdldCksIDQ1MDApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZWNPbkluaXQoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuYmM/LmNsb3NlKCk7XG4gICAgICAgIHRoaXMuc2hvd0hlYWRlckZvb3RlcigpO1xuICAgIH1cblxuICAgIC8qKiBHdWFyZGEgdG90YWxfYW1vdW50IHNpIHZpZW5lIGRlc2RlIGVsIFBTUC4gKi9cbiAgICBwcml2YXRlIHN0b3JlVG90YWxBbW91bnQocXVlcnlQYXJhbXM6IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCB0b3RhbEFtb3VudCA9IHF1ZXJ5UGFyYW1zWyd0b3RhbF9hbW91bnQnXTtcbiAgICAgICAgaWYgKHRvdGFsQW1vdW50ICYmIGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd0b3RhbF9hbW91bnQnLCB0b3RhbEFtb3VudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogU2V0ZWEgbWVuc2FqZSB5IGVzdGFkbyBlbiBzdG9yYWdlcy4gKi9cbiAgICBwcml2YXRlIHNldFN0YXRlSW5Mb2NhbCA9IChtZW5zYWplOiBzdHJpbmcsIHN0YXRlOiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5tZXNzYWdlID0gbWVuc2FqZTtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgICAgIHRyeSB7IGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdzdGF0ZScsIHN0YXRlKTsgfSBjYXRjaCB7IH1cbiAgICAgICAgdHJ5IHsgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnbW9kYWxuZXdzJywgJ2ZhbHNlJyk7IH0gY2F0Y2ggeyB9XG4gICAgfVxuXG4gICAgLyoqIE5vcm1hbGl6YSBlc3RhZG9zIGhldGVyb2fDqW5lb3MgZGUgZGlzdGludG9zIGdhdGV3YXlzLiAqL1xuICAgIHByaXZhdGUgbm9ybWFsaXplU3RhdGUocmF3OiBzdHJpbmcpOiBNcFN0YXRlIHtcbiAgICAgICAgY29uc3QgdiA9IChyYXcgfHwgJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmICh2ID09PSAnMjAwJyB8fCB2ID09PSAnb2snIHx8IHYgPT09ICdzdWNjZXNzJykgcmV0dXJuICdzdWNjZXNzJztcbiAgICAgICAgaWYgKHYgPT09ICdwZW5kaW5nJykgcmV0dXJuICdwZW5kaW5nJztcbiAgICAgICAgaWYgKHYgPT09ICdjYW5jZWwnKSByZXR1cm4gJ2NhbmNlbCc7XG4gICAgICAgIHJldHVybiAnZmFpbHVyZSc7IC8vIGZhaWx1cmUsIDAsIGVycm9yLCByZWplY3RlZCwgY2hhcmdlYmFjaywgZGVzY29ub2NpZG9zXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5mb3JtYSBlbCByZXN1bHRhZG86IHBvc3RNZXNzYWdlIGFsIG9wZW5lciwgQnJvYWRjYXN0Q2hhbm5lbCB5IGxvY2FsU3RvcmFnZVxuICAgICAqIChlc3RlIMO6bHRpbW8gcGVybWl0ZSBwb2xsaW5nIGVuIGxhIHBlc3Rhw7FhIG1hZHJlKS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNpZ25hbFN0YXRlKHN0YXRlOiBNcFN0YXRlKSB7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuICAgICAgICBjb25zdCBzaWQgPSB0aGlzLnNpZCB8fCBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbXA6c2lkJykgfHwgJyc7XG4gICAgICAgIGNvbnN0IHBheWxvYWQgPSB7IHR5cGU6ICdtcDpzdGF0ZScsIHNpZCwgc3RhdGUgfTtcblxuICAgICAgICB0cnkgeyB3aW5kb3cub3BlbmVyICYmIHdpbmRvdy5vcGVuZXIucG9zdE1lc3NhZ2UocGF5bG9hZCwgJyonKTsgfSBjYXRjaCB7IH1cbiAgICAgICAgdHJ5IHsgdGhpcy5iYz8ucG9zdE1lc3NhZ2UocGF5bG9hZCk7IH0gY2F0Y2ggeyB9XG4gICAgICAgIHRyeSB7IGxvY2FsU3RvcmFnZS5zZXRJdGVtKGBtcDpzdGF0ZToke3NpZH1gLCBzdGF0ZSk7IH0gY2F0Y2ggeyB9XG4gICAgICAgIHRyeSB7IGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdzdGF0ZScsIHN0YXRlKTsgfSBjYXRjaCB7IH1cbiAgICB9XG5cbiAgICAvKiogSW50ZW50YSBjZXJyYXIgbGEgcGVzdGHDsWEgYWN0dWFsOyBzaSBmYWxsYSwgZWplY3V0YSBlbCBjYWxsYmFjayBkZSBmYWxsYmFjay4gKi9cbiAgICBwcml2YXRlIHRyeUNsb3NlU2VsZihvbkZhaWw6ICgpID0+IHZvaWQpIHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBvbkZhaWwoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBGYWxsYmFjayBkZSBzZWd1cmlkYWQ6IHNpIGRlc3B1w6lzIGRlIH44MDAgbXMgbGEgcMOhZ2luYSBzaWd1ZSB2aXNpYmxlLFxuICAgICAgICAvLyBhc3VtaW1vcyBxdWUgd2luZG93LmNsb3NlKCkgZnVlIGlnbm9yYWRvLlxuICAgICAgICBjb25zdCBmYWxsYmFjayA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgLy8gU2kgbGEgcGVzdGHDsWEgc2lndWllcmEgYWJpZXJ0YSwgZG9jdW1lbnQuaGlkZGVuIHN1ZWxlIHNlciBmYWxzZS5cbiAgICAgICAgICAgIGlmICghZG9jdW1lbnQuaGlkZGVuKSB7XG4gICAgICAgICAgICAgICAgb25GYWlsKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIDgwMCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB3aW5kb3cuY2xvc2UoKTtcbiAgICAgICAgICAgIC8vIFNpIHdpbmRvdy5jbG9zZSgpIGxhbnphIGV4Y2VwY2nDs24sIGxpbXBpYW1vcyBlbCB0aW1lb3V0IHkgaGFjZW1vcyBmYWxsYmFjayBpbm1lZGlhdG8uXG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGZhbGxiYWNrKTtcbiAgICAgICAgICAgIG9uRmFpbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIE9jdWx0YSBoZWFkZXIvZm9vdGVyIHBhcmEgZXN0YSBwYW50YWxsYSBtw61uaW1hLiAqL1xuICAgIHByaXZhdGUgaGlkZUhlYWRlckZvb3RlcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgICAgIGNvbnN0IGhlYWRlciA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaGVhZGVyJyk7XG4gICAgICAgIGNvbnN0IGZvb3RlciA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZm9vdGVyJyk7XG4gICAgICAgIGlmIChoZWFkZXIpIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoaGVhZGVyLCAnZGlzcGxheScsICdub25lJyk7XG4gICAgICAgIGlmIChmb290ZXIpIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZm9vdGVyLCAnZGlzcGxheScsICdub25lJyk7XG4gICAgfVxuXG4gICAgLyoqIFJlc3RhdXJhIGhlYWRlci9mb290ZXIgYWwgc2FsaXIuICovXG4gICAgcHJpdmF0ZSBzaG93SGVhZGVyRm9vdGVyKCk6IHZvaWQge1xuICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybjtcbiAgICAgICAgY29uc3QgaGVhZGVyID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdoZWFkZXInKTtcbiAgICAgICAgY29uc3QgZm9vdGVyID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdmb290ZXInKTtcbiAgICAgICAgaWYgKGhlYWRlcikgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZShoZWFkZXIsICdkaXNwbGF5Jyk7XG4gICAgICAgIGlmIChmb290ZXIpIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUoZm9vdGVyLCAnZGlzcGxheScpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U3RhdGVJblNlc3Npb24obWVuc2FqZTogc3RyaW5nLCBzdGF0ZTogTXBTdGF0ZSkge1xuICAgICAgICB0aGlzLm1lc3NhZ2UgPSBtZW5zYWplO1xuICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybjtcbiAgICAgICAgdHJ5IHsgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnc3RhdGUnLCBzdGF0ZSk7IH0gY2F0Y2ggeyB9XG4gICAgICAgIHRyeSB7IGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdzdGF0ZScsIHN0YXRlKTsgfSBjYXRjaCB7IH1cbiAgICAgICAgdHJ5IHsgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnbW9kYWxuZXdzJywgJ2ZhbHNlJyk7IH0gY2F0Y2ggeyB9XG4gICAgfVxuXG5cbn1cbiIsIjxkaXYgaWQ9XCJjb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgYWxpZ24tc2VsZi1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxoNCBjbGFzcz1cInRpdHBhZ2UgY2VudGVyLWJsb2NrIHRleHQtY2VudGVyIGZvbnQtbmV4YSBmb250LWxnIG15LTNcIj57eyBtZXNzYWdlIHwgdXBwZXJjYXNlIH19PC9oND5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIGFsaWduLXNlbGYtY2VudGVyXCI+XG4gICAgICAgICAgICA8aDUgY2xhc3M9XCJjZW50ZXItYmxvY2sgdGV4dC1jZW50ZXIgZm9udC1uZXhhIG15LTNcIj5SZWRpcmlnaWVuZG8gZW4gc2VndW5kb3MuLi48L2g1PlxuICAgICAgICAgICAgPGJyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBqdXNpdGZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxhcHAtbG9hZGluZy1mdWxsLWVjPjwvYXBwLWxvYWRpbmctZnVsbC1lYz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkc3lzLWNhdGNoLWVjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1jb21wb25lbnRzL3dpZGdldHMtZWMvcmVkc3lzLWNhdGNoLWVjL3JlZHN5cy1jYXRjaC1lYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy93aWRnZXRzLWVjL3JlZHN5cy1jYXRjaC1lYy9yZWRzeXMtY2F0Y2gtZWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBNEMsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RyxPQUFPLEVBQUUsYUFBYSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7QUFJOUY7Ozs7O0dBS0c7QUFRSCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsZUFBZTtJQVE1QztJQUNBO0lBQ0E7SUFDQztJQUNBO0lBQ2tCO0lBQ0c7SUFaMUIsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNaLFlBQVksR0FBd0IsSUFBSSxDQUFDO0lBQ3pDLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDVCxFQUFFLENBQW9CO0lBRTlCLFlBQ1csWUFBNEIsRUFDNUIsTUFBYyxFQUNkLGVBQWdDLEVBQy9CLFFBQW1CLEVBQ25CLFVBQXNCLEVBQ0osUUFBa0IsRUFDZixVQUFlO1FBRTVDLEtBQUssRUFBRSxDQUFDO1FBUkQsaUJBQVksR0FBWixZQUFZLENBQWdCO1FBQzVCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDL0IsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ0osYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNmLGVBQVUsR0FBVixVQUFVLENBQUs7UUFJNUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksa0JBQWtCLElBQUksTUFBTSxFQUFFLENBQUM7WUFDckUsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDdkYsU0FBUyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM1QixJQUFJLFFBQVEsR0FBdUIsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3hELElBQUksUUFBUSxLQUFLLGVBQWU7Z0JBQUUsUUFBUSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUV6RCxNQUFNLFdBQVcsR0FBRyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzdFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFL0MsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckgsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXpCLElBQUksQ0FBQyxlQUFlLENBQUMsa0NBQWtDLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDaEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUV4QixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRTtnQkFDbkIsTUFBTSxNQUFNLEdBQUcsQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxTQUFTLENBQUM7b0JBQ3ZELENBQUMsQ0FBQyxDQUFDLHlCQUF5QixDQUFDO29CQUM3QixDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDcEIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3pELENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7UUFDUCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGlEQUFpRDtJQUN6QyxnQkFBZ0IsQ0FBQyxXQUFnQjtRQUNyQyxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDaEQsSUFBSSxXQUFXLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDcEQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDdEQsQ0FBQztJQUNMLENBQUM7SUFFRCwwQ0FBMEM7SUFDbEMsZUFBZSxHQUFHLENBQUMsT0FBZSxFQUFFLEtBQWEsRUFBUSxFQUFFO1FBQy9ELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQUUsT0FBTztRQUNoRCxJQUFJLENBQUM7WUFBQyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUFDLENBQUM7UUFBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQztZQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQUMsQ0FBQztRQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQyxDQUFBO0lBRUQsNERBQTREO0lBQ3BELGNBQWMsQ0FBQyxHQUFXO1FBQzlCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxTQUFTO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDbkUsSUFBSSxDQUFDLEtBQUssU0FBUztZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxLQUFLLFFBQVE7WUFBRSxPQUFPLFFBQVEsQ0FBQztRQUNwQyxPQUFPLFNBQVMsQ0FBQyxDQUFDLHdEQUF3RDtJQUM5RSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssV0FBVyxDQUFDLEtBQWM7UUFDOUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7WUFBRSxPQUFPO1FBQ2hELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0QsTUFBTSxPQUFPLEdBQUcsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUVqRCxJQUFJLENBQUM7WUFBQyxNQUFNLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUFDLENBQUM7UUFBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQztZQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQUMsQ0FBQztRQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDO1lBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEdBQUcsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQUMsQ0FBQztRQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDO1lBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFBQyxDQUFDO1FBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsbUZBQW1GO0lBQzNFLFlBQVksQ0FBQyxNQUFrQjtRQUNuQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUFFLE9BQU8sTUFBTSxFQUFFLENBQUM7UUFDekQsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQztZQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFBQyxDQUFDO1FBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsU0FBUztZQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxzREFBc0Q7SUFDOUMsZ0JBQWdCO1FBQ3BCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQUUsT0FBTztRQUNoRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyRCxJQUFJLE1BQU07WUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzlELElBQUksTUFBTTtZQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELHVDQUF1QztJQUMvQixnQkFBZ0I7UUFDcEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7WUFBRSxPQUFPO1FBQ2hELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JELElBQUksTUFBTTtZQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN6RCxJQUFJLE1BQU07WUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVPLGlCQUFpQixDQUFDLE9BQWUsRUFBRSxLQUFjO1FBQ3JELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQUUsT0FBTztRQUNoRCxJQUFJLENBQUM7WUFBQyxjQUFjLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUFDLENBQUM7UUFBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQztZQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQUMsQ0FBQztRQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDO1lBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFBQyxDQUFDO1FBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO3dHQWpJUSxzQkFBc0Isd0pBYW5CLFFBQVEsYUFDUixXQUFXOzRGQWRkLHNCQUFzQixzR0N6Qm5DLDJuQkFlTSxtWkRNUSxZQUFZLDRGQUFFLHNCQUFzQjs7NEZBSXJDLHNCQUFzQjtrQkFQbEMsU0FBUzsrQkFDSSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLHNCQUFzQixDQUFDOzswQkFpQjFDLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgUmVuZGVyZXIyLCBFbGVtZW50UmVmLCBJbmplY3QsIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tcG9uZW50SGVscGVyIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9jb21wb25lbnQtaGVscGVyJztcbmltcG9ydCB7IENhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZWMtc2VydmljZXMnO1xuaW1wb3J0IHsgQ2hlY2tvdXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZWMtc2VydmljZXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBMb2FkaW5nRnVsbEVjQ29tcG9uZW50IH0gZnJvbSAnLi4vbG9hZGluZy9sb2FkaW5nLWZ1bGwtZWMvbG9hZGluZy1mdWxsLWVjLmNvbXBvbmVudCc7XG5cbnR5cGUgTXBTdGF0ZSA9ICdzdWNjZXNzJyB8ICdwZW5kaW5nJyB8ICdmYWlsdXJlJyB8ICdjYW5jZWwnO1xuXG4vKipcbiAqIENhdGNoIGdlbsOpcmljbyBwYXJhIHJlZGlyZWNjaW9uZXMgZGUgcGFnb3MuXG4gKiAtIE5vcm1hbGl6YSBlbCBlc3RhZG8gcmVjaWJpZG8gcG9yIHBhcmFtcy9xdWVyeS5cbiAqIC0gSW5mb3JtYSBlbCByZXN1bHRhZG8gYWwgb3BlbmVyIChwb3N0TWVzc2FnZSksIEJyb2FkY2FzdENoYW5uZWwgeSBsb2NhbFN0b3JhZ2UuXG4gKiAtIEludGVudGEgY2VycmFyc2U7IHNpIGVsIGNpZXJyZSBmYWxsYSwgcmVkaXJpZ2Ugc2Vnw7puIGVsIGVzdGFkby5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtcmVkc3lzLWNhdGNoLWVjJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIExvYWRpbmdGdWxsRWNDb21wb25lbnRdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yZWRzeXMtY2F0Y2gtZWMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3JlZHN5cy1jYXRjaC1lYy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFJlZHN5c0NhdGNoRWNDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRIZWxwZXIgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICBwdWJsaWMgbWVzc2FnZSA9ICcnO1xuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIHNpZCA9ICcnO1xuICAgIHByaXZhdGUgYmM/OiBCcm9hZGNhc3RDaGFubmVsO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBhY3RpdmVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHB1YmxpYyBjaGVja291dFNlcnZpY2U6IENoZWNrb3V0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IGFueVxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMuaGlkZUhlYWRlckZvb3RlcigpO1xuICAgICAgICB0aGlzLmVjT25Db25zdHJ1Y3QoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkgJiYgJ0Jyb2FkY2FzdENoYW5uZWwnIGluIHdpbmRvdykge1xuICAgICAgICAgICAgdGhpcy5iYyA9IG5ldyBCcm9hZGNhc3RDaGFubmVsKCdtcF9wYXltZW50Jyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuYWN0aXZlZFJvdXRlLnBhcmFtcywgdGhpcy5hY3RpdmVkUm91dGUucXVlcnlQYXJhbXNdKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoW3JvdXRlUGFyYW1zLCBxXSkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBzdGF0ZVN0cjogc3RyaW5nIHwgdW5kZWZpbmVkID0gcm91dGVQYXJhbXNbJ3N0YXRlJ107XG4gICAgICAgICAgICAgICAgaWYgKHN0YXRlU3RyID09PSAnc3RhdHVzcGF5bWVudCcpIHN0YXRlU3RyID0gcVsnc3RhdHVzJ107XG5cbiAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXNQYXJhbSA9IChzdGF0ZVN0ciB8fCBxWydzdGF0dXMnXSB8fCBxWydzdGF0ZSddIHx8ICcnKS50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5ub3JtYWxpemVTdGF0ZShzdGF0dXNQYXJhbSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnNpZCA9IChxWydzaWQnXSB8fCAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSA/IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdtcDpzaWQnKSA6ICcnKSB8fCAnJykudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlVG90YWxBbW91bnQocSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlSW5Mb2NhbCgnU3UgcGFnbyBmdWUgcHJvY2VzYWRvIGNvbiDDqXhpdG8uJywgc3RhdGUpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2lnbmFsU3RhdGUoc3RhdGUpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy50cnlDbG9zZVNlbGYoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSAoc3RhdGUgPT09ICdzdWNjZXNzJyB8fCBzdGF0ZSA9PT0gJ3BlbmRpbmcnKVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBbJy9jaGVja291dC9vcmRlcl9zdWNjZXNzJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogWycvY2hlY2tvdXQnXTtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJvdXRlci5uYXZpZ2F0ZSh0YXJnZXQpLCA0NTAwKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB0aGlzLmVjT25Jbml0KCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmJjPy5jbG9zZSgpO1xuICAgICAgICB0aGlzLnNob3dIZWFkZXJGb290ZXIoKTtcbiAgICB9XG5cbiAgICAvKiogR3VhcmRhIHRvdGFsX2Ftb3VudCBzaSB2aWVuZSBkZXNkZSBlbCBQU1AuICovXG4gICAgcHJpdmF0ZSBzdG9yZVRvdGFsQW1vdW50KHF1ZXJ5UGFyYW1zOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdG90YWxBbW91bnQgPSBxdWVyeVBhcmFtc1sndG90YWxfYW1vdW50J107XG4gICAgICAgIGlmICh0b3RhbEFtb3VudCAmJiBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndG90YWxfYW1vdW50JywgdG90YWxBbW91bnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFNldGVhIG1lbnNhamUgeSBlc3RhZG8gZW4gc3RvcmFnZXMuICovXG4gICAgcHJpdmF0ZSBzZXRTdGF0ZUluTG9jYWwgPSAobWVuc2FqZTogc3RyaW5nLCBzdGF0ZTogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMubWVzc2FnZSA9IG1lbnNhamU7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuICAgICAgICB0cnkgeyBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc3RhdGUnLCBzdGF0ZSk7IH0gY2F0Y2ggeyB9XG4gICAgICAgIHRyeSB7IHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ21vZGFsbmV3cycsICdmYWxzZScpOyB9IGNhdGNoIHsgfVxuICAgIH1cblxuICAgIC8qKiBOb3JtYWxpemEgZXN0YWRvcyBoZXRlcm9nw6luZW9zIGRlIGRpc3RpbnRvcyBnYXRld2F5cy4gKi9cbiAgICBwcml2YXRlIG5vcm1hbGl6ZVN0YXRlKHJhdzogc3RyaW5nKTogTXBTdGF0ZSB7XG4gICAgICAgIGNvbnN0IHYgPSAocmF3IHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAodiA9PT0gJzIwMCcgfHwgdiA9PT0gJ29rJyB8fCB2ID09PSAnc3VjY2VzcycpIHJldHVybiAnc3VjY2Vzcyc7XG4gICAgICAgIGlmICh2ID09PSAncGVuZGluZycpIHJldHVybiAncGVuZGluZyc7XG4gICAgICAgIGlmICh2ID09PSAnY2FuY2VsJykgcmV0dXJuICdjYW5jZWwnO1xuICAgICAgICByZXR1cm4gJ2ZhaWx1cmUnOyAvLyBmYWlsdXJlLCAwLCBlcnJvciwgcmVqZWN0ZWQsIGNoYXJnZWJhY2ssIGRlc2Nvbm9jaWRvc1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluZm9ybWEgZWwgcmVzdWx0YWRvOiBwb3N0TWVzc2FnZSBhbCBvcGVuZXIsIEJyb2FkY2FzdENoYW5uZWwgeSBsb2NhbFN0b3JhZ2VcbiAgICAgKiAoZXN0ZSDDumx0aW1vIHBlcm1pdGUgcG9sbGluZyBlbiBsYSBwZXN0YcOxYSBtYWRyZSkuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzaWduYWxTdGF0ZShzdGF0ZTogTXBTdGF0ZSkge1xuICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybjtcbiAgICAgICAgY29uc3Qgc2lkID0gdGhpcy5zaWQgfHwgbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ21wOnNpZCcpIHx8ICcnO1xuICAgICAgICBjb25zdCBwYXlsb2FkID0geyB0eXBlOiAnbXA6c3RhdGUnLCBzaWQsIHN0YXRlIH07XG5cbiAgICAgICAgdHJ5IHsgd2luZG93Lm9wZW5lciAmJiB3aW5kb3cub3BlbmVyLnBvc3RNZXNzYWdlKHBheWxvYWQsICcqJyk7IH0gY2F0Y2ggeyB9XG4gICAgICAgIHRyeSB7IHRoaXMuYmM/LnBvc3RNZXNzYWdlKHBheWxvYWQpOyB9IGNhdGNoIHsgfVxuICAgICAgICB0cnkgeyBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShgbXA6c3RhdGU6JHtzaWR9YCwgc3RhdGUpOyB9IGNhdGNoIHsgfVxuICAgICAgICB0cnkgeyBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc3RhdGUnLCBzdGF0ZSk7IH0gY2F0Y2ggeyB9XG4gICAgfVxuXG4gICAgLyoqIEludGVudGEgY2VycmFyIGxhIHBlc3Rhw7FhIGFjdHVhbDsgc2kgZmFsbGEsIGVqZWN1dGEgZWwgY2FsbGJhY2sgZGUgZmFsbGJhY2suICovXG4gICAgcHJpdmF0ZSB0cnlDbG9zZVNlbGYob25GYWlsOiAoKSA9PiB2b2lkKSB7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuIG9uRmFpbCgpO1xuICAgICAgICBsZXQgYXR0ZW1wdGVkID0gZmFsc2U7XG4gICAgICAgIHRyeSB7IHdpbmRvdy5jbG9zZSgpOyBhdHRlbXB0ZWQgPSB0cnVlOyB9IGNhdGNoIHsgfVxuICAgICAgICBpZiAoIWF0dGVtcHRlZCkgb25GYWlsKCk7XG4gICAgfVxuXG4gICAgLyoqIE9jdWx0YSBoZWFkZXIvZm9vdGVyIHBhcmEgZXN0YSBwYW50YWxsYSBtw61uaW1hLiAqL1xuICAgIHByaXZhdGUgaGlkZUhlYWRlckZvb3RlcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgICAgIGNvbnN0IGhlYWRlciA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaGVhZGVyJyk7XG4gICAgICAgIGNvbnN0IGZvb3RlciA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZm9vdGVyJyk7XG4gICAgICAgIGlmIChoZWFkZXIpIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoaGVhZGVyLCAnZGlzcGxheScsICdub25lJyk7XG4gICAgICAgIGlmIChmb290ZXIpIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZm9vdGVyLCAnZGlzcGxheScsICdub25lJyk7XG4gICAgfVxuXG4gICAgLyoqIFJlc3RhdXJhIGhlYWRlci9mb290ZXIgYWwgc2FsaXIuICovXG4gICAgcHJpdmF0ZSBzaG93SGVhZGVyRm9vdGVyKCk6IHZvaWQge1xuICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybjtcbiAgICAgICAgY29uc3QgaGVhZGVyID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdoZWFkZXInKTtcbiAgICAgICAgY29uc3QgZm9vdGVyID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdmb290ZXInKTtcbiAgICAgICAgaWYgKGhlYWRlcikgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZShoZWFkZXIsICdkaXNwbGF5Jyk7XG4gICAgICAgIGlmIChmb290ZXIpIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUoZm9vdGVyLCAnZGlzcGxheScpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U3RhdGVJblNlc3Npb24obWVuc2FqZTogc3RyaW5nLCBzdGF0ZTogTXBTdGF0ZSkge1xuICAgICAgICB0aGlzLm1lc3NhZ2UgPSBtZW5zYWplO1xuICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybjtcbiAgICAgICAgdHJ5IHsgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnc3RhdGUnLCBzdGF0ZSk7IH0gY2F0Y2ggeyB9XG4gICAgICAgIHRyeSB7IGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdzdGF0ZScsIHN0YXRlKTsgfSBjYXRjaCB7IH1cbiAgICAgICAgdHJ5IHsgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnbW9kYWxuZXdzJywgJ2ZhbHNlJyk7IH0gY2F0Y2ggeyB9XG4gICAgfVxuXG5cbn1cbiIsIjxkaXYgaWQ9XCJjb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgYWxpZ24tc2VsZi1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxoNCBjbGFzcz1cInRpdHBhZ2UgY2VudGVyLWJsb2NrIHRleHQtY2VudGVyIGZvbnQtbmV4YSBmb250LWxnIG15LTNcIj57eyBtZXNzYWdlIHwgdXBwZXJjYXNlIH19PC9oND5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIGFsaWduLXNlbGYtY2VudGVyXCI+XG4gICAgICAgICAgICA8aDUgY2xhc3M9XCJjZW50ZXItYmxvY2sgdGV4dC1jZW50ZXIgZm9udC1uZXhhIG15LTNcIj5SZWRpcmlnaWVuZG8gZW4gc2VndW5kb3MuLi48L2g1PlxuICAgICAgICAgICAgPGJyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBqdXNpdGZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxhcHAtbG9hZGluZy1mdWxsLWVjPjwvYXBwLWxvYWRpbmctZnVsbC1lYz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
@@ -37,7 +37,9 @@ export class FacebookPixelService {
37
37
  this.renderer.appendChild(this.document?.body, new_analityc_script);
38
38
  this.enabled = true;
39
39
  }
40
- setTimeout(() => this.callEvent('initialize'), 1000);
40
+ if (isPlatformBrowser(this.platformId)) {
41
+ setTimeout(() => this.callEvent('initialize'), 1000);
42
+ }
41
43
  }
42
44
  /**
43
45
  * Ejecuta el evento pasado por parametro.
@@ -209,4 +211,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
209
211
  providedIn: 'root'
210
212
  }]
211
213
  }], ctorParameters: () => [] });
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjZWJvb2stcGl4ZWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1zZXJ2aWNlcy9hbmFseXRpY3MvZmFjZWJvb2stcGl4ZWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFhLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVU3Rjs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sb0JBQW9CO0lBRXJCLGVBQWUsR0FBcUIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUE7SUFDNUQsUUFBUSxHQUFvQixJQUFJLENBQUM7SUFDekM7OztPQUdHO0lBQ0ssUUFBUSxDQUFZO0lBQzVCOztPQUVHO0lBQ0ssT0FBTyxHQUFZLEtBQUssQ0FBQztJQUN6QixVQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRXpDO1FBQ0ksSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGtDQUFrQztRQUN4RSxDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUNEOzs7T0FHRztJQUNILFVBQVUsQ0FBQyxRQUFhO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDbkQsSUFBSSxtQkFBbUIsR0FBRyxJQUFJLENBQUMs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QUMsQ0FBQyxDQUFDLEVBQUUsSUFBSTtnQkFDbEMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2FBQzFCLENBQUE7UUFDTCxDQUFDLENBQ0osQ0FBQTtJQUNMLENBQUM7SUFDRDs7OztPQUlHO0lBQ0ssYUFBYSxDQUFDLElBQVM7UUFDM0IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FDakIsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FDaEQsQ0FBQTtJQUNMLENBQUM7d0dBdE1RLG9CQUFvQjs0R0FBcEIsb0JBQW9CLGNBRmpCLE1BQU07OzRGQUVULG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBQTEFURk9STV9JRCwgUmVuZGVyZXIyLCBSZW5kZXJlckZhY3RvcnkyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbmFseXRpY0V2ZW50S2V5LCBGYWNlYm9va1BpeGVsRGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuLyoqXG4gKiBGdW5jaW9uIHF1ZSBzZXJhIGRhZGEgcG9yIGVsIHNjcmlwdCBxdWUgc2UgaW5zZXJ0YSBlbiBlbCBpbmljaWFsaXphZG9yIGRlIEZhY2Vib29rIEFuYWx5dGljcy5cbiAqIFxuICogaHR0cHM6Ly9lcy1sYS5mYWNlYm9vay5jb20vYnVzaW5lc3MvaGVscC80MDI3OTExNDY1NjE2NTU/aWQ9MTIwNTM3NjY4MjgzMjE0MiBcbiAqIFxuICogUmVsYWNpb25hZG8gY29uOiB7QGxpbmsgRmFjZWJvb2tQaXhlbFNlcnZpY2V9XG4gKi9cbmRlY2xhcmUgbGV0IGZicTogRnVuY3Rpb247XG4vKipcbiAqIFNlcnZpY2lvIHF1ZSBzZSBlbmNhcmdhIGRlIG1hbmVqYXIgZWwgQW5hbHl0aWNzIGRlIEZhY2Vib29rLlxuICogQGNsYXNzIEZhY2Vib29rUGl4ZWxTZXJ2aWNlXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRmFjZWJvb2tQaXhlbFNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSByZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTIgPSBpbmplY3QoUmVuZGVyZXJGYWN0b3J5MilcbiAgICBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCB8IG51bGwgPSBudWxsO1xuICAgIC8qKlxuICAgICAqIFNlIGVuY2FyZ2EgZGUgY3JlYXIgZWwgZWxlbWVudG8gSFRNTCBjb24gbGFzIGNvbmZpZ3VyYWNpb25lcyBwYXJhIFxuICAgICAqIHF1ZSBzZSBwdWVkYSBlamVjdXRhciBlbCBzZXJ2aWNpby5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjI7XG4gICAgLyoqXG4gICAgICogSW5kaWNhIGN1YW5kbyBlbCBzZXJ2aWNpbyBlc3RhIGhhYmlsaXRhZG8uXG4gICAgICovXG4gICAgcHJpdmF0ZSBlbmFibGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgdGhpcy5kb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7IC8vIFNvbG8gc2UgaW55ZWN0YSBlbiBlbCBuYXZlZ2Fkb3JcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbmRlcmVyID0gdGhpcy5yZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIobnVsbCwgbnVsbCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEluaWNpYWxpemEgZWwgU2VydmljaW8gZGUgYW5hbHl0aWNzIGNvbiBzdXMgY29uZmlndXJhY2lvbmVzLlxuICAgICAqIEBwYXJhbSBwaXhlbF9pZCBpZCBwcm92aXN0byBwb3IgRmFjZWJvb2sgUGl4ZWwuXG4gICAgICovXG4gICAgaW5pdGlhbGl6ZShwaXhlbF9pZDogYW55KSB7XG4gICAgICAgIGlmICghdGhpcy5kb2N1bWVudD8uZ2V0RWxlbWVudEJ5SWQoJ2ZhY2Vib29rX3BpeGVsJykpIHtcbiAgICAgICAgICAgIGxldCBuZXdfYW5hbGl0eWNfc2NyaXB0ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgICAgIG5ld19hbmFsaXR5Y19zY3JpcHQuaWQgPSBcImZhY2Vib29rX3BpeGVsXCJcbiAgICAgICAgICAgIG5ld19hbmFsaXR5Y19zY3JpcHQudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xuICAgICAgICAgICAgbmV3X2FuYWxpdHljX3NjcmlwdC50ZXh0ID0gYCFmdW5jdGlvbihmLGIsZSx2LG4sdCxzKSB7aWYoZi5mYnEpcmV0dXJuO249Zi5mYnE9ZnVuY3Rpb24oKXtuLmNhbGxNZXRob2Q/IG4uY2FsbE1ldGhvZC5hcHBseShuLGFyZ3VtZW50cyk6bi5xdWV1ZS5wdXNoKGFyZ3VtZW50cyl9OyBpZighZi5fZmJxKWYuX2ZicT1uO24ucHVzaD1uO24ubG9hZGVkPSEwO24udmVyc2lvbj0nMi4wJzsgbi5xdWV1ZT1bXTt0PWIuY3JlYXRlRWxlbWVudChlKTt0LmFzeW5jPSEwOyB0LnNyYz12O3M9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZShlKVswXTsgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0LHMpfSh3aW5kb3csIGRvY3VtZW50LCdzY3JpcHQnLCAnaHR0cHM6Ly9jb25uZWN0LmZhY2Vib29rLm5ldC9lbl9VUy9mYmV2ZW50cy5qcycpOyBmYnEoJ2luaXQnLCAke3BpeGVsX2lkfSk7YDtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5kb2N1bWVudD8uYm9keSwgbmV3X2FuYWxpdHljX3NjcmlwdCk7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jYWxsRXZlbnQoJ2luaXRpYWxpemUnKSwgMTAwMCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEVqZWN1dGEgZWwgZXZlbnRvIHBhc2FkbyBwb3IgcGFyYW1ldHJvLiBcbiAgICAgKiBAcGFyYW0gZXZlbnRfbmFtZSBOb21icmUgZGVsIGV2ZW50by5cbiAgICAgKiBAcGFyYW0gZGF0YSBEYXRhIGV4dHJhIHBhcmEgYWdyZWdhciBhbCBldmVudG8uXG4gICAgICogQHJldHVybnMgXG4gICAgICovXG4gICAgY2FsbEV2ZW50KGV2ZW50X25hbWU6IEFuYWx5dGljRXZlbnRLZXksIGRhdGEgPSB7fSkge1xuICAgICAgICBpZiAoIXRoaXMuZW5hYmxlZCkgcmV0dXJuO1xuICAgICAgICBsZXQgZXZlbnQgPSB0aGlzLnRyYW5zbGF0ZUV2ZW50TmFtZShldmVudF9uYW1lKTtcbiAgICAgICAgZXZlbnQgJiYgZmJxKCd0cmFjaycsIHRoaXMudHJhbnNsYXRlRXZlbnROYW1lKGV2ZW50X25hbWUpLCB0aGlzLmV2YWxFdmVudChldmVudF9uYW1lLCBkYXRhKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFRyYWR1Y2UgZWwgZXZlbnRvIHJlY2liaWRvIHkgZGV2dWVsdmUgZWwgbm9tYnJlIGRlIGxhIGZ1bmNpw7NuIHF1ZSBsbyB2YSBhIHRyYXRhci5cbiAgICAgKiBAcGFyYW0gZXZlbnRfbmFtZSBcbiAgICAgKiBAcmV0dXJucyBcbiAgICAgKi9cbiAgICB0cmFuc2xhdGVFdmVudE5hbWUoZXZlbnRfbmFtZTogQW5hbHl0aWNFdmVudEtleSkge1xuICAgICAgICBzd2l0Y2ggKGV2ZW50X25hbWUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2luaXRpYWxpemUnOiByZXR1cm4gJ1BhZ2VWaWV3JztcbiAgICAgICAgICAgIGNhc2UgJ3ZpZXdfaXRlbSc6IHJldHVybiAnVmlld0NvbnRlbnQnO1xuICAgICAgICAgICAgY2FzZSAnY2hlY2tvdXRfaW5pdCc6IHJldHVybiAnSW5pdGlhdGVDaGVja291dCc7XG4gICAgICAgICAgICBjYXNlICdwYXltZW50X2luZm8nOiByZXR1cm4gJ0FkZFBheW1lbnRJbmZvJztcbiAgICAgICAgICAgIGNhc2UgJ3B1cmNoYXNlJzogcmV0dXJuICdQdXJjaGFzZSc7XG4gICAgICAgICAgICBjYXNlICdhZGRfdG9fY2FydCc6IHJldHVybiAnQWRkVG9DYXJ0JztcbiAgICAgICAgICAgIGRlZmF1bHQ6IHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEV2YWx1YSBlbCBldmVudG8geSBkZXZ1ZWx2ZSBsb3MgZGF0b3MgZGUgbGFzIGZ1bmNpb25lcyByZWxhY2lvbmFkYXMuXG4gICAgICogQHBhcmFtIGV2ZW50X25hbWUgTm9tYnJlIGRlbCBldmVudG9cbiAgICAgKiBAcGFyYW0gZGF0YSBEYXRhIGV4dHJhIHBhcmEgYWdyZWdhciBhbCBldmVudG9cbiAgICAgKiBAcmV0dXJucyBcbiAgICAgKi9cbiAgICBldmFsRXZlbnQoZXZlbnRfbmFtZTogQW5hbHl0aWNFdmVudEtleSwgZGF0YTogYW55KSB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnRfbmFtZSkge1xuICAgICAgICAgICAgY2FzZSAnaW5pdGlhbGl6ZSc6IHJldHVybiBkYXRhO1xuICAgICAgICAgICAgY2FzZSAndmlld19pdGVtJzogcmV0dXJuIHRoaXMudG9WaWV3Q29udGVudChkYXRhKTtcbiAgICAgICAgICAgIGNhc2UgJ2NoZWNrb3V0X2luaXQnOiByZXR1cm4gdGhpcy50b0NoZWNrb3V0SW5pdChkYXRhKTtcbiAgICAgICAgICAgIGNhc2UgJ3BheW1lbnRfaW5mbyc6IHJldHVybiB0aGlzLnRvUGF5bWVudEluZm8oZGF0YSk7XG4gICAgICAgICAgICBjYXNlICdwdXJjaGFzZSc6IHJldHVybiB0aGlzLnRvUHVyY2hhc2UoZGF0YSk7XG4gICAgICAgICAgICBjYXNlICdhZGRfdG9fY2FydCc6IHJldHVybiB0aGlzLnRvQWRkVG9DYXJ0KGRhdGEpO1xuICAgICAgICAgICAgZGVmYXVsdDogcmV0dXJuIGRhdGE7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogUGFyYSBlamVjdXRhciB1biBldmVudG8gcHJvcGlvLlxuICAgICAqIEBwYXJhbSBldmVudF9uYW1lIE5vbWJyZSBkZSBldmVudG9cbiAgICAgKiBAcGFyYW0gZGF0YSBEYXRhIGV4dHJhIHBhcmEgYWdyZWdhciBhbCBldmVudG8uXG4gICAgICogQHJldHVybnMgXG4gICAgICovXG4gICAgY2FsbEN1c3RvbUV2ZW50KGV2ZW50X25hbWU6IEFuYWx5dGljRXZlbnRLZXksIGRhdGE6IEZhY2Vib29rUGl4ZWxEYXRhID0ge30pIHtcbiAgICAgICAgaWYgKCF0aGlzLmVuYWJsZWQpIHJldHVybjtcbiAgICAgICAgZmJxKCd0cmFja0N1c3RvbScsIGV2ZW50X25hbWUsIGRhdGEpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYW1iaWEgbGEgdmFyaWFibGUgKiplbmFibGVkKiogYSBgZmFsc2VgXG4gICAgICogQHJldHVybnMgXG4gICAgICovXG4gICAgZGlzYWJsZSgpIHsgdGhpcy5lbmFibGVkID0gZmFsc2UgfTtcbiAgICAvKipcbiAgICAgKiBDdWFuZG8gdW4gZXZlbnRvIGludGVyYWN0dWEgY29uIGVsIGNvbnRlbmlkbyBkZSBsYSB2aXN0YSBkZWwgcHJvZHVjdG8uXG4gICAgICogQHBhcmFtIGRhdGEgXG4gICAgICogQHJldHVybnMgXG4gICAgICovXG4gICAgcHJpdmF0ZSB0b1ZpZXdDb250ZW50KGRhdGE6IGFueSkge1xuICAgICAgICBsZXQgbGFzdFByb2R1Y3QgPSBkYXRhPy5uYW1lIHx8ICdub3QtcHJvZHVjdCdcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvbnRlbnRfdHlwZTogJ3Byb2R1Y3QnLFxuICAgICAgICAgICAgY29udGVudF9uYW1lOiBsYXN0UHJvZHVjdCxcbiAgICAgICAgICAgIGNvbnRlbnRfaWRzOiBbZGF0YS52YXJpYW50c1swXT8uY29kZV0sXG4gICAgICAgICAgICBjdXJyZW5jeTogZGF0YS5jdXJyZW5jeSB8fCBcIlVTRFwiLFxuICAgICAgICAgICAgdmFsdWU6IGRhdGEudmFyaWFudHNbMF0/LnNhbGVwcmljZSB8fCBkYXRhLnZhcmlhbnRzWzBdPy5wcmljZSxcbiAgICAgICAgICAgIC8vcHJvZHVjdF9jYXRhbG9nX2lkOiAnVEVTVCdcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBFdmVudG8gcXVlIHNlIGRpc3BhcmEgY3VhbmRvIHNlIHF1aWVyZSBjb21wcmFyIHVuIHByb2R1Y3RvLlxuICAgICAqIEBwYXJhbSBkYXRhIFxuICAgICAqIEByZXR1cm5zIFxuICAgICAqL1xuICAgIHByaXZhdGUgdG9QdXJjaGFzZShkYXRhOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGN1cnJlbmN5OiBkYXRhLmN1cnJlbmN5IHx8IFwiVVNEXCIsXG4gICAgICAgICAgICB2YWx1ZTogZGF0YS50b3RhbHM/LnRvdGFsIHx8IDAsXG4gICAgICAgICAgICBjb250ZW50X3R5cGU6ICdwcm9kdWN0X2dyb3VwJyxcbiAgICAgICAgICAgIGNvbnRlbnRzOiB0aGlzLmdldENvbnRlbnRzKGRhdGEpLFxuICAgICAgICAgICAgLy9wcm9kdWN0X2NhdGFsb2dfaWQ6ICdURVNUJ1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEV2ZW50byBxdWUgc2UgZGlzcGFyYSBjdWFuZG8gc2UgaW5pY2lhbGl6YSBlbiBjaGVja291dC5cbiAgICAgKiBAcGFyYW0gZGF0YSBcbiAgICAgKiBAcmV0dXJucyBcbiAgICAgKi9cbiAgICBwcml2YXRlIHRvQ2hlY2tvdXRJbml0KGRhdGE6IGFueSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLy9jb250ZW50X2NhdGVnb3J5IDogXCJpbmljaW8gY2hlY2tvdXRcIixcbiAgICAgICAgICAgIGNvbnRlbnRfdHlwZTogJ3Byb2R1Y3RfZ3JvdXAnLFxuICAgICAgICAgICAgY29udGVudHM6IHRoaXMuZ2V0Q29udGVudHMoZGF0YSksXG4gICAgICAgICAgICBjb250ZW50X2lkczogdGhpcy5nZXRDb250ZW50SWRzKGRhdGEpLFxuICAgICAgICAgICAgY3VycmVuY3k6IGRhdGEuY3VycmVuY3kgfHwgXCJVU0RcIixcbiAgICAgICAgICAgIG51bV9pdGVtczogZGF0YS5pdGVtcz8ubGVuZ3RoIHx8IDAsXG4gICAgICAgICAgICB2YWx1ZTogZGF0YS50b3RhbHM/LnRvdGFsIHx8IDAsXG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogRXZlbnRvIHF1ZSBzZSBkaXNwYXJhIGN1YW5kbyBzZSBjb25zdWx0YSBsYSBpbmZvcm1hY2nDs24gZGUgcGFnby5cbiAgICAgKiBAcGFyYW0gZGF0YSBcbiAgICAgKiBAcmV0dXJucyBcbiAgICAgKi9cbiAgICBwcml2YXRlIHRvUGF5bWVudEluZm8oZGF0YTogYW55KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAvL2NvbnRlbnRfY2F0ZWdvcnkgOiBcImluaWNpbyBjaGVja291dFwiLFxuICAgICAgICAgICAgY29udGVudF90eXBlOiAncHJvZHVjdF9ncm91cCcsXG4gICAgICAgICAgICBjb250ZW50czogdGhpcy5nZXRDb250ZW50cyhkYXRhKSxcbiAgICAgICAgICAgIGNvbnRlbnRfaWRzOiB0aGlzLmdldENvbnRlbnRJZHMoZGF0YSksXG4gICAgICAgICAgICBjdXJyZW5jeTogZGF0YS5jdXJyZW5jeSB8fCBcIlVTRFwiLFxuICAgICAgICAgICAgdmFsdWU6IGRhdGEudG90YWxzPy50b3RhbCB8fCAwLFxuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEV2ZW50byBxdWUgc2UgZGlzcGFyYSBjdWFuZG8gc2UgYWdyZWdhIHVuIHByb2R1Y3RvIGFsIGNhcnJpdG8uIFxuICAgICAqIEBwYXJhbSBkYXRhIFxuICAgICAqIEByZXR1cm5zIFxuICAgICAqL1xuICAgIHByaXZhdGUgdG9BZGRUb0NhcnQoZGF0YTogYW55KSB7XG4gICAgICAgIGxldCBsYXN0UHJvZHVjdCA9IGRhdGEuaXRlbXM/Lmxlbmd0aCAmJiBkYXRhLml0ZW1zW2RhdGEuaXRlbXMubGVuZ3RoIC0gMV0/LnByb2R1Y3Q/Lm5hbWUgfHwgJ25vdC1wcm9kdWN0J1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29udGVudF9uYW1lOiBsYXN0UHJvZHVjdCxcbiAgICAgICAgICAgIGNvbnRlbnRfdHlwZTogJ3Byb2R1Y3QnLFxuICAgICAgICAgICAgY29udGVudHM6IHRoaXMuZ2V0Q29udGVudHMoZGF0YSksXG4gICAgICAgICAgICBjb250ZW50X2lkczogdGhpcy5nZXRDb250ZW50SWRzKGRhdGEpLFxuICAgICAgICAgICAgY3VycmVuY3k6IGRhdGEuY3VycmVuY3kgfHwgXCJVU0RcIixcbiAgICAgICAgICAgIHZhbHVlOiBkYXRhLnRvdGFscz8udG90YWwgfHwgMCxcbiAgICAgICAgICAgIC8vcHJvZHVjdF9jYXRhbG9nX2lkOiAnVEVTVCdcblxuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE1hcGVvIGRlIGRhdG9zIHBhcmEgb2J0ZW5lciBzb2xvIGVsIElEIGRlbCBwcm9kdWN0byB5IGxhIGNhbnRpZGFkLlxuICAgICAqIEBwYXJhbSBkYXRhIFxuICAgICAqIEByZXR1cm5zIFxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0Q29udGVudHMoZGF0YTogYW55KSB7XG4gICAgICAgIHJldHVybiBkYXRhLml0ZW1zLm1hcChcbiAgICAgICAgICAgIChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBpZDogaXRlbS5wcm9kdWN0LnZhcmlhbnRzWzBdPy5jb2RlLFxuICAgICAgICAgICAgICAgICAgICBxdWFudGl0eTogaXRlbS5xdWFudGl0eVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBNYXBlbyBkZSBkYXRvcyBwYXJhIG9idGVuZXIgc29sbyBlbCBJRCBkZWwgcHJvZHVjdG8uXG4gICAgICogQHBhcmFtIGRhdGEgXG4gICAgICogQHJldHVybnMgXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRDb250ZW50SWRzKGRhdGE6IGFueSkge1xuICAgICAgICByZXR1cm4gZGF0YS5pdGVtcy5tYXAoXG4gICAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLnByb2R1Y3QudmFyaWFudHNbMF0/LmNvZGVcbiAgICAgICAgKVxuICAgIH1cbn1cbiJdfQ==
214
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjZWJvb2stcGl4ZWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1zZXJ2aWNlcy9hbmFseXRpY3MvZmFjZWJvb2stcGl4ZWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFhLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVU3Rjs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sb0JBQW9CO0lBRXJCLGVBQWUsR0FBcUIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUE7SUFDNUQsUUFBUSxHQUFvQixJQUFJLENBQUM7SUFDekM7OztPQUdHO0lBQ0ssUUFBUSxDQUFZO0lBQzVCOztPQUVHO0lBQ0ssT0FBTyxHQUFZLEtBQUssQ0FBQztJQUN6QixVQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRXpDO1FBQ0ksSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGtDQUFrQztRQUN4RSxDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUNEOzs7T0FHRztJQUNILFVBQVUsQ0FBQyxRQUFhO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDbkQsSUFBSSxtQkFBbUIsR0FBRyxJQUFJLENBQUMs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RUFBRSxFQUFFO1lBQ1YsT0FBTztnQkFDSCxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSTtnQkFDbEMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2FBQzFCLENBQUE7UUFDTCxDQUFDLENBQ0osQ0FBQTtJQUNMLENBQUM7SUFDRDs7OztPQUlHO0lBQ0ssYUFBYSxDQUFDLElBQVM7UUFDM0IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FDakIsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FDaEQsQ0FBQTtJQUNMLENBQUM7d0dBeE1RLG9CQUFvQjs0R0FBcEIsb0JBQW9CLGNBRmpCLE1BQU07OzRGQUVULG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBQTEFURk9STV9JRCwgUmVuZGVyZXIyLCBSZW5kZXJlckZhY3RvcnkyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbmFseXRpY0V2ZW50S2V5LCBGYWNlYm9va1BpeGVsRGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuLyoqXG4gKiBGdW5jaW9uIHF1ZSBzZXJhIGRhZGEgcG9yIGVsIHNjcmlwdCBxdWUgc2UgaW5zZXJ0YSBlbiBlbCBpbmljaWFsaXphZG9yIGRlIEZhY2Vib29rIEFuYWx5dGljcy5cbiAqIFxuICogaHR0cHM6Ly9lcy1sYS5mYWNlYm9vay5jb20vYnVzaW5lc3MvaGVscC80MDI3OTExNDY1NjE2NTU/aWQ9MTIwNTM3NjY4MjgzMjE0MiBcbiAqIFxuICogUmVsYWNpb25hZG8gY29uOiB7QGxpbmsgRmFjZWJvb2tQaXhlbFNlcnZpY2V9XG4gKi9cbmRlY2xhcmUgbGV0IGZicTogRnVuY3Rpb247XG4vKipcbiAqIFNlcnZpY2lvIHF1ZSBzZSBlbmNhcmdhIGRlIG1hbmVqYXIgZWwgQW5hbHl0aWNzIGRlIEZhY2Vib29rLlxuICogQGNsYXNzIEZhY2Vib29rUGl4ZWxTZXJ2aWNlXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRmFjZWJvb2tQaXhlbFNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSByZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTIgPSBpbmplY3QoUmVuZGVyZXJGYWN0b3J5MilcbiAgICBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCB8IG51bGwgPSBudWxsO1xuICAgIC8qKlxuICAgICAqIFNlIGVuY2FyZ2EgZGUgY3JlYXIgZWwgZWxlbWVudG8gSFRNTCBjb24gbGFzIGNvbmZpZ3VyYWNpb25lcyBwYXJhIFxuICAgICAqIHF1ZSBzZSBwdWVkYSBlamVjdXRhciBlbCBzZXJ2aWNpby5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjI7XG4gICAgLyoqXG4gICAgICogSW5kaWNhIGN1YW5kbyBlbCBzZXJ2aWNpbyBlc3RhIGhhYmlsaXRhZG8uXG4gICAgICovXG4gICAgcHJpdmF0ZSBlbmFibGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgdGhpcy5kb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7IC8vIFNvbG8gc2UgaW55ZWN0YSBlbiBlbCBuYXZlZ2Fkb3JcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbmRlcmVyID0gdGhpcy5yZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIobnVsbCwgbnVsbCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEluaWNpYWxpemEgZWwgU2VydmljaW8gZGUgYW5hbHl0aWNzIGNvbiBzdXMgY29uZmlndXJhY2lvbmVzLlxuICAgICAqIEBwYXJhbSBwaXhlbF9pZCBpZCBwcm92aXN0byBwb3IgRmFjZWJvb2sgUGl4ZWwuXG4gICAgICovXG4gICAgaW5pdGlhbGl6ZShwaXhlbF9pZDogYW55KSB7XG4gICAgICAgIGlmICghdGhpcy5kb2N1bWVudD8uZ2V0RWxlbWVudEJ5SWQoJ2ZhY2Vib29rX3BpeGVsJykpIHtcbiAgICAgICAgICAgIGxldCBuZXdfYW5hbGl0eWNfc2NyaXB0ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgICAgIG5ld19hbmFsaXR5Y19zY3JpcHQuaWQgPSBcImZhY2Vib29rX3BpeGVsXCJcbiAgICAgICAgICAgIG5ld19hbmFsaXR5Y19zY3JpcHQudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xuICAgICAgICAgICAgbmV3X2FuYWxpdHljX3NjcmlwdC50ZXh0ID0gYCFmdW5jdGlvbihmLGIsZSx2LG4sdCxzKSB7aWYoZi5mYnEpcmV0dXJuO249Zi5mYnE9ZnVuY3Rpb24oKXtuLmNhbGxNZXRob2Q/IG4uY2FsbE1ldGhvZC5hcHBseShuLGFyZ3VtZW50cyk6bi5xdWV1ZS5wdXNoKGFyZ3VtZW50cyl9OyBpZighZi5fZmJxKWYuX2ZicT1uO24ucHVzaD1uO24ubG9hZGVkPSEwO24udmVyc2lvbj0nMi4wJzsgbi5xdWV1ZT1bXTt0PWIuY3JlYXRlRWxlbWVudChlKTt0LmFzeW5jPSEwOyB0LnNyYz12O3M9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZShlKVswXTsgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0LHMpfSh3aW5kb3csIGRvY3VtZW50LCdzY3JpcHQnLCAnaHR0cHM6Ly9jb25uZWN0LmZhY2Vib29rLm5ldC9lbl9VUy9mYmV2ZW50cy5qcycpOyBmYnEoJ2luaXQnLCAke3BpeGVsX2lkfSk7YDtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5kb2N1bWVudD8uYm9keSwgbmV3X2FuYWxpdHljX3NjcmlwdCk7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2FsbEV2ZW50KCdpbml0aWFsaXplJyksIDEwMDApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEVqZWN1dGEgZWwgZXZlbnRvIHBhc2FkbyBwb3IgcGFyYW1ldHJvLiBcbiAgICAgKiBAcGFyYW0gZXZlbnRfbmFtZSBOb21icmUgZGVsIGV2ZW50by5cbiAgICAgKiBAcGFyYW0gZGF0YSBEYXRhIGV4dHJhIHBhcmEgYWdyZWdhciBhbCBldmVudG8uXG4gICAgICogQHJldHVybnMgXG4gICAgICovXG4gICAgY2FsbEV2ZW50KGV2ZW50X25hbWU6IEFuYWx5dGljRXZlbnRLZXksIGRhdGEgPSB7fSkge1xuICAgICAgICBpZiAoIXRoaXMuZW5hYmxlZCkgcmV0dXJuO1xuICAgICAgICBsZXQgZXZlbnQgPSB0aGlzLnRyYW5zbGF0ZUV2ZW50TmFtZShldmVudF9uYW1lKTtcbiAgICAgICAgZXZlbnQgJiYgZmJxKCd0cmFjaycsIHRoaXMudHJhbnNsYXRlRXZlbnROYW1lKGV2ZW50X25hbWUpLCB0aGlzLmV2YWxFdmVudChldmVudF9uYW1lLCBkYXRhKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFRyYWR1Y2UgZWwgZXZlbnRvIHJlY2liaWRvIHkgZGV2dWVsdmUgZWwgbm9tYnJlIGRlIGxhIGZ1bmNpw7NuIHF1ZSBsbyB2YSBhIHRyYXRhci5cbiAgICAgKiBAcGFyYW0gZXZlbnRfbmFtZSBcbiAgICAgKiBAcmV0dXJucyBcbiAgICAgKi9cbiAgICB0cmFuc2xhdGVFdmVudE5hbWUoZXZlbnRfbmFtZTogQW5hbHl0aWNFdmVudEtleSkge1xuICAgICAgICBzd2l0Y2ggKGV2ZW50X25hbWUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2luaXRpYWxpemUnOiByZXR1cm4gJ1BhZ2VWaWV3JztcbiAgICAgICAgICAgIGNhc2UgJ3ZpZXdfaXRlbSc6IHJldHVybiAnVmlld0NvbnRlbnQnO1xuICAgICAgICAgICAgY2FzZSAnY2hlY2tvdXRfaW5pdCc6IHJldHVybiAnSW5pdGlhdGVDaGVja291dCc7XG4gICAgICAgICAgICBjYXNlICdwYXltZW50X2luZm8nOiByZXR1cm4gJ0FkZFBheW1lbnRJbmZvJztcbiAgICAgICAgICAgIGNhc2UgJ3B1cmNoYXNlJzogcmV0dXJuICdQdXJjaGFzZSc7XG4gICAgICAgICAgICBjYXNlICdhZGRfdG9fY2FydCc6IHJldHVybiAnQWRkVG9DYXJ0JztcbiAgICAgICAgICAgIGRlZmF1bHQ6IHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEV2YWx1YSBlbCBldmVudG8geSBkZXZ1ZWx2ZSBsb3MgZGF0b3MgZGUgbGFzIGZ1bmNpb25lcyByZWxhY2lvbmFkYXMuXG4gICAgICogQHBhcmFtIGV2ZW50X25hbWUgTm9tYnJlIGRlbCBldmVudG9cbiAgICAgKiBAcGFyYW0gZGF0YSBEYXRhIGV4dHJhIHBhcmEgYWdyZWdhciBhbCBldmVudG9cbiAgICAgKiBAcmV0dXJucyBcbiAgICAgKi9cbiAgICBldmFsRXZlbnQoZXZlbnRfbmFtZTogQW5hbHl0aWNFdmVudEtleSwgZGF0YTogYW55KSB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnRfbmFtZSkge1xuICAgICAgICAgICAgY2FzZSAnaW5pdGlhbGl6ZSc6IHJldHVybiBkYXRhO1xuICAgICAgICAgICAgY2FzZSAndmlld19pdGVtJzogcmV0dXJuIHRoaXMudG9WaWV3Q29udGVudChkYXRhKTtcbiAgICAgICAgICAgIGNhc2UgJ2NoZWNrb3V0X2luaXQnOiByZXR1cm4gdGhpcy50b0NoZWNrb3V0SW5pdChkYXRhKTtcbiAgICAgICAgICAgIGNhc2UgJ3BheW1lbnRfaW5mbyc6IHJldHVybiB0aGlzLnRvUGF5bWVudEluZm8oZGF0YSk7XG4gICAgICAgICAgICBjYXNlICdwdXJjaGFzZSc6IHJldHVybiB0aGlzLnRvUHVyY2hhc2UoZGF0YSk7XG4gICAgICAgICAgICBjYXNlICdhZGRfdG9fY2FydCc6IHJldHVybiB0aGlzLnRvQWRkVG9DYXJ0KGRhdGEpO1xuICAgICAgICAgICAgZGVmYXVsdDogcmV0dXJuIGRhdGE7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogUGFyYSBlamVjdXRhciB1biBldmVudG8gcHJvcGlvLlxuICAgICAqIEBwYXJhbSBldmVudF9uYW1lIE5vbWJyZSBkZSBldmVudG9cbiAgICAgKiBAcGFyYW0gZGF0YSBEYXRhIGV4dHJhIHBhcmEgYWdyZWdhciBhbCBldmVudG8uXG4gICAgICogQHJldHVybnMgXG4gICAgICovXG4gICAgY2FsbEN1c3RvbUV2ZW50KGV2ZW50X25hbWU6IEFuYWx5dGljRXZlbnRLZXksIGRhdGE6IEZhY2Vib29rUGl4ZWxEYXRhID0ge30pIHtcbiAgICAgICAgaWYgKCF0aGlzLmVuYWJsZWQpIHJldHVybjtcbiAgICAgICAgZmJxKCd0cmFja0N1c3RvbScsIGV2ZW50X25hbWUsIGRhdGEpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYW1iaWEgbGEgdmFyaWFibGUgKiplbmFibGVkKiogYSBgZmFsc2VgXG4gICAgICogQHJldHVybnMgXG4gICAgICovXG4gICAgZGlzYWJsZSgpIHsgdGhpcy5lbmFibGVkID0gZmFsc2UgfTtcbiAgICAvKipcbiAgICAgKiBDdWFuZG8gdW4gZXZlbnRvIGludGVyYWN0dWEgY29uIGVsIGNvbnRlbmlkbyBkZSBsYSB2aXN0YSBkZWwgcHJvZHVjdG8uXG4gICAgICogQHBhcmFtIGRhdGEgXG4gICAgICogQHJldHVybnMgXG4gICAgICovXG4gICAgcHJpdmF0ZSB0b1ZpZXdDb250ZW50KGRhdGE6IGFueSkge1xuICAgICAgICBsZXQgbGFzdFByb2R1Y3QgPSBkYXRhPy5uYW1lIHx8ICdub3QtcHJvZHVjdCdcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvbnRlbnRfdHlwZTogJ3Byb2R1Y3QnLFxuICAgICAgICAgICAgY29udGVudF9uYW1lOiBsYXN0UHJvZHVjdCxcbiAgICAgICAgICAgIGNvbnRlbnRfaWRzOiBbZGF0YS52YXJpYW50c1swXT8uY29kZV0sXG4gICAgICAgICAgICBjdXJyZW5jeTogZGF0YS5jdXJyZW5jeSB8fCBcIlVTRFwiLFxuICAgICAgICAgICAgdmFsdWU6IGRhdGEudmFyaWFudHNbMF0/LnNhbGVwcmljZSB8fCBkYXRhLnZhcmlhbnRzWzBdPy5wcmljZSxcbiAgICAgICAgICAgIC8vcHJvZHVjdF9jYXRhbG9nX2lkOiAnVEVTVCdcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBFdmVudG8gcXVlIHNlIGRpc3BhcmEgY3VhbmRvIHNlIHF1aWVyZSBjb21wcmFyIHVuIHByb2R1Y3RvLlxuICAgICAqIEBwYXJhbSBkYXRhIFxuICAgICAqIEByZXR1cm5zIFxuICAgICAqL1xuICAgIHByaXZhdGUgdG9QdXJjaGFzZShkYXRhOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGN1cnJlbmN5OiBkYXRhLmN1cnJlbmN5IHx8IFwiVVNEXCIsXG4gICAgICAgICAgICB2YWx1ZTogZGF0YS50b3RhbHM/LnRvdGFsIHx8IDAsXG4gICAgICAgICAgICBjb250ZW50X3R5cGU6ICdwcm9kdWN0X2dyb3VwJyxcbiAgICAgICAgICAgIGNvbnRlbnRzOiB0aGlzLmdldENvbnRlbnRzKGRhdGEpLFxuICAgICAgICAgICAgLy9wcm9kdWN0X2NhdGFsb2dfaWQ6ICdURVNUJ1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEV2ZW50byBxdWUgc2UgZGlzcGFyYSBjdWFuZG8gc2UgaW5pY2lhbGl6YSBlbiBjaGVja291dC5cbiAgICAgKiBAcGFyYW0gZGF0YSBcbiAgICAgKiBAcmV0dXJucyBcbiAgICAgKi9cbiAgICBwcml2YXRlIHRvQ2hlY2tvdXRJbml0KGRhdGE6IGFueSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLy9jb250ZW50X2NhdGVnb3J5IDogXCJpbmljaW8gY2hlY2tvdXRcIixcbiAgICAgICAgICAgIGNvbnRlbnRfdHlwZTogJ3Byb2R1Y3RfZ3JvdXAnLFxuICAgICAgICAgICAgY29udGVudHM6IHRoaXMuZ2V0Q29udGVudHMoZGF0YSksXG4gICAgICAgICAgICBjb250ZW50X2lkczogdGhpcy5nZXRDb250ZW50SWRzKGRhdGEpLFxuICAgICAgICAgICAgY3VycmVuY3k6IGRhdGEuY3VycmVuY3kgfHwgXCJVU0RcIixcbiAgICAgICAgICAgIG51bV9pdGVtczogZGF0YS5pdGVtcz8ubGVuZ3RoIHx8IDAsXG4gICAgICAgICAgICB2YWx1ZTogZGF0YS50b3RhbHM/LnRvdGFsIHx8IDAsXG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogRXZlbnRvIHF1ZSBzZSBkaXNwYXJhIGN1YW5kbyBzZSBjb25zdWx0YSBsYSBpbmZvcm1hY2nDs24gZGUgcGFnby5cbiAgICAgKiBAcGFyYW0gZGF0YSBcbiAgICAgKiBAcmV0dXJucyBcbiAgICAgKi9cbiAgICBwcml2YXRlIHRvUGF5bWVudEluZm8oZGF0YTogYW55KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAvL2NvbnRlbnRfY2F0ZWdvcnkgOiBcImluaWNpbyBjaGVja291dFwiLFxuICAgICAgICAgICAgY29udGVudF90eXBlOiAncHJvZHVjdF9ncm91cCcsXG4gICAgICAgICAgICBjb250ZW50czogdGhpcy5nZXRDb250ZW50cyhkYXRhKSxcbiAgICAgICAgICAgIGNvbnRlbnRfaWRzOiB0aGlzLmdldENvbnRlbnRJZHMoZGF0YSksXG4gICAgICAgICAgICBjdXJyZW5jeTogZGF0YS5jdXJyZW5jeSB8fCBcIlVTRFwiLFxuICAgICAgICAgICAgdmFsdWU6IGRhdGEudG90YWxzPy50b3RhbCB8fCAwLFxuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEV2ZW50byBxdWUgc2UgZGlzcGFyYSBjdWFuZG8gc2UgYWdyZWdhIHVuIHByb2R1Y3RvIGFsIGNhcnJpdG8uIFxuICAgICAqIEBwYXJhbSBkYXRhIFxuICAgICAqIEByZXR1cm5zIFxuICAgICAqL1xuICAgIHByaXZhdGUgdG9BZGRUb0NhcnQoZGF0YTogYW55KSB7XG4gICAgICAgIGxldCBsYXN0UHJvZHVjdCA9IGRhdGEuaXRlbXM/Lmxlbmd0aCAmJiBkYXRhLml0ZW1zW2RhdGEuaXRlbXMubGVuZ3RoIC0gMV0/LnByb2R1Y3Q/Lm5hbWUgfHwgJ25vdC1wcm9kdWN0J1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29udGVudF9uYW1lOiBsYXN0UHJvZHVjdCxcbiAgICAgICAgICAgIGNvbnRlbnRfdHlwZTogJ3Byb2R1Y3QnLFxuICAgICAgICAgICAgY29udGVudHM6IHRoaXMuZ2V0Q29udGVudHMoZGF0YSksXG4gICAgICAgICAgICBjb250ZW50X2lkczogdGhpcy5nZXRDb250ZW50SWRzKGRhdGEpLFxuICAgICAgICAgICAgY3VycmVuY3k6IGRhdGEuY3VycmVuY3kgfHwgXCJVU0RcIixcbiAgICAgICAgICAgIHZhbHVlOiBkYXRhLnRvdGFscz8udG90YWwgfHwgMCxcbiAgICAgICAgICAgIC8vcHJvZHVjdF9jYXRhbG9nX2lkOiAnVEVTVCdcblxuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE1hcGVvIGRlIGRhdG9zIHBhcmEgb2J0ZW5lciBzb2xvIGVsIElEIGRlbCBwcm9kdWN0byB5IGxhIGNhbnRpZGFkLlxuICAgICAqIEBwYXJhbSBkYXRhIFxuICAgICAqIEByZXR1cm5zIFxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0Q29udGVudHMoZGF0YTogYW55KSB7XG4gICAgICAgIHJldHVybiBkYXRhLml0ZW1zLm1hcChcbiAgICAgICAgICAgIChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBpZDogaXRlbS5wcm9kdWN0LnZhcmlhbnRzWzBdPy5jb2RlLFxuICAgICAgICAgICAgICAgICAgICBxdWFudGl0eTogaXRlbS5xdWFudGl0eVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBNYXBlbyBkZSBkYXRvcyBwYXJhIG9idGVuZXIgc29sbyBlbCBJRCBkZWwgcHJvZHVjdG8uXG4gICAgICogQHBhcmFtIGRhdGEgXG4gICAgICogQHJldHVybnMgXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRDb250ZW50SWRzKGRhdGE6IGFueSkge1xuICAgICAgICByZXR1cm4gZGF0YS5pdGVtcy5tYXAoXG4gICAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLnByb2R1Y3QudmFyaWFudHNbMF0/LmNvZGVcbiAgICAgICAgKVxuICAgIH1cbn1cbiJdfQ==
@@ -47,7 +47,9 @@ export class GoogleAnalyticsService {
47
47
  this.renderer.appendChild(this.document?.head, declaration);
48
48
  this.enabled = true;
49
49
  }
50
- setTimeout(() => this.startListeningPageViews(gtm_id), 1000);
50
+ if (isPlatformBrowser(this.platformId)) {
51
+ setTimeout(() => this.startListeningPageViews(gtm_id), 1000);
52
+ }
51
53
  }
52
54
  /**
53
55
  *
@@ -280,4 +282,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
280
282
  providedIn: 'root'
281
283
  }]
282
284
  }], ctorParameters: () => [] });
283
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLWFuYWx5dGljcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLXNlcnZpY2VzL2FuYWx5dGljcy9nb29nbGUtYW5hbHl0aWNzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBYSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBTzlCOzs7R0FHRztBQUlILE1BQU0sT0FBTyxzQkFBc0I7SUFDbEM7OztPQUdHO0lBQ0ssUUFBUSxDQUFZO0lBQzVCOztPQUVHO0lBQ0ssT0FBTyxHQUFZLEtBQUssQ0FBQztJQUV6QixlQUFlLEdBQXFCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzdELFFBQVEsR0FBb0IsSUFBSSxDQUFDO0lBQ2pDLFVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFekM7O09BRUc7SUFDSyxNQUFNLEdBQVcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXhDO1FBQ0MsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGtDQUFrQztRQUNyRSxDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFD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SUFBSSxDQUFDLFFBQVEsSUFBSSxLQUFLO1lBQ2hDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDckMsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDbkIsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSTtnQkFDdkIsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUTtnQkFDL0IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNqQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7YUFDdkIsQ0FBQyxDQUFDO1lBQ0gsYUFBYSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksSUFBSSxjQUFjO1lBQ2hFLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssSUFBSSxDQUFDO1NBQzlCLENBQUE7SUFDRixDQUFDO0lBRU8sUUFBUSxDQUFDLElBQVM7UUFDekIsT0FBTztZQUNOLEdBQUcsSUFBSTtTQUNQLENBQUE7SUFDRixDQUFDO3dHQTdRVyxzQkFBc0I7NEdBQXRCLHNCQUFzQixjQUZ0QixNQUFNOzs0RkFFTixzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgUExBVEZPUk1fSUQsIFJlbmRlcmVyMiwgUmVuZGVyZXJGYWN0b3J5MiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQW5hbHl0aWNFdmVudEtleSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMnO1xuLyoqXG4gKiBGdW5jaW9uIHF1ZSBzZXJhIGRhZGEgcG9yIGVsIHNjcmlwdCBxdWUgc2UgaW5zZXJ0YSBlbiBlbCBpbmljaWFsaXphZG9yIGRlIEdvb2dsZSBBbmFseXRpY3MuXG4gKi9cbmRlY2xhcmUgdmFyIGd0YWc6IEZ1bmN0aW9uO1xuZGVjbGFyZSB2YXIgZGF0YUxheWVyOiBhbnlbXTtcblxuLyoqXG4gKiBTZXJ2aWNpbyBlbmNhcmdhZG8gZGUgbWFuZWphciBlbCBhbmFseXRpY3MgZGUgZ29vZ2xlLlxuICogQGNsYXNzIEdvb2dsZUFuYWx5dGljc1NlcnZpY2VcbiAqL1xuQEluamVjdGFibGUoe1xuXHRwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgR29vZ2xlQW5hbHl0aWNzU2VydmljZSB7XG5cdC8qKlxuXHQgKiBTZSBlbmNhcmdhIGRlIGNyZWFyIGVsIGVsZW1lbnRvIEhUTUwgY29uIGxhcyBjb25maWd1cmFjaW9uZXMgcGFyYSBcblx0ICogcXVlIHNlIHB1ZWRhIGVqZWN1dGFyIGVsIHNlcnZpY2lvLlxuXHQgKi9cblx0cHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyO1xuXHQvKipcblx0ICogSW5kaWNhIGN1YW5kbyBlbCBzZXJ2aWNpbyBlc3RhIGhhYmlsaXRhZG8uXG5cdCAqL1xuXHRwcml2YXRlIGVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuXHRwcml2YXRlIHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MiA9IGluamVjdChSZW5kZXJlckZhY3RvcnkyKTtcblx0cHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQgfCBudWxsID0gbnVsbDtcblx0cHJpdmF0ZSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcblxuXHQvKipcblx0ICogU2VydmljaW8gZGUgcnV0ZW8gZGUgYW5ndWxhci5cblx0ICovXG5cdHByaXZhdGUgcm91dGVyOiBSb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuXHRcdFx0dGhpcy5kb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7IC8vIFNvbG8gc2UgaW55ZWN0YSBlbiBlbCBuYXZlZ2Fkb3Jcblx0XHR9XG5cdFx0dGhpcy5yZW5kZXJlciA9IHRoaXMucmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKG51bGwsIG51bGwpO1xuXHR9XG5cdC8qKlxuXHQgKiBJbmljaWFsaXphIGVsIFNlcnZpY2lvIGRlIGFuYWx5dGljcyBjb24gc3VzIGNvbmZpZ3VyYWNpb25lcy5cblx0ICogQHBhcmFtIGd0bV9pZCBpZCBwcm92aXN0byBwb3IgR29vZ2xlIFRhZyBNYW5hZ2VyLlxuXHQgKi9cblx0aW5pdGlhbGl6ZShndG1faWQ6IHN0cmluZykge1xuXHRcdGlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dvb2dsZV90YWdfbWFuYWdlcicpKSB7XG5cdFx0XHRjb25zb2xlLmxvZygnaGF5IGVsZW1lbnRvJylcblx0XHRcdGNvbnN0IGRlY2xhcmF0aW9uID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcblx0XHRcdGRlY2xhcmF0aW9uLmFzeW5jID0gdHJ1ZTtcblx0XHRcdGRlY2xhcmF0aW9uLmlkID0gJ2dvb2dsZV90YWdfbWFuYWdlcic7XG5cdFx0XHRkZWNsYXJhdGlvbi5zcmMgPSBgaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20vZ3RhZy9qcz9pZD0ke2d0bV9pZH1gO1xuXHRcdFx0Y29uc3QgaW5pdGlhbGl6YXRpb24gPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuXHRcdFx0aW5pdGlhbGl6YXRpb24udGV4dCA9IGB3aW5kb3cuZGF0YUxheWVyID0gd2luZG93LmRhdGFMYXllciB8fCBbXTsgZnVuY3Rpb24gZ3RhZygpe2RhdGFMYXllci5wdXNoKGFyZ3VtZW50cyk7fSBndGFnKCdqcycsIG5ldyBEYXRlKCkpOyBndGFnKCdjb25maWcnLCAnJHtndG1faWR9JylgO1xuXHRcdFx0dGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmRvY3VtZW50Py5oZWFkLCBpbml0aWFsaXphdGlvbik7XG5cdFx0XHR0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZG9jdW1lbnQ/LmhlYWQsIGRlY2xhcmF0aW9uKTtcblx0XHRcdHRoaXMuZW5hYmxlZCA9IHRydWU7XG5cdFx0fVxuXHRcdHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zdGFydExpc3RlbmluZ1BhZ2VWaWV3cyhndG1faWQpLCAxMDAwKTtcblx0fVxuXHQvKipcblx0ICogXG5cdCAqIEBwYXJhbSBndG1faWQgXG5cdCAqL1xuXHRwcml2YXRlIHN0YXJ0TGlzdGVuaW5nUGFnZVZpZXdzKGd0bV9pZDogYW55KSB7XG5cdFx0dGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoXG5cdFx0XHRmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKVxuXHRcdCkuc3Vic2NyaWJlKChldmVudDogTmF2aWdhdGlvbkVuZCkgPT4ge1xuXHRcdFx0Z3RhZygnY29uZmlnJywgZ3RtX2lkLCB7XG5cdFx0XHRcdCdwYWdlX3BhdGgnOiBldmVudC51cmxBZnRlclJlZGlyZWN0c1xuXHRcdFx0fSlcblx0XHR9KVxuXHR9XG5cdC8qKlxuXHQgKiBFamVjdXRhIGVsIGV2ZW50byBwYXNhZG8gcG9yIHBhcmFtZXRyby4gXG5cdCAqIEBwYXJhbSBldmVudF9uYW1lIE5vbWJyZSBkZWwgZXZlbnRvLlxuXHQgKiBAcGFyYW0gZGF0YSBEYXRhIGV4dHJhIHBhcmEgYWdyZWdhciBhbCBldmVudG8uXG5cdCAqIEByZXR1cm5zIFxuXHQgKi9cblx0Y2FsbEV2ZW50KGV2ZW50X25hbWU6IEFuYWx5dGljRXZlbnRLZXksIGRhdGEgPSB7fSkge1xuXHRcdGlmICghdGhpcy5lbmFibGVkKSByZXR1cm47XG5cdFx0bGV0IGV2ZW50ID0gdGhpcy50cmFuc2xhdGVFdmVudE5hbWUoZXZlbnRfbmFtZSk7XG5cdFx0ZXZlbnQgJiYgZ3RhZygnZXZlbnQnLCB0aGlzLnRyYW5zbGF0ZUV2ZW50TmFtZShldmVudF9uYW1lKSwgdGhpcy5ldmFsRXZlbnQoZXZlbnRfbmFtZSwgZGF0YSkpO1xuXHR9XG5cdC8qKlxuXHQgKiBUcmFkdWNlIGVsIGV2ZW50byByZWNpYmlkbyB5IGRldnVlbHZlIGVsIG5vbWJyZSBkZSBsYSBmdW5jacOzbiBxdWUgbG8gdmEgYSB0cmF0YXIuXG5cdCAqIEBwYXJhbSBldmVudF9uYW1lIFxuXHQgKiBAcmV0dXJucyBcblx0ICovXG5cdHRyYW5zbGF0ZUV2ZW50TmFtZShldmVudF9uYW1lOiBBbmFseXRpY0V2ZW50S2V5KSB7XG5cdFx0c3dpdGNoIChldmVudF9uYW1lKSB7XG5cdFx0XHRjYXNlICd2aWV3X2l0ZW0nOiByZXR1cm4gJ3ZpZXdfaXRlbSc7XG5cdFx0XHRjYXNlICd2aWV3X2l0ZW1fbGlzdCc6IHJldHVybiAndmlld19pdGVtX2xpc3QnO1xuXHRcdFx0Y2FzZSAnY2hlY2tvdXRfaW5pdCc6IHJldHVybiAnYmVnaW5fY2hlY2tvdXQnO1xuXHRcdFx0Y2FzZSAnc2hpcHBpbmdfaW5mbyc6IHJldHVybiAnYWRkX3NoaXBwaW5nX2luZm8nO1xuXHRcdFx0Y2FzZSAnYWRkX3BheW1lbnRfaW5mbyc6IHJldHVybiAnYWRkX3BheW1lbnRfaW5mbyc7XG5cdFx0XHRjYXNlICdwdXJjaGFzZSc6IHJldHVybiAncHVyY2hhc2UnO1xuXHRcdFx0Y2FzZSAnYWRkX3RvX2NhcnQnOiByZXR1cm4gJ2FkZF90b19jYXJ0Jztcblx0XHRcdGNhc2UgJ3JlbW92ZV9mcm9tX2NhcnQnOiByZXR1cm4gJ3JlbW92ZV9mcm9tX2NhcnQnO1xuXHRcdFx0Y2FzZSAnc2lnbl91cCc6IHJldHVybiAnc2lnbl91cCc7XG5cdFx0XHRkZWZhdWx0OiByZXR1cm4gbnVsbDtcblx0XHRcdC8vZGVmYXVsdDogcmV0dXJuIGV2ZW50X25hbWU7XG5cdFx0fVxuXHR9XG5cdC8qKlxuXHQgKiBFdmFsdWEgZWwgZXZlbnRvIHkgZGV2dWVsdmUgbG9zIGRhdG9zIGRlIGxhcyBmdW5jaW9uZXMgcmVsYWNpb25hZGFzLlxuXHQgKiBAcGFyYW0gZXZlbnRfbmFtZSBOb21icmUgZGVsIGV2ZW50b1xuXHQgKiBAcGFyYW0gZGF0YSBEYXRhIGV4dHJhIHBhcmEgYWdyZWdhciBhbCBldmVudG9cblx0ICogQHJldHVybnMgXG5cdCAqL1xuXHRldmFsRXZlbnQoZXZlbnRfbmFtZTogQW5hbHl0aWNFdmVudEtleSwgZGF0YTogYW55KSB7XG5cdFx0c3dpdGNoIChldmVudF9uYW1lKSB7XG5cdFx0XHRjYXNlICd2aWV3X2l0ZW0nOiByZXR1cm4gdGhpcy50b1ZpZXdJdGVtKGRhdGEpO1xuXHRcdFx0Y2FzZSAndmlld19pdGVtX2xpc3QnOiByZXR1cm4gdGhpcy50b1ZpZXdJdGVtTGlzdChkYXRhKTtcblx0XHRcdGNhc2UgJ2NoZWNrb3V0X2luaXQnOiByZXR1cm4gdGhpcy50b0NoZWNrb3V0SW5pdChkYXRhKTtcblx0XHRcdGNhc2UgJ3NoaXBwaW5nX2luZm8nOiByZXR1cm4gdGhpcy50b1NoaXBwaW5nSW5mbyhkYXRhKTtcblx0XHRcdGNhc2UgJ2FkZF9wYXltZW50X2luZm8nOiByZXR1cm4gdGhpcy50b1BheW1lbnRJbmZvKGRhdGEpO1xuXHRcdFx0Y2FzZSAncHVyY2hhc2UnOiByZXR1cm4gdGhpcy50b1B1cmNoYXNlKGRhdGEpO1xuXHRcdFx0Y2FzZSAnYWRkX3RvX2NhcnQnOiByZXR1cm4gdGhpcy50b0FkZFRvQ2FydChkYXRhKTtcblx0XHRcdGNhc2UgJ3JlbW92ZV9mcm9tX2NhcnQnOiByZXR1cm4gdGhpcy50b1JlbW92ZVRvQ2FydChkYXRhKTtcblx0XHRcdGNhc2UgJ3NpZ25fdXAnOiByZXR1cm4gdGhpcy50b1NpZ25VcChkYXRhKTtcblx0XHRcdGRlZmF1bHQ6IHJldHVybiBkYXRhO1xuXHRcdH1cblx0fVxuXHQvKipcblx0ICogRXZlbnRvIHF1ZSBzZSBkaXNwYXJhIGN1YW5kbyBzZSBxdWllcmUgY29tcHJhciB1biBwcm9kdWN0by5cblx0ICogQHBhcmFtIGRhdGEgXG5cdCAqIEByZXR1cm5zIFxuXHQgKi9cblx0cHJpdmF0ZSB0b1B1cmNoYXNlKGRhdGE6IGFueSkge1xuXHRcdHJldHVybiB7XG5cdFx0XHRjb3Vwb246IHRoaXMudG9DYXJ0RGlzY291bnQoZGF0YSksXG5cdFx0XHRjdXJyZW5jeTogZGF0YS5jdXJyZW5jeSxcblx0XHRcdHNoaXBwaW5nOiBkYXRhLnRvdGFscy5zaGlwcGluZyxcblx0XHRcdHRheDogZGF0YS50b3RhbHMudGF4ZXMsXG5cdFx0XHR2YWx1ZTogZGF0YS50b3RhbHMudG90YWwsXG5cdFx0XHR0cmFuc2FjdGlvbl9pZDogZGF0YS5udW1iZXIsXG5cdFx0XHRpdGVtczogZGF0YS5pdGVtcy5tYXAoKGl0ZW06IGFueSkgPT4gKHtcblx0XHRcdFx0aWQ6IGl0ZW0ucHJvZHVjdC5pZCxcblx0XHRcdFx0bmFtZTogaXRlbS5wcm9kdWN0Lm5hbWUsXG5cdFx0XHRcdGNhdGVnb3J5OiBpdGVtLnByb2R1Y3QuY2F0ZWdvcnksXG5cdFx0XHRcdHByaWNlOiBpdGVtLnRvdGFsLFxuXHRcdFx0XHRxdWFudGl0eTogaXRlbS5xdWFudGl0eVxuXHRcdFx0fSkpXG5cdFx0fVxuXHR9XG5cdC8qKlxuXHQgKiBFdmVudG8gcXVlIHNlIGRpc3BhcmEgY3VhbmRvIHNlIGluaWNpYWxpemEgZW4gY2hlY2tvdXQuXG5cdCAqIEBwYXJhbSBkYXRhIFxuXHQgKiBAcmV0dXJucyBcblx0ICovXG5cdHByaXZhdGUgdG9DaGVja291dEluaXQoZGF0YTogYW55KSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdGNvdXBvbjogdGhpcy50b0NhcnREaXNjb3VudChkYXRhKSxcblx0XHRcdGN1cnJlbmN5OiBkYXRhLmN1cnJlbmN5IHx8IFwiVVNEXCIsXG5cdFx0XHRpdGVtczogZGF0YS5pdGVtcy5tYXAoKGl0ZW06IGFueSkgPT4gKHtcblx0XHRcdFx0aWQ6IGl0ZW0ucHJvZHVjdC5pZCxcblx0XHRcdFx0bmFtZTogaXRlbS5wcm9kdWN0Lm5hbWUsXG5cdFx0XHRcdGNhdGVnb3J5OiBpdGVtLnByb2R1Y3QuY2F0ZWdvcnksXG5cdFx0XHRcdHByaWNlOiBpdGVtLnRvdGFsLFxuXHRcdFx0XHRxdWFudGl0eTogaXRlbS5xdWFudGl0eVxuXHRcdFx0fSkpLFxuXHRcdFx0dmFsdWU6IGRhdGEudG90YWxzPy50b3RhbCB8fCAwLFxuXHRcdH1cblx0fVxuXHQvKipcblx0ICogRXZlbnRvIHF1ZSBzZSBkaXNwYXJhIGNvbiBsb3MgZGVzY3VlbnRvcyBlbiBlbCBjYXJyaXRvLlxuXHQgKiBAcGFyYW0gZGF0YSBcblx0ICogQHJldHVybnMgXG5cdCAqL1xuXHRwcml2YXRlIHRvQ2FydERpc2NvdW50KGRhdGE6IGFueSkge1xuXHRcdGxldCBzdHJEaXNjb3VudCA9ICcnXG5cdFx0c3RyRGlzY291bnQgPSBkYXRhLmNhcnREaXNjb3VudHMubWFwKChpdGVtRGlzY291bnQ6IGFueSkgPT4gaXRlbURpc2NvdW50Py50eXBlKS5qb2luKClcblx0XHRyZXR1cm4gc3RyRGlzY291bnQgPT0gJycgPyAnbm90LWRpc2NvdW50JyA6IHN0ckRpc2NvdW50XG5cdH1cblx0LyoqXG5cdCAqIEV2ZW50byBxdWUgc2UgZGlzcGFyYSBjdWFuZG8gc2UgYWdyZWdhIHVuIHByb2R1Y3RvIGFsIGNhcnJpdG8uIFxuXHQgKiBAcGFyYW0gZGF0YSBcblx0ICogQHJldHVybnMgXG5cdCAqL1xuXHRwcml2YXRlIHRvQWRkVG9DYXJ0KGRhdGE6IGFueSkge1xuXHRcdGxldCBsYXN0UHJvZHVjdCA9IGRhdGEuaXRlbXM/Lmxlbmd0aCAmJiBkYXRhLml0ZW1zW2RhdGEuaXRlbXMubGVuZ3RoIC0gMV1cblx0XHRyZXR1cm4ge1xuXHRcdFx0Y3VycmVuY3k6IGRhdGEuY3VycmVuY3kgfHwgXCJVU0RcIixcblx0XHRcdGl0ZW1zOiBbdGhpcy50b0l0ZW0oeyBxdWFudGl0eTogbGFzdFByb2R1Y3QucXVhbnRpdHksIC4uLmxhc3RQcm9kdWN0LnByb2R1Y3QgfSldLFxuXHRcdFx0dmFsdWU6IGxhc3RQcm9kdWN0LnRvdGFsIHx8IDAsXG5cdFx0fVxuXHR9XG5cdC8qKlxuXHQgKiBDYW1iaWEgbGEgdmFyaWFibGUgKiplbmFibGVkKiogYSBgZmFsc2VgXG5cdCAqIEByZXR1cm5zIFxuXHQgKi9cblx0ZGlzYWJsZSgpIHsgdGhpcy5lbmFibGVkID0gZmFsc2U7IH1cblx0LyoqXG5cdCAqIEV2ZW50byBxdWUgc2UgZGlzcGFyYSBjdWFuZG8gc2UgaW50ZXJhY3R1YSBhIGxhcyB2aXN0YSBkZWwgcHJvZHVjdG8uXG5cdCAqIEBwYXJhbSBwcm9kdWN0IFxuXHQgKiBAcmV0dXJucyBcblx0ICovXG5cdHByaXZhdGUgdG9WaWV3SXRlbShwcm9kdWN0OiBhbnkpIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0Y3VycmVuY3k6IHByb2R1Y3QuY3VycmVuY3ksXG5cdFx0XHRpdGVtczogW3RoaXMudG9JdGVtKHByb2R1Y3QpXSxcblx0XHRcdHZhbHVlOiBwcm9kdWN0LnZhcmlhbnRzWzBdPy5zYWxlcHJpY2UgfHwgcHJvZHVjdC52YXJpYW50c1swXT8ucHJpY2UsXG5cdFx0fVxuXHR9XG5cdC8qKlxuXHQgKiBFdmVudG8gcXVlIHNlIGRpc3BhcmEgY3VhbmRvIHNlIGludGVyYWN0dWEgY29uIGVsIGxpc3RhZG8gZGUgcHJvZHVjdG9zLlxuXHQgKiBAcGFyYW0gZGF0YSBcblx0ICogQHJldHVybnMgXG5cdCAqL1xuXHRwcml2YXRlIHRvVmlld0l0ZW1MaXN0KGRhdGE6IGFueSkge1xuXHRcdHJldHVybiB7XG5cdFx0XHRpdGVtczogZGF0YS5wcm9kdWN0cy5tYXAoKHByb2R1Y3Q6IGFueSkgPT4gdGhpcy50b0l0ZW0ocHJvZHVjdCkpLFxuXHRcdFx0aXRlbV9saXN0X25hbWU6IGRhdGEuaXRlbV9saXN0X25hbWUgfHwgJ0NvbGxlY3Rpb24nLFxuXHRcdFx0aXRlbV9saXN0X2lkOiBkYXRhLml0ZW1fbGlzdF9pZCB8fCAnY29sbGVjdGlvbidcblx0XHR9XG5cdH1cblx0LyoqXG5cdCAqIEV2ZW50byBxdWUgc2UgZGlzcGFyYSBjdWFuZG8gc2UgcXVpdGEgdW4gaXRlbSBkZWwgY2Fycml0by5cblx0ICogQHBhcmFtIHByb2R1Y3QgXG5cdCAqIEByZXR1cm5zIFxuXHQgKi9cblx0cHJpdmF0ZSB0b1JlbW92ZVRvQ2FydChwcm9kdWN0OiBhbnkpIHtcblx0XHRsZXQgcHJvZHVjdFBhcmFtID0gcHJvZHVjdC5wcm9kdWN0XG5cdFx0cmV0dXJuIHtcblx0XHRcdGN1cnJlbmN5OiBwcm9kdWN0LmN1cnJlbmN5IHx8IFwiVVNEXCIsXG5cdFx0XHRpdGVtczogW3RoaXMudG9JdGVtKHsgcXVhbnRpdHk6IHByb2R1Y3QucXVhbnRpdHksIC4uLnByb2R1Y3RQYXJhbSB9KV0sXG5cdFx0XHR2YWx1ZTogKHByb2R1Y3RQYXJhbS52YXJpYW50c1swXT8uc2FsZXByaWNlIHx8IHByb2R1Y3RQYXJhbS52YXJpYW50c1swXT8ucHJpY2UpICogcHJvZHVjdC5xdWFudGl0eSB8fCAxLFxuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgdG9JdGVtID0gKHByb2R1Y3Q6IGFueSkgPT4gKHtcblx0XHRpdGVtX25hbWU6IHByb2R1Y3QubmFtZSxcblx0XHRpdGVtX2lkOiBwcm9kdWN0LmlkLFxuXHRcdGl0ZW1fYnJhbmQ6IHByb2R1Y3QuYXR0cmlidXRlcz8ubGVuZ3RoID8gcHJvZHVjdC5hdHRyaWJ1dGVzWzBdLm5hbWUgOiAnJyxcblx0XHRpdGVtX2NhdGVnb3J5OiBwcm9kdWN0LmNhdGVnb3J5LFxuXHRcdHByaWNlOiBwcm9kdWN0LnZhcmlhbnRzWzBdPy5zYWxlcHJpY2UgfHwgcHJvZHVjdC52YXJpYW50c1swXT8ucHJpY2UsXG5cdFx0cXVhbnRpdHk6IHByb2R1Y3QucXVhbnRpdHkgfHwgMSxcblx0fSlcblx0LyoqXG5cdCAqIEV2ZW50byBxdWUgc2UgZGlzcGFyYSBjdWFuZG8gc2UgY29uc3VsdGEgbGEgaW5mb3JtYWNpw7NuIGRlIHBhZ28uXG5cdCAqIEBwYXJhbSBkYXRhIFxuXHQgKiBAcmV0dXJucyBcblx0ICovXG5cdHByaXZhdGUgdG9QYXltZW50SW5mbyhkYXRhOiBhbnkpIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0Y291cG9uOiB0aGlzLnRvQ2FydERpc2NvdW50KGRhdGEpLFxuXHRcdFx0Y3VycmVuY3k6IGRhdGEuY3VycmVuY3kgfHwgXCJVU0RcIixcblx0XHRcdGl0ZW1zOiBkYXRhLml0ZW1zLm1hcCgoaXRlbTogYW55KSA9PiAoe1xuXHRcdFx0XHRpZDogaXRlbS5wcm9kdWN0LmlkLFxuXHRcdFx0XHRuYW1lOiBpdGVtLnByb2R1Y3QubmFtZSxcblx0XHRcdFx0Y2F0ZWdvcnk6IGl0ZW0ucHJvZHVjdC5jYXRlZ29yeSxcblx0XHRcdFx0cHJpY2U6IGl0ZW0udG90YWwsXG5cdFx0XHRcdHF1YW50aXR5OiBpdGVtLnF1YW50aXR5XG5cdFx0XHR9KSksXG5cdFx0XHRwYXltZW50X3R5cGU6IGRhdGEucGF5bWVudHNbMF0/Lm1ldGhvZD8uY29kZSB8fCAnbm90LXBheW1lbnRzJyxcblx0XHRcdHZhbHVlOiBkYXRhLnRvdGFscz8udG90YWwgfHwgMCxcblx0XHR9XG5cdH1cblx0LyoqXG5cdCAqIEV2ZW50byBxdWUgc2UgZGlzcGFyYSBjdWFuZG8gc2UgaW50ZXJhY3R1YSBjb24gbG9zIG3DqXRvZG9zIGRlIGVudsOtby5cblx0ICogQHBhcmFtIGRhdGEgXG5cdCAqIEByZXR1cm5zIFxuXHQgKi9cblx0cHJpdmF0ZSB0b1NoaXBwaW5nSW5mbyhkYXRhOiBhbnkpIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0Y291cG9uOiB0aGlzLnRvQ2FydERpc2NvdW50KGRhdGEpLFxuXHRcdFx0Y3VycmVuY3k6IGRhdGEuY3VycmVuY3kgfHwgXCJVU0RcIixcblx0XHRcdGl0ZW1zOiBkYXRhLml0ZW1zLm1hcCgoaXRlbTogYW55KSA9PiAoe1xuXHRcdFx0XHRpZDogaXRlbS5wcm9kdWN0LmlkLFxuXHRcdFx0XHRuYW1lOiBpdGVtLnByb2R1Y3QubmFtZSxcblx0XHRcdFx0Y2F0ZWdvcnk6IGl0ZW0ucHJvZHVjdC5jYXRlZ29yeSxcblx0XHRcdFx0cHJpY2U6IGl0ZW0udG90YWwsXG5cdFx0XHRcdHF1YW50aXR5OiBpdGVtLnF1YW50aXR5XG5cdFx0XHR9KSksXG5cdFx0XHRzaGlwcGluZ190aWVyOiBkYXRhLnNoaXBtZW50c1swXT8ubWV0aG9kPy5jb2RlIHx8ICdub3Qtc2hpcHBpbmcnLFxuXHRcdFx0dmFsdWU6IGRhdGEudG90YWxzPy50b3RhbCB8fCAwLFxuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgdG9TaWduVXAoZGF0YTogYW55KSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdC4uLmRhdGFcblx0XHR9XG5cdH1cbn1cbiJdfQ==
285
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLWFuYWx5dGljcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLXNlcnZpY2VzL2FuYWx5dGljcy9nb29nbGUtYW5hbHl0aWNzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBYSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBTzlCOzs7R0FHRztBQUlILE1BQU0sT0FBTyxzQkFBc0I7SUFDbEM7OztPQUdHO0lBQ0ssUUFBUSxDQUFZO0lBQzVCOztPQUVHO0lBQ0ssT0FBTyxHQUFZLEtBQUssQ0FBQztJQUV6QixlQUFlLEdBQXFCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzdELFFBQVEsR0FBb0IsSUFBSSxDQUFDO0lBQ2pDLFVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFekM7O09BRUc7SUFDSyxNQUFNLEdBQVcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXhDO1FBQ0MsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGtDQUFrQztRQUNyRSxDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFD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TztZQUNOLE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQztZQUNqQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsSUFBSSxLQUFLO1lBQ2hDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDckMsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDbkIsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSTtnQkFDdkIsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUTtnQkFDL0IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNqQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7YUFDdkIsQ0FBQyxDQUFDO1lBQ0gsYUFBYSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksSUFBSSxjQUFjO1lBQ2hFLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssSUFBSSxDQUFDO1NBQzlCLENBQUE7SUFDRixDQUFDO0lBRU8sUUFBUSxDQUFDLElBQVM7UUFDekIsT0FBTztZQUNOLEdBQUcsSUFBSTtTQUNQLENBQUE7SUFDRixDQUFDO3dHQS9RVyxzQkFBc0I7NEdBQXRCLHNCQUFzQixjQUZ0QixNQUFNOzs0RkFFTixzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgUExBVEZPUk1fSUQsIFJlbmRlcmVyMiwgUmVuZGVyZXJGYWN0b3J5MiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQW5hbHl0aWNFdmVudEtleSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMnO1xuLyoqXG4gKiBGdW5jaW9uIHF1ZSBzZXJhIGRhZGEgcG9yIGVsIHNjcmlwdCBxdWUgc2UgaW5zZXJ0YSBlbiBlbCBpbmljaWFsaXphZG9yIGRlIEdvb2dsZSBBbmFseXRpY3MuXG4gKi9cbmRlY2xhcmUgdmFyIGd0YWc6IEZ1bmN0aW9uO1xuZGVjbGFyZSB2YXIgZGF0YUxheWVyOiBhbnlbXTtcblxuLyoqXG4gKiBTZXJ2aWNpbyBlbmNhcmdhZG8gZGUgbWFuZWphciBlbCBhbmFseXRpY3MgZGUgZ29vZ2xlLlxuICogQGNsYXNzIEdvb2dsZUFuYWx5dGljc1NlcnZpY2VcbiAqL1xuQEluamVjdGFibGUoe1xuXHRwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgR29vZ2xlQW5hbHl0aWNzU2VydmljZSB7XG5cdC8qKlxuXHQgKiBTZSBlbmNhcmdhIGRlIGNyZWFyIGVsIGVsZW1lbnRvIEhUTUwgY29uIGxhcyBjb25maWd1cmFjaW9uZXMgcGFyYSBcblx0ICogcXVlIHNlIHB1ZWRhIGVqZWN1dGFyIGVsIHNlcnZpY2lvLlxuXHQgKi9cblx0cHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyO1xuXHQvKipcblx0ICogSW5kaWNhIGN1YW5kbyBlbCBzZXJ2aWNpbyBlc3RhIGhhYmlsaXRhZG8uXG5cdCAqL1xuXHRwcml2YXRlIGVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuXHRwcml2YXRlIHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MiA9IGluamVjdChSZW5kZXJlckZhY3RvcnkyKTtcblx0cHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQgfCBudWxsID0gbnVsbDtcblx0cHJpdmF0ZSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcblxuXHQvKipcblx0ICogU2VydmljaW8gZGUgcnV0ZW8gZGUgYW5ndWxhci5cblx0ICovXG5cdHByaXZhdGUgcm91dGVyOiBSb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuXHRcdFx0dGhpcy5kb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7IC8vIFNvbG8gc2UgaW55ZWN0YSBlbiBlbCBuYXZlZ2Fkb3Jcblx0XHR9XG5cdFx0dGhpcy5yZW5kZXJlciA9IHRoaXMucmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKG51bGwsIG51bGwpO1xuXHR9XG5cdC8qKlxuXHQgKiBJbmljaWFsaXphIGVsIFNlcnZpY2lvIGRlIGFuYWx5dGljcyBjb24gc3VzIGNvbmZpZ3VyYWNpb25lcy5cblx0ICogQHBhcmFtIGd0bV9pZCBpZCBwcm92aXN0byBwb3IgR29vZ2xlIFRhZyBNYW5hZ2VyLlxuXHQgKi9cblx0aW5pdGlhbGl6ZShndG1faWQ6IHN0cmluZykge1xuXHRcdGlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dvb2dsZV90YWdfbWFuYWdlcicpKSB7XG5cdFx0XHRjb25zb2xlLmxvZygnaGF5IGVsZW1lbnRvJylcblx0XHRcdGNvbnN0IGRlY2xhcmF0aW9uID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcblx0XHRcdGRlY2xhcmF0aW9uLmFzeW5jID0gdHJ1ZTtcblx0XHRcdGRlY2xhcmF0aW9uLmlkID0gJ2dvb2dsZV90YWdfbWFuYWdlcic7XG5cdFx0XHRkZWNsYXJhdGlvbi5zcmMgPSBgaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20vZ3RhZy9qcz9pZD0ke2d0bV9pZH1gO1xuXHRcdFx0Y29uc3QgaW5pdGlhbGl6YXRpb24gPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuXHRcdFx0aW5pdGlhbGl6YXRpb24udGV4dCA9IGB3aW5kb3cuZGF0YUxheWVyID0gd2luZG93LmRhdGFMYXllciB8fCBbXTsgZnVuY3Rpb24gZ3RhZygpe2RhdGFMYXllci5wdXNoKGFyZ3VtZW50cyk7fSBndGFnKCdqcycsIG5ldyBEYXRlKCkpOyBndGFnKCdjb25maWcnLCAnJHtndG1faWR9JylgO1xuXHRcdFx0dGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmRvY3VtZW50Py5oZWFkLCBpbml0aWFsaXphdGlvbik7XG5cdFx0XHR0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZG9jdW1lbnQ/LmhlYWQsIGRlY2xhcmF0aW9uKTtcblx0XHRcdHRoaXMuZW5hYmxlZCA9IHRydWU7XG5cdFx0fVxuXHRcdGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IHRoaXMuc3RhcnRMaXN0ZW5pbmdQYWdlVmlld3MoZ3RtX2lkKSwgMTAwMCk7XG5cdFx0fVxuXHR9XG5cdC8qKlxuXHQgKiBcblx0ICogQHBhcmFtIGd0bV9pZCBcblx0ICovXG5cdHByaXZhdGUgc3RhcnRMaXN0ZW5pbmdQYWdlVmlld3MoZ3RtX2lkOiBhbnkpIHtcblx0XHR0aGlzLnJvdXRlci5ldmVudHMucGlwZShcblx0XHRcdGZpbHRlcihldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpXG5cdFx0KS5zdWJzY3JpYmUoKGV2ZW50OiBOYXZpZ2F0aW9uRW5kKSA9PiB7XG5cdFx0XHRndGFnKCdjb25maWcnLCBndG1faWQsIHtcblx0XHRcdFx0J3BhZ2VfcGF0aCc6IGV2ZW50LnVybEFmdGVyUmVkaXJlY3RzXG5cdFx0XHR9KVxuXHRcdH0pXG5cdH1cblx0LyoqXG5cdCAqIEVqZWN1dGEgZWwgZXZlbnRvIHBhc2FkbyBwb3IgcGFyYW1ldHJvLiBcblx0ICogQHBhcmFtIGV2ZW50X25hbWUgTm9tYnJlIGRlbCBldmVudG8uXG5cdCAqIEBwYXJhbSBkYXRhIERhdGEgZXh0cmEgcGFyYSBhZ3JlZ2FyIGFsIGV2ZW50by5cblx0ICogQHJldHVybnMgXG5cdCAqL1xuXHRjYWxsRXZlbnQoZXZlbnRfbmFtZTogQW5hbHl0aWNFdmVudEtleSwgZGF0YSA9IHt9KSB7XG5cdFx0aWYgKCF0aGlzLmVuYWJsZWQpIHJldHVybjtcblx0XHRsZXQgZXZlbnQgPSB0aGlzLnRyYW5zbGF0ZUV2ZW50TmFtZShldmVudF9uYW1lKTtcblx0XHRldmVudCAmJiBndGFnKCdldmVudCcsIHRoaXMudHJhbnNsYXRlRXZlbnROYW1lKGV2ZW50X25hbWUpLCB0aGlzLmV2YWxFdmVudChldmVudF9uYW1lLCBkYXRhKSk7XG5cdH1cblx0LyoqXG5cdCAqIFRyYWR1Y2UgZWwgZXZlbnRvIHJlY2liaWRvIHkgZGV2dWVsdmUgZWwgbm9tYnJlIGRlIGxhIGZ1bmNpw7NuIHF1ZSBsbyB2YSBhIHRyYXRhci5cblx0ICogQHBhcmFtIGV2ZW50X25hbWUgXG5cdCAqIEByZXR1cm5zIFxuXHQgKi9cblx0dHJhbnNsYXRlRXZlbnROYW1lKGV2ZW50X25hbWU6IEFuYWx5dGljRXZlbnRLZXkpIHtcblx0XHRzd2l0Y2ggKGV2ZW50X25hbWUpIHtcblx0XHRcdGNhc2UgJ3ZpZXdfaXRlbSc6IHJldHVybiAndmlld19pdGVtJztcblx0XHRcdGNhc2UgJ3ZpZXdfaXRlbV9saXN0JzogcmV0dXJuICd2aWV3X2l0ZW1fbGlzdCc7XG5cdFx0XHRjYXNlICdjaGVja291dF9pbml0JzogcmV0dXJuICdiZWdpbl9jaGVja291dCc7XG5cdFx0XHRjYXNlICdzaGlwcGluZ19pbmZvJzogcmV0dXJuICdhZGRfc2hpcHBpbmdfaW5mbyc7XG5cdFx0XHRjYXNlICdhZGRfcGF5bWVudF9pbmZvJzogcmV0dXJuICdhZGRfcGF5bWVudF9pbmZvJztcblx0XHRcdGNhc2UgJ3B1cmNoYXNlJzogcmV0dXJuICdwdXJjaGFzZSc7XG5cdFx0XHRjYXNlICdhZGRfdG9fY2FydCc6IHJldHVybiAnYWRkX3RvX2NhcnQnO1xuXHRcdFx0Y2FzZSAncmVtb3ZlX2Zyb21fY2FydCc6IHJldHVybiAncmVtb3ZlX2Zyb21fY2FydCc7XG5cdFx0XHRjYXNlICdzaWduX3VwJzogcmV0dXJuICdzaWduX3VwJztcblx0XHRcdGRlZmF1bHQ6IHJldHVybiBudWxsO1xuXHRcdFx0Ly9kZWZhdWx0OiByZXR1cm4gZXZlbnRfbmFtZTtcblx0XHR9XG5cdH1cblx0LyoqXG5cdCAqIEV2YWx1YSBlbCBldmVudG8geSBkZXZ1ZWx2ZSBsb3MgZGF0b3MgZGUgbGFzIGZ1bmNpb25lcyByZWxhY2lvbmFkYXMuXG5cdCAqIEBwYXJhbSBldmVudF9uYW1lIE5vbWJyZSBkZWwgZXZlbnRvXG5cdCAqIEBwYXJhbSBkYXRhIERhdGEgZXh0cmEgcGFyYSBhZ3JlZ2FyIGFsIGV2ZW50b1xuXHQgKiBAcmV0dXJucyBcblx0ICovXG5cdGV2YWxFdmVudChldmVudF9uYW1lOiBBbmFseXRpY0V2ZW50S2V5LCBkYXRhOiBhbnkpIHtcblx0XHRzd2l0Y2ggKGV2ZW50X25hbWUpIHtcblx0XHRcdGNhc2UgJ3ZpZXdfaXRlbSc6IHJldHVybiB0aGlzLnRvVmlld0l0ZW0oZGF0YSk7XG5cdFx0XHRjYXNlICd2aWV3X2l0ZW1fbGlzdCc6IHJldHVybiB0aGlzLnRvVmlld0l0ZW1MaXN0KGRhdGEpO1xuXHRcdFx0Y2FzZSAnY2hlY2tvdXRfaW5pdCc6IHJldHVybiB0aGlzLnRvQ2hlY2tvdXRJbml0KGRhdGEpO1xuXHRcdFx0Y2FzZSAnc2hpcHBpbmdfaW5mbyc6IHJldHVybiB0aGlzLnRvU2hpcHBpbmdJbmZvKGRhdGEpO1xuXHRcdFx0Y2FzZSAnYWRkX3BheW1lbnRfaW5mbyc6IHJldHVybiB0aGlzLnRvUGF5bWVudEluZm8oZGF0YSk7XG5cdFx0XHRjYXNlICdwdXJjaGFzZSc6IHJldHVybiB0aGlzLnRvUHVyY2hhc2UoZGF0YSk7XG5cdFx0XHRjYXNlICdhZGRfdG9fY2FydCc6IHJldHVybiB0aGlzLnRvQWRkVG9DYXJ0KGRhdGEpO1xuXHRcdFx0Y2FzZSAncmVtb3ZlX2Zyb21fY2FydCc6IHJldHVybiB0aGlzLnRvUmVtb3ZlVG9DYXJ0KGRhdGEpO1xuXHRcdFx0Y2FzZSAnc2lnbl91cCc6IHJldHVybiB0aGlzLnRvU2lnblVwKGRhdGEpO1xuXHRcdFx0ZGVmYXVsdDogcmV0dXJuIGRhdGE7XG5cdFx0fVxuXHR9XG5cdC8qKlxuXHQgKiBFdmVudG8gcXVlIHNlIGRpc3BhcmEgY3VhbmRvIHNlIHF1aWVyZSBjb21wcmFyIHVuIHByb2R1Y3RvLlxuXHQgKiBAcGFyYW0gZGF0YSBcblx0ICogQHJldHVybnMgXG5cdCAqL1xuXHRwcml2YXRlIHRvUHVyY2hhc2UoZGF0YTogYW55KSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdGNvdXBvbjogdGhpcy50b0NhcnREaXNjb3VudChkYXRhKSxcblx0XHRcdGN1cnJlbmN5OiBkYXRhLmN1cnJlbmN5LFxuXHRcdFx0c2hpcHBpbmc6IGRhdGEudG90YWxzLnNoaXBwaW5nLFxuXHRcdFx0dGF4OiBkYXRhLnRvdGFscy50YXhlcyxcblx0XHRcdHZhbHVlOiBkYXRhLnRvdGFscy50b3RhbCxcblx0XHRcdHRyYW5zYWN0aW9uX2lkOiBkYXRhLm51bWJlcixcblx0XHRcdGl0ZW1zOiBkYXRhLml0ZW1zLm1hcCgoaXRlbTogYW55KSA9PiAoe1xuXHRcdFx0XHRpZDogaXRlbS5wcm9kdWN0LmlkLFxuXHRcdFx0XHRuYW1lOiBpdGVtLnByb2R1Y3QubmFtZSxcblx0XHRcdFx0Y2F0ZWdvcnk6IGl0ZW0ucHJvZHVjdC5jYXRlZ29yeSxcblx0XHRcdFx0cHJpY2U6IGl0ZW0udG90YWwsXG5cdFx0XHRcdHF1YW50aXR5OiBpdGVtLnF1YW50aXR5XG5cdFx0XHR9KSlcblx0XHR9XG5cdH1cblx0LyoqXG5cdCAqIEV2ZW50byBxdWUgc2UgZGlzcGFyYSBjdWFuZG8gc2UgaW5pY2lhbGl6YSBlbiBjaGVja291dC5cblx0ICogQHBhcmFtIGRhdGEgXG5cdCAqIEByZXR1cm5zIFxuXHQgKi9cblx0cHJpdmF0ZSB0b0NoZWNrb3V0SW5pdChkYXRhOiBhbnkpIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0Y291cG9uOiB0aGlzLnRvQ2FydERpc2NvdW50KGRhdGEpLFxuXHRcdFx0Y3VycmVuY3k6IGRhdGEuY3VycmVuY3kgfHwgXCJVU0RcIixcblx0XHRcdGl0ZW1zOiBkYXRhLml0ZW1zLm1hcCgoaXRlbTogYW55KSA9PiAoe1xuXHRcdFx0XHRpZDogaXRlbS5wcm9kdWN0LmlkLFxuXHRcdFx0XHRuYW1lOiBpdGVtLnByb2R1Y3QubmFtZSxcblx0XHRcdFx0Y2F0ZWdvcnk6IGl0ZW0ucHJvZHVjdC5jYXRlZ29yeSxcblx0XHRcdFx0cHJpY2U6IGl0ZW0udG90YWwsXG5cdFx0XHRcdHF1YW50aXR5OiBpdGVtLnF1YW50aXR5XG5cdFx0XHR9KSksXG5cdFx0XHR2YWx1ZTogZGF0YS50b3RhbHM/LnRvdGFsIHx8IDAsXG5cdFx0fVxuXHR9XG5cdC8qKlxuXHQgKiBFdmVudG8gcXVlIHNlIGRpc3BhcmEgY29uIGxvcyBkZXNjdWVudG9zIGVuIGVsIGNhcnJpdG8uXG5cdCAqIEBwYXJhbSBkYXRhIFxuXHQgKiBAcmV0dXJucyBcblx0ICovXG5cdHByaXZhdGUgdG9DYXJ0RGlzY291bnQoZGF0YTogYW55KSB7XG5cdFx0bGV0IHN0ckRpc2NvdW50ID0gJydcblx0XHRzdHJEaXNjb3VudCA9IGRhdGEuY2FydERpc2NvdW50cy5tYXAoKGl0ZW1EaXNjb3VudDogYW55KSA9PiBpdGVtRGlzY291bnQ/LnR5cGUpLmpvaW4oKVxuXHRcdHJldHVybiBzdHJEaXNjb3VudCA9PSAnJyA/ICdub3QtZGlzY291bnQnIDogc3RyRGlzY291bnRcblx0fVxuXHQvKipcblx0ICogRXZlbnRvIHF1ZSBzZSBkaXNwYXJhIGN1YW5kbyBzZSBhZ3JlZ2EgdW4gcHJvZHVjdG8gYWwgY2Fycml0by4gXG5cdCAqIEBwYXJhbSBkYXRhIFxuXHQgKiBAcmV0dXJucyBcblx0ICovXG5cdHByaXZhdGUgdG9BZGRUb0NhcnQoZGF0YTogYW55KSB7XG5cdFx0bGV0IGxhc3RQcm9kdWN0ID0gZGF0YS5pdGVtcz8ubGVuZ3RoICYmIGRhdGEuaXRlbXNbZGF0YS5pdGVtcy5sZW5ndGggLSAxXVxuXHRcdHJldHVybiB7XG5cdFx0XHRjdXJyZW5jeTogZGF0YS5jdXJyZW5jeSB8fCBcIlVTRFwiLFxuXHRcdFx0aXRlbXM6IFt0aGlzLnRvSXRlbSh7IHF1YW50aXR5OiBsYXN0UHJvZHVjdC5xdWFudGl0eSwgLi4ubGFzdFByb2R1Y3QucHJvZHVjdCB9KV0sXG5cdFx0XHR2YWx1ZTogbGFzdFByb2R1Y3QudG90YWwgfHwgMCxcblx0XHR9XG5cdH1cblx0LyoqXG5cdCAqIENhbWJpYSBsYSB2YXJpYWJsZSAqKmVuYWJsZWQqKiBhIGBmYWxzZWBcblx0ICogQHJldHVybnMgXG5cdCAqL1xuXHRkaXNhYmxlKCkgeyB0aGlzLmVuYWJsZWQgPSBmYWxzZTsgfVxuXHQvKipcblx0ICogRXZlbnRvIHF1ZSBzZSBkaXNwYXJhIGN1YW5kbyBzZSBpbnRlcmFjdHVhIGEgbGFzIHZpc3RhIGRlbCBwcm9kdWN0by5cblx0ICogQHBhcmFtIHByb2R1Y3QgXG5cdCAqIEByZXR1cm5zIFxuXHQgKi9cblx0cHJpdmF0ZSB0b1ZpZXdJdGVtKHByb2R1Y3Q6IGFueSkge1xuXHRcdHJldHVybiB7XG5cdFx0XHRjdXJyZW5jeTogcHJvZHVjdC5jdXJyZW5jeSxcblx0XHRcdGl0ZW1zOiBbdGhpcy50b0l0ZW0ocHJvZHVjdCldLFxuXHRcdFx0dmFsdWU6IHByb2R1Y3QudmFyaWFudHNbMF0/LnNhbGVwcmljZSB8fCBwcm9kdWN0LnZhcmlhbnRzWzBdPy5wcmljZSxcblx0XHR9XG5cdH1cblx0LyoqXG5cdCAqIEV2ZW50byBxdWUgc2UgZGlzcGFyYSBjdWFuZG8gc2UgaW50ZXJhY3R1YSBjb24gZWwgbGlzdGFkbyBkZSBwcm9kdWN0b3MuXG5cdCAqIEBwYXJhbSBkYXRhIFxuXHQgKiBAcmV0dXJucyBcblx0ICovXG5cdHByaXZhdGUgdG9WaWV3SXRlbUxpc3QoZGF0YTogYW55KSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdGl0ZW1zOiBkYXRhLnByb2R1Y3RzLm1hcCgocHJvZHVjdDogYW55KSA9PiB0aGlzLnRvSXRlbShwcm9kdWN0KSksXG5cdFx0XHRpdGVtX2xpc3RfbmFtZTogZGF0YS5pdGVtX2xpc3RfbmFtZSB8fCAnQ29sbGVjdGlvbicsXG5cdFx0XHRpdGVtX2xpc3RfaWQ6IGRhdGEuaXRlbV9saXN0X2lkIHx8ICdjb2xsZWN0aW9uJ1xuXHRcdH1cblx0fVxuXHQvKipcblx0ICogRXZlbnRvIHF1ZSBzZSBkaXNwYXJhIGN1YW5kbyBzZSBxdWl0YSB1biBpdGVtIGRlbCBjYXJyaXRvLlxuXHQgKiBAcGFyYW0gcHJvZHVjdCBcblx0ICogQHJldHVybnMgXG5cdCAqL1xuXHRwcml2YXRlIHRvUmVtb3ZlVG9DYXJ0KHByb2R1Y3Q6IGFueSkge1xuXHRcdGxldCBwcm9kdWN0UGFyYW0gPSBwcm9kdWN0LnByb2R1Y3Rcblx0XHRyZXR1cm4ge1xuXHRcdFx0Y3VycmVuY3k6IHByb2R1Y3QuY3VycmVuY3kgfHwgXCJVU0RcIixcblx0XHRcdGl0ZW1zOiBbdGhpcy50b0l0ZW0oeyBxdWFudGl0eTogcHJvZHVjdC5xdWFudGl0eSwgLi4ucHJvZHVjdFBhcmFtIH0pXSxcblx0XHRcdHZhbHVlOiAocHJvZHVjdFBhcmFtLnZhcmlhbnRzWzBdPy5zYWxlcHJpY2UgfHwgcHJvZHVjdFBhcmFtLnZhcmlhbnRzWzBdPy5wcmljZSkgKiBwcm9kdWN0LnF1YW50aXR5IHx8IDEsXG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSB0b0l0ZW0gPSAocHJvZHVjdDogYW55KSA9PiAoe1xuXHRcdGl0ZW1fbmFtZTogcHJvZHVjdC5uYW1lLFxuXHRcdGl0ZW1faWQ6IHByb2R1Y3QuaWQsXG5cdFx0aXRlbV9icmFuZDogcHJvZHVjdC5hdHRyaWJ1dGVzPy5sZW5ndGggPyBwcm9kdWN0LmF0dHJpYnV0ZXNbMF0ubmFtZSA6ICcnLFxuXHRcdGl0ZW1fY2F0ZWdvcnk6IHByb2R1Y3QuY2F0ZWdvcnksXG5cdFx0cHJpY2U6IHByb2R1Y3QudmFyaWFudHNbMF0/LnNhbGVwcmljZSB8fCBwcm9kdWN0LnZhcmlhbnRzWzBdPy5wcmljZSxcblx0XHRxdWFudGl0eTogcHJvZHVjdC5xdWFudGl0eSB8fCAxLFxuXHR9KVxuXHQvKipcblx0ICogRXZlbnRvIHF1ZSBzZSBkaXNwYXJhIGN1YW5kbyBzZSBjb25zdWx0YSBsYSBpbmZvcm1hY2nDs24gZGUgcGFnby5cblx0ICogQHBhcmFtIGRhdGEgXG5cdCAqIEByZXR1cm5zIFxuXHQgKi9cblx0cHJpdmF0ZSB0b1BheW1lbnRJbmZvKGRhdGE6IGFueSkge1xuXHRcdHJldHVybiB7XG5cdFx0XHRjb3Vwb246IHRoaXMudG9DYXJ0RGlzY291bnQoZGF0YSksXG5cdFx0XHRjdXJyZW5jeTogZGF0YS5jdXJyZW5jeSB8fCBcIlVTRFwiLFxuXHRcdFx0aXRlbXM6IGRhdGEuaXRlbXMubWFwKChpdGVtOiBhbnkpID0+ICh7XG5cdFx0XHRcdGlkOiBpdGVtLnByb2R1Y3QuaWQsXG5cdFx0XHRcdG5hbWU6IGl0ZW0ucHJvZHVjdC5uYW1lLFxuXHRcdFx0XHRjYXRlZ29yeTogaXRlbS5wcm9kdWN0LmNhdGVnb3J5LFxuXHRcdFx0XHRwcmljZTogaXRlbS50b3RhbCxcblx0XHRcdFx0cXVhbnRpdHk6IGl0ZW0ucXVhbnRpdHlcblx0XHRcdH0pKSxcblx0XHRcdHBheW1lbnRfdHlwZTogZGF0YS5wYXltZW50c1swXT8ubWV0aG9kPy5jb2RlIHx8ICdub3QtcGF5bWVudHMnLFxuXHRcdFx0dmFsdWU6IGRhdGEudG90YWxzPy50b3RhbCB8fCAwLFxuXHRcdH1cblx0fVxuXHQvKipcblx0ICogRXZlbnRvIHF1ZSBzZSBkaXNwYXJhIGN1YW5kbyBzZSBpbnRlcmFjdHVhIGNvbiBsb3MgbcOpdG9kb3MgZGUgZW52w61vLlxuXHQgKiBAcGFyYW0gZGF0YSBcblx0ICogQHJldHVybnMgXG5cdCAqL1xuXHRwcml2YXRlIHRvU2hpcHBpbmdJbmZvKGRhdGE6IGFueSkge1xuXHRcdHJldHVybiB7XG5cdFx0XHRjb3Vwb246IHRoaXMudG9DYXJ0RGlzY291bnQoZGF0YSksXG5cdFx0XHRjdXJyZW5jeTogZGF0YS5jdXJyZW5jeSB8fCBcIlVTRFwiLFxuXHRcdFx0aXRlbXM6IGRhdGEuaXRlbXMubWFwKChpdGVtOiBhbnkpID0+ICh7XG5cdFx0XHRcdGlkOiBpdGVtLnByb2R1Y3QuaWQsXG5cdFx0XHRcdG5hbWU6IGl0ZW0ucHJvZHVjdC5uYW1lLFxuXHRcdFx0XHRjYXRlZ29yeTogaXRlbS5wcm9kdWN0LmNhdGVnb3J5LFxuXHRcdFx0XHRwcmljZTogaXRlbS50b3RhbCxcblx0XHRcdFx0cXVhbnRpdHk6IGl0ZW0ucXVhbnRpdHlcblx0XHRcdH0pKSxcblx0XHRcdHNoaXBwaW5nX3RpZXI6IGRhdGEuc2hpcG1lbnRzWzBdPy5tZXRob2Q/LmNvZGUgfHwgJ25vdC1zaGlwcGluZycsXG5cdFx0XHR2YWx1ZTogZGF0YS50b3RhbHM/LnRvdGFsIHx8IDAsXG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSB0b1NpZ25VcChkYXRhOiBhbnkpIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0Li4uZGF0YVxuXHRcdH1cblx0fVxufVxuIl19