general-library-union 3.2.57 → 3.2.58
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.
|
@@ -339,7 +339,7 @@ export class UtilsService {
|
|
|
339
339
|
return (campo == null ? "" : "El campo \"" + campo + "\" es ") + "Obligatorio ";
|
|
340
340
|
}
|
|
341
341
|
if (valor != null) {
|
|
342
|
-
if (valor.toString().length > longitud) {
|
|
342
|
+
if (Math.trunc(valor).toString().length > longitud) {
|
|
343
343
|
return "Longitud maxima de " + longitud + (campo == null ? "" : (" para el campo (" + campo + ") "));
|
|
344
344
|
}
|
|
345
345
|
}
|
|
@@ -357,4 +357,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
|
|
|
357
357
|
type: Inject,
|
|
358
358
|
args: [DOCUMENT]
|
|
359
359
|
}] }, { type: i2.ClickPosicionService }] });
|
|
360
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9zZXJ2aWNpb3MvdXRpbHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFNM0MsTUFBTSxPQUFPLFlBQVk7SUFLSDtJQUF3RDtJQUE0QjtJQUhoRyw4QkFBOEIsR0FBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzdDLFVBQVUsR0FBVSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFBO0lBRW5MLFlBQW9CLGFBQTRCLEVBQTRCLFFBQWtCLEVBQVUsb0JBQTBDO1FBQTlILGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQTRCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFBVSx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO0lBQ2xKLENBQUM7SUFFTSxZQUFZO1FBQ2pCLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNoQixNQUFNLFVBQVUsR0FBRyxnRUFBZ0UsQ0FBQztRQUNwRixNQUFNLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUM1QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUMxQyxNQUFNLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDNUUsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFJTSxVQUFVLENBQUMsUUFBZ0I7UUFDaEMsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sVUFBVSxHQUFHLGdFQUFnRSxDQUFDO1FBQ3BGLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsUUFBUSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSTtRQUN4QixJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN0QixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMxRCxNQUFNLElBQUksU0FBUyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7UUFDMUUsQ0FBQztRQUVELElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUN6QixPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7UUFFRCxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLHVFQUF1RTtRQUUzRixJQUFJLFNBQVMsR0FBRyxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUNwQyxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXJDLE9BQU8sR0FBRyxHQUFHLE9BQU8sQ0FBQztJQUN2QixDQUFDO0lBRUQsb0JBQW9CLENBQUMsS0FBVTtRQUM3QixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQzNCLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQztRQUN6QixLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQXVDO1FBQ2hELE9BQU8sR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQXVDO1FBQzdDLE9BQU8sR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxLQUFLO1FBQzNCLGdEQUFnRDtRQUNoRCxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzFDLDJFQUEyRTtZQUMzRSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7Z0JBQ3JELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUNELDJFQUEyRTtZQUMzRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDL0MsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBQ0Q7O2VBRUc7WUFDSCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxlQUFlLENBQUMsV0FBbUI7UUFDakMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUNELE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckMsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hDLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDcEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDcEUsQ0FBQztZQUNELE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELGlDQUFpQyxDQUFDLGNBQXFCO1FBQ3JELGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDM0IsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN0QyxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBRXRDLElBQUksT0FBTyxHQUFHLE9BQU8sRUFBRSxDQUFDO2dCQUN0QixPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ1osQ0FBQztZQUNELElBQUksT0FBTyxHQUFHLE9BQU8sRUFBRSxDQUFDO2dCQUN0QixPQUFPLENBQUMsQ0FBQztZQUNYLENBQUM7WUFDRCxPQUFPLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVELHFCQUFxQixDQUFDLFNBQWlCLEVBQUUsU0FBaUI7UUFDeEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0IsTUFBTSxZQUFZLEdBQUcsSUFBSSxlQUFlLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JELE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWE7UUFDeEIsTUFBTSxXQUFXLEdBQUcsa0RBQWtELENBQUM7UUFDdkUsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxXQUFXO1FBRVQsSUFBSSxVQUFVLEdBQVcsSUFBSSxDQUFDO1FBQzlCLElBQUksWUFBWSxHQUFRLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFBO1FBQzVDLElBQUksR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hDLElBQUksTUFBTSxHQUFHLElBQUksZUFBZSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxJQUFJLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUNuRCxLQUFLLElBQUksS0FBSyxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsK0RBQStELENBQUMsRUFBRSxDQUFDO2dCQUN6RyxVQUFVLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUM7WUFDdkMsQ0FBQztRQUNILENBQUM7YUFBTSxJQUFJLE1BQU0sRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQzNDLEtBQUssSUFBSSxLQUFLLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQywrREFBK0QsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pHLFVBQVUsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQztZQUN2QyxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLEtBQUssR0FBRyx1QkFBdUIsQ0FBQyxDQUFDLDREQUE0RDtZQUNuRyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUV2RCxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JDLFVBQVUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRU8sY0FBYyxDQUFDLFFBQWdCO1FBQ3JDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLCtDQUErQztRQUNuRSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyx1REFBdUQ7SUFDdEYsQ0FBQztJQUVNLGVBQWUsQ0FBQyxLQUFhLEVBQUUsV0FBb0IsRUFBRSxNQUFlLEVBQUUsUUFBZ0IsRUFBRSxnQkFBeUI7UUFDdEgsMEJBQTBCO1FBQzFCLElBQUksV0FBVyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNoRixPQUFPLGFBQWEsQ0FBQztRQUN2QixDQUFDO1FBQ0QsMkJBQTJCO1FBQzNCLElBQUksUUFBUSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2pCLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsUUFBUSxFQUFFLENBQUM7Z0JBQzlELE9BQU8scUJBQXFCLEdBQUcsUUFBUSxDQUFDO1lBQzFDLENBQUM7UUFDSCxDQUFDO1FBQ0QsdUZBQXVGO1FBQ3ZGLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSTtZQUM1RCxPQUFPLElBQUksQ0FBQztRQUVkLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUNyQixJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7b0JBQzlDLE9BQU8sNkNBQTZDLENBQUM7Z0JBQ3ZELENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7b0JBQzNDLE9BQU8scUNBQXFDLENBQUM7Z0JBQy9DLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksTUFBYyxDQUFDO1FBQ25CLElBQUksT0FBZSxDQUFDO1FBQ3BCLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDakQsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLE9BQU8sR0FBRyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7WUFDeEMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDN0IsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JELE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUM5SCxPQUFPLEdBQUcsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO2dCQUN4QyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELEtBQUssQ0FBQyxFQUFVO1FBQ2QsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxLQUFhO1FBQ3JDLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7WUFDeEMsT0FBTywrQkFBK0IsQ0FBQztRQUN6QyxDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDN0IsT0FBTyx1Q0FBdUMsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDN0IsT0FBTyxvREFBb0QsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUM5QixPQUFPLHFEQUFxRCxDQUFDO1FBQy9ELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxrQkFBa0I7UUFDbEIsSUFBSyxNQUFNLENBQUMsWUFBWSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEQsQ0FBQztJQUNGLENBQUM7SUFFRDs7O09BR0c7SUFDSyx3QkFBd0IsQ0FBQyxHQUFHO1FBRW5DLElBQUksSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO1FBQ2pGLElBQUksT0FBTyxHQUFXLElBQUksQ0FBQyxZQUFZLENBQUUsR0FBRyxDQUFFLEdBQUksRUFBRSxDQUFBO1FBQ3RELElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDcEMsQ0FBQztJQUVPLFlBQVksQ0FBQyxHQUFHO1FBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUE7UUFDN0IsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdEQsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsR0FBRyxHQUFHLEdBQUcsSUFBSSxRQUFRLENBQUM7UUFDcEIsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUU5QyxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3BELElBQUksU0FBUyxFQUFFLENBQUM7WUFDWixPQUFPLFNBQVMsQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZDLENBQUM7UUFFRCx5REFBeUQ7UUFDekQsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNWLE9BQU8sT0FBTyxDQUFDLFlBQVksQ0FBQztRQUNoQyxDQUFDO1FBQ0gsa0RBQWtEO1FBQ2xELDJEQUEyRDtRQUMzRCw0REFBNEQ7UUFFNUQsSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUM7WUFDeEMsSUFBRyxHQUFHLENBQUMsdUJBQXVCLEVBQUMsQ0FBQztnQkFDL0IsSUFBSSxhQUFhLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQztnQkFDbEMsTUFBTSxHQUFHLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxhQUFhLEdBQUMsRUFBRSxDQUFDLENBQUE7WUFDM0MsQ0FBQztRQUNGLENBQUM7UUFFRiw4Q0FBOEM7UUFFN0MsT0FBTyxNQUFNLENBQUM7SUFDZixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2YsSUFBSSxFQUFFLEdBQUUsU0FBUyxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQ2hDLENBQUMsR0FBRSxFQUFFLENBQUMsS0FBSyxDQUFDLDhEQUE4RCxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xGLElBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDO1lBQ3pCLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sS0FBSyxHQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFDRCxJQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxRQUFRLEVBQUMsQ0FBQztZQUNwQixHQUFHLEdBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ3JDLElBQUcsR0FBRyxJQUFHLElBQUk7Z0JBQUUsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFDRCxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkUsSUFBRyxDQUFDLEdBQUcsR0FBRSxFQUFFLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUMsSUFBRyxJQUFJO1lBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUEsYUFBYSxDQUFDLE1BQWU7UUFDM0IsSUFBSSxNQUFNLEVBQUMsQ0FBQztZQUNWLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7UUFDRCxRQUFRLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUN2QyxLQUFLLEdBQUc7Z0JBQ04sT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDekcsS0FBSyxJQUFJO2dCQUNQLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3pHLEtBQUssSUFBSTtnQkFDUCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN2RyxpR0FBaUc7WUFDbkcsS0FBSyxJQUFJO2dCQUNQLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQy9HO2dCQUNFLE9BQVEsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFFTyxXQUFXLENBQUMsR0FBVztRQUM3QixJQUFJLENBQUM7WUFDSCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDakMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUIsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDeEMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLEtBQUssQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQVcsRUFBRSxZQUFxQjtRQUN4QyxPQUFPLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLENBQUMsSUFBSSxZQUFZLENBQUM7SUFDL0UsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFtQztRQUM3QyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxHQUFHLEdBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdELElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBb0IsQ0FBQztRQUMxRSxRQUFRLENBQUMsSUFBSSxHQUFHLEdBQUcsSUFBSSxNQUFNLENBQUE7SUFDL0IsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRTlELE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtRQUNoQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNkLCtDQUErQztRQUMvQyw4REFBOEQ7UUFFOUQsc0NBQXNDO1FBQ3RDLElBQUksSUFBSSxHQUFRLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDdEMsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7UUFDakYsSUFBSSxPQUFPLEdBQVcsSUFBSSxDQUFDLFlBQVksQ0FBRSxHQUFHLENBQUUsR0FBSSxFQUFFLENBQUE7UUFDcEQsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbkQsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQWdCLENBQUM7UUFFbEUsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLElBQUksV0FBVyxHQUFHLGVBQWUsR0FBRyxDQUFDLENBQUM7WUFDdEMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxHQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ3hELElBQUksb0JBQW9CLEdBQUcsT0FBTyxFQUFFLENBQUM7Z0JBQ25DLElBQUksVUFBVSxHQUFHLG9CQUFvQixHQUFHLE9BQU8sQ0FBQztnQkFDaEQsV0FBVyxHQUFHLFdBQVcsR0FBRyxVQUFVLEdBQUcsRUFBRSxDQUFDO1lBQzlDLENBQUM7WUFDRCxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLFdBQVcsSUFBSSxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQWE7UUFDMUIsTUFBTSxPQUFPLEdBQUcsd0JBQXdCLENBQUM7UUFDekMsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBYTtRQUNyQixPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBYSxFQUFFLFdBQW9CLEVBQUUsUUFBZ0IsRUFBRSxLQUFhO1FBQ2xGLElBQUksV0FBVyxJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNsQyxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLEdBQUcsS0FBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLGNBQWMsQ0FBQztRQUNsRixDQUFDO1FBQ0QsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7WUFDbkIsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxHQUFHLFFBQVEsRUFBRSxDQUFDO2dCQUN4QyxPQUFPLHFCQUFxQixHQUFHLFFBQVEsR0FBRyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN0RyxDQUFDO1FBQ0YsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQzt1R0E5WFcsWUFBWSwrQ0FLbUMsUUFBUTsyR0FMdkQsWUFBWSxjQUZYLE1BQU07OzJGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFNb0QsTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb29raWVTZXJ2aWNlIH0gZnJvbSAnbmd4LWNvb2tpZS1zZXJ2aWNlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENsaWNrUG9zaWNpb25TZXJ2aWNlIH0gZnJvbSAnLi9jbGljay1wb3NpY2lvbi5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVXRpbHNTZXJ2aWNlIHtcblxuICBwcml2YXRlIFJFU0VSVkFEQVNfU1FMX05PUFVFREVDT05URU5FUjogYW55W10gPSBbJzsnXVxuICBwcml2YXRlIHJlc2VydmFkYXM6IGFueVtdID0gWydBTFRFUicsICdERUxFVEUnLCAnRFJPUCcsICdNT0RJRlknLCAnQ1JFQVRFJywgJ0RBVEFCQVNFJywgJ1RBQkxFJywgJ1VQREFURScsICdUUklHR0VSJywgJ0dSQU5UJywgJ1JFVk9LRScsICdDQUxMJywgJ0lOU0VSVCcsICdUUlVOQ0FURScsICdVU0UnLCAnLS0nXVxuICBcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb29raWVTZXJ2aWNlOiBDb29raWVTZXJ2aWNlLCBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCwgcHJpdmF0ZSBjbGlja1Bvc2l0aW9uU2VydmljZTogQ2xpY2tQb3NpY2lvblNlcnZpY2Upe1xuICB9XG4gIFxuICBwdWJsaWMgZ2VuZXJhckxsYXZlKCkge1xuICAgIGxldCByZXN1bHQgPSAnJztcbiAgICBjb25zdCBjaGFyYWN0ZXJzID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5JztcbiAgICBjb25zdCBjaGFyYWN0ZXJzTGVuZ3RoID0gMzI7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGFyYWN0ZXJzTGVuZ3RoOyBpKyspIHtcbiAgICAgIHJlc3VsdCArPSBjaGFyYWN0ZXJzLmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFyYWN0ZXJzTGVuZ3RoKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdC50b0xvd2VyQ2FzZSgpO1xuICB9XG5cblxuXG4gIHB1YmxpYyBnZW5lcmFyUGluKGNhbnRpZGFkOiBudW1iZXIpIHtcbiAgICBsZXQgcmVzdWx0ID0gJyc7XG4gICAgY29uc3QgY2hhcmFjdGVycyA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSc7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYW50aWRhZDsgaSsrKSB7XG4gICAgICByZXN1bHQgKz0gY2hhcmFjdGVycy5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2FudGlkYWQpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0LnRvTG93ZXJDYXNlKCk7XG4gIH1cblxuICByaWdodHBhZChzdHIsIGxlbmd0aCwgY2hhcikge1xuICAgIGlmIChzdHIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGlmICh0eXBlb2Ygc3RyICE9PSAnc3RyaW5nJyB8fCB0eXBlb2YgbGVuZ3RoICE9PSAnbnVtYmVyJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignTG9zIGFyZ3VtZW50b3MgZGViZW4gc2VyIHVuYSBjYWRlbmEgeSB1biBuw7ptZXJvLicpO1xuICAgIH1cblxuICAgIGlmIChzdHIubGVuZ3RoID49IGxlbmd0aCkge1xuICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG5cbiAgICBjaGFyID0gY2hhciB8fCAnICc7IC8vIFV0aWxpemEgdW4gZXNwYWNpbyBjb21vIGNhcsOhY3RlciBkZSByZWxsZW5vIHNpIG5vIHNlIHByb3BvcmNpb25hIHVub1xuXG4gICAgdmFyIHBhZExlbmd0aCA9IGxlbmd0aCAtIHN0ci5sZW5ndGg7XG4gICAgdmFyIHBhZGRpbmcgPSBjaGFyLnJlcGVhdChwYWRMZW5ndGgpO1xuXG4gICAgcmV0dXJuIHN0ciArIHBhZGRpbmc7XG4gIH1cblxuICB2YWxpZGFyQ2FtcG9OdW1lcmljbyhldmVudDogYW55KSB7XG4gICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQ7XG4gICAgY29uc3QgcmVnZXggPSAvW14wLTldL2dpO1xuICAgIGlucHV0LnZhbHVlID0gaW5wdXQudmFsdWUucmVwbGFjZShyZWdleCwgJycpO1xuICB9XG5cbiAgaXNOb3RCbGFuayhzdHI6IHN0cmluZyB8IFN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc3RyICE9IG51bGwgJiYgc3RyLnRyaW0oKS5sZW5ndGggPiAwO1xuICB9XG5cbiAgaXNCbGFuayhzdHI6IHN0cmluZyB8IFN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc3RyID09IG51bGwgfHwgc3RyPy50cmltKCkgPT09ICcnO1xuICB9XG5cbiAgdmFsaWRhckNhbXBvT2JsaWdhdG9yaW8odmFsb3IpOiBib29sZWFuIHtcbiAgICAvLyBWZXJpZmljYXIgc2kgZWwgdmFsb3Igbm8gZXMgbnVsbCBuaSB1bmRlZmluZWRcbiAgICBpZiAodmFsb3IgIT09IG51bGwgJiYgdmFsb3IgIT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gVmVyaWZpY2FyIHNpIGVsIHZhbG9yIG5vIGVzIHVuYSBjYWRlbmEgdmFjw61hIChlbiBjYXNvIGRlIHNlciB1bmEgY2FkZW5hKVxuICAgICAgaWYgKHR5cGVvZiB2YWxvciA9PT0gJ3N0cmluZycgJiYgdmFsb3IudHJpbSgpID09PSAnJykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICAvLyBWZXJpZmljYXIgc2kgZWwgdmFsb3Igbm8gZXMgdW4gYXJyZWdsbyB2YWPDrW8gKGVuIGNhc28gZGUgc2VyIHVuIGFycmVnbG8pXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWxvcikgJiYgdmFsb3IubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIC8qaWYgKHR5cGVvZiB2YWxvciA9PT0gJ29iamVjdCcgJiYgT2JqZWN0LmtleXModmFsb3IpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9Ki9cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjYXBpdGFsaXplRnVsbHkoaW5wdXRTdHJpbmc6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFpbnB1dFN0cmluZykge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBjb25zdCB3b3JkcyA9IGlucHV0U3RyaW5nLnNwbGl0KCcgJyk7XG4gICAgY29uc3QgY2FwaXRhbGl6ZWRXb3JkcyA9IHdvcmRzLm1hcCh3b3JkID0+IHtcbiAgICAgIGlmICh3b3JkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIHdvcmQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB3b3JkLnNsaWNlKDEpLnRvTG93ZXJDYXNlKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gJyc7XG4gICAgfSk7XG4gICAgY29uc3QgcmVzdWx0ID0gY2FwaXRhbGl6ZWRXb3Jkcy5qb2luKCcgJyk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIG9yZGVuYXJTZWxlY3RJdGVtc0FsZmFiZXRpY2FtZW50ZShhcnJheURlT2JqZXRvczogYW55W10pOiBhbnlbXSB7XG4gICAgYXJyYXlEZU9iamV0b3Muc29ydCgoYSwgYikgPT4ge1xuICAgICAgY29uc3Qgbm9tYnJlQSA9IGEubGFiZWwudG9Mb3dlckNhc2UoKTtcbiAgICAgIGNvbnN0IG5vbWJyZUIgPSBiLmxhYmVsLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgIGlmIChub21icmVBIDwgbm9tYnJlQikge1xuICAgICAgICByZXR1cm4gLTE7XG4gICAgICB9XG4gICAgICBpZiAobm9tYnJlQSA+IG5vbWJyZUIpIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9XG4gICAgICByZXR1cm4gMDtcbiAgICB9KTtcbiAgICByZXR1cm4gYXJyYXlEZU9iamV0b3M7XG4gIH1cblxuICBvYnRlbmVyUGFyYW1ldHJvRGVVUkwodXJsU3RyaW5nOiBzdHJpbmcsIHBhcmFtZXRybzogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgY29uc3QgdXJsID0gbmV3IFVSTCh1cmxTdHJpbmcpO1xuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXModXJsLnNlYXJjaCk7XG4gICAgcmV0dXJuIHNlYXJjaFBhcmFtcy5nZXQocGFyYW1ldHJvKTtcbiAgfVxuXG4gIHZhbGlkYXJFbWFpbChlbWFpbDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcGF0cm9uRW1haWwgPSAvXlthLXpBLVowLTkuXyUrLV0rQFthLXpBLVowLTkuLV0rXFwuW2EtekEtWl17Mix9JC87XG4gICAgcmV0dXJuIHBhdHJvbkVtYWlsLnRlc3QoZW1haWwpO1xuICB9XG5cbiAgb2J0ZW5lckJhc2UoKTogKHN0cmluZyB8IG51bGwpIHtcblxuICAgIHZhciBiYXNlUG9ydGFsOiBzdHJpbmcgPSBudWxsO1xuICAgIHZhciBwYWdpbmFBY3R1YWw6IGFueSA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmXG4gICAgdmFyIHVybCA9IG5ldyBVUkwocGFnaW5hQWN0dWFsKTtcbiAgICB2YXIgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh1cmwuc2VhcmNoKTtcbiAgICBpZiAocGFnaW5hQWN0dWFsLnRvU3RyaW5nKCkuaW5jbHVkZXMoJ1BvcnRhbFNhcmEnKSkge1xuICAgICAgZm9yICh2YXIgbWF0Y2ggb2YgcGFnaW5hQWN0dWFsLm1hdGNoQWxsKC8oPzxpbmljaW8+LiopXFwvKD88c2VndXJpZGFkPi4qKVxcLyg/PHNpdGlvPi4qKVxcLyg/PHBhZ2luYT4uKikvZykpIHtcbiAgICAgICAgYmFzZVBvcnRhbCA9IG1hdGNoLmdyb3Vwcz8uc2VndXJpZGFkO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocGFyYW1zPy5nZXQoJ3VzX2lkJykpIHtcbiAgICAgIHBhZ2luYUFjdHVhbCA9IHdpbmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZjtcbiAgICAgIGZvciAodmFyIG1hdGNoIG9mIHBhZ2luYUFjdHVhbC5tYXRjaEFsbCgvKD88aW5pY2lvPi4qKVxcLyg/PHNlZ3VyaWRhZD4uKilcXC8oPzxzaXRpbz4uKilcXC8oPzxwYWdpbmE+LiopL2cpKSB7XG4gICAgICAgIGJhc2VQb3J0YWwgPSBtYXRjaC5ncm91cHM/LnNlZ3VyaWRhZDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcmVnZXggPSAvXi4qP1xcL1xcLy4qP1xcLyguKj8pXFwvL2c7IC8vIEV4cHJlc2nDs24gcmVndWxhciBwYXJhIG9idGVuZXIgbGEgcHJpbWVyYSBwYXJ0ZSBkZSBsYSBVUkxcbiAgICAgIGNvbnN0IG1hdGNoID0gQXJyYXkuZnJvbShwYWdpbmFBY3R1YWwubWF0Y2hBbGwocmVnZXgpKTtcblxuICAgICAgaWYgKG1hdGNoICYmIG1hdGNoWzBdICYmIG1hdGNoWzBdWzFdKSB7XG4gICAgICAgIGJhc2VQb3J0YWwgPSBtYXRjaFswXVsxXTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGJhc2VQb3J0YWw7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXJFc3BhY2lvKGNhcmFjdGVyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCByZWdleCA9IC9cXHMvOyAvLyBMYSBleHByZXNpw7NuIHJlZ3VsYXIgcGFyYSBlc3BhY2lvcyBlbiBibGFuY29cbiAgICByZXR1cm4gcmVnZXgudGVzdChjYXJhY3Rlcik7IC8vIERldnVlbHZlIHRydWUgc2kgZWwgY2Fyw6FjdGVyIGVzIHVuIGVzcGFjaW8gZW4gYmxhbmNvXG4gIH1cblxuICBwdWJsaWMgdmFsaWRhclRleHRvU1FMKHZhbG9yOiBzdHJpbmcsIG9ibGlnYXRvcmlvOiBib29sZWFuLCBzZWxlY3Q6IGJvb2xlYW4sIGxvbmdpdHVkOiBudW1iZXIsIHZhbGlkYXJTZW50ZW5jaWE6IGJvb2xlYW4pOiAoc3RyaW5nIHwgbnVsbCkge1xuICAgIC8vIFZlcmlmaWNhIG9ibGlnYXRvcmllZGFkXG4gICAgaWYgKG9ibGlnYXRvcmlvICYmICh2YWxvciA9PSBudWxsIHx8IHZhbG9yLnRyaW0oKS5sZW5ndGggPT0gMCB8fCB2YWxvciA9PSAnLS0nKSkge1xuICAgICAgcmV0dXJuICdPYmxpZ2F0b3Jpbyc7XG4gICAgfVxuICAgIC8vIFZlcmlmaWNhIGxvbmdpdHVkIG3DoXhpbWFcbiAgICBpZiAobG9uZ2l0dWQgPiAwKSB7XG4gICAgICBpZiAodmFsb3IgIT0gbnVsbCAmJiB2YWxvciAhPSAnLS0nICYmIHZhbG9yLmxlbmd0aCA+IGxvbmdpdHVkKSB7XG4gICAgICAgIHJldHVybiAnTG9uZ2l0dWQgbWF4aW1hIGRlICcgKyBsb25naXR1ZDtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gUmVhbGl6YSBsYXMgZGVtw6FzIHZhbGlkYWNpb24gc29sbyBlbiBlbCBjYXNvIGRlIHF1ZSBsYSBjYWRlbmEgU1FML3ZhbG9yIG5vIHNlYSB2YWNpYVxuICAgIGlmICh2YWxvciA9PSBudWxsIHx8IHZhbG9yLnRyaW0oKS5sZW5ndGggPT0gMCB8fCB2YWxvciA9PSAnLS0nKVxuICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICBpZiAodmFsaWRhclNlbnRlbmNpYSkge1xuICAgICAgaWYgKHNlbGVjdCkge1xuICAgICAgICBpZiAoIXZhbG9yLnRvVXBwZXJDYXNlKCkuc3RhcnRzV2l0aCgnU0VMRUNUJykpIHtcbiAgICAgICAgICByZXR1cm4gJ0VsIHRleHRvIGRlYmUgaW5pY2lhciBjb24gbGEgcGFsYWJyYSBTZWxlY3QnO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodmFsb3IudG9VcHBlckNhc2UoKS5pbmNsdWRlcygnU0VMRUNUJykpIHtcbiAgICAgICAgICByZXR1cm4gJ05vIHB1ZWRlIGNvbnRlbmVyIGxhIHBhbGFicmEgU2VsZWN0JztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB2YXIgaW5kaWNlOiBudW1iZXI7XG4gICAgdmFyIG1lbnNhamU6IHN0cmluZztcbiAgICB0aGlzLlJFU0VSVkFEQVNfU1FMX05PUFVFREVDT05URU5FUi5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgaWYgKHZhbG9yLmluY2x1ZGVzKGl0ZW0pKSB7XG4gICAgICAgIG1lbnNhamUgPSAnTm8gcHVlZGUgY29udGVuZXIgJyArIGl0ZW07XG4gICAgICB9XG4gICAgfSlcbiAgICB0aGlzLnJlc2VydmFkYXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGlmICh2YWxvci50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKGl0ZW0udG9VcHBlckNhc2UoKSkpIHtcbiAgICAgICAgaW5kaWNlID0gKHZhbG9yLnRvVXBwZXJDYXNlKCkuaW5kZXhPZihpdGVtLnRvVXBwZXJDYXNlKCkpKTtcbiAgICAgICAgaWYgKGluZGljZSA9PSAwIHx8ICh0aGlzLnZhbGlkYXJFc3BhY2lvKHZhbG9yLmNoYXJBdChpbmRpY2UgLSAxKSkgJiYgdGhpcy52YWxpZGFyRXNwYWNpbyh2YWxvci5jaGFyQXQoaXRlbS5sZW5ndGggKyBpbmRpY2UpKSkpIHtcbiAgICAgICAgICBtZW5zYWplID0gJ05vIHB1ZWRlIGNvbnRlbmVyICcgKyBpdGVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcbiAgICByZXR1cm4gbWVuc2FqZTtcbiAgfVxuXG4gIHNsZWVwKG1zOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgbXMpKTtcbiAgfVxuXG4gIHZhbGlkYXJUZXh0b0FyY2hpdm9KYXNwZXIodGV4dG86IHN0cmluZyk6IChzdHJpbmcgfCBudWxsKSB7XG4gICAgaWYgKHRleHRvLnRyaW0oKSA9PSAnJyB8fCB0ZXh0byA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gXCJFbCBjYW1wbyBubyBwdWVkZSBlc3RhciB2YWNpb1wiO1xuICAgIH1cbiAgICBpZiAodGV4dG8ubWF0Y2goXCJeW15cXFxcRF0uKlwiKSkge1xuICAgICAgcmV0dXJuIFwiRWwgY2FtcG8gbm8gcHVlZGUgaW5pY2lhciBjb24gbnVtZXJvc1wiO1xuICAgIH1cbiAgICBpZiAodGV4dG8ubWF0Y2goXCJeW15cXFxcU10uKlwiKSkge1xuICAgICAgcmV0dXJuIFwiRWwgY2FtcG8gbm8gcHVlZGUgaW5pY2lhciBjb24gY2FyYWN0ZXJlcyBlbiBibGFuY29cIjtcbiAgICB9XG4gICAgaWYgKCF0ZXh0by5tYXRjaChcIl5bXlxcXFxXXS4qXCIpKSB7XG4gICAgICByZXR1cm4gXCJFbCBjYW1wbyBubyBwdWVkZSBpbmljaWFyIGNvbiBjYXJhY3RlcmVzIGVzcGVjaWFsZXNcIjtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXNpemVXaW5kb3dJRnJhbWUoKSB7XG5cdFx0aWYgKCB3aW5kb3cuZnJhbWVFbGVtZW50ICE9IG51bGwpIHtcblx0XHRcdHRoaXMucmVzaXplSWZyYW1lS2VlcFBvc2l0aW9uKHdpbmRvdy5mcmFtZUVsZW1lbnQpO1xuXHRcdH1cblx0fVxuXHRcblx0LyoqXG5cdCAqIEZ1bmNpb24gcGFyYSBtYW50ZW5lciBsYSBwb3NpY2nDs24gYWN0dWFsIGVuIGVsIGlmcmFtZS5cblx0ICogQHBhcmFtIG9iaiBlcyB1biBcIkZyYW1lRWxlbWVudFwiXG5cdCAqL1xuXHRwcml2YXRlIHJlc2l6ZUlmcmFtZUtlZXBQb3NpdGlvbihvYmopIHtcblx0XHRcblx0XHR2YXIgaWZybSA9IG9iajtcblx0XHR2YXIgZG9jID0gaWZybS5jb250ZW50RG9jdW1lbnQgPyBpZnJtLmNvbnRlbnREb2N1bWVudDogaWZybS5jb250ZW50V2luZG93LmRvY3VtZW50O1xuICAgIHZhciB0YW1hbmlvOiBudW1iZXI9ICB0aGlzLmdldERvY0hlaWdodCggZG9jICkgICsgNDBcblx0XHRpZnJtLnN0eWxlLmhlaWdodCA9IHRhbWFuaW8gKyBcInB4XCI7XG5cdH1cblxuXHRwcml2YXRlIGdldERvY0hlaWdodChkb2Mpe1xuICAgIGNvbnNvbGUubG9nKCdnZXREb2NIZWlnaHQnKVxuXHRcdGxldCBuYXZlZ2Fkb3IgPSB0aGlzLm9idGVuZXJOYXZlZ2Fkb3IoKS50b0xvd2VyQ2FzZSgpO1xuXHRcdHZhciBoZWlnaHQgPSAwO1xuXHRcdGRvYyA9IGRvYyB8fCBkb2N1bWVudDtcbiAgICBjb25zdCBhcHBSb290ID0gZG9jLnF1ZXJ5U2VsZWN0b3IoJ2FwcC1yb290Jyk7XG5cbiAgICBjb25zdCBzd2FsUG9wdXAgPSBkb2MucXVlcnlTZWxlY3RvcignLnN3YWwyLXBvcHVwJyk7XG4gICAgaWYgKHN3YWxQb3B1cCkge1xuICAgICAgICByZXR1cm4gc3dhbFBvcHVwLm9mZnNldEhlaWdodCArIDQwO1xuICAgIH1cblxuICAgIC8vIFNpIGVuY3VlbnRyYSBlbCBlbGVtZW50byA8YXBwLXJvb3Q+LCByZXRvcm5hIHN1IGFsdHVyYVxuICAgIGlmIChhcHBSb290KSB7XG4gICAgICAgIHJldHVybiBhcHBSb290Lm9mZnNldEhlaWdodDtcbiAgICB9XG5cdFx0Ly92YXIgYm9keSA9IGRvYy5ib2R5LCBodG1sID0gZG9jLmRvY3VtZW50RWxlbWVudDtcblx0XHQvL2hlaWdodCA9IE1hdGgubWF4KCBib2R5LnNjcm9sbEhlaWdodCwgYm9keS5vZmZzZXRIZWlnaHQsIFxuXHRcdC8vaHRtbC5jbGllbnRIZWlnaHQsIGh0bWwuc2Nyb2xsSGVpZ2h0LCBodG1sLm9mZnNldEhlaWdodCApO1xuXHRcdFxuXHRcdGlmIChuYXZlZ2Fkb3IuaW5kZXhPZignZmlyZWZveCcpICE9PSAtMSl7XG5cdFx0XHRpZihkb2MuZm9ybURldGFsbGVDb252b2NhdG9yaWEpe1xuXHRcdFx0XHRsZXQgY2FudGlkYWRNaWxlcyA9IGhlaWdodCAvIDEwMDA7XG5cdFx0XHRcdGhlaWdodCA9IGhlaWdodCArIDYwMCArIChjYW50aWRhZE1pbGVzKjQwKVxuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0Ly9cdGNvbnNvbGUud2FybignRkNPIDogbGxhbWEgYSBnZXREb2NIZWlnaHQnKTtcblx0XG5cdFx0cmV0dXJuIGhlaWdodDtcblx0fVxuXG5cdG9idGVuZXJOYXZlZ2Fkb3IoKXtcblx0XHR2YXIgdWE9IG5hdmlnYXRvci51c2VyQWdlbnQsIHRlbSwgXG5cdFx0TT0gdWEubWF0Y2goLyhvcGVyYXxjaHJvbWV8c2FmYXJpfGZpcmVmb3h8bXNpZXx0cmlkZW50KD89XFwvKSlcXC8/XFxzKihcXGQrKS9pKSB8fCBbXTtcblx0XHRpZigvdHJpZGVudC9pLnRlc3QoTVsxXSkpe1xuXHRcdFx0dGVtPSAgL1xcYnJ2WyA6XSsoXFxkKykvZy5leGVjKHVhKSB8fCBbXTtcblx0XHRcdHJldHVybiAnSUUgJysodGVtWzFdIHx8ICcnKTtcblx0XHR9XG5cdFx0aWYoTVsxXT09PSAnQ2hyb21lJyl7XG5cdFx0XHR0ZW09IHVhLm1hdGNoKC9cXGIoT1BSfEVkZ2UpXFwvKFxcZCspLyk7XG5cdFx0XHRpZih0ZW0hPSBudWxsKSByZXR1cm4gdGVtLnNsaWNlKDEpLmpvaW4oJyAnKS5yZXBsYWNlKCdPUFInLCAnT3BlcmEnKTtcblx0XHR9XG5cdFx0TT0gTVsyXT8gW01bMV0sIE1bMl1dOiBbbmF2aWdhdG9yLmFwcE5hbWUsIG5hdmlnYXRvci5hcHBWZXJzaW9uLCAnLT8nXTtcblx0XHRpZigodGVtPSB1YS5tYXRjaCgvdmVyc2lvblxcLyhcXGQrKS9pKSkhPSBudWxsKSBNLnNwbGljZSgxLCAxLCB0ZW1bMV0pO1xuXHRcdHJldHVybiBNLmpvaW4oJyAnKTtcblx0fVxuXG4gIG9idGVuZXJVcmxBcGkodXJsYXBpPzogc3RyaW5nICk6IHN0cmluZyB7XG4gICAgaWYgKHVybGFwaSl7XG4gICAgICByZXR1cm4gdXJsYXBpO1xuICAgIH1cbiAgICBzd2l0Y2ggKHRoaXMuZ2V0VG9rZW5LZXkoJ2FwbGljYWNpb24nKSkge1xuICAgICAgY2FzZSAnMSc6XG4gICAgICAgIHJldHVybiB3aW5kb3dbJ2VudiddWyd1cmxhcGlzYXJhJ10gPyB3aW5kb3dbJ2VudiddWyd1cmxhcGlzYXJhJ10gOiB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KCd1cmxudWNsZW8nKTtcbiAgICAgIGNhc2UgJzEzJzpcbiAgICAgICAgcmV0dXJuIHdpbmRvd1snZW52J11bJ3VybGFwaW1hbmEnXSA/IHdpbmRvd1snZW52J11bJ3VybGFwaW1hbmEnXSA6IHRoaXMuY29va2llU2VydmljZS5nZXQoJ3VybG51Y2xlbycpO1xuICAgICAgY2FzZSAnMTAnOlxuICAgICAgICByZXR1cm4gd2luZG93WydlbnYnXVsndXJsYXBpc2FyYSddID8gd2luZG93WydlbnYnXVsndXJsYXBpc2FyYSddIDogdGhpcy5jb29raWVTZXJ2aWNlLmdldCgndXJsbnVjbGVvJyk7XG4gICAgICAgIC8vcmV0dXJuIHdpbmRvd1snZW52J11bJ3VybGFwaSddID8gd2luZG93WydlbnYnXVsndXJsYXBpJ10gOiB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KCd1cmxudWNsZW8nKTtcbiAgICAgIGNhc2UgJzc3JzpcbiAgICAgICAgcmV0dXJuIHdpbmRvd1snZW52J11bJ3VybGFwaW1hbmFhcHMnXSA/IHdpbmRvd1snZW52J11bJ3VybGFwaW1hbmFhcHMnXSA6IHRoaXMuY29va2llU2VydmljZS5nZXQoJ3VybG51Y2xlbycpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KCd1cmxudWNsZW8nKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFRva2VuS2V5KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuX2RlY29kZVRva2VuKCk7XG4gICAgICByZXR1cm4gZGF0YVtrZXldLnRvU3RyaW5nKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZGVjb2RlVG9rZW4oKTogYW55IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmdldEl0ZW0oJ3Rva2VuJywgJycpO1xuICAgICAgY29uc3QgZGF0YSA9IHRva2VuLnNwbGl0KCcuJylbMV07XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZShhdG9iKGRhdGEpKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgZ2V0SXRlbShrZXk6IHN0cmluZywgZGVmYXVsdFZhbHVlPzogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5vYnRlbmVyQmFzZSgpICsgJ18nICsgIGtleSkgPz8gZGVmYXVsdFZhbHVlO1xuICB9XG5cbiAgY2FtYmlhclRlbWEodGVtYSA6ICgndGVtYUNsYXJvJyB8ICd0ZW1hT3NjdXJvJykpe1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMub2J0ZW5lckJhc2UoKSArICdfJyArJ3RlbWEnLCB0ZW1hKTtcbiAgICBsZXQgbGlua1RlbWEgPSB0aGlzLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZW1hQXBwJykgYXMgSFRNTExpbmtFbGVtZW50O1xuICAgIGxpbmtUZW1hLmhyZWYgPSBgJHt0ZW1hfS5jc3NgXG4gIH1cblxuICBjYWxjdWxhclBvc2ljaW9uRGlhbG9nKCkge1xuICAgIGNvbnN0IHsgeCwgeSB9ID0gdGhpcy5jbGlja1Bvc2l0aW9uU2VydmljZS5nZXRDbGlja1Bvc2l0aW9uKCk7XG5cbiAgICBjb25zb2xlLmxvZygnbGFzdENsaWNrUG9zaXRpb24nKVxuICAgIGNvbnNvbGUubG9nKHgpXG4gICAgY29uc29sZS5sb2coeSlcbiAgICAvL2NvbnN0IGVsZW1lbnRvID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIC8vY29uc3QgZWxlbWVudG9Db29yZGVuYWRhID0gZWxlbWVudG8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAvL2NvbnN0IGlmcmFtZSA9ICB3aW5kb3cuZnJhbWVFbGVtZW50O1xuICAgIHZhciBpZnJtOiBhbnkgPSB3aW5kb3cuZnJhbWVFbGVtZW50O1xuXHRcdHZhciBkb2MgPSBpZnJtLmNvbnRlbnREb2N1bWVudCA/IGlmcm0uY29udGVudERvY3VtZW50OiBpZnJtLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7XG4gICAgdmFyIHRhbWFuaW86IG51bWJlcj0gIHRoaXMuZ2V0RG9jSGVpZ2h0KCBkb2MgKSAgKyA0MFxuICAgIGNvbnN0IGlmcmFtZU9mZnNldFRvcCA9IHRhbWFuaW8gPyAtKHRhbWFuaW8vMikgOiAwO1xuXG4gICAgY29uc3QgZGlhbG9nID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnAtZGlhbG9nJykgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICBpZiAoZGlhbG9nKSB7XG4gICAgICB2YXIgdG9wUG9zaXRpb24gPSBpZnJhbWVPZmZzZXRUb3AgKyB5O1xuICAgICAgY29uc3QgY2FsY3Vsb1Bvc2ljaW9uUG9wdXAgPSB5ICsgKGRpYWxvZy5vZmZzZXRIZWlnaHQvMilcbiAgICAgIGlmIChjYWxjdWxvUG9zaWNpb25Qb3B1cCA+IHRhbWFuaW8pIHtcbiAgICAgICAgdmFyIGRpZmVyZW5jaWEgPSBjYWxjdWxvUG9zaWNpb25Qb3B1cCAtIHRhbWFuaW87XG4gICAgICAgIHRvcFBvc2l0aW9uID0gdG9wUG9zaXRpb24gLSBkaWZlcmVuY2lhIC0gMTA7XG4gICAgICB9XG4gICAgICBkaWFsb2cuc3R5bGUudG9wID0gYCR7dG9wUG9zaXRpb259cHhgO1xuICAgIH1cbiAgfVxuICBcbiAgdmFsaWRhclBhbGFicmEodGV4dG86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHBsZXRyYXMgPSAvXlthLXpBLVpdWzAtOWEtekEtWl0qJC87XG4gICAgcmV0dXJuIHBsZXRyYXMudGVzdCh0ZXh0byk7XG4gIH1cblxuICBpc051bWVyaWModmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhaXNOYU4oTnVtYmVyKHZhbHVlKSk7XG4gIH1cblxuICB2YWxpZGFyRW50ZXJvKHZhbG9yOiBudW1iZXIsIG9ibGlnYXRvcmlvOiBib29sZWFuLCBsb25naXR1ZDogbnVtYmVyLCBjYW1wbzogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRpZiAob2JsaWdhdG9yaW8gJiYgdmFsb3IgPT0gbnVsbCkge1xuXHRcdFx0cmV0dXJuIChjYW1wbyA9PSBudWxsID8gXCJcIiA6IFwiRWwgY2FtcG8gIFxcXCJcIiArIGNhbXBvICsgXCJcXFwiIGVzIFwiKSArIFwiT2JsaWdhdG9yaW8gXCI7XHRcdFx0XG5cdFx0fVxuXHRcdGlmICh2YWxvciAhPSBudWxsKSB7XG5cdFx0XHRpZiAodmFsb3IudG9TdHJpbmcoKS5sZW5ndGggPiBsb25naXR1ZCkge1xuXHRcdFx0XHRyZXR1cm4gXCJMb25naXR1ZCBtYXhpbWEgZGUgXCIgKyBsb25naXR1ZCArIChjYW1wbyA9PSBudWxsID8gXCJcIiA6IChcIiBwYXJhIGVsIGNhbXBvIChcIiArIGNhbXBvICsgXCIpIFwiKSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBudWxsO1xuXHR9XG4gIFxufSJdfQ==
|
|
360
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9zZXJ2aWNpb3MvdXRpbHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFNM0MsTUFBTSxPQUFPLFlBQVk7SUFLSDtJQUF3RDtJQUE0QjtJQUhoRyw4QkFBOEIsR0FBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzdDLFVBQVUsR0FBVSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFBO0lBRW5MLFlBQW9CLGFBQTRCLEVBQTRCLFFBQWtCLEVBQVUsb0JBQTBDO1FBQTlILGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQTRCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFBVSx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO0lBQ2xKLENBQUM7SUFFTSxZQUFZO1FBQ2pCLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNoQixNQUFNLFVBQVUsR0FBRyxnRUFBZ0UsQ0FBQztRQUNwRixNQUFNLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUM1QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUMxQyxNQUFNLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFN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QUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDdEcsQ0FBQztRQUNGLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7dUdBOVhXLFlBQVksK0NBS21DLFFBQVE7MkdBTHZELFlBQVksY0FGWCxNQUFNOzsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBTW9ELE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJ25neC1jb29raWUtc2VydmljZSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDbGlja1Bvc2ljaW9uU2VydmljZSB9IGZyb20gJy4vY2xpY2stcG9zaWNpb24uc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFV0aWxzU2VydmljZSB7XG5cbiAgcHJpdmF0ZSBSRVNFUlZBREFTX1NRTF9OT1BVRURFQ09OVEVORVI6IGFueVtdID0gWyc7J11cbiAgcHJpdmF0ZSByZXNlcnZhZGFzOiBhbnlbXSA9IFsnQUxURVInLCAnREVMRVRFJywgJ0RST1AnLCAnTU9ESUZZJywgJ0NSRUFURScsICdEQVRBQkFTRScsICdUQUJMRScsICdVUERBVEUnLCAnVFJJR0dFUicsICdHUkFOVCcsICdSRVZPS0UnLCAnQ0FMTCcsICdJTlNFUlQnLCAnVFJVTkNBVEUnLCAnVVNFJywgJy0tJ11cbiAgXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29va2llU2VydmljZTogQ29va2llU2VydmljZSwgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsIHByaXZhdGUgY2xpY2tQb3NpdGlvblNlcnZpY2U6IENsaWNrUG9zaWNpb25TZXJ2aWNlKXtcbiAgfVxuICBcbiAgcHVibGljIGdlbmVyYXJMbGF2ZSgpIHtcbiAgICBsZXQgcmVzdWx0ID0gJyc7XG4gICAgY29uc3QgY2hhcmFjdGVycyA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSc7XG4gICAgY29uc3QgY2hhcmFjdGVyc0xlbmd0aCA9IDMyO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hhcmFjdGVyc0xlbmd0aDsgaSsrKSB7XG4gICAgICByZXN1bHQgKz0gY2hhcmFjdGVycy5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hhcmFjdGVyc0xlbmd0aCkpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQudG9Mb3dlckNhc2UoKTtcbiAgfVxuXG5cblxuICBwdWJsaWMgZ2VuZXJhclBpbihjYW50aWRhZDogbnVtYmVyKSB7XG4gICAgbGV0IHJlc3VsdCA9ICcnO1xuICAgIGNvbnN0IGNoYXJhY3RlcnMgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODknO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2FudGlkYWQ7IGkrKykge1xuICAgICAgcmVzdWx0ICs9IGNoYXJhY3RlcnMuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNhbnRpZGFkKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdC50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgcmlnaHRwYWQoc3RyLCBsZW5ndGgsIGNoYXIpIHtcbiAgICBpZiAoc3RyID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHN0ciAhPT0gJ3N0cmluZycgfHwgdHlwZW9mIGxlbmd0aCAhPT0gJ251bWJlcicpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0xvcyBhcmd1bWVudG9zIGRlYmVuIHNlciB1bmEgY2FkZW5hIHkgdW4gbsO6bWVyby4nKTtcbiAgICB9XG5cbiAgICBpZiAoc3RyLmxlbmd0aCA+PSBsZW5ndGgpIHtcbiAgICAgIHJldHVybiBzdHI7XG4gICAgfVxuXG4gICAgY2hhciA9IGNoYXIgfHwgJyAnOyAvLyBVdGlsaXphIHVuIGVzcGFjaW8gY29tbyBjYXLDoWN0ZXIgZGUgcmVsbGVubyBzaSBubyBzZSBwcm9wb3JjaW9uYSB1bm9cblxuICAgIHZhciBwYWRMZW5ndGggPSBsZW5ndGggLSBzdHIubGVuZ3RoO1xuICAgIHZhciBwYWRkaW5nID0gY2hhci5yZXBlYXQocGFkTGVuZ3RoKTtcblxuICAgIHJldHVybiBzdHIgKyBwYWRkaW5nO1xuICB9XG5cbiAgdmFsaWRhckNhbXBvTnVtZXJpY28oZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0O1xuICAgIGNvbnN0IHJlZ2V4ID0gL1teMC05XS9naTtcbiAgICBpbnB1dC52YWx1ZSA9IGlucHV0LnZhbHVlLnJlcGxhY2UocmVnZXgsICcnKTtcbiAgfVxuXG4gIGlzTm90Qmxhbmsoc3RyOiBzdHJpbmcgfCBTdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN0ciAhPSBudWxsICYmIHN0ci50cmltKCkubGVuZ3RoID4gMDtcbiAgfVxuXG4gIGlzQmxhbmsoc3RyOiBzdHJpbmcgfCBTdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN0ciA9PSBudWxsIHx8IHN0cj8udHJpbSgpID09PSAnJztcbiAgfVxuXG4gIHZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKHZhbG9yKTogYm9vbGVhbiB7XG4gICAgLy8gVmVyaWZpY2FyIHNpIGVsIHZhbG9yIG5vIGVzIG51bGwgbmkgdW5kZWZpbmVkXG4gICAgaWYgKHZhbG9yICE9PSBudWxsICYmIHZhbG9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIFZlcmlmaWNhciBzaSBlbCB2YWxvciBubyBlcyB1bmEgY2FkZW5hIHZhY8OtYSAoZW4gY2FzbyBkZSBzZXIgdW5hIGNhZGVuYSlcbiAgICAgIGlmICh0eXBlb2YgdmFsb3IgPT09ICdzdHJpbmcnICYmIHZhbG9yLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgLy8gVmVyaWZpY2FyIHNpIGVsIHZhbG9yIG5vIGVzIHVuIGFycmVnbG8gdmFjw61vIChlbiBjYXNvIGRlIHNlciB1biBhcnJlZ2xvKVxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsb3IpICYmIHZhbG9yLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICAvKmlmICh0eXBlb2YgdmFsb3IgPT09ICdvYmplY3QnICYmIE9iamVjdC5rZXlzKHZhbG9yKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSovXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY2FwaXRhbGl6ZUZ1bGx5KGlucHV0U3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghaW5wdXRTdHJpbmcpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgY29uc3Qgd29yZHMgPSBpbnB1dFN0cmluZy5zcGxpdCgnICcpO1xuICAgIGNvbnN0IGNhcGl0YWxpemVkV29yZHMgPSB3b3Jkcy5tYXAod29yZCA9PiB7XG4gICAgICBpZiAod29yZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJldHVybiB3b3JkLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgd29yZC5zbGljZSgxKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuICcnO1xuICAgIH0pO1xuICAgIGNvbnN0IHJlc3VsdCA9IGNhcGl0YWxpemVkV29yZHMuam9pbignICcpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBvcmRlbmFyU2VsZWN0SXRlbXNBbGZhYmV0aWNhbWVudGUoYXJyYXlEZU9iamV0b3M6IGFueVtdKTogYW55W10ge1xuICAgIGFycmF5RGVPYmpldG9zLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIGNvbnN0IG5vbWJyZUEgPSBhLmxhYmVsLnRvTG93ZXJDYXNlKCk7XG4gICAgICBjb25zdCBub21icmVCID0gYi5sYWJlbC50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICBpZiAobm9tYnJlQSA8IG5vbWJyZUIpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfVxuICAgICAgaWYgKG5vbWJyZUEgPiBub21icmVCKSB7XG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfVxuICAgICAgcmV0dXJuIDA7XG4gICAgfSk7XG4gICAgcmV0dXJuIGFycmF5RGVPYmpldG9zO1xuICB9XG5cbiAgb2J0ZW5lclBhcmFtZXRyb0RlVVJMKHVybFN0cmluZzogc3RyaW5nLCBwYXJhbWV0cm86IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwodXJsU3RyaW5nKTtcbiAgICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHVybC5zZWFyY2gpO1xuICAgIHJldHVybiBzZWFyY2hQYXJhbXMuZ2V0KHBhcmFtZXRybyk7XG4gIH1cblxuICB2YWxpZGFyRW1haWwoZW1haWw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHBhdHJvbkVtYWlsID0gL15bYS16QS1aMC05Ll8lKy1dK0BbYS16QS1aMC05Li1dK1xcLlthLXpBLVpdezIsfSQvO1xuICAgIHJldHVybiBwYXRyb25FbWFpbC50ZXN0KGVtYWlsKTtcbiAgfVxuXG4gIG9idGVuZXJCYXNlKCk6IChzdHJpbmcgfCBudWxsKSB7XG5cbiAgICB2YXIgYmFzZVBvcnRhbDogc3RyaW5nID0gbnVsbDtcbiAgICB2YXIgcGFnaW5hQWN0dWFsOiBhbnkgPSB3aW5kb3cubG9jYXRpb24uaHJlZlxuICAgIHZhciB1cmwgPSBuZXcgVVJMKHBhZ2luYUFjdHVhbCk7XG4gICAgdmFyIHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXModXJsLnNlYXJjaCk7XG4gICAgaWYgKHBhZ2luYUFjdHVhbC50b1N0cmluZygpLmluY2x1ZGVzKCdQb3J0YWxTYXJhJykpIHtcbiAgICAgIGZvciAodmFyIG1hdGNoIG9mIHBhZ2luYUFjdHVhbC5tYXRjaEFsbCgvKD88aW5pY2lvPi4qKVxcLyg/PHNlZ3VyaWRhZD4uKilcXC8oPzxzaXRpbz4uKilcXC8oPzxwYWdpbmE+LiopL2cpKSB7XG4gICAgICAgIGJhc2VQb3J0YWwgPSBtYXRjaC5ncm91cHM/LnNlZ3VyaWRhZDtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHBhcmFtcz8uZ2V0KCd1c19pZCcpKSB7XG4gICAgICBwYWdpbmFBY3R1YWwgPSB3aW5kb3cucGFyZW50LmxvY2F0aW9uLmhyZWY7XG4gICAgICBmb3IgKHZhciBtYXRjaCBvZiBwYWdpbmFBY3R1YWwubWF0Y2hBbGwoLyg/PGluaWNpbz4uKilcXC8oPzxzZWd1cmlkYWQ+LiopXFwvKD88c2l0aW8+LiopXFwvKD88cGFnaW5hPi4qKS9nKSkge1xuICAgICAgICBiYXNlUG9ydGFsID0gbWF0Y2guZ3JvdXBzPy5zZWd1cmlkYWQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHJlZ2V4ID0gL14uKj9cXC9cXC8uKj9cXC8oLio/KVxcLy9nOyAvLyBFeHByZXNpw7NuIHJlZ3VsYXIgcGFyYSBvYnRlbmVyIGxhIHByaW1lcmEgcGFydGUgZGUgbGEgVVJMXG4gICAgICBjb25zdCBtYXRjaCA9IEFycmF5LmZyb20ocGFnaW5hQWN0dWFsLm1hdGNoQWxsKHJlZ2V4KSk7XG5cbiAgICAgIGlmIChtYXRjaCAmJiBtYXRjaFswXSAmJiBtYXRjaFswXVsxXSkge1xuICAgICAgICBiYXNlUG9ydGFsID0gbWF0Y2hbMF1bMV07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBiYXNlUG9ydGFsO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGFyRXNwYWNpbyhjYXJhY3Rlcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVnZXggPSAvXFxzLzsgLy8gTGEgZXhwcmVzacOzbiByZWd1bGFyIHBhcmEgZXNwYWNpb3MgZW4gYmxhbmNvXG4gICAgcmV0dXJuIHJlZ2V4LnRlc3QoY2FyYWN0ZXIpOyAvLyBEZXZ1ZWx2ZSB0cnVlIHNpIGVsIGNhcsOhY3RlciBlcyB1biBlc3BhY2lvIGVuIGJsYW5jb1xuICB9XG5cbiAgcHVibGljIHZhbGlkYXJUZXh0b1NRTCh2YWxvcjogc3RyaW5nLCBvYmxpZ2F0b3JpbzogYm9vbGVhbiwgc2VsZWN0OiBib29sZWFuLCBsb25naXR1ZDogbnVtYmVyLCB2YWxpZGFyU2VudGVuY2lhOiBib29sZWFuKTogKHN0cmluZyB8IG51bGwpIHtcbiAgICAvLyBWZXJpZmljYSBvYmxpZ2F0b3JpZWRhZFxuICAgIGlmIChvYmxpZ2F0b3JpbyAmJiAodmFsb3IgPT0gbnVsbCB8fCB2YWxvci50cmltKCkubGVuZ3RoID09IDAgfHwgdmFsb3IgPT0gJy0tJykpIHtcbiAgICAgIHJldHVybiAnT2JsaWdhdG9yaW8nO1xuICAgIH1cbiAgICAvLyBWZXJpZmljYSBsb25naXR1ZCBtw6F4aW1hXG4gICAgaWYgKGxvbmdpdHVkID4gMCkge1xuICAgICAgaWYgKHZhbG9yICE9IG51bGwgJiYgdmFsb3IgIT0gJy0tJyAmJiB2YWxvci5sZW5ndGggPiBsb25naXR1ZCkge1xuICAgICAgICByZXR1cm4gJ0xvbmdpdHVkIG1heGltYSBkZSAnICsgbG9uZ2l0dWQ7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFJlYWxpemEgbGFzIGRlbcOhcyB2YWxpZGFjaW9uIHNvbG8gZW4gZWwgY2FzbyBkZSBxdWUgbGEgY2FkZW5hIFNRTC92YWxvciBubyBzZWEgdmFjaWFcbiAgICBpZiAodmFsb3IgPT0gbnVsbCB8fCB2YWxvci50cmltKCkubGVuZ3RoID09IDAgfHwgdmFsb3IgPT0gJy0tJylcbiAgICAgIHJldHVybiBudWxsO1xuXG4gICAgaWYgKHZhbGlkYXJTZW50ZW5jaWEpIHtcbiAgICAgIGlmIChzZWxlY3QpIHtcbiAgICAgICAgaWYgKCF2YWxvci50b1VwcGVyQ2FzZSgpLnN0YXJ0c1dpdGgoJ1NFTEVDVCcpKSB7XG4gICAgICAgICAgcmV0dXJuICdFbCB0ZXh0byBkZWJlIGluaWNpYXIgY29uIGxhIHBhbGFicmEgU2VsZWN0JztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHZhbG9yLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoJ1NFTEVDVCcpKSB7XG4gICAgICAgICAgcmV0dXJuICdObyBwdWVkZSBjb250ZW5lciBsYSBwYWxhYnJhIFNlbGVjdCc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdmFyIGluZGljZTogbnVtYmVyO1xuICAgIHZhciBtZW5zYWplOiBzdHJpbmc7XG4gICAgdGhpcy5SRVNFUlZBREFTX1NRTF9OT1BVRURFQ09OVEVORVIuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGlmICh2YWxvci5pbmNsdWRlcyhpdGVtKSkge1xuICAgICAgICBtZW5zYWplID0gJ05vIHB1ZWRlIGNvbnRlbmVyICcgKyBpdGVtO1xuICAgICAgfVxuICAgIH0pXG4gICAgdGhpcy5yZXNlcnZhZGFzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBpZiAodmFsb3IudG9VcHBlckNhc2UoKS5pbmNsdWRlcyhpdGVtLnRvVXBwZXJDYXNlKCkpKSB7XG4gICAgICAgIGluZGljZSA9ICh2YWxvci50b1VwcGVyQ2FzZSgpLmluZGV4T2YoaXRlbS50b1VwcGVyQ2FzZSgpKSk7XG4gICAgICAgIGlmIChpbmRpY2UgPT0gMCB8fCAodGhpcy52YWxpZGFyRXNwYWNpbyh2YWxvci5jaGFyQXQoaW5kaWNlIC0gMSkpICYmIHRoaXMudmFsaWRhckVzcGFjaW8odmFsb3IuY2hhckF0KGl0ZW0ubGVuZ3RoICsgaW5kaWNlKSkpKSB7XG4gICAgICAgICAgbWVuc2FqZSA9ICdObyBwdWVkZSBjb250ZW5lciAnICsgaXRlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gICAgcmV0dXJuIG1lbnNhamU7XG4gIH1cblxuICBzbGVlcChtczogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIG1zKSk7XG4gIH1cblxuICB2YWxpZGFyVGV4dG9BcmNoaXZvSmFzcGVyKHRleHRvOiBzdHJpbmcpOiAoc3RyaW5nIHwgbnVsbCkge1xuICAgIGlmICh0ZXh0by50cmltKCkgPT0gJycgfHwgdGV4dG8gPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIFwiRWwgY2FtcG8gbm8gcHVlZGUgZXN0YXIgdmFjaW9cIjtcbiAgICB9XG4gICAgaWYgKHRleHRvLm1hdGNoKFwiXlteXFxcXERdLipcIikpIHtcbiAgICAgIHJldHVybiBcIkVsIGNhbXBvIG5vIHB1ZWRlIGluaWNpYXIgY29uIG51bWVyb3NcIjtcbiAgICB9XG4gICAgaWYgKHRleHRvLm1hdGNoKFwiXlteXFxcXFNdLipcIikpIHtcbiAgICAgIHJldHVybiBcIkVsIGNhbXBvIG5vIHB1ZWRlIGluaWNpYXIgY29uIGNhcmFjdGVyZXMgZW4gYmxhbmNvXCI7XG4gICAgfVxuICAgIGlmICghdGV4dG8ubWF0Y2goXCJeW15cXFxcV10uKlwiKSkge1xuICAgICAgcmV0dXJuIFwiRWwgY2FtcG8gbm8gcHVlZGUgaW5pY2lhciBjb24gY2FyYWN0ZXJlcyBlc3BlY2lhbGVzXCI7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmVzaXplV2luZG93SUZyYW1lKCkge1xuXHRcdGlmICggd2luZG93LmZyYW1lRWxlbWVudCAhPSBudWxsKSB7XG5cdFx0XHR0aGlzLnJlc2l6ZUlmcmFtZUtlZXBQb3NpdGlvbih3aW5kb3cuZnJhbWVFbGVtZW50KTtcblx0XHR9XG5cdH1cblx0XG5cdC8qKlxuXHQgKiBGdW5jaW9uIHBhcmEgbWFudGVuZXIgbGEgcG9zaWNpw7NuIGFjdHVhbCBlbiBlbCBpZnJhbWUuXG5cdCAqIEBwYXJhbSBvYmogZXMgdW4gXCJGcmFtZUVsZW1lbnRcIlxuXHQgKi9cblx0cHJpdmF0ZSByZXNpemVJZnJhbWVLZWVwUG9zaXRpb24ob2JqKSB7XG5cdFx0XG5cdFx0dmFyIGlmcm0gPSBvYmo7XG5cdFx0dmFyIGRvYyA9IGlmcm0uY29udGVudERvY3VtZW50ID8gaWZybS5jb250ZW50RG9jdW1lbnQ6IGlmcm0uY29udGVudFdpbmRvdy5kb2N1bWVudDtcbiAgICB2YXIgdGFtYW5pbzogbnVtYmVyPSAgdGhpcy5nZXREb2NIZWlnaHQoIGRvYyApICArIDQwXG5cdFx0aWZybS5zdHlsZS5oZWlnaHQgPSB0YW1hbmlvICsgXCJweFwiO1xuXHR9XG5cblx0cHJpdmF0ZSBnZXREb2NIZWlnaHQoZG9jKXtcbiAgICBjb25zb2xlLmxvZygnZ2V0RG9jSGVpZ2h0Jylcblx0XHRsZXQgbmF2ZWdhZG9yID0gdGhpcy5vYnRlbmVyTmF2ZWdhZG9yKCkudG9Mb3dlckNhc2UoKTtcblx0XHR2YXIgaGVpZ2h0ID0gMDtcblx0XHRkb2MgPSBkb2MgfHwgZG9jdW1lbnQ7XG4gICAgY29uc3QgYXBwUm9vdCA9IGRvYy5xdWVyeVNlbGVjdG9yKCdhcHAtcm9vdCcpO1xuXG4gICAgY29uc3Qgc3dhbFBvcHVwID0gZG9jLnF1ZXJ5U2VsZWN0b3IoJy5zd2FsMi1wb3B1cCcpO1xuICAgIGlmIChzd2FsUG9wdXApIHtcbiAgICAgICAgcmV0dXJuIHN3YWxQb3B1cC5vZmZzZXRIZWlnaHQgKyA0MDtcbiAgICB9XG5cbiAgICAvLyBTaSBlbmN1ZW50cmEgZWwgZWxlbWVudG8gPGFwcC1yb290PiwgcmV0b3JuYSBzdSBhbHR1cmFcbiAgICBpZiAoYXBwUm9vdCkge1xuICAgICAgICByZXR1cm4gYXBwUm9vdC5vZmZzZXRIZWlnaHQ7XG4gICAgfVxuXHRcdC8vdmFyIGJvZHkgPSBkb2MuYm9keSwgaHRtbCA9IGRvYy5kb2N1bWVudEVsZW1lbnQ7XG5cdFx0Ly9oZWlnaHQgPSBNYXRoLm1heCggYm9keS5zY3JvbGxIZWlnaHQsIGJvZHkub2Zmc2V0SGVpZ2h0LCBcblx0XHQvL2h0bWwuY2xpZW50SGVpZ2h0LCBodG1sLnNjcm9sbEhlaWdodCwgaHRtbC5vZmZzZXRIZWlnaHQgKTtcblx0XHRcblx0XHRpZiAobmF2ZWdhZG9yLmluZGV4T2YoJ2ZpcmVmb3gnKSAhPT0gLTEpe1xuXHRcdFx0aWYoZG9jLmZvcm1EZXRhbGxlQ29udm9jYXRvcmlhKXtcblx0XHRcdFx0bGV0IGNhbnRpZGFkTWlsZXMgPSBoZWlnaHQgLyAxMDAwO1xuXHRcdFx0XHRoZWlnaHQgPSBoZWlnaHQgKyA2MDAgKyAoY2FudGlkYWRNaWxlcyo0MClcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdC8vXHRjb25zb2xlLndhcm4oJ0ZDTyA6IGxsYW1hIGEgZ2V0RG9jSGVpZ2h0Jyk7XG5cdFxuXHRcdHJldHVybiBoZWlnaHQ7XG5cdH1cblxuXHRvYnRlbmVyTmF2ZWdhZG9yKCl7XG5cdFx0dmFyIHVhPSBuYXZpZ2F0b3IudXNlckFnZW50LCB0ZW0sIFxuXHRcdE09IHVhLm1hdGNoKC8ob3BlcmF8Y2hyb21lfHNhZmFyaXxmaXJlZm94fG1zaWV8dHJpZGVudCg/PVxcLykpXFwvP1xccyooXFxkKykvaSkgfHwgW107XG5cdFx0aWYoL3RyaWRlbnQvaS50ZXN0KE1bMV0pKXtcblx0XHRcdHRlbT0gIC9cXGJydlsgOl0rKFxcZCspL2cuZXhlYyh1YSkgfHwgW107XG5cdFx0XHRyZXR1cm4gJ0lFICcrKHRlbVsxXSB8fCAnJyk7XG5cdFx0fVxuXHRcdGlmKE1bMV09PT0gJ0Nocm9tZScpe1xuXHRcdFx0dGVtPSB1YS5tYXRjaCgvXFxiKE9QUnxFZGdlKVxcLyhcXGQrKS8pO1xuXHRcdFx0aWYodGVtIT0gbnVsbCkgcmV0dXJuIHRlbS5zbGljZSgxKS5qb2luKCcgJykucmVwbGFjZSgnT1BSJywgJ09wZXJhJyk7XG5cdFx0fVxuXHRcdE09IE1bMl0/IFtNWzFdLCBNWzJdXTogW25hdmlnYXRvci5hcHBOYW1lLCBuYXZpZ2F0b3IuYXBwVmVyc2lvbiwgJy0/J107XG5cdFx0aWYoKHRlbT0gdWEubWF0Y2goL3ZlcnNpb25cXC8oXFxkKykvaSkpIT0gbnVsbCkgTS5zcGxpY2UoMSwgMSwgdGVtWzFdKTtcblx0XHRyZXR1cm4gTS5qb2luKCcgJyk7XG5cdH1cblxuICBvYnRlbmVyVXJsQXBpKHVybGFwaT86IHN0cmluZyApOiBzdHJpbmcge1xuICAgIGlmICh1cmxhcGkpe1xuICAgICAgcmV0dXJuIHVybGFwaTtcbiAgICB9XG4gICAgc3dpdGNoICh0aGlzLmdldFRva2VuS2V5KCdhcGxpY2FjaW9uJykpIHtcbiAgICAgIGNhc2UgJzEnOlxuICAgICAgICByZXR1cm4gd2luZG93WydlbnYnXVsndXJsYXBpc2FyYSddID8gd2luZG93WydlbnYnXVsndXJsYXBpc2FyYSddIDogdGhpcy5jb29raWVTZXJ2aWNlLmdldCgndXJsbnVjbGVvJyk7XG4gICAgICBjYXNlICcxMyc6XG4gICAgICAgIHJldHVybiB3aW5kb3dbJ2VudiddWyd1cmxhcGltYW5hJ10gPyB3aW5kb3dbJ2VudiddWyd1cmxhcGltYW5hJ10gOiB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KCd1cmxudWNsZW8nKTtcbiAgICAgIGNhc2UgJzEwJzpcbiAgICAgICAgcmV0dXJuIHdpbmRvd1snZW52J11bJ3VybGFwaXNhcmEnXSA/IHdpbmRvd1snZW52J11bJ3VybGFwaXNhcmEnXSA6IHRoaXMuY29va2llU2VydmljZS5nZXQoJ3VybG51Y2xlbycpO1xuICAgICAgICAvL3JldHVybiB3aW5kb3dbJ2VudiddWyd1cmxhcGknXSA/IHdpbmRvd1snZW52J11bJ3VybGFwaSddIDogdGhpcy5jb29raWVTZXJ2aWNlLmdldCgndXJsbnVjbGVvJyk7XG4gICAgICBjYXNlICc3Nyc6XG4gICAgICAgIHJldHVybiB3aW5kb3dbJ2VudiddWyd1cmxhcGltYW5hYXBzJ10gPyB3aW5kb3dbJ2VudiddWyd1cmxhcGltYW5hYXBzJ10gOiB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KCd1cmxudWNsZW8nKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAgdGhpcy5jb29raWVTZXJ2aWNlLmdldCgndXJsbnVjbGVvJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRUb2tlbktleShrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9kZWNvZGVUb2tlbigpO1xuICAgICAgcmV0dXJuIGRhdGFba2V5XS50b1N0cmluZygpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2RlY29kZVRva2VuKCk6IGFueSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5nZXRJdGVtKCd0b2tlbicsICcnKTtcbiAgICAgIGNvbnN0IGRhdGEgPSB0b2tlbi5zcGxpdCgnLicpWzFdO1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoYXRvYihkYXRhKSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfVxuXG4gIGdldEl0ZW0oa2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMub2J0ZW5lckJhc2UoKSArICdfJyArICBrZXkpID8/IGRlZmF1bHRWYWx1ZTtcbiAgfVxuXG4gIGNhbWJpYXJUZW1hKHRlbWEgOiAoJ3RlbWFDbGFybycgfCAndGVtYU9zY3VybycpKXtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLm9idGVuZXJCYXNlKCkgKyAnXycgKyd0ZW1hJywgdGVtYSk7XG4gICAgbGV0IGxpbmtUZW1hID0gdGhpcy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVtYUFwcCcpIGFzIEhUTUxMaW5rRWxlbWVudDtcbiAgICBsaW5rVGVtYS5ocmVmID0gYCR7dGVtYX0uY3NzYFxuICB9XG5cbiAgY2FsY3VsYXJQb3NpY2lvbkRpYWxvZygpIHtcbiAgICBjb25zdCB7IHgsIHkgfSA9IHRoaXMuY2xpY2tQb3NpdGlvblNlcnZpY2UuZ2V0Q2xpY2tQb3NpdGlvbigpO1xuXG4gICAgY29uc29sZS5sb2coJ2xhc3RDbGlja1Bvc2l0aW9uJylcbiAgICBjb25zb2xlLmxvZyh4KVxuICAgIGNvbnNvbGUubG9nKHkpXG4gICAgLy9jb25zdCBlbGVtZW50byA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAvL2NvbnN0IGVsZW1lbnRvQ29vcmRlbmFkYSA9IGVsZW1lbnRvLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgLy9jb25zdCBpZnJhbWUgPSAgd2luZG93LmZyYW1lRWxlbWVudDtcbiAgICB2YXIgaWZybTogYW55ID0gd2luZG93LmZyYW1lRWxlbWVudDtcblx0XHR2YXIgZG9jID0gaWZybS5jb250ZW50RG9jdW1lbnQgPyBpZnJtLmNvbnRlbnREb2N1bWVudDogaWZybS5jb250ZW50V2luZG93LmRvY3VtZW50O1xuICAgIHZhciB0YW1hbmlvOiBudW1iZXI9ICB0aGlzLmdldERvY0hlaWdodCggZG9jICkgICsgNDBcbiAgICBjb25zdCBpZnJhbWVPZmZzZXRUb3AgPSB0YW1hbmlvID8gLSh0YW1hbmlvLzIpIDogMDtcblxuICAgIGNvbnN0IGRpYWxvZyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5wLWRpYWxvZycpIGFzIEhUTUxFbGVtZW50O1xuXG4gICAgaWYgKGRpYWxvZykge1xuICAgICAgdmFyIHRvcFBvc2l0aW9uID0gaWZyYW1lT2Zmc2V0VG9wICsgeTtcbiAgICAgIGNvbnN0IGNhbGN1bG9Qb3NpY2lvblBvcHVwID0geSArIChkaWFsb2cub2Zmc2V0SGVpZ2h0LzIpXG4gICAgICBpZiAoY2FsY3Vsb1Bvc2ljaW9uUG9wdXAgPiB0YW1hbmlvKSB7XG4gICAgICAgIHZhciBkaWZlcmVuY2lhID0gY2FsY3Vsb1Bvc2ljaW9uUG9wdXAgLSB0YW1hbmlvO1xuICAgICAgICB0b3BQb3NpdGlvbiA9IHRvcFBvc2l0aW9uIC0gZGlmZXJlbmNpYSAtIDEwO1xuICAgICAgfVxuICAgICAgZGlhbG9nLnN0eWxlLnRvcCA9IGAke3RvcFBvc2l0aW9ufXB4YDtcbiAgICB9XG4gIH1cbiAgXG4gIHZhbGlkYXJQYWxhYnJhKHRleHRvOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBwbGV0cmFzID0gL15bYS16QS1aXVswLTlhLXpBLVpdKiQvO1xuICAgIHJldHVybiBwbGV0cmFzLnRlc3QodGV4dG8pO1xuICB9XG5cbiAgaXNOdW1lcmljKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIWlzTmFOKE51bWJlcih2YWx1ZSkpO1xuICB9XG5cbiAgdmFsaWRhckVudGVybyh2YWxvcjogbnVtYmVyLCBvYmxpZ2F0b3JpbzogYm9vbGVhbiwgbG9uZ2l0dWQ6IG51bWJlciwgY2FtcG86IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0aWYgKG9ibGlnYXRvcmlvICYmIHZhbG9yID09IG51bGwpIHtcblx0XHRcdHJldHVybiAoY2FtcG8gPT0gbnVsbCA/IFwiXCIgOiBcIkVsIGNhbXBvICBcXFwiXCIgKyBjYW1wbyArIFwiXFxcIiBlcyBcIikgKyBcIk9ibGlnYXRvcmlvIFwiO1x0XHRcdFxuXHRcdH1cblx0XHRpZiAodmFsb3IgIT0gbnVsbCkge1xuXHRcdFx0aWYgKE1hdGgudHJ1bmModmFsb3IpLnRvU3RyaW5nKCkubGVuZ3RoID4gbG9uZ2l0dWQpIHtcblx0XHRcdFx0cmV0dXJuIFwiTG9uZ2l0dWQgbWF4aW1hIGRlIFwiICsgbG9uZ2l0dWQgKyAoY2FtcG8gPT0gbnVsbCA/IFwiXCIgOiAoXCIgcGFyYSBlbCBjYW1wbyAoXCIgKyBjYW1wbyArIFwiKSBcIikpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuICBcbn0iXX0=
|
|
@@ -1875,7 +1875,7 @@ class UtilsService {
|
|
|
1875
1875
|
return (campo == null ? "" : "El campo \"" + campo + "\" es ") + "Obligatorio ";
|
|
1876
1876
|
}
|
|
1877
1877
|
if (valor != null) {
|
|
1878
|
-
if (valor.toString().length > longitud) {
|
|
1878
|
+
if (Math.trunc(valor).toString().length > longitud) {
|
|
1879
1879
|
return "Longitud maxima de " + longitud + (campo == null ? "" : (" para el campo (" + campo + ") "));
|
|
1880
1880
|
}
|
|
1881
1881
|
}
|