sf-crud 12.0.2 → 12.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/sf-crud.umd.js +7 -3
- package/bundles/sf-crud.umd.js.map +1 -1
- package/esm2015/lib/components/control/control.component.js +2 -2
- package/esm2015/lib/components/registro/registro.component.js +4 -2
- package/esm2015/lib/components/registro-child/registro-child.component.js +4 -2
- package/fesm2015/sf-crud.js +7 -3
- package/fesm2015/sf-crud.js.map +1 -1
- package/package.json +1 -1
|
@@ -63,8 +63,10 @@ export class RegistroChildComponent {
|
|
|
63
63
|
case 'object':
|
|
64
64
|
if (Array.isArray(value))
|
|
65
65
|
value.forEach((val) => jsonpath.value(this.data, val.scope.replace('.properties', ''), val.value));
|
|
66
|
-
else
|
|
66
|
+
else {
|
|
67
|
+
this.values[i][j] = value;
|
|
67
68
|
jsonpath.value(this.data, scope.replace('.properties', ''), value);
|
|
69
|
+
}
|
|
68
70
|
break;
|
|
69
71
|
default:
|
|
70
72
|
this.values[i][j] = value;
|
|
@@ -325,4 +327,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
325
327
|
providers: [MessageService, DialogService]
|
|
326
328
|
}]
|
|
327
329
|
}], ctorParameters: function () { return [{ type: i1.DynamicDialogRef }, { type: i1.DynamicDialogConfig }, { type: i2.MessageService }, { type: i1.DialogService }]; } });
|
|
328
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cm8tY2hpbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2YtY3J1ZC9zcmMvbGliL2NvbXBvbmVudHMvcmVnaXN0cm8tY2hpbGQvcmVnaXN0cm8tY2hpbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2YtY3J1ZC9zcmMvbGliL2NvbXBvbmVudHMvcmVnaXN0cm8tY2hpbGQvcmVnaXN0cm8tY2hpbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUF3QyxNQUFNLHVCQUF1QixDQUFDO0FBQzVGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RCxPQUFPLEtBQUssUUFBUSxNQUFNLFVBQVUsQ0FBQztBQUNyQyxPQUFPLEVBQVcsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RELE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOzs7Ozs7Ozs7O0FBTzFGLE1BQU0sT0FBTyxzQkFBc0I7SUFXakMsWUFDUyxHQUFxQixFQUNyQixNQUEyQixFQUMxQixjQUE4QixFQUM5QixhQUE0QjtRQUg3QixRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUMxQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFaL0IsWUFBTyxHQUFVLElBQUksS0FBSyxFQUFFLENBQUM7UUFHN0IsUUFBRyxHQUFXLEdBQUcsQ0FBQztRQUd6QixtQkFBYyxHQUFHLEtBQUssQ0FBQztJQU9uQixDQUFDO0lBRUwsUUFBUTs7UUFDTixJQUFJ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QUFnQjtnQkFDbkIsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUE7Z0JBQ3JILE1BQU07WUFDUixLQUFLLGlCQUFpQjtnQkFDcEIsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUE7Z0JBQ3RILE1BQU07WUFDUixLQUFLLGdCQUFnQjtnQkFDbkIsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUE7Z0JBQ3JILE1BQU07WUFDUixLQUFLLGVBQWU7Z0JBQ2xCLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFB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QUksRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN6SCxDQUFDO0lBQ0QsZUFBZSxDQUFDLEtBQWEsRUFBRSxLQUFVO1FBQ3ZDLElBQUksT0FBTyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNwRCxJQUFJLElBQUksQ0FBQztRQUNULFFBQVEsT0FBTyxDQUFDLElBQUksRUFBRTtZQUNwQixLQUFLLE1BQU07Z0JBQ1QsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQTtnQkFDM0IsTUFBTTtZQUNSLEtBQUssU0FBUztnQkFDWixJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUE7Z0JBQ2IsTUFBTTtZQUNSO2dCQUNFLElBQUksR0FBRyxLQUFLLENBQUE7Z0JBQ1osTUFBTTtTQUNUO1FBQ0QsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDOztvSEFoVFUsc0JBQXNCO3dHQUF0QixzQkFBc0IsNkNBRnRCLENBQUMsY0FBYyxFQUFDLGFBQWEsQ0FBQywwQkNYM0MsKzhMQXlGQTs0RkQ1RWEsc0JBQXNCO2tCQUxsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFdBQVcsRUFBRSxpQ0FBaUM7b0JBQzlDLFNBQVMsRUFBRSxDQUFDLGNBQWMsRUFBQyxhQUFhLENBQUM7aUJBQzFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSxEeW5hbWljRGlhbG9nQ29uZmlnLCBEeW5hbWljRGlhbG9nUmVmIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcclxuaW1wb3J0IHsgU2hlbWEgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL3NoZW1hLm1vZGVsJztcclxuaW1wb3J0ICogYXMganNvbnBhdGggZnJvbSAnanNvbnBhdGgnO1xyXG5pbXBvcnQgeyBNZXNzYWdlLCBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IFJlZ2lzdHJvRGV0YWxsZUNvbXBvbmVudCB9IGZyb20gJy4uL3JlZ2lzdHJvLWRldGFsbGUvcmVnaXN0cm8tZGV0YWxsZS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItcmVnaXN0cm8tY2hpbGQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWdpc3Ryby1jaGlsZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgcHJvdmlkZXJzOiBbTWVzc2FnZVNlcnZpY2UsRGlhbG9nU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFJlZ2lzdHJvQ2hpbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBwdWJsaWMgdWlFc3F1ZW1hOiBhbnk7XHJcbiAgcHVibGljIGVzcXVlbWE6IFNoZW1hID0gbmV3IFNoZW1hKCk7XHJcbiAgcHVibGljIGRhdGE6IGFueTtcclxuICBwdWJsaWMgZGlhbG9nUmVmPzogRHluYW1pY0RpYWxvZ1JlZjtcclxuICBwdWJsaWMgdHJ4OiBzdHJpbmcgPSAnYyc7XHJcbiAgdmFsdWVzITogYW55W11bXTtcclxuICBjb250cm9scyE6IGFueVtdW107XHJcbiAgY29udHJvbHNMb2FkZWQgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVmOiBEeW5hbWljRGlhbG9nUmVmLFxyXG4gICAgcHVibGljIGNvbmZpZzogRHluYW1pY0RpYWxvZ0NvbmZpZyxcclxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnVpRXNxdWVtYSA9IHRoaXMuY29uZmlnLmRhdGEudWlFc3F1ZW1hWzBdO1xyXG4gICAgdGhpcy5lc3F1ZW1hID0gdGhpcy5jb25maWcuZGF0YS5lc3F1ZW1hO1xyXG4gICAgdGhpcy5kYXRhID0gdGhpcy5jb25maWcuZGF0YT8uZGF0YTtcclxuICAgIGlmICghdGhpcy5kYXRhKSB7XHJcbiAgICAgIHRoaXMuZGF0YSA9IHRoaXMuY3JlYXRlT2JqZWN0KHRoaXMuZXNxdWVtYSk7XHJcbiAgICAgIGpzb25wYXRoLnZhbHVlKHRoaXMuZGF0YSwgJyQuLmlkJywgdGhpcy5jb25maWcuZGF0YS5pZCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmJ1aWxkQ29udHJvbHMoKVxyXG4gIH1cclxuXHJcbiAgICBidWlsZENvbnRyb2xzKCl7XHJcbiAgICAgIHRoaXMuY29udHJvbHNMb2FkZWQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5jb250cm9scyA9IFtdXHJcbiAgICAgIHRoaXMudmFsdWVzID0gW11cclxuICAgICAgdGhpcy51aUVzcXVlbWEuZWxlbWVudHMuZm9yRWFjaCgobGF5b3V0OiBhbnksIGk6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIHRoaXMuY29udHJvbHMucHVzaChbXSlcclxuICAgICAgICB0aGlzLnZhbHVlcy5wdXNoKFtdKVxyXG5cclxuICAgICAgICBsYXlvdXQuZWxlbWVudHM/LmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKCFlbGVtZW50LnNjb3BlKSBjb25zb2xlLmxvZyhcIkNPTkZJR1VSQVIgQklFTiBcIiArIGVsZW1lbnQpXHJcbiAgICAgICAgICB0aGlzLmNvbnRyb2xzW2ldLnB1c2godGhpcy5nZXRDb250cm9sKGVsZW1lbnQuc2NvcGUpKVxyXG4gICAgICAgICAgdGhpcy52YWx1ZXNbaV0ucHVzaCh0aGlzLmdldFZhbHVlKGVsZW1lbnQuc2NvcGUpKVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5jb250cm9sc0xvYWRlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBnZXRDb250cm9sKHNjb3BlOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBqc29ucGF0aC5xdWVyeSh0aGlzLmVzcXVlbWEsIHNjb3BlKVswXTtcclxuICB9XHJcblxyXG4gIGdldFZhbHVlKHNjb3BlOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBqc29ucGF0aC5xdWVyeSh0aGlzLmRhdGEsIHNjb3BlLnJlcGxhY2UoJy5wcm9wZXJ0aWVzJywgJycpKVswXTtcclxuICB9XHJcblxyXG4gIHNldFZhbHVlKHZhbHVlOiBhbnksIHNjb3BlOiBzdHJpbmcsIGk6IG51bWJlciwgajogbnVtYmVyKSB7XHJcbiAgICBzd2l0Y2ggKHR5cGVvZiAodmFsdWUpKSB7XHJcbiAgICAgIGNhc2UgJ29iamVjdCc6XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB2YWx1ZS5mb3JFYWNoKCh2YWw6IGFueSkgPT4ganNvbnBhdGgudmFsdWUodGhpcy5kYXRhLCB2YWwuc2NvcGUucmVwbGFjZSgnLnByb3BlcnRpZXMnLCAnJyksIHZhbC52YWx1ZSkpXHJcbiAgICAgICAgZWxzZSBqc29ucGF0aC52YWx1ZSh0aGlzLmRhdGEsIHNjb3BlLnJlcGxhY2UoJy5wcm9wZXJ0aWVzJywgJycpLCB2YWx1ZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgdGhpcy52YWx1ZXNbaV1bal0gPSB2YWx1ZTtcclxuICAgICAgICBqc29ucGF0aC52YWx1ZSh0aGlzLmRhdGEsIHNjb3BlLnJlcGxhY2UoJy5wcm9wZXJ0aWVzJywgJycpLCB2YWx1ZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICB0aGlzLmFwcGx5VmFsdWVzT25FdmVudCgnb25DaGFuZ2UnLCB0aGlzLmVzcXVlbWEsIHNjb3BlLnJlcGxhY2UoJyQuLnByb3BlcnRpZXMuJywgJycpKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZU9iamVjdChlc3F1ZW1hOiBTaGVtYSkge1xyXG4gICAgbGV0IG9iamVjdCA9IHt9O1xyXG4gICAgY29uc3QgcmVzdWx0QXJyYXk6IGFueVtdID0gW107XHJcbiAgICBzd2l0Y2ggKGVzcXVlbWEudHlwZSkge1xyXG4gICAgICBjYXNlICdudW1lcmljJzpcclxuICAgICAgICByZXR1cm4gZXNxdWVtYT8uZGVmYXVsdCB8fCAwO1xyXG4gICAgICBjYXNlICdzdHJpbmcnOlxyXG4gICAgICBjYXNlICdkYXRlJzpcclxuICAgICAgICByZXR1cm4gZXNxdWVtYT8uZGVmYXVsdCA/IHRoaXMuc2V0RGVmYXVsdFZhbHVlKGVzcXVlbWEuZGVmYXVsdCkgOiBudWxsO1xyXG4gICAgICBjYXNlICdib29sZWFuJzpcclxuICAgICAgICByZXR1cm4gZXNxdWVtYT8uZGVmYXVsdCB8fCBmYWxzZTtcclxuICAgICAgY2FzZSAnZmlsZSc6XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIGNhc2UgJ2FycmF5JzpcclxuICAgICAgY2FzZSAnb2JqZWN0JzpcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBlc3F1ZW1hPy5wcm9wZXJ0aWVzKSB7XHJcbiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqZWN0LCBrZXksIHsgdmFsdWU6IHRoaXMuY3JlYXRlT2JqZWN0Q2hpbGQoZXNxdWVtYT8ucHJvcGVydGllc1trZXldKSwgd3JpdGFibGU6IHRydWUsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9KVxyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiBvYmplY3Q7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVPYmplY3RDaGlsZChlc3F1ZW1hOiBTaGVtYSkge1xyXG4gICAgbGV0IG9iamVjdCA9IHt9O1xyXG4gICAgY29uc3QgcmVzdWx0QXJyYXk6IGFueVtdID0gW107XHJcbiAgICBzd2l0Y2ggKGVzcXVlbWEudHlwZSkge1xyXG4gICAgICBjYXNlICdudW1lcmljJzpcclxuICAgICAgICByZXR1cm4gZXNxdWVtYT8uZGVmYXVsdCB8fCAwO1xyXG4gICAgICBjYXNlICdzdHJpbmcnOlxyXG4gICAgICBjYXNlICdkYXRlJzpcclxuICAgICAgICByZXR1cm4gZXNxdWVtYT8uZGVmYXVsdCA/IHRoaXMuc2V0RGVmYXVsdFZhbHVlKGVzcXVlbWEuZGVmYXVsdCkgOiBudWxsO1xyXG4gICAgICBjYXNlICdib29sZWFuJzpcclxuICAgICAgICByZXR1cm4gZXNxdWVtYT8uZGVmYXVsdCB8fCBmYWxzZTtcclxuICAgICAgY2FzZSAnZmlsZSc6XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIGNhc2UgJ2FycmF5JzpcclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICAgIGNhc2UgJ29iamVjdCc6XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gZXNxdWVtYT8ucHJvcGVydGllcykge1xyXG4gICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iamVjdCwga2V5LCB7IHZhbHVlOiB0aGlzLmNyZWF0ZU9iamVjdChlc3F1ZW1hPy5wcm9wZXJ0aWVzW2tleV0pLCB3cml0YWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG9iamVjdDtcclxuICB9XHJcblxyXG4gIHNldERlZmF1bHRWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBsZXQgZGF0YSA9IG51bGw7XHJcbiAgICBsZXQgdWFjdGl2bztcclxuICAgIHN3aXRjaCAodmFsdWUpIHtcclxuICAgICAgY2FzZSAnQHVhY3Rpdm8nOlxyXG4gICAgICAgIHVhY3Rpdm8gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdvU2Vzc2lvblRGTScpIHx8ICd7fScpXHJcbiAgICAgICAgaWYgKCF1YWN0aXZvKSBjb25zb2xlLmxvZygnVmFsaWRhciBjb25maWd1cmFjaW9uIGRlIHNlc2lvbicpXHJcbiAgICAgICAgZWxzZSBkYXRhID0gYCR7dWFjdGl2by5Vc3VhcmlvU2lzdGVtYS5URE9DfS0ke3VhY3Rpdm8uVXN1YXJpb1Npc3RlbWEuTkRPQ31gXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0B0ZG9jYWN0aXZvJzpcclxuICAgICAgICB1YWN0aXZvID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd1c3JTZXNpb24nKSB8fCAne30nKVxyXG4gICAgICAgIGlmICghdWFjdGl2bykgY29uc29sZS5sb2coJ1ZhbGlkYXIgY29uZmlndXJhY2lvbiBkZSBzZXNpb24nKVxyXG4gICAgICAgIGVsc2UgZGF0YSA9IHVhY3Rpdm8uVXN1YXJpb1Npc3RlbWEuVERPQ1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdAbmRvY2FjdGl2byc6XHJcbiAgICAgICAgdWFjdGl2byA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndXNyU2VzaW9uJykgfHwgJ3t9JylcclxuICAgICAgICBpZiAoIXVhY3Rpdm8pIGNvbnNvbGUubG9nKCdWYWxpZGFyIGNvbmZpZ3VyYWNpb24gZGUgc2VzaW9uJylcclxuICAgICAgICBlbHNlIGRhdGEgPSB1YWN0aXZvLlVzdWFyaW9TaXN0ZW1hLk5ET0NcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnQGhveSc6XHJcbiAgICAgICAgZGF0YSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgZGF0YSA9IHZhbHVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRhdGFcclxuICB9XHJcblxyXG4gIHN1Ym1pdCgpIHtcclxuICAgIHRoaXMuYXBwbHlWYWx1ZXNPbkV2ZW50KCdvblN1Ym1pdCcsIHRoaXMuZXNxdWVtYSk7XHJcbiAgICBpZiAoIXRoaXMudmFsaWRhdGVEYXRhKCkpIHJldHVybjtcclxuICAgIHRoaXMucmVmLmNsb3NlKHRoaXMuZGF0YSk7XHJcbiAgfVxyXG5cclxuICBjYW5jZWwoKSB7XHJcbiAgICB0aGlzLmFwcGx5VmFsdWVzT25FdmVudCgnb25DYW5jZWwnLCB0aGlzLmVzcXVlbWEpO1xyXG4gICAgdGhpcy5yZWYuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlRGF0YSgpIHtcclxuICAgIGlmICh0aGlzLmVzcXVlbWEudmFsaWRhdGlvbnMudHlwZSA9PSAnbG9jYWwnKSByZXR1cm4gdGhpcy52YWxpZGF0ZURhdGFMb2NhbCgpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZURhdGFMb2NhbCgpIHtcclxuICAgIGxldCBlcnI6IHN0cmluZ1tdID0gW11cclxuICAgIHRoaXMuZXNxdWVtYS52YWxpZGF0aW9ucy5yZXF1aXJlZC5mb3JFYWNoKCh4OiBhbnkpID0+IHtcclxuICAgICAgaWYgKCFqc29ucGF0aC5xdWVyeSh0aGlzLmRhdGEsIHguZmllbGQpWzBdKSBlcnIucHVzaCh4Lm1lc3NhZ2UpO1xyXG4gICAgfSlcclxuICAgIGlmIChlcnIubGVuZ3RoICE9IDApIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICd3YXJuJywgZGV0YWlsOiBlcnIuam9pbignLiAnKSB9KVxyXG4gICAgcmV0dXJuIGVyci5sZW5ndGggPT0gMDtcclxuICB9XHJcblxyXG4gIGFwcGx5VmFsdWVzT25FdmVudChldmVudDogc3RyaW5nLCBlc3F1ZW1hOiBTaGVtYSwgc2NvcGU/OiBzdHJpbmcpIHtcclxuICAgIGlmIChzY29wZSkge1xyXG4gICAgICBpZiAoZXNxdWVtYS5wcm9wZXJ0aWVzW3Njb3BlXVtldmVudF0pIHtcclxuICAgICAgICBlc3F1ZW1hLnByb3BlcnRpZXNbc2NvcGVdW2V2ZW50XS5mb3JFYWNoKCh2YWx1ZTogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNldFZhbHVlRXZlbnQodGhpcy5kYXRhLCB2YWx1ZSlcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBlc3F1ZW1hLnByb3BlcnRpZXMpIHtcclxuICAgICAgICBpZiAoZXNxdWVtYS5wcm9wZXJ0aWVzW2tleV1bZXZlbnRdKSB7XHJcbiAgICAgICAgICBlc3F1ZW1hLnByb3BlcnRpZXNba2V5XVtldmVudF0uZm9yRWFjaCgodmFsdWU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldFZhbHVlRXZlbnQodGhpcy5kYXRhLCB2YWx1ZSlcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRWYWx1ZUV2ZW50KGRhdGE6IGFueSwgcGFyYW1zOiB7IG9wOiBzdHJpbmcsIHNjb3BlOiBzdHJpbmdbXSwga2V5OiBhbnksIHNlcGFyYXRvcjogc3RyaW5nIH0pIHtcclxuICAgIGxldCB2YWx1ZTtcclxuICAgIGxldCBkYXRlID0gbW9tZW50KG5ldyBEYXRlKCkpO1xyXG4gICAgc3dpdGNoIChwYXJhbXMub3ApIHtcclxuICAgICAgY2FzZSAnc3VtJzpcclxuICAgICAgICB2YWx1ZSA9IGpzb25wYXRoLnF1ZXJ5KGRhdGEsIHBhcmFtcz8uc2NvcGVbMF0pLnJlZHVjZSgoYWNjLCBjdXIpID0+IGFjYyArPSBwYXJhbXM/LmtleSA/IGN1cltwYXJhbXMua2V5XSA6IGN1ciwgMClcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnY29uY2F0JzpcclxuICAgICAgICBsZXQgYXJyYXk6IHN0cmluZ1tdID0gW11cclxuICAgICAgICBwYXJhbXM/LmtleT8ucmVkdWNlKChhY2M6IGFueVtdLCBjdXI6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgYXJyYXkucHVzaChqc29ucGF0aC5xdWVyeShkYXRhLCBjdXIpWzBdKVxyXG4gICAgICAgIH0sIFtdKVxyXG4gICAgICAgIGlmIChwYXJhbXM/LnNlcGFyYXRvcikganNvbnBhdGgudmFsdWUoZGF0YSwgcGFyYW1zLnNjb3BlWzBdLCBhcnJheS5qb2luKHBhcmFtcz8uc2VwYXJhdG9yIHx8ICcgJykpXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2VuYWJsZSc6XHJcbiAgICAgICAganNvbnBhdGgudmFsdWUodGhpcy5lc3F1ZW1hLCBwYXJhbXMuc2NvcGVbMF0sIGZhbHNlKVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdkaXNhYmxlZCc6XHJcbiAgICAgICAganNvbnBhdGgudmFsdWUodGhpcy5lc3F1ZW1hLCBwYXJhbXMuc2NvcGVbMF0sIHRydWUpXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3JlcGxhY2U6ZW5kcG9pbnQnOlxyXG4gICAgICAgIGpzb25wYXRoLnZhbHVlKHRoaXMuZXNxdWVtYSwgcGFyYW1zLnNjb3BlWzBdLCBqc29ucGF0aC5xdWVyeSh0aGlzLmVzcXVlbWEsIHBhcmFtcy5zY29wZVsxXSlbMF0ucmVwbGFjZShwYXJhbXMuc2NvcGVbMl0sIGpzb25wYXRoLnF1ZXJ5KGRhdGEsIGAkLi4ke3BhcmFtcy5rZXl9YCkpKVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdzZXROdWxsJzpcclxuICAgICAgICBqc29ucGF0aC52YWx1ZSh0aGlzLmRhdGEsIGAkLiR7cGFyYW1zLmtleX1gLCBudWxsKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZGF0ZWRpZmY6eWVhcnMnOlxyXG4gICAgICAgIGpzb25wYXRoLnZhbHVlKHRoaXMuZGF0YSwgcGFyYW1zLnNjb3BlWzBdLCBkYXRlLmRpZmYobW9tZW50KGpzb25wYXRoLnF1ZXJ5KHRoaXMuZGF0YSwgcGFyYW1zLnNjb3BlWzFdKVswXSksICd5ZWFycycpKVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdkYXRlZGlmZjptb250aHMnOlxyXG4gICAgICAgIGpzb25wYXRoLnZhbHVlKHRoaXMuZGF0YSwgcGFyYW1zLnNjb3BlWzBdLCBkYXRlLmRpZmYobW9tZW50KGpzb25wYXRoLnF1ZXJ5KHRoaXMuZGF0YSwgcGFyYW1zLnNjb3BlWzFdKVswXSksICdtb250aHMnKSlcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZGF0ZWRpZmY6d2Vla3MnOlxyXG4gICAgICAgIGpzb25wYXRoLnZhbHVlKHRoaXMuZGF0YSwgcGFyYW1zLnNjb3BlWzBdLCBkYXRlLmRpZmYobW9tZW50KGpzb25wYXRoLnF1ZXJ5KHRoaXMuZGF0YSwgcGFyYW1zLnNjb3BlWzFdKVswXSksICd3ZWVrcycpKVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdkYXRlZGlmZjpkYXlzJzpcclxuICAgICAgICBqc29ucGF0aC52YWx1ZSh0aGlzLmRhdGEsIHBhcmFtcy5zY29wZVswXSwgZGF0ZS5kaWZmKG1vbWVudChqc29ucGF0aC5xdWVyeSh0aGlzLmRhdGEsIHBhcmFtcy5zY29wZVsxXSlbMF0pLCAnZGF5cycpKVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgc2VuZE5vdGlmaWNhdGlvbihtZXNzYWdlOiBNZXNzYWdlKSB7XHJcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZChtZXNzYWdlKVxyXG4gIH1cclxuXHJcbiAgYWRkT2JqZWN0QXJyYXkoZWxlbWVudDogYW55KSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKFJlZ2lzdHJvRGV0YWxsZUNvbXBvbmVudCwge1xyXG4gICAgICBoZWFkZXI6IGVsZW1lbnQubGFiZWwgPyBlbGVtZW50LmxhYmVsIDogJ0RldGFsbGUnLFxyXG4gICAgICB3aWR0aDogJzcwJScsXHJcbiAgICAgIG1vZGFsOiB0cnVlLFxyXG4gICAgICBjbG9zYWJsZTogZmFsc2UsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICB1aUVzcXVlbWE6IHsgLi4uZWxlbWVudC5lbGVtZW50cyB9LFxyXG4gICAgICAgIGVzcXVlbWE6IHRoaXMuZ2V0Q29udHJvbChlbGVtZW50LnNjb3BlKSxcclxuICAgICAgICBpZDogdGhpcy5nZXRWYWx1ZShlbGVtZW50LnNjb3BlKS5sZW5ndGggKyAxXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5vbkNsb3NlLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChkYXRhKSB0aGlzLmRhdGFbZWxlbWVudC5zY29wZS5yZXBsYWNlKCckLi5wcm9wZXJ0aWVzLicsICcnKV0ucHVzaChkYXRhKTtcclxuICAgICAgIHRoaXMuYXBwbHlWYWx1ZXNPbkV2ZW50KCdvbkNoYW5nZScsIHRoaXMuZXNxdWVtYSwgZWxlbWVudC5zY29wZS5yZXBsYWNlKCckLi5wcm9wZXJ0aWVzLicsICcnKSlcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBlZGl0Um93KGVsZW1lbnQ6IGFueSwgZGF0YTogYW55LCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKFJlZ2lzdHJvRGV0YWxsZUNvbXBvbmVudCwge1xyXG4gICAgICBoZWFkZXI6IGVsZW1lbnQubGFiZWwgPyBlbGVtZW50LmxhYmVsIDogJ0RldGFsbGUnLFxyXG4gICAgICB3aWR0aDogJzcwJScsXHJcbiAgICAgIG1vZGFsOiB0cnVlLFxyXG4gICAgICBjbG9zYWJsZTogZmFsc2UsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICB1aUVzcXVlbWE6IHsgLi4uZWxlbWVudC5lbGVtZW50cyB9LFxyXG4gICAgICAgIGVzcXVlbWE6IHRoaXMuZ2V0Q29udHJvbChlbGVtZW50LnNjb3BlKSxcclxuICAgICAgICBkYXRhOiB7IC4uLmRhdGEgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgdGhpcy5kaWFsb2dSZWYub25DbG9zZS5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoZGF0YSkgdGhpcy5kYXRhW2VsZW1lbnQuc2NvcGUucmVwbGFjZSgnJC4ucHJvcGVydGllcy4nLCAnJyldW2luZGV4XSA9IGRhdGE7XHJcbiAgICAgIHRoaXMuYXBwbHlWYWx1ZXNPbkV2ZW50KCdvbkNoYW5nZScsIHRoaXMuZXNxdWVtYSwgZWxlbWVudC5zY29wZS5yZXBsYWNlKCckLi5wcm9wZXJ0aWVzLicsICcnKSlcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBkZWxldGVSb3coZWxlbWVudDogYW55LCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmRhdGFbZWxlbWVudC5zY29wZS5yZXBsYWNlKCckLi5wcm9wZXJ0aWVzLicsICcnKV0uc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIGluZGV4ID0gMTtcclxuICAgIHRoaXMuZGF0YVtlbGVtZW50LnNjb3BlLnJlcGxhY2UoJyQuLnByb3BlcnRpZXMuJywgJycpXS5mb3JFYWNoKChlbDogYW55KSA9PiB7XHJcbiAgICAgIGVsLmlkID0gaW5kZXg7XHJcbiAgICAgIGluZGV4Kys7XHJcbiAgICB9KVxyXG4gICAgdGhpcy5hcHBseVZhbHVlc09uRXZlbnQoJ29uQ2hhbmdlJywgdGhpcy5lc3F1ZW1hLCBlbGVtZW50LnNjb3BlLnJlcGxhY2UoJyQuLnByb3BlcnRpZXMuJywgJycpKVxyXG4gIH1cclxuXHJcbiAgYXBwbHlWYWx1ZXNGcm9tT2JqZWN0KGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudC5kYXRhKSBldmVudC5vcHRpb25WYWx1ZS5mb3JFYWNoKCh2YWx1ZTogYW55KSA9PiBqc29ucGF0aC52YWx1ZSh0aGlzLmRhdGEsIHZhbHVlLnNjb3BlLnJlcGxhY2UoJy5wcm9wZXJ0aWVzJywnJyksIHRoaXMuYXBseUZvcm1hdFZhbHVlKHZhbHVlLnNjb3BlLCBldmVudC5kYXRhW3ZhbHVlLmtleV0pKSk7XHJcbiAgICBlbHNlIGV2ZW50Lm9wdGlvblZhbHVlLmZvckVhY2goKHZhbHVlOiBhbnkpID0+IGpzb25wYXRoLnZhbHVlKHRoaXMuZGF0YSwgdmFsdWUuc2NvcGUucmVwbGFjZSgnLnByb3BlcnRpZXMnLCcnKSwgbnVsbCkpO1xyXG4gIH1cclxuICBhcGx5Rm9ybWF0VmFsdWUoc2NvcGU6IHN0cmluZywgdmFsdWU6IGFueSkge1xyXG4gICAgbGV0IGNvbnRyb2wgPSBqc29ucGF0aC5xdWVyeSh0aGlzLmVzcXVlbWEsIHNjb3BlKVswXVxyXG4gICAgbGV0IHJlc3A7XHJcbiAgICBzd2l0Y2ggKGNvbnRyb2wudHlwZSkge1xyXG4gICAgICBjYXNlICdkYXRlJzpcclxuICAgICAgICByZXNwID0gbmV3IERhdGUoYCR7dmFsdWV9YClcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnbnVtZXJpYyc6XHJcbiAgICAgICAgcmVzcCA9ICt2YWx1ZVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJlc3AgPSB2YWx1ZVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3BcclxuICB9XHJcbn1cclxuIiwiPHAtdG9hc3Q+PC9wLXRvYXN0PlxyXG48ZGl2ICpuZ0lmPVwiY29udHJvbHNMb2FkZWRcIj5cclxuPGRpdiAqbmdGb3I9XCJsZXQgZWxlbWVudCBvZiB1aUVzcXVlbWEuZWxlbWVudHM7IGxldCBpID0gaW5kZXhcIiBbY2xhc3NdPVwiZWxlbWVudD8uY2xhc3NcIiAjYT5cclxuICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImVsZW1lbnQudHlwZVwiPlxyXG4gICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidMYWJlbCdcIiBbc3R5bGVdPVwiZWxlbWVudD8uc3R5bGVcIj5cclxuICAgICAgICAgICAge3tlbGVtZW50Py5sYWJlbH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0hvcml6b250YWxMYXlvdXQnXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGVsIG9mIGVsZW1lbnQuZWxlbWVudHM7IGxldCBqID1pbmRleFwiIFtjbGFzc109XCJlbD8uY2xhc3NcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImVsLnR5cGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c2YtY29udHJvbCAqbmdTd2l0Y2hDYXNlPVwiJ0NvbnRyb2wnXCIgW2NvbnRyb2xdPVwiY29udHJvbHNbaV1bal1cIiBbbGFiZWxdPVwiZWwubGFiZWxcIiBbdmFsdWVdPVwidmFsdWVzW2ldW2pdXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHNldFZhbHVlKT1cInNldFZhbHVlKCRldmVudCwgZWwuc2NvcGUsIGksIGopXCIgKHNlbmROb3RpZmljYXRpb24pPVwic2VuZE5vdGlmaWNhdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHNlbmRPYmplY3QpPVwiYXBwbHlWYWx1ZXNGcm9tT2JqZWN0KCRldmVudClcIj48L3NmLWNvbnRyb2w+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ1ZlcnRpY2FsTGF5b3V0J1wiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBlbCBvZiBlbGVtZW50LmVsZW1lbnRzOyBsZXQgayA9aW5kZXhcIiBbY2xhc3NdPVwiZWw/LmNsYXNzXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJlbC50eXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNmLWNvbnRyb2wgKm5nU3dpdGNoQ2FzZT1cIidDb250cm9sJ1wiIFtjb250cm9sXT1cImNvbnRyb2xzW2ldW2tdXCIgW2xhYmVsXT1cImVsLmxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlc1tpXVtrXVwiIChzZXRWYWx1ZSk9XCJzZXRWYWx1ZSgkZXZlbnQsIGVsLnNjb3BlLCBpLCBrKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChzZW5kTm90aWZpY2F0aW9uKT1cInNlbmROb3RpZmljYXRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChzZW5kT2JqZWN0KT1cImFwcGx5VmFsdWVzRnJvbU9iamVjdCgkZXZlbnQpXCI+PC9zZi1jb250cm9sPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidUYWJsZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtdGFibGUgW3ZhbHVlXT1cImdldFZhbHVlKGVsLnNjb3BlKVwiIFtjb2x1bW5zXT1cImdldENvbnRyb2woZWwuc2NvcGUpLmNvbmZpZy5jb2x1bW5zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY2FwdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSBpY29uPVwicGkgcGktcGx1c1wiIChjbGljayk9XCJhZGRPYmplY3RBcnJheShlbClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1zdWNjZXNzXCI+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjb2wubGFiZWx9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidHJ4ID09ICdjJyB8fCB0cnggPT0gJ3UnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1yb3dEYXRhIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiIFtuZ1N3aXRjaF09XCJjb2wudHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RleHQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7cm93RGF0YVtjb2wuY29sXX19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2N1cnJlbmN5OlVTRCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tyb3dEYXRhW2NvbC5jb2xdIHwgY3VycmVuY3k6ICdVU0QnfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGF0ZTp5eXl5LW1tLWRkJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3Jvd0RhdGFbY29sLmNvbF0gfCBkYXRlOiAneXl5eS1tbS1kZCd9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkYXRlOmRkL21tL3l5eXknXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7cm93RGF0YVtjb2wuY29sXSB8IGRhdGU6ICdkZC9NTS95eXl5J319PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2Jvb2xlYW4nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cInJvd0RhdGFbY29sLmNvbF1cIiBjbGFzcz1cInBpIHBpLWNoZWNrXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFyb3dEYXRhW2NvbC5jb2xdXCIgY2xhc3M9XCJwaSBwaS10aW1lc1wiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidHJ4ID09ICdjJyB8fCB0cnggPT0gJ3UnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0Um93KGVsLCByb3dEYXRhLCByb3dJbmRleClcIiBpY29uPVwicGkgcGktcGVuY2lsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLWluZm8gbXItMVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiZGVsZXRlUm93KGVsLCByb3dJbmRleClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPVwicGkgcGktdHJhc2hcIiBjbGFzcz1cInAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tZGFuZ2VyXCI+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wLXRhYmxlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidDb250cm9sJ1wiPlxyXG4gICAgICAgICAgICA8c2YtY29udHJvbCBbY29udHJvbF09XCJnZXRDb250cm9sKGVsZW1lbnQuc2NvcGUpXCIgW2xhYmVsXT1cImVsZW1lbnQubGFiZWxcIj48L3NmLWNvbnRyb2w+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlciBtdC0yXCI+XHJcbiAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSB0eXBlPVwiYnV0dG9uXCIgbGFiZWw9XCJHdWFyZGFyXCIgKGNsaWNrKT1cInN1Ym1pdCgpXCIgY2xhc3M9XCJtci0yXCI+PC9idXR0b24+XHJcbiAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSB0eXBlPVwiYnV0dG9uXCIgbGFiZWw9XCJDYW5jZWxhclwiIChjbGljayk9XCJjYW5jZWwoKVwiIGNsYXNzPVwicC1idXR0b24tZGFuZ2VyXCI+PC9idXR0b24+XHJcbjwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
330
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cm8tY2hpbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2YtY3J1ZC9zcmMvbGliL2NvbXBvbmVudHMvcmVnaXN0cm8tY2hpbGQvcmVnaXN0cm8tY2hpbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2YtY3J1ZC9zcmMvbGliL2NvbXBvbmVudHMvcmVnaXN0cm8tY2hpbGQvcmVnaXN0cm8tY2hpbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUF3QyxNQUFNLHVCQUF1QixDQUFDO0FBQzVGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RCxPQUFPLEtBQUssUUFBUSxNQUFNLFVBQVUsQ0FBQztBQUNyQyxPQUFPLEVBQVcsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RELE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOzs7Ozs7Ozs7O0FBTzFGLE1BQU0sT0FBTyxzQkFBc0I7SUFXakMsWUFDUyxHQUFxQixFQUNyQixNQUEyQixFQUMxQixjQUE4QixFQUM5QixhQUE0QjtRQUg3QixRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUMxQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFaL0IsWUFBTyxHQUFVLElBQUksS0FBSyxFQUFFLENBQUM7UUFHN0IsUUFBRyxHQUFXLEdBQUcsQ0FBQztRQUd6QixtQkFBYyxHQUFHLEtBQUssQ0FBQztJQU9uQixDQUFDO0lBRUwsUUFBUTs7UUFDTixJQUFJ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QUFJLEVBQUUsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ25ELE1BQU07WUFDUixLQUFLLGdCQUFnQjtnQkFDbkIsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUE7Z0JBQ3JILE1BQU07WUFDUixLQUFLLGlCQUFpQjtnQkFDcEIsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUE7Z0JBQ3RILE1BQU07WUFDUixLQUFLLGdCQUFnQjtnQkFDbkIsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUE7Z0JBQ3JILE1BQU07WUFDUixLQUFLLGVBQWU7Z0JBQ2xCLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFD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LFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN6SCxDQUFDO0lBQ0QsZUFBZSxDQUFDLEtBQWEsRUFBRSxLQUFVO1FBQ3ZDLElBQUksT0FBTyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNwRCxJQUFJLElBQUksQ0FBQztRQUNULFFBQVEsT0FBTyxDQUFDLElBQUksRUFBRTtZQUNwQixLQUFLLE1BQU07Z0JBQ1QsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQTtnQkFDM0IsTUFBTTtZQUNSLEtBQUssU0FBUztnQkFDWixJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUE7Z0JBQ2IsTUFBTTtZQUNSO2dCQUNFLElBQUksR0FBRyxLQUFLLENBQUE7Z0JBQ1osTUFBTTtTQUNUO1FBQ0QsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDOztvSEFuVFUsc0JBQXNCO3dHQUF0QixzQkFBc0IsNkNBRnRCLENBQUMsY0FBYyxFQUFDLGFBQWEsQ0FBQywwQkNYM0MsKzhMQXlGQTs0RkQ1RWEsc0JBQXNCO2tCQUxsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFdBQVcsRUFBRSxpQ0FBaUM7b0JBQzlDLFNBQVMsRUFBRSxDQUFDLGNBQWMsRUFBQyxhQUFhLENBQUM7aUJBQzFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSxEeW5hbWljRGlhbG9nQ29uZmlnLCBEeW5hbWljRGlhbG9nUmVmIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcclxuaW1wb3J0IHsgU2hlbWEgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL3NoZW1hLm1vZGVsJztcclxuaW1wb3J0ICogYXMganNvbnBhdGggZnJvbSAnanNvbnBhdGgnO1xyXG5pbXBvcnQgeyBNZXNzYWdlLCBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IFJlZ2lzdHJvRGV0YWxsZUNvbXBvbmVudCB9IGZyb20gJy4uL3JlZ2lzdHJvLWRldGFsbGUvcmVnaXN0cm8tZGV0YWxsZS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItcmVnaXN0cm8tY2hpbGQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWdpc3Ryby1jaGlsZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgcHJvdmlkZXJzOiBbTWVzc2FnZVNlcnZpY2UsRGlhbG9nU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFJlZ2lzdHJvQ2hpbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBwdWJsaWMgdWlFc3F1ZW1hOiBhbnk7XHJcbiAgcHVibGljIGVzcXVlbWE6IFNoZW1hID0gbmV3IFNoZW1hKCk7XHJcbiAgcHVibGljIGRhdGE6IGFueTtcclxuICBwdWJsaWMgZGlhbG9nUmVmPzogRHluYW1pY0RpYWxvZ1JlZjtcclxuICBwdWJsaWMgdHJ4OiBzdHJpbmcgPSAnYyc7XHJcbiAgdmFsdWVzITogYW55W11bXTtcclxuICBjb250cm9scyE6IGFueVtdW107XHJcbiAgY29udHJvbHNMb2FkZWQgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVmOiBEeW5hbWljRGlhbG9nUmVmLFxyXG4gICAgcHVibGljIGNvbmZpZzogRHluYW1pY0RpYWxvZ0NvbmZpZyxcclxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnVpRXNxdWVtYSA9IHRoaXMuY29uZmlnLmRhdGEudWlFc3F1ZW1hWzBdO1xyXG4gICAgdGhpcy5lc3F1ZW1hID0gdGhpcy5jb25maWcuZGF0YS5lc3F1ZW1hO1xyXG4gICAgdGhpcy5kYXRhID0gdGhpcy5jb25maWcuZGF0YT8uZGF0YTtcclxuICAgIGlmICghdGhpcy5kYXRhKSB7XHJcbiAgICAgIHRoaXMuZGF0YSA9IHRoaXMuY3JlYXRlT2JqZWN0KHRoaXMuZXNxdWVtYSk7XHJcbiAgICAgIGpzb25wYXRoLnZhbHVlKHRoaXMuZGF0YSwgJyQuLmlkJywgdGhpcy5jb25maWcuZGF0YS5pZCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmJ1aWxkQ29udHJvbHMoKVxyXG4gIH1cclxuXHJcbiAgICBidWlsZENvbnRyb2xzKCl7XHJcbiAgICAgIHRoaXMuY29udHJvbHNMb2FkZWQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5jb250cm9scyA9IFtdXHJcbiAgICAgIHRoaXMudmFsdWVzID0gW11cclxuICAgICAgdGhpcy51aUVzcXVlbWEuZWxlbWVudHMuZm9yRWFjaCgobGF5b3V0OiBhbnksIGk6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIHRoaXMuY29udHJvbHMucHVzaChbXSlcclxuICAgICAgICB0aGlzLnZhbHVlcy5wdXNoKFtdKVxyXG5cclxuICAgICAgICBsYXlvdXQuZWxlbWVudHM/LmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKCFlbGVtZW50LnNjb3BlKSBjb25zb2xlLmxvZyhcIkNPTkZJR1VSQVIgQklFTiBcIiArIGVsZW1lbnQpXHJcbiAgICAgICAgICB0aGlzLmNvbnRyb2xzW2ldLnB1c2godGhpcy5nZXRDb250cm9sKGVsZW1lbnQuc2NvcGUpKVxyXG4gICAgICAgICAgdGhpcy52YWx1ZXNbaV0ucHVzaCh0aGlzLmdldFZhbHVlKGVsZW1lbnQuc2NvcGUpKVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5jb250cm9sc0xvYWRlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBnZXRDb250cm9sKHNjb3BlOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBqc29ucGF0aC5xdWVyeSh0aGlzLmVzcXVlbWEsIHNjb3BlKVswXTtcclxuICB9XHJcblxyXG4gIGdldFZhbHVlKHNjb3BlOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBqc29ucGF0aC5xdWVyeSh0aGlzLmRhdGEsIHNjb3BlLnJlcGxhY2UoJy5wcm9wZXJ0aWVzJywgJycpKVswXTtcclxuICB9XHJcblxyXG4gIHNldFZhbHVlKHZhbHVlOiBhbnksIHNjb3BlOiBzdHJpbmcsIGk6IG51bWJlciwgajogbnVtYmVyKSB7XHJcbiAgICBzd2l0Y2ggKHR5cGVvZiAodmFsdWUpKSB7XHJcbiAgICAgIGNhc2UgJ29iamVjdCc6XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB2YWx1ZS5mb3JFYWNoKCh2YWw6IGFueSkgPT4ganNvbnBhdGgudmFsdWUodGhpcy5kYXRhLCB2YWwuc2NvcGUucmVwbGFjZSgnLnByb3BlcnRpZXMnLCAnJyksIHZhbC52YWx1ZSkpXHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlc1tpXVtqXSA9IHZhbHVlO1xyXG4gICAgICAgICAganNvbnBhdGgudmFsdWUodGhpcy5kYXRhLCBzY29wZS5yZXBsYWNlKCcucHJvcGVydGllcycsICcnKSwgdmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aGlzLnZhbHVlc1tpXVtqXSA9IHZhbHVlO1xyXG4gICAgICAgIGpzb25wYXRoLnZhbHVlKHRoaXMuZGF0YSwgc2NvcGUucmVwbGFjZSgnLnByb3BlcnRpZXMnLCAnJyksIHZhbHVlKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHRoaXMuYXBwbHlWYWx1ZXNPbkV2ZW50KCdvbkNoYW5nZScsIHRoaXMuZXNxdWVtYSwgc2NvcGUucmVwbGFjZSgnJC4ucHJvcGVydGllcy4nLCAnJykpO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlT2JqZWN0KGVzcXVlbWE6IFNoZW1hKSB7XHJcbiAgICBsZXQgb2JqZWN0ID0ge307XHJcbiAgICBjb25zdCByZXN1bHRBcnJheTogYW55W10gPSBbXTtcclxuICAgIHN3aXRjaCAoZXNxdWVtYS50eXBlKSB7XHJcbiAgICAgIGNhc2UgJ251bWVyaWMnOlxyXG4gICAgICAgIHJldHVybiBlc3F1ZW1hPy5kZWZhdWx0IHx8IDA7XHJcbiAgICAgIGNhc2UgJ3N0cmluZyc6XHJcbiAgICAgIGNhc2UgJ2RhdGUnOlxyXG4gICAgICAgIHJldHVybiBlc3F1ZW1hPy5kZWZhdWx0ID8gdGhpcy5zZXREZWZhdWx0VmFsdWUoZXNxdWVtYS5kZWZhdWx0KSA6IG51bGw7XHJcbiAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxyXG4gICAgICAgIHJldHVybiBlc3F1ZW1hPy5kZWZhdWx0IHx8IGZhbHNlO1xyXG4gICAgICBjYXNlICdmaWxlJzpcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgY2FzZSAnYXJyYXknOlxyXG4gICAgICBjYXNlICdvYmplY3QnOlxyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGVzcXVlbWE/LnByb3BlcnRpZXMpIHtcclxuICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmplY3QsIGtleSwgeyB2YWx1ZTogdGhpcy5jcmVhdGVPYmplY3RDaGlsZChlc3F1ZW1hPy5wcm9wZXJ0aWVzW2tleV0pLCB3cml0YWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG9iamVjdDtcclxuICB9XHJcblxyXG4gIGNyZWF0ZU9iamVjdENoaWxkKGVzcXVlbWE6IFNoZW1hKSB7XHJcbiAgICBsZXQgb2JqZWN0ID0ge307XHJcbiAgICBjb25zdCByZXN1bHRBcnJheTogYW55W10gPSBbXTtcclxuICAgIHN3aXRjaCAoZXNxdWVtYS50eXBlKSB7XHJcbiAgICAgIGNhc2UgJ251bWVyaWMnOlxyXG4gICAgICAgIHJldHVybiBlc3F1ZW1hPy5kZWZhdWx0IHx8IDA7XHJcbiAgICAgIGNhc2UgJ3N0cmluZyc6XHJcbiAgICAgIGNhc2UgJ2RhdGUnOlxyXG4gICAgICAgIHJldHVybiBlc3F1ZW1hPy5kZWZhdWx0ID8gdGhpcy5zZXREZWZhdWx0VmFsdWUoZXNxdWVtYS5kZWZhdWx0KSA6IG51bGw7XHJcbiAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxyXG4gICAgICAgIHJldHVybiBlc3F1ZW1hPy5kZWZhdWx0IHx8IGZhbHNlO1xyXG4gICAgICBjYXNlICdmaWxlJzpcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgY2FzZSAnYXJyYXknOlxyXG4gICAgICAgIHJldHVybiBbXTtcclxuICAgICAgY2FzZSAnb2JqZWN0JzpcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBlc3F1ZW1hPy5wcm9wZXJ0aWVzKSB7XHJcbiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqZWN0LCBrZXksIHsgdmFsdWU6IHRoaXMuY3JlYXRlT2JqZWN0KGVzcXVlbWE/LnByb3BlcnRpZXNba2V5XSksIHdyaXRhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSlcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb2JqZWN0O1xyXG4gIH1cclxuXHJcbiAgc2V0RGVmYXVsdFZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGxldCBkYXRhID0gbnVsbDtcclxuICAgIGxldCB1YWN0aXZvO1xyXG4gICAgc3dpdGNoICh2YWx1ZSkge1xyXG4gICAgICBjYXNlICdAdWFjdGl2byc6XHJcbiAgICAgICAgdWFjdGl2byA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ29TZXNzaW9uVEZNJykgfHwgJ3t9JylcclxuICAgICAgICBpZiAoIXVhY3Rpdm8pIGNvbnNvbGUubG9nKCdWYWxpZGFyIGNvbmZpZ3VyYWNpb24gZGUgc2VzaW9uJylcclxuICAgICAgICBlbHNlIGRhdGEgPSBgJHt1YWN0aXZvLlVzdWFyaW9TaXN0ZW1hLlRET0N9LSR7dWFjdGl2by5Vc3VhcmlvU2lzdGVtYS5ORE9DfWBcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnQHRkb2NhY3Rpdm8nOlxyXG4gICAgICAgIHVhY3Rpdm8gPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3VzclNlc2lvbicpIHx8ICd7fScpXHJcbiAgICAgICAgaWYgKCF1YWN0aXZvKSBjb25zb2xlLmxvZygnVmFsaWRhciBjb25maWd1cmFjaW9uIGRlIHNlc2lvbicpXHJcbiAgICAgICAgZWxzZSBkYXRhID0gdWFjdGl2by5Vc3VhcmlvU2lzdGVtYS5URE9DXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0BuZG9jYWN0aXZvJzpcclxuICAgICAgICB1YWN0aXZvID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd1c3JTZXNpb24nKSB8fCAne30nKVxyXG4gICAgICAgIGlmICghdWFjdGl2bykgY29uc29sZS5sb2coJ1ZhbGlkYXIgY29uZmlndXJhY2lvbiBkZSBzZXNpb24nKVxyXG4gICAgICAgIGVsc2UgZGF0YSA9IHVhY3Rpdm8uVXN1YXJpb1Npc3RlbWEuTkRPQ1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdAaG95JzpcclxuICAgICAgICBkYXRhID0gbmV3IERhdGUoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBkYXRhID0gdmFsdWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGF0YVxyXG4gIH1cclxuXHJcbiAgc3VibWl0KCkge1xyXG4gICAgdGhpcy5hcHBseVZhbHVlc09uRXZlbnQoJ29uU3VibWl0JywgdGhpcy5lc3F1ZW1hKTtcclxuICAgIGlmICghdGhpcy52YWxpZGF0ZURhdGEoKSkgcmV0dXJuO1xyXG4gICAgdGhpcy5yZWYuY2xvc2UodGhpcy5kYXRhKTtcclxuICB9XHJcblxyXG4gIGNhbmNlbCgpIHtcclxuICAgIHRoaXMuYXBwbHlWYWx1ZXNPbkV2ZW50KCdvbkNhbmNlbCcsIHRoaXMuZXNxdWVtYSk7XHJcbiAgICB0aGlzLnJlZi5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVEYXRhKCkge1xyXG4gICAgaWYgKHRoaXMuZXNxdWVtYS52YWxpZGF0aW9ucy50eXBlID09ICdsb2NhbCcpIHJldHVybiB0aGlzLnZhbGlkYXRlRGF0YUxvY2FsKCk7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlRGF0YUxvY2FsKCkge1xyXG4gICAgbGV0IGVycjogc3RyaW5nW10gPSBbXVxyXG4gICAgdGhpcy5lc3F1ZW1hLnZhbGlkYXRpb25zLnJlcXVpcmVkLmZvckVhY2goKHg6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoIWpzb25wYXRoLnF1ZXJ5KHRoaXMuZGF0YSwgeC5maWVsZClbMF0pIGVyci5wdXNoKHgubWVzc2FnZSk7XHJcbiAgICB9KVxyXG4gICAgaWYgKGVyci5sZW5ndGggIT0gMCkgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ3dhcm4nLCBkZXRhaWw6IGVyci5qb2luKCcuICcpIH0pXHJcbiAgICByZXR1cm4gZXJyLmxlbmd0aCA9PSAwO1xyXG4gIH1cclxuXHJcbiAgYXBwbHlWYWx1ZXNPbkV2ZW50KGV2ZW50OiBzdHJpbmcsIGVzcXVlbWE6IFNoZW1hLCBzY29wZT86IHN0cmluZykge1xyXG4gICAgaWYgKHNjb3BlKSB7XHJcbiAgICAgIGlmIChlc3F1ZW1hLnByb3BlcnRpZXNbc2NvcGVdW2V2ZW50XSkge1xyXG4gICAgICAgIGVzcXVlbWEucHJvcGVydGllc1tzY29wZV1bZXZlbnRdLmZvckVhY2goKHZhbHVlOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2V0VmFsdWVFdmVudCh0aGlzLmRhdGEsIHZhbHVlKVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIGVzcXVlbWEucHJvcGVydGllcykge1xyXG4gICAgICAgIGlmIChlc3F1ZW1hLnByb3BlcnRpZXNba2V5XVtldmVudF0pIHtcclxuICAgICAgICAgIGVzcXVlbWEucHJvcGVydGllc1trZXldW2V2ZW50XS5mb3JFYWNoKCh2YWx1ZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWVFdmVudCh0aGlzLmRhdGEsIHZhbHVlKVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFZhbHVlRXZlbnQoZGF0YTogYW55LCBwYXJhbXM6IHsgb3A6IHN0cmluZywgc2NvcGU6IHN0cmluZ1tdLCBrZXk6IGFueSwgc2VwYXJhdG9yOiBzdHJpbmcgfSkge1xyXG4gICAgbGV0IHZhbHVlO1xyXG4gICAgbGV0IGRhdGUgPSBtb21lbnQobmV3IERhdGUoKSk7XHJcbiAgICBzd2l0Y2ggKHBhcmFtcy5vcCkge1xyXG4gICAgICBjYXNlICdzdW0nOlxyXG4gICAgICAgIHZhbHVlID0ganNvbnBhdGgucXVlcnkoZGF0YSwgcGFyYW1zPy5zY29wZVswXSkucmVkdWNlKChhY2MsIGN1cikgPT4gYWNjICs9IHBhcmFtcz8ua2V5ID8gY3VyW3BhcmFtcy5rZXldIDogY3VyLCAwKVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdjb25jYXQnOlxyXG4gICAgICAgIGxldCBhcnJheTogc3RyaW5nW10gPSBbXVxyXG4gICAgICAgIHBhcmFtcz8ua2V5Py5yZWR1Y2UoKGFjYzogYW55W10sIGN1cjogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICBhcnJheS5wdXNoKGpzb25wYXRoLnF1ZXJ5KGRhdGEsIGN1cilbMF0pXHJcbiAgICAgICAgfSwgW10pXHJcbiAgICAgICAgaWYgKHBhcmFtcz8uc2VwYXJhdG9yKSBqc29ucGF0aC52YWx1ZShkYXRhLCBwYXJhbXMuc2NvcGVbMF0sIGFycmF5LmpvaW4ocGFyYW1zPy5zZXBhcmF0b3IgfHwgJyAnKSlcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZW5hYmxlJzpcclxuICAgICAgICBqc29ucGF0aC52YWx1ZSh0aGlzLmVzcXVlbWEsIHBhcmFtcy5zY29wZVswXSwgZmFsc2UpXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2Rpc2FibGVkJzpcclxuICAgICAgICBqc29ucGF0aC52YWx1ZSh0aGlzLmVzcXVlbWEsIHBhcmFtcy5zY29wZVswXSwgdHJ1ZSlcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAncmVwbGFjZTplbmRwb2ludCc6XHJcbiAgICAgICAganNvbnBhdGgudmFsdWUodGhpcy5lc3F1ZW1hLCBwYXJhbXMuc2NvcGVbMF0sIGpzb25wYXRoLnF1ZXJ5KHRoaXMuZXNxdWVtYSwgcGFyYW1zLnNjb3BlWzFdKVswXS5yZXBsYWNlKHBhcmFtcy5zY29wZVsyXSwganNvbnBhdGgucXVlcnkoZGF0YSwgYCQuLiR7cGFyYW1zLmtleX1gKSkpXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3NldE51bGwnOlxyXG4gICAgICAgIGpzb25wYXRoLnZhbHVlKHRoaXMuZGF0YSwgYCQuJHtwYXJhbXMua2V5fWAsIG51bGwpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdkYXRlZGlmZjp5ZWFycyc6XHJcbiAgICAgICAganNvbnBhdGgudmFsdWUodGhpcy5kYXRhLCBwYXJhbXMuc2NvcGVbMF0sIGRhdGUuZGlmZihtb21lbnQoanNvbnBhdGgucXVlcnkodGhpcy5kYXRhLCBwYXJhbXMuc2NvcGVbMV0pWzBdKSwgJ3llYXJzJykpXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2RhdGVkaWZmOm1vbnRocyc6XHJcbiAgICAgICAganNvbnBhdGgudmFsdWUodGhpcy5kYXRhLCBwYXJhbXMuc2NvcGVbMF0sIGRhdGUuZGlmZihtb21lbnQoanNvbnBhdGgucXVlcnkodGhpcy5kYXRhLCBwYXJhbXMuc2NvcGVbMV0pWzBdKSwgJ21vbnRocycpKVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdkYXRlZGlmZjp3ZWVrcyc6XHJcbiAgICAgICAganNvbnBhdGgudmFsdWUodGhpcy5kYXRhLCBwYXJhbXMuc2NvcGVbMF0sIGRhdGUuZGlmZihtb21lbnQoanNvbnBhdGgucXVlcnkodGhpcy5kYXRhLCBwYXJhbXMuc2NvcGVbMV0pWzBdKSwgJ3dlZWtzJykpXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2RhdGVkaWZmOmRheXMnOlxyXG4gICAgICAgIGpzb25wYXRoLnZhbHVlKHRoaXMuZGF0YSwgcGFyYW1zLnNjb3BlWzBdLCBkYXRlLmRpZmYobW9tZW50KGpzb25wYXRoLnF1ZXJ5KHRoaXMuZGF0YSwgcGFyYW1zLnNjb3BlWzFdKVswXSksICdkYXlzJykpXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBzZW5kTm90aWZpY2F0aW9uKG1lc3NhZ2U6IE1lc3NhZ2UpIHtcclxuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKG1lc3NhZ2UpXHJcbiAgfVxyXG5cclxuICBhZGRPYmplY3RBcnJheShlbGVtZW50OiBhbnkpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4oUmVnaXN0cm9EZXRhbGxlQ29tcG9uZW50LCB7XHJcbiAgICAgIGhlYWRlcjogZWxlbWVudC5sYWJlbCA/IGVsZW1lbnQubGFiZWwgOiAnRGV0YWxsZScsXHJcbiAgICAgIHdpZHRoOiAnNzAlJyxcclxuICAgICAgbW9kYWw6IHRydWUsXHJcbiAgICAgIGNsb3NhYmxlOiBmYWxzZSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIHVpRXNxdWVtYTogeyAuLi5lbGVtZW50LmVsZW1lbnRzIH0sXHJcbiAgICAgICAgZXNxdWVtYTogdGhpcy5nZXRDb250cm9sKGVsZW1lbnQuc2NvcGUpLFxyXG4gICAgICAgIGlkOiB0aGlzLmdldFZhbHVlKGVsZW1lbnQuc2NvcGUpLmxlbmd0aCArIDFcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIHRoaXMuZGlhbG9nUmVmLm9uQ2xvc2Uuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGRhdGEpIHRoaXMuZGF0YVtlbGVtZW50LnNjb3BlLnJlcGxhY2UoJyQuLnByb3BlcnRpZXMuJywgJycpXS5wdXNoKGRhdGEpO1xyXG4gICAgICAgdGhpcy5hcHBseVZhbHVlc09uRXZlbnQoJ29uQ2hhbmdlJywgdGhpcy5lc3F1ZW1hLCBlbGVtZW50LnNjb3BlLnJlcGxhY2UoJyQuLnByb3BlcnRpZXMuJywgJycpKVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGVkaXRSb3coZWxlbWVudDogYW55LCBkYXRhOiBhbnksIGluZGV4OiBudW1iZXIpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4oUmVnaXN0cm9EZXRhbGxlQ29tcG9uZW50LCB7XHJcbiAgICAgIGhlYWRlcjogZWxlbWVudC5sYWJlbCA/IGVsZW1lbnQubGFiZWwgOiAnRGV0YWxsZScsXHJcbiAgICAgIHdpZHRoOiAnNzAlJyxcclxuICAgICAgbW9kYWw6IHRydWUsXHJcbiAgICAgIGNsb3NhYmxlOiBmYWxzZSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIHVpRXNxdWVtYTogeyAuLi5lbGVtZW50LmVsZW1lbnRzIH0sXHJcbiAgICAgICAgZXNxdWVtYTogdGhpcy5nZXRDb250cm9sKGVsZW1lbnQuc2NvcGUpLFxyXG4gICAgICAgIGRhdGE6IHsgLi4uZGF0YSB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5vbkNsb3NlLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChkYXRhKSB0aGlzLmRhdGFbZWxlbWVudC5zY29wZS5yZXBsYWNlKCckLi5wcm9wZXJ0aWVzLicsICcnKV1baW5kZXhdID0gZGF0YTtcclxuICAgICAgdGhpcy5hcHBseVZhbHVlc09uRXZlbnQoJ29uQ2hhbmdlJywgdGhpcy5lc3F1ZW1hLCBlbGVtZW50LnNjb3BlLnJlcGxhY2UoJyQuLnByb3BlcnRpZXMuJywgJycpKVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGRlbGV0ZVJvdyhlbGVtZW50OiBhbnksIGluZGV4OiBudW1iZXIpIHtcclxuICAgIHRoaXMuZGF0YVtlbGVtZW50LnNjb3BlLnJlcGxhY2UoJyQuLnByb3BlcnRpZXMuJywgJycpXS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgaW5kZXggPSAxO1xyXG4gICAgdGhpcy5kYXRhW2VsZW1lbnQuc2NvcGUucmVwbGFjZSgnJC4ucHJvcGVydGllcy4nLCAnJyldLmZvckVhY2goKGVsOiBhbnkpID0+IHtcclxuICAgICAgZWwuaWQgPSBpbmRleDtcclxuICAgICAgaW5kZXgrKztcclxuICAgIH0pXHJcbiAgICB0aGlzLmFwcGx5VmFsdWVzT25FdmVudCgnb25DaGFuZ2UnLCB0aGlzLmVzcXVlbWEsIGVsZW1lbnQuc2NvcGUucmVwbGFjZSgnJC4ucHJvcGVydGllcy4nLCAnJykpXHJcbiAgfVxyXG5cclxuICBhcHBseVZhbHVlc0Zyb21PYmplY3QoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50LmRhdGEpIGV2ZW50Lm9wdGlvblZhbHVlLmZvckVhY2goKHZhbHVlOiBhbnkpID0+IGpzb25wYXRoLnZhbHVlKHRoaXMuZGF0YSwgdmFsdWUuc2NvcGUucmVwbGFjZSgnLnByb3BlcnRpZXMnLCcnKSwgdGhpcy5hcGx5Rm9ybWF0VmFsdWUodmFsdWUuc2NvcGUsIGV2ZW50LmRhdGFbdmFsdWUua2V5XSkpKTtcclxuICAgIGVsc2UgZXZlbnQub3B0aW9uVmFsdWUuZm9yRWFjaCgodmFsdWU6IGFueSkgPT4ganNvbnBhdGgudmFsdWUodGhpcy5kYXRhLCB2YWx1ZS5zY29wZS5yZXBsYWNlKCcucHJvcGVydGllcycsJycpLCBudWxsKSk7XHJcbiAgfVxyXG4gIGFwbHlGb3JtYXRWYWx1ZShzY29wZTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XHJcbiAgICBsZXQgY29udHJvbCA9IGpzb25wYXRoLnF1ZXJ5KHRoaXMuZXNxdWVtYSwgc2NvcGUpWzBdXHJcbiAgICBsZXQgcmVzcDtcclxuICAgIHN3aXRjaCAoY29udHJvbC50eXBlKSB7XHJcbiAgICAgIGNhc2UgJ2RhdGUnOlxyXG4gICAgICAgIHJlc3AgPSBuZXcgRGF0ZShgJHt2YWx1ZX1gKVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdudW1lcmljJzpcclxuICAgICAgICByZXNwID0gK3ZhbHVlXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmVzcCA9IHZhbHVlXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzcFxyXG4gIH1cclxufVxyXG4iLCI8cC10b2FzdD48L3AtdG9hc3Q+XHJcbjxkaXYgKm5nSWY9XCJjb250cm9sc0xvYWRlZFwiPlxyXG48ZGl2ICpuZ0Zvcj1cImxldCBlbGVtZW50IG9mIHVpRXNxdWVtYS5lbGVtZW50czsgbGV0IGkgPSBpbmRleFwiIFtjbGFzc109XCJlbGVtZW50Py5jbGFzc1wiICNhPlxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZWxlbWVudC50eXBlXCI+XHJcbiAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ0xhYmVsJ1wiIFtzdHlsZV09XCJlbGVtZW50Py5zdHlsZVwiPlxyXG4gICAgICAgICAgICB7e2VsZW1lbnQ/LmxhYmVsfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInSG9yaXpvbnRhbExheW91dCdcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZWwgb2YgZWxlbWVudC5lbGVtZW50czsgbGV0IGogPWluZGV4XCIgW2NsYXNzXT1cImVsPy5jbGFzc1wiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZWwudHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzZi1jb250cm9sICpuZ1N3aXRjaENhc2U9XCInQ29udHJvbCdcIiBbY29udHJvbF09XCJjb250cm9sc1tpXVtqXVwiIFtsYWJlbF09XCJlbC5sYWJlbFwiIFt2YWx1ZV09XCJ2YWx1ZXNbaV1bal1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoc2V0VmFsdWUpPVwic2V0VmFsdWUoJGV2ZW50LCBlbC5zY29wZSwgaSwgailcIiAoc2VuZE5vdGlmaWNhdGlvbik9XCJzZW5kTm90aWZpY2F0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoc2VuZE9iamVjdCk9XCJhcHBseVZhbHVlc0Zyb21PYmplY3QoJGV2ZW50KVwiPjwvc2YtY29udHJvbD5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInVmVydGljYWxMYXlvdXQnXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGVsIG9mIGVsZW1lbnQuZWxlbWVudHM7IGxldCBrID1pbmRleFwiIFtjbGFzc109XCJlbD8uY2xhc3NcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImVsLnR5cGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c2YtY29udHJvbCAqbmdTd2l0Y2hDYXNlPVwiJ0NvbnRyb2wnXCIgW2NvbnRyb2xdPVwiY29udHJvbHNbaV1ba11cIiBbbGFiZWxdPVwiZWwubGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwidmFsdWVzW2ldW2tdXCIgKHNldFZhbHVlKT1cInNldFZhbHVlKCRldmVudCwgZWwuc2NvcGUsIGksIGspXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHNlbmROb3RpZmljYXRpb24pPVwic2VuZE5vdGlmaWNhdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHNlbmRPYmplY3QpPVwiYXBwbHlWYWx1ZXNGcm9tT2JqZWN0KCRldmVudClcIj48L3NmLWNvbnRyb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ1RhYmxlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cC10YWJsZSBbdmFsdWVdPVwiZ2V0VmFsdWUoZWwuc2NvcGUpXCIgW2NvbHVtbnNdPVwiZ2V0Q29udHJvbChlbC5zY29wZSkuY29uZmlnLmNvbHVtbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjYXB0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIGljb249XCJwaSBwaS1wbHVzXCIgKGNsaWNrKT1cImFkZE9iamVjdEFycmF5KGVsKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXN1Y2Nlc3NcIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCIgbGV0LWNvbHVtbnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NvbC5sYWJlbH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0cnggPT0gJ2MnIHx8IHRyeCA9PSAndSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LXJvd0RhdGEgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCIgbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXCIgW25nU3dpdGNoXT1cImNvbC50eXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndGV4dCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tyb3dEYXRhW2NvbC5jb2xdfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY3VycmVuY3k6VVNEJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3Jvd0RhdGFbY29sLmNvbF0gfCBjdXJyZW5jeTogJ1VTRCd9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkYXRlOnl5eXktbW0tZGQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7cm93RGF0YVtjb2wuY29sXSB8IGRhdGU6ICd5eXl5LW1tLWRkJ319PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGU6ZGQvbW0veXl5eSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tyb3dEYXRhW2NvbC5jb2xdIHwgZGF0ZTogJ2RkL01NL3l5eXknfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInYm9vbGVhbidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwicm93RGF0YVtjb2wuY29sXVwiIGNsYXNzPVwicGkgcGktY2hlY2tcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiIXJvd0RhdGFbY29sLmNvbF1cIiBjbGFzcz1cInBpIHBpLXRpbWVzXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0cnggPT0gJ2MnIHx8IHRyeCA9PSAndSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRSb3coZWwsIHJvd0RhdGEsIHJvd0luZGV4KVwiIGljb249XCJwaSBwaS1wZW5jaWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24taW5mbyBtci0xXCI+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJkZWxldGVSb3coZWwsIHJvd0luZGV4KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249XCJwaSBwaS10cmFzaFwiIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1kYW5nZXJcIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3AtdGFibGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0NvbnRyb2wnXCI+XHJcbiAgICAgICAgICAgIDxzZi1jb250cm9sIFtjb250cm9sXT1cImdldENvbnRyb2woZWxlbWVudC5zY29wZSlcIiBbbGFiZWxdPVwiZWxlbWVudC5sYWJlbFwiPjwvc2YtY29udHJvbD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyIG10LTJcIj5cclxuICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIHR5cGU9XCJidXR0b25cIiBsYWJlbD1cIkd1YXJkYXJcIiAoY2xpY2spPVwic3VibWl0KClcIiBjbGFzcz1cIm1yLTJcIj48L2J1dHRvbj5cclxuICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIHR5cGU9XCJidXR0b25cIiBsYWJlbD1cIkNhbmNlbGFyXCIgKGNsaWNrKT1cImNhbmNlbCgpXCIgY2xhc3M9XCJwLWJ1dHRvbi1kYW5nZXJcIj48L2J1dHRvbj5cclxuPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
package/fesm2015/sf-crud.js
CHANGED
|
@@ -466,7 +466,7 @@ class ControlComponent {
|
|
|
466
466
|
}
|
|
467
467
|
setDate() {
|
|
468
468
|
let format = this.control.formatMoment;
|
|
469
|
-
if (format && this.value) {
|
|
469
|
+
if (format && this.value && !(this.value instanceof Date)) {
|
|
470
470
|
this.value = moment(this.value, format).toDate();
|
|
471
471
|
this.sendValue();
|
|
472
472
|
}
|
|
@@ -765,8 +765,10 @@ class RegistroChildComponent {
|
|
|
765
765
|
case 'object':
|
|
766
766
|
if (Array.isArray(value))
|
|
767
767
|
value.forEach((val) => jsonpath.value(this.data, val.scope.replace('.properties', ''), val.value));
|
|
768
|
-
else
|
|
768
|
+
else {
|
|
769
|
+
this.values[i][j] = value;
|
|
769
770
|
jsonpath.value(this.data, scope.replace('.properties', ''), value);
|
|
771
|
+
}
|
|
770
772
|
break;
|
|
771
773
|
default:
|
|
772
774
|
this.values[i][j] = value;
|
|
@@ -1170,8 +1172,10 @@ class RegistroComponent {
|
|
|
1170
1172
|
case 'object':
|
|
1171
1173
|
if (Array.isArray(value))
|
|
1172
1174
|
value.forEach((val) => jsonpath.value(this.data, val.scope.replace('.properties', ''), val.value));
|
|
1173
|
-
else
|
|
1175
|
+
else {
|
|
1174
1176
|
jsonpath.value(this.data, scope.replace('.properties', ''), value);
|
|
1177
|
+
this.values[i][j] = value;
|
|
1178
|
+
}
|
|
1175
1179
|
break;
|
|
1176
1180
|
default:
|
|
1177
1181
|
this.values[i][j] = value;
|