ng-easycommerce-v18 0.3.21-beta.3 → 0.3.22-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -6
- package/esm2022/lib/constants/api.constants.service.mjs +7 -1
- package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.mjs +1 -5
- package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.mjs +44 -53
- package/esm2022/lib/ec-components/widgets-ec/redsys-catch-ec/redsys-catch-ec.component.mjs +7 -17
- package/esm2022/lib/ec-services/analytics/gtm.service.mjs +90 -30
- package/esm2022/lib/ec-services/parameters.service.mjs +41 -1
- package/fesm2022/ng-easycommerce-v18.mjs +348 -267
- package/fesm2022/ng-easycommerce-v18.mjs.map +1 -1
- package/lib/constants/api.constants.service.d.ts +4 -0
- package/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.d.ts +0 -1
- package/lib/ec-services/analytics/gtm.service.d.ts +5 -0
- package/lib/ec-services/parameters.service.d.ts +6 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
# Version 0.3.
|
|
2
|
-
-
|
|
3
|
-
|
|
4
|
-
-
|
|
5
|
-
# Version 0.3.21-beta.1
|
|
6
|
-
- Mejora en el flujo de pago con Mercado Pago en dispositivos móviles: se agrega fallback de redirección cuando `window.close()` es ignorado, asegurando que la pantalla de resultado no quede bloqueada en el catch.
|
|
1
|
+
# Version 0.3.22-beta.1
|
|
2
|
+
- Se reactiva la inicialización de herramientas de analytics (Facebook Pixel, Google Analytics, GTM, Metricool y Doppler) en el core Angular 18 a partir de los parámetros del endpoint `/parameters`.
|
|
3
|
+
- Se respeta la nomenclatura de glosario `facebook_<canal>_id`, `google_<canal>_id`, `gtm_<canal>_id`, `metricool_<canal>_id`, `doppler_<canal>_id`, usando como fallback los códigos genéricos `<servicio>_id` cuando no exista el específico por canal.
|
|
4
|
+
- Se agrega `IS_PRODUCTION` en `ApiConstantsService` y se limita la inicialización de analytics sólo a entornos productivos.
|
|
7
5
|
# Version 0.3.17
|
|
8
6
|
- En el `header-ec.component.ts` se hacen public algunos injectores para poder usarlo en el `header.component.ts` de los frontends.
|
|
9
7
|
# Version 0.3.16
|
|
@@ -83,6 +83,12 @@ export class ApiConstantsService {
|
|
|
83
83
|
this._translate.use(locale.split('_')[0]);
|
|
84
84
|
this.LOCALE = locale;
|
|
85
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* Indica si la aplicación está corriendo en producción.
|
|
88
|
+
*/
|
|
89
|
+
get IS_PRODUCTION() {
|
|
90
|
+
return this.environment.production === true;
|
|
91
|
+
}
|
|
86
92
|
//Storage key
|
|
87
93
|
LOCALE_KEY = 'LOCALE';
|
|
88
94
|
CHANNEL_KEY = 'CHANNEL';
|
|
@@ -95,4 +101,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
95
101
|
providedIn: 'root'
|
|
96
102
|
}]
|
|
97
103
|
}], ctorParameters: () => [] });
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmNvbnN0YW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2NvbnN0YW50cy9hcGkuY29uc3RhbnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWpELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUd2RDs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLG1CQUFtQjtJQUN2QixhQUFhLEdBQXdCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ2pFLFVBQVUsR0FBcUIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFaEU7O09BRUc7SUFDSyxXQUFXLEdBQWdCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRTdEOztPQUVHO0lBQ0gsSUFBVyxPQUFPO1FBQ2pCLG1EQUFtRDtRQUNuRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ25DLGdFQUFnRTtZQUNoRSxNQUFNLFNBQVMsR0FBSSxNQUFjLENBQUMsS0FBSyxDQUFDO1lBQ3hDLElBQUksU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUFDO2dCQUN4QixPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUM7WUFDMUIsQ0FBQztRQUNGLENBQUM7UUFFRCwwQkFBMEI7UUFDMUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFXLE9BQU8sQ0FBQyxLQUFhO1FBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxRQUFRLENBQVM7SUFDekI7O09BRUc7SUFDSSxNQUFNLENBQVM7SUFFdEI7O09BRUc7SUFDYSxZQUFZLEdBQVcsV0FBVyxDQUFDO0lBQ25EOztPQUVHO0lBQ2EsT0FBTyxHQUFXLE1BQU0sQ0FBQztJQUV6QztRQUNDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLE9BQU87UUFDakIsbURBQW1EO1FBQ25ELElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDbkMsZ0VBQWdFO1lBQ2hFLE1BQU0sU0FBUyxHQUFJLE1BQWMsQ0FBQyxLQUFLLENBQUM7WUFDeEMsSUFBSSxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQ3ZCLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQztZQUN6QixDQUFDO1FBQ0YsQ0FBQztRQUVELG1EQUFtRDtRQUNuRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBQ0Q7OztPQUdHO0lBQ0ksVUFBVTtRQUNoQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDckIsQ0FBQztJQUNEOzs7O09BSUc7SUFDSSxVQUFVLENBQUMsSUFBWSxJQUFRLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUEsQ0FBQztJQUVwRCxTQUFTLENBQUMsTUFBYztRQUM5QixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN6QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGFBQWE7UUFDdkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUM7SUFDN0MsQ0FBQztJQUVELGFBQWE7SUFDSSxVQUFVLEdBQVUsUUFBUSxDQUFDO0lBQzdCLFdBQVcsR0FBVSxTQUFTLENBQUM7d0dBL0ZwQyxtQkFBbUI7NEdBQW5CLG1CQUFtQixjQUZsQixNQUFNOzs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFTlZJUk9OTUVOVF9UT0tFTiB9IGZyb20gJy4uL3Byb3ZpZGVycyc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL2VjLXNlcnZpY2VzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IENvcmVDb25zdGFudHNTZXJ2aWNlIH0gZnJvbSAnLi9jb3JlLmNvbnN0YW50cy5zZXJ2aWNlJztcblxuLyoqXG4gKiBTZXJ2aWNpbyBxdWUgcHJvdmVlIGRlIGRhdG9zIHF1ZSBlc3RhbiByZWxhY2lvbmFkbyBjb24gbGFzIHBldGljaW9uZXMgYSBsYSBBUElcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBBcGlDb25zdGFudHNTZXJ2aWNlXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFwaUNvbnN0YW50c1NlcnZpY2Uge1xuXHRwcml2YXRlIF9sb2NhbFN0b3JhZ2U6IExvY2FsU3RvcmFnZVNlcnZpY2UgPSBpbmplY3QoTG9jYWxTdG9yYWdlU2VydmljZSk7XG5cdHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcblxuXHQvKipcblx0ICogQ29udGllbmUgbG9zIGRhdG9zIHByb3Zpc3RvIHBvciBlbCBmcm9udGVuZCBlbiBlbCBhcmNoaXZvIGVudmlyb25tZW50LnRzXG5cdCAqL1xuXHRwcml2YXRlIGVudmlyb25tZW50OiBFbnZpcm9ubWVudCA9IGluamVjdChFTlZJUk9OTUVOVF9UT0tFTik7XG5cdFxuXHQvKipcblx0ICogQ2FuYWwgYWN0dWFsIGRlbCBmcm9udGVuZFxuXHQgKi9cblx0cHVibGljIGdldCBDSEFOTkVMKCk6IHN0cmluZyB7XG5cdFx0Ly8gVmVyaWZpY2FyIHNpIGVzdGFtb3MgZW4gZWwgbmF2ZWdhZG9yIChubyBlbiBTU1IpXG5cdFx0aWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG5cdFx0XHQvLyBQcmltZXJvIGludGVudGEgbGVlciBkZSB3aW5kb3cuX19lbnYgKGNvbmZpZ3VyYWRvIHBvciBEb2NrZXIpXG5cdFx0XHRjb25zdCB3aW5kb3dFbnYgPSAod2luZG93IGFzIGFueSkuX19lbnY7XG5cdFx0XHRpZiAod2luZG93RW52Py5jaGFubmVsKSB7XG5cdFx0XHRcdHJldHVybiB3aW5kb3dFbnYuY2hhbm5lbDtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0Ly8gRmFsbGJhY2sgYWwgZW52aXJvbm1lbnRcblx0XHRyZXR1cm4gdGhpcy5fY2hhbm5lbDtcblx0fVxuXHRcblx0cHVibGljIHNldCBDSEFOTkVMKHZhbHVlOiBzdHJpbmcpIHtcblx0XHR0aGlzLl9jaGFubmVsID0gdmFsdWU7XG5cdH1cblx0XG5cdHByaXZhdGUgX2NoYW5uZWw6IHN0cmluZztcblx0LyoqXG5cdCAqIExvY2FsZSBhY3R1YWwgZGVsIGZyb250ZW5kXG5cdCAqL1xuXHRwdWJsaWMgTE9DQUxFOiBzdHJpbmc7XG5cdFxuXHQvKipcblx0ICogVVJMIHBhcmEgbGFzIHBldGljaW9uZXMgYSBzaG9wLWFwaVxuXHQgKi9cblx0cHVibGljIHJlYWRvbmx5IFNIT1BfQVBJX1VSTDogc3RyaW5nID0gJ3Nob3AtYXBpLyc7XG5cdC8qKlxuXHQgKiBVUkwgcGFyYSBsYXMgcGV0aWNpb25lcyBhIGNtc1xuXHQgKi9cblx0cHVibGljIHJlYWRvbmx5IENNU19VUkw6IHN0cmluZyA9ICdjbXMvJztcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHR0aGlzLl9jaGFubmVsID0gdGhpcy5lbnZpcm9ubWVudC5jaGFubmVsO1xuXHRcdHRoaXMuTE9DQUxFID0gdGhpcy5lbnZpcm9ubWVudC5sb2NhbGU7XG5cdH1cblxuXHQvKipcblx0ICogVVJMIGRlbCBiYWNrZW5kIHBhcmEgcmVhbGl6YXIgbGFzIHBldGljaW9uZXNcblx0ICovXG5cdHB1YmxpYyBnZXQgQVBJX1VSTCgpOiBzdHJpbmcge1xuXHRcdC8vIFZlcmlmaWNhciBzaSBlc3RhbW9zIGVuIGVsIG5hdmVnYWRvciAobm8gZW4gU1NSKVxuXHRcdGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuXHRcdFx0Ly8gUHJpbWVybyBpbnRlbnRhIGxlZXIgZGUgd2luZG93Ll9fZW52IChjb25maWd1cmFkbyBwb3IgRG9ja2VyKVxuXHRcdFx0Y29uc3Qgd2luZG93RW52ID0gKHdpbmRvdyBhcyBhbnkpLl9fZW52O1xuXHRcdFx0aWYgKHdpbmRvd0Vudj8uYXBpVXJsKSB7XG5cdFx0XHRcdHJldHVybiB3aW5kb3dFbnYuYXBpVXJsO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHQvLyBGYWxsYmFjayBhbCBlbnZpcm9ubWVudCAocGFyYSBTU1IgeSBjb21vIGJhY2t1cClcblx0XHRyZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5hcGlVcmwgPz8gJyc7XG5cdH1cblx0LyoqXG5cdCAqIFJldG9ybmEgbGEgdXJsIGJhc2Vcblx0ICogQHJldHVybnMge3N0cmluZ31cblx0ICovXG5cdHB1YmxpYyBnZXRVcmxCYXNlKCk6IHN0cmluZyB7IFxuXHRcdHJldHVybiB0aGlzLkFQSV9VUkw7XG5cdH0gXG5cdC8qKlxuXHQgKiBDYW1iaWEgZWwgY2FuYWwgYWN0dWFsXG5cdCAqIEBwYXJhbSBjb2RlXG5cdCAqIEByZXR1cm5zIFxuXHQgKi9cblx0cHVibGljIHNldENoYW5uZWwoY29kZTogc3RyaW5nKTp2b2lkeyB0aGlzLkNIQU5ORUwgPSBjb2RlO30gXG5cblx0cHVibGljIHNldExvY2FsZShsb2NhbGU6IHN0cmluZyk6dm9pZHtcblx0XHR0aGlzLl9sb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLkxPQ0FMRV9LRVksIGxvY2FsZSk7XG5cdFx0dGhpcy5fdHJhbnNsYXRlLnVzZShsb2NhbGUuc3BsaXQoJ18nKVswXSlcblx0XHR0aGlzLkxPQ0FMRSA9IGxvY2FsZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBJbmRpY2Egc2kgbGEgYXBsaWNhY2nDs24gZXN0w6EgY29ycmllbmRvIGVuIHByb2R1Y2Npw7NuLlxuXHQgKi9cblx0cHVibGljIGdldCBJU19QUk9EVUNUSU9OKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLmVudmlyb25tZW50LnByb2R1Y3Rpb24gPT09IHRydWU7XG5cdH1cblxuXHQvL1N0b3JhZ2Uga2V5XG5cdHByaXZhdGUgcmVhZG9ubHkgTE9DQUxFX0tFWTpzdHJpbmcgPSAnTE9DQUxFJztcblx0cHJpdmF0ZSByZWFkb25seSBDSEFOTkVMX0tFWTpzdHJpbmcgPSAnQ0hBTk5FTCc7XG59XG4iXX0=
|
|
@@ -80,10 +80,6 @@ export class PaymentEcComponent {
|
|
|
80
80
|
return true;
|
|
81
81
|
};
|
|
82
82
|
verifyValidate = ($event) => {
|
|
83
|
-
if (!$event) {
|
|
84
|
-
this.setLoading(false);
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
83
|
this.setLoading(true);
|
|
88
84
|
setTimeout(() => this.emitResult(), 1000);
|
|
89
85
|
};
|
|
@@ -108,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
108
104
|
DecidirEcComponent
|
|
109
105
|
], template: "@if(methods$ | async; as methods){\n<div class=\"container-fluid\">\n\n\t<div class=\"row\">\n\t\t<div class=\"col-12\">\n\t\t\t<div class=\"card \">\n\t\t\t\t<div class=\"card-header text-dark text-center\">\n\t\t\t\t\t<h4>{{ 'select-method' | translate }}</h4>\n\t\t\t\t\t<div class=\"btn-toolbar justify-content-center\" role=\"toolbar\" aria-label=\"Envios toolbar\">\n\t\t\t\t\t\t<div class=\"\" role=\"group\" aria-label=\"Grupo botones envio\">\n\t\t\t\t\t\t\t<div class=\"d-flex align-content-start justify-content-center flex-wrap\">\n\t\t\t\t\t\t\t\t@for (method of methods; track $index; let x = $index) {\n\t\t\t\t\t\t\t\t<button type=\"button\" class=\"btn btn-outline-secondary mx-1 mb-1\"(click)=\"setMethod(method) ; setActive($event)\">\n\t\t\t\t\t\t\t\t\t{{ method.name | translate }}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"card-body text-center\">\n\t\t\t\t\t@if(methodData$ | async; as method){\n\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t@if(!loadingInternal){\n\t\t\t\t\t\t\t@if(isMP(method.code)){\n\t\t\t\t\t\t\t\t<div class=\"method-container text-dark\">\n\t\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<p id=\"faqs\" class=\"qt px-5 \">{{ method.description }}</p>\n\t\t\t\t\t\t\t\t\t\t\t<p class=\"px-5\">{{ method.instructions }}</p>\n\t\t\t\t\t\t\t\t\t\t<app-mp-redirect-ec (ready)=\"verifyValidate($event)\" \t[method]=\"method\"></app-mp-redirect-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t<!-- <div class=\"method-container text-dark text-left\" *ngIf=\"isMPTarjetaDeCredito(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t<p id=\"faqs\" class=\"qt px-5 \">{{ method.description }}</p>\n\t\t\t\t\t\t\t\t\t\t<p class=\"px-5\">{{ method.instructions }}</p>\n\t\t\t\t\t\t\t\t\t\t<div app-mp-credit-ec (ready)=\"verifyValidate()\" [public_key]=\"getPK(method)\"\n\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [total_amount]=\"total_amount\">\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isRedirectRedsys(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t\t\t\t\t*ngIf=\"!method.code.includes('bizum') && !method.code.includes('_out_')\">\n\t\t\t\t\t\t\t\t\t\t\t<app-redsys-redirect-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\">\n\t\t\t\t\t\t\t\t\t\t\t</app-redsys-redirect-ec>\n\t\t\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t\t\t\t\t*ngIf=\"method.code.includes('bizum') || method.code.includes('_out_')\">\n\t\t\t\t\t\t\t\t\t\t\t<app-redsys-redirect-out-ec (ready)=\"verifyValidate($event)\"\n\t\t\t\t\t\t\t\t\t\t\t\t[method]=\"method\" [user_data]=\"allData()\">\n\t\t\t\t\t\t\t\t\t\t\t</app-redsys-redirect-out-ec>\n\t\t\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isRedirectCecaBank(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t<app-ceca-redirect-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\">\n\t\t\t\t\t\t\t\t\t\t</app-ceca-redirect-ec>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isPeyPalExpress(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-paypal-express-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [total_amount]=\"total_amount\">\n\t\t\t\t\t\t\t\t\t\t\t</app-paypal-express-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isMobbex(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-mobbex-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [paymentServiceInst]=\"paymentService\"\n\t\t\t\t\t\t\t\t\t\t\t\t[total_amount]=\"total_amount\">\n\t\t\t\t\t\t\t\t\t\t\t</app-mobbex-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isBancard(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-bancard-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [paymentServiceInst]=\"paymentService\"\n\t\t\t\t\t\t\t\t\t\t\t\t[total_amount]=\"total_amount\">\n\t\t\t\t\t\t\t\t\t\t\t</app-bancard-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>-->\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isDecidir(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-decidir-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [paymentServiceInst]=\"_paymentService\"\n\t\t\t\t\t\t\t\t\t\t\t\t[total_amount]=\"total_amount\">\n\t\t\t\t\t\t\t\t\t\t\t</app-decidir-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div> \n\t\t\t\t\t\t\t@if(isMethodOffline(method.code)){\n\t\t\t\t\t\t\t<div class=\"method-container text-dark\">\n\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t<app-offline-ec \n\t\t\t\t\t\t\t\t\t\t[method]=\"method\" \n\t\t\t\t\t\t\t\t\t\t[verifyValidate]= \"verifyValidate\"\n\t\t\t\t\t\t\t\t\t\t[setLoading] = \"setLoading\" />\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<!--\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isCulqi(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-culqi-ec [apiKey]=\"getPKCulqi(method)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[amount]=\"total_amount\" [customStyle]=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\t(ready)=\"verifyValidate()\"></app-culqi-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isCatastro(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-bancard-catastro-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [paymentServiceInst]=\"paymentService\"\n\t\t\t\t\t\t\t\t\t\t\t\t[total_amount]=\"total_amount\"></app-bancard-catastro-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isBamboo(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-bamboo-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [paymentServiceInst]=\"paymentService\"\n\t\t\t\t\t\t\t\t\t\t\t\t[total_amount]=\"total_amount\"></app-bamboo-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div> -->\n\t\t\t\t\t\t\t@if(isBankTransfer(method.code)){\n\t\t\t\t\t\t\t\t<div class=\"method-container text-dark\">\n\t\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-bank-transfer-ec \n\t\t\t\t\t\t\t\t\t\t\t\t[method]=\"method\" \n\t\t\t\t\t\t\t\t\t\t\t\t[verifyValidate]= \"verifyValidate\"\n\t\t\t\t\t\t\t\t\t\t\t\t[setLoading] = \"setLoading\" />\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t<app-loading-inline-ec></app-loading-inline-ec>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"row d-flex flex-row\">\n\t\t\t\t<div class=\"col-12 d-flex justify-content-between\">\n\t\t\t\t\t<button class=\"btn btn-primary text-white\" (click)=\"goBack()\">{{'back'|translate}}</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n}" }]
|
|
110
106
|
}], ctorParameters: () => [] });
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9jaGVja291dC1lYy9wYXltZW50LWVjL3BheW1lbnQtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2hlY2tvdXQtZWMvcGF5bWVudC1lYy9wYXltZW50LWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUN4RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFrQm5ELE1BQU0sT0FBTyxrQkFBa0I7SUFFdkIsZUFBZSxHQUFtQixNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDdkQsZ0JBQWdCLEdB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QUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQzdFLGVBQWUsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO1FBQ2xDLE1BQU0sU0FBUyxHQUFHLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDNUMsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEUsQ0FBQyxDQUFBO0lBQ0QsUUFBUSxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNyRSxTQUFTLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ3ZFLFNBQVMsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDdkUsT0FBTyxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNuRSxjQUFjLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBQ2xGLFVBQVUsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDekUsUUFBUSxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUVyRSxPQUFPO1FBQ04sT0FBTztZQUNOLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxlQUFlO1lBQ3JELEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLEVBQUU7U0FDekMsQ0FBQztJQUNILENBQUM7SUFDRCxVQUFVLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFDdkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFDbkUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN0QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDWixDQUFDLENBQUE7SUFFTSxVQUFVLEdBQUcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxFQUFFLEVBQUU7UUFDckMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDLENBQUE7SUFFTSxjQUFjLEdBQUcsQ0FBQyxNQUFXLEVBQUUsRUFBRTtRQUN2QyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZCLE9BQU87UUFDUixDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNyQixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUMsQ0FBQTtJQUVNLElBQUksR0FBRyxHQUFHLEVBQUU7UUFDbEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFBO0lBQzdCLENBQUMsQ0FBQTtJQUVNLE1BQU0sR0FBRyxHQUFHLEVBQUU7UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFBO0lBQzdCLENBQUMsQ0FBQTt3R0E5Rlcsa0JBQWtCOzRGQUFsQixrQkFBa0IsMEVDM0IvQiw0elNBa01DLHFERGpMVSxTQUFTLDZDQUNsQixZQUFZLGtJQUNaLGVBQWUsNEZBQ2Ysd0JBQXdCLG9GQUN4QixxQkFBcUIsa0lBQ3JCLHVCQUF1QixxSEFDdkIsa0JBQWtCLCtHQUNsQixrQkFBa0I7OzRGQUdQLGtCQUFrQjtrQkFmOUIsU0FBUzsrQkFDQyxnQkFBZ0IsY0FDZCxJQUFJLFdBR1AsQ0FBQyxTQUFTO3dCQUNsQixZQUFZO3dCQUNaLGVBQWU7d0JBQ2Ysd0JBQXdCO3dCQUN4QixxQkFBcUI7d0JBQ3JCLHVCQUF1Qjt3QkFDdkIsa0JBQWtCO3dCQUNsQixrQkFBa0I7cUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2hlY2tvdXRTZXJ2aWNlLCBQYXltZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2VjLXNlcnZpY2VzJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMb2FkaW5nSW5saW5lRWNDb21wb25lbnQgfSBmcm9tICcuLi8uLi93aWRnZXRzLWVjJztcbmltcG9ydCB7IE1wUmVkaXJlY3RFY0NvbXBvbmVudCwgT2ZmbGluZUVjQ29tcG9uZW50IH0gZnJvbSAnLi9wYXltZW50LW1ldGhvZHMnO1xuaW1wb3J0IHsgQmFua1RyYW5zZmVyRWNDb21wb25lbnQgfSBmcm9tICcuL3BheW1lbnQtbWV0aG9kcy9iYW5rLXRyYW5zZmVyLWVjL2JhbmstdHJhbnNmZXItZWMuY29tcG9uZW50JztcbmltcG9ydCB7IERlY2lkaXJFY0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL3dpZGdldHMtZWMvZGVjaWRpci1lYy9kZWNpZGlyLWVjLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2VjLXNlcnZpY2VzJztcbmltcG9ydCB7IENoZWNrb3V0RGF0YSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdhcHAtcGF5bWVudC1lYycsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlVXJsOiAnLi9wYXltZW50LWVjLmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmxzOiBbJy4vcGF5bWVudC1lYy5jb21wb25lbnQuc2NzcyddLFxuXHRpbXBvcnRzOiBbQXN5bmNQaXBlLFxuXHRcdENvbW1vbk1vZHVsZSxcblx0XHRUcmFuc2xhdGVNb2R1bGUsXG5cdFx0TG9hZGluZ0lubGluZUVjQ29tcG9uZW50LFxuXHRcdE1wUmVkaXJlY3RFY0NvbXBvbmVudCxcblx0XHRCYW5rVHJhbnNmZXJFY0NvbXBvbmVudCxcblx0XHRPZmZsaW5lRWNDb21wb25lbnQsXG5cdFx0RGVjaWRpckVjQ29tcG9uZW50XG5cdF1cbn0pXG5leHBvcnQgY2xhc3MgUGF5bWVudEVjQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuXHRwdWJsaWMgX3BheW1lbnRTZXJ2aWNlOiBQYXltZW50U2VydmljZSA9IGluamVjdChQYXltZW50U2VydmljZSlcblx0cHJpdmF0ZSBfY2hlY2tvdXRTZXJ2aWNlOiBDaGVja291dFNlcnZpY2UgPSBpbmplY3QoQ2hlY2tvdXRTZXJ2aWNlKVxuXHRwcml2YXRlIF9jYXJ0U2VydmljZTogQ2FydFNlcnZpY2UgPSBpbmplY3QoQ2FydFNlcnZpY2UpO1xuXG5cdHByaXZhdGUgX21ldGhvZERhdGFTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xuXHRwcml2YXRlIF9sb2FkaW5nU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG5cdHB1YmxpYyBtZXRob2RzJCA9IHRoaXMuX3BheW1lbnRTZXJ2aWNlLm1ldGhvZHMkO1xuXHRwdWJsaWMgbG9hZGluZyQgPSB0aGlzLl9sb2FkaW5nU3ViamVjdC5hc09ic2VydmFibGUoKTtcblx0cHVibGljIG1ldGhvZERhdGEkID0gdGhpcy5fbWV0aG9kRGF0YVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cblx0cHVibGljIGxvYWRpbmdJbnRlcm5hbDogYm9vbGVhbiA9IGZhbHNlO1xuXHRwdWJsaWMgdG90YWxfYW1vdW50OiBudW1iZXIgPSAwO1xuXG5cdGNvbnN0cnVjdG9yKCkgeyB9XG5cblx0bmdPbkluaXQoKSB7XG5cdFx0dGhpcy5fY2hlY2tvdXRTZXJ2aWNlLmFzc29jaWF0ZWREYXRhJC5zdWJzY3JpYmUoKGRhdGE6IENoZWNrb3V0RGF0YVtdKSA9PiB7XG5cdFx0XHRjb25zdCB0b3RhbEl0ZW0gPSBkYXRhLmZpbmQoaXRlbSA9PiBpdGVtLnR5cGUgPT0gJ3RvdGFsJyk7XG5cdFx0XHR0aGlzLnRvdGFsX2Ftb3VudCA9IHRvdGFsSXRlbT8uYW1vdW50ID8/IDA7XG5cdFx0fSlcblxuXHRcdC8vIGNvbnNvbGUubG9nKCdQYXltZW50RWNDb21wb25lbnQgaW5pdGlhbGl6ZWQgd2l0aCB0b3RhbF9hbW91bnQ6JywgdGhpcy50b3RhbF9hbW91bnQpO1xuXHR9XG5cdHNldEFjdGl2ZSgkZXZlbnQ6IGFueSkge1xuXHRcdGNvbnN0IHBhcmVudCA9ICRldmVudC50YXJnZXQucGFyZW50RWxlbWVudC5jaGlsZHJlbjtcblx0XHRmb3IgKGNvbnN0IGJ1dHRvbiBvZiBwYXJlbnQpIHtcblx0XHRcdGlmIChidXR0b24uY2xhc3NMaXN0LmNvbnRhaW5zKCdhY3RpdmUnKSkge1xuXHRcdFx0XHRidXR0b24uY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJylcblx0XHRcdH1cblx0XHR9XG5cdFx0JGV2ZW50LnRhcmdldC5jbGFzc0xpc3QuYWRkKFwiYWN0aXZlXCIpXG5cdH1cblx0YXN5bmMgc2V0TWV0aG9kKG1ldGhvZDogYW55KSB7XG5cdFx0dGhpcy5fbWV0aG9kRGF0YVN1YmplY3QubmV4dChudWxsKTtcblx0XHRsZXQgcmVzdWx0ID0gYXdhaXQgdGhpcy5fcGF5bWVudFNlcnZpY2UucHV0UGF5bWVudChtZXRob2QuY29kZSk7XG5cdFx0dGhpcy5fbWV0aG9kRGF0YVN1YmplY3QubmV4dChtZXRob2QpO1xuXHR9XG5cblx0Ly9GdW5jaW9uZXMgcGFyYSBjaGVxdWVhciBlbCBtZXRvZG8gZGUgcGFnby5cblx0aXNSZWRpcmVjdFJlZHN5cyA9IChjb2RlOiBzdHJpbmcpID0+ICEhY29kZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcygncmVkc3lzX3JlZGlyZWN0Jylcblx0aXNSZWRpcmVjdENlY2FCYW5rID0gKGNvZGU6IHN0cmluZykgPT4gISFjb2RlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdjZWNhX2JhbmtfcmVkaXJlY3QnKVxuXHRpc01QID0gKGNvZGU6IHN0cmluZykgPT4ge1xuXHRcdGNvbnN0IGxvd2VyQ29kZSA9IGNvZGU/LnRvTG93ZXJDYXNlKCkgfHwgJyc7XG5cdFx0cmV0dXJuIGxvd2VyQ29kZS5pbmNsdWRlcygnbWVyY2Fkb19wYWdvJykgJiYgIWxvd2VyQ29kZS5pbmNsdWRlcygnY3JlZGl0Jyk7XG5cdH1cblx0aXNNUFRhcmpldGFEZUNyZWRpdG8gPSAoY29kZTogc3RyaW5nKSA9PiAhIWNvZGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2NyZWRpdCcpXG5cdGlzTWV0aG9kT2ZmbGluZSA9IChjb2RlOiBzdHJpbmcpID0+ICEhY29kZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnb2ZmbGluZScpXG5cdGlzUGV5UGFsRXhwcmVzcyA9IChjb2RlOiBzdHJpbmcpID0+IHtcblx0XHRjb25zdCBsb3dlckNvZGUgPSBjb2RlPy50b0xvd2VyQ2FzZSgpIHx8ICcnO1xuXHRcdHJldHVybiBsb3dlckNvZGUuaW5jbHVkZXMoJ3BheXBhbCcpICYmIGxvd2VyQ29kZS5pbmNsdWRlcygnZXhwcmVzcycpO1xuXHR9XG5cdGlzTW9iYmV4ID0gKGNvZGU6IHN0cmluZykgPT4gISFjb2RlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdtb2JiZXgnKVxuXHRpc0JhbmNhcmQgPSAoY29kZTogc3RyaW5nKSA9PiAhIWNvZGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2JhbmNhcmQnKVxuXHRpc0RlY2lkaXIgPSAoY29kZTogc3RyaW5nKSA9PiAhIWNvZGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2RlY2lkaXInKVxuXHRpc0N1bHFpID0gKGNvZGU6IHN0cmluZykgPT4gISFjb2RlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdjdWxxaScpXG5cdGlzQmFua1RyYW5zZmVyID0gKGNvZGU6IHN0cmluZykgPT4gISFjb2RlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdiYW5rX3RyYW5zZmVyJylcblx0aXNDYXRhc3RybyA9IChjb2RlOiBzdHJpbmcpID0+ICEhY29kZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnY2F0YXN0cm8nKVxuXHRpc0JhbWJvbyA9IChjb2RlOiBzdHJpbmcpID0+ICEhY29kZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnYmFtYm9vJylcblxuXHRhbGxEYXRhKCk6IGFueSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdC4uLnRoaXMuX3BheW1lbnRTZXJ2aWNlLmdldFVzZXJEYXRhKCkuc2hpcHBpbmdBZGRyZXNzLFxuXHRcdFx0Li4udGhpcy5fcGF5bWVudFNlcnZpY2UuZ2V0U2hpcG1lbnREYXRhKCksXG5cdFx0fTtcblx0fVxuXHRlbWl0UmVzdWx0ID0gYXN5bmMgKCkgPT4ge1xuXHRcdHRoaXMuX3BheW1lbnRTZXJ2aWNlLnNldFBheW1lbnQodGhpcy5fbWV0aG9kRGF0YVN1YmplY3QuZ2V0VmFsdWUoKSlcblx0XHR0aGlzLnNldExvYWRpbmcoZmFsc2UpXG5cdFx0dGhpcy5uZXh0KClcblx0fVxuXG5cdHB1YmxpYyBzZXRMb2FkaW5nID0gKGVzdGFkbyA9IHRydWUpID0+IHtcblx0XHR0aGlzLl9sb2FkaW5nU3ViamVjdC5uZXh0KGVzdGFkbyk7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblxuXHRwdWJsaWMgdmVyaWZ5VmFsaWRhdGUgPSAoJGV2ZW50OiBhbnkpID0+IHtcblx0XHRpZiAoISRldmVudCkge1xuXHRcdFx0dGhpcy5zZXRMb2FkaW5nKGZhbHNlKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy5zZXRMb2FkaW5nKHRydWUpXG5cdFx0c2V0VGltZW91dCgoKSA9PiB0aGlzLmVtaXRSZXN1bHQoKSwgMTAwMCk7XG5cdH1cblxuXHRwdWJsaWMgbmV4dCA9ICgpID0+IHtcblx0XHR0aGlzLl9jaGVja291dFNlcnZpY2UubmV4dCgpXG5cdH1cblxuXHRwdWJsaWMgZ29CYWNrID0gKCkgPT4ge1xuXHRcdHRoaXMuX2NoZWNrb3V0U2VydmljZS5iYWNrKClcblx0fVxufVxuIiwiQGlmKG1ldGhvZHMkIHwgYXN5bmM7IGFzIG1ldGhvZHMpe1xuPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxuXG5cdDxkaXYgY2xhc3M9XCJyb3dcIj5cblx0XHQ8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY2FyZCBcIj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIHRleHQtZGFyayB0ZXh0LWNlbnRlclwiPlxuXHRcdFx0XHRcdDxoND57eyAnc2VsZWN0LW1ldGhvZCcgfCB0cmFuc2xhdGUgfX08L2g0PlxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJidG4tdG9vbGJhciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgcm9sZT1cInRvb2xiYXJcIiBhcmlhLWxhYmVsPVwiRW52aW9zIHRvb2xiYXJcIj5cblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJcIiByb2xlPVwiZ3JvdXBcIiBhcmlhLWxhYmVsPVwiR3J1cG8gYm90b25lcyBlbnZpb1wiPlxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWNvbnRlbnQtc3RhcnQganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LXdyYXBcIj5cblx0XHRcdFx0XHRcdFx0XHRAZm9yIChtZXRob2Qgb2YgbWV0aG9kczsgdHJhY2sgJGluZGV4OyBsZXQgeCA9ICRpbmRleCkge1xuXHRcdFx0XHRcdFx0XHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBteC0xIG1iLTFcIihjbGljayk9XCJzZXRNZXRob2QobWV0aG9kKSA7IHNldEFjdGl2ZSgkZXZlbnQpXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHR7eyBtZXRob2QubmFtZSB8IHRyYW5zbGF0ZSB9fVxuXHRcdFx0XHRcdFx0XHRcdDwvYnV0dG9uPlxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgdGV4dC1jZW50ZXJcIj5cblx0XHRcdFx0XHRAaWYobWV0aG9kRGF0YSQgfCBhc3luYzsgYXMgbWV0aG9kKXtcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cblx0XHRcdFx0XHRcdEBpZighbG9hZGluZ0ludGVybmFsKXtcblx0XHRcdFx0XHRcdFx0QGlmKGlzTVAobWV0aG9kLmNvZGUpKXtcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWV0aG9kLWNvbnRhaW5lciB0ZXh0LWRhcmtcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJyb3dcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxwIGlkPVwiZmFxc1wiIGNsYXNzPVwicXQgcHgtNSBcIj57eyBtZXRob2QuZGVzY3JpcHRpb24gfX08L3A+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHAgY2xhc3M9XCJweC01XCI+e3sgbWV0aG9kLmluc3RydWN0aW9ucyB9fTwvcD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGFwcC1tcC1yZWRpcmVjdC1lYyAocmVhZHkpPVwidmVyaWZ5VmFsaWRhdGUoJGV2ZW50KVwiIFx0W21ldGhvZF09XCJtZXRob2RcIj48L2FwcC1tcC1yZWRpcmVjdC1lYz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHQ8IS0tIDxkaXYgY2xhc3M9XCJtZXRob2QtY29udGFpbmVyIHRleHQtZGFyayB0ZXh0LWxlZnRcIiAqbmdJZj1cImlzTVBUYXJqZXRhRGVDcmVkaXRvKG1ldGhvZC5jb2RlKVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJyb3dcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PHAgaWQ9XCJmYXFzXCIgY2xhc3M9XCJxdCBweC01IFwiPnt7IG1ldGhvZC5kZXNjcmlwdGlvbiB9fTwvcD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PHAgY2xhc3M9XCJweC01XCI+e3sgbWV0aG9kLmluc3RydWN0aW9ucyB9fTwvcD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBhcHAtbXAtY3JlZGl0LWVjIChyZWFkeSk9XCJ2ZXJpZnlWYWxpZGF0ZSgpXCIgW3B1YmxpY19rZXldPVwiZ2V0UEsobWV0aG9kKVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3VzZXJfZGF0YV09XCJhbGxEYXRhKClcIiBbdG90YWxfYW1vdW50XT1cInRvdGFsX2Ftb3VudFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm1ldGhvZC1jb250YWluZXIgdGV4dC1kYXJrIHRleHQtc3RhcnRcIiAqbmdJZj1cImlzUmVkaXJlY3RSZWRzeXMobWV0aG9kLmNvZGUpXCI+XG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInJvd1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Km5nSWY9XCIhbWV0aG9kLmNvZGUuaW5jbHVkZXMoJ2JpenVtJykgJiYgIW1ldGhvZC5jb2RlLmluY2x1ZGVzKCdfb3V0XycpXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGFwcC1yZWRzeXMtcmVkaXJlY3QtZWMgKHJlYWR5KT1cInZlcmlmeVZhbGlkYXRlKCRldmVudClcIiBbbWV0aG9kXT1cIm1ldGhvZFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbdXNlcl9kYXRhXT1cImFsbERhdGEoKVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvYXBwLXJlZHN5cy1yZWRpcmVjdC1lYz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQqbmdJZj1cIm1ldGhvZC5jb2RlLmluY2x1ZGVzKCdiaXp1bScpIHx8IG1ldGhvZC5jb2RlLmluY2x1ZGVzKCdfb3V0XycpXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGFwcC1yZWRzeXMtcmVkaXJlY3Qtb3V0LWVjIChyZWFkeSk9XCJ2ZXJpZnlWYWxpZGF0ZSgkZXZlbnQpXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFttZXRob2RdPVwibWV0aG9kXCIgW3VzZXJfZGF0YV09XCJhbGxEYXRhKClcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2FwcC1yZWRzeXMtcmVkaXJlY3Qtb3V0LWVjPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm1ldGhvZC1jb250YWluZXIgdGV4dC1kYXJrIHRleHQtc3RhcnRcIiAqbmdJZj1cImlzUmVkaXJlY3RDZWNhQmFuayhtZXRob2QuY29kZSlcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxhcHAtY2VjYS1yZWRpcmVjdC1lYyAocmVhZHkpPVwidmVyaWZ5VmFsaWRhdGUoJGV2ZW50KVwiIFttZXRob2RdPVwibWV0aG9kXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbdXNlcl9kYXRhXT1cImFsbERhdGEoKVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2FwcC1jZWNhLXJlZGlyZWN0LWVjPlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWV0aG9kLWNvbnRhaW5lciB0ZXh0LWRhcmsgdGV4dC1zdGFydFwiICpuZ0lmPVwiaXNQZXlQYWxFeHByZXNzKG1ldGhvZC5jb2RlKVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGFwcC1wYXlwYWwtZXhwcmVzcy1lYyAocmVhZHkpPVwidmVyaWZ5VmFsaWRhdGUoJGV2ZW50KVwiIFttZXRob2RdPVwibWV0aG9kXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFt1c2VyX2RhdGFdPVwiYWxsRGF0YSgpXCIgW3RvdGFsX2Ftb3VudF09XCJ0b3RhbF9hbW91bnRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2FwcC1wYXlwYWwtZXhwcmVzcy1lYz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJtZXRob2QtY29udGFpbmVyIHRleHQtZGFyayB0ZXh0LXN0YXJ0XCIgKm5nSWY9XCJpc01vYmJleChtZXRob2QuY29kZSlcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxhcHAtbW9iYmV4LWVjIChyZWFkeSk9XCJ2ZXJpZnlWYWxpZGF0ZSgkZXZlbnQpXCIgW21ldGhvZF09XCJtZXRob2RcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3VzZXJfZGF0YV09XCJhbGxEYXRhKClcIiBbcGF5bWVudFNlcnZpY2VJbnN0XT1cInBheW1lbnRTZXJ2aWNlXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFt0b3RhbF9hbW91bnRdPVwidG90YWxfYW1vdW50XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9hcHAtbW9iYmV4LWVjPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm1ldGhvZC1jb250YWluZXIgdGV4dC1kYXJrIHRleHQtc3RhcnRcIiAqbmdJZj1cImlzQmFuY2FyZChtZXRob2QuY29kZSlcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxhcHAtYmFuY2FyZC1lYyAocmVhZHkpPVwidmVyaWZ5VmFsaWRhdGUoJGV2ZW50KVwiIFttZXRob2RdPVwibWV0aG9kXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFt1c2VyX2RhdGFdPVwiYWxsRGF0YSgpXCIgW3BheW1lbnRTZXJ2aWNlSW5zdF09XCJwYXltZW50U2VydmljZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbdG90YWxfYW1vdW50XT1cInRvdGFsX2Ftb3VudFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvYXBwLWJhbmNhcmQtZWM+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDwvZGl2Pi0tPlxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWV0aG9kLWNvbnRhaW5lciB0ZXh0LWRhcmsgdGV4dC1zdGFydFwiICpuZ0lmPVwiaXNEZWNpZGlyKG1ldGhvZC5jb2RlKVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGFwcC1kZWNpZGlyLWVjIChyZWFkeSk9XCJ2ZXJpZnlWYWxpZGF0ZSgkZXZlbnQpXCIgW21ldGhvZF09XCJtZXRob2RcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3VzZXJfZGF0YV09XCJhbGxEYXRhKClcIiBbcGF5bWVudFNlcnZpY2VJbnN0XT1cIl9wYXltZW50U2VydmljZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbdG90YWxfYW1vdW50XT1cInRvdGFsX2Ftb3VudFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvYXBwLWRlY2lkaXItZWM+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDwvZGl2PiBcblx0XHRcdFx0XHRcdFx0QGlmKGlzTWV0aG9kT2ZmbGluZShtZXRob2QuY29kZSkpe1xuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWV0aG9kLWNvbnRhaW5lciB0ZXh0LWRhcmtcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxhcHAtb2ZmbGluZS1lYyBcblx0XHRcdFx0XHRcdFx0XHRcdFx0W21ldGhvZF09XCJtZXRob2RcIiBcblx0XHRcdFx0XHRcdFx0XHRcdFx0W3ZlcmlmeVZhbGlkYXRlXT0gXCJ2ZXJpZnlWYWxpZGF0ZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFtzZXRMb2FkaW5nXSA9IFwic2V0TG9hZGluZ1wiIC8+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PC9kaXY+XHRcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0PCEtLVxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWV0aG9kLWNvbnRhaW5lciB0ZXh0LWRhcmsgdGV4dC1zdGFydFwiICpuZ0lmPVwiaXNDdWxxaShtZXRob2QuY29kZSlcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxhcHAtY3VscWktZWMgW2FwaUtleV09XCJnZXRQS0N1bHFpKG1ldGhvZClcIiBbbWV0aG9kXT1cIm1ldGhvZFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbYW1vdW50XT1cInRvdGFsX2Ftb3VudFwiIFtjdXN0b21TdHlsZV09XCJ0cnVlXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdChyZWFkeSk9XCJ2ZXJpZnlWYWxpZGF0ZSgpXCI+PC9hcHAtY3VscWktZWM+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWV0aG9kLWNvbnRhaW5lciB0ZXh0LWRhcmsgdGV4dC1zdGFydFwiICpuZ0lmPVwiaXNDYXRhc3RybyhtZXRob2QuY29kZSlcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxhcHAtYmFuY2FyZC1jYXRhc3Ryby1lYyAocmVhZHkpPVwidmVyaWZ5VmFsaWRhdGUoJGV2ZW50KVwiIFttZXRob2RdPVwibWV0aG9kXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFt1c2VyX2RhdGFdPVwiYWxsRGF0YSgpXCIgW3BheW1lbnRTZXJ2aWNlSW5zdF09XCJwYXltZW50U2VydmljZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbdG90YWxfYW1vdW50XT1cInRvdGFsX2Ftb3VudFwiPjwvYXBwLWJhbmNhcmQtY2F0YXN0cm8tZWM+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWV0aG9kLWNvbnRhaW5lciB0ZXh0LWRhcmsgdGV4dC1zdGFydFwiICpuZ0lmPVwiaXNCYW1ib28obWV0aG9kLmNvZGUpXCI+XG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8YXBwLWJhbWJvby1lYyAocmVhZHkpPVwidmVyaWZ5VmFsaWRhdGUoJGV2ZW50KVwiIFttZXRob2RdPVwibWV0aG9kXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFt1c2VyX2RhdGFdPVwiYWxsRGF0YSgpXCIgW3BheW1lbnRTZXJ2aWNlSW5zdF09XCJwYXltZW50U2VydmljZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbdG90YWxfYW1vdW50XT1cInRvdGFsX2Ftb3VudFwiPjwvYXBwLWJhbWJvby1lYz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PC9kaXY+IC0tPlxuXHRcdFx0XHRcdFx0XHRAaWYoaXNCYW5rVHJhbnNmZXIobWV0aG9kLmNvZGUpKXtcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWV0aG9kLWNvbnRhaW5lciB0ZXh0LWRhcmtcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJyb3dcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxhcHAtYmFuay10cmFuc2Zlci1lYyBcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFttZXRob2RdPVwibWV0aG9kXCIgXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbdmVyaWZ5VmFsaWRhdGVdPSBcInZlcmlmeVZhbGlkYXRlXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFtzZXRMb2FkaW5nXSA9IFwic2V0TG9hZGluZ1wiIC8+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdFx0XHQ8YXBwLWxvYWRpbmctaW5saW5lLWVjPjwvYXBwLWxvYWRpbmctaW5saW5lLWVjPlxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdH1cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgY2xhc3M9XCJyb3cgZC1mbGV4IGZsZXgtcm93XCI+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtMTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XG5cdFx0XHRcdFx0PGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB0ZXh0LXdoaXRlXCIgKGNsaWNrKT1cImdvQmFjaygpXCI+e3snYmFjayd8dHJhbnNsYXRlfX08L2J1dHRvbj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG48L2Rpdj5cbn0iXX0=
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9jaGVja291dC1lYy9wYXltZW50LWVjL3BheW1lbnQtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2hlY2tvdXQtZWMvcGF5bWVudC1lYy9wYXltZW50LWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUN4RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFrQm5ELE1BQU0sT0FBTyxrQkFBa0I7SUFFdkIsZUFBZSxHQUFtQixNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDdkQsZ0JBQWdCLEdB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QUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQzdFLGVBQWUsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO1FBQ2xDLE1BQU0sU0FBUyxHQUFHLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDNUMsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEUsQ0FBQyxDQUFBO0lBQ0QsUUFBUSxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNyRSxTQUFTLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ3ZFLFNBQVMsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDdkUsT0FBTyxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNuRSxjQUFjLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBQ2xGLFVBQVUsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDekUsUUFBUSxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUVyRSxPQUFPO1FBQ04sT0FBTztZQUNOLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxlQUFlO1lBQ3JELEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLEVBQUU7U0FDekMsQ0FBQztJQUNILENBQUM7SUFDRCxVQUFVLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFDdkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFDbkUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN0QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDWixDQUFDLENBQUE7SUFFTSxVQUFVLEdBQUcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxFQUFFLEVBQUU7UUFDckMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDLENBQUE7SUFFTSxjQUFjLEdBQUcsQ0FBQyxNQUFVLEVBQUUsRUFBRTtRQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3JCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQyxDQUFBO0lBRU0sSUFBSSxHQUFHLEdBQUcsRUFBRTtRQUNsQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDN0IsQ0FBQyxDQUFBO0lBRU0sTUFBTSxHQUFHLEdBQUcsRUFBRTtRQUNwQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDN0IsQ0FBQyxDQUFBO3dHQTFGVyxrQkFBa0I7NEZBQWxCLGtCQUFrQiwwRUMzQi9CLDR6U0FrTUMscUREakxVLFNBQVMsNkNBQ2xCLFlBQVksa0lBQ1osZUFBZSw0RkFDZix3QkFBd0Isb0ZBQ3hCLHFCQUFxQixrSUFDckIsdUJBQXVCLHFIQUN2QixrQkFBa0IsK0dBQ2xCLGtCQUFrQjs7NEZBR1Asa0JBQWtCO2tCQWY5QixTQUFTOytCQUNDLGdCQUFnQixjQUNkLElBQUksV0FHUCxDQUFDLFNBQVM7d0JBQ2xCLFlBQVk7d0JBQ1osZUFBZTt3QkFDZix3QkFBd0I7d0JBQ3hCLHFCQUFxQjt3QkFDckIsdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLGtCQUFrQjtxQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDaGVja291dFNlcnZpY2UsIFBheW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZWMtc2VydmljZXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExvYWRpbmdJbmxpbmVFY0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL3dpZGdldHMtZWMnO1xuaW1wb3J0IHsgTXBSZWRpcmVjdEVjQ29tcG9uZW50LCBPZmZsaW5lRWNDb21wb25lbnQgfSBmcm9tICcuL3BheW1lbnQtbWV0aG9kcyc7XG5pbXBvcnQgeyBCYW5rVHJhbnNmZXJFY0NvbXBvbmVudCB9IGZyb20gJy4vcGF5bWVudC1tZXRob2RzL2JhbmstdHJhbnNmZXItZWMvYmFuay10cmFuc2Zlci1lYy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGVjaWRpckVjQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vd2lkZ2V0cy1lYy9kZWNpZGlyLWVjL2RlY2lkaXItZWMuY29tcG9uZW50JztcbmltcG9ydCB7IENhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZWMtc2VydmljZXMnO1xuaW1wb3J0IHsgQ2hlY2tvdXREYXRhIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2FwcC1wYXltZW50LWVjJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGVVcmw6ICcuL3BheW1lbnQtZWMuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9wYXltZW50LWVjLmNvbXBvbmVudC5zY3NzJ10sXG5cdGltcG9ydHM6IFtBc3luY1BpcGUsXG5cdFx0Q29tbW9uTW9kdWxlLFxuXHRcdFRyYW5zbGF0ZU1vZHVsZSxcblx0XHRMb2FkaW5nSW5saW5lRWNDb21wb25lbnQsXG5cdFx0TXBSZWRpcmVjdEVjQ29tcG9uZW50LFxuXHRcdEJhbmtUcmFuc2ZlckVjQ29tcG9uZW50LFxuXHRcdE9mZmxpbmVFY0NvbXBvbmVudCxcblx0XHREZWNpZGlyRWNDb21wb25lbnRcblx0XVxufSlcbmV4cG9ydCBjbGFzcyBQYXltZW50RWNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG5cdHB1YmxpYyBfcGF5bWVudFNlcnZpY2U6IFBheW1lbnRTZXJ2aWNlID0gaW5qZWN0KFBheW1lbnRTZXJ2aWNlKVxuXHRwcml2YXRlIF9jaGVja291dFNlcnZpY2U6IENoZWNrb3V0U2VydmljZSA9IGluamVjdChDaGVja291dFNlcnZpY2UpXG5cdHByaXZhdGUgX2NhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSA9IGluamVjdChDYXJ0U2VydmljZSk7XG5cblx0cHJpdmF0ZSBfbWV0aG9kRGF0YVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XG5cdHByaXZhdGUgX2xvYWRpbmdTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cblx0cHVibGljIG1ldGhvZHMkID0gdGhpcy5fcGF5bWVudFNlcnZpY2UubWV0aG9kcyQ7XG5cdHB1YmxpYyBsb2FkaW5nJCA9IHRoaXMuX2xvYWRpbmdTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXHRwdWJsaWMgbWV0aG9kRGF0YSQgPSB0aGlzLl9tZXRob2REYXRhU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuXHRwdWJsaWMgbG9hZGluZ0ludGVybmFsOiBib29sZWFuID0gZmFsc2U7XG5cdHB1YmxpYyB0b3RhbF9hbW91bnQ6IG51bWJlciA9IDA7XG5cblx0Y29uc3RydWN0b3IoKSB7IH1cblxuXHRuZ09uSW5pdCgpIHtcblx0XHRcdFx0dGhpcy5fY2hlY2tvdXRTZXJ2aWNlLmFzc29jaWF0ZWREYXRhJC5zdWJzY3JpYmUoKGRhdGE6IENoZWNrb3V0RGF0YVtdKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgdG90YWxJdGVtID0gZGF0YS5maW5kKGl0ZW0gPT4gaXRlbS50eXBlID09ICd0b3RhbCcpO1xuXHRcdFx0XHRcdHRoaXMudG90YWxfYW1vdW50ID0gdG90YWxJdGVtPy5hbW91bnQgPz8gMDtcblx0XHRcdFx0fSlcblxuXHRcdC8vIGNvbnNvbGUubG9nKCdQYXltZW50RWNDb21wb25lbnQgaW5pdGlhbGl6ZWQgd2l0aCB0b3RhbF9hbW91bnQ6JywgdGhpcy50b3RhbF9hbW91bnQpO1xuXHR9XG5cdHNldEFjdGl2ZSgkZXZlbnQ6IGFueSkge1xuXHRcdGNvbnN0IHBhcmVudCA9ICRldmVudC50YXJnZXQucGFyZW50RWxlbWVudC5jaGlsZHJlbjtcblx0XHRmb3IgKGNvbnN0IGJ1dHRvbiBvZiBwYXJlbnQpIHtcblx0XHRcdGlmIChidXR0b24uY2xhc3NMaXN0LmNvbnRhaW5zKCdhY3RpdmUnKSkge1xuXHRcdFx0XHRidXR0b24uY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJylcblx0XHRcdH1cblx0XHR9XG5cdFx0JGV2ZW50LnRhcmdldC5jbGFzc0xpc3QuYWRkKFwiYWN0aXZlXCIpXG5cdH1cblx0YXN5bmMgc2V0TWV0aG9kKG1ldGhvZDogYW55KSB7XG5cdFx0dGhpcy5fbWV0aG9kRGF0YVN1YmplY3QubmV4dChudWxsKTtcblx0XHRsZXQgcmVzdWx0ID0gYXdhaXQgdGhpcy5fcGF5bWVudFNlcnZpY2UucHV0UGF5bWVudChtZXRob2QuY29kZSk7XG5cdFx0dGhpcy5fbWV0aG9kRGF0YVN1YmplY3QubmV4dChtZXRob2QpO1xuXHR9XG5cblx0Ly9GdW5jaW9uZXMgcGFyYSBjaGVxdWVhciBlbCBtZXRvZG8gZGUgcGFnby5cblx0aXNSZWRpcmVjdFJlZHN5cyA9IChjb2RlOiBzdHJpbmcpID0+ICEhY29kZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcygncmVkc3lzX3JlZGlyZWN0Jylcblx0aXNSZWRpcmVjdENlY2FCYW5rID0gKGNvZGU6IHN0cmluZykgPT4gISFjb2RlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdjZWNhX2JhbmtfcmVkaXJlY3QnKVxuXHRpc01QID0gKGNvZGU6IHN0cmluZykgPT4ge1xuXHRcdGNvbnN0IGxvd2VyQ29kZSA9IGNvZGU/LnRvTG93ZXJDYXNlKCkgfHwgJyc7XG5cdFx0cmV0dXJuIGxvd2VyQ29kZS5pbmNsdWRlcygnbWVyY2Fkb19wYWdvJykgJiYgIWxvd2VyQ29kZS5pbmNsdWRlcygnY3JlZGl0Jyk7XG5cdH1cblx0aXNNUFRhcmpldGFEZUNyZWRpdG8gPSAoY29kZTogc3RyaW5nKSA9PiAhIWNvZGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2NyZWRpdCcpXG5cdGlzTWV0aG9kT2ZmbGluZSA9IChjb2RlOiBzdHJpbmcpID0+ICEhY29kZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnb2ZmbGluZScpXG5cdGlzUGV5UGFsRXhwcmVzcyA9IChjb2RlOiBzdHJpbmcpID0+IHtcblx0XHRjb25zdCBsb3dlckNvZGUgPSBjb2RlPy50b0xvd2VyQ2FzZSgpIHx8ICcnO1xuXHRcdHJldHVybiBsb3dlckNvZGUuaW5jbHVkZXMoJ3BheXBhbCcpICYmIGxvd2VyQ29kZS5pbmNsdWRlcygnZXhwcmVzcycpO1xuXHR9XG5cdGlzTW9iYmV4ID0gKGNvZGU6IHN0cmluZykgPT4gISFjb2RlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdtb2JiZXgnKVxuXHRpc0JhbmNhcmQgPSAoY29kZTogc3RyaW5nKSA9PiAhIWNvZGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2JhbmNhcmQnKVxuXHRpc0RlY2lkaXIgPSAoY29kZTogc3RyaW5nKSA9PiAhIWNvZGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2RlY2lkaXInKVxuXHRpc0N1bHFpID0gKGNvZGU6IHN0cmluZykgPT4gISFjb2RlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdjdWxxaScpXG5cdGlzQmFua1RyYW5zZmVyID0gKGNvZGU6IHN0cmluZykgPT4gISFjb2RlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdiYW5rX3RyYW5zZmVyJylcblx0aXNDYXRhc3RybyA9IChjb2RlOiBzdHJpbmcpID0+ICEhY29kZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnY2F0YXN0cm8nKVxuXHRpc0JhbWJvbyA9IChjb2RlOiBzdHJpbmcpID0+ICEhY29kZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnYmFtYm9vJylcblxuXHRhbGxEYXRhKCk6IGFueSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdC4uLnRoaXMuX3BheW1lbnRTZXJ2aWNlLmdldFVzZXJEYXRhKCkuc2hpcHBpbmdBZGRyZXNzLFxuXHRcdFx0Li4udGhpcy5fcGF5bWVudFNlcnZpY2UuZ2V0U2hpcG1lbnREYXRhKCksXG5cdFx0fTtcblx0fVxuXHRlbWl0UmVzdWx0ID0gYXN5bmMgKCkgPT4ge1xuXHRcdHRoaXMuX3BheW1lbnRTZXJ2aWNlLnNldFBheW1lbnQodGhpcy5fbWV0aG9kRGF0YVN1YmplY3QuZ2V0VmFsdWUoKSlcblx0XHR0aGlzLnNldExvYWRpbmcoZmFsc2UpXG5cdFx0dGhpcy5uZXh0KClcblx0fVxuXG5cdHB1YmxpYyBzZXRMb2FkaW5nID0gKGVzdGFkbyA9IHRydWUpID0+IHtcblx0XHR0aGlzLl9sb2FkaW5nU3ViamVjdC5uZXh0KGVzdGFkbyk7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblxuXHRwdWJsaWMgdmVyaWZ5VmFsaWRhdGUgPSAoJGV2ZW50OmFueSkgPT4ge1xuXHRcdHRoaXMuc2V0TG9hZGluZyh0cnVlKVxuXHRcdHNldFRpbWVvdXQoKCkgPT4gdGhpcy5lbWl0UmVzdWx0KCksIDEwMDApO1xuXHR9XG5cblx0cHVibGljIG5leHQgPSAoKSA9PiB7XG5cdFx0dGhpcy5fY2hlY2tvdXRTZXJ2aWNlLm5leHQoKVxuXHR9XG5cblx0cHVibGljIGdvQmFjayA9ICgpID0+IHtcblx0XHR0aGlzLl9jaGVja291dFNlcnZpY2UuYmFjaygpXG5cdH1cbn1cbiIsIkBpZihtZXRob2RzJCB8IGFzeW5jOyBhcyBtZXRob2RzKXtcbjxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIj5cblxuXHQ8ZGl2IGNsYXNzPVwicm93XCI+XG5cdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0PGRpdiBjbGFzcz1cImNhcmQgXCI+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciB0ZXh0LWRhcmsgdGV4dC1jZW50ZXJcIj5cblx0XHRcdFx0XHQ8aDQ+e3sgJ3NlbGVjdC1tZXRob2QnIHwgdHJhbnNsYXRlIH19PC9oND5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiYnRuLXRvb2xiYXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiIHJvbGU9XCJ0b29sYmFyXCIgYXJpYS1sYWJlbD1cIkVudmlvcyB0b29sYmFyXCI+XG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiXCIgcm9sZT1cImdyb3VwXCIgYXJpYS1sYWJlbD1cIkdydXBvIGJvdG9uZXMgZW52aW9cIj5cblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1jb250ZW50LXN0YXJ0IGp1c3RpZnktY29udGVudC1jZW50ZXIgZmxleC13cmFwXCI+XG5cdFx0XHRcdFx0XHRcdFx0QGZvciAobWV0aG9kIG9mIG1ldGhvZHM7IHRyYWNrICRpbmRleDsgbGV0IHggPSAkaW5kZXgpIHtcblx0XHRcdFx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnkgbXgtMSBtYi0xXCIoY2xpY2spPVwic2V0TWV0aG9kKG1ldGhvZCkgOyBzZXRBY3RpdmUoJGV2ZW50KVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0e3sgbWV0aG9kLm5hbWUgfCB0cmFuc2xhdGUgfX1cblx0XHRcdFx0XHRcdFx0XHQ8L2J1dHRvbj5cblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHRleHQtY2VudGVyXCI+XG5cdFx0XHRcdFx0QGlmKG1ldGhvZERhdGEkIHwgYXN5bmM7IGFzIG1ldGhvZCl7XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG5cdFx0XHRcdFx0XHRAaWYoIWxvYWRpbmdJbnRlcm5hbCl7XG5cdFx0XHRcdFx0XHRcdEBpZihpc01QKG1ldGhvZC5jb2RlKSl7XG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm1ldGhvZC1jb250YWluZXIgdGV4dC1kYXJrXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8cCBpZD1cImZhcXNcIiBjbGFzcz1cInF0IHB4LTUgXCI+e3sgbWV0aG9kLmRlc2NyaXB0aW9uIH19PC9wPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxwIGNsYXNzPVwicHgtNVwiPnt7IG1ldGhvZC5pbnN0cnVjdGlvbnMgfX08L3A+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxhcHAtbXAtcmVkaXJlY3QtZWMgKHJlYWR5KT1cInZlcmlmeVZhbGlkYXRlKCRldmVudClcIiBcdFttZXRob2RdPVwibWV0aG9kXCI+PC9hcHAtbXAtcmVkaXJlY3QtZWM+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0PCEtLSA8ZGl2IGNsYXNzPVwibWV0aG9kLWNvbnRhaW5lciB0ZXh0LWRhcmsgdGV4dC1sZWZ0XCIgKm5nSWY9XCJpc01QVGFyamV0YURlQ3JlZGl0byhtZXRob2QuY29kZSlcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxwIGlkPVwiZmFxc1wiIGNsYXNzPVwicXQgcHgtNSBcIj57eyBtZXRob2QuZGVzY3JpcHRpb24gfX08L3A+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxwIGNsYXNzPVwicHgtNVwiPnt7IG1ldGhvZC5pbnN0cnVjdGlvbnMgfX08L3A+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgYXBwLW1wLWNyZWRpdC1lYyAocmVhZHkpPVwidmVyaWZ5VmFsaWRhdGUoKVwiIFtwdWJsaWNfa2V5XT1cImdldFBLKG1ldGhvZClcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFt1c2VyX2RhdGFdPVwiYWxsRGF0YSgpXCIgW3RvdGFsX2Ftb3VudF09XCJ0b3RhbF9hbW91bnRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJtZXRob2QtY29udGFpbmVyIHRleHQtZGFyayB0ZXh0LXN0YXJ0XCIgKm5nSWY9XCJpc1JlZGlyZWN0UmVkc3lzKG1ldGhvZC5jb2RlKVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJyb3dcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCpuZ0lmPVwiIW1ldGhvZC5jb2RlLmluY2x1ZGVzKCdiaXp1bScpICYmICFtZXRob2QuY29kZS5pbmNsdWRlcygnX291dF8nKVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxhcHAtcmVkc3lzLXJlZGlyZWN0LWVjIChyZWFkeSk9XCJ2ZXJpZnlWYWxpZGF0ZSgkZXZlbnQpXCIgW21ldGhvZF09XCJtZXRob2RcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3VzZXJfZGF0YV09XCJhbGxEYXRhKClcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2FwcC1yZWRzeXMtcmVkaXJlY3QtZWM+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Km5nSWY9XCJtZXRob2QuY29kZS5pbmNsdWRlcygnYml6dW0nKSB8fCBtZXRob2QuY29kZS5pbmNsdWRlcygnX291dF8nKVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxhcHAtcmVkc3lzLXJlZGlyZWN0LW91dC1lYyAocmVhZHkpPVwidmVyaWZ5VmFsaWRhdGUoJGV2ZW50KVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbbWV0aG9kXT1cIm1ldGhvZFwiIFt1c2VyX2RhdGFdPVwiYWxsRGF0YSgpXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9hcHAtcmVkc3lzLXJlZGlyZWN0LW91dC1lYz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJtZXRob2QtY29udGFpbmVyIHRleHQtZGFyayB0ZXh0LXN0YXJ0XCIgKm5nSWY9XCJpc1JlZGlyZWN0Q2VjYUJhbmsobWV0aG9kLmNvZGUpXCI+XG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInJvd1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8YXBwLWNlY2EtcmVkaXJlY3QtZWMgKHJlYWR5KT1cInZlcmlmeVZhbGlkYXRlKCRldmVudClcIiBbbWV0aG9kXT1cIm1ldGhvZFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3VzZXJfZGF0YV09XCJhbGxEYXRhKClcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9hcHAtY2VjYS1yZWRpcmVjdC1lYz5cblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm1ldGhvZC1jb250YWluZXIgdGV4dC1kYXJrIHRleHQtc3RhcnRcIiAqbmdJZj1cImlzUGV5UGFsRXhwcmVzcyhtZXRob2QuY29kZSlcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxhcHAtcGF5cGFsLWV4cHJlc3MtZWMgKHJlYWR5KT1cInZlcmlmeVZhbGlkYXRlKCRldmVudClcIiBbbWV0aG9kXT1cIm1ldGhvZFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbdXNlcl9kYXRhXT1cImFsbERhdGEoKVwiIFt0b3RhbF9hbW91bnRdPVwidG90YWxfYW1vdW50XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9hcHAtcGF5cGFsLWV4cHJlc3MtZWM+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWV0aG9kLWNvbnRhaW5lciB0ZXh0LWRhcmsgdGV4dC1zdGFydFwiICpuZ0lmPVwiaXNNb2JiZXgobWV0aG9kLmNvZGUpXCI+XG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8YXBwLW1vYmJleC1lYyAocmVhZHkpPVwidmVyaWZ5VmFsaWRhdGUoJGV2ZW50KVwiIFttZXRob2RdPVwibWV0aG9kXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFt1c2VyX2RhdGFdPVwiYWxsRGF0YSgpXCIgW3BheW1lbnRTZXJ2aWNlSW5zdF09XCJwYXltZW50U2VydmljZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbdG90YWxfYW1vdW50XT1cInRvdGFsX2Ftb3VudFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvYXBwLW1vYmJleC1lYz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJtZXRob2QtY29udGFpbmVyIHRleHQtZGFyayB0ZXh0LXN0YXJ0XCIgKm5nSWY9XCJpc0JhbmNhcmQobWV0aG9kLmNvZGUpXCI+XG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8YXBwLWJhbmNhcmQtZWMgKHJlYWR5KT1cInZlcmlmeVZhbGlkYXRlKCRldmVudClcIiBbbWV0aG9kXT1cIm1ldGhvZFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbdXNlcl9kYXRhXT1cImFsbERhdGEoKVwiIFtwYXltZW50U2VydmljZUluc3RdPVwicGF5bWVudFNlcnZpY2VcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3RvdGFsX2Ftb3VudF09XCJ0b3RhbF9hbW91bnRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2FwcC1iYW5jYXJkLWVjPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj4tLT5cblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm1ldGhvZC1jb250YWluZXIgdGV4dC1kYXJrIHRleHQtc3RhcnRcIiAqbmdJZj1cImlzRGVjaWRpcihtZXRob2QuY29kZSlcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxhcHAtZGVjaWRpci1lYyAocmVhZHkpPVwidmVyaWZ5VmFsaWRhdGUoJGV2ZW50KVwiIFttZXRob2RdPVwibWV0aG9kXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFt1c2VyX2RhdGFdPVwiYWxsRGF0YSgpXCIgW3BheW1lbnRTZXJ2aWNlSW5zdF09XCJfcGF5bWVudFNlcnZpY2VcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3RvdGFsX2Ftb3VudF09XCJ0b3RhbF9hbW91bnRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2FwcC1kZWNpZGlyLWVjPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj4gXG5cdFx0XHRcdFx0XHRcdEBpZihpc01ldGhvZE9mZmxpbmUobWV0aG9kLmNvZGUpKXtcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm1ldGhvZC1jb250YWluZXIgdGV4dC1kYXJrXCI+XG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInJvd1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8YXBwLW9mZmxpbmUtZWMgXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFttZXRob2RdPVwibWV0aG9kXCIgXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFt2ZXJpZnlWYWxpZGF0ZV09IFwidmVyaWZ5VmFsaWRhdGVcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRbc2V0TG9hZGluZ10gPSBcInNldExvYWRpbmdcIiAvPlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDwvZGl2Plx0XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdDwhLS1cblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm1ldGhvZC1jb250YWluZXIgdGV4dC1kYXJrIHRleHQtc3RhcnRcIiAqbmdJZj1cImlzQ3VscWkobWV0aG9kLmNvZGUpXCI+XG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8YXBwLWN1bHFpLWVjIFthcGlLZXldPVwiZ2V0UEtDdWxxaShtZXRob2QpXCIgW21ldGhvZF09XCJtZXRob2RcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0W2Ftb3VudF09XCJ0b3RhbF9hbW91bnRcIiBbY3VzdG9tU3R5bGVdPVwidHJ1ZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQocmVhZHkpPVwidmVyaWZ5VmFsaWRhdGUoKVwiPjwvYXBwLWN1bHFpLWVjPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm1ldGhvZC1jb250YWluZXIgdGV4dC1kYXJrIHRleHQtc3RhcnRcIiAqbmdJZj1cImlzQ2F0YXN0cm8obWV0aG9kLmNvZGUpXCI+XG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8YXBwLWJhbmNhcmQtY2F0YXN0cm8tZWMgKHJlYWR5KT1cInZlcmlmeVZhbGlkYXRlKCRldmVudClcIiBbbWV0aG9kXT1cIm1ldGhvZFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbdXNlcl9kYXRhXT1cImFsbERhdGEoKVwiIFtwYXltZW50U2VydmljZUluc3RdPVwicGF5bWVudFNlcnZpY2VcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3RvdGFsX2Ftb3VudF09XCJ0b3RhbF9hbW91bnRcIj48L2FwcC1iYW5jYXJkLWNhdGFzdHJvLWVjPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm1ldGhvZC1jb250YWluZXIgdGV4dC1kYXJrIHRleHQtc3RhcnRcIiAqbmdJZj1cImlzQmFtYm9vKG1ldGhvZC5jb2RlKVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGFwcC1iYW1ib28tZWMgKHJlYWR5KT1cInZlcmlmeVZhbGlkYXRlKCRldmVudClcIiBbbWV0aG9kXT1cIm1ldGhvZFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbdXNlcl9kYXRhXT1cImFsbERhdGEoKVwiIFtwYXltZW50U2VydmljZUluc3RdPVwicGF5bWVudFNlcnZpY2VcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3RvdGFsX2Ftb3VudF09XCJ0b3RhbF9hbW91bnRcIj48L2FwcC1iYW1ib28tZWM+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDwvZGl2PiAtLT5cblx0XHRcdFx0XHRcdFx0QGlmKGlzQmFua1RyYW5zZmVyKG1ldGhvZC5jb2RlKSl7XG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm1ldGhvZC1jb250YWluZXIgdGV4dC1kYXJrXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8YXBwLWJhbmstdHJhbnNmZXItZWMgXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbbWV0aG9kXT1cIm1ldGhvZFwiIFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3ZlcmlmeVZhbGlkYXRlXT0gXCJ2ZXJpZnlWYWxpZGF0ZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbc2V0TG9hZGluZ10gPSBcInNldExvYWRpbmdcIiAvPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0XHRcdFx0PGFwcC1sb2FkaW5nLWlubGluZS1lYz48L2FwcC1sb2FkaW5nLWlubGluZS1lYz5cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHR9XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwicm93IGQtZmxleCBmbGV4LXJvd1wiPlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLTEyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxuXHRcdFx0XHRcdDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgdGV4dC13aGl0ZVwiIChjbGljayk9XCJnb0JhY2soKVwiPnt7J2JhY2snfHRyYW5zbGF0ZX19PC9idXR0b24+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuPC9kaXY+XG59Il19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, EventEmitter, inject, Input, Output, PLATFORM_ID
|
|
1
|
+
import { Component, EventEmitter, inject, Input, Output, PLATFORM_ID } from '@angular/core';
|
|
2
2
|
import { PaymentService, ToastService } from '../../../../../ec-services';
|
|
3
3
|
import { LoadingFullEcComponent } from '../../../../widgets-ec';
|
|
4
4
|
import { isPlatformBrowser } from '@angular/common';
|
|
@@ -8,7 +8,6 @@ export class MpRedirectEcComponent {
|
|
|
8
8
|
_toastService = inject(ToastService);
|
|
9
9
|
platformId = inject(PLATFORM_ID);
|
|
10
10
|
finished = false;
|
|
11
|
-
ngZone = inject(NgZone);
|
|
12
11
|
method = null;
|
|
13
12
|
total_amount = 0;
|
|
14
13
|
allData;
|
|
@@ -31,10 +30,10 @@ export class MpRedirectEcComponent {
|
|
|
31
30
|
this.windowRef = window;
|
|
32
31
|
if ('BroadcastChannel' in window) {
|
|
33
32
|
this.bc = new BroadcastChannel('mp_payment');
|
|
34
|
-
this.bc.onmessage = (e) => this.
|
|
33
|
+
this.bc.onmessage = (e) => this.onMpMessage(e?.data);
|
|
35
34
|
}
|
|
36
|
-
window.addEventListener('storage',
|
|
37
|
-
window.addEventListener('message',
|
|
35
|
+
window.addEventListener('storage', this.onStorage);
|
|
36
|
+
window.addEventListener('message', this.onWindowMessage);
|
|
38
37
|
}
|
|
39
38
|
this.getPreference();
|
|
40
39
|
}
|
|
@@ -87,29 +86,23 @@ export class MpRedirectEcComponent {
|
|
|
87
86
|
}, 1000);
|
|
88
87
|
};
|
|
89
88
|
onWindowMessage = (event) => {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
this.onMpMessage(data);
|
|
93
|
-
});
|
|
89
|
+
const data = event?.data;
|
|
90
|
+
this.onMpMessage(data);
|
|
94
91
|
};
|
|
95
92
|
onStorage = (e) => {
|
|
96
|
-
this.
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
}
|
|
103
|
-
});
|
|
93
|
+
if (!e.key || !this.sid)
|
|
94
|
+
return;
|
|
95
|
+
if (e.key === `mp:state:${this.sid}` && e.newValue) {
|
|
96
|
+
const state = e.newValue;
|
|
97
|
+
this.finishWithState(state);
|
|
98
|
+
}
|
|
104
99
|
};
|
|
105
100
|
onMpMessage = (data) => {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
this.finishWithState(data.state);
|
|
112
|
-
});
|
|
101
|
+
if (!data || data.type !== 'mp:state')
|
|
102
|
+
return;
|
|
103
|
+
if (data.sid !== this.sid)
|
|
104
|
+
return;
|
|
105
|
+
this.finishWithState(data.state);
|
|
113
106
|
};
|
|
114
107
|
checkLocalStorageOnce() {
|
|
115
108
|
if (!this.sid)
|
|
@@ -120,34 +113,32 @@ export class MpRedirectEcComponent {
|
|
|
120
113
|
}
|
|
121
114
|
/** Cierra el flujo de pago con el estado final y notifica al padre. */
|
|
122
115
|
finishWithState(state) {
|
|
123
|
-
this.
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
}
|
|
150
|
-
});
|
|
116
|
+
if (this.finished)
|
|
117
|
+
return;
|
|
118
|
+
this.finished = true;
|
|
119
|
+
if (this.pollTimer)
|
|
120
|
+
clearInterval(this.pollTimer);
|
|
121
|
+
this.pollTimer = null;
|
|
122
|
+
localStorage.removeItem(`mp:state:${this.sid}`);
|
|
123
|
+
localStorage.removeItem('mp:sid');
|
|
124
|
+
localStorage.removeItem('state');
|
|
125
|
+
try {
|
|
126
|
+
this.ventana && !this.ventana.closed && this.ventana.close();
|
|
127
|
+
}
|
|
128
|
+
catch { }
|
|
129
|
+
this.ventana = null;
|
|
130
|
+
if (state === 'success' || state === 'pending') {
|
|
131
|
+
this.phase = 'finalizing';
|
|
132
|
+
this.ready.emit(true);
|
|
133
|
+
}
|
|
134
|
+
else if (state === 'failure' || state === 'cancel') {
|
|
135
|
+
this.phase = 'idle';
|
|
136
|
+
this._toastService.show(state === 'cancel' ? 'Se canceló el pago con Mercado Pago' : 'payment-error');
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
this.phase = 'idle';
|
|
140
|
+
this._toastService.show('payment-error');
|
|
141
|
+
}
|
|
151
142
|
}
|
|
152
143
|
genSid() {
|
|
153
144
|
return `mp_${Date.now()}_${Math.random().toString(36).slice(2, 9)}`;
|
|
@@ -191,4 +182,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
191
182
|
}], ready: [{
|
|
192
183
|
type: Output
|
|
193
184
|
}] } });
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXAtcmVkaXJlY3QtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2hlY2tvdXQtZWMvcGF5bWVudC1lYy9wYXltZW50LW1ldGhvZHMvbXAtcmVkaXJlY3QtZWMvbXAtcmVkaXJlY3QtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2hlY2tvdXQtZWMvcGF5bWVudC1lYy9wYXltZW50LW1ldGhvZHMvbXAtcmVkaXJlY3QtZWMvbXAtcmVkaXJlY3QtZWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsV0FBVyxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVlwRCxNQUFNLE9BQU8scUJBQXFCO0lBRXpCLGVBQWUsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDekMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNyQyxVQUFVLEdBQVEsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV2QixNQUFNLEdBQUcs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QUUsWUFBWSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDckQsQ0FBQyxDQUFBO0lBRUQsOERBQThEO0lBQ3RELGFBQWEsR0FBRyxHQUFTLEVBQUU7UUFDbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDcEQsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNQLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUM7WUFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsQ0FBQyxFQUNELEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FDdEMsQ0FBQztJQUNILENBQUMsQ0FBQztJQUVNLFFBQVEsR0FBRyxDQUFDLE9BQVksRUFBRSxFQUFFO1FBQ25DLHVCQUF1QjtJQUN4QixDQUFDLENBQUE7SUFFTyxRQUFRLEdBQUcsQ0FBQyxLQUFVLEVBQVEsRUFBRSxHQUFjLENBQUMsQ0FBQzt3R0FqTTVDLHFCQUFxQjs0RkFBckIscUJBQXFCLDJMQ2ZsQyxrM0NBNENNLDBERC9CSyxzQkFBc0I7OzRGQUVwQixxQkFBcUI7a0JBUGpDLFNBQVM7K0JBQ0Msb0JBQW9CLGNBQ2xCLElBQUksV0FHUCxDQUFDLHNCQUFzQixDQUFDOzhCQVV4QixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksS0FBSztzQkFBZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBQTEFURk9STV9JRCwgT25EZXN0cm95LCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBheW1lbnRTZXJ2aWNlLCBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9lYy1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBMb2FkaW5nRnVsbEVjQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vd2lkZ2V0cy1lYyc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbnR5cGUgTXBTdGF0ZSA9ICdzdWNjZXNzJyB8ICdwZW5kaW5nJyB8ICdmYWlsdXJlJyB8ICdjYW5jZWwnO1xudHlwZSBQaGFzZSA9ICdpZGxlJyB8ICdwYXlpbmcnIHwgJ2ZpbmFsaXppbmcnO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdhcHAtbXAtcmVkaXJlY3QtZWMnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZVVybDogJy4vbXAtcmVkaXJlY3QtZWMuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9tcC1yZWRpcmVjdC1lYy5jb21wb25lbnQuc2NzcyddLFxuXHRpbXBvcnRzOiBbTG9hZGluZ0Z1bGxFY0NvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgTXBSZWRpcmVjdEVjQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG5cdHByaXZhdGUgX3BheW1lbnRTZXJ2aWNlID0gaW5qZWN0KFBheW1lbnRTZXJ2aWNlKTtcblx0cHJpdmF0ZSBfdG9hc3RTZXJ2aWNlID0gaW5qZWN0KFRvYXN0U2VydmljZSk7XG5cdHByaXZhdGUgcGxhdGZvcm1JZDogYW55ID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcblx0cHJpdmF0ZSBmaW5pc2hlZCA9IGZhbHNlO1xuXHRwcml2YXRlIG5nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuXG5cdEBJbnB1dCgpIG1ldGhvZCA9IG51bGw7XG5cdEBJbnB1dCgpIHRvdGFsX2Ftb3VudCA9IDA7XG5cdEBJbnB1dCgpIGFsbERhdGE6IGFueTtcblx0QE91dHB1dCgpIHJlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG5cdHByb3RlY3RlZCBwcmVmZXJlbmNlOiBhbnk7XG5cdHB1YmxpYyB1cmw/OiBzdHJpbmc7XG5cblx0Ly8gRmFzZXMgZGUgVUlcblx0cHVibGljIHBoYXNlOiBQaGFzZSA9ICdpZGxlJztcblx0Z2V0IGlzSWRsZSgpIHsgcmV0dXJuIHRoaXMucGhhc2UgPT09ICdpZGxlJzsgfVxuXHRnZXQgaXNQYXlpbmcoKSB7IHJldHVybiB0aGlzLnBoYXNlID09PSAncGF5aW5nJzsgfVxuXHRnZXQgaXNGaW5hbGl6aW5nKCkgeyByZXR1cm4gdGhpcy5waGFzZSA9PT0gJ2ZpbmFsaXppbmcnOyB9XG5cblx0cHJpdmF0ZSB2ZW50YW5hOiBXaW5kb3cgfCBudWxsID0gbnVsbDtcblx0cHJpdmF0ZSB3aW5kb3dSZWY/OiBXaW5kb3c7XG5cdHByaXZhdGUgc2lkID0gJyc7XG5cdHByaXZhdGUgYmM/OiBCcm9hZGNhc3RDaGFubmVsO1xuXHRwcml2YXRlIHBvbGxUaW1lcj86IGFueTtcblx0cHJpdmF0ZSBwb2xsU3RhcnRlZEF0ID0gMDtcblxuXHRuZ09uSW5pdCgpIHtcblx0XHRpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuXHRcdFx0dGhpcy53aW5kb3dSZWYgPSB3aW5kb3c7XG5cblx0XHRcdGlmICgnQnJvYWRjYXN0Q2hhbm5lbCcgaW4gd2luZG93KSB7XG5cdFx0XHRcdHRoaXMuYmMgPSBuZXcgQnJvYWRjYXN0Q2hhbm5lbCgnbXBfcGF5bWVudCcpO1xuXHRcdFx0XHR0aGlzLmJjLm9ubWVzc2FnZSA9IChlOiBNZXNzYWdlRXZlbnQpID0+XG5cdFx0XHRcdFx0dGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMub25NcE1lc3NhZ2UoZT8uZGF0YSkpO1xuXHRcdFx0fVxuXG5cdFx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc3RvcmFnZScsIChlKSA9PlxuXHRcdFx0XHR0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5vblN0b3JhZ2UoZSBhcyBTdG9yYWdlRXZlbnQpKVxuXHRcdFx0KTtcblx0XHRcdHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgKGUpID0+XG5cdFx0XHRcdHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLm9uV2luZG93TWVzc2FnZShlIGFzIE1lc3NhZ2VFdmVudCkpXG5cdFx0XHQpO1xuXHRcdH1cblxuXHRcdHRoaXMuZ2V0UHJlZmVyZW5jZSgpO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKSB7XG5cdFx0aWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG5cdFx0dGhpcy5iYz8uY2xvc2UoKTtcblx0XHR3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc3RvcmFnZScsIHRoaXMub25TdG9yYWdlKTtcblx0XHR3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHRoaXMub25XaW5kb3dNZXNzYWdlKTtcblx0XHRpZiAodGhpcy5wb2xsVGltZXIpIGNsZWFySW50ZXJ2YWwodGhpcy5wb2xsVGltZXIpO1xuXHR9XG5cblx0LyoqIENhbmNlbGEgbWFudWFsbWVudGUgZWwgcGFnbyB5IGZpbmFsaXphIGVsIGZsdWpvIGNvbiBlc3RhZG8gXCJjYW5jZWxcIi4gKi9cblx0Y2xpY2tDbG9zZSA9ICgpID0+IHtcblx0XHRpZiAodGhpcy5maW5pc2hlZCkgcmV0dXJuO1xuXHRcdHRoaXMuZmluaXNoV2l0aFN0YXRlKCdjYW5jZWwnKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBJbmljaWEgZWwgcGFnbyBhYnJpZW5kbyBgaW5pdF9wb2ludGAgZW4gdW5hIHZlbnRhbmEvcGVzdGHDsWEgbnVldmEuXG5cdCAqIEdlbmVyYSB1biBTSUQgeSBsbyBwZXJzaXN0ZSBwYXJhIGNhc2FyIGxhIHJlc3B1ZXN0YSBkZWwgY2F0Y2guXG5cdCAqIFNpIGVsIHBvcHVwIGVzIGJsb3F1ZWFkbywgaGFjZSBmYWxsYmFjayBuYXZlZ2FuZG8gZW4gbGEgbWlzbWEgcGVzdGHDsWEuXG5cdCAqL1xuXHRpbmljaWFyID0gKCkgPT4ge1xuXHRcdGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSB8fCAhdGhpcy53aW5kb3dSZWYgfHwgIXRoaXMudXJsKSByZXR1cm47XG5cblx0XHR0aGlzLnBoYXNlID0gJ3BheWluZyc7XG5cdFx0dGhpcy5zaWQgPSB0aGlzLmdlblNpZCgpO1xuXHRcdGNvbnN0IHVybCA9IG5ldyBVUkwodGhpcy51cmwpO1xuXG5cdFx0bG9jYWxTdG9yYWdlLnNldEl0ZW0oJ21wOnNpZCcsIHRoaXMuc2lkKTtcblxuXHRcdHRoaXMudmVudGFuYSA9IHRoaXMud2luZG93UmVmLm9wZW4odGhpcy51cmwsICdfYmxhbmsnKTtcblxuXHRcdC8vIHBvcHVwIGJsb3F1ZWFkbyDihpIgZmFsbGJhY2sgYSBuYXZlZ2FjacOzbiBlbiBtaXNtYSBwZXN0YcOxYVxuXHRcdGlmICghdGhpcy52ZW50YW5hIHx8IHRoaXMudmVudGFuYS5jbG9zZWQpIHtcblx0XHRcdHRoaXMud2luZG93UmVmLmxvY2F0aW9uLmhyZWYgPSB0aGlzLnVybDtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHQvLyBwb2xsaW5nIGRlIMO6bHRpbW8gcmVjdXJzbyAoaGFzdGEgMTAgbWludXRvcylcblx0XHR0aGlzLnBvbGxTdGFydGVkQXQgPSBEYXRlLm5vdygpO1xuXHRcdGlmICh0aGlzLnBvbGxUaW1lcikgY2xlYXJJbnRlcnZhbCh0aGlzLnBvbGxUaW1lcik7XG5cdFx0dGhpcy5wb2xsVGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG5cdFx0XHRpZiAoRGF0ZS5ub3coKSAtIHRoaXMucG9sbFN0YXJ0ZWRBdCA+IDEwICogNjAgKiAxMDAwKSB7XG5cdFx0XHRcdGNsZWFySW50ZXJ2YWwodGhpcy5wb2xsVGltZXIpO1xuXHRcdFx0XHR0aGlzLnBvbGxUaW1lciA9IG51bGw7XG5cdFx0XHRcdHRoaXMucGhhc2UgPSAnaWRsZSc7XG5cdFx0XHRcdHRoaXMucHJvY2Vzc0Vycm9yKCdUaWVtcG8gZGUgZXNwZXJhIGFnb3RhZG8gYWwgcHJvY2VzYXIgZWwgcGFnby4nKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5jaGVja0xvY2FsU3RvcmFnZU9uY2UoKTtcblx0XHR9LCAxMDAwKTtcblx0fVxuXG5cdHByaXZhdGUgb25XaW5kb3dNZXNzYWdlID0gKGV2ZW50OiBNZXNzYWdlRXZlbnQpID0+IHtcblx0XHR0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuXHRcdFx0Y29uc3QgZGF0YSA9IGV2ZW50Py5kYXRhO1xuXHRcdFx0dGhpcy5vbk1wTWVzc2FnZShkYXRhKTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgb25TdG9yYWdlID0gKGU6IFN0b3JhZ2VFdmVudCkgPT4ge1xuXHRcdHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG5cdFx0XHRpZiAoIWUua2V5IHx8ICF0aGlzLnNpZCkgcmV0dXJuO1xuXHRcdFx0aWYgKGUua2V5ID09PSBgbXA6c3RhdGU6JHt0aGlzLnNpZH1gICYmIGUubmV3VmFsdWUpIHtcblx0XHRcdFx0Y29uc3Qgc3RhdGUgPSBlLm5ld1ZhbHVlIGFzIE1wU3RhdGU7XG5cdFx0XHRcdHRoaXMuZmluaXNoV2l0aFN0YXRlKHN0YXRlKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgb25NcE1lc3NhZ2UgPSAoZGF0YTogYW55KSA9PiB7XG5cdFx0dGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcblx0XHRcdGlmICghZGF0YSB8fCBkYXRhLnR5cGUgIT09ICdtcDpzdGF0ZScpIHJldHVybjtcblx0XHRcdGlmIChkYXRhLnNpZCAhPT0gdGhpcy5zaWQpIHJldHVybjtcblx0XHRcdHRoaXMuZmluaXNoV2l0aFN0YXRlKGRhdGEuc3RhdGUgYXMgTXBTdGF0ZSk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIGNoZWNrTG9jYWxTdG9yYWdlT25jZSgpIHtcblx0XHRpZiAoIXRoaXMuc2lkKSByZXR1cm47XG5cdFx0Y29uc3Qgc3RhdGUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShgbXA6c3RhdGU6JHt0aGlzLnNpZH1gKSBhcyBNcFN0YXRlIHwgbnVsbDtcblx0XHRpZiAoc3RhdGUpIHRoaXMuZmluaXNoV2l0aFN0YXRlKHN0YXRlKTtcblx0fVxuXG5cdC8qKiBDaWVycmEgZWwgZmx1am8gZGUgcGFnbyBjb24gZWwgZXN0YWRvIGZpbmFsIHkgbm90aWZpY2EgYWwgcGFkcmUuICovXG5cdHByaXZhdGUgZmluaXNoV2l0aFN0YXRlKHN0YXRlOiBNcFN0YXRlKSB7XG5cdFx0dGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcblx0XHRcdGlmICh0aGlzLmZpbmlzaGVkKSByZXR1cm47XG5cdFx0XHR0aGlzLmZpbmlzaGVkID0gdHJ1ZTtcblxuXHRcdFx0aWYgKHRoaXMucG9sbFRpbWVyKSBjbGVhckludGVydmFsKHRoaXMucG9sbFRpbWVyKTtcblx0XHRcdHRoaXMucG9sbFRpbWVyID0gbnVsbDtcblxuXHRcdFx0bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oYG1wOnN0YXRlOiR7dGhpcy5zaWR9YCk7XG5cdFx0XHRsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnbXA6c2lkJyk7XG5cdFx0XHRsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnc3RhdGUnKTtcblxuXHRcdFx0dHJ5IHsgdGhpcy52ZW50YW5hICYmICF0aGlzLnZlbnRhbmEuY2xvc2VkICYmIHRoaXMudmVudGFuYS5jbG9zZSgpOyB9IGNhdGNoIHsgfVxuXHRcdFx0dGhpcy52ZW50YW5hID0gbnVsbDtcblxuXHRcdFx0aWYgKHN0YXRlID09PSAnc3VjY2VzcycgfHwgc3RhdGUgPT09ICdwZW5kaW5nJykge1xuXHRcdFx0XHR0aGlzLnBoYXNlID0gJ2ZpbmFsaXppbmcnO1xuXHRcdFx0XHR0aGlzLnJlYWR5LmVtaXQodHJ1ZSk7XG5cdFx0XHR9IGVsc2UgaWYgKHN0YXRlID09PSAnZmFpbHVyZScgfHwgc3RhdGUgPT09ICdjYW5jZWwnKSB7XG5cdFx0XHRcdHRoaXMucGhhc2UgPSAnaWRsZSc7XG5cdFx0XHRcdHRoaXMuX3RvYXN0U2VydmljZS5zaG93KHN0YXRlID09PSAnY2FuY2VsJyA/ICdTZSBjYW5jZWzDsyBlbCBwYWdvIGNvbiBNZXJjYWRvIFBhZ28nIDogJ3BheW1lbnQtZXJyb3InKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMucGhhc2UgPSAnaWRsZSc7XG5cdFx0XHRcdHRoaXMuX3RvYXN0U2VydmljZS5zaG93KCdwYXltZW50LWVycm9yJyk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIGdlblNpZCgpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgbXBfJHtEYXRlLm5vdygpfV8ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIsIDkpfWA7XG5cdH1cblxuXHRwcml2YXRlIHByb2Nlc3NFcnJvciA9IChtc2c6IHN0cmluZykgPT4ge1xuXHRcdHRoaXMuX3RvYXN0U2VydmljZS5zaG93KG1zZyB8fCAncGF5bWVudC1lcnJvcicpO1xuXHR9XG5cblx0LyoqIExpbXBpYSBwb3NpYmxlcyByZXNpZHVvcyBkZSBlc3RhZG8gZW4gc3RvcmFnZXMuICovXG5cdGNsZWFyU3RvcmFnZVN0YXRlID0gKCkgPT4ge1xuXHRcdGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuXHRcdGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdzdGF0ZScpO1xuXHRcdGNvbnN0IHNpZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdtcDpzaWQnKTtcblx0XHRpZiAoc2lkKSBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShgbXA6c3RhdGU6JHtzaWR9YCk7XG5cdH1cblxuXHQvKiogT2J0aWVuZSBsYSBwcmVmZXJlbmNpYSBlIGluaWNpYWxpemEgYHVybGAgKGluaXRfcG9pbnQpLiAqL1xuXHRwcml2YXRlIGdldFByZWZlcmVuY2UgPSAoKTogdm9pZCA9PiB7XG5cdFx0dGhpcy5fcGF5bWVudFNlcnZpY2UuZ2V0UHJlZmVyZW5jZSh0aGlzLmFsbERhdGEpLnRoZW4oXG5cdFx0XHQocmVzKSA9PiB7XG5cdFx0XHRcdHRoaXMucHJlZmVyZW5jZSA9IHJlcztcblx0XHRcdFx0dGhpcy51cmwgPSB0aGlzLnByZWZlcmVuY2U/LmluaXRfcG9pbnQ7XG5cdFx0XHRcdHRoaXMucmVuZGVyTVAodGhpcy5wcmVmZXJlbmNlKTtcblx0XHRcdH0sXG5cdFx0XHQoKSA9PiB0aGlzLnNldEVycm9yKCdvcGVyYXRpb24tZXJyb3InKVxuXHRcdCk7XG5cdH07XG5cblx0cHJpdmF0ZSBzZXRFcnJvciA9IChtZXNzYWdlOiBhbnkpID0+IHtcblx0XHQvL3RoaXMuZXJyb3IgPSBtZXNzYWdlO1xuXHR9XG5cblx0cHJpdmF0ZSByZW5kZXJNUCA9IChfcHJlZjogYW55KTogdm9pZCA9PiB7IC8qIG5vb3AgKi8gfTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxuXHRAaWYodXJsKSB7XG5cblx0QGlmKGlzSWRsZSkge1xuXHQ8YnV0dG9uIChjbGljayk9XCJpbmljaWFyKClcIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1wcmltYXJ5IHJvdW5kZWQtMCBjb21wcmFyIG10LTNcIj5QYWdhcjwvYnV0dG9uPlxuXHR9XG5cblx0QGlmKGlzUGF5aW5nKSB7XG5cdDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4ganVzaXRmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgbXQtMlwiPlxuXHRcdDxoMz5Qcm9jZXNhbmRvIGVsIHBhZ28gcG9yIE1lcmNhZG8gUGFnbzwvaDM+XG5cdFx0PGg1PlJlY29yZMOhIHRvY2FyIOKAnFZvbHZlciBhbCBzaXRpb+KAnSBlbiBNZXJjYWRvIFBhZ28gcGFyYSBmaW5hbGl6YXIuPC9oNT5cblx0XHQ8YXBwLWxvYWRpbmctZnVsbC1lYz48L2FwcC1sb2FkaW5nLWZ1bGwtZWM+XG5cdDwvZGl2PlxuXG5cdDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIj5cblx0XHQ8ZGl2IGNsYXNzPVwicm93XCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLTVcIj5cblx0XHRcdFx0PGhyPlxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLTIgdGV4dC1jZW50ZXJcIj48bGFiZWw+bzwvbGFiZWw+PC9kaXY+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLTVcIj5cblx0XHRcdFx0PGhyPlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuXG5cdDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgbXQtMlwiPlxuXHRcdDxidXR0b24gKGNsaWNrKT1cImNsaWNrQ2xvc2UoKVwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeVwiPkNhbmNlbGFyIHBhZ288L2J1dHRvbj5cblx0PC9kaXY+XG5cdH1cblxuXHRAaWYoaXNGaW5hbGl6aW5nKSB7XG5cdDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4ganVzaXRmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgbXQtMlwiPlxuXHRcdDxoMz5Db25maXJtYW5kbyBwYWdvIHkgcmVkaXJpZ2llbmRv4oCmPC9oMz5cblx0XHQ8aDU+Tm8gY2llcnJlcyBuaSByZWNhcmd1ZXMgZXN0YSBww6FnaW5hLjwvaDU+XG5cdFx0PGFwcC1sb2FkaW5nLWZ1bGwtZWM+PC9hcHAtbG9hZGluZy1mdWxsLWVjPlxuXHQ8L2Rpdj5cblx0fVxuXG5cdH0gQGVsc2Uge1xuXHQ8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIG10LTJcIj5cblx0XHQ8YXBwLWxvYWRpbmctZnVsbC1lYz48L2FwcC1sb2FkaW5nLWZ1bGwtZWM+XG5cdDwvZGl2PlxuXHR9XG48L2Rpdj4iXX0=
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXAtcmVkaXJlY3QtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2hlY2tvdXQtZWMvcGF5bWVudC1lYy9wYXltZW50LW1ldGhvZHMvbXAtcmVkaXJlY3QtZWMvbXAtcmVkaXJlY3QtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2hlY2tvdXQtZWMvcGF5bWVudC1lYy9wYXltZW50LW1ldGhvZHMvbXAtcmVkaXJlY3QtZWMvbXAtcmVkaXJlY3QtZWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsV0FBVyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBWXBELE1BQU0sT0FBTyxxQkFBcUI7SUFFekIsZUFBZSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN6QyxhQUFhLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3JDLFVBQVUsR0FBUSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUVoQixNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ2QsWUFBWSxHQUFHLENBQUMsQ0FBQztJQUNqQixPQUFPLENBQU07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QiwyTENmbEMsazNDQTRDTSwwREQvQkssc0JBQXNCOzs0RkFFcEIscUJBQXFCO2tCQVBqQyxTQUFTOytCQUNDLG9CQUFvQixjQUNsQixJQUFJLFdBR1AsQ0FBQyxzQkFBc0IsQ0FBQzs4QkFTeEIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNJLEtBQUs7c0JBQWQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPbkluaXQsIE91dHB1dCwgUExBVEZPUk1fSUQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGF5bWVudFNlcnZpY2UsIFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2VjLXNlcnZpY2VzJztcbmltcG9ydCB7IExvYWRpbmdGdWxsRWNDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi93aWRnZXRzLWVjJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxudHlwZSBNcFN0YXRlID0gJ3N1Y2Nlc3MnIHwgJ3BlbmRpbmcnIHwgJ2ZhaWx1cmUnIHwgJ2NhbmNlbCc7XG50eXBlIFBoYXNlID0gJ2lkbGUnIHwgJ3BheWluZycgfCAnZmluYWxpemluZyc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2FwcC1tcC1yZWRpcmVjdC1lYycsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlVXJsOiAnLi9tcC1yZWRpcmVjdC1lYy5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsczogWycuL21wLXJlZGlyZWN0LWVjLmNvbXBvbmVudC5zY3NzJ10sXG5cdGltcG9ydHM6IFtMb2FkaW5nRnVsbEVjQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBNcFJlZGlyZWN0RWNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cblx0cHJpdmF0ZSBfcGF5bWVudFNlcnZpY2UgPSBpbmplY3QoUGF5bWVudFNlcnZpY2UpO1xuXHRwcml2YXRlIF90b2FzdFNlcnZpY2UgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcblx0cHJpdmF0ZSBwbGF0Zm9ybUlkOiBhbnkgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuXHRwcml2YXRlIGZpbmlzaGVkID0gZmFsc2U7XG5cblx0QElucHV0KCkgbWV0aG9kID0gbnVsbDtcblx0QElucHV0KCkgdG90YWxfYW1vdW50ID0gMDtcblx0QElucHV0KCkgYWxsRGF0YTogYW55O1xuXHRAT3V0cHV0KCkgcmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cblx0cHJvdGVjdGVkIHByZWZlcmVuY2U6IGFueTtcblx0cHVibGljIHVybD86IHN0cmluZztcblxuXHQvLyBGYXNlcyBkZSBVSVxuXHRwdWJsaWMgcGhhc2U6IFBoYXNlID0gJ2lkbGUnO1xuXHRnZXQgaXNJZGxlKCkgeyByZXR1cm4gdGhpcy5waGFzZSA9PT0gJ2lkbGUnOyB9XG5cdGdldCBpc1BheWluZygpIHsgcmV0dXJuIHRoaXMucGhhc2UgPT09ICdwYXlpbmcnOyB9XG5cdGdldCBpc0ZpbmFsaXppbmcoKSB7IHJldHVybiB0aGlzLnBoYXNlID09PSAnZmluYWxpemluZyc7IH1cblxuXHRwcml2YXRlIHZlbnRhbmE6IFdpbmRvdyB8IG51bGwgPSBudWxsO1xuXHRwcml2YXRlIHdpbmRvd1JlZj86IFdpbmRvdztcblx0cHJpdmF0ZSBzaWQgPSAnJztcblx0cHJpdmF0ZSBiYz86IEJyb2FkY2FzdENoYW5uZWw7XG5cdHByaXZhdGUgcG9sbFRpbWVyPzogYW55O1xuXHRwcml2YXRlIHBvbGxTdGFydGVkQXQgPSAwO1xuXG5cdG5nT25Jbml0KCkge1xuXHRcdGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG5cdFx0XHR0aGlzLndpbmRvd1JlZiA9IHdpbmRvdztcblxuXHRcdFx0aWYgKCdCcm9hZGNhc3RDaGFubmVsJyBpbiB3aW5kb3cpIHtcblx0XHRcdFx0dGhpcy5iYyA9IG5ldyBCcm9hZGNhc3RDaGFubmVsKCdtcF9wYXltZW50Jyk7XG5cdFx0XHRcdHRoaXMuYmMub25tZXNzYWdlID0gKGU6IE1lc3NhZ2VFdmVudCkgPT4gdGhpcy5vbk1wTWVzc2FnZShlPy5kYXRhKTtcblx0XHRcdH1cblxuXHRcdFx0d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3N0b3JhZ2UnLCB0aGlzLm9uU3RvcmFnZSk7XG5cdFx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHRoaXMub25XaW5kb3dNZXNzYWdlKTtcblx0XHR9XG5cblx0XHR0aGlzLmdldFByZWZlcmVuY2UoKTtcblx0fVxuXG5cdG5nT25EZXN0cm95KCkge1xuXHRcdGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuXHRcdHRoaXMuYmM/LmNsb3NlKCk7XG5cdFx0d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3N0b3JhZ2UnLCB0aGlzLm9uU3RvcmFnZSk7XG5cdFx0d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0aGlzLm9uV2luZG93TWVzc2FnZSk7XG5cdFx0aWYgKHRoaXMucG9sbFRpbWVyKSBjbGVhckludGVydmFsKHRoaXMucG9sbFRpbWVyKTtcblx0fVxuXG5cdC8qKiBDYW5jZWxhIG1hbnVhbG1lbnRlIGVsIHBhZ28geSBmaW5hbGl6YSBlbCBmbHVqbyBjb24gZXN0YWRvIFwiY2FuY2VsXCIuICovXG5cdGNsaWNrQ2xvc2UgPSAoKSA9PiB7XG5cdFx0aWYgKHRoaXMuZmluaXNoZWQpIHJldHVybjtcblx0XHR0aGlzLmZpbmlzaFdpdGhTdGF0ZSgnY2FuY2VsJyk7XG5cdH1cblxuXHQvKipcblx0ICogSW5pY2lhIGVsIHBhZ28gYWJyaWVuZG8gYGluaXRfcG9pbnRgIGVuIHVuYSB2ZW50YW5hL3Blc3Rhw7FhIG51ZXZhLlxuXHQgKiBHZW5lcmEgdW4gU0lEIHkgbG8gcGVyc2lzdGUgcGFyYSBjYXNhciBsYSByZXNwdWVzdGEgZGVsIGNhdGNoLlxuXHQgKiBTaSBlbCBwb3B1cCBlcyBibG9xdWVhZG8sIGhhY2UgZmFsbGJhY2sgbmF2ZWdhbmRvIGVuIGxhIG1pc21hIHBlc3Rhw7FhLlxuXHQgKi9cblx0aW5pY2lhciA9ICgpID0+IHtcblx0XHRpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkgfHwgIXRoaXMud2luZG93UmVmIHx8ICF0aGlzLnVybCkgcmV0dXJuO1xuXG5cdFx0dGhpcy5waGFzZSA9ICdwYXlpbmcnO1xuXHRcdHRoaXMuc2lkID0gdGhpcy5nZW5TaWQoKTtcblx0XHRjb25zdCB1cmwgPSBuZXcgVVJMKHRoaXMudXJsKTtcblxuXHRcdGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdtcDpzaWQnLCB0aGlzLnNpZCk7XG5cblx0XHR0aGlzLnZlbnRhbmEgPSB0aGlzLndpbmRvd1JlZi5vcGVuKHRoaXMudXJsLCAnX2JsYW5rJyk7XG5cblx0XHQvLyBwb3B1cCBibG9xdWVhZG8g4oaSIGZhbGxiYWNrIGEgbmF2ZWdhY2nDs24gZW4gbWlzbWEgcGVzdGHDsWFcblx0XHRpZiAoIXRoaXMudmVudGFuYSB8fCB0aGlzLnZlbnRhbmEuY2xvc2VkKSB7XG5cdFx0XHR0aGlzLndpbmRvd1JlZi5sb2NhdGlvbi5ocmVmID0gdGhpcy51cmw7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gcG9sbGluZyBkZSDDumx0aW1vIHJlY3Vyc28gKGhhc3RhIDEwIG1pbnV0b3MpXG5cdFx0dGhpcy5wb2xsU3RhcnRlZEF0ID0gRGF0ZS5ub3coKTtcblx0XHRpZiAodGhpcy5wb2xsVGltZXIpIGNsZWFySW50ZXJ2YWwodGhpcy5wb2xsVGltZXIpO1xuXHRcdHRoaXMucG9sbFRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuXHRcdFx0aWYgKERhdGUubm93KCkgLSB0aGlzLnBvbGxTdGFydGVkQXQgPiAxMCAqIDYwICogMTAwMCkge1xuXHRcdFx0XHRjbGVhckludGVydmFsKHRoaXMucG9sbFRpbWVyKTtcblx0XHRcdFx0dGhpcy5wb2xsVGltZXIgPSBudWxsO1xuXHRcdFx0XHR0aGlzLnBoYXNlID0gJ2lkbGUnO1xuXHRcdFx0XHR0aGlzLnByb2Nlc3NFcnJvcignVGllbXBvIGRlIGVzcGVyYSBhZ290YWRvIGFsIHByb2Nlc2FyIGVsIHBhZ28uJyk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdHRoaXMuY2hlY2tMb2NhbFN0b3JhZ2VPbmNlKCk7XG5cdFx0fSwgMTAwMCk7XG5cdH1cblxuXHRwcml2YXRlIG9uV2luZG93TWVzc2FnZSA9IChldmVudDogTWVzc2FnZUV2ZW50KSA9PiB7XG5cdFx0Y29uc3QgZGF0YSA9IGV2ZW50Py5kYXRhO1xuXHRcdHRoaXMub25NcE1lc3NhZ2UoZGF0YSk7XG5cdH1cblxuXHRwcml2YXRlIG9uU3RvcmFnZSA9IChlOiBTdG9yYWdlRXZlbnQpID0+IHtcblx0XHRpZiAoIWUua2V5IHx8ICF0aGlzLnNpZCkgcmV0dXJuO1xuXHRcdGlmIChlLmtleSA9PT0gYG1wOnN0YXRlOiR7dGhpcy5zaWR9YCAmJiBlLm5ld1ZhbHVlKSB7XG5cdFx0XHRjb25zdCBzdGF0ZSA9IGUubmV3VmFsdWUgYXMgTXBTdGF0ZTtcblx0XHRcdHRoaXMuZmluaXNoV2l0aFN0YXRlKHN0YXRlKTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIG9uTXBNZXNzYWdlID0gKGRhdGE6IGFueSkgPT4ge1xuXHRcdGlmICghZGF0YSB8fCBkYXRhLnR5cGUgIT09ICdtcDpzdGF0ZScpIHJldHVybjtcblx0XHRpZiAoZGF0YS5zaWQgIT09IHRoaXMuc2lkKSByZXR1cm47XG5cdFx0dGhpcy5maW5pc2hXaXRoU3RhdGUoZGF0YS5zdGF0ZSBhcyBNcFN0YXRlKTtcblx0fVxuXG5cdHByaXZhdGUgY2hlY2tMb2NhbFN0b3JhZ2VPbmNlKCkge1xuXHRcdGlmICghdGhpcy5zaWQpIHJldHVybjtcblx0XHRjb25zdCBzdGF0ZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGBtcDpzdGF0ZToke3RoaXMuc2lkfWApIGFzIE1wU3RhdGUgfCBudWxsO1xuXHRcdGlmIChzdGF0ZSkgdGhpcy5maW5pc2hXaXRoU3RhdGUoc3RhdGUpO1xuXHR9XG5cblx0LyoqIENpZXJyYSBlbCBmbHVqbyBkZSBwYWdvIGNvbiBlbCBlc3RhZG8gZmluYWwgeSBub3RpZmljYSBhbCBwYWRyZS4gKi9cblx0cHJpdmF0ZSBmaW5pc2hXaXRoU3RhdGUoc3RhdGU6IE1wU3RhdGUpIHtcblx0XHRpZiAodGhpcy5maW5pc2hlZCkgcmV0dXJuO1xuXHRcdHRoaXMuZmluaXNoZWQgPSB0cnVlO1xuXG5cdFx0aWYgKHRoaXMucG9sbFRpbWVyKSBjbGVhckludGVydmFsKHRoaXMucG9sbFRpbWVyKTtcblx0XHR0aGlzLnBvbGxUaW1lciA9IG51bGw7XG5cblx0XHRsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShgbXA6c3RhdGU6JHt0aGlzLnNpZH1gKTtcblx0XHRsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnbXA6c2lkJyk7XG5cdFx0bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3N0YXRlJyk7XG5cblx0XHR0cnkgeyB0aGlzLnZlbnRhbmEgJiYgIXRoaXMudmVudGFuYS5jbG9zZWQgJiYgdGhpcy52ZW50YW5hLmNsb3NlKCk7IH0gY2F0Y2ggeyB9XG5cdFx0dGhpcy52ZW50YW5hID0gbnVsbDtcblxuXHRcdGlmIChzdGF0ZSA9PT0gJ3N1Y2Nlc3MnIHx8IHN0YXRlID09PSAncGVuZGluZycpIHtcblx0XHRcdHRoaXMucGhhc2UgPSAnZmluYWxpemluZyc7XG5cdFx0XHR0aGlzLnJlYWR5LmVtaXQodHJ1ZSk7XG5cdFx0fSBlbHNlIGlmIChzdGF0ZSA9PT0gJ2ZhaWx1cmUnIHx8IHN0YXRlID09PSAnY2FuY2VsJykge1xuXHRcdFx0dGhpcy5waGFzZSA9ICdpZGxlJztcblx0XHRcdHRoaXMuX3RvYXN0U2VydmljZS5zaG93KHN0YXRlID09PSAnY2FuY2VsJyA/ICdTZSBjYW5jZWzDsyBlbCBwYWdvIGNvbiBNZXJjYWRvIFBhZ28nIDogJ3BheW1lbnQtZXJyb3InKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5waGFzZSA9ICdpZGxlJztcblx0XHRcdHRoaXMuX3RvYXN0U2VydmljZS5zaG93KCdwYXltZW50LWVycm9yJyk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBnZW5TaWQoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYG1wXyR7RGF0ZS5ub3coKX1fJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyLCA5KX1gO1xuXHR9XG5cblx0cHJpdmF0ZSBwcm9jZXNzRXJyb3IgPSAobXNnOiBzdHJpbmcpID0+IHtcblx0XHR0aGlzLl90b2FzdFNlcnZpY2Uuc2hvdyhtc2cgfHwgJ3BheW1lbnQtZXJyb3InKTtcblx0fVxuXG5cdC8qKiBMaW1waWEgcG9zaWJsZXMgcmVzaWR1b3MgZGUgZXN0YWRvIGVuIHN0b3JhZ2VzLiAqL1xuXHRjbGVhclN0b3JhZ2VTdGF0ZSA9ICgpID0+IHtcblx0XHRpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybjtcblx0XHRsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnc3RhdGUnKTtcblx0XHRjb25zdCBzaWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbXA6c2lkJyk7XG5cdFx0aWYgKHNpZCkgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oYG1wOnN0YXRlOiR7c2lkfWApO1xuXHR9XG5cblx0LyoqIE9idGllbmUgbGEgcHJlZmVyZW5jaWEgZSBpbmljaWFsaXphIGB1cmxgIChpbml0X3BvaW50KS4gKi9cblx0cHJpdmF0ZSBnZXRQcmVmZXJlbmNlID0gKCk6IHZvaWQgPT4ge1xuXHRcdHRoaXMuX3BheW1lbnRTZXJ2aWNlLmdldFByZWZlcmVuY2UodGhpcy5hbGxEYXRhKS50aGVuKFxuXHRcdFx0KHJlcykgPT4ge1xuXHRcdFx0XHR0aGlzLnByZWZlcmVuY2UgPSByZXM7XG5cdFx0XHRcdHRoaXMudXJsID0gdGhpcy5wcmVmZXJlbmNlPy5pbml0X3BvaW50O1xuXHRcdFx0XHR0aGlzLnJlbmRlck1QKHRoaXMucHJlZmVyZW5jZSk7XG5cdFx0XHR9LFxuXHRcdFx0KCkgPT4gdGhpcy5zZXRFcnJvcignb3BlcmF0aW9uLWVycm9yJylcblx0XHQpO1xuXHR9O1xuXG5cdHByaXZhdGUgc2V0RXJyb3IgPSAobWVzc2FnZTogYW55KSA9PiB7XG5cdFx0Ly90aGlzLmVycm9yID0gbWVzc2FnZTtcblx0fVxuXG5cdHByaXZhdGUgcmVuZGVyTVAgPSAoX3ByZWY6IGFueSk6IHZvaWQgPT4geyAvKiBub29wICovIH07XG59XG4iLCI8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj5cblx0QGlmKHVybCkge1xuXG5cdEBpZihpc0lkbGUpIHtcblx0PGJ1dHRvbiAoY2xpY2spPVwiaW5pY2lhcigpXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeSByb3VuZGVkLTAgY29tcHJhciBtdC0zXCI+UGFnYXI8L2J1dHRvbj5cblx0fVxuXG5cdEBpZihpc1BheWluZykge1xuXHQ8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGp1c2l0ZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIG10LTJcIj5cblx0XHQ8aDM+UHJvY2VzYW5kbyBlbCBwYWdvIHBvciBNZXJjYWRvIFBhZ288L2gzPlxuXHRcdDxoNT5SZWNvcmTDoSB0b2NhciDigJxWb2x2ZXIgYWwgc2l0aW/igJ0gZW4gTWVyY2FkbyBQYWdvIHBhcmEgZmluYWxpemFyLjwvaDU+XG5cdFx0PGFwcC1sb2FkaW5nLWZ1bGwtZWM+PC9hcHAtbG9hZGluZy1mdWxsLWVjPlxuXHQ8L2Rpdj5cblxuXHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XG5cdFx0PGRpdiBjbGFzcz1cInJvd1wiPlxuXHRcdFx0PGRpdiBjbGFzcz1cImNvbC01XCI+XG5cdFx0XHRcdDxocj5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cImNvbC0yIHRleHQtY2VudGVyXCI+PGxhYmVsPm88L2xhYmVsPjwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cImNvbC01XCI+XG5cdFx0XHRcdDxocj5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXHQ8L2Rpdj5cblxuXHQ8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIG10LTJcIj5cblx0XHQ8YnV0dG9uIChjbGljayk9XCJjbGlja0Nsb3NlKClcIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnlcIj5DYW5jZWxhciBwYWdvPC9idXR0b24+XG5cdDwvZGl2PlxuXHR9XG5cblx0QGlmKGlzRmluYWxpemluZykge1xuXHQ8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGp1c2l0ZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIG10LTJcIj5cblx0XHQ8aDM+Q29uZmlybWFuZG8gcGFnbyB5IHJlZGlyaWdpZW5kb+KApjwvaDM+XG5cdFx0PGg1Pk5vIGNpZXJyZXMgbmkgcmVjYXJndWVzIGVzdGEgcMOhZ2luYS48L2g1PlxuXHRcdDxhcHAtbG9hZGluZy1mdWxsLWVjPjwvYXBwLWxvYWRpbmctZnVsbC1lYz5cblx0PC9kaXY+XG5cdH1cblxuXHR9IEBlbHNlIHtcblx0PGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBtdC0yXCI+XG5cdFx0PGFwcC1sb2FkaW5nLWZ1bGwtZWM+PC9hcHAtbG9hZGluZy1mdWxsLWVjPlxuXHQ8L2Rpdj5cblx0fVxuPC9kaXY+Il19
|
|
@@ -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
|
-
|
|
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
|
-
|
|
135
|
+
attempted = true;
|
|
145
136
|
}
|
|
146
|
-
catch {
|
|
147
|
-
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkc3lzLWNhdGNoLWVjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1jb21wb25lbnRzL3dpZGdldHMtZWMvcmVkc3lzLWNhdGNoLWVjL3JlZHN5cy1jYXRjaC1lYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy93aWRnZXRzLWVjL3JlZHN5cy1jYXRjaC1lYy9yZWRzeXMtY2F0Y2gtZWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBNEMsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RyxPQUFPLEVBQUUsYUFBYSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7QUFJOUY7Ozs7O0dBS0c7QUFRSCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsZUFBZTtJQVE1QztJQUNBO0lBQ0E7SUFDQztJQUNBO0lBQ2tCO0lBQ0c7SUFaMUIsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNaLFlBQVksR0FBd0IsSUFBSSxDQUFDO0lBQ3pDLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDVCxFQUFFLENBQW9CO0lBRTlCLFlBQ1csWUFBNEIsRUFDNUIsTUFBYyxFQUNkLGVBQWdDLEVBQy9CLFFBQW1CLEVBQ25CLFVBQXNCLEVB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QUFFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU8saUJBQWlCLENBQUMsT0FBZSxFQUFFLEtBQWM7UUFDckQsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7WUFBRSxPQUFPO1FBQ2hELElBQUksQ0FBQztZQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQUMsQ0FBQztRQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDO1lBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFBQyxDQUFDO1FBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUM7WUFBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUFDLENBQUM7UUFBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7d0dBaEpRLHNCQUFzQix3SkFhbkIsUUFBUSxhQUNSLFdBQVc7NEZBZGQsc0JBQXNCLHNHQ3pCbkMsMm5CQWVNLG1aRE1RLFlBQVksNEZBQUUsc0JBQXNCOzs0RkFJckMsc0JBQXNCO2tCQVBsQyxTQUFTOytCQUNJLHFCQUFxQixjQUNuQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsc0JBQXNCLENBQUM7OzBCQWlCMUMsTUFBTTsyQkFBQyxRQUFROzswQkFDZixNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95LCBSZW5kZXJlcjIsIEVsZW1lbnRSZWYsIEluamVjdCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb21wb25lbnRIZWxwZXIgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2NvbXBvbmVudC1oZWxwZXInO1xuaW1wb3J0IHsgQ2FydFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9lYy1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDaGVja291dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9lYy1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IExvYWRpbmdGdWxsRWNDb21wb25lbnQgfSBmcm9tICcuLi9sb2FkaW5nL2xvYWRpbmctZnVsbC1lYy9sb2FkaW5nLWZ1bGwtZWMuY29tcG9uZW50JztcblxudHlwZSBNcFN0YXRlID0gJ3N1Y2Nlc3MnIHwgJ3BlbmRpbmcnIHwgJ2ZhaWx1cmUnIHwgJ2NhbmNlbCc7XG5cbi8qKlxuICogQ2F0Y2ggZ2Vuw6lyaWNvIHBhcmEgcmVkaXJlY2Npb25lcyBkZSBwYWdvcy5cbiAqIC0gTm9ybWFsaXphIGVsIGVzdGFkbyByZWNpYmlkbyBwb3IgcGFyYW1zL3F1ZXJ5LlxuICogLSBJbmZvcm1hIGVsIHJlc3VsdGFkbyBhbCBvcGVuZXIgKHBvc3RNZXNzYWdlKSwgQnJvYWRjYXN0Q2hhbm5lbCB5IGxvY2FsU3RvcmFnZS5cbiAqIC0gSW50ZW50YSBjZXJyYXJzZTsgc2kgZWwgY2llcnJlIGZhbGxhLCByZWRpcmlnZSBzZWfDum4gZWwgZXN0YWRvLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1yZWRzeXMtY2F0Y2gtZWMnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTG9hZGluZ0Z1bGxFY0NvbXBvbmVudF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JlZHN5cy1jYXRjaC1lYy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcmVkc3lzLWNhdGNoLWVjLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUmVkc3lzQ2F0Y2hFY0NvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEhlbHBlciBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIHB1YmxpYyBtZXNzYWdlID0gJyc7XG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgc2lkID0gJyc7XG4gICAgcHJpdmF0ZSBiYz86IEJyb2FkY2FzdENoYW5uZWw7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGFjdGl2ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHB1YmxpYyByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHVibGljIGNoZWNrb3V0U2VydmljZTogQ2hlY2tvdXRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogYW55XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgdGhpcy5oaWRlSGVhZGVyRm9vdGVyKCk7XG4gICAgICAgIHRoaXMuZWNPbkNvbnN0cnVjdCgpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSAmJiAnQnJvYWRjYXN0Q2hhbm5lbCcgaW4gd2luZG93KSB7XG4gICAgICAgICAgICB0aGlzLmJjID0gbmV3IEJyb2FkY2FzdENoYW5uZWwoJ21wX3BheW1lbnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gY29tYmluZUxhdGVzdChbdGhpcy5hY3RpdmVkUm91dGUucGFyYW1zLCB0aGlzLmFjdGl2ZWRSb3V0ZS5xdWVyeVBhcmFtc10pXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChbcm91dGVQYXJhbXMsIHFdKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHN0YXRlU3RyOiBzdHJpbmcgfCB1bmRlZmluZWQgPSByb3V0ZVBhcmFtc1snc3RhdGUnXTtcbiAgICAgICAgICAgICAgICBpZiAoc3RhdGVTdHIgPT09ICdzdGF0dXNwYXltZW50Jykgc3RhdGVTdHIgPSBxWydzdGF0dXMnXTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXR1c1BhcmFtID0gKHN0YXRlU3RyIHx8IHFbJ3N0YXR1cyddIHx8IHFbJ3N0YXRlJ10gfHwgJycpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLm5vcm1hbGl6ZVN0YXRlKHN0YXR1c1BhcmFtKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuc2lkID0gKHFbJ3NpZCddIHx8IChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpID8gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ21wOnNpZCcpIDogJycpIHx8ICcnKS50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmVUb3RhbEFtb3VudChxKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGVJbkxvY2FsKCdTdSBwYWdvIGZ1ZSBwcm9jZXNhZG8gY29uIMOpeGl0by4nLCBzdGF0ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zaWduYWxTdGF0ZShzdGF0ZSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnRyeUNsb3NlU2VsZigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IChzdGF0ZSA9PT0gJ3N1Y2Nlc3MnIHx8IHN0YXRlID09PSAncGVuZGluZycpXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFsnL2NoZWNrb3V0L29yZGVyX3N1Y2Nlc3MnXVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBbJy9jaGVja291dCddO1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucm91dGVyLm5hdmlnYXRlKHRhcmdldCksIDQ1MDApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZWNPbkluaXQoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuYmM/LmNsb3NlKCk7XG4gICAgICAgIHRoaXMuc2hvd0hlYWRlckZvb3RlcigpO1xuICAgIH1cblxuICAgIC8qKiBHdWFyZGEgdG90YWxfYW1vdW50IHNpIHZpZW5lIGRlc2RlIGVsIFBTUC4gKi9cbiAgICBwcml2YXRlIHN0b3JlVG90YWxBbW91bnQocXVlcnlQYXJhbXM6IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCB0b3RhbEFtb3VudCA9IHF1ZXJ5UGFyYW1zWyd0b3RhbF9hbW91bnQnXTtcbiAgICAgICAgaWYgKHRvdGFsQW1vdW50ICYmIGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd0b3RhbF9hbW91bnQnLCB0b3RhbEFtb3VudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogU2V0ZWEgbWVuc2FqZSB5IGVzdGFkbyBlbiBzdG9yYWdlcy4gKi9cbiAgICBwcml2YXRlIHNldFN0YXRlSW5Mb2NhbCA9IChtZW5zYWplOiBzdHJpbmcsIHN0YXRlOiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5tZXNzYWdlID0gbWVuc2FqZTtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgICAgIHRyeSB7IGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdzdGF0ZScsIHN0YXRlKTsgfSBjYXRjaCB7IH1cbiAgICAgICAgdHJ5IHsgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnbW9kYWxuZXdzJywgJ2ZhbHNlJyk7IH0gY2F0Y2ggeyB9XG4gICAgfVxuXG4gICAgLyoqIE5vcm1hbGl6YSBlc3RhZG9zIGhldGVyb2fDqW5lb3MgZGUgZGlzdGludG9zIGdhdGV3YXlzLiAqL1xuICAgIHByaXZhdGUgbm9ybWFsaXplU3RhdGUocmF3OiBzdHJpbmcpOiBNcFN0YXRlIHtcbiAgICAgICAgY29uc3QgdiA9IChyYXcgfHwgJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmICh2ID09PSAnMjAwJyB8fCB2ID09PSAnb2snIHx8IHYgPT09ICdzdWNjZXNzJykgcmV0dXJuICdzdWNjZXNzJztcbiAgICAgICAgaWYgKHYgPT09ICdwZW5kaW5nJykgcmV0dXJuICdwZW5kaW5nJztcbiAgICAgICAgaWYgKHYgPT09ICdjYW5jZWwnKSByZXR1cm4gJ2NhbmNlbCc7XG4gICAgICAgIHJldHVybiAnZmFpbHVyZSc7IC8vIGZhaWx1cmUsIDAsIGVycm9yLCByZWplY3RlZCwgY2hhcmdlYmFjaywgZGVzY29ub2NpZG9zXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5mb3JtYSBlbCByZXN1bHRhZG86IHBvc3RNZXNzYWdlIGFsIG9wZW5lciwgQnJvYWRjYXN0Q2hhbm5lbCB5IGxvY2FsU3RvcmFnZVxuICAgICAqIChlc3RlIMO6bHRpbW8gcGVybWl0ZSBwb2xsaW5nIGVuIGxhIHBlc3Rhw7FhIG1hZHJlKS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNpZ25hbFN0YXRlKHN0YXRlOiBNcFN0YXRlKSB7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuICAgICAgICBjb25zdCBzaWQgPSB0aGlzLnNpZCB8fCBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbXA6c2lkJykgfHwgJyc7XG4gICAgICAgIGNvbnN0IHBheWxvYWQgPSB7IHR5cGU6ICdtcDpzdGF0ZScsIHNpZCwgc3RhdGUgfTtcblxuICAgICAgICB0cnkgeyB3aW5kb3cub3BlbmVyICYmIHdpbmRvdy5vcGVuZXIucG9zdE1lc3NhZ2UocGF5bG9hZCwgJyonKTsgfSBjYXRjaCB7IH1cbiAgICAgICAgdHJ5IHsgdGhpcy5iYz8ucG9zdE1lc3NhZ2UocGF5bG9hZCk7IH0gY2F0Y2ggeyB9XG4gICAgICAgIHRyeSB7IGxvY2FsU3RvcmFnZS5zZXRJdGVtKGBtcDpzdGF0ZToke3NpZH1gLCBzdGF0ZSk7IH0gY2F0Y2ggeyB9XG4gICAgICAgIHRyeSB7IGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdzdGF0ZScsIHN0YXRlKTsgfSBjYXRjaCB7IH1cbiAgICB9XG5cbiAgICAvKiogSW50ZW50YSBjZXJyYXIgbGEgcGVzdGHDsWEgYWN0dWFsOyBzaSBmYWxsYSwgZWplY3V0YSBlbCBjYWxsYmFjayBkZSBmYWxsYmFjay4gKi9cbiAgICBwcml2YXRlIHRyeUNsb3NlU2VsZihvbkZhaWw6ICgpID0+IHZvaWQpIHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBvbkZhaWwoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBGYWxsYmFjayBkZSBzZWd1cmlkYWQ6IHNpIGRlc3B1w6lzIGRlIH44MDAgbXMgbGEgcMOhZ2luYSBzaWd1ZSB2aXNpYmxlLFxuICAgICAgICAvLyBhc3VtaW1vcyBxdWUgd2luZG93LmNsb3NlKCkgZnVlIGlnbm9yYWRvLlxuICAgICAgICBjb25zdCBmYWxsYmFjayA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgLy8gU2kgbGEgcGVzdGHDsWEgc2lndWllcmEgYWJpZXJ0YSwgZG9jdW1lbnQuaGlkZGVuIHN1ZWxlIHNlciBmYWxzZS5cbiAgICAgICAgICAgIGlmICghZG9jdW1lbnQuaGlkZGVuKSB7XG4gICAgICAgICAgICAgICAgb25GYWlsKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIDgwMCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB3aW5kb3cuY2xvc2UoKTtcbiAgICAgICAgICAgIC8vIFNpIHdpbmRvdy5jbG9zZSgpIGxhbnphIGV4Y2VwY2nDs24sIGxpbXBpYW1vcyBlbCB0aW1lb3V0IHkgaGFjZW1vcyBmYWxsYmFjayBpbm1lZGlhdG8uXG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGZhbGxiYWNrKTtcbiAgICAgICAgICAgIG9uRmFpbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIE9jdWx0YSBoZWFkZXIvZm9vdGVyIHBhcmEgZXN0YSBwYW50YWxsYSBtw61uaW1hLiAqL1xuICAgIHByaXZhdGUgaGlkZUhlYWRlckZvb3RlcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgICAgIGNvbnN0IGhlYWRlciA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaGVhZGVyJyk7XG4gICAgICAgIGNvbnN0IGZvb3RlciA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZm9vdGVyJyk7XG4gICAgICAgIGlmIChoZWFkZXIpIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoaGVhZGVyLCAnZGlzcGxheScsICdub25lJyk7XG4gICAgICAgIGlmIChmb290ZXIpIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZm9vdGVyLCAnZGlzcGxheScsICdub25lJyk7XG4gICAgfVxuXG4gICAgLyoqIFJlc3RhdXJhIGhlYWRlci9mb290ZXIgYWwgc2FsaXIuICovXG4gICAgcHJpdmF0ZSBzaG93SGVhZGVyRm9vdGVyKCk6IHZvaWQge1xuICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybjtcbiAgICAgICAgY29uc3QgaGVhZGVyID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdoZWFkZXInKTtcbiAgICAgICAgY29uc3QgZm9vdGVyID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdmb290ZXInKTtcbiAgICAgICAgaWYgKGhlYWRlcikgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZShoZWFkZXIsICdkaXNwbGF5Jyk7XG4gICAgICAgIGlmIChmb290ZXIpIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUoZm9vdGVyLCAnZGlzcGxheScpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U3RhdGVJblNlc3Npb24obWVuc2FqZTogc3RyaW5nLCBzdGF0ZTogTXBTdGF0ZSkge1xuICAgICAgICB0aGlzLm1lc3NhZ2UgPSBtZW5zYWplO1xuICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybjtcbiAgICAgICAgdHJ5IHsgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnc3RhdGUnLCBzdGF0ZSk7IH0gY2F0Y2ggeyB9XG4gICAgICAgIHRyeSB7IGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdzdGF0ZScsIHN0YXRlKTsgfSBjYXRjaCB7IH1cbiAgICAgICAgdHJ5IHsgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnbW9kYWxuZXdzJywgJ2ZhbHNlJyk7IH0gY2F0Y2ggeyB9XG4gICAgfVxuXG5cbn1cbiIsIjxkaXYgaWQ9XCJjb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgYWxpZ24tc2VsZi1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxoNCBjbGFzcz1cInRpdHBhZ2UgY2VudGVyLWJsb2NrIHRleHQtY2VudGVyIGZvbnQtbmV4YSBmb250LWxnIG15LTNcIj57eyBtZXNzYWdlIHwgdXBwZXJjYXNlIH19PC9oND5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIGFsaWduLXNlbGYtY2VudGVyXCI+XG4gICAgICAgICAgICA8aDUgY2xhc3M9XCJjZW50ZXItYmxvY2sgdGV4dC1jZW50ZXIgZm9udC1uZXhhIG15LTNcIj5SZWRpcmlnaWVuZG8gZW4gc2VndW5kb3MuLi48L2g1PlxuICAgICAgICAgICAgPGJyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBqdXNpdGZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxhcHAtbG9hZGluZy1mdWxsLWVjPjwvYXBwLWxvYWRpbmctZnVsbC1lYz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkc3lzLWNhdGNoLWVjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1jb21wb25lbnRzL3dpZGdldHMtZWMvcmVkc3lzLWNhdGNoLWVjL3JlZHN5cy1jYXRjaC1lYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy93aWRnZXRzLWVjL3JlZHN5cy1jYXRjaC1lYy9yZWRzeXMtY2F0Y2gtZWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBNEMsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RyxPQUFPLEVBQUUsYUFBYSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7QUFJOUY7Ozs7O0dBS0c7QUFRSCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsZUFBZTtJQVE1QztJQUNBO0lBQ0E7SUFDQztJQUNBO0lBQ2tCO0lBQ0c7SUFaMUIsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNaLFlBQVksR0FBd0IsSUFBSSxDQUFDO0lBQ3pDLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDVCxFQUFFLENBQW9CO0lBRTlCLFlBQ1csWUFBNEIsRUFDNUIsTUFBYyxFQUNkLGVBQWdDLEVBQy9CLFFBQW1CLEVBQ25CLFVBQXNCLEVB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QUMsVUFBVSxDQUFDO1lBQUUsT0FBTztRQUNoRCxJQUFJLENBQUM7WUFBQyxjQUFjLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUFDLENBQUM7UUFBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQztZQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQUMsQ0FBQztRQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDO1lBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFBQyxDQUFDO1FBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO3dHQWpJUSxzQkFBc0Isd0pBYW5CLFFBQVEsYUFDUixXQUFXOzRGQWRkLHNCQUFzQixzR0N6Qm5DLDJuQkFlTSxtWkRNUSxZQUFZLDRGQUFFLHNCQUFzQjs7NEZBSXJDLHNCQUFzQjtrQkFQbEMsU0FBUzsrQkFDSSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLHNCQUFzQixDQUFDOzswQkFpQjFDLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgUmVuZGVyZXIyLCBFbGVtZW50UmVmLCBJbmplY3QsIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tcG9uZW50SGVscGVyIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9jb21wb25lbnQtaGVscGVyJztcbmltcG9ydCB7IENhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZWMtc2VydmljZXMnO1xuaW1wb3J0IHsgQ2hlY2tvdXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZWMtc2VydmljZXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBMb2FkaW5nRnVsbEVjQ29tcG9uZW50IH0gZnJvbSAnLi4vbG9hZGluZy9sb2FkaW5nLWZ1bGwtZWMvbG9hZGluZy1mdWxsLWVjLmNvbXBvbmVudCc7XG5cbnR5cGUgTXBTdGF0ZSA9ICdzdWNjZXNzJyB8ICdwZW5kaW5nJyB8ICdmYWlsdXJlJyB8ICdjYW5jZWwnO1xuXG4vKipcbiAqIENhdGNoIGdlbsOpcmljbyBwYXJhIHJlZGlyZWNjaW9uZXMgZGUgcGFnb3MuXG4gKiAtIE5vcm1hbGl6YSBlbCBlc3RhZG8gcmVjaWJpZG8gcG9yIHBhcmFtcy9xdWVyeS5cbiAqIC0gSW5mb3JtYSBlbCByZXN1bHRhZG8gYWwgb3BlbmVyIChwb3N0TWVzc2FnZSksIEJyb2FkY2FzdENoYW5uZWwgeSBsb2NhbFN0b3JhZ2UuXG4gKiAtIEludGVudGEgY2VycmFyc2U7IHNpIGVsIGNpZXJyZSBmYWxsYSwgcmVkaXJpZ2Ugc2Vnw7puIGVsIGVzdGFkby5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtcmVkc3lzLWNhdGNoLWVjJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIExvYWRpbmdGdWxsRWNDb21wb25lbnRdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yZWRzeXMtY2F0Y2gtZWMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3JlZHN5cy1jYXRjaC1lYy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFJlZHN5c0NhdGNoRWNDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRIZWxwZXIgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICBwdWJsaWMgbWVzc2FnZSA9ICcnO1xuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIHNpZCA9ICcnO1xuICAgIHByaXZhdGUgYmM/OiBCcm9hZGNhc3RDaGFubmVsO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBhY3RpdmVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHB1YmxpYyBjaGVja291dFNlcnZpY2U6IENoZWNrb3V0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IGFueVxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMuaGlkZUhlYWRlckZvb3RlcigpO1xuICAgICAgICB0aGlzLmVjT25Db25zdHJ1Y3QoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkgJiYgJ0Jyb2FkY2FzdENoYW5uZWwnIGluIHdpbmRvdykge1xuICAgICAgICAgICAgdGhpcy5iYyA9IG5ldyBCcm9hZGNhc3RDaGFubmVsKCdtcF9wYXltZW50Jyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuYWN0aXZlZFJvdXRlLnBhcmFtcywgdGhpcy5hY3RpdmVkUm91dGUucXVlcnlQYXJhbXNdKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoW3JvdXRlUGFyYW1zLCBxXSkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBzdGF0ZVN0cjogc3RyaW5nIHwgdW5kZWZpbmVkID0gcm91dGVQYXJhbXNbJ3N0YXRlJ107XG4gICAgICAgICAgICAgICAgaWYgKHN0YXRlU3RyID09PSAnc3RhdHVzcGF5bWVudCcpIHN0YXRlU3RyID0gcVsnc3RhdHVzJ107XG5cbiAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXNQYXJhbSA9IChzdGF0ZVN0ciB8fCBxWydzdGF0dXMnXSB8fCBxWydzdGF0ZSddIHx8ICcnKS50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5ub3JtYWxpemVTdGF0ZShzdGF0dXNQYXJhbSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnNpZCA9IChxWydzaWQnXSB8fCAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSA/IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdtcDpzaWQnKSA6ICcnKSB8fCAnJykudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlVG90YWxBbW91bnQocSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlSW5Mb2NhbCgnU3UgcGFnbyBmdWUgcHJvY2VzYWRvIGNvbiDDqXhpdG8uJywgc3RhdGUpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2lnbmFsU3RhdGUoc3RhdGUpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy50cnlDbG9zZVNlbGYoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSAoc3RhdGUgPT09ICdzdWNjZXNzJyB8fCBzdGF0ZSA9PT0gJ3BlbmRpbmcnKVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBbJy9jaGVja291dC9vcmRlcl9zdWNjZXNzJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogWycvY2hlY2tvdXQnXTtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJvdXRlci5uYXZpZ2F0ZSh0YXJnZXQpLCA0NTAwKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB0aGlzLmVjT25Jbml0KCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmJjPy5jbG9zZSgpO1xuICAgICAgICB0aGlzLnNob3dIZWFkZXJGb290ZXIoKTtcbiAgICB9XG5cbiAgICAvKiogR3VhcmRhIHRvdGFsX2Ftb3VudCBzaSB2aWVuZSBkZXNkZSBlbCBQU1AuICovXG4gICAgcHJpdmF0ZSBzdG9yZVRvdGFsQW1vdW50KHF1ZXJ5UGFyYW1zOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdG90YWxBbW91bnQgPSBxdWVyeVBhcmFtc1sndG90YWxfYW1vdW50J107XG4gICAgICAgIGlmICh0b3RhbEFtb3VudCAmJiBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndG90YWxfYW1vdW50JywgdG90YWxBbW91bnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFNldGVhIG1lbnNhamUgeSBlc3RhZG8gZW4gc3RvcmFnZXMuICovXG4gICAgcHJpdmF0ZSBzZXRTdGF0ZUluTG9jYWwgPSAobWVuc2FqZTogc3RyaW5nLCBzdGF0ZTogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMubWVzc2FnZSA9IG1lbnNhamU7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuICAgICAgICB0cnkgeyBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc3RhdGUnLCBzdGF0ZSk7IH0gY2F0Y2ggeyB9XG4gICAgICAgIHRyeSB7IHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ21vZGFsbmV3cycsICdmYWxzZScpOyB9IGNhdGNoIHsgfVxuICAgIH1cblxuICAgIC8qKiBOb3JtYWxpemEgZXN0YWRvcyBoZXRlcm9nw6luZW9zIGRlIGRpc3RpbnRvcyBnYXRld2F5cy4gKi9cbiAgICBwcml2YXRlIG5vcm1hbGl6ZVN0YXRlKHJhdzogc3RyaW5nKTogTXBTdGF0ZSB7XG4gICAgICAgIGNvbnN0IHYgPSAocmF3IHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAodiA9PT0gJzIwMCcgfHwgdiA9PT0gJ29rJyB8fCB2ID09PSAnc3VjY2VzcycpIHJldHVybiAnc3VjY2Vzcyc7XG4gICAgICAgIGlmICh2ID09PSAncGVuZGluZycpIHJldHVybiAncGVuZGluZyc7XG4gICAgICAgIGlmICh2ID09PSAnY2FuY2VsJykgcmV0dXJuICdjYW5jZWwnO1xuICAgICAgICByZXR1cm4gJ2ZhaWx1cmUnOyAvLyBmYWlsdXJlLCAwLCBlcnJvciwgcmVqZWN0ZWQsIGNoYXJnZWJhY2ssIGRlc2Nvbm9jaWRvc1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluZm9ybWEgZWwgcmVzdWx0YWRvOiBwb3N0TWVzc2FnZSBhbCBvcGVuZXIsIEJyb2FkY2FzdENoYW5uZWwgeSBsb2NhbFN0b3JhZ2VcbiAgICAgKiAoZXN0ZSDDumx0aW1vIHBlcm1pdGUgcG9sbGluZyBlbiBsYSBwZXN0YcOxYSBtYWRyZSkuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzaWduYWxTdGF0ZShzdGF0ZTogTXBTdGF0ZSkge1xuICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybjtcbiAgICAgICAgY29uc3Qgc2lkID0gdGhpcy5zaWQgfHwgbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ21wOnNpZCcpIHx8ICcnO1xuICAgICAgICBjb25zdCBwYXlsb2FkID0geyB0eXBlOiAnbXA6c3RhdGUnLCBzaWQsIHN0YXRlIH07XG5cbiAgICAgICAgdHJ5IHsgd2luZG93Lm9wZW5lciAmJiB3aW5kb3cub3BlbmVyLnBvc3RNZXNzYWdlKHBheWxvYWQsICcqJyk7IH0gY2F0Y2ggeyB9XG4gICAgICAgIHRyeSB7IHRoaXMuYmM/LnBvc3RNZXNzYWdlKHBheWxvYWQpOyB9IGNhdGNoIHsgfVxuICAgICAgICB0cnkgeyBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShgbXA6c3RhdGU6JHtzaWR9YCwgc3RhdGUpOyB9IGNhdGNoIHsgfVxuICAgICAgICB0cnkgeyBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc3RhdGUnLCBzdGF0ZSk7IH0gY2F0Y2ggeyB9XG4gICAgfVxuXG4gICAgLyoqIEludGVudGEgY2VycmFyIGxhIHBlc3Rhw7FhIGFjdHVhbDsgc2kgZmFsbGEsIGVqZWN1dGEgZWwgY2FsbGJhY2sgZGUgZmFsbGJhY2suICovXG4gICAgcHJpdmF0ZSB0cnlDbG9zZVNlbGYob25GYWlsOiAoKSA9PiB2b2lkKSB7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuIG9uRmFpbCgpO1xuICAgICAgICBsZXQgYXR0ZW1wdGVkID0gZmFsc2U7XG4gICAgICAgIHRyeSB7IHdpbmRvdy5jbG9zZSgpOyBhdHRlbXB0ZWQgPSB0cnVlOyB9IGNhdGNoIHsgfVxuICAgICAgICBpZiAoIWF0dGVtcHRlZCkgb25GYWlsKCk7XG4gICAgfVxuXG4gICAgLyoqIE9jdWx0YSBoZWFkZXIvZm9vdGVyIHBhcmEgZXN0YSBwYW50YWxsYSBtw61uaW1hLiAqL1xuICAgIHByaXZhdGUgaGlkZUhlYWRlckZvb3RlcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgICAgIGNvbnN0IGhlYWRlciA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaGVhZGVyJyk7XG4gICAgICAgIGNvbnN0IGZvb3RlciA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZm9vdGVyJyk7XG4gICAgICAgIGlmIChoZWFkZXIpIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoaGVhZGVyLCAnZGlzcGxheScsICdub25lJyk7XG4gICAgICAgIGlmIChmb290ZXIpIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZm9vdGVyLCAnZGlzcGxheScsICdub25lJyk7XG4gICAgfVxuXG4gICAgLyoqIFJlc3RhdXJhIGhlYWRlci9mb290ZXIgYWwgc2FsaXIuICovXG4gICAgcHJpdmF0ZSBzaG93SGVhZGVyRm9vdGVyKCk6IHZvaWQge1xuICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybjtcbiAgICAgICAgY29uc3QgaGVhZGVyID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdoZWFkZXInKTtcbiAgICAgICAgY29uc3QgZm9vdGVyID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdmb290ZXInKTtcbiAgICAgICAgaWYgKGhlYWRlcikgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZShoZWFkZXIsICdkaXNwbGF5Jyk7XG4gICAgICAgIGlmIChmb290ZXIpIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUoZm9vdGVyLCAnZGlzcGxheScpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U3RhdGVJblNlc3Npb24obWVuc2FqZTogc3RyaW5nLCBzdGF0ZTogTXBTdGF0ZSkge1xuICAgICAgICB0aGlzLm1lc3NhZ2UgPSBtZW5zYWplO1xuICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybjtcbiAgICAgICAgdHJ5IHsgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnc3RhdGUnLCBzdGF0ZSk7IH0gY2F0Y2ggeyB9XG4gICAgICAgIHRyeSB7IGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdzdGF0ZScsIHN0YXRlKTsgfSBjYXRjaCB7IH1cbiAgICAgICAgdHJ5IHsgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnbW9kYWxuZXdzJywgJ2ZhbHNlJyk7IH0gY2F0Y2ggeyB9XG4gICAgfVxuXG5cbn1cbiIsIjxkaXYgaWQ9XCJjb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgYWxpZ24tc2VsZi1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxoNCBjbGFzcz1cInRpdHBhZ2UgY2VudGVyLWJsb2NrIHRleHQtY2VudGVyIGZvbnQtbmV4YSBmb250LWxnIG15LTNcIj57eyBtZXNzYWdlIHwgdXBwZXJjYXNlIH19PC9oND5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIGFsaWduLXNlbGYtY2VudGVyXCI+XG4gICAgICAgICAgICA8aDUgY2xhc3M9XCJjZW50ZXItYmxvY2sgdGV4dC1jZW50ZXIgZm9udC1uZXhhIG15LTNcIj5SZWRpcmlnaWVuZG8gZW4gc2VndW5kb3MuLi48L2g1PlxuICAgICAgICAgICAgPGJyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBqdXNpdGZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxhcHAtbG9hZGluZy1mdWxsLWVjPjwvYXBwLWxvYWRpbmctZnVsbC1lYz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|