@seniorsistemas/yms-integration 1.9.0 → 2.0.0

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.
@@ -4,4 +4,4 @@ var ErpProcessData = /** @class */ (function () {
4
4
  return ErpProcessData;
5
5
  }());
6
6
  export { ErpProcessData };
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJwLXByb2Nlc3MtZGF0YS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy95bXMtaW50ZWdyYXRpb24vIiwic291cmNlcyI6WyJzcmMvZXJwLXNlbmlvci9jb3JlL2VycC1wcm9jZXNzLWRhdGEvZXJwLXByb2Nlc3MtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUFBO0lBV0EsQ0FBQztJQUFELHFCQUFDO0FBQUQsQ0FBQyxBQVhELElBV0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRXJwUHJvY2Vzc0RhdGEge1xuICAgIGFnZW5kYUlkOiBzdHJpbmc7XG4gICAgY2hhdmVJbnRlZ3JhY2FvPzogc3RyaW5nO1xuICAgIGZpbGlhbElkPzogc3RyaW5nO1xuICAgIHByb2R1dG9JZD86IHN0cmluZztcbiAgICBtb3RvcmlzdGFJZD86IHN0cmluZztcbiAgICB2ZWljdWxvSWQ/OiBzdHJpbmc7XG4gICAgZWl4b3M/OiBudW1iZXI7XG4gICAgdHJhbnNnZW5pYUlkPzogc3RyaW5nO1xuICAgIHRyYW5zcG9ydGFkb3JhSWQ/OiBzdHJpbmc7XG4gICAgZm9ybmVjZWRvcmVzPzogc3RyaW5nW107ICAgXG59Il19
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJwLXByb2Nlc3MtZGF0YS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy95bXMtaW50ZWdyYXRpb24vIiwic291cmNlcyI6WyJzcmMvZXJwLXNlbmlvci9jb3JlL2VycC1wcm9jZXNzLWRhdGEvZXJwLXByb2Nlc3MtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUFBO0lBWUEsQ0FBQztJQUFELHFCQUFDO0FBQUQsQ0FBQyxBQVpELElBWUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRXJwUHJvY2Vzc0RhdGEge1xuICAgIGFnZW5kYUlkOiBzdHJpbmc7XG4gICAgY2hhdmVJbnRlZ3JhY2FvPzogc3RyaW5nO1xuICAgIGZpbGlhbElkPzogc3RyaW5nO1xuICAgIHByb2R1dG9JZD86IHN0cmluZztcbiAgICBtb3RvcmlzdGFJZD86IHN0cmluZztcbiAgICB2ZWljdWxvSWQ/OiBzdHJpbmc7XG4gICAgZWl4b3M/OiBudW1iZXI7XG4gICAgdHJhbnNnZW5pYUlkPzogc3RyaW5nO1xuICAgIHRyYW5zcG9ydGFkb3JhSWQ/OiBzdHJpbmc7XG4gICAgZm9ybmVjZWRvcmVzPzogc3RyaW5nW107XG4gICAgcmVjZWJpbWVudG9UZW1Ob3RhPzogYm9vbGVhbjsgICAgICAgXG59Il19
@@ -51,6 +51,52 @@ var ErpProcessService = /** @class */ (function () {
51
51
  erpProcessData.fornecedores = this.listarIdsFornecedores(formGroup.getRawValue().fornecedores);
52
52
  return erpProcessData;
53
53
  };
54
+ ErpProcessService.prototype.builderErpProcessDataValidaNotaNoContrato = function (erpProcessData, formGroup) {
55
+ erpProcessData = this.builderErpProcessData(erpProcessData, formGroup);
56
+ erpProcessData.recebimentoTemNota = this.verificaSeTemNotaNoContratoNoFornecedo(formGroup.getRawValue().fornecedores);
57
+ return erpProcessData;
58
+ };
59
+ ErpProcessService.prototype.verificaSeTemNotaNoContratoNoFornecedo = function (fornecedores) {
60
+ var _this = this;
61
+ var contratosTemNota = false;
62
+ var listaContratos = [];
63
+ if (fornecedores != null) {
64
+ fornecedores.filter(function (element) { return element.contratos != null && element.contratos != undefined; }).forEach(function (element) { return listaContratos.push(element.contratos); });
65
+ }
66
+ var listaNotas = [];
67
+ if (listaContratos != null) {
68
+ listaContratos.filter(function (contratos) { return contratos != null && contratos != undefined; }).forEach(function (contratos) { return listaNotas.push(contratosTemNota = _this.verificaSeContratosTemNota(contratos)); });
69
+ }
70
+ return contratosTemNota;
71
+ };
72
+ ErpProcessService.prototype.verificaSeContratosTemNota = function (contratos) {
73
+ var contratosTemNota = true;
74
+ contratos.filter(function (contrato) { return contrato != null && contrato != undefined; }).forEach(function (contrato) { return contratosTemNota = contratosTemNota && (contrato.notas.length > 0); });
75
+ return contratosTemNota;
76
+ };
77
+ ErpProcessService.prototype.builderErpProcessDataValidaNotaNaOrdemCompra = function (erpProcessData, formGroup) {
78
+ erpProcessData = this.builderErpProcessData(erpProcessData, formGroup);
79
+ erpProcessData.recebimentoTemNota = this.verificaSeTemNotaNaOrdemCompraDoFornecedo(formGroup.getRawValue().fornecedores);
80
+ return erpProcessData;
81
+ };
82
+ ErpProcessService.prototype.verificaSeTemNotaNaOrdemCompraDoFornecedo = function (fornecedores) {
83
+ var _this = this;
84
+ var ordemCompraTemNota = false;
85
+ var listaOrdens = [];
86
+ if (fornecedores != null) {
87
+ fornecedores.filter(function (element) { return element.ordens != null && element.ordens != undefined; }).forEach(function (element) { return listaOrdens.push(element.ordens); });
88
+ }
89
+ var listaNotas = [];
90
+ if (listaOrdens != null) {
91
+ listaOrdens.filter(function (ordens) { return ordens != null && ordens != undefined; }).forEach(function (ordens) { return listaNotas.push(ordemCompraTemNota = _this.verificaSeOrdemCompraTemNota(ordens)); });
92
+ }
93
+ return ordemCompraTemNota;
94
+ };
95
+ ErpProcessService.prototype.verificaSeOrdemCompraTemNota = function (contratos) {
96
+ var ordemCompraTemNota = true;
97
+ contratos.filter(function (ordem) { return ordem != null && ordem != undefined; }).forEach(function (ordem) { return ordemCompraTemNota = ordemCompraTemNota && (ordem.notas.length > 0); });
98
+ return ordemCompraTemNota;
99
+ };
54
100
  ErpProcessService.prototype.getFieldFormGroup = function (formGroup, fieldName) {
55
101
  if (formGroup.get(fieldName) == null || formGroup.get(fieldName).value == null) {
56
102
  return null;
@@ -71,4 +117,4 @@ var ErpProcessService = /** @class */ (function () {
71
117
  return ErpProcessService;
72
118
  }());
73
119
  export { ErpProcessService };
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJwLXByb2Nlc3Mtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy95bXMtaW50ZWdyYXRpb24vIiwic291cmNlcyI6WyJzcmMvZXJwLXNlbmlvci9jb3JlL2VycC1wcm9jZXNzLWRhdGEvZXJwLXByb2Nlc3Mtc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUdwRDtJQU1FO1FBSlEsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBaUIsU0FBUyxDQUFDLENBQUM7UUFDdkUsWUFBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7SUFHNUIsQ0FBQztJQUVqQixzQ0FBVSxHQUFWLFVBQVcsT0FBdUI7UUFDaEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDaEMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELDBDQUFjLEdBQWQ7UUFDRSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFFRCx5Q0FBYSxHQUFiLFVBQWMsVUFBMEI7UUFDdEMsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7UUFDL0UsT0FBTyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDO1FBQ3ZDLE9BQU8sQ0FBQyxlQUFlLEdBQUcsVUFBVSxDQUFDLGVBQWUsQ0FBQztRQUNyRCxPQUFPLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUM7UUFDekMs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QUFDLEtBQUssSUFBSSxJQUFJLEVBQUU7WUFDM0UsT0FBTyxJQUFJLENBQUE7U0FDZDtRQUNELE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFTyxpREFBcUIsR0FBN0IsVUFBK0IsWUFBaUI7UUFDOUMsSUFBSSxpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDM0IsSUFBSSxZQUFZLElBQUksSUFBSSxFQUFFO1lBQ3RCLFlBQVksQ0FBQyxNQUFNLENBQUMsVUFBQSxPQUFPLElBQUksT0FBQSxPQUFPLENBQUMsVUFBVSxJQUFJLElBQUksSUFBSSxPQUFPLENBQUMsVUFBVSxJQUFJLFNBQVMsRUFBN0QsQ0FBNkQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFBLE9BQU8sSUFBSSxPQUFBLGlCQUFpQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQTFDLENBQTBDLENBQUMsQ0FBQztTQUNoSztRQUNELE9BQU8saUJBQWlCLENBQUMsR0FBRyxDQUFDLFVBQUEsR0FBRyxJQUFJLE9BQUEsR0FBRyxDQUFDLEVBQUUsRUFBTixDQUFNLENBQUMsQ0FBQztJQUU5QyxDQUFDO0lBekVVLGlCQUFpQjtRQUQ3QixVQUFVLEVBQUU7O09BQ0EsaUJBQWlCLENBMkU3QjtJQUFELHdCQUFDO0NBQUEsQUEzRUQsSUEyRUM7U0EzRVksaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZWxlbWVudEV2ZW50RnVsbE5hbWUgfSBmcm9tICdAYW5ndWxhci9jb21waWxlci9zcmMvdmlld19jb21waWxlci92aWV3X2NvbXBpbGVyJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBFcnBQcm9jZXNzRGF0YSB9IGZyb20gJy4vZXJwLXByb2Nlc3MtZGF0YSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBFcnBQcm9jZXNzU2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgbWVzc2FnZVNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RXJwUHJvY2Vzc0RhdGE+KHVuZGVmaW5lZCk7XHJcbiAgY3VycmVudCA9IHRoaXMubWVzc2FnZVNvdXJjZS5hc09ic2VydmFibGUoKTtcclxuICBcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgY2hhbmdlRGF0YShtZXNzYWdlOiBFcnBQcm9jZXNzRGF0YSkge1xyXG4gICAgdGhpcy5tZXNzYWdlU291cmNlLm5leHQobWVzc2FnZSlcclxuICAgIHJldHVybiBtZXNzYWdlO1xyXG4gIH1cclxuXHJcbiAgZ2V0UHJvY2Vzc0RhdGEoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tZXNzYWdlU291cmNlLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlRGF0YUVycChuZXdNZXNzYWdlOiBFcnBQcm9jZXNzRGF0YSkge1xyXG4gICAgbGV0IG1lc3NhZ2UgPSB0aGlzLm1lc3NhZ2VTb3VyY2UudmFsdWUgPyB0aGlzLm1lc3NhZ2VTb3VyY2UudmFsdWUgOiBuZXdNZXNzYWdlO1xyXG4gICAgbWVzc2FnZS5maWxpYWxJZCA9IG5ld01lc3NhZ2UuZmlsaWFsSWQ7XHJcbiAgICBtZXNzYWdlLmNoYXZlSW50ZWdyYWNhbyA9IG5ld01lc3NhZ2UuY2hhdmVJbnRlZ3JhY2FvO1xyXG4gICAgbWVzc2FnZS5wcm9kdXRvSWQgPSBuZXdNZXNzYWdlLnByb2R1dG9JZDtcclxuICAgIG1lc3NhZ2UudHJhbnNnZW5pYUlkID0gbmV3TWVzc2FnZS50cmFuc2dlbmlhSWQ7XHJcbiAgICBtZXNzYWdlLnRyYW5zcG9ydGFkb3JhSWQgPSBuZXdNZXNzYWdlLnRyYW5zcG9ydGFkb3JhSWQ7XHJcbiAgICByZXR1cm4gdGhpcy5jaGFuZ2VEYXRhKG1lc3NhZ2UpOyAgIFxyXG4gIH1cclxuXHJcbiAgY2hhbmdlRGF0YVZlaWN1bG8odmVpY3Vsb0lkOiBzdHJpbmcsIGVpeG9zOiBudW1iZXIpIHtcclxuICAgIGxldCBtZXNzYWdlID0gdGhpcy5tZXNzYWdlU291cmNlLnZhbHVlID8gdGhpcy5tZXNzYWdlU291cmNlLnZhbHVlIDogbmV3IEVycFByb2Nlc3NEYXRhKCk7XHJcbiAgICBtZXNzYWdlLnZlaWN1bG9JZCA9IHZlaWN1bG9JZDtcclxuICAgIG1lc3NhZ2UuZWl4b3MgPSBlaXhvcztcclxuICAgIHJldHVybiB0aGlzLmNoYW5nZURhdGEobWVzc2FnZSk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VEYXRhTW90b3Jpc3RhKG1vdG9yaXN0YUlkOiBzdHJpbmcpIHtcclxuICAgIGxldCBtZXNzYWdlID0gdGhpcy5tZXNzYWdlU291cmNlLnZhbHVlID8gdGhpcy5tZXNzYWdlU291cmNlLnZhbHVlIDogbmV3IEVycFByb2Nlc3NEYXRhKCk7XHJcbiAgICBtZXNzYWdlLm1vdG9yaXN0YUlkID0gbW90b3Jpc3RhSWQ7XHJcbiAgICByZXR1cm4gdGhpcy5jaGFuZ2VEYXRhKG1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlRGF0YUFnZW5kYShhZ2VuZGFJZDogc3RyaW5nLCBtb3RvcmlzdGFJZDogc3RyaW5nLCB2ZWljdWxvSWQ6IHN0cmluZywgZWl4b3M6IG51bWJlcikge1xyXG4gICAgbGV0IG1lc3NhZ2UgPSB0aGlzLm1lc3NhZ2VTb3VyY2UudmFsdWUgPyB0aGlzLm1lc3NhZ2VTb3VyY2UudmFsdWUgOiBuZXcgRXJwUHJvY2Vzc0RhdGEoKTtcclxuICAgIG1lc3NhZ2UuYWdlbmRhSWQgPSBhZ2VuZGFJZDtcclxuICAgIG1lc3NhZ2UubW90b3Jpc3RhSWQgPSBtb3RvcmlzdGFJZDtcclxuICAgIG1lc3NhZ2UudmVpY3Vsb0lkID0gdmVpY3Vsb0lkO1xyXG4gICAgbWVzc2FnZS5laXhvcyA9IGVpeG9zO1xyXG4gICAgcmV0dXJuIHRoaXMuY2hhbmdlRGF0YShtZXNzYWdlKTtcclxuICB9XHJcblxyXG4gIGJ1aWxkZXJFcnBQcm9jZXNzRGF0YShlcnBQcm9jZXNzRGF0YTogRXJwUHJvY2Vzc0RhdGEsIGZvcm1Hcm91cDogRm9ybUdyb3VwKTogRXJwUHJvY2Vzc0RhdGEge1xyXG4gICAgZXJwUHJvY2Vzc0RhdGEuY2hhdmVJbnRlZ3JhY2FvID0gZm9ybUdyb3VwLmdldChcImNoYXZlTm90YUZpc2NhbFwiKSAhPSBudWxsID8gZm9ybUdyb3VwLmdldChcImNoYXZlTm90YUZpc2NhbFwiKS52YWx1ZSA6IG51bGw7XHJcbiAgICBlcnBQcm9jZXNzRGF0YS5maWxpYWxJZCA9IHRoaXMuZ2V0RmllbGRGb3JtR3JvdXAoZm9ybUdyb3VwLCAnZmlsaWFsJyk7XHJcbiAgICBlcnBQcm9jZXNzRGF0YS5wcm9kdXRvSWQgPSB0aGlzLmdldEZpZWxkRm9ybUdyb3VwKGZvcm1Hcm91cCwgJ3Byb2R1dG8nKTtcclxuICAgIGVycFByb2Nlc3NEYXRhLnRyYW5zZ2VuaWFJZCA9IHRoaXMuZ2V0RmllbGRGb3JtR3JvdXAoZm9ybUdyb3VwLCAndHJhbnNnZW5pYScpO1xyXG4gICAgZXJwUHJvY2Vzc0RhdGEudHJhbnNwb3J0YWRvcmFJZCA9IHRoaXMuZ2V0RmllbGRGb3JtR3JvdXAoZm9ybUdyb3VwLCAndHJhbnNwb3J0YWRvcmEnKTtcclxuICAgIGVycFByb2Nlc3NEYXRhLmZvcm5lY2Vkb3JlcyA9IHRoaXMubGlzdGFySWRzRm9ybmVjZWRvcmVzKGZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpLmZvcm5lY2Vkb3Jlcyk7IFxyXG4gICAgcmV0dXJuIGVycFByb2Nlc3NEYXRhO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRGaWVsZEZvcm1Hcm91cChmb3JtR3JvdXA6IEZvcm1Hcm91cCwgZmllbGROYW1lOiBzdHJpbmcpIHtcclxuICAgIGlmKGZvcm1Hcm91cC5nZXQoZmllbGROYW1lKSA9PSBudWxsIHx8IGZvcm1Hcm91cC5nZXQoZmllbGROYW1lKS52YWx1ZSA9PSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGxcclxuICAgIH1cclxuICAgIHJldHVybiBmb3JtR3JvdXAuZ2V0KGZpZWxkTmFtZSkudmFsdWUuaWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxpc3Rhcklkc0Zvcm5lY2Vkb3JlcyAoZm9ybmVjZWRvcmVzOiBhbnkpIHtcclxuICAgIGxldCBsaXN0YUZvcm5lY2Vkb3JlcyA9IFtdOyAgICBcclxuICAgIGlmIChmb3JuZWNlZG9yZXMgIT0gbnVsbCkge1xyXG4gICAgICAgIGZvcm5lY2Vkb3Jlcy5maWx0ZXIoZWxlbWVudCA9PiBlbGVtZW50LmZvcm5lY2Vkb3IgIT0gbnVsbCAmJiBlbGVtZW50LmZvcm5lY2Vkb3IgIT0gdW5kZWZpbmVkKS5mb3JFYWNoKGVsZW1lbnQgPT4gbGlzdGFGb3JuZWNlZG9yZXMucHVzaChlbGVtZW50LmZvcm5lY2Vkb3IpKTtcclxuICAgIH1cclxuICAgIHJldHVybiBsaXN0YUZvcm5lY2Vkb3Jlcy5tYXAodmFsID0+IHZhbC5pZCk7XHJcblxyXG4gIH1cclxuXHJcbn0iXX0=
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJwLXByb2Nlc3Mtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy95bXMtaW50ZWdyYXRpb24vIiwic291cmNlcyI6WyJzcmMvZXJwLXNlbmlvci9jb3JlL2VycC1wcm9jZXNzLWRhdGEvZXJwLXByb2Nlc3Mtc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUdwRDtJQU1FO1FBSlEsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBaUIsU0FBUyxDQUFDLENBQUM7UUFDdkUsWUFBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7SUFHNUIsQ0FBQztJQUVqQixzQ0FBVSxHQUFWLFVBQVcsT0FBdUI7UUFDaEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDaEMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELDBDQUFjLEdBQWQ7UUFDRSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFFRCx5Q0FBYSxHQUFiLFVBQWMsVUFBMEI7UUFDdEMsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7UUFDL0UsT0FBTyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDO1FBQ3ZDLE9BQU8sQ0FBQyxlQUFlLEdBQUcsVUFBVSxDQUFDLGVBQWUsQ0FBQztRQUNyRCxPQUFPLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUM7UUFDekMs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VUFBQSxPQUFPLElBQUksT0FBQSxPQUFPLENBQUMsVUFBVSxJQUFJLElBQUksSUFBSSxPQUFPLENBQUMsVUFBVSxJQUFJLFNBQVMsRUFBN0QsQ0FBNkQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFBLE9BQU8sSUFBSSxPQUFBLGlCQUFpQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQTFDLENBQTBDLENBQUMsQ0FBQztTQUNoSztRQUNELE9BQU8saUJBQWlCLENBQUMsR0FBRyxDQUFDLFVBQUEsR0FBRyxJQUFJLE9BQUEsR0FBRyxDQUFDLEVBQUUsRUFBTixDQUFNLENBQUMsQ0FBQztJQUU5QyxDQUFDO0lBL0hVLGlCQUFpQjtRQUQ3QixVQUFVLEVBQUU7O09BQ0EsaUJBQWlCLENBaUk3QjtJQUFELHdCQUFDO0NBQUEsQUFqSUQsSUFpSUM7U0FqSVksaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZWxlbWVudEV2ZW50RnVsbE5hbWUgfSBmcm9tICdAYW5ndWxhci9jb21waWxlci9zcmMvdmlld19jb21waWxlci92aWV3X2NvbXBpbGVyJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBFcnBQcm9jZXNzRGF0YSB9IGZyb20gJy4vZXJwLXByb2Nlc3MtZGF0YSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBFcnBQcm9jZXNzU2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgbWVzc2FnZVNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RXJwUHJvY2Vzc0RhdGE+KHVuZGVmaW5lZCk7XHJcbiAgY3VycmVudCA9IHRoaXMubWVzc2FnZVNvdXJjZS5hc09ic2VydmFibGUoKTtcclxuICBcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgY2hhbmdlRGF0YShtZXNzYWdlOiBFcnBQcm9jZXNzRGF0YSkge1xyXG4gICAgdGhpcy5tZXNzYWdlU291cmNlLm5leHQobWVzc2FnZSlcclxuICAgIHJldHVybiBtZXNzYWdlO1xyXG4gIH1cclxuXHJcbiAgZ2V0UHJvY2Vzc0RhdGEoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tZXNzYWdlU291cmNlLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlRGF0YUVycChuZXdNZXNzYWdlOiBFcnBQcm9jZXNzRGF0YSkge1xyXG4gICAgbGV0IG1lc3NhZ2UgPSB0aGlzLm1lc3NhZ2VTb3VyY2UudmFsdWUgPyB0aGlzLm1lc3NhZ2VTb3VyY2UudmFsdWUgOiBuZXdNZXNzYWdlO1xyXG4gICAgbWVzc2FnZS5maWxpYWxJZCA9IG5ld01lc3NhZ2UuZmlsaWFsSWQ7XHJcbiAgICBtZXNzYWdlLmNoYXZlSW50ZWdyYWNhbyA9IG5ld01lc3NhZ2UuY2hhdmVJbnRlZ3JhY2FvO1xyXG4gICAgbWVzc2FnZS5wcm9kdXRvSWQgPSBuZXdNZXNzYWdlLnByb2R1dG9JZDtcclxuICAgIG1lc3NhZ2UudHJhbnNnZW5pYUlkID0gbmV3TWVzc2FnZS50cmFuc2dlbmlhSWQ7XHJcbiAgICBtZXNzYWdlLnRyYW5zcG9ydGFkb3JhSWQgPSBuZXdNZXNzYWdlLnRyYW5zcG9ydGFkb3JhSWQ7XHJcbiAgICByZXR1cm4gdGhpcy5jaGFuZ2VEYXRhKG1lc3NhZ2UpOyAgIFxyXG4gIH1cclxuXHJcbiAgY2hhbmdlRGF0YVZlaWN1bG8odmVpY3Vsb0lkOiBzdHJpbmcsIGVpeG9zOiBudW1iZXIpIHtcclxuICAgIGxldCBtZXNzYWdlID0gdGhpcy5tZXNzYWdlU291cmNlLnZhbHVlID8gdGhpcy5tZXNzYWdlU291cmNlLnZhbHVlIDogbmV3IEVycFByb2Nlc3NEYXRhKCk7XHJcbiAgICBtZXNzYWdlLnZlaWN1bG9JZCA9IHZlaWN1bG9JZDtcclxuICAgIG1lc3NhZ2UuZWl4b3MgPSBlaXhvcztcclxuICAgIHJldHVybiB0aGlzLmNoYW5nZURhdGEobWVzc2FnZSk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VEYXRhTW90b3Jpc3RhKG1vdG9yaXN0YUlkOiBzdHJpbmcpIHtcclxuICAgIGxldCBtZXNzYWdlID0gdGhpcy5tZXNzYWdlU291cmNlLnZhbHVlID8gdGhpcy5tZXNzYWdlU291cmNlLnZhbHVlIDogbmV3IEVycFByb2Nlc3NEYXRhKCk7XHJcbiAgICBtZXNzYWdlLm1vdG9yaXN0YUlkID0gbW90b3Jpc3RhSWQ7XHJcbiAgICByZXR1cm4gdGhpcy5jaGFuZ2VEYXRhKG1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlRGF0YUFnZW5kYShhZ2VuZGFJZDogc3RyaW5nLCBtb3RvcmlzdGFJZDogc3RyaW5nLCB2ZWljdWxvSWQ6IHN0cmluZywgZWl4b3M6IG51bWJlcikge1xyXG4gICAgbGV0IG1lc3NhZ2UgPSB0aGlzLm1lc3NhZ2VTb3VyY2UudmFsdWUgPyB0aGlzLm1lc3NhZ2VTb3VyY2UudmFsdWUgOiBuZXcgRXJwUHJvY2Vzc0RhdGEoKTtcclxuICAgIG1lc3NhZ2UuYWdlbmRhSWQgPSBhZ2VuZGFJZDtcclxuICAgIG1lc3NhZ2UubW90b3Jpc3RhSWQgPSBtb3RvcmlzdGFJZDtcclxuICAgIG1lc3NhZ2UudmVpY3Vsb0lkID0gdmVpY3Vsb0lkO1xyXG4gICAgbWVzc2FnZS5laXhvcyA9IGVpeG9zO1xyXG4gICAgcmV0dXJuIHRoaXMuY2hhbmdlRGF0YShtZXNzYWdlKTtcclxuICB9XHJcblxyXG4gIGJ1aWxkZXJFcnBQcm9jZXNzRGF0YShlcnBQcm9jZXNzRGF0YTogRXJwUHJvY2Vzc0RhdGEsIGZvcm1Hcm91cDogRm9ybUdyb3VwKTogRXJwUHJvY2Vzc0RhdGEge1xyXG4gICAgZXJwUHJvY2Vzc0RhdGEuY2hhdmVJbnRlZ3JhY2FvID0gZm9ybUdyb3VwLmdldChcImNoYXZlTm90YUZpc2NhbFwiKSAhPSBudWxsID8gZm9ybUdyb3VwLmdldChcImNoYXZlTm90YUZpc2NhbFwiKS52YWx1ZSA6IG51bGw7XHJcbiAgICBlcnBQcm9jZXNzRGF0YS5maWxpYWxJZCA9IHRoaXMuZ2V0RmllbGRGb3JtR3JvdXAoZm9ybUdyb3VwLCAnZmlsaWFsJyk7XHJcbiAgICBlcnBQcm9jZXNzRGF0YS5wcm9kdXRvSWQgPSB0aGlzLmdldEZpZWxkRm9ybUdyb3VwKGZvcm1Hcm91cCwgJ3Byb2R1dG8nKTtcclxuICAgIGVycFByb2Nlc3NEYXRhLnRyYW5zZ2VuaWFJZCA9IHRoaXMuZ2V0RmllbGRGb3JtR3JvdXAoZm9ybUdyb3VwLCAndHJhbnNnZW5pYScpO1xyXG4gICAgZXJwUHJvY2Vzc0RhdGEudHJhbnNwb3J0YWRvcmFJZCA9IHRoaXMuZ2V0RmllbGRGb3JtR3JvdXAoZm9ybUdyb3VwLCAndHJhbnNwb3J0YWRvcmEnKTtcclxuICAgIGVycFByb2Nlc3NEYXRhLmZvcm5lY2Vkb3JlcyA9IHRoaXMubGlzdGFySWRzRm9ybmVjZWRvcmVzKGZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpLmZvcm5lY2Vkb3Jlcyk7XHJcbiAgICByZXR1cm4gZXJwUHJvY2Vzc0RhdGE7XHJcbiAgfVxyXG5cclxuICBidWlsZGVyRXJwUHJvY2Vzc0RhdGFWYWxpZGFOb3RhTm9Db250cmF0byhlcnBQcm9jZXNzRGF0YTogRXJwUHJvY2Vzc0RhdGEsIGZvcm1Hcm91cDogRm9ybUdyb3VwKSB7XHJcbiAgICBlcnBQcm9jZXNzRGF0YSA9IHRoaXMuYnVpbGRlckVycFByb2Nlc3NEYXRhKGVycFByb2Nlc3NEYXRhLCBmb3JtR3JvdXApO1xyXG4gICAgZXJwUHJvY2Vzc0RhdGEucmVjZWJpbWVudG9UZW1Ob3RhID0gdGhpcy52ZXJpZmljYVNlVGVtTm90YU5vQ29udHJhdG9Ob0Zvcm5lY2Vkbyhmb3JtR3JvdXAuZ2V0UmF3VmFsdWUoKS5mb3JuZWNlZG9yZXMpO1xyXG4gICAgcmV0dXJuIGVycFByb2Nlc3NEYXRhO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB2ZXJpZmljYVNlVGVtTm90YU5vQ29udHJhdG9Ob0Zvcm5lY2Vkbyhmb3JuZWNlZG9yZXM6IGFueSl7XHJcbiAgICBsZXQgY29udHJhdG9zVGVtTm90YSA9IGZhbHNlO1xyXG5cclxuICAgIGxldCBsaXN0YUNvbnRyYXRvcyA9IFtdOyAgICBcclxuICAgIGlmIChmb3JuZWNlZG9yZXMgIT0gbnVsbCkge1xyXG4gICAgICBmb3JuZWNlZG9yZXMuZmlsdGVyKGVsZW1lbnQgPT4gZWxlbWVudC5jb250cmF0b3MgIT0gbnVsbCAmJiBlbGVtZW50LmNvbnRyYXRvcyAhPSB1bmRlZmluZWQpLmZvckVhY2goZWxlbWVudCA9PiBsaXN0YUNvbnRyYXRvcy5wdXNoKGVsZW1lbnQuY29udHJhdG9zKSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGxldCBsaXN0YU5vdGFzID0gW107ICBcclxuICAgIGlmIChsaXN0YUNvbnRyYXRvcyAhPSBudWxsKSB7XHJcbiAgICAgIGxpc3RhQ29udHJhdG9zLmZpbHRlcihjb250cmF0b3MgPT4gY29udHJhdG9zICE9IG51bGwgJiYgY29udHJhdG9zICE9IHVuZGVmaW5lZCkuZm9yRWFjaChjb250cmF0b3MgPT4gbGlzdGFOb3Rhcy5wdXNoKGNvbnRyYXRvc1RlbU5vdGEgPSB0aGlzLnZlcmlmaWNhU2VDb250cmF0b3NUZW1Ob3RhKGNvbnRyYXRvcykpKTtcclxuICAgIH1cclxuICAgIHJldHVybiBjb250cmF0b3NUZW1Ob3RhO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB2ZXJpZmljYVNlQ29udHJhdG9zVGVtTm90YShjb250cmF0b3M6IGFueSl7XHJcbiAgICBsZXQgY29udHJhdG9zVGVtTm90YSA9IHRydWU7XHJcbiAgICBjb250cmF0b3MuZmlsdGVyKGNvbnRyYXRvID0+IGNvbnRyYXRvICE9IG51bGwgJiYgY29udHJhdG8gIT0gdW5kZWZpbmVkKS5mb3JFYWNoKGNvbnRyYXRvID0+IGNvbnRyYXRvc1RlbU5vdGEgPSBjb250cmF0b3NUZW1Ob3RhICYmIChjb250cmF0by5ub3Rhcy5sZW5ndGggPiAwKSk7XHJcbiAgICByZXR1cm4gY29udHJhdG9zVGVtTm90YTtcclxuICB9XHJcblxyXG4gIGJ1aWxkZXJFcnBQcm9jZXNzRGF0YVZhbGlkYU5vdGFOYU9yZGVtQ29tcHJhKGVycFByb2Nlc3NEYXRhOiBFcnBQcm9jZXNzRGF0YSwgZm9ybUdyb3VwOiBGb3JtR3JvdXApIHtcclxuICAgIGVycFByb2Nlc3NEYXRhID0gdGhpcy5idWlsZGVyRXJwUHJvY2Vzc0RhdGEoZXJwUHJvY2Vzc0RhdGEsIGZvcm1Hcm91cCk7XHJcbiAgICBlcnBQcm9jZXNzRGF0YS5yZWNlYmltZW50b1RlbU5vdGEgPSB0aGlzLnZlcmlmaWNhU2VUZW1Ob3RhTmFPcmRlbUNvbXByYURvRm9ybmVjZWRvKGZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpLmZvcm5lY2Vkb3Jlcyk7XHJcbiAgICByZXR1cm4gZXJwUHJvY2Vzc0RhdGE7XHJcbiAgfVxyXG4gIFxyXG4gIHByaXZhdGUgdmVyaWZpY2FTZVRlbU5vdGFOYU9yZGVtQ29tcHJhRG9Gb3JuZWNlZG8oZm9ybmVjZWRvcmVzOiBhbnkpe1xyXG4gICAgbGV0IG9yZGVtQ29tcHJhVGVtTm90YSA9IGZhbHNlO1xyXG5cclxuICAgIGxldCBsaXN0YU9yZGVucyA9IFtdOyAgICBcclxuICAgIGlmIChmb3JuZWNlZG9yZXMgIT0gbnVsbCkge1xyXG4gICAgICBmb3JuZWNlZG9yZXMuZmlsdGVyKGVsZW1lbnQgPT4gZWxlbWVudC5vcmRlbnMgIT0gbnVsbCAmJiBlbGVtZW50Lm9yZGVucyAhPSB1bmRlZmluZWQpLmZvckVhY2goZWxlbWVudCA9PiBsaXN0YU9yZGVucy5wdXNoKGVsZW1lbnQub3JkZW5zKSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGxldCBsaXN0YU5vdGFzID0gW107ICBcclxuICAgIGlmIChsaXN0YU9yZGVucyAhPSBudWxsKSB7XHJcbiAgICAgIGxpc3RhT3JkZW5zLmZpbHRlcihvcmRlbnMgPT4gb3JkZW5zICE9IG51bGwgJiYgb3JkZW5zICE9IHVuZGVmaW5lZCkuZm9yRWFjaChvcmRlbnMgPT4gbGlzdGFOb3Rhcy5wdXNoKG9yZGVtQ29tcHJhVGVtTm90YSA9IHRoaXMudmVyaWZpY2FTZU9yZGVtQ29tcHJhVGVtTm90YShvcmRlbnMpKSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb3JkZW1Db21wcmFUZW1Ob3RhO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB2ZXJpZmljYVNlT3JkZW1Db21wcmFUZW1Ob3RhKGNvbnRyYXRvczogYW55KXtcclxuICAgIGxldCBvcmRlbUNvbXByYVRlbU5vdGEgPSB0cnVlO1xyXG4gICAgY29udHJhdG9zLmZpbHRlcihvcmRlbSA9PiBvcmRlbSAhPSBudWxsICYmIG9yZGVtICE9IHVuZGVmaW5lZCkuZm9yRWFjaChvcmRlbSA9PiBvcmRlbUNvbXByYVRlbU5vdGEgPSBvcmRlbUNvbXByYVRlbU5vdGEgJiYgKG9yZGVtLm5vdGFzLmxlbmd0aCA+IDApKTtcclxuICAgIHJldHVybiBvcmRlbUNvbXByYVRlbU5vdGE7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEZpZWxkRm9ybUdyb3VwKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBmaWVsZE5hbWU6IHN0cmluZykge1xyXG4gICAgaWYoZm9ybUdyb3VwLmdldChmaWVsZE5hbWUpID09IG51bGwgfHwgZm9ybUdyb3VwLmdldChmaWVsZE5hbWUpLnZhbHVlID09IG51bGwpIHtcclxuICAgICAgICByZXR1cm4gbnVsbFxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZvcm1Hcm91cC5nZXQoZmllbGROYW1lKS52YWx1ZS5pZDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbGlzdGFySWRzRm9ybmVjZWRvcmVzIChmb3JuZWNlZG9yZXM6IGFueSkge1xyXG4gICAgbGV0IGxpc3RhRm9ybmVjZWRvcmVzID0gW107ICAgIFxyXG4gICAgaWYgKGZvcm5lY2Vkb3JlcyAhPSBudWxsKSB7XHJcbiAgICAgICAgZm9ybmVjZWRvcmVzLmZpbHRlcihlbGVtZW50ID0+IGVsZW1lbnQuZm9ybmVjZWRvciAhPSBudWxsICYmIGVsZW1lbnQuZm9ybmVjZWRvciAhPSB1bmRlZmluZWQpLmZvckVhY2goZWxlbWVudCA9PiBsaXN0YUZvcm5lY2Vkb3Jlcy5wdXNoKGVsZW1lbnQuZm9ybmVjZWRvcikpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGxpc3RhRm9ybmVjZWRvcmVzLm1hcCh2YWwgPT4gdmFsLmlkKTtcclxuXHJcbiAgfVxyXG5cclxufSJdfQ==