@senior-agronegocio/angular-components 0.0.9871 → 0.0.9873

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/bundles/senior-agronegocio-angular-components.umd.js +702 -893
  2. package/bundles/senior-agronegocio-angular-components.umd.js.map +1 -1
  3. package/bundles/senior-agronegocio-angular-components.umd.min.js +2 -2
  4. package/bundles/senior-agronegocio-angular-components.umd.min.js.map +1 -1
  5. package/components/event-control-board/service/e001pes/e001pes.service.d.ts +2 -2
  6. package/components/event-control-board/service/e001tns/e001tns.service.d.ts +2 -2
  7. package/components/event-control-board/service/e012fam/e012fam.service.d.ts +2 -2
  8. package/components/event-control-board/service/e070emp/e070emp.service.d.ts +2 -2
  9. package/components/event-control-board/service/e070fil/e070fil.service.d.ts +2 -2
  10. package/components/event-control-board/service/e075der/e075der.service.d.ts +2 -2
  11. package/components/event-control-board/service/e205dep/e205dep.service.d.ts +2 -2
  12. package/components/event-control-board/service/event-control/event-control.service.d.ts +2 -2
  13. package/components/event-control-board/service/event-control-item/event-control-item.service.d.ts +2 -2
  14. package/components/event-control-board/service/external-invoice/external-invoice.service.d.ts +2 -2
  15. package/components/event-control-board/service/fixation-entity/fixation.service.d.ts +2 -2
  16. package/components/event-control-board/service/invoice/invoice.service.d.ts +2 -2
  17. package/components/event-control-board/service/origination/origination.service.d.ts +2 -2
  18. package/components/event-control-board/service/rural-estate/rural-estate.service.d.ts +2 -2
  19. package/components/event-control-board/service/ticket/ticket.service.d.ts +2 -2
  20. package/components/event-control-board/service/transfer/transfer.service.d.ts +2 -2
  21. package/components/financial-title-table/services/financial/agro-financial.service.d.ts +1 -1
  22. package/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.component.d.ts +8 -7
  23. package/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.component.d.ts +8 -6
  24. package/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.component.d.ts +8 -17
  25. package/components/modal-invoice-pj/modal-invoice-pj-base.class.d.ts +9 -7
  26. package/components/modal-invoice-pj/services/agro-invoice/agro-invoice.service.d.ts +1 -1
  27. package/esm2015/common/agro-logics.class.js +6 -5
  28. package/esm2015/common/agro-unit-converter.class.js +1 -2
  29. package/esm2015/components/event-control-board/common/event-control-constants.js +2 -2
  30. package/esm2015/components/event-control-board/event-control-board.component.js +2 -2
  31. package/esm2015/components/event-control-board/service/e001pes/e001pes.service.js +3 -3
  32. package/esm2015/components/event-control-board/service/e001tns/e001tns.service.js +3 -3
  33. package/esm2015/components/event-control-board/service/e012fam/e012fam.service.js +3 -3
  34. package/esm2015/components/event-control-board/service/e070emp/e070emp.service.js +3 -3
  35. package/esm2015/components/event-control-board/service/e070fil/e070fil.service.js +3 -3
  36. package/esm2015/components/event-control-board/service/e075der/e075der.service.js +3 -3
  37. package/esm2015/components/event-control-board/service/e205dep/e205dep.service.js +3 -3
  38. package/esm2015/components/event-control-board/service/event-control/event-control.service.js +3 -3
  39. package/esm2015/components/event-control-board/service/event-control-item/event-control-item.service.js +3 -3
  40. package/esm2015/components/event-control-board/service/external-invoice/external-invoice.service.js +3 -3
  41. package/esm2015/components/event-control-board/service/fixation-entity/fixation.service.js +3 -3
  42. package/esm2015/components/event-control-board/service/invoice/invoice.service.js +3 -3
  43. package/esm2015/components/event-control-board/service/origination/origination.service.js +3 -3
  44. package/esm2015/components/event-control-board/service/rural-estate/rural-estate.service.js +3 -3
  45. package/esm2015/components/event-control-board/service/ticket/ticket.service.js +3 -3
  46. package/esm2015/components/event-control-board/service/transfer/transfer.service.js +3 -3
  47. package/esm2015/components/financial-title-table/services/financial/agro-financial.service.js +2 -2
  48. package/esm2015/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.component.js +15 -13
  49. package/esm2015/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.component.js +13 -10
  50. package/esm2015/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.component.js +13 -36
  51. package/esm2015/components/modal-invoice-pj/modal-invoice-pj-base.class.js +13 -10
  52. package/esm2015/components/modal-invoice-pj/services/agro-invoice/agro-invoice.service.js +2 -2
  53. package/esm2015/services/agro-entity-service.js +132 -0
  54. package/esm2015/services/i18n/en-US.js +276 -294
  55. package/esm2015/services/i18n/es-CO.js +283 -294
  56. package/esm2015/services/i18n/pt-BR.js +70 -81
  57. package/esm2015/services/producer-invoice/producer-invoice.service.js +2 -2
  58. package/esm5/common/agro-logics.class.js +6 -5
  59. package/esm5/common/agro-unit-converter.class.js +1 -2
  60. package/esm5/components/event-control-board/common/event-control-constants.js +2 -2
  61. package/esm5/components/event-control-board/event-control-board.component.js +2 -2
  62. package/esm5/components/event-control-board/service/e001pes/e001pes.service.js +3 -3
  63. package/esm5/components/event-control-board/service/e001tns/e001tns.service.js +3 -3
  64. package/esm5/components/event-control-board/service/e012fam/e012fam.service.js +3 -3
  65. package/esm5/components/event-control-board/service/e070emp/e070emp.service.js +3 -3
  66. package/esm5/components/event-control-board/service/e070fil/e070fil.service.js +3 -3
  67. package/esm5/components/event-control-board/service/e075der/e075der.service.js +3 -3
  68. package/esm5/components/event-control-board/service/e205dep/e205dep.service.js +3 -3
  69. package/esm5/components/event-control-board/service/event-control/event-control.service.js +3 -3
  70. package/esm5/components/event-control-board/service/event-control-item/event-control-item.service.js +3 -3
  71. package/esm5/components/event-control-board/service/external-invoice/external-invoice.service.js +3 -3
  72. package/esm5/components/event-control-board/service/fixation-entity/fixation.service.js +3 -3
  73. package/esm5/components/event-control-board/service/invoice/invoice.service.js +3 -3
  74. package/esm5/components/event-control-board/service/origination/origination.service.js +3 -3
  75. package/esm5/components/event-control-board/service/rural-estate/rural-estate.service.js +3 -3
  76. package/esm5/components/event-control-board/service/ticket/ticket.service.js +3 -3
  77. package/esm5/components/event-control-board/service/transfer/transfer.service.js +3 -3
  78. package/esm5/components/financial-title-table/services/financial/agro-financial.service.js +2 -2
  79. package/esm5/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.component.js +15 -13
  80. package/esm5/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.component.js +13 -10
  81. package/esm5/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.component.js +13 -36
  82. package/esm5/components/modal-invoice-pj/modal-invoice-pj-base.class.js +13 -10
  83. package/esm5/components/modal-invoice-pj/services/agro-invoice/agro-invoice.service.js +2 -2
  84. package/esm5/services/agro-entity-service.js +143 -0
  85. package/esm5/services/i18n/en-US.js +276 -294
  86. package/esm5/services/i18n/es-CO.js +283 -294
  87. package/esm5/services/i18n/pt-BR.js +70 -81
  88. package/esm5/services/producer-invoice/producer-invoice.service.js +2 -2
  89. package/fesm2015/senior-agronegocio-angular-components.js +690 -872
  90. package/fesm2015/senior-agronegocio-angular-components.js.map +1 -1
  91. package/fesm5/senior-agronegocio-angular-components.js +703 -894
  92. package/fesm5/senior-agronegocio-angular-components.js.map +1 -1
  93. package/package.json +3 -3
  94. package/{components/event-control-board/service/entity-service.d.ts → services/agro-entity-service.d.ts} +3 -13
  95. package/services/i18n/en-US.d.ts +275 -293
  96. package/services/i18n/es-CO.d.ts +282 -293
  97. package/services/i18n/pt-BR.d.ts +69 -80
  98. package/services/producer-invoice/producer-invoice.service.d.ts +1 -1
  99. package/esm2015/components/event-control-board/service/entity-service.js +0 -127
  100. package/esm2015/services/entity-service.js +0 -132
  101. package/esm5/components/event-control-board/service/entity-service.js +0 -138
  102. package/esm5/services/entity-service.js +0 -143
  103. package/services/entity-service.d.ts +0 -73
@@ -2,8 +2,8 @@ import { HttpClient } from "@angular/common/http";
2
2
  import { MessageService } from "primeng";
3
3
  import { LibTranslationService as TranslateService } from "../../../../services/lib-translation.service";
4
4
  import { E001pesDto } from "./e001pes-dto";
5
- import { EntityService } from "../entity-service";
6
- export declare class E001pesService extends EntityService<E001pesDto> {
5
+ import { AgroEntityService } from "../../../../services/agro-entity-service";
6
+ export declare class E001pesService extends AgroEntityService<E001pesDto> {
7
7
  protected http: HttpClient;
8
8
  protected messageService: MessageService;
9
9
  protected translate: TranslateService;
@@ -2,8 +2,8 @@ import { HttpClient } from "@angular/common/http";
2
2
  import { MessageService } from "primeng/api";
3
3
  import { LibTranslationService as TranslateService } from "../../../../services/lib-translation.service";
4
4
  import { E001TnsDto } from "./e001tns-dto";
5
- import { EntityService } from "../entity-service";
6
- export declare class E001TnsService extends EntityService<E001TnsDto> {
5
+ import { AgroEntityService } from "../../../../services/agro-entity-service";
6
+ export declare class E001TnsService extends AgroEntityService<E001TnsDto> {
7
7
  protected http: HttpClient;
8
8
  protected messageService: MessageService;
9
9
  protected translate: TranslateService;
@@ -1,9 +1,9 @@
1
1
  import { HttpClient } from "@angular/common/http";
2
2
  import { MessageService } from "primeng";
3
3
  import { LibTranslationService as TranslateService } from "../../../../services/lib-translation.service";
4
- import { EntityService } from "../entity-service";
4
+ import { AgroEntityService } from "../../../../services/agro-entity-service";
5
5
  import { E012famDto } from "./e012fam-dto";
6
- export declare class E012famService extends EntityService<E012famDto> {
6
+ export declare class E012famService extends AgroEntityService<E012famDto> {
7
7
  protected http: HttpClient;
8
8
  protected messageService: MessageService;
9
9
  protected translate: TranslateService;
@@ -1,9 +1,9 @@
1
1
  import { HttpClient } from "@angular/common/http";
2
2
  import { MessageService } from "primeng/api";
3
3
  import { LibTranslationService as TranslateService } from "../../../../services/lib-translation.service";
4
- import { EntityService, ListParams } from "../entity-service";
4
+ import { AgroEntityService, ListParams } from '../../../../services/agro-entity-service';
5
5
  import { E070EmpDto } from "./e070emp-dto";
6
- export declare class E070EmpService extends EntityService<E070EmpDto> {
6
+ export declare class E070EmpService extends AgroEntityService<E070EmpDto> {
7
7
  protected http: HttpClient;
8
8
  protected messageService: MessageService;
9
9
  protected translate: TranslateService;
@@ -1,9 +1,9 @@
1
1
  import { HttpClient } from "@angular/common/http";
2
2
  import { MessageService } from "primeng/api";
3
3
  import { LibTranslationService as TranslateService } from "../../../../services/lib-translation.service";
4
- import { EntityService, ListParams } from "../entity-service";
4
+ import { AgroEntityService, ListParams } from '../../../../services/agro-entity-service';
5
5
  import { E070FilDto } from "./e070fil-dto";
6
- export declare class E070FilService extends EntityService<E070FilDto> {
6
+ export declare class E070FilService extends AgroEntityService<E070FilDto> {
7
7
  protected http: HttpClient;
8
8
  protected messageService: MessageService;
9
9
  protected translate: TranslateService;
@@ -1,9 +1,9 @@
1
1
  import { HttpClient } from "@angular/common/http";
2
2
  import { MessageService } from "primeng/api";
3
3
  import { LibTranslationService as TranslateService } from "../../../../services/lib-translation.service";
4
- import { EntityService } from "../entity-service";
4
+ import { AgroEntityService } from "../../../../services/agro-entity-service";
5
5
  import { E075DerDto } from "./e075der-dto";
6
- export declare class E075DerService extends EntityService<E075DerDto> {
6
+ export declare class E075DerService extends AgroEntityService<E075DerDto> {
7
7
  protected http: HttpClient;
8
8
  protected messageService: MessageService;
9
9
  protected translate: TranslateService;
@@ -1,9 +1,9 @@
1
1
  import { HttpClient } from "@angular/common/http";
2
2
  import { MessageService } from "primeng";
3
3
  import { LibTranslationService as TranslateService } from "../../../../services/lib-translation.service";
4
- import { EntityService } from "../entity-service";
4
+ import { AgroEntityService } from "../../../../services/agro-entity-service";
5
5
  import { E205depDto } from "./deposit-dto";
6
- export declare class E205depService extends EntityService<E205depDto> {
6
+ export declare class E205depService extends AgroEntityService<E205depDto> {
7
7
  protected http: HttpClient;
8
8
  protected messageService: MessageService;
9
9
  protected translate: TranslateService;
@@ -2,8 +2,8 @@ import { HttpClient } from '@angular/common/http';
2
2
  import { MessageService } from 'primeng/api';
3
3
  import { LibTranslationService as TranslateService } from "../../../../services/lib-translation.service";
4
4
  import { EventControlDto } from '../event-control/event-control-dto';
5
- import { EntityService } from '../entity-service';
6
- export declare class EventControlService extends EntityService<EventControlDto> {
5
+ import { AgroEntityService } from '../../../../services/agro-entity-service';
6
+ export declare class EventControlService extends AgroEntityService<EventControlDto> {
7
7
  protected http: HttpClient;
8
8
  protected messageService: MessageService;
9
9
  protected translate: TranslateService;
@@ -2,8 +2,8 @@ import { HttpClient } from '@angular/common/http';
2
2
  import { MessageService } from 'primeng/api';
3
3
  import { LibTranslationService as TranslateService } from "../../../../services/lib-translation.service";
4
4
  import { EventControlItemDto } from '../event-control-item/event-control-item-dto';
5
- import { EntityService } from '../entity-service';
6
- export declare class EventControlItemService extends EntityService<EventControlItemDto> {
5
+ import { AgroEntityService } from '../../../../services/agro-entity-service';
6
+ export declare class EventControlItemService extends AgroEntityService<EventControlItemDto> {
7
7
  protected http: HttpClient;
8
8
  protected messageService: MessageService;
9
9
  protected translate: TranslateService;
@@ -1,9 +1,9 @@
1
1
  import { HttpClient } from "@angular/common/http";
2
2
  import { MessageService } from "primeng";
3
3
  import { LibTranslationService as TranslateService } from "../../../../services/lib-translation.service";
4
- import { EntityService } from "../entity-service";
4
+ import { AgroEntityService } from "../../../../services/agro-entity-service";
5
5
  import { ExternalInvoiceDto } from "./external-invoice-dto";
6
- export declare class ExternalInvoiceService extends EntityService<ExternalInvoiceDto> {
6
+ export declare class ExternalInvoiceService extends AgroEntityService<ExternalInvoiceDto> {
7
7
  protected http: HttpClient;
8
8
  protected messageService: MessageService;
9
9
  protected translate: TranslateService;
@@ -2,11 +2,11 @@ import { FixationDto } from './fixation-dto';
2
2
  import { HttpClient } from '@angular/common/http';
3
3
  import { MessageService } from 'primeng/api';
4
4
  import { LibTranslationService as TranslateService } from "../../../../services/lib-translation.service";
5
- import { EntityService } from '../entity-service';
5
+ import { AgroEntityService } from '../../../../services/agro-entity-service';
6
6
  export interface ICancelFixationPayload {
7
7
  fixationId: string;
8
8
  }
9
- export declare class FixationService extends EntityService<FixationDto> {
9
+ export declare class FixationService extends AgroEntityService<FixationDto> {
10
10
  protected http: HttpClient;
11
11
  protected messageService: MessageService;
12
12
  protected translate: TranslateService;
@@ -2,8 +2,8 @@ import { HttpClient } from '@angular/common/http';
2
2
  import { MessageService } from 'primeng/api';
3
3
  import { LibTranslationService as TranslateService } from "../../../../services/lib-translation.service";
4
4
  import { InvoiceDto } from '../invoice/invoice-dto';
5
- import { EntityService } from '../entity-service';
6
- export declare class InvoiceService extends EntityService<InvoiceDto> {
5
+ import { AgroEntityService } from '../../../../services/agro-entity-service';
6
+ export declare class InvoiceService extends AgroEntityService<InvoiceDto> {
7
7
  protected http: HttpClient;
8
8
  protected messageService: MessageService;
9
9
  protected translate: TranslateService;
@@ -2,8 +2,8 @@ import { HttpClient } from "@angular/common/http";
2
2
  import { MessageService } from "primeng";
3
3
  import { LibTranslationService as TranslateService } from "../../../../services/lib-translation.service";
4
4
  import { OriginationDto } from "../origination/origination-dto";
5
- import { EntityService } from "../entity-service";
6
- export declare class OriginationService extends EntityService<OriginationDto> {
5
+ import { AgroEntityService } from "../../../../services/agro-entity-service";
6
+ export declare class OriginationService extends AgroEntityService<OriginationDto> {
7
7
  protected http: HttpClient;
8
8
  protected messageService: MessageService;
9
9
  protected translate: TranslateService;
@@ -1,9 +1,9 @@
1
1
  import { HttpClient } from '@angular/common/http';
2
2
  import { MessageService } from 'primeng/api';
3
3
  import { RuralEstateDto } from '../rural-estate/rural-estate-dto';
4
- import { EntityService } from '../entity-service';
4
+ import { AgroEntityService } from '../../../../services/agro-entity-service';
5
5
  import { LibTranslationService } from '../../../../services/lib-translation.service';
6
- export declare class RuralEstateService extends EntityService<RuralEstateDto> {
6
+ export declare class RuralEstateService extends AgroEntityService<RuralEstateDto> {
7
7
  protected http: HttpClient;
8
8
  protected messageService: MessageService;
9
9
  protected translate: LibTranslationService;
@@ -2,7 +2,7 @@ import { HttpClient } from '@angular/common/http';
2
2
  import { MessageService } from 'primeng/api';
3
3
  import { LibTranslationService as TranslateService } from "../../../../services/lib-translation.service";
4
4
  import { TicketDto } from '../ticket/ticket-dto';
5
- import { EntityService } from '../entity-service';
5
+ import { AgroEntityService } from '../../../../services/agro-entity-service';
6
6
  import { Observable } from "rxjs";
7
7
  export interface IListMainteinerTicketsPayload {
8
8
  filter: {
@@ -29,7 +29,7 @@ export interface IListMainteinerTicketsPayload {
29
29
  order?: number;
30
30
  };
31
31
  }
32
- export declare class TicketService extends EntityService<TicketDto> {
32
+ export declare class TicketService extends AgroEntityService<TicketDto> {
33
33
  protected http: HttpClient;
34
34
  protected messageService: MessageService;
35
35
  protected translate: TranslateService;
@@ -1,9 +1,9 @@
1
1
  import { HttpClient } from '@angular/common/http';
2
2
  import { MessageService } from 'primeng/api';
3
3
  import { LibTranslationService as TranslateService } from "../../../../services/lib-translation.service";
4
- import { EntityService } from '../entity-service';
4
+ import { AgroEntityService } from '../../../../services/agro-entity-service';
5
5
  import { TransferDto } from './transfer-dto';
6
- export declare class TransferService extends EntityService<TransferDto> {
6
+ export declare class TransferService extends AgroEntityService<TransferDto> {
7
7
  protected http: HttpClient;
8
8
  protected messageService: MessageService;
9
9
  protected translate: TranslateService;
@@ -1,7 +1,7 @@
1
1
  import { HttpClient } from "@angular/common/http";
2
2
  import { MessageService } from "primeng/api";
3
3
  import { Observable } from "rxjs";
4
- import { AgroEntityService } from "../../../../services/entity-service";
4
+ import { AgroEntityService } from "../../../../services/agro-entity-service";
5
5
  import { LibTranslationService } from "../../../../services/lib-translation.service";
6
6
  import { FinancialQueryDataResponse, RequestListTitlesInput, TitleDto } from "./intefaces";
7
7
  export declare class AgroFinancialService extends AgroEntityService<TitleDto> {
@@ -1,14 +1,14 @@
1
+ import { CurrencyPipe, DatePipe } from '@angular/common';
1
2
  import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
- import { IInvoiceLookupResponse } from '../services/agro-invoice/interfaces';
3
- import { LibTranslationService } from '../../../services/lib-translation.service';
4
- import { AgroInvoiceService } from '../services/agro-invoice';
5
3
  import { Column, LocaleService } from '@seniorsistemas/angular-components';
4
+ import { MessageService } from 'primeng';
6
5
  import { KilogramPipe } from '../../../pipe/kilogram';
7
- import { CurrencyPipe } from '@angular/common';
6
+ import { LibTranslationService } from '../../../services/lib-translation.service';
7
+ import { ProducerInvoiceService } from '../../../services/producer-invoice/producer-invoice.service';
8
8
  import { ModalInvoicePjBase } from '../modal-invoice-pj-base.class';
9
+ import { AgroInvoiceService } from '../services/agro-invoice';
10
+ import { IInvoiceLookupResponse } from '../services/agro-invoice/interfaces';
9
11
  import { ModalInvoicePjForFixationOptions } from './modal-fixation-options.interface';
10
- import { ProducerInvoiceService } from '../../../services/producer-invoice/producer-invoice.service';
11
- import { MessageService } from 'primeng';
12
12
  export declare class ModalInvoicePjForFixationComponent extends ModalInvoicePjBase implements OnInit, OnDestroy {
13
13
  readonly translationService: LibTranslationService;
14
14
  readonly invoiceService: AgroInvoiceService;
@@ -17,12 +17,13 @@ export declare class ModalInvoicePjForFixationComponent extends ModalInvoicePjBa
17
17
  readonly currencyPipe: CurrencyPipe;
18
18
  readonly producerInvoiceService: ProducerInvoiceService;
19
19
  readonly messageService: MessageService;
20
+ datePipe: DatePipe;
20
21
  options: ModalInvoicePjForFixationOptions;
21
22
  whenSelectInvoices: EventEmitter<any[]>;
22
23
  gridColumns: Partial<Column & {
23
24
  sortable?: boolean;
24
25
  }>[];
25
- constructor(translationService: LibTranslationService, invoiceService: AgroInvoiceService, localeService: LocaleService, kilogramPipe: KilogramPipe, currencyPipe: CurrencyPipe, producerInvoiceService: ProducerInvoiceService, messageService: MessageService);
26
+ constructor(translationService: LibTranslationService, invoiceService: AgroInvoiceService, localeService: LocaleService, kilogramPipe: KilogramPipe, currencyPipe: CurrencyPipe, producerInvoiceService: ProducerInvoiceService, messageService: MessageService, datePipe: DatePipe);
26
27
  ngOnInit(): void;
27
28
  defineGridColumns(): void;
28
29
  beforeAdd(selectedInvoices: any[]): Promise<any>;
@@ -1,26 +1,28 @@
1
+ import { DatePipe } from '@angular/common';
1
2
  import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
- import { ModalInvoicePjOptions } from '../modal-invoice-pj-options.interface';
3
3
  import { Column, LocaleService } from '@seniorsistemas/angular-components';
4
- import { ModalInvoicePjBase } from '../modal-invoice-pj-base.class';
5
- import { IInvoiceLookupResponse } from '../services/agro-invoice/interfaces';
4
+ import { MessageService } from 'primeng';
6
5
  import { KilogramPipe } from '../../../pipe/kilogram';
7
6
  import { LibTranslationService } from '../../../services/lib-translation.service';
7
+ import { ModalInvoicePjBase } from '../modal-invoice-pj-base.class';
8
+ import { ModalInvoicePjOptions } from '../modal-invoice-pj-options.interface';
8
9
  import { AgroInvoiceService } from '../services/agro-invoice';
9
- import { MessageService } from 'primeng';
10
+ import { IInvoiceLookupResponse } from '../services/agro-invoice/interfaces';
10
11
  export declare class ModalInvoicePjForOriginationComponent extends ModalInvoicePjBase implements OnInit, OnDestroy {
11
12
  translate: LibTranslationService;
12
13
  invoiceService: AgroInvoiceService;
13
14
  localeService: LocaleService;
14
15
  kilogramPipe: KilogramPipe;
15
16
  messageService: MessageService;
17
+ datePipe: DatePipe;
16
18
  options: ModalInvoicePjOptions;
17
19
  whenSelectInvoices: EventEmitter<any[]>;
18
20
  gridColumns: Partial<Column & {
19
21
  sortable?: boolean;
20
22
  }>[];
21
- constructor(translate: LibTranslationService, invoiceService: AgroInvoiceService, localeService: LocaleService, kilogramPipe: KilogramPipe, messageService: MessageService);
23
+ constructor(translate: LibTranslationService, invoiceService: AgroInvoiceService, localeService: LocaleService, kilogramPipe: KilogramPipe, messageService: MessageService, datePipe: DatePipe);
22
24
  ngOnInit(): void;
23
25
  defineGridColumns(): void;
24
- beforeAdd(selectedInvoices: any): Promise<any>;
25
26
  adaptResult(result: IInvoiceLookupResponse): Promise<any>;
27
+ beforeAdd(selectedInvoices: any): Promise<any>;
26
28
  }
@@ -1,26 +1,17 @@
1
- import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
- import { ModalInvoicePjOptions } from '../modal-invoice-pj-options.interface';
3
- import { Column, LocaleService } from '@seniorsistemas/angular-components';
4
- import { ModalInvoicePjBase } from '../modal-invoice-pj-base.class';
5
- import { IInvoiceLookupResponse } from '../services/agro-invoice/interfaces';
1
+ import { DatePipe } from '@angular/common';
2
+ import { OnDestroy, OnInit } from '@angular/core';
3
+ import { LocaleService } from '@seniorsistemas/angular-components';
4
+ import { MessageService } from 'primeng';
6
5
  import { KilogramPipe } from '../../../pipe/kilogram';
7
6
  import { LibTranslationService } from '../../../services/lib-translation.service';
8
7
  import { AgroInvoiceService } from '../services/agro-invoice';
9
- import { MessageService } from 'primeng';
10
- export declare class ModalInvoicePjForTransferComponent extends ModalInvoicePjBase implements OnInit, OnDestroy {
8
+ import { ModalInvoicePjForOriginationComponent } from '../for-origination/modal-invoice-pj-for-origination.component';
9
+ export declare class ModalInvoicePjForTransferComponent extends ModalInvoicePjForOriginationComponent implements OnInit, OnDestroy {
11
10
  translate: LibTranslationService;
12
11
  invoiceService: AgroInvoiceService;
13
12
  localeService: LocaleService;
14
13
  kilogramPipe: KilogramPipe;
15
14
  messageService: MessageService;
16
- options: ModalInvoicePjOptions;
17
- whenSelectInvoices: EventEmitter<any[]>;
18
- gridColumns: Partial<Column & {
19
- sortable?: boolean;
20
- }>[];
21
- constructor(translate: LibTranslationService, invoiceService: AgroInvoiceService, localeService: LocaleService, kilogramPipe: KilogramPipe, messageService: MessageService);
22
- ngOnInit(): void;
23
- defineGridColumns(): void;
24
- beforeAdd(selectedInvoices: any): Promise<any>;
25
- adaptResult(result: IInvoiceLookupResponse): Promise<any>;
15
+ datePipe: DatePipe;
16
+ constructor(translate: LibTranslationService, invoiceService: AgroInvoiceService, localeService: LocaleService, kilogramPipe: KilogramPipe, messageService: MessageService, datePipe: DatePipe);
26
17
  }
@@ -1,20 +1,22 @@
1
+ import { DatePipe } from '@angular/common';
1
2
  import { EventEmitter } from '@angular/core';
2
- import { LazyLoadEvent, MessageService } from 'primeng';
3
- import { Subject } from 'rxjs';
4
3
  import { FormControl } from '@angular/forms';
5
- import { ListParams } from '../../services/entity-service';
6
- import { AgroInvoiceService } from './services/agro-invoice/agro-invoice.service';
7
- import { ModalInvoicePjOptions } from './modal-invoice-pj-options.interface';
8
4
  import { ButtonPriority, Column, LocaleService } from '@seniorsistemas/angular-components';
5
+ import { LazyLoadEvent, MessageService } from 'primeng';
6
+ import { Subject } from 'rxjs';
7
+ import { KilogramPipe } from '../../pipe/kilogram';
8
+ import { ListParams } from '../../services/agro-entity-service';
9
9
  import { LibTranslationService } from '../../services/lib-translation.service';
10
+ import { ModalInvoicePjOptions } from './modal-invoice-pj-options.interface';
11
+ import { AgroInvoiceService } from './services/agro-invoice/agro-invoice.service';
10
12
  import { IInvoiceLookupResponse } from './services/agro-invoice/interfaces';
11
- import { KilogramPipe } from '../../pipe/kilogram';
12
13
  export declare abstract class ModalInvoicePjBase {
13
14
  protected readonly translate: LibTranslationService;
14
15
  protected readonly invoiceService: AgroInvoiceService;
15
16
  protected readonly localeService: LocaleService;
16
17
  protected readonly kilogramPipe: KilogramPipe;
17
18
  protected readonly messageService: MessageService;
19
+ protected readonly datePipe: DatePipe;
18
20
  abstract options: ModalInvoicePjOptions;
19
21
  abstract whenSelectInvoices: EventEmitter<any[]>;
20
22
  abstract gridColumns: Partial<Column & {
@@ -34,7 +36,7 @@ export declare abstract class ModalInvoicePjBase {
34
36
  gridFieldValuesMap: {
35
37
  [key: string]: (row: any) => any;
36
38
  };
37
- constructor(translate: LibTranslationService, invoiceService: AgroInvoiceService, localeService: LocaleService, kilogramPipe: KilogramPipe, messageService: MessageService);
39
+ constructor(translate: LibTranslationService, invoiceService: AgroInvoiceService, localeService: LocaleService, kilogramPipe: KilogramPipe, messageService: MessageService, datePipe: DatePipe);
38
40
  ngOnDestroy(): void;
39
41
  ngOnInit(): void;
40
42
  abstract adaptResult(result: IInvoiceLookupResponse): Promise<any>;
@@ -1,6 +1,6 @@
1
1
  import { HttpClient } from "@angular/common/http";
2
2
  import { MessageService } from "primeng/api";
3
- import { AgroEntityService } from "../../../../services/entity-service";
3
+ import { AgroEntityService } from "../../../../services/agro-entity-service";
4
4
  import { LibTranslationService as TranslateService } from "../../../../services/lib-translation.service";
5
5
  import { IInvoiceLookupFilter, IInvoiceLookupResponse } from "./interfaces";
6
6
  import { Observable } from "rxjs";
@@ -1,4 +1,4 @@
1
- import { AGRO_NUMBERS } from "../enums";
1
+ import { AGRO_NUMBERS } from '../enums';
2
2
  export class AgroLogics {
3
3
  /**
4
4
  * Agrupa o conjunto de dados pelos campos de entidade fornecidos e calcula
@@ -12,11 +12,12 @@ export class AgroLogics {
12
12
  const total = data.length;
13
13
  const map = new Map();
14
14
  const resolvePath = (source, path) => {
15
- const parts = path.split(".");
15
+ const parts = path.split('.');
16
16
  let value = source;
17
17
  for (const p of parts) {
18
- if (value == null)
18
+ if (value == null) {
19
19
  return undefined;
20
+ }
20
21
  value = value[p];
21
22
  }
22
23
  return value;
@@ -27,7 +28,7 @@ export class AgroLogics {
27
28
  if (!map.has(uniqueKey)) {
28
29
  const groupedData = {};
29
30
  for (const k of keys) {
30
- const rootName = k.toString().split(".")[0];
31
+ const rootName = k.toString().split('.')[0];
31
32
  groupedData[rootName] = resolvePath(item, k);
32
33
  }
33
34
  map.set(uniqueKey, { data: groupedData, count: 0 });
@@ -50,4 +51,4 @@ AgroLogics.FAHRENHEIT_NUMERATOR = 9;
50
51
  AgroLogics.FAHRENHEIT_DENOMINATOR = 5;
51
52
  AgroLogics.KELVIN_OFFSET = 273.15;
52
53
  AgroLogics.PERCENT = 100;
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1sb2dpY3MuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbW1vbi9hZ3JvLWxvZ2ljcy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBU3hDLE1BQU0sT0FBTyxVQUFVO0lBUW5COzs7Ozs7O09BT0c7SUFDSCxNQUFNLENBQUMsdUJBQXVCLENBQXNCLElBQVMsRUFBRSxJQUEwQjtRQUNyRixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzFCLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUErQyxDQUFDO1FBRW5FLE1BQU0sV0FBVyxHQUFHLENBQUMsTUFBVyxFQUFFLElBQVksRUFBTyxFQUFFO1lBQ25ELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUIsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDO1lBQ25CLEtBQUssTUFBTSxDQUFDLElBQUksS0FBSyxFQUFFO2dCQUNuQixJQUFJLEtBQUssSUFBSSxJQUFJO29CQUFFLE9BQU8sU0FBUyxDQUFDO2dCQUNwQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3BCO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQyxDQUFDO1FBRUYsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLEVBQUU7WUFDckIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ2xFLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFNUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ3JCLE1BQU0sV0FBVyxHQUFlLEVBQUUsQ0FBQztnQkFDbkMsS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUU7b0JBQ2xCLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzNDLFdBQW1CLENBQUMsUUFBUSxDQUFDLEdBQUcsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFXLENBQUMsQ0FBQztpQkFDbkU7Z0JBQ0QsR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ3ZEO1lBQ0QsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUUsQ0FBQztZQUNsQyxLQUFLLENBQUMsS0FBSyxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUM7U0FDbkM7UUFFRCxNQUFNLE1BQU0sR0FBNEIsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDN0UsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxLQUFLO1lBQzdCLGVBQWUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQ3BFLENBQUMsQ0FBQyxDQUFDO1FBRUosTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTdELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7O0FBdERELHVCQUF1QjtBQUNDLDRCQUFpQixHQUFHLEVBQUUsQ0FBQztBQUN2QiwrQkFBb0IsR0FBRyxDQUFDLENBQUM7QUFDekIsaUNBQXNCLEdBQUcsQ0FBQyxDQUFDO0FBQzNCLHdCQUFhLEdBQUcsTUFBTSxDQUFDO0FBQ3ZCLGtCQUFPLEdBQUcsR0FBRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUdST19OVU1CRVJTIH0gZnJvbSBcIi4uL2VudW1zXCI7XHJcbnR5cGUgQW55UmVjb3JkID0gUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlzdHJpYnV0aW9uUmVzdWx0PFQ+IHtcclxuICAgIGRhdGE6IFBhcnRpYWw8VD47XHJcbiAgICBzYW1wbGluZ1N1Y2Nlc3M6IG51bWJlcjsgLy8gcGVyY2VudGFnZSBvZiB0b3RhbFxyXG4gICAgc2FtcGxpbmdRdWFudGl0eTogbnVtYmVyOyAvLyBhYnNvbHV0ZSBjb3VudFxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQWdyb0xvZ2ljcyB7XHJcbiAgICAvLyDwn5S5IENvbnN0YW50ZXMgbG9jYWlzXHJcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBGQUhSRU5IRUlUX09GRlNFVCA9IDMyO1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRkFIUkVOSEVJVF9OVU1FUkFUT1IgPSA5O1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRkFIUkVOSEVJVF9ERU5PTUlOQVRPUiA9IDU7XHJcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBLRUxWSU5fT0ZGU0VUID0gMjczLjE1O1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgUEVSQ0VOVCA9IDEwMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFncnVwYSBvIGNvbmp1bnRvIGRlIGRhZG9zIHBlbG9zIGNhbXBvcyBkZSBlbnRpZGFkZSBmb3JuZWNpZG9zIGUgY2FsY3VsYVxyXG4gICAgICogYSBkaXN0cmlidWnDp8OjbyBkZSBwcm9iYWJpbGlkYWRlIChmcmVxdcOqbmNpYSBlIHBvcmNlbnRhZ2VtKS5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gZGF0YSAtIEFycmF5IGRlIG9iamV0b3MgYSBzZXJlbSBhbmFsaXNhZG9zXHJcbiAgICAgKiBAcGFyYW0ga2V5cyAtIENoYXZlcyBvdSBjYW1pbmhvcyBhbmluaGFkb3MgcGFyYSBhZ3J1cGFyIChleDogW1wiZW50aXR5MVwiLCBcImVudGl0eTJcIl0pXHJcbiAgICAgKiBAcmV0dXJucyBBcnJheSBkZSBlc3RhdMOtc3RpY2FzIGFncnVwYWRhcyBvcmRlbmFkYXMgcG9yIHNhbXBsaW5nU3VjY2VzcyAoZGVjcmVzY2VudGUpXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBlbnRpdHlEaXN0cmlidXRpb25TdGF0czxUIGV4dGVuZHMgQW55UmVjb3JkPihkYXRhOiBUW10sIGtleXM6IChrZXlvZiBUIHwgc3RyaW5nKVtdKTogRGlzdHJpYnV0aW9uUmVzdWx0PFQ+W10ge1xyXG4gICAgICAgIGNvbnN0IHRvdGFsID0gZGF0YS5sZW5ndGg7XHJcbiAgICAgICAgY29uc3QgbWFwID0gbmV3IE1hcDxzdHJpbmcsIHsgZGF0YTogUGFydGlhbDxUPjsgY291bnQ6IG51bWJlciB9PigpO1xyXG5cclxuICAgICAgICBjb25zdCByZXNvbHZlUGF0aCA9IChzb3VyY2U6IGFueSwgcGF0aDogc3RyaW5nKTogYW55ID0+IHtcclxuICAgICAgICAgICAgY29uc3QgcGFydHMgPSBwYXRoLnNwbGl0KFwiLlwiKTtcclxuICAgICAgICAgICAgbGV0IHZhbHVlID0gc291cmNlO1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHAgb2YgcGFydHMpIHtcclxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZVtwXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGRhdGEpIHtcclxuICAgICAgICAgICAgY29uc3Qga2V5VmFsdWVzID0ga2V5cy5tYXAoKGspID0+IHJlc29sdmVQYXRoKGl0ZW0sIGsgYXMgc3RyaW5nKSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHVuaXF1ZUtleSA9IEpTT04uc3RyaW5naWZ5KGtleVZhbHVlcyk7XHJcblxyXG4gICAgICAgICAgICBpZiAoIW1hcC5oYXModW5pcXVlS2V5KSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBlZERhdGE6IFBhcnRpYWw8VD4gPSB7fTtcclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgayBvZiBrZXlzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm9vdE5hbWUgPSBrLnRvU3RyaW5nKCkuc3BsaXQoXCIuXCIpWzBdO1xyXG4gICAgICAgICAgICAgICAgICAgIChncm91cGVkRGF0YSBhcyBhbnkpW3Jvb3ROYW1lXSA9IHJlc29sdmVQYXRoKGl0ZW0sIGsgYXMgc3RyaW5nKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIG1hcC5zZXQodW5pcXVlS2V5LCB7IGRhdGE6IGdyb3VwZWREYXRhLCBjb3VudDogMCB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBlbnRyeSA9IG1hcC5nZXQodW5pcXVlS2V5KSE7XHJcbiAgICAgICAgICAgIGVudHJ5LmNvdW50ICs9IEFHUk9fTlVNQkVSUy5PTkU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCByZXN1bHQ6IERpc3RyaWJ1dGlvblJlc3VsdDxUPltdID0gQXJyYXkuZnJvbShtYXAudmFsdWVzKCkpLm1hcCgoZW50cnkpID0+ICh7XHJcbiAgICAgICAgICAgIGRhdGE6IGVudHJ5LmRhdGEsXHJcbiAgICAgICAgICAgIHNhbXBsaW5nUXVhbnRpdHk6IGVudHJ5LmNvdW50LFxyXG4gICAgICAgICAgICBzYW1wbGluZ1N1Y2Nlc3M6IE1hdGgucm91bmQoKGVudHJ5LmNvdW50IC8gdG90YWwpICogdGhpcy5QRVJDRU5UKSxcclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgICAgIHJlc3VsdC5zb3J0KChhLCBiKSA9PiBiLnNhbXBsaW5nU3VjY2VzcyAtIGEuc2FtcGxpbmdTdWNjZXNzKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxufVxyXG4iXX0=
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1sb2dpY3MuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbW1vbi9hZ3JvLWxvZ2ljcy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBU3hDLE1BQU0sT0FBTyxVQUFVO0lBUW5COzs7Ozs7O09BT0c7SUFDSCxNQUFNLENBQUMsdUJBQXVCLENBQzFCLElBQVMsRUFDVCxJQUEwQjtRQUUxQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzFCLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUErQyxDQUFDO1FBRW5FLE1BQU0sV0FBVyxHQUFHLENBQUMsTUFBVyxFQUFFLElBQVksRUFBTyxFQUFFO1lBQ25ELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUIsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDO1lBQ25CLEtBQUssTUFBTSxDQUFDLElBQUksS0FBSyxFQUFFO2dCQUNuQixJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUU7b0JBQ2YsT0FBTyxTQUFTLENBQUM7aUJBQ3BCO2dCQUNELEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDcEI7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDLENBQUM7UUFFRixLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksRUFBRTtZQUNyQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQVcsQ0FBQyxDQUFDLENBQUM7WUFDbEUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUU1QyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDckIsTUFBTSxXQUFXLEdBQWUsRUFBRSxDQUFDO2dCQUNuQyxLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRTtvQkFDbEIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDM0MsV0FBbUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQVcsQ0FBQyxDQUFDO2lCQUNuRTtnQkFDRCxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDdkQ7WUFDRCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2pDLEtBQUssQ0FBQyxLQUFLLElBQUksWUFBWSxDQUFDLEdBQUcsQ0FBQztTQUNuQztRQUVELE1BQU0sTUFBTSxHQUE0QixLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM3RSxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDN0IsZUFBZSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7U0FDcEUsQ0FBQyxDQUFDLENBQUM7UUFFSixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFN0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzs7QUEzREQsdUJBQXVCO0FBQ0MsNEJBQWlCLEdBQUcsRUFBRSxDQUFDO0FBQ3ZCLCtCQUFvQixHQUFHLENBQUMsQ0FBQztBQUN6QixpQ0FBc0IsR0FBRyxDQUFDLENBQUM7QUFDM0Isd0JBQWEsR0FBRyxNQUFNLENBQUM7QUFDdkIsa0JBQU8sR0FBRyxHQUFHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBR1JPX05VTUJFUlMgfSBmcm9tICcuLi9lbnVtcyc7XHJcbnR5cGUgQW55UmVjb3JkID0gUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlzdHJpYnV0aW9uUmVzdWx0PFQ+IHtcclxuICAgIGRhdGE6IFBhcnRpYWw8VD47XHJcbiAgICBzYW1wbGluZ1N1Y2Nlc3M6IG51bWJlcjsgLy8gcGVyY2VudGFnZSBvZiB0b3RhbFxyXG4gICAgc2FtcGxpbmdRdWFudGl0eTogbnVtYmVyOyAvLyBhYnNvbHV0ZSBjb3VudFxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQWdyb0xvZ2ljcyB7XHJcbiAgICAvLyDwn5S5IENvbnN0YW50ZXMgbG9jYWlzXHJcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBGQUhSRU5IRUlUX09GRlNFVCA9IDMyO1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRkFIUkVOSEVJVF9OVU1FUkFUT1IgPSA5O1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRkFIUkVOSEVJVF9ERU5PTUlOQVRPUiA9IDU7XHJcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBLRUxWSU5fT0ZGU0VUID0gMjczLjE1O1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgUEVSQ0VOVCA9IDEwMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFncnVwYSBvIGNvbmp1bnRvIGRlIGRhZG9zIHBlbG9zIGNhbXBvcyBkZSBlbnRpZGFkZSBmb3JuZWNpZG9zIGUgY2FsY3VsYVxyXG4gICAgICogYSBkaXN0cmlidWnDp8OjbyBkZSBwcm9iYWJpbGlkYWRlIChmcmVxdcOqbmNpYSBlIHBvcmNlbnRhZ2VtKS5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gZGF0YSAtIEFycmF5IGRlIG9iamV0b3MgYSBzZXJlbSBhbmFsaXNhZG9zXHJcbiAgICAgKiBAcGFyYW0ga2V5cyAtIENoYXZlcyBvdSBjYW1pbmhvcyBhbmluaGFkb3MgcGFyYSBhZ3J1cGFyIChleDogW1wiZW50aXR5MVwiLCBcImVudGl0eTJcIl0pXHJcbiAgICAgKiBAcmV0dXJucyBBcnJheSBkZSBlc3RhdMOtc3RpY2FzIGFncnVwYWRhcyBvcmRlbmFkYXMgcG9yIHNhbXBsaW5nU3VjY2VzcyAoZGVjcmVzY2VudGUpXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBlbnRpdHlEaXN0cmlidXRpb25TdGF0czxUIGV4dGVuZHMgQW55UmVjb3JkPihcclxuICAgICAgICBkYXRhOiBUW10sXHJcbiAgICAgICAga2V5czogKGtleW9mIFQgfCBzdHJpbmcpW11cclxuICAgICk6IERpc3RyaWJ1dGlvblJlc3VsdDxUPltdIHtcclxuICAgICAgICBjb25zdCB0b3RhbCA9IGRhdGEubGVuZ3RoO1xyXG4gICAgICAgIGNvbnN0IG1hcCA9IG5ldyBNYXA8c3RyaW5nLCB7IGRhdGE6IFBhcnRpYWw8VD47IGNvdW50OiBudW1iZXIgfT4oKTtcclxuXHJcbiAgICAgICAgY29uc3QgcmVzb2x2ZVBhdGggPSAoc291cmNlOiBhbnksIHBhdGg6IHN0cmluZyk6IGFueSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHBhcnRzID0gcGF0aC5zcGxpdCgnLicpO1xyXG4gICAgICAgICAgICBsZXQgdmFsdWUgPSBzb3VyY2U7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgcCBvZiBwYXJ0cykge1xyXG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZVtwXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGRhdGEpIHtcclxuICAgICAgICAgICAgY29uc3Qga2V5VmFsdWVzID0ga2V5cy5tYXAoKGspID0+IHJlc29sdmVQYXRoKGl0ZW0sIGsgYXMgc3RyaW5nKSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHVuaXF1ZUtleSA9IEpTT04uc3RyaW5naWZ5KGtleVZhbHVlcyk7XHJcblxyXG4gICAgICAgICAgICBpZiAoIW1hcC5oYXModW5pcXVlS2V5KSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBlZERhdGE6IFBhcnRpYWw8VD4gPSB7fTtcclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgayBvZiBrZXlzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm9vdE5hbWUgPSBrLnRvU3RyaW5nKCkuc3BsaXQoJy4nKVswXTtcclxuICAgICAgICAgICAgICAgICAgICAoZ3JvdXBlZERhdGEgYXMgYW55KVtyb290TmFtZV0gPSByZXNvbHZlUGF0aChpdGVtLCBrIGFzIHN0cmluZyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBtYXAuc2V0KHVuaXF1ZUtleSwgeyBkYXRhOiBncm91cGVkRGF0YSwgY291bnQ6IDAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgZW50cnkgPSBtYXAuZ2V0KHVuaXF1ZUtleSk7XHJcbiAgICAgICAgICAgIGVudHJ5LmNvdW50ICs9IEFHUk9fTlVNQkVSUy5PTkU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCByZXN1bHQ6IERpc3RyaWJ1dGlvblJlc3VsdDxUPltdID0gQXJyYXkuZnJvbShtYXAudmFsdWVzKCkpLm1hcCgoZW50cnkpID0+ICh7XHJcbiAgICAgICAgICAgIGRhdGE6IGVudHJ5LmRhdGEsXHJcbiAgICAgICAgICAgIHNhbXBsaW5nUXVhbnRpdHk6IGVudHJ5LmNvdW50LFxyXG4gICAgICAgICAgICBzYW1wbGluZ1N1Y2Nlc3M6IE1hdGgucm91bmQoKGVudHJ5LmNvdW50IC8gdG90YWwpICogdGhpcy5QRVJDRU5UKSxcclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgICAgIHJlc3VsdC5zb3J0KChhLCBiKSA9PiBiLnNhbXBsaW5nU3VjY2VzcyAtIGEuc2FtcGxpbmdTdWNjZXNzKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -171,7 +171,6 @@ export class AgroUnitConverter {
171
171
  }
172
172
  }
173
173
  isTemperatureUnit(unit) {
174
- console.log(this.TEMPERATURE_UNITS.includes(unit));
175
174
  return this.TEMPERATURE_UNITS.includes(unit);
176
175
  }
177
176
  convertScalableUnits(valor, from, to) {
@@ -253,4 +252,4 @@ export class AgroUnitConverter {
253
252
  return fromWatt(wattValue, to);
254
253
  }
255
254
  }
256
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby11bml0LWNvbnZlcnRlci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItYWdyb25lZ29jaW8vYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tbW9uL2Fncm8tdW5pdC1jb252ZXJ0ZXIuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQU94QyxNQUFNLHdDQUF3QyxHQUFHLE1BQU0sQ0FBQztBQUV4RCxNQUFNLE9BQU8saUJBQWlCO0lBc0UxQjtRQXJFQSxpQkFBaUI7UUFDUixpQkFBWSxHQUF3QjtZQUN6QyxpQkFBaUIsQ0FBQyxLQUFLO1lBQ3ZCLGlCQUFpQixDQUFDLFVBQVU7WUFDNUIsaUJBQWlCLENBQUMsU0FBUztZQUMzQixpQkFBaUIsQ0FBQyxVQUFVO1lBQzVCLGlCQUFpQixDQUFDLFFBQVE7WUFDMUIsaUJBQWlCLENBQUMsRUFBRTtTQUN2QixDQUFDO1FBRUYsV0FBVztRQUNGLGVBQVUsR0FBd0I7WUFDdkMsaUJBQWlCLENBQUMsS0FBSztZQUN2QixpQkFBaUIsQ0FBQyxVQUFVO1lBQzVCLGlCQUFpQixDQUFDLFFBQVE7WUFDMUIsaUJBQWlCLENBQUMsS0FBSztZQUN2QixpQkFBaUIsQ0FBQyxJQUFJO1NBQ3pCLENBQUM7UUFFRixVQUFVO1FBQ0QsZUFBVSxHQUF3QjtZQUN2QyxpQkFBaUIsQ0FBQyxjQUFjO1lBQ2hDLGlCQUFpQixDQUFDLG1CQUFtQjtZQUNyQyxpQkFBaUIsQ0FBQyxPQUFPO1lBQ3pCLGlCQUFpQixDQUFDLGNBQWM7WUFDaEMsaUJBQWlCLENBQUMsY0FBYztZQUNoQyxpQkFBaUIsQ0FBQyxpQkFBaUI7WUFDbkMsaUJBQWlCLENBQUMsY0FBYztZQUNoQyxpQkFBaUIsQ0FBQyxjQUFjO1lBQ2hDLGlCQUFpQixDQUFDLGNBQWM7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QUUsSUFBdUIsRUFBRSxFQUFxQjtRQUNqRyxJQUFJLElBQUksS0FBSyxFQUFFLEVBQUU7WUFDYixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBUyxFQUFFLElBQXVCLEVBQVUsRUFBRTtZQUMxRCxRQUFRLElBQUksRUFBRTtnQkFDVixLQUFLLGlCQUFpQixDQUFDLElBQUksQ0FBQztnQkFDNUIsS0FBSyxpQkFBaUIsQ0FBQyxNQUFNO29CQUN6QixPQUFPLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxZQUFZO2dCQUNwQyxLQUFLLGlCQUFpQixDQUFDLElBQUk7b0JBQ3ZCLE9BQU8sQ0FBQyxDQUFDO2dCQUNiO29CQUNJLE1BQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxJQUFJLCtCQUErQixDQUFDLENBQUM7YUFDekU7UUFDTCxDQUFDLENBQUM7UUFFRixNQUFNLFFBQVEsR0FBRyxDQUFDLENBQVMsRUFBRSxJQUF1QixFQUFVLEVBQUU7WUFDNUQsUUFBUSxJQUFJLEVBQUU7Z0JBQ1YsS0FBSyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7Z0JBQzVCLEtBQUssaUJBQWlCLENBQUMsTUFBTTtvQkFDekIsT0FBTyxDQUFDLEdBQUcsT0FBTyxDQUFDO2dCQUN2QixLQUFLLGlCQUFpQixDQUFDLElBQUk7b0JBQ3ZCLE9BQU8sQ0FBQyxDQUFDO2dCQUNiO29CQUNJLE1BQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxJQUFJLCtCQUErQixDQUFDLENBQUM7YUFDekU7UUFDTCxDQUFDLENBQUM7UUFFRixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sUUFBUSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVbml0T2ZNZWFzdXJlbWVudCB9IGZyb20gXCIuLi9lbnVtcy91bml0LW1lYXN1cmVtZW50LmVudW1cIjtcclxuaW1wb3J0IHsgQUdST19OVU1CRVJTIH0gZnJvbSBcIi4uL2VudW1zXCI7XHJcblxyXG50eXBlIENvbnZlcnNpb25Vbml0ID0ge1xyXG4gICAgdW5pdHM6IFVuaXRPZk1lYXN1cmVtZW50W107XHJcbiAgICBmYWN0b3JUYWJsZTogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfTtcclxufTtcclxuXHJcbmNvbnN0IFRXT19IVU5EUkVEX1NFVkVOVFlfVEhSRUVfUE9JTlRfT05FX0ZJVkUgPSAyNzMuMTU7XHJcblxyXG5leHBvcnQgY2xhc3MgQWdyb1VuaXRDb252ZXJ0ZXIge1xyXG4gICAgLy8g8J+UuSBDb21wcmltZW50b1xyXG4gICAgcmVhZG9ubHkgTEVOR1RIX1VOSVRTOiBVbml0T2ZNZWFzdXJlbWVudFtdID0gW1xyXG4gICAgICAgIFVuaXRPZk1lYXN1cmVtZW50Lk1FVFJPLFxyXG4gICAgICAgIFVuaXRPZk1lYXN1cmVtZW50LkNFTlRJTUVUUk8sXHJcbiAgICAgICAgVW5pdE9mTWVhc3VyZW1lbnQuTUlMSU1FVFJPLFxyXG4gICAgICAgIFVuaXRPZk1lYXN1cmVtZW50LlFVSUxPTUVUUk8sXHJcbiAgICAgICAgVW5pdE9mTWVhc3VyZW1lbnQuUE9MRUdBREEsXHJcbiAgICAgICAgVW5pdE9mTWVhc3VyZW1lbnQuUEUsXHJcbiAgICBdO1xyXG5cclxuICAgIC8vIPCflLkgTWFzc2FcclxuICAgIHJlYWRvbmx5IE1BU1NfVU5JVFM6IFVuaXRPZk1lYXN1cmVtZW50W10gPSBbXHJcbiAgICAgICAgVW5pdE9mTWVhc3VyZW1lbnQuR1JBTUEsXHJcbiAgICAgICAgVW5pdE9mTWVhc3VyZW1lbnQuUVVJTE9HUkFNQSxcclxuICAgICAgICBVbml0T2ZNZWFzdXJlbWVudC5UT05FTEFEQSxcclxuICAgICAgICBVbml0T2ZNZWFzdXJlbWVudC5MSUJSQSxcclxuICAgICAgICBVbml0T2ZNZWFzdXJlbWVudC5TQUNBLFxyXG4gICAgXTtcclxuXHJcbiAgICAvLyDwn5S5IMOBcmVhXHJcbiAgICByZWFkb25seSBBUkVBX1VOSVRTOiBVbml0T2ZNZWFzdXJlbWVudFtdID0gW1xyXG4gICAgICAgIFVuaXRPZk1lYXN1cmVtZW50Lk1FVFJPX1FVQURSQURPLFxyXG4gICAgICAgIFVuaXRPZk1lYXN1cmVtZW50LkNFTlRJTUVUUk9fUVVBRFJBRE8sXHJcbiAgICAgICAgVW5pdE9mTWVhc3VyZW1lbnQuSEVDVEFSRSxcclxuICAgICAgICBVbml0T2ZNZWFzdXJlbWVudC5BTFFVRUlSRV81MHg1MCxcclxuICAgICAgICBVbml0T2ZNZWFzdXJlbWVudC5BTFFVRUlSRV81MHg3NSxcclxuICAgICAgICBVbml0T2ZNZWFzdXJlbWVudC5BTFFVRUlSRV9ET19OT1JURSxcclxuICAgICAgICBVbml0T2ZNZWFzdXJlbWVudC5BTFFVRUlSRV83NXg4MCxcclxuICAgICAgICBVbml0T2ZNZWFzdXJlbWVudC5BTFFVRUlSRV83OXg3OSxcclxuICAgICAgICBVbml0T2ZNZWFzdXJlbWVudC5BTFFVRUlSRV84MHg4MCxcclxuICAgICAgICBVbml0T2ZNZWFzdXJlbWVudC5BTFFVRUlSRV83NXgxMDAsXHJcbiAgICAgICAgVW5pdE9mTWVhc3VyZW1lbnQuQUxRVUVJUkVfMTAweDE1MCxcclxuICAgICAgICBVbml0T2ZNZWFzdXJlbWVudC5BTFFVRUlSRV9CQUlBTk8sXHJcbiAgICAgICAgVW5pdE9mTWVhc3VyZW1lbnQuQUxRVUVJUkFPLFxyXG4gICAgICAgIFVuaXRPZk1lYXN1cmVtZW50LkFMUVVFSVJFX1BBVUxJU1RBLFxyXG4gICAgICAgIFVuaXRPZk1lYXN1cmVtZW50LkFMUVVFSVJFX01JTkVJUk8sXHJcbiAgICBdO1xyXG5cclxuICAgIC8vIPCflLkgVm9sdW1lXHJcbiAgICByZWFkb25seSBWT0xVTUVfVU5JVFM6IFVuaXRPZk1lYXN1cmVtZW50W10gPSBbVW5pdE9mTWVhc3VyZW1lbnQuTElUUk8sIFVuaXRPZk1lYXN1cmVtZW50Lk1JTElMSVRSTywgVW5pdE9mTWVhc3VyZW1lbnQuTUVUUk9fQ1VCSUNPXTtcclxuXHJcbiAgICAvLyDwn5S5IFRlbXBvXHJcbiAgICByZWFkb25seSBUSU1FX1VOSVRTOiBVbml0T2ZNZWFzdXJlbWVudFtdID0gW1xyXG4gICAgICAgIFVuaXRPZk1lYXN1cmVtZW50LlNFR1VORE8sXHJcbiAgICAgICAgVW5pdE9mTWVhc3VyZW1lbnQuTUlOVVRPLFxyXG4gICAgICAgIFVuaXRPZk1lYXN1cmVtZW50LkhPUkEsXHJcbiAgICAgICAgVW5pdE9mTWVhc3VyZW1lbnQuRElBLFxyXG4gICAgXTtcclxuXHJcbiAgICAvLyDwn5S5IFRlbXBlcmF0dXJhXHJcbiAgICByZWFkb25seSBURU1QRVJBVFVSRV9VTklUUzogVW5pdE9mTWVhc3VyZW1lbnRbXSA9IFtVbml0T2ZNZWFzdXJlbWVudC5DRUxTSVVTLCBVbml0T2ZNZWFzdXJlbWVudC5GQUhSRU5IRUlULCBVbml0T2ZNZWFzdXJlbWVudC5LRUxWSU5dO1xyXG5cclxuICAgIC8vIPCflLkgRW5lcmdpYVxyXG4gICAgcmVhZG9ubHkgRU5FUkdZX1VOSVRTOiBVbml0T2ZNZWFzdXJlbWVudFtdID0gW1VuaXRPZk1lYXN1cmVtZW50LkpPVUxFLCBVbml0T2ZNZWFzdXJlbWVudC5DQUxPUklBLCBVbml0T2ZNZWFzdXJlbWVudC5RVUlMT1dBVFRfSE9SQV07XHJcblxyXG4gICAgLy8g8J+UuSBFbGV0cmljaWRhZGVcclxuICAgIHJlYWRvbmx5IEVMRUNUUklDSVRZX1VOSVRTOiBVbml0T2ZNZWFzdXJlbWVudFtdID0gW1VuaXRPZk1lYXN1cmVtZW50LlZPTFQsIFVuaXRPZk1lYXN1cmVtZW50LkFNUEVSRSwgVW5pdE9mTWVhc3VyZW1lbnQuV0FUVF07XHJcblxyXG4gICAgLy8g8J+UuSBEYWRvcyBkaWdpdGFpc1xyXG4gICAgcmVhZG9ubHkgREFUQV9VTklUUzogVW5pdE9mTWVhc3VyZW1lbnRbXSA9IFtcclxuICAgICAgICBVbml0T2ZNZWFzdXJlbWVudC5CWVRFLFxyXG4gICAgICAgIFVuaXRPZk1lYXN1cmVtZW50LktJTE9CWVRFLFxyXG4gICAgICAgIFVuaXRPZk1lYXN1cmVtZW50Lk1FR0FCWVRFLFxyXG4gICAgICAgIFVuaXRPZk1lYXN1cmVtZW50LkdJR0FCWVRFLFxyXG4gICAgICAgIFVuaXRPZk1lYXN1cmVtZW50LlRFUkFCWVRFLFxyXG4gICAgXTtcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnZlcnNpb25Vbml0czogQ29udmVyc2lvblVuaXRbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLmNvbnZlcnNpb25Vbml0cyA9IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdW5pdHM6IHRoaXMuTEVOR1RIX1VOSVRTLFxyXG4gICAgICAgICAgICAgICAgZmFjdG9yVGFibGU6IHtcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuTUVUUk9dOiBBR1JPX05VTUJFUlMuT05FLFxyXG4gICAgICAgICAgICAgICAgICAgIFtVbml0T2ZNZWFzdXJlbWVudC5DRU5USU1FVFJPXTogMC4wMSxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuTUlMSU1FVFJPXTogMC4wMDEsXHJcbiAgICAgICAgICAgICAgICAgICAgW1VuaXRPZk1lYXN1cmVtZW50LlFVSUxPTUVUUk9dOiBBR1JPX05VTUJFUlMuT05FVEhPVVNBTkQsXHJcbiAgICAgICAgICAgICAgICAgICAgW1VuaXRPZk1lYXN1cmVtZW50LlBPTEVHQURBXTogMC4wMjU0LFxyXG4gICAgICAgICAgICAgICAgICAgIFtVbml0T2ZNZWFzdXJlbWVudC5QRV06IDAuMzA0OCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHVuaXRzOiB0aGlzLk1BU1NfVU5JVFMsXHJcbiAgICAgICAgICAgICAgICBmYWN0b3JUYWJsZToge1xyXG4gICAgICAgICAgICAgICAgICAgIFtVbml0T2ZNZWFzdXJlbWVudC5HUkFNQV06IDAuMDAxLFxyXG4gICAgICAgICAgICAgICAgICAgIFtVbml0T2ZNZWFzdXJlbWVudC5RVUlMT0dSQU1BXTogQUdST19OVU1CRVJTLk9ORSxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuVE9ORUxBREFdOiBBR1JPX05VTUJFUlMuT05FVEhPVVNBTkQsXHJcbiAgICAgICAgICAgICAgICAgICAgW1VuaXRPZk1lYXN1cmVtZW50LkxJQlJBXTogMC40NTM1OTIsXHJcbiAgICAgICAgICAgICAgICAgICAgW1VuaXRPZk1lYXN1cmVtZW50LlNBQ0FdOiA2MCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHVuaXRzOiB0aGlzLkFSRUFfVU5JVFMsXHJcbiAgICAgICAgICAgICAgICBmYWN0b3JUYWJsZToge1xyXG4gICAgICAgICAgICAgICAgICAgIFtVbml0T2ZNZWFzdXJlbWVudC5NRVRST19RVUFEUkFET106IEFHUk9fTlVNQkVSUy5PTkUsXHJcbiAgICAgICAgICAgICAgICAgICAgW1VuaXRPZk1lYXN1cmVtZW50LkNFTlRJTUVUUk9fUVVBRFJBRE9dOiAwLjAwMDEsXHJcbiAgICAgICAgICAgICAgICAgICAgW1VuaXRPZk1lYXN1cmVtZW50LkhFQ1RBUkVdOiAxMDAwMCxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuQUxRVUVJUkVfNTB4NTBdOiAxMjEwMCxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuQUxRVUVJUkVfNTB4NzVdOiAxODIwMCxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuQUxRVUVJUkVfRE9fTk9SVEVdOiAyNzIwMCxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuQUxRVUVJUkVfNzV4ODBdOiAyOTAwMCxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuQUxRVUVJUkVfNzl4NzldOiAzMDIwMCxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuQUxRVUVJUkVfODB4ODBdOiAzMTkwMCxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuQUxRVUVJUkVfNzV4MTAwXTogMzYzMDAsXHJcbiAgICAgICAgICAgICAgICAgICAgW1VuaXRPZk1lYXN1cmVtZW50LkFMUVVFSVJFXzEwMHgxNTBdOiA3MjYwMCxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuQUxRVUVJUkVfQkFJQU5PXTogOTY4MDAsXHJcbiAgICAgICAgICAgICAgICAgICAgW1VuaXRPZk1lYXN1cmVtZW50LkFMUVVFSVJBT106IDE5MzYwMCxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuQUxRVUVJUkVfUEFVTElTVEFdOiAyNDIwMCxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuQUxRVUVJUkVfTUlORUlST106IDQ4NDAwLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdW5pdHM6IHRoaXMuVk9MVU1FX1VOSVRTLFxyXG4gICAgICAgICAgICAgICAgZmFjdG9yVGFibGU6IHtcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuTElUUk9dOiBBR1JPX05VTUJFUlMuT05FLFxyXG4gICAgICAgICAgICAgICAgICAgIFtVbml0T2ZNZWFzdXJlbWVudC5NSUxJTElUUk9dOiAwLjAwMSxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuTUVUUk9fQ1VCSUNPXTogQUdST19OVU1CRVJTLk9ORVRIT1VTQU5ELFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdW5pdHM6IHRoaXMuVElNRV9VTklUUyxcclxuICAgICAgICAgICAgICAgIGZhY3RvclRhYmxlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgW1VuaXRPZk1lYXN1cmVtZW50LlNFR1VORE9dOiBBR1JPX05VTUJFUlMuT05FLFxyXG4gICAgICAgICAgICAgICAgICAgIFtVbml0T2ZNZWFzdXJlbWVudC5NSU5VVE9dOiBBR1JPX05VTUJFUlMuU0lYVFlfLFxyXG4gICAgICAgICAgICAgICAgICAgIFtVbml0T2ZNZWFzdXJlbWVudC5IT1JBXTogMzYwMCxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuRElBXTogODY0MDAsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB1bml0czogdGhpcy5FTkVSR1lfVU5JVFMsXHJcbiAgICAgICAgICAgICAgICBmYWN0b3JUYWJsZToge1xyXG4gICAgICAgICAgICAgICAgICAgIFtVbml0T2ZNZWFzdXJlbWVudC5KT1VMRV06IEFHUk9fTlVNQkVSUy5PTkUsXHJcbiAgICAgICAgICAgICAgICAgICAgW1VuaXRPZk1lYXN1cmVtZW50LkNBTE9SSUFdOiA0LjE4NCxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuUVVJTE9XQVRUX0hPUkFdOiAzXzYwMF8wMDAsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB1bml0czogdGhpcy5EQVRBX1VOSVRTLFxyXG4gICAgICAgICAgICAgICAgZmFjdG9yVGFibGU6IHtcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuQllURV06IEFHUk9fTlVNQkVSUy5PTkUsXHJcbiAgICAgICAgICAgICAgICAgICAgW1VuaXRPZk1lYXN1cmVtZW50LktJTE9CWVRFXTogMTAyNCxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuTUVHQUJZVEVdOiAxMDI0ICoqIEFHUk9fTlVNQkVSUy5UV08sXHJcbiAgICAgICAgICAgICAgICAgICAgW1VuaXRPZk1lYXN1cmVtZW50LkdJR0FCWVRFXTogMTAyNCAqKiBBR1JPX05VTUJFUlMuVEhSRUUsXHJcbiAgICAgICAgICAgICAgICAgICAgW1VuaXRPZk1lYXN1cmVtZW50LlRFUkFCWVRFXTogMTAyNCAqKiBBR1JPX05VTUJFUlMuRk9VUixcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICAvLyDwn5S5IE3DqXRvZG9zIGRlIGNvbnZlcnPDo29cclxuICAgIGNvbnZlcnRUZW1wZXJhdHVyZVVuaXQodmFsb3I6IG51bWJlciwgZGU6IFVuaXRPZk1lYXN1cmVtZW50LCBwYXJhOiBVbml0T2ZNZWFzdXJlbWVudCk6IG51bWJlciB7XHJcbiAgICAgICAgaWYgKGRlID09PSBwYXJhKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWxvcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBjZWxzaXVzOiBudW1iZXI7XHJcbiAgICAgICAgc3dpdGNoIChkZSkge1xyXG4gICAgICAgICAgICBjYXNlIFVuaXRPZk1lYXN1cmVtZW50LkNFTFNJVVM6XHJcbiAgICAgICAgICAgICAgICBjZWxzaXVzID0gdmFsb3I7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBVbml0T2ZNZWFzdXJlbWVudC5GQUhSRU5IRUlUOlxyXG4gICAgICAgICAgICAgICAgY2Vsc2l1cyA9ICgodmFsb3IgLSBBR1JPX05VTUJFUlMuVEhJUlRZX1RXTykgKiBBR1JPX05VTUJFUlMuRklWRSkgLyBBR1JPX05VTUJFUlMuTklORTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFVuaXRPZk1lYXN1cmVtZW50LktFTFZJTjpcclxuICAgICAgICAgICAgICAgIGNlbHNpdXMgPSB2YWxvciAtIFRXT19IVU5EUkVEX1NFVkVOVFlfVEhSRUVfUE9JTlRfT05FX0ZJVkU7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVuaWRhZGUgaW52w6FsaWRhXCIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc3dpdGNoIChwYXJhKSB7XHJcbiAgICAgICAgICAgIGNhc2UgVW5pdE9mTWVhc3VyZW1lbnQuQ0VMU0lVUzpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjZWxzaXVzO1xyXG4gICAgICAgICAgICBjYXNlIFVuaXRPZk1lYXN1cmVtZW50LkZBSFJFTkhFSVQ6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKGNlbHNpdXMgKiBBR1JPX05VTUJFUlMuTklORSkgLyBBR1JPX05VTUJFUlMuRklWRSArIEFHUk9fTlVNQkVSUy5USElSVFlfVFdPO1xyXG4gICAgICAgICAgICBjYXNlIFVuaXRPZk1lYXN1cmVtZW50LktFTFZJTjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjZWxzaXVzICsgVFdPX0hVTkRSRURfU0VWRU5UWV9USFJFRV9QT0lOVF9PTkVfRklWRTtcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVuaWRhZGUgaW52w6FsaWRhXCIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzVGVtcGVyYXR1cmVVbml0KHVuaXQ6IFVuaXRPZk1lYXN1cmVtZW50KTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5URU1QRVJBVFVSRV9VTklUUy5pbmNsdWRlcyh1bml0KSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuVEVNUEVSQVRVUkVfVU5JVFMuaW5jbHVkZXModW5pdCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29udmVydFNjYWxhYmxlVW5pdHModmFsb3I6IG51bWJlciwgZnJvbTogVW5pdE9mTWVhc3VyZW1lbnQsIHRvOiBVbml0T2ZNZWFzdXJlbWVudCk6IG51bWJlciB7XHJcbiAgICAgICAgaWYgKGZyb20gPT09IHRvKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWxvcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlzVGVtcGVyYXR1cmVVbml0KGZyb20pIHx8IHRoaXMuaXNUZW1wZXJhdHVyZVVuaXQodG8pKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnZlcnRUZW1wZXJhdHVyZVVuaXQodmFsb3IsIGZyb20sIHRvKTtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICBjb25zdCB1bml0Q2F0ZWdvcnkgPSB0aGlzLmNvbnZlcnNpb25Vbml0cy5maW5kKCh1KSA9PiB1LnVuaXRzLmluY2x1ZGVzKGZyb20pKTtcclxuICAgICAgICBpZiAoIXVuaXRDYXRlZ29yeT8udW5pdHM/LmluY2x1ZGVzKHRvKSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE7Do28gw6kgcG9zc8OtdmVsIGNvbnZlcnRlciBkZSAke2Zyb219IHBhcmEgJHt0b306IGNhdGVnb3JpYXMgZGlmZXJlbnRlcyBvdSB1bmlkYWRlIG7Do28gZXNjYWzDoXZlbC5gKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGZhdG9yRGUgPSB1bml0Q2F0ZWdvcnkuZmFjdG9yVGFibGVbZnJvbV07XHJcbiAgICAgICAgY29uc3QgZmF0b3JQYXJhID0gdW5pdENhdGVnb3J5LmZhY3RvclRhYmxlW3RvXTtcclxuXHJcbiAgICAgICAgY29uc3QgZW1CYXNlID0gdmFsb3IgKiBmYXRvckRlO1xyXG4gICAgICAgIHJldHVybiBlbUJhc2UgLyBmYXRvclBhcmE7XHJcbiAgICB9XHJcblxyXG4gICAgY29udmVydExpdGVyc1BlckFyZWEodmFsb3I6IG51bWJlciwgZnJvbTogVW5pdE9mTWVhc3VyZW1lbnQsIHRvOiBVbml0T2ZNZWFzdXJlbWVudCk6IG51bWJlciB7XHJcbiAgICAgICAgY29uc3QgYXJlYUNhdGVnb3J5ID0gdGhpcy5jb252ZXJzaW9uVW5pdHMuZmluZCgodSkgPT4gdS51bml0cy5pbmNsdWRlcyhmcm9tKSk7XHJcbiAgICAgICAgaWYgKCFhcmVhQ2F0ZWdvcnk/LnVuaXRzPy5pbmNsdWRlcyh0bykpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmlkYWRlIGRlIMOhcmVhIGludsOhbGlkYTogJHtmcm9tfSBvdSAke3RvfWApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZmF0b3JGcm9tID0gYXJlYUNhdGVnb3J5LmZhY3RvclRhYmxlW2Zyb21dO1xyXG4gICAgICAgIGNvbnN0IGZhdG9yVG8gPSBhcmVhQ2F0ZWdvcnkuZmFjdG9yVGFibGVbdG9dO1xyXG5cclxuICAgICAgICByZXR1cm4gKHZhbG9yIC8gZmF0b3JGcm9tKSAqIGZhdG9yVG87XHJcbiAgICB9XHJcblxyXG4gICAgY29udmVydEtnUGVyQXJlYSh2YWxvcjogbnVtYmVyLCBmcm9tOiBVbml0T2ZNZWFzdXJlbWVudCwgdG86IFVuaXRPZk1lYXN1cmVtZW50KTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0TGl0ZXJzUGVyQXJlYSh2YWxvciwgZnJvbSwgdG8pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnZlcnRCdXNoZWxUb0tnKGJ1c2hlbDogbnVtYmVyLCBmYWN0b3I6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICAgICAgaWYgKGZhY3RvciA8PSAwKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkZhdG9yIGRlIGNvbnZlcnPDo28gaW52w6FsaWRvXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYnVzaGVsICogZmFjdG9yO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnZlcnRLZ1RvQnVzaGVsKGtnOiBudW1iZXIsIGZhY3RvcjogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICBpZiAoZmFjdG9yIDw9IDApIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRmF0b3IgZGUgY29udmVyc8OjbyBpbnbDoWxpZG9cIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBrZyAvIGZhY3RvcjtcclxuICAgIH1cclxuXHJcbiAgICBjYWxjdWxhdGVBcmVhRnJvbVZvbHVtZSh0b3RhbFZvbHVtZTogbnVtYmVyLCByYXRlOiBudW1iZXIsIHJhdGVVbml0OiBVbml0T2ZNZWFzdXJlbWVudCwgYXJlYVVuaXQ6IFVuaXRPZk1lYXN1cmVtZW50KTogbnVtYmVyIHtcclxuICAgICAgICBpZiAocmF0ZSA8PSAwKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRheGEgZGUgYXBsaWNhw6fDo28gaW52w6FsaWRhXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCByYXRlSW5EZXNpcmVkVW5pdCA9IHRoaXMuY29udmVydExpdGVyc1BlckFyZWEocmF0ZSwgcmF0ZVVuaXQsIGFyZWFVbml0KTtcclxuICAgICAgICByZXR1cm4gdG90YWxWb2x1bWUgLyByYXRlSW5EZXNpcmVkVW5pdDtcclxuICAgIH1cclxuXHJcbiAgICBjb252ZXJ0RWxlY3RyaWNpdHlVbml0KHZhbG9yOiBudW1iZXIsIHZvbHRhZ2U6IG51bWJlciwgZnJvbTogVW5pdE9mTWVhc3VyZW1lbnQsIHRvOiBVbml0T2ZNZWFzdXJlbWVudCk6IG51bWJlciB7XHJcbiAgICAgICAgaWYgKGZyb20gPT09IHRvKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWxvcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHRvV2F0dCA9ICh2OiBudW1iZXIsIHVuaXQ6IFVuaXRPZk1lYXN1cmVtZW50KTogbnVtYmVyID0+IHtcclxuICAgICAgICAgICAgc3dpdGNoICh1bml0KSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFVuaXRPZk1lYXN1cmVtZW50LlZPTFQ6XHJcbiAgICAgICAgICAgICAgICBjYXNlIFVuaXRPZk1lYXN1cmVtZW50LkFNUEVSRTpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdm9sdGFnZSAqIHY7IC8vIFAgPSBWICogSVxyXG4gICAgICAgICAgICAgICAgY2FzZSBVbml0T2ZNZWFzdXJlbWVudC5XQVRUOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2O1xyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEEgdW5pZGFkZSAke3VuaXR9IG7Do28gw6kgZXNjYWzDoXZlbCBkaXJldGFtZW50ZS5gKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGNvbnN0IGZyb21XYXR0ID0gKHc6IG51bWJlciwgdW5pdDogVW5pdE9mTWVhc3VyZW1lbnQpOiBudW1iZXIgPT4ge1xyXG4gICAgICAgICAgICBzd2l0Y2ggKHVuaXQpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgVW5pdE9mTWVhc3VyZW1lbnQuVk9MVDpcclxuICAgICAgICAgICAgICAgIGNhc2UgVW5pdE9mTWVhc3VyZW1lbnQuQU1QRVJFOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB3IC8gdm9sdGFnZTtcclxuICAgICAgICAgICAgICAgIGNhc2UgVW5pdE9mTWVhc3VyZW1lbnQuV0FUVDpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBIHVuaWRhZGUgJHt1bml0fSBuw6NvIMOpIGVzY2Fsw6F2ZWwgZGlyZXRhbWVudGUuYCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBjb25zdCB3YXR0VmFsdWUgPSB0b1dhdHQodmFsb3IsIGZyb20pO1xyXG4gICAgICAgIHJldHVybiBmcm9tV2F0dCh3YXR0VmFsdWUsIHRvKTtcclxuICAgIH1cclxufVxyXG4iXX0=
255
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby11bml0LWNvbnZlcnRlci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItYWdyb25lZ29jaW8vYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tbW9uL2Fncm8tdW5pdC1jb252ZXJ0ZXIuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQU94QyxNQUFNLHdDQUF3QyxHQUFHLE1BQU0sQ0FBQztBQUV4RCxNQUFNLE9BQU8saUJBQWlCO0lBc0UxQjtRQXJFQSxpQkFBaUI7UUFDUixpQkFBWSxHQUF3QjtZQUN6QyxpQkFBaUIsQ0FBQyxLQUFLO1lBQ3ZCLGlCQUFpQixDQUFDLFVBQVU7WUFDNUIsaUJBQWlCLENBQUMsU0FBUztZQUMzQixpQkFBaUIsQ0FBQyxVQUFVO1lBQzVCLGlCQUFpQixDQUFDLFFBQVE7WUFDMUIsaUJBQWlCLENBQUMsRUFBRTtTQUN2QixDQUFDO1FBRUYsV0FBVztRQUNGLGVBQVUsR0FBd0I7WUFDdkMsaUJBQWlCLENBQUMsS0FBSztZQUN2QixpQkFBaUIsQ0FBQyxVQUFVO1lBQzVCLGlCQUFpQixDQUFDLFFBQVE7WUFDMUIsaUJBQWlCLENBQUMsS0FBSztZQUN2QixpQkFBaUIsQ0FBQyxJQUFJO1NBQ3pCLENBQUM7UUFFRixVQUFVO1FBQ0QsZUFBVSxHQUF3QjtZQUN2QyxpQkFBaUIsQ0FBQyxjQUFjO1lBQ2hDLGlCQUFpQixDQUFDLG1CQUFtQjtZQUNyQyxpQkFBaUIsQ0FBQyxPQUFPO1lBQ3pCLGlCQUFpQixDQUFDLGNBQWM7WUFDaEMsaUJBQWlCLENBQUMsY0FBYztZQUNoQyxpQkFBaUIsQ0FBQyxpQkFBaUI7WUFDbkMsaUJBQWlCLENBQUMsY0FBYztZQUNoQyxpQkFBaUIsQ0FBQyxjQUFjO1lBQ2hDLGlCQUFpQixDQUFDLGNBQWM7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QUVELE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBUyxFQUFFLElBQXVCLEVBQVUsRUFBRTtZQUMxRCxRQUFRLElBQUksRUFBRTtnQkFDVixLQUFLLGlCQUFpQixDQUFDLElBQUksQ0FBQztnQkFDNUIsS0FBSyxpQkFBaUIsQ0FBQyxNQUFNO29CQUN6QixPQUFPLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxZQUFZO2dCQUNwQyxLQUFLLGlCQUFpQixDQUFDLElBQUk7b0JBQ3ZCLE9BQU8sQ0FBQyxDQUFDO2dCQUNiO29CQUNJLE1BQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxJQUFJLCtCQUErQixDQUFDLENBQUM7YUFDekU7UUFDTCxDQUFDLENBQUM7UUFFRixNQUFNLFFBQVEsR0FBRyxDQUFDLENBQVMsRUFBRSxJQUF1QixFQUFVLEVBQUU7WUFDNUQsUUFBUSxJQUFJLEVBQUU7Z0JBQ1YsS0FBSyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7Z0JBQzVCLEtBQUssaUJBQWlCLENBQUMsTUFBTTtvQkFDekIsT0FBTyxDQUFDLEdBQUcsT0FBTyxDQUFDO2dCQUN2QixLQUFLLGlCQUFpQixDQUFDLElBQUk7b0JBQ3ZCLE9BQU8sQ0FBQyxDQUFDO2dCQUNiO29CQUNJLE1BQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxJQUFJLCtCQUErQixDQUFDLENBQUM7YUFDekU7UUFDTCxDQUFDLENBQUM7UUFFRixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sUUFBUSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVbml0T2ZNZWFzdXJlbWVudCB9IGZyb20gXCIuLi9lbnVtcy91bml0LW1lYXN1cmVtZW50LmVudW1cIjtcclxuaW1wb3J0IHsgQUdST19OVU1CRVJTIH0gZnJvbSBcIi4uL2VudW1zXCI7XHJcblxyXG50eXBlIENvbnZlcnNpb25Vbml0ID0ge1xyXG4gICAgdW5pdHM6IFVuaXRPZk1lYXN1cmVtZW50W107XHJcbiAgICBmYWN0b3JUYWJsZTogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfTtcclxufTtcclxuXHJcbmNvbnN0IFRXT19IVU5EUkVEX1NFVkVOVFlfVEhSRUVfUE9JTlRfT05FX0ZJVkUgPSAyNzMuMTU7XHJcblxyXG5leHBvcnQgY2xhc3MgQWdyb1VuaXRDb252ZXJ0ZXIge1xyXG4gICAgLy8g8J+UuSBDb21wcmltZW50b1xyXG4gICAgcmVhZG9ubHkgTEVOR1RIX1VOSVRTOiBVbml0T2ZNZWFzdXJlbWVudFtdID0gW1xyXG4gICAgICAgIFVuaXRPZk1lYXN1cmVtZW50Lk1FVFJPLFxyXG4gICAgICAgIFVuaXRPZk1lYXN1cmVtZW50LkNFTlRJTUVUUk8sXHJcbiAgICAgICAgVW5pdE9mTWVhc3VyZW1lbnQuTUlMSU1FVFJPLFxyXG4gICAgICAgIFVuaXRPZk1lYXN1cmVtZW50LlFVSUxPTUVUUk8sXHJcbiAgICAgICAgVW5pdE9mTWVhc3VyZW1lbnQuUE9MRUdBREEsXHJcbiAgICAgICAgVW5pdE9mTWVhc3VyZW1lbnQuUEUsXHJcbiAgICBdO1xyXG5cclxuICAgIC8vIPCflLkgTWFzc2FcclxuICAgIHJlYWRvbmx5IE1BU1NfVU5JVFM6IFVuaXRPZk1lYXN1cmVtZW50W10gPSBbXHJcbiAgICAgICAgVW5pdE9mTWVhc3VyZW1lbnQuR1JBTUEsXHJcbiAgICAgICAgVW5pdE9mTWVhc3VyZW1lbnQuUVVJTE9HUkFNQSxcclxuICAgICAgICBVbml0T2ZNZWFzdXJlbWVudC5UT05FTEFEQSxcclxuICAgICAgICBVbml0T2ZNZWFzdXJlbWVudC5MSUJSQSxcclxuICAgICAgICBVbml0T2ZNZWFzdXJlbWVudC5TQUNBLFxyXG4gICAgXTtcclxuXHJcbiAgICAvLyDwn5S5IMOBcmVhXHJcbiAgICByZWFkb25seSBBUkVBX1VOSVRTOiBVbml0T2ZNZWFzdXJlbWVudFtdID0gW1xyXG4gICAgICAgIFVuaXRPZk1lYXN1cmVtZW50Lk1FVFJPX1FVQURSQURPLFxyXG4gICAgICAgIFVuaXRPZk1lYXN1cmVtZW50LkNFTlRJTUVUUk9fUVVBRFJBRE8sXHJcbiAgICAgICAgVW5pdE9mTWVhc3VyZW1lbnQuSEVDVEFSRSxcclxuICAgICAgICBVbml0T2ZNZWFzdXJlbWVudC5BTFFVRUlSRV81MHg1MCxcclxuICAgICAgICBVbml0T2ZNZWFzdXJlbWVudC5BTFFVRUlSRV81MHg3NSxcclxuICAgICAgICBVbml0T2ZNZWFzdXJlbWVudC5BTFFVRUlSRV9ET19OT1JURSxcclxuICAgICAgICBVbml0T2ZNZWFzdXJlbWVudC5BTFFVRUlSRV83NXg4MCxcclxuICAgICAgICBVbml0T2ZNZWFzdXJlbWVudC5BTFFVRUlSRV83OXg3OSxcclxuICAgICAgICBVbml0T2ZNZWFzdXJlbWVudC5BTFFVRUlSRV84MHg4MCxcclxuICAgICAgICBVbml0T2ZNZWFzdXJlbWVudC5BTFFVRUlSRV83NXgxMDAsXHJcbiAgICAgICAgVW5pdE9mTWVhc3VyZW1lbnQuQUxRVUVJUkVfMTAweDE1MCxcclxuICAgICAgICBVbml0T2ZNZWFzdXJlbWVudC5BTFFVRUlSRV9CQUlBTk8sXHJcbiAgICAgICAgVW5pdE9mTWVhc3VyZW1lbnQuQUxRVUVJUkFPLFxyXG4gICAgICAgIFVuaXRPZk1lYXN1cmVtZW50LkFMUVVFSVJFX1BBVUxJU1RBLFxyXG4gICAgICAgIFVuaXRPZk1lYXN1cmVtZW50LkFMUVVFSVJFX01JTkVJUk8sXHJcbiAgICBdO1xyXG5cclxuICAgIC8vIPCflLkgVm9sdW1lXHJcbiAgICByZWFkb25seSBWT0xVTUVfVU5JVFM6IFVuaXRPZk1lYXN1cmVtZW50W10gPSBbVW5pdE9mTWVhc3VyZW1lbnQuTElUUk8sIFVuaXRPZk1lYXN1cmVtZW50Lk1JTElMSVRSTywgVW5pdE9mTWVhc3VyZW1lbnQuTUVUUk9fQ1VCSUNPXTtcclxuXHJcbiAgICAvLyDwn5S5IFRlbXBvXHJcbiAgICByZWFkb25seSBUSU1FX1VOSVRTOiBVbml0T2ZNZWFzdXJlbWVudFtdID0gW1xyXG4gICAgICAgIFVuaXRPZk1lYXN1cmVtZW50LlNFR1VORE8sXHJcbiAgICAgICAgVW5pdE9mTWVhc3VyZW1lbnQuTUlOVVRPLFxyXG4gICAgICAgIFVuaXRPZk1lYXN1cmVtZW50LkhPUkEsXHJcbiAgICAgICAgVW5pdE9mTWVhc3VyZW1lbnQuRElBLFxyXG4gICAgXTtcclxuXHJcbiAgICAvLyDwn5S5IFRlbXBlcmF0dXJhXHJcbiAgICByZWFkb25seSBURU1QRVJBVFVSRV9VTklUUzogVW5pdE9mTWVhc3VyZW1lbnRbXSA9IFtVbml0T2ZNZWFzdXJlbWVudC5DRUxTSVVTLCBVbml0T2ZNZWFzdXJlbWVudC5GQUhSRU5IRUlULCBVbml0T2ZNZWFzdXJlbWVudC5LRUxWSU5dO1xyXG5cclxuICAgIC8vIPCflLkgRW5lcmdpYVxyXG4gICAgcmVhZG9ubHkgRU5FUkdZX1VOSVRTOiBVbml0T2ZNZWFzdXJlbWVudFtdID0gW1VuaXRPZk1lYXN1cmVtZW50LkpPVUxFLCBVbml0T2ZNZWFzdXJlbWVudC5DQUxPUklBLCBVbml0T2ZNZWFzdXJlbWVudC5RVUlMT1dBVFRfSE9SQV07XHJcblxyXG4gICAgLy8g8J+UuSBFbGV0cmljaWRhZGVcclxuICAgIHJlYWRvbmx5IEVMRUNUUklDSVRZX1VOSVRTOiBVbml0T2ZNZWFzdXJlbWVudFtdID0gW1VuaXRPZk1lYXN1cmVtZW50LlZPTFQsIFVuaXRPZk1lYXN1cmVtZW50LkFNUEVSRSwgVW5pdE9mTWVhc3VyZW1lbnQuV0FUVF07XHJcblxyXG4gICAgLy8g8J+UuSBEYWRvcyBkaWdpdGFpc1xyXG4gICAgcmVhZG9ubHkgREFUQV9VTklUUzogVW5pdE9mTWVhc3VyZW1lbnRbXSA9IFtcclxuICAgICAgICBVbml0T2ZNZWFzdXJlbWVudC5CWVRFLFxyXG4gICAgICAgIFVuaXRPZk1lYXN1cmVtZW50LktJTE9CWVRFLFxyXG4gICAgICAgIFVuaXRPZk1lYXN1cmVtZW50Lk1FR0FCWVRFLFxyXG4gICAgICAgIFVuaXRPZk1lYXN1cmVtZW50LkdJR0FCWVRFLFxyXG4gICAgICAgIFVuaXRPZk1lYXN1cmVtZW50LlRFUkFCWVRFLFxyXG4gICAgXTtcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnZlcnNpb25Vbml0czogQ29udmVyc2lvblVuaXRbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLmNvbnZlcnNpb25Vbml0cyA9IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdW5pdHM6IHRoaXMuTEVOR1RIX1VOSVRTLFxyXG4gICAgICAgICAgICAgICAgZmFjdG9yVGFibGU6IHtcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuTUVUUk9dOiBBR1JPX05VTUJFUlMuT05FLFxyXG4gICAgICAgICAgICAgICAgICAgIFtVbml0T2ZNZWFzdXJlbWVudC5DRU5USU1FVFJPXTogMC4wMSxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuTUlMSU1FVFJPXTogMC4wMDEsXHJcbiAgICAgICAgICAgICAgICAgICAgW1VuaXRPZk1lYXN1cmVtZW50LlFVSUxPTUVUUk9dOiBBR1JPX05VTUJFUlMuT05FVEhPVVNBTkQsXHJcbiAgICAgICAgICAgICAgICAgICAgW1VuaXRPZk1lYXN1cmVtZW50LlBPTEVHQURBXTogMC4wMjU0LFxyXG4gICAgICAgICAgICAgICAgICAgIFtVbml0T2ZNZWFzdXJlbWVudC5QRV06IDAuMzA0OCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHVuaXRzOiB0aGlzLk1BU1NfVU5JVFMsXHJcbiAgICAgICAgICAgICAgICBmYWN0b3JUYWJsZToge1xyXG4gICAgICAgICAgICAgICAgICAgIFtVbml0T2ZNZWFzdXJlbWVudC5HUkFNQV06IDAuMDAxLFxyXG4gICAgICAgICAgICAgICAgICAgIFtVbml0T2ZNZWFzdXJlbWVudC5RVUlMT0dSQU1BXTogQUdST19OVU1CRVJTLk9ORSxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuVE9ORUxBREFdOiBBR1JPX05VTUJFUlMuT05FVEhPVVNBTkQsXHJcbiAgICAgICAgICAgICAgICAgICAgW1VuaXRPZk1lYXN1cmVtZW50LkxJQlJBXTogMC40NTM1OTIsXHJcbiAgICAgICAgICAgICAgICAgICAgW1VuaXRPZk1lYXN1cmVtZW50LlNBQ0FdOiA2MCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHVuaXRzOiB0aGlzLkFSRUFfVU5JVFMsXHJcbiAgICAgICAgICAgICAgICBmYWN0b3JUYWJsZToge1xyXG4gICAgICAgICAgICAgICAgICAgIFtVbml0T2ZNZWFzdXJlbWVudC5NRVRST19RVUFEUkFET106IEFHUk9fTlVNQkVSUy5PTkUsXHJcbiAgICAgICAgICAgICAgICAgICAgW1VuaXRPZk1lYXN1cmVtZW50LkNFTlRJTUVUUk9fUVVBRFJBRE9dOiAwLjAwMDEsXHJcbiAgICAgICAgICAgICAgICAgICAgW1VuaXRPZk1lYXN1cmVtZW50LkhFQ1RBUkVdOiAxMDAwMCxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuQUxRVUVJUkVfNTB4NTBdOiAxMjEwMCxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuQUxRVUVJUkVfNTB4NzVdOiAxODIwMCxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuQUxRVUVJUkVfRE9fTk9SVEVdOiAyNzIwMCxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuQUxRVUVJUkVfNzV4ODBdOiAyOTAwMCxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuQUxRVUVJUkVfNzl4NzldOiAzMDIwMCxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuQUxRVUVJUkVfODB4ODBdOiAzMTkwMCxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuQUxRVUVJUkVfNzV4MTAwXTogMzYzMDAsXHJcbiAgICAgICAgICAgICAgICAgICAgW1VuaXRPZk1lYXN1cmVtZW50LkFMUVVFSVJFXzEwMHgxNTBdOiA3MjYwMCxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuQUxRVUVJUkVfQkFJQU5PXTogOTY4MDAsXHJcbiAgICAgICAgICAgICAgICAgICAgW1VuaXRPZk1lYXN1cmVtZW50LkFMUVVFSVJBT106IDE5MzYwMCxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuQUxRVUVJUkVfUEFVTElTVEFdOiAyNDIwMCxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuQUxRVUVJUkVfTUlORUlST106IDQ4NDAwLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdW5pdHM6IHRoaXMuVk9MVU1FX1VOSVRTLFxyXG4gICAgICAgICAgICAgICAgZmFjdG9yVGFibGU6IHtcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuTElUUk9dOiBBR1JPX05VTUJFUlMuT05FLFxyXG4gICAgICAgICAgICAgICAgICAgIFtVbml0T2ZNZWFzdXJlbWVudC5NSUxJTElUUk9dOiAwLjAwMSxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuTUVUUk9fQ1VCSUNPXTogQUdST19OVU1CRVJTLk9ORVRIT1VTQU5ELFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdW5pdHM6IHRoaXMuVElNRV9VTklUUyxcclxuICAgICAgICAgICAgICAgIGZhY3RvclRhYmxlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgW1VuaXRPZk1lYXN1cmVtZW50LlNFR1VORE9dOiBBR1JPX05VTUJFUlMuT05FLFxyXG4gICAgICAgICAgICAgICAgICAgIFtVbml0T2ZNZWFzdXJlbWVudC5NSU5VVE9dOiBBR1JPX05VTUJFUlMuU0lYVFlfLFxyXG4gICAgICAgICAgICAgICAgICAgIFtVbml0T2ZNZWFzdXJlbWVudC5IT1JBXTogMzYwMCxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuRElBXTogODY0MDAsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB1bml0czogdGhpcy5FTkVSR1lfVU5JVFMsXHJcbiAgICAgICAgICAgICAgICBmYWN0b3JUYWJsZToge1xyXG4gICAgICAgICAgICAgICAgICAgIFtVbml0T2ZNZWFzdXJlbWVudC5KT1VMRV06IEFHUk9fTlVNQkVSUy5PTkUsXHJcbiAgICAgICAgICAgICAgICAgICAgW1VuaXRPZk1lYXN1cmVtZW50LkNBTE9SSUFdOiA0LjE4NCxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuUVVJTE9XQVRUX0hPUkFdOiAzXzYwMF8wMDAsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB1bml0czogdGhpcy5EQVRBX1VOSVRTLFxyXG4gICAgICAgICAgICAgICAgZmFjdG9yVGFibGU6IHtcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuQllURV06IEFHUk9fTlVNQkVSUy5PTkUsXHJcbiAgICAgICAgICAgICAgICAgICAgW1VuaXRPZk1lYXN1cmVtZW50LktJTE9CWVRFXTogMTAyNCxcclxuICAgICAgICAgICAgICAgICAgICBbVW5pdE9mTWVhc3VyZW1lbnQuTUVHQUJZVEVdOiAxMDI0ICoqIEFHUk9fTlVNQkVSUy5UV08sXHJcbiAgICAgICAgICAgICAgICAgICAgW1VuaXRPZk1lYXN1cmVtZW50LkdJR0FCWVRFXTogMTAyNCAqKiBBR1JPX05VTUJFUlMuVEhSRUUsXHJcbiAgICAgICAgICAgICAgICAgICAgW1VuaXRPZk1lYXN1cmVtZW50LlRFUkFCWVRFXTogMTAyNCAqKiBBR1JPX05VTUJFUlMuRk9VUixcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICAvLyDwn5S5IE3DqXRvZG9zIGRlIGNvbnZlcnPDo29cclxuICAgIGNvbnZlcnRUZW1wZXJhdHVyZVVuaXQodmFsb3I6IG51bWJlciwgZGU6IFVuaXRPZk1lYXN1cmVtZW50LCBwYXJhOiBVbml0T2ZNZWFzdXJlbWVudCk6IG51bWJlciB7XHJcbiAgICAgICAgaWYgKGRlID09PSBwYXJhKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWxvcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBjZWxzaXVzOiBudW1iZXI7XHJcbiAgICAgICAgc3dpdGNoIChkZSkge1xyXG4gICAgICAgICAgICBjYXNlIFVuaXRPZk1lYXN1cmVtZW50LkNFTFNJVVM6XHJcbiAgICAgICAgICAgICAgICBjZWxzaXVzID0gdmFsb3I7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBVbml0T2ZNZWFzdXJlbWVudC5GQUhSRU5IRUlUOlxyXG4gICAgICAgICAgICAgICAgY2Vsc2l1cyA9ICgodmFsb3IgLSBBR1JPX05VTUJFUlMuVEhJUlRZX1RXTykgKiBBR1JPX05VTUJFUlMuRklWRSkgLyBBR1JPX05VTUJFUlMuTklORTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFVuaXRPZk1lYXN1cmVtZW50LktFTFZJTjpcclxuICAgICAgICAgICAgICAgIGNlbHNpdXMgPSB2YWxvciAtIFRXT19IVU5EUkVEX1NFVkVOVFlfVEhSRUVfUE9JTlRfT05FX0ZJVkU7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVuaWRhZGUgaW52w6FsaWRhXCIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc3dpdGNoIChwYXJhKSB7XHJcbiAgICAgICAgICAgIGNhc2UgVW5pdE9mTWVhc3VyZW1lbnQuQ0VMU0lVUzpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjZWxzaXVzO1xyXG4gICAgICAgICAgICBjYXNlIFVuaXRPZk1lYXN1cmVtZW50LkZBSFJFTkhFSVQ6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKGNlbHNpdXMgKiBBR1JPX05VTUJFUlMuTklORSkgLyBBR1JPX05VTUJFUlMuRklWRSArIEFHUk9fTlVNQkVSUy5USElSVFlfVFdPO1xyXG4gICAgICAgICAgICBjYXNlIFVuaXRPZk1lYXN1cmVtZW50LktFTFZJTjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjZWxzaXVzICsgVFdPX0hVTkRSRURfU0VWRU5UWV9USFJFRV9QT0lOVF9PTkVfRklWRTtcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVuaWRhZGUgaW52w6FsaWRhXCIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzVGVtcGVyYXR1cmVVbml0KHVuaXQ6IFVuaXRPZk1lYXN1cmVtZW50KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuVEVNUEVSQVRVUkVfVU5JVFMuaW5jbHVkZXModW5pdCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29udmVydFNjYWxhYmxlVW5pdHModmFsb3I6IG51bWJlciwgZnJvbTogVW5pdE9mTWVhc3VyZW1lbnQsIHRvOiBVbml0T2ZNZWFzdXJlbWVudCk6IG51bWJlciB7XHJcbiAgICAgICAgaWYgKGZyb20gPT09IHRvKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWxvcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlzVGVtcGVyYXR1cmVVbml0KGZyb20pIHx8IHRoaXMuaXNUZW1wZXJhdHVyZVVuaXQodG8pKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnZlcnRUZW1wZXJhdHVyZVVuaXQodmFsb3IsIGZyb20sIHRvKTtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICBjb25zdCB1bml0Q2F0ZWdvcnkgPSB0aGlzLmNvbnZlcnNpb25Vbml0cy5maW5kKCh1KSA9PiB1LnVuaXRzLmluY2x1ZGVzKGZyb20pKTtcclxuICAgICAgICBpZiAoIXVuaXRDYXRlZ29yeT8udW5pdHM/LmluY2x1ZGVzKHRvKSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE7Do28gw6kgcG9zc8OtdmVsIGNvbnZlcnRlciBkZSAke2Zyb219IHBhcmEgJHt0b306IGNhdGVnb3JpYXMgZGlmZXJlbnRlcyBvdSB1bmlkYWRlIG7Do28gZXNjYWzDoXZlbC5gKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGZhdG9yRGUgPSB1bml0Q2F0ZWdvcnkuZmFjdG9yVGFibGVbZnJvbV07XHJcbiAgICAgICAgY29uc3QgZmF0b3JQYXJhID0gdW5pdENhdGVnb3J5LmZhY3RvclRhYmxlW3RvXTtcclxuXHJcbiAgICAgICAgY29uc3QgZW1CYXNlID0gdmFsb3IgKiBmYXRvckRlO1xyXG4gICAgICAgIHJldHVybiBlbUJhc2UgLyBmYXRvclBhcmE7XHJcbiAgICB9XHJcblxyXG4gICAgY29udmVydExpdGVyc1BlckFyZWEodmFsb3I6IG51bWJlciwgZnJvbTogVW5pdE9mTWVhc3VyZW1lbnQsIHRvOiBVbml0T2ZNZWFzdXJlbWVudCk6IG51bWJlciB7XHJcbiAgICAgICAgY29uc3QgYXJlYUNhdGVnb3J5ID0gdGhpcy5jb252ZXJzaW9uVW5pdHMuZmluZCgodSkgPT4gdS51bml0cy5pbmNsdWRlcyhmcm9tKSk7XHJcbiAgICAgICAgaWYgKCFhcmVhQ2F0ZWdvcnk/LnVuaXRzPy5pbmNsdWRlcyh0bykpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmlkYWRlIGRlIMOhcmVhIGludsOhbGlkYTogJHtmcm9tfSBvdSAke3RvfWApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZmF0b3JGcm9tID0gYXJlYUNhdGVnb3J5LmZhY3RvclRhYmxlW2Zyb21dO1xyXG4gICAgICAgIGNvbnN0IGZhdG9yVG8gPSBhcmVhQ2F0ZWdvcnkuZmFjdG9yVGFibGVbdG9dO1xyXG5cclxuICAgICAgICByZXR1cm4gKHZhbG9yIC8gZmF0b3JGcm9tKSAqIGZhdG9yVG87XHJcbiAgICB9XHJcblxyXG4gICAgY29udmVydEtnUGVyQXJlYSh2YWxvcjogbnVtYmVyLCBmcm9tOiBVbml0T2ZNZWFzdXJlbWVudCwgdG86IFVuaXRPZk1lYXN1cmVtZW50KTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0TGl0ZXJzUGVyQXJlYSh2YWxvciwgZnJvbSwgdG8pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnZlcnRCdXNoZWxUb0tnKGJ1c2hlbDogbnVtYmVyLCBmYWN0b3I6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICAgICAgaWYgKGZhY3RvciA8PSAwKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkZhdG9yIGRlIGNvbnZlcnPDo28gaW52w6FsaWRvXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYnVzaGVsICogZmFjdG9yO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnZlcnRLZ1RvQnVzaGVsKGtnOiBudW1iZXIsIGZhY3RvcjogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICBpZiAoZmFjdG9yIDw9IDApIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRmF0b3IgZGUgY29udmVyc8OjbyBpbnbDoWxpZG9cIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBrZyAvIGZhY3RvcjtcclxuICAgIH1cclxuXHJcbiAgICBjYWxjdWxhdGVBcmVhRnJvbVZvbHVtZSh0b3RhbFZvbHVtZTogbnVtYmVyLCByYXRlOiBudW1iZXIsIHJhdGVVbml0OiBVbml0T2ZNZWFzdXJlbWVudCwgYXJlYVVuaXQ6IFVuaXRPZk1lYXN1cmVtZW50KTogbnVtYmVyIHtcclxuICAgICAgICBpZiAocmF0ZSA8PSAwKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRheGEgZGUgYXBsaWNhw6fDo28gaW52w6FsaWRhXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCByYXRlSW5EZXNpcmVkVW5pdCA9IHRoaXMuY29udmVydExpdGVyc1BlckFyZWEocmF0ZSwgcmF0ZVVuaXQsIGFyZWFVbml0KTtcclxuICAgICAgICByZXR1cm4gdG90YWxWb2x1bWUgLyByYXRlSW5EZXNpcmVkVW5pdDtcclxuICAgIH1cclxuXHJcbiAgICBjb252ZXJ0RWxlY3RyaWNpdHlVbml0KHZhbG9yOiBudW1iZXIsIHZvbHRhZ2U6IG51bWJlciwgZnJvbTogVW5pdE9mTWVhc3VyZW1lbnQsIHRvOiBVbml0T2ZNZWFzdXJlbWVudCk6IG51bWJlciB7XHJcbiAgICAgICAgaWYgKGZyb20gPT09IHRvKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWxvcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHRvV2F0dCA9ICh2OiBudW1iZXIsIHVuaXQ6IFVuaXRPZk1lYXN1cmVtZW50KTogbnVtYmVyID0+IHtcclxuICAgICAgICAgICAgc3dpdGNoICh1bml0KSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFVuaXRPZk1lYXN1cmVtZW50LlZPTFQ6XHJcbiAgICAgICAgICAgICAgICBjYXNlIFVuaXRPZk1lYXN1cmVtZW50LkFNUEVSRTpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdm9sdGFnZSAqIHY7IC8vIFAgPSBWICogSVxyXG4gICAgICAgICAgICAgICAgY2FzZSBVbml0T2ZNZWFzdXJlbWVudC5XQVRUOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2O1xyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEEgdW5pZGFkZSAke3VuaXR9IG7Do28gw6kgZXNjYWzDoXZlbCBkaXJldGFtZW50ZS5gKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGNvbnN0IGZyb21XYXR0ID0gKHc6IG51bWJlciwgdW5pdDogVW5pdE9mTWVhc3VyZW1lbnQpOiBudW1iZXIgPT4ge1xyXG4gICAgICAgICAgICBzd2l0Y2ggKHVuaXQpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgVW5pdE9mTWVhc3VyZW1lbnQuVk9MVDpcclxuICAgICAgICAgICAgICAgIGNhc2UgVW5pdE9mTWVhc3VyZW1lbnQuQU1QRVJFOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB3IC8gdm9sdGFnZTtcclxuICAgICAgICAgICAgICAgIGNhc2UgVW5pdE9mTWVhc3VyZW1lbnQuV0FUVDpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBIHVuaWRhZGUgJHt1bml0fSBuw6NvIMOpIGVzY2Fsw6F2ZWwgZGlyZXRhbWVudGUuYCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBjb25zdCB3YXR0VmFsdWUgPSB0b1dhdHQodmFsb3IsIGZyb20pO1xyXG4gICAgICAgIHJldHVybiBmcm9tV2F0dCh3YXR0VmFsdWUsIHRvKTtcclxuICAgIH1cclxufVxyXG4iXX0=