@senior-agronegocio/angular-components 0.0.67 → 0.0.69

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 (29) hide show
  1. package/bundles/senior-agronegocio-angular-components.umd.js +22 -6
  2. package/bundles/senior-agronegocio-angular-components.umd.js.map +1 -1
  3. package/bundles/senior-agronegocio-angular-components.umd.min.js +1 -1
  4. package/bundles/senior-agronegocio-angular-components.umd.min.js.map +1 -1
  5. package/components/event-control-board/common/event-control-constants.d.ts +7 -2
  6. package/components/event-control-board/common/event-operation.d.ts +3 -1
  7. package/components/event-control-board/common/input-fields.d.ts +2 -1
  8. package/esm2015/components/event-control-board/common/event-control-constants.js +5 -1
  9. package/esm2015/components/event-control-board/common/event-operation.js +3 -1
  10. package/esm2015/components/event-control-board/common/input-fields.js +2 -1
  11. package/esm2015/components/event-control-board/event-control-board.component.js +7 -4
  12. package/esm2015/services/i18n/en-US.js +4 -2
  13. package/esm2015/services/i18n/es-CO.js +4 -2
  14. package/esm2015/services/i18n/pt-BR.js +4 -2
  15. package/esm5/components/event-control-board/common/event-control-constants.js +5 -1
  16. package/esm5/components/event-control-board/common/event-operation.js +3 -1
  17. package/esm5/components/event-control-board/common/input-fields.js +2 -1
  18. package/esm5/components/event-control-board/event-control-board.component.js +7 -4
  19. package/esm5/services/i18n/en-US.js +4 -2
  20. package/esm5/services/i18n/es-CO.js +4 -2
  21. package/esm5/services/i18n/pt-BR.js +4 -2
  22. package/fesm2015/senior-agronegocio-angular-components.js +22 -6
  23. package/fesm2015/senior-agronegocio-angular-components.js.map +1 -1
  24. package/fesm5/senior-agronegocio-angular-components.js +22 -6
  25. package/fesm5/senior-agronegocio-angular-components.js.map +1 -1
  26. package/package.json +1 -1
  27. package/services/i18n/en-US.d.ts +2 -0
  28. package/services/i18n/es-CO.d.ts +2 -0
  29. package/services/i18n/pt-BR.d.ts +2 -0
@@ -19,7 +19,12 @@ export declare const eventStatus: {
19
19
  label: string;
20
20
  value: EventStatus;
21
21
  }[];
22
- export declare const inputFieldsPath: {
22
+ export declare const inputFieldsPath: ({
23
23
  path: string;
24
24
  field: InputFields;
25
- }[];
25
+ operation?: undefined;
26
+ } | {
27
+ path: string;
28
+ field: InputFields;
29
+ operation: EventOperation;
30
+ })[];
@@ -22,5 +22,7 @@ export declare enum EventOperation {
22
22
  TRANSFER_CANCEL_INCOMING_INVOICE = "TRANSFER_CANCEL_INCOMING_INVOICE",
23
23
  TRANSFER_CANCEL_OUTGOING_INVOICE = "TRANSFER_CANCEL_OUTGOING_INVOICE",
24
24
  TRANSFER_REVERSE_PRODUCER_BALANCE = "TRANSFER_REVERSE_PRODUCER_BALANCE",
25
- TRANSFER_CONCLUDE_CANCEL = "TRANSFER_CONCLUDE_CANCEL"
25
+ TRANSFER_CONCLUDE_CANCEL = "TRANSFER_CONCLUDE_CANCEL",
26
+ CREATE_INVOICE_FIXATION = "CREATE_INVOICE_FIXATION",
27
+ CANCEL_INVOICE_FIXATION = "CANCEL_INVOICE_FIXATION"
26
28
  }
@@ -1,3 +1,4 @@
1
1
  export declare enum InputFields {
2
- AGRO_INVOICE_TYPE = "agroInvoiceType"
2
+ AGRO_INVOICE_TYPE = "agroInvoiceType",
3
+ INVOICE_TYPE = "invoiceType"
3
4
  }
@@ -38,6 +38,8 @@ export const eventItem = [
38
38
  { label: `agro.angular_components.${EventOperation.TRANSFER_CANCEL_OUTGOING_INVOICE}`, value: EventOperation.TRANSFER_CANCEL_OUTGOING_INVOICE },
39
39
  { label: `agro.angular_components.${EventOperation.TRANSFER_REVERSE_PRODUCER_BALANCE}`, value: EventOperation.TRANSFER_REVERSE_PRODUCER_BALANCE },
40
40
  { label: `agro.angular_components.${EventOperation.TRANSFER_CONCLUDE_CANCEL}`, value: EventOperation.TRANSFER_CONCLUDE_CANCEL },
41
+ { label: `agro.angular_components.${EventOperation.CREATE_INVOICE_FIXATION}`, value: EventOperation.CREATE_INVOICE_FIXATION, subLabelField: InputFields.INVOICE_TYPE },
42
+ { label: `agro.angular_components.${EventOperation.CANCEL_INVOICE_FIXATION}`, value: EventOperation.CANCEL_INVOICE_FIXATION, subLabelField: InputFields.INVOICE_TYPE },
41
43
  ];
42
44
  export const eventStatus = [
43
45
  { label: "agro.angular_components.panel_title_events_completed_successfully", value: EventStatus.SUCCESS },
@@ -48,5 +50,7 @@ export const eventStatus = [
48
50
  ];
49
51
  export const inputFieldsPath = [
50
52
  { path: "invoice", field: InputFields.AGRO_INVOICE_TYPE },
53
+ { path: "invoiceCreateRecordIn.0", field: InputFields.INVOICE_TYPE, operation: EventOperation.CREATE_INVOICE_FIXATION },
54
+ { path: "invoiceCancelRecordIn.0", field: InputFields.INVOICE_TYPE, operation: EventOperation.CANCEL_INVOICE_FIXATION },
51
55
  ];
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtY29udHJvbC1jb25zdGFudHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZXZlbnQtY29udHJvbC1ib2FyZC9jb21tb24vZXZlbnQtY29udHJvbC1jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN2QixFQUFFLEtBQUssRUFBRSxxREFBcUQsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLHFCQUFxQixFQUFFO0lBQzFHLEVBQUUsS0FBSyxFQUFFLGdEQUFnRCxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsT0FBTyxFQUFFO0lBQ3ZGLEVBQUUsS0FBSyxFQUFFLG1EQUFtRCxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsTUFBTSxFQUFFO0lBQ3pGLEVBQUUsS0FBSyxFQUFFLHNEQUFzRCxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsY0FBYyxFQUFFO0lBQ3BHLEVBQUUsS0FBSyxFQUFFLHFEQUFxRCxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMscUJBQXFCLEVBQUU7Q0FDN0csQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRztJQUNyQixFQUFFLEtBQUssRUFBRSxzQ0FBc0MsRUFBRSxLQUFLLEVBQUUsY0FBYyxDQUFDLE1BQU0sRUFBRTtJQUMvRSxFQUFFLEtBQUssRUFBRSwyQ0FBMkMsRUFBRSxLQUFLLEVBQUUsY0FBYyxDQUFDLFdBQVcsRUFBRTtJ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QUM3RyxFQUFFLEtBQUssRUFBRSwyQkFBMkIsY0FBYyxDQUFDLGdDQUFnQyxFQUFFLEVBQUUsS0FBSyxFQUFFLGNBQWMsQ0FBQyxnQ0FBZ0MsRUFBRTtJQUMvSSxFQUFFLEtBQUssRUFBRSwyQkFBMkIsY0FBYyxDQUFDLGdDQUFnQyxFQUFFLEVBQUUsS0FBSyxFQUFFLGNBQWMsQ0FBQyxnQ0FBZ0MsRUFBRTtJQUMvSSxFQUFFLEtBQUssRUFBRSwyQkFBMkIsY0FBYyxDQUFDLGlDQUFpQyxFQUFFLEVBQUUsS0FBSyxFQUFFLGNBQWMsQ0FBQyxpQ0FBaUMsRUFBRTtJQUNqSixFQUFFLEtBQUssRUFBRSwyQkFBMkIsY0FBYyxDQUFDLHdCQUF3QixFQUFFLEVBQUUsS0FBSyxFQUFFLGNBQWMsQ0FBQyx3QkFBd0IsRUFBRTtDQUNsSSxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHO0lBQ3ZCLEVBQUUsS0FBSyxFQUFFLG1FQUFtRSxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsT0FBTyxFQUFFO0lBQzFHLEVBQUUsS0FBSyxFQUFFLDZEQUE2RCxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsTUFBTSxFQUFFO0lBQ25HLEVBQUUsS0FBSyxFQUFFLGlDQUFpQyxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsT0FBTyxFQUFFO0lBQ3hFLEVBQUUsS0FBSyxFQUFFLG9DQUFvQyxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsVUFBVSxFQUFFO0lBQzlFLEVBQUUsS0FBSyxFQUFFLGtDQUFrQyxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsUUFBUSxFQUFFO0NBQzdFLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUc7SUFDM0IsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsaUJBQWlCLEVBQUU7Q0FDNUQsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50T3BlcmF0aW9uIH0gZnJvbSBcIi4vZXZlbnQtb3BlcmF0aW9uXCI7XHJcbmltcG9ydCB7IEV2ZW50T3JpZ2luIH0gZnJvbSBcIi4vZXZlbnQtb3JpZ2luXCI7XHJcbmltcG9ydCB7IEV2ZW50U3RhdHVzIH0gZnJvbSBcIi4vZXZlbnQtc3RhdHVzXCI7XHJcbmltcG9ydCB7IElucHV0RmllbGRzIH0gZnJvbSBcIi4vaW5wdXQtZmllbGRzXCI7XHJcblxyXG5leHBvcnQgY29uc3QgZXZlbnRPcmlnaW4gPSBbXHJcbiAgICB7IGxhYmVsOiBcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmJhbGFuY2VfZW50cnlfY29udHJvbF9ldmVudFwiLCB2YWx1ZTogRXZlbnRPcmlnaW4uQkFMQU5DRV9FTlRSWV9DT05UUk9MIH0sXHJcbiAgICB7IGxhYmVsOiBcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmludm9pY2VfY3JlYXRpbmdfZXZlbnRcIiwgdmFsdWU6IEV2ZW50T3JpZ2luLklOVk9JQ0UgfSxcclxuICAgIHsgbGFiZWw6IFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMudGlja2V0X21haW50ZW5hbmNlX2hlYWRlclwiLCB2YWx1ZTogRXZlbnRPcmlnaW4uVElDS0VUIH0sXHJcbiAgICB7IGxhYmVsOiBcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmNoYW5nZV9yZXF1ZXN0X2V2ZW50X3N1bW1hcnlcIiwgdmFsdWU6IEV2ZW50T3JpZ2luLkNIQU5HRV9SRVFVRVNUIH0sXHJcbiAgICB7IGxhYmVsOiBcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLnRyYW5zZmVyX2NhbmNlbGxhdGlvbl9ldmVudFwiLCB2YWx1ZTogRXZlbnRPcmlnaW4uVFJBTlNGRVJfQ0FOQ0VMTEFUSU9OIH1cclxuXTtcclxuXHJcbmV4cG9ydCBjb25zdCBldmVudEl0ZW0gPSBbXHJcbiAgICB7IGxhYmVsOiBcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLnRpY2tldF9ldmVudFwiLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uVElDS0VUIH0sXHJcbiAgICB7IGxhYmVsOiBcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLnByb3Zpc2lvbmFsX2V2ZW50XCIsIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5QUk9WSVNJT05BTCB9LFxyXG4gICAgeyBsYWJlbDogXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5pbnZvaWNlX2NyZWF0aW5nX2V2ZW50XCIsIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5DUkVBVEVfSU5WT0lDRSwgc3ViTGFiZWxGaWVsZDogSW5wdXRGaWVsZHMuQUdST19JTlZPSUNFX1RZUEUgfSxcclxuICAgIHsgbGFiZWw6IFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMucmVtb3ZlX3Byb3Zpc2lvbmFsX2V2ZW50XCIsIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5SRU1PVkVfUFJPVklTSU9OQUwgfSxcclxuICAgIHsgbGFiZWw6IFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuZWZmZWN0aXZlX2V2ZW50XCIsIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5FRkZFQ1RJVkUgfSxcclxuICAgIHsgbGFiZWw6IFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuZWZmZWN0aXZlX2NvbmZpcm1hdGlvbl9ldmVudFwiLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uRUZGRUNUSVZFX0NPTkZJUk1BVElPTiB9LFxyXG4gICAgeyBsYWJlbDogXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5jaGFuZ2VfcmVxdWVzdF9ldmVudF9zdW1tYXJ5XCIsIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5DSEFOR0VfUkVRVUVTVCB9LFxyXG4gICAgeyBsYWJlbDogXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5jaGFuZ2VfcmVzcG9uc2VfZXZlbnRcIiwgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLkNIQU5HRV9SRVNQT05TRSB9LFxyXG4gICAgeyBsYWJlbDogXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5maXhhdGlvbl9ldmVudFwiLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uUFJPQ0VTU19GSVhBVElPTiB9LFxyXG4gICAgeyBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uQ0FOQ0VMX0lOVk9JQ0V9YCwgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLkNBTkNFTF9JTlZPSUNFLCBzdWJMYWJlbEZpZWxkOiBJbnB1dEZpZWxkcy5BR1JPX0lOVk9JQ0VfVFlQRSB9LFxyXG4gICAgeyBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uUkVQUk9DRVNTX0lOVk9JQ0V9YCwgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLlJFUFJPQ0VTU19JTlZPSUNFIH0sXHJcbiAgICB7IGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5FRkZFQ1RJVkVfQ09ORklSTUFUSU9OfWAsIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5FRkZFQ1RJVkVfQ09ORklSTUFUSU9OIH0sXHJcbiAgICB7IGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5DSEFOR0VfUkVRVUVTVH1gLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uQ0hBTkdFX1JFUVVFU1QgfSxcclxuICAgIHsgbGFiZWw6IGBhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy4ke0V2ZW50T3BlcmF0aW9uLkNIQU5HRV9SRVNQT05TRX1gLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uQ0hBTkdFX1JFU1BPTlNFIH0sXHJcbiAgICB7IGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5QUk9DRVNTX0ZJWEFUSU9OfWAsIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5QUk9DRVNTX0ZJWEFUSU9OIH0sXHJcbiAgICB7IGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5UUkFOU0ZFUl9DUkVBVEVfSU5DT01JTkdfSU5WT0lDRX1gLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uVFJBTlNGRVJfQ1JFQVRFX0lOQ09NSU5HX0lOVk9JQ0UgfSxcclxuICAgIHsgbGFiZWw6IGBhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy4ke0V2ZW50T3BlcmF0aW9uLlRSQU5TRkVSX0NSRUFURV9PVVRHT0lOR19JTlZPSUNFfWAsIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5UUkFOU0ZFUl9DUkVBVEVfT1VUR09JTkdfSU5WT0lDRSB9LFxyXG4gICAgeyBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uVFJBTlNGRVJfUFJPRFVDRVJfQkFMQU5DRX1gLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uVFJBTlNGRVJfUFJPRFVDRVJfQkFMQU5DRSB9LFxyXG4gICAgeyBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uRklOSVNIX0ZJTkFOQ0lBTF9GSVhBVElPTn1gLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uRklOSVNIX0ZJTkFOQ0lBTF9GSVhBVElPTiB9LFxyXG4gICAgeyBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uRklOSVNIX1BST0RVQ0VSX05FVF9WQUxVRV9GSVhBVElPTn1gLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uRklOSVNIX1BST0RVQ0VSX05FVF9WQUxVRV9GSVhBVElPTiB9LFxyXG4gICAgeyBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uQ09OQ0xVREVfRklYQVRJT059YCwgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLkNPTkNMVURFX0ZJWEFUSU9OIH0sXHJcbiAgICB7IGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5DQU5DRUxfRklOQU5DSUFMX0ZJWEFUSU9OfWAsIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5DQU5DRUxfRklOQU5DSUFMX0ZJWEFUSU9OIH0sXHJcbiAgICB7IGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5DQU5DRUxfUFJPRFVDRVJfTkVUX1ZBTFVFX0ZJWEFUSU9OfWAsIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5DQU5DRUxfUFJPRFVDRVJfTkVUX1ZBTFVFX0ZJWEFUSU9OIH0sXHJcbiAgICB7IGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5DQU5DRUxfRklYQVRJT059YCwgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLkNBTkNFTF9GSVhBVElPTiB9LFxyXG4gICAgeyBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uVFJBTlNGRVJfQ0FOQ0VMX0lOQ09NSU5HX0lOVk9JQ0V9YCwgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLlRSQU5TRkVSX0NBTkNFTF9JTkNPTUlOR19JTlZPSUNFIH0sXHJcbiAgICB7IGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5UUkFOU0ZFUl9DQU5DRUxfT1VUR09JTkdfSU5WT0lDRX1gLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uVFJBTlNGRVJfQ0FOQ0VMX09VVEdPSU5HX0lOVk9JQ0UgfSxcclxuICAgIHsgbGFiZWw6IGBhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy4ke0V2ZW50T3BlcmF0aW9uLlRSQU5TRkVSX1JFVkVSU0VfUFJPRFVDRVJfQkFMQU5DRX1gLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uVFJBTlNGRVJfUkVWRVJTRV9QUk9EVUNFUl9CQUxBTkNFIH0sXHJcbiAgICB7IGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5UUkFOU0ZFUl9DT05DTFVERV9DQU5DRUx9YCwgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLlRSQU5TRkVSX0NPTkNMVURFX0NBTkNFTCB9LFxyXG5dO1xyXG5cclxuZXhwb3J0IGNvbnN0IGV2ZW50U3RhdHVzID0gW1xyXG4gICAgeyBsYWJlbDogXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5wYW5lbF90aXRsZV9ldmVudHNfY29tcGxldGVkX3N1Y2Nlc3NmdWxseVwiLCB2YWx1ZTogRXZlbnRTdGF0dXMuU1VDQ0VTUyB9LFxyXG4gICAgeyBsYWJlbDogXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5wYW5lbF90aXRsZV9ldmVudHNfZW5kZWRfd2l0aF9lcnJvclwiLCB2YWx1ZTogRXZlbnRTdGF0dXMuRkFJTEVEIH0sXHJcbiAgICB7IGxhYmVsOiBcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLnBlbmRpbmdcIiwgdmFsdWU6IEV2ZW50U3RhdHVzLlBFTkRJTkcgfSxcclxuICAgIHsgbGFiZWw6IFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMucHJvY2Vzc2luZ1wiLCB2YWx1ZTogRXZlbnRTdGF0dXMuUFJPQ0VTU0lORyB9LFxyXG4gICAgeyBsYWJlbDogXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5jYW5jZWxlZFwiLCB2YWx1ZTogRXZlbnRTdGF0dXMuQ0FOQ0VMRUQgfSxcclxuXTtcclxuXHJcbmV4cG9ydCBjb25zdCBpbnB1dEZpZWxkc1BhdGggPSBbXHJcbiAgICB7IHBhdGg6IFwiaW52b2ljZVwiLCBmaWVsZDogSW5wdXRGaWVsZHMuQUdST19JTlZPSUNFX1RZUEUgfSxcclxuXVxyXG5cclxuXHJcblxyXG4iXX0=
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtY29udHJvbC1jb25zdGFudHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZXZlbnQtY29udHJvbC1ib2FyZC9jb21tb24vZXZlbnQtY29udHJvbC1jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN2QixFQUFFLEtBQUssRUFBRSxxREFBcUQsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLHFCQUFxQixFQUFFO0lBQzFHLEVBQUUsS0FBSyxFQUFFLGdEQUFnRCxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsT0FBTyxFQUFFO0lBQ3ZGLEVBQUUsS0FBSyxFQUFFLG1EQUFtRCxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsTUFBTSxFQUFFO0lBQ3pGLEVBQUUsS0FBSyxFQUFFLHNEQUFzRCxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsY0FBYyxFQUFFO0lBQ3BHLEVBQUUsS0FBSyxFQUFFLHFEQUFxRCxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMscUJBQXFCLEVBQUU7Q0FDN0csQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRztJQUNyQixFQUFFLEtBQUssRUFBRSxzQ0FBc0MsRUFBRSxLQUFLLEVBQUUsY0FBYyxDQUFDLE1BQU0sRUFBRTtJQUMvRSxFQUFFLEtBQUssRUFBRSwyQ0FBMkMsRUFBRSxLQUFLLEVBQUUsY0FBYyxDQUFDLFdBQVcsRUFBRTtJ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QyxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsUUFBUSxFQUFFO0NBQzdFLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUc7SUFDM0IsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsaUJBQWlCLEVBQUU7SUFDekQsRUFBRSxJQUFJLEVBQUUseUJBQXlCLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLGNBQWMsQ0FBQyx1QkFBdUIsRUFBRTtJQUN2SCxFQUFFLElBQUksRUFBRSx5QkFBeUIsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsY0FBYyxDQUFDLHVCQUF1QixFQUFFO0NBQzFILENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudE9wZXJhdGlvbiB9IGZyb20gXCIuL2V2ZW50LW9wZXJhdGlvblwiO1xyXG5pbXBvcnQgeyBFdmVudE9yaWdpbiB9IGZyb20gXCIuL2V2ZW50LW9yaWdpblwiO1xyXG5pbXBvcnQgeyBFdmVudFN0YXR1cyB9IGZyb20gXCIuL2V2ZW50LXN0YXR1c1wiO1xyXG5pbXBvcnQgeyBJbnB1dEZpZWxkcyB9IGZyb20gXCIuL2lucHV0LWZpZWxkc1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IGV2ZW50T3JpZ2luID0gW1xyXG4gICAgeyBsYWJlbDogXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5iYWxhbmNlX2VudHJ5X2NvbnRyb2xfZXZlbnRcIiwgdmFsdWU6IEV2ZW50T3JpZ2luLkJBTEFOQ0VfRU5UUllfQ09OVFJPTCB9LFxyXG4gICAgeyBsYWJlbDogXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5pbnZvaWNlX2NyZWF0aW5nX2V2ZW50XCIsIHZhbHVlOiBFdmVudE9yaWdpbi5JTlZPSUNFIH0sXHJcbiAgICB7IGxhYmVsOiBcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLnRpY2tldF9tYWludGVuYW5jZV9oZWFkZXJcIiwgdmFsdWU6IEV2ZW50T3JpZ2luLlRJQ0tFVCB9LFxyXG4gICAgeyBsYWJlbDogXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5jaGFuZ2VfcmVxdWVzdF9ldmVudF9zdW1tYXJ5XCIsIHZhbHVlOiBFdmVudE9yaWdpbi5DSEFOR0VfUkVRVUVTVCB9LFxyXG4gICAgeyBsYWJlbDogXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy50cmFuc2Zlcl9jYW5jZWxsYXRpb25fZXZlbnRcIiwgdmFsdWU6IEV2ZW50T3JpZ2luLlRSQU5TRkVSX0NBTkNFTExBVElPTiB9XHJcbl07XHJcblxyXG5leHBvcnQgY29uc3QgZXZlbnRJdGVtID0gW1xyXG4gICAgeyBsYWJlbDogXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy50aWNrZXRfZXZlbnRcIiwgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLlRJQ0tFVCB9LFxyXG4gICAgeyBsYWJlbDogXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5wcm92aXNpb25hbF9ldmVudFwiLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uUFJPVklTSU9OQUwgfSxcclxuICAgIHsgbGFiZWw6IFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuaW52b2ljZV9jcmVhdGluZ19ldmVudFwiLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uQ1JFQVRFX0lOVk9JQ0UsIHN1YkxhYmVsRmllbGQ6IElucHV0RmllbGRzLkFHUk9fSU5WT0lDRV9UWVBFIH0sXHJcbiAgICB7IGxhYmVsOiBcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLnJlbW92ZV9wcm92aXNpb25hbF9ldmVudFwiLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uUkVNT1ZFX1BST1ZJU0lPTkFMIH0sXHJcbiAgICB7IGxhYmVsOiBcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmVmZmVjdGl2ZV9ldmVudFwiLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uRUZGRUNUSVZFIH0sXHJcbiAgICB7IGxhYmVsOiBcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmVmZmVjdGl2ZV9jb25maXJtYXRpb25fZXZlbnRcIiwgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLkVGRkVDVElWRV9DT05GSVJNQVRJT04gfSxcclxuICAgIHsgbGFiZWw6IFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuY2hhbmdlX3JlcXVlc3RfZXZlbnRfc3VtbWFyeVwiLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uQ0hBTkdFX1JFUVVFU1QgfSxcclxuICAgIHsgbGFiZWw6IFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuY2hhbmdlX3Jlc3BvbnNlX2V2ZW50XCIsIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5DSEFOR0VfUkVTUE9OU0UgfSxcclxuICAgIHsgbGFiZWw6IFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuZml4YXRpb25fZXZlbnRcIiwgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLlBST0NFU1NfRklYQVRJT04gfSxcclxuICAgIHsgbGFiZWw6IGBhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy4ke0V2ZW50T3BlcmF0aW9uLkNBTkNFTF9JTlZPSUNFfWAsIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5DQU5DRUxfSU5WT0lDRSwgc3ViTGFiZWxGaWVsZDogSW5wdXRGaWVsZHMuQUdST19JTlZPSUNFX1RZUEUgfSxcclxuICAgIHsgbGFiZWw6IGBhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy4ke0V2ZW50T3BlcmF0aW9uLlJFUFJPQ0VTU19JTlZPSUNFfWAsIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5SRVBST0NFU1NfSU5WT0lDRSB9LFxyXG4gICAgeyBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uRUZGRUNUSVZFX0NPTkZJUk1BVElPTn1gLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uRUZGRUNUSVZFX0NPTkZJUk1BVElPTiB9LFxyXG4gICAgeyBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uQ0hBTkdFX1JFUVVFU1R9YCwgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLkNIQU5HRV9SRVFVRVNUIH0sXHJcbiAgICB7IGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5DSEFOR0VfUkVTUE9OU0V9YCwgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLkNIQU5HRV9SRVNQT05TRSB9LFxyXG4gICAgeyBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uUFJPQ0VTU19GSVhBVElPTn1gLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uUFJPQ0VTU19GSVhBVElPTiB9LFxyXG4gICAgeyBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uVFJBTlNGRVJfQ1JFQVRFX0lOQ09NSU5HX0lOVk9JQ0V9YCwgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLlRSQU5TRkVSX0NSRUFURV9JTkNPTUlOR19JTlZPSUNFIH0sXHJcbiAgICB7IGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5UUkFOU0ZFUl9DUkVBVEVfT1VUR09JTkdfSU5WT0lDRX1gLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uVFJBTlNGRVJfQ1JFQVRFX09VVEdPSU5HX0lOVk9JQ0UgfSxcclxuICAgIHsgbGFiZWw6IGBhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy4ke0V2ZW50T3BlcmF0aW9uLlRSQU5TRkVSX1BST0RVQ0VSX0JBTEFOQ0V9YCwgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLlRSQU5TRkVSX1BST0RVQ0VSX0JBTEFOQ0UgfSxcclxuICAgIHsgbGFiZWw6IGBhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy4ke0V2ZW50T3BlcmF0aW9uLkZJTklTSF9GSU5BTkNJQUxfRklYQVRJT059YCwgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLkZJTklTSF9GSU5BTkNJQUxfRklYQVRJT04gfSxcclxuICAgIHsgbGFiZWw6IGBhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy4ke0V2ZW50T3BlcmF0aW9uLkZJTklTSF9QUk9EVUNFUl9ORVRfVkFMVUVfRklYQVRJT059YCwgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLkZJTklTSF9QUk9EVUNFUl9ORVRfVkFMVUVfRklYQVRJT04gfSxcclxuICAgIHsgbGFiZWw6IGBhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy4ke0V2ZW50T3BlcmF0aW9uLkNPTkNMVURFX0ZJWEFUSU9OfWAsIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5DT05DTFVERV9GSVhBVElPTiB9LFxyXG4gICAgeyBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uQ0FOQ0VMX0ZJTkFOQ0lBTF9GSVhBVElPTn1gLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uQ0FOQ0VMX0ZJTkFOQ0lBTF9GSVhBVElPTiB9LFxyXG4gICAgeyBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uQ0FOQ0VMX1BST0RVQ0VSX05FVF9WQUxVRV9GSVhBVElPTn1gLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uQ0FOQ0VMX1BST0RVQ0VSX05FVF9WQUxVRV9GSVhBVElPTiB9LFxyXG4gICAgeyBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uQ0FOQ0VMX0ZJWEFUSU9OfWAsIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5DQU5DRUxfRklYQVRJT04gfSxcclxuICAgIHsgbGFiZWw6IGBhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy4ke0V2ZW50T3BlcmF0aW9uLlRSQU5TRkVSX0NBTkNFTF9JTkNPTUlOR19JTlZPSUNFfWAsIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5UUkFOU0ZFUl9DQU5DRUxfSU5DT01JTkdfSU5WT0lDRSB9LFxyXG4gICAgeyBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uVFJBTlNGRVJfQ0FOQ0VMX09VVEdPSU5HX0lOVk9JQ0V9YCwgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLlRSQU5TRkVSX0NBTkNFTF9PVVRHT0lOR19JTlZPSUNFIH0sXHJcbiAgICB7IGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5UUkFOU0ZFUl9SRVZFUlNFX1BST0RVQ0VSX0JBTEFOQ0V9YCwgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLlRSQU5TRkVSX1JFVkVSU0VfUFJPRFVDRVJfQkFMQU5DRSB9LFxyXG4gICAgeyBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uVFJBTlNGRVJfQ09OQ0xVREVfQ0FOQ0VMfWAsIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5UUkFOU0ZFUl9DT05DTFVERV9DQU5DRUwgfSxcclxuICAgIHsgbGFiZWw6IGBhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy4ke0V2ZW50T3BlcmF0aW9uLkNSRUFURV9JTlZPSUNFX0ZJWEFUSU9OfWAsIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5DUkVBVEVfSU5WT0lDRV9GSVhBVElPTiwgc3ViTGFiZWxGaWVsZDogSW5wdXRGaWVsZHMuSU5WT0lDRV9UWVBFIH0sXHJcbiAgICB7IGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5DQU5DRUxfSU5WT0lDRV9GSVhBVElPTn1gLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uQ0FOQ0VMX0lOVk9JQ0VfRklYQVRJT04sIHN1YkxhYmVsRmllbGQ6IElucHV0RmllbGRzLklOVk9JQ0VfVFlQRSB9LFxyXG5dO1xyXG5cclxuZXhwb3J0IGNvbnN0IGV2ZW50U3RhdHVzID0gW1xyXG4gICAgeyBsYWJlbDogXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5wYW5lbF90aXRsZV9ldmVudHNfY29tcGxldGVkX3N1Y2Nlc3NmdWxseVwiLCB2YWx1ZTogRXZlbnRTdGF0dXMuU1VDQ0VTUyB9LFxyXG4gICAgeyBsYWJlbDogXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5wYW5lbF90aXRsZV9ldmVudHNfZW5kZWRfd2l0aF9lcnJvclwiLCB2YWx1ZTogRXZlbnRTdGF0dXMuRkFJTEVEIH0sXHJcbiAgICB7IGxhYmVsOiBcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLnBlbmRpbmdcIiwgdmFsdWU6IEV2ZW50U3RhdHVzLlBFTkRJTkcgfSxcclxuICAgIHsgbGFiZWw6IFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMucHJvY2Vzc2luZ1wiLCB2YWx1ZTogRXZlbnRTdGF0dXMuUFJPQ0VTU0lORyB9LFxyXG4gICAgeyBsYWJlbDogXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5jYW5jZWxlZFwiLCB2YWx1ZTogRXZlbnRTdGF0dXMuQ0FOQ0VMRUQgfSxcclxuXTtcclxuXHJcbmV4cG9ydCBjb25zdCBpbnB1dEZpZWxkc1BhdGggPSBbXHJcbiAgICB7IHBhdGg6IFwiaW52b2ljZVwiLCBmaWVsZDogSW5wdXRGaWVsZHMuQUdST19JTlZPSUNFX1RZUEUgfSxcclxuICAgIHsgcGF0aDogXCJpbnZvaWNlQ3JlYXRlUmVjb3JkSW4uMFwiLCBmaWVsZDogSW5wdXRGaWVsZHMuSU5WT0lDRV9UWVBFLCBvcGVyYXRpb246IEV2ZW50T3BlcmF0aW9uLkNSRUFURV9JTlZPSUNFX0ZJWEFUSU9OIH0sXHJcbiAgICB7IHBhdGg6IFwiaW52b2ljZUNhbmNlbFJlY29yZEluLjBcIiwgZmllbGQ6IElucHV0RmllbGRzLklOVk9JQ0VfVFlQRSwgb3BlcmF0aW9uOiBFdmVudE9wZXJhdGlvbi5DQU5DRUxfSU5WT0lDRV9GSVhBVElPTiB9LFxyXG5dXHJcblxyXG5cclxuXHJcbiJdfQ==
@@ -24,5 +24,7 @@ export var EventOperation;
24
24
  EventOperation["TRANSFER_CANCEL_OUTGOING_INVOICE"] = "TRANSFER_CANCEL_OUTGOING_INVOICE";
25
25
  EventOperation["TRANSFER_REVERSE_PRODUCER_BALANCE"] = "TRANSFER_REVERSE_PRODUCER_BALANCE";
26
26
  EventOperation["TRANSFER_CONCLUDE_CANCEL"] = "TRANSFER_CONCLUDE_CANCEL";
27
+ EventOperation["CREATE_INVOICE_FIXATION"] = "CREATE_INVOICE_FIXATION";
28
+ EventOperation["CANCEL_INVOICE_FIXATION"] = "CANCEL_INVOICE_FIXATION";
27
29
  })(EventOperation || (EventOperation = {}));
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtb3BlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1hZ3JvbmVnb2Npby9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2V2ZW50LWNvbnRyb2wtYm9hcmQvY29tbW9uL2V2ZW50LW9wZXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxjQXlCWDtBQXpCRCxXQUFZLGNBQWM7SUFDdEIsNkNBQTJCLENBQUE7SUFDM0IseUNBQXVCLENBQUE7SUFDdkIsbUNBQWlCLENBQUE7SUFDakIsbURBQWlDLENBQUE7SUFDakMsbUVBQWlELENBQUE7SUFDakQsMkRBQXlDLENBQUE7SUFDekMsbURBQWlDLENBQUE7SUFDakMscURBQW1DLENBQUE7SUFDbkMsdURBQXFDLENBQUE7SUFDckMsbURBQWlDLENBQUE7SUFDakMseURBQXVDLENBQUE7SUFDdkMsdUZBQXFFLENBQUE7SUFDckUsdUZBQXFFLENBQUE7SUFDckUseUVBQXVELENBQUE7SUFDdkQseUVBQXVELENBQUE7SUFDdkQsMkZBQXlFLENBQUE7SUFDekUseURBQXVDLENBQUE7SUFDdkMseUVBQXVELENBQUE7SUFDdkQsMkZBQXlFLENBQUE7SUFDekUscURBQW1DLENBQUE7SUFDbkMsdUZBQXFFLENBQUE7SUFDckUsdUZBQXFFLENBQUE7SUFDckUseUZBQXVFLENBQUE7SUFDdkUsdUVBQXFELENBQUE7QUFDekQsQ0FBQyxFQXpCVyxjQUFjLEtBQWQsY0FBYyxRQXlCekIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBFdmVudE9wZXJhdGlvbiB7XHJcbiAgICBQUk9WSVNJT05BTCA9IFwiUFJPVklTSU9OQUxcIixcclxuICAgIEVGRkVDVElWRSA9IFwiRUZGRUNUSVZFXCIsXHJcbiAgICBUSUNLRVQgPSBcIlRJQ0tFVFwiLFxyXG4gICAgQ1JFQVRFX0lOVk9JQ0UgPSBcIkNSRUFURV9JTlZPSUNFXCIsXHJcbiAgICBFRkZFQ1RJVkVfQ09ORklSTUFUSU9OID0gXCJFRkZFQ1RJVkVfQ09ORklSTUFUSU9OXCIsXHJcbiAgICBSRU1PVkVfUFJPVklTSU9OQUwgPSBcIlJFTU9WRV9QUk9WSVNJT05BTFwiLFxyXG4gICAgQ0hBTkdFX1JFUVVFU1QgPSBcIkNIQU5HRV9SRVFVRVNUXCIsXHJcbiAgICBDSEFOR0VfUkVTUE9OU0UgPSBcIkNIQU5HRV9SRVNQT05TRVwiLFxyXG4gICAgUFJPQ0VTU19GSVhBVElPTiA9IFwiUFJPQ0VTU19GSVhBVElPTlwiLFxyXG4gICAgQ0FOQ0VMX0lOVk9JQ0UgPSBcIkNBTkNFTF9JTlZPSUNFXCIsXHJcbiAgICBSRVBST0NFU1NfSU5WT0lDRSA9IFwiUkVQUk9DRVNTX0lOVk9JQ0VcIixcclxuICAgIFRSQU5TRkVSX0NSRUFURV9JTkNPTUlOR19JTlZPSUNFID0gXCJUUkFOU0ZFUl9DUkVBVEVfSU5DT01JTkdfSU5WT0lDRVwiLFxyXG4gICAgVFJBTlNGRVJfQ1JFQVRFX09VVEdPSU5HX0lOVk9JQ0UgPSBcIlRSQU5TRkVSX0NSRUFURV9PVVRHT0lOR19JTlZPSUNFXCIsXHJcbiAgICBUUkFOU0ZFUl9QUk9EVUNFUl9CQUxBTkNFID0gXCJUUkFOU0ZFUl9QUk9EVUNFUl9CQUxBTkNFXCIsXHJcbiAgICBGSU5JU0hfRklOQU5DSUFMX0ZJWEFUSU9OID0gXCJGSU5JU0hfRklOQU5DSUFMX0ZJWEFUSU9OXCIsXHJcbiAgICBGSU5JU0hfUFJPRFVDRVJfTkVUX1ZBTFVFX0ZJWEFUSU9OID0gXCJGSU5JU0hfUFJPRFVDRVJfTkVUX1ZBTFVFX0ZJWEFUSU9OXCIsXHJcbiAgICBDT05DTFVERV9GSVhBVElPTiA9IFwiQ09OQ0xVREVfRklYQVRJT05cIixcclxuICAgIENBTkNFTF9GSU5BTkNJQUxfRklYQVRJT04gPSBcIkNBTkNFTF9GSU5BTkNJQUxfRklYQVRJT05cIixcclxuICAgIENBTkNFTF9QUk9EVUNFUl9ORVRfVkFMVUVfRklYQVRJT04gPSBcIkNBTkNFTF9QUk9EVUNFUl9ORVRfVkFMVUVfRklYQVRJT05cIixcclxuICAgIENBTkNFTF9GSVhBVElPTiA9IFwiQ0FOQ0VMX0ZJWEFUSU9OXCIsXHJcbiAgICBUUkFOU0ZFUl9DQU5DRUxfSU5DT01JTkdfSU5WT0lDRSA9IFwiVFJBTlNGRVJfQ0FOQ0VMX0lOQ09NSU5HX0lOVk9JQ0VcIixcclxuICAgIFRSQU5TRkVSX0NBTkNFTF9PVVRHT0lOR19JTlZPSUNFID0gXCJUUkFOU0ZFUl9DQU5DRUxfT1VUR09JTkdfSU5WT0lDRVwiLFxyXG4gICAgVFJBTlNGRVJfUkVWRVJTRV9QUk9EVUNFUl9CQUxBTkNFID0gXCJUUkFOU0ZFUl9SRVZFUlNFX1BST0RVQ0VSX0JBTEFOQ0VcIixcclxuICAgIFRSQU5TRkVSX0NPTkNMVURFX0NBTkNFTCA9IFwiVFJBTlNGRVJfQ09OQ0xVREVfQ0FOQ0VMXCIsXHJcbn1cclxuIl19
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtb3BlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1hZ3JvbmVnb2Npby9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2V2ZW50LWNvbnRyb2wtYm9hcmQvY29tbW9uL2V2ZW50LW9wZXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxjQTJCWDtBQTNCRCxXQUFZLGNBQWM7SUFDdEIsNkNBQTJCLENBQUE7SUFDM0IseUNBQXVCLENBQUE7SUFDdkIsbUNBQWlCLENBQUE7SUFDakIsbURBQWlDLENBQUE7SUFDakMsbUVBQWlELENBQUE7SUFDakQsMkRBQXlDLENBQUE7SUFDekMsbURBQWlDLENBQUE7SUFDakMscURBQW1DLENBQUE7SUFDbkMsdURBQXFDLENBQUE7SUFDckMsbURBQWlDLENBQUE7SUFDakMseURBQXVDLENBQUE7SUFDdkMsdUZBQXFFLENBQUE7SUFDckUsdUZBQXFFLENBQUE7SUFDckUseUVBQXVELENBQUE7SUFDdkQseUVBQXVELENBQUE7SUFDdkQsMkZBQXlFLENBQUE7SUFDekUseURBQXVDLENBQUE7SUFDdkMseUVBQXVELENBQUE7SUFDdkQsMkZBQXlFLENBQUE7SUFDekUscURBQW1DLENBQUE7SUFDbkMsdUZBQXFFLENBQUE7SUFDckUsdUZBQXFFLENBQUE7SUFDckUseUZBQXVFLENBQUE7SUFDdkUsdUVBQXFELENBQUE7SUFDckQscUVBQW1ELENBQUE7SUFDbkQscUVBQW1ELENBQUE7QUFDdkQsQ0FBQyxFQTNCVyxjQUFjLEtBQWQsY0FBYyxRQTJCekIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBFdmVudE9wZXJhdGlvbiB7XHJcbiAgICBQUk9WSVNJT05BTCA9IFwiUFJPVklTSU9OQUxcIixcclxuICAgIEVGRkVDVElWRSA9IFwiRUZGRUNUSVZFXCIsXHJcbiAgICBUSUNLRVQgPSBcIlRJQ0tFVFwiLFxyXG4gICAgQ1JFQVRFX0lOVk9JQ0UgPSBcIkNSRUFURV9JTlZPSUNFXCIsXHJcbiAgICBFRkZFQ1RJVkVfQ09ORklSTUFUSU9OID0gXCJFRkZFQ1RJVkVfQ09ORklSTUFUSU9OXCIsXHJcbiAgICBSRU1PVkVfUFJPVklTSU9OQUwgPSBcIlJFTU9WRV9QUk9WSVNJT05BTFwiLFxyXG4gICAgQ0hBTkdFX1JFUVVFU1QgPSBcIkNIQU5HRV9SRVFVRVNUXCIsXHJcbiAgICBDSEFOR0VfUkVTUE9OU0UgPSBcIkNIQU5HRV9SRVNQT05TRVwiLFxyXG4gICAgUFJPQ0VTU19GSVhBVElPTiA9IFwiUFJPQ0VTU19GSVhBVElPTlwiLFxyXG4gICAgQ0FOQ0VMX0lOVk9JQ0UgPSBcIkNBTkNFTF9JTlZPSUNFXCIsXHJcbiAgICBSRVBST0NFU1NfSU5WT0lDRSA9IFwiUkVQUk9DRVNTX0lOVk9JQ0VcIixcclxuICAgIFRSQU5TRkVSX0NSRUFURV9JTkNPTUlOR19JTlZPSUNFID0gXCJUUkFOU0ZFUl9DUkVBVEVfSU5DT01JTkdfSU5WT0lDRVwiLFxyXG4gICAgVFJBTlNGRVJfQ1JFQVRFX09VVEdPSU5HX0lOVk9JQ0UgPSBcIlRSQU5TRkVSX0NSRUFURV9PVVRHT0lOR19JTlZPSUNFXCIsXHJcbiAgICBUUkFOU0ZFUl9QUk9EVUNFUl9CQUxBTkNFID0gXCJUUkFOU0ZFUl9QUk9EVUNFUl9CQUxBTkNFXCIsXHJcbiAgICBGSU5JU0hfRklOQU5DSUFMX0ZJWEFUSU9OID0gXCJGSU5JU0hfRklOQU5DSUFMX0ZJWEFUSU9OXCIsXHJcbiAgICBGSU5JU0hfUFJPRFVDRVJfTkVUX1ZBTFVFX0ZJWEFUSU9OID0gXCJGSU5JU0hfUFJPRFVDRVJfTkVUX1ZBTFVFX0ZJWEFUSU9OXCIsXHJcbiAgICBDT05DTFVERV9GSVhBVElPTiA9IFwiQ09OQ0xVREVfRklYQVRJT05cIixcclxuICAgIENBTkNFTF9GSU5BTkNJQUxfRklYQVRJT04gPSBcIkNBTkNFTF9GSU5BTkNJQUxfRklYQVRJT05cIixcclxuICAgIENBTkNFTF9QUk9EVUNFUl9ORVRfVkFMVUVfRklYQVRJT04gPSBcIkNBTkNFTF9QUk9EVUNFUl9ORVRfVkFMVUVfRklYQVRJT05cIixcclxuICAgIENBTkNFTF9GSVhBVElPTiA9IFwiQ0FOQ0VMX0ZJWEFUSU9OXCIsXHJcbiAgICBUUkFOU0ZFUl9DQU5DRUxfSU5DT01JTkdfSU5WT0lDRSA9IFwiVFJBTlNGRVJfQ0FOQ0VMX0lOQ09NSU5HX0lOVk9JQ0VcIixcclxuICAgIFRSQU5TRkVSX0NBTkNFTF9PVVRHT0lOR19JTlZPSUNFID0gXCJUUkFOU0ZFUl9DQU5DRUxfT1VUR09JTkdfSU5WT0lDRVwiLFxyXG4gICAgVFJBTlNGRVJfUkVWRVJTRV9QUk9EVUNFUl9CQUxBTkNFID0gXCJUUkFOU0ZFUl9SRVZFUlNFX1BST0RVQ0VSX0JBTEFOQ0VcIixcclxuICAgIFRSQU5TRkVSX0NPTkNMVURFX0NBTkNFTCA9IFwiVFJBTlNGRVJfQ09OQ0xVREVfQ0FOQ0VMXCIsXHJcbiAgICBDUkVBVEVfSU5WT0lDRV9GSVhBVElPTiA9IFwiQ1JFQVRFX0lOVk9JQ0VfRklYQVRJT05cIixcclxuICAgIENBTkNFTF9JTlZPSUNFX0ZJWEFUSU9OID0gXCJDQU5DRUxfSU5WT0lDRV9GSVhBVElPTlwiXHJcbn1cclxuIl19
@@ -1,5 +1,6 @@
1
1
  export var InputFields;
2
2
  (function (InputFields) {
3
3
  InputFields["AGRO_INVOICE_TYPE"] = "agroInvoiceType";
4
+ InputFields["INVOICE_TYPE"] = "invoiceType";
4
5
  })(InputFields || (InputFields = {}));
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmllbGRzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1hZ3JvbmVnb2Npby9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2V2ZW50LWNvbnRyb2wtYm9hcmQvY29tbW9uL2lucHV0LWZpZWxkcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxXQUVYO0FBRkQsV0FBWSxXQUFXO0lBQ25CLG9EQUFxQyxDQUFBO0FBQ3pDLENBQUMsRUFGVyxXQUFXLEtBQVgsV0FBVyxRQUV0QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIElucHV0RmllbGRzIHtcclxuICAgIEFHUk9fSU5WT0lDRV9UWVBFID0gJ2Fncm9JbnZvaWNlVHlwZSdcclxufSJdfQ==
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmllbGRzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1hZ3JvbmVnb2Npby9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2V2ZW50LWNvbnRyb2wtYm9hcmQvY29tbW9uL2lucHV0LWZpZWxkcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ25CLG9EQUFxQyxDQUFBO0lBQ3JDLDJDQUE0QixDQUFBO0FBQ2hDLENBQUMsRUFIVyxXQUFXLEtBQVgsV0FBVyxRQUd0QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIElucHV0RmllbGRzIHtcclxuICAgIEFHUk9fSU5WT0lDRV9UWVBFID0gJ2Fncm9JbnZvaWNlVHlwZScsXHJcbiAgICBJTlZPSUNFX1RZUEUgPSAnaW52b2ljZVR5cGUnLFxyXG59Il19
@@ -159,7 +159,9 @@ let EventControlBoardComponent = class EventControlBoardComponent {
159
159
  var _a, _b;
160
160
  const externalId = (_a = message === null || message === void 0 ? void 0 : message.data) === null || _a === void 0 ? void 0 : _a.externalId;
161
161
  const filterData = this.filterFormGroup.getRawValue();
162
- if (!externalId || ((_b = this.gridData) === null || _b === void 0 ? void 0 : _b.some((item) => item.externalId === externalId))) {
162
+ if (!externalId
163
+ || this.externalId === externalId
164
+ || ((_b = this.gridData) === null || _b === void 0 ? void 0 : _b.some((item) => item.externalId === externalId))) {
163
165
  this.updateGrid({ filterData });
164
166
  this.processedEvent.emit(message);
165
167
  }
@@ -261,7 +263,7 @@ let EventControlBoardComponent = class EventControlBoardComponent {
261
263
  if (!field || !detail.input) {
262
264
  return null;
263
265
  }
264
- var path = (_b = this.inputFieldsPath.find(f => f.field === field)) === null || _b === void 0 ? void 0 : _b.path;
266
+ var path = (_b = this.inputFieldsPath.find(f => f.field === field && (!f.operation || f.operation === detail.eventOperation))) === null || _b === void 0 ? void 0 : _b.path;
265
267
  var fullPath = path ? `${path}.${field}` : field;
266
268
  const value = this.getValueFieldJsonFromPath(detail.input, fullPath);
267
269
  return this.formatFieldValue(field, value);
@@ -281,6 +283,7 @@ let EventControlBoardComponent = class EventControlBoardComponent {
281
283
  var _a;
282
284
  switch (field) {
283
285
  case InputFields.AGRO_INVOICE_TYPE:
286
+ case InputFields.INVOICE_TYPE:
284
287
  const label = (_a = this.invoiceTypeTranslate.find(e => e.value === value)) === null || _a === void 0 ? void 0 : _a.label;
285
288
  return label ? this.translate.instant(label) : value;
286
289
  default:
@@ -499,7 +502,7 @@ __decorate([
499
502
  EventControlBoardComponent = __decorate([
500
503
  Component({
501
504
  selector: 'event-control-board',
502
- template: "<div class=\"ui-g\" *sLoadingState=\"gridLoading\">\r\n <div class=\"ui-g-12\">\r\n <p-panel>\r\n <p-header>\r\n {{ \"agro.angular_components.event_control_header\" | libTranslate }}\r\n </p-header>\r\n <div class=\"ui-g\">\r\n <div class=\"ui-g-12\">\r\n <s-button\r\n id=\"refresh-button\"\r\n [priority]=\"ButtonPriority.Primary\"\r\n iconClass=\"fa fa-refresh\"\r\n [label]=\"'agro.angular_components.refresh' | libTranslate\"\r\n (click)=\"onSearch()\"\r\n >\r\n </s-button>\r\n <s-button\r\n *ngIf=\"standalone && showCancelButton\"\r\n id=\"cancel-button-agro-events-lib\"\r\n iconClass=\"fa fa-times\"\r\n [label]=\"'agro.angular_components.cancel' | libTranslate\"\r\n (click)=\"openCancelModal()\"\r\n >\r\n </s-button>\r\n </div>\r\n </div>\r\n <div class=\"ui-g\">\r\n <div class=\"ui-g-12 ui-md-12\" *ngIf=\"!gridData || gridData?.length === 0\">\r\n <s-empty-state\r\n iconClass=\"fa fa-exclamation-triangle\"\r\n title=\"{{ 'agro.angular_components.nothing_found' | libTranslate }}\"\r\n [showPrimaryAction]=\"false\"\r\n description=\"{{ 'agro.angular_components.table_empty_description' | libTranslate }}\"\r\n >\r\n </s-empty-state>\r\n </div>\r\n <ng-container *ngIf=\"gridData?.length > 0\">\r\n <p-table\r\n stylelass=\"custom-table\"\r\n #eventControlTable\r\n [value]=\"gridDataResolved\"\r\n [columns]=\"gridColumns\"\r\n dataKey=\"id\"\r\n [lazy]=\"true\"\r\n [scrollable]=\"true\"\r\n [resizableColumns]=\"true\"\r\n [paginator]=\"!standalone\"\r\n [totalRecords]=\"gridTotalRecords\"\r\n [rows]=\"10\"\r\n [responsive]=\"true\"\r\n (onLazyLoad)=\"onGridChange($event)\"\r\n [sortOrder]=\"getSortOrder()\"\r\n [first]=\"getRowIndex()\"\r\n [lazyLoadOnInit]=\"false\"\r\n sortMode=\"multiple\"\r\n [rows]=\"getPageSize()\"\r\n [rowsPerPageOptions]=\"[10, 20, 50, 100]\"\r\n >\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <ng-container *ngIf=\"!standalone\">\r\n <th\r\n *ngFor=\"let col of columns\"\r\n class=\"ui-lg-1 ui-md-1\"\r\n [pSortableColumn]=\"col.field\"\r\n scope=\"col\"\r\n >\r\n <div class=\"senior-header\">\r\n <span class=\"senior-header-title\">{{\r\n col.header\r\n }}</span>\r\n <p-sortIcon [field]=\"col.field\"></p-sortIcon>\r\n </div>\r\n </th>\r\n </ng-container>\r\n <th class=\"ui-lg-8 ui-md-7\" scope=\"col\">\r\n {{ \"agro.angular_components.panel_title_events_events\" | libTranslate }}\r\n </th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData>\r\n <tr>\r\n <ng-container *ngIf=\"!standalone\">\r\n <td class=\"ui-lg-1 ui-md-1\">\r\n {{ rowData.e070emp?.nomEmp }}\r\n </td>\r\n <td class=\"ui-lg-1 ui-md-1\">\r\n {{ rowData.e070fil?.nomFil }}\r\n </td>\r\n <td class=\"ui-lg-1 ui-md-1\">\r\n <ng-container [ngSwitch]=\"rowData.eventOrigin\">\r\n <span *ngSwitchCase=\"'BALANCE_ENTRY_CONTROL'\">\r\n {{\r\n \"agro.angular_components.balance_entry_control_event\"\r\n | libTranslate\r\n }}\r\n </span>\r\n <span *ngSwitchCase=\"'TICKET'\">\r\n {{\r\n \"agro.angular_components.ticket_maintenance_header\"\r\n | libTranslate\r\n }}\r\n </span>\r\n <span *ngSwitchCase=\"'TRANSFER'\">\r\n {{\r\n \"agro.angular_components.transfer_origin_event\"\r\n | libTranslate\r\n }}\r\n </span>\r\n <span *ngSwitchCase=\"'INVOICE'\">\r\n {{\r\n \"agro.angular_components.invoice_creating_event\"\r\n | libTranslate\r\n }}\r\n </span>\r\n <span *ngSwitchCase=\"'CHANGE_REQUEST'\">\r\n {{\r\n \"agro.angular_components.change_request_event\"\r\n | libTranslate\r\n }}\r\n </span>\r\n <span *ngSwitchCase=\"'FIXATION'\">\r\n {{\r\n \"agro.angular_components.fixation_event\"\r\n | libTranslate\r\n }}\r\n </span>\r\n <span *ngSwitchCase=\"'CANCEL_FIXATION'\">\r\n {{\r\n \"agro.angular_components.cancel_fixation_event\"\r\n | libTranslate\r\n }}\r\n </span>\r\n <span *ngSwitchCase=\"'TRANSFER_CANCELLATION'\">\r\n {{\r\n \"agro.angular_components.transfer_cancellation_event\"\r\n | libTranslate\r\n }}\r\n </span>\r\n </ng-container>\r\n </td>\r\n <td class=\"ui-lg-1 ui ui-md-1\">\r\n {{ rowData.controlCode || \"\" }}\r\n </td>\r\n </ng-container>\r\n <td class=\"ui-lg-8 ui-md-7\">\r\n <ng-container *ngFor=\"let group of rowData.groups\">\r\n <s-event-steps\r\n [steps]=\"group.steps || []\"\r\n [activeIndex]=\"group.activeIndex\"\r\n (stepSelected)=\"stepSelected($event)\"\r\n >\r\n </s-event-steps>\r\n </ng-container>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template\r\n *ngIf=\"!standalone\"\r\n pTemplate=\"paginatorright\"\r\n class=\"custom-table\"\r\n >\r\n <span>\r\n {{\r\n \"agro.angular_components.registers_found\"\r\n | libTranslate : { total: gridTotalRecords }\r\n }}\r\n </span>\r\n </ng-template>\r\n </p-table>\r\n </ng-container>\r\n </div>\r\n </p-panel>\r\n </div>\r\n</div>\r\n<s-sidebar [visible]=\"showSidebar\" (visibleChange)=\"closeSidebar()\" header=\"{{ 'agro.angular_components.event_details_header' | libTranslate }}\">\r\n <div class=\"ui-fluid\">\r\n <p-fieldset [legend]=\"sidebarTitle\" [toggleable]=\"false\">\r\n <div class=\"ui-g\">\r\n <div class=\"ui-g-4\">\r\n <span\r\n ><strong>{{\r\n \"agro.angular_components.event_origin_label\" | libTranslate\r\n }}</strong></span\r\n >\r\n <ng-container [ngSwitch]=\"selectedStep?.eventType\">\r\n <p *ngSwitchCase=\"'BALANCE_ENTRY_CONTROL'\">\r\n {{ \"agro.angular_components.balance_entry_control_event\" | libTranslate }}\r\n </p>\r\n <p *ngSwitchCase=\"'TICKET'\">\r\n {{ \"agro.angular_components.ticket_maintenance_header\" | libTranslate }}\r\n </p>\r\n <p *ngSwitchCase=\"'TRANSFER'\">\r\n {{ \"agro.angular_components.transfer_origin_event\" | libTranslate }}\r\n </p>\r\n <p *ngSwitchCase=\"'INVOICE'\">\r\n {{ \"agro.angular_components.invoice_creating_event\" | libTranslate }}\r\n </p>\r\n <p *ngSwitchCase=\"'CHANGE_REQUEST'\">\r\n {{ \"agro.angular_components.change_request_event\" | libTranslate }}\r\n </p>\r\n <p *ngSwitchCase=\"'FIXATION'\">\r\n {{ \"agro.angular_components.fixation_event\" | libTranslate }}\r\n </p>\r\n <p *ngSwitchCase=\"'CANCEL_FIXATION'\">\r\n {{ \"agro.angular_components.cancel_fixation_event\" | libTranslate }}\r\n </p>\r\n </ng-container>\r\n </div>\r\n <div class=\"ui-g-4\" *ngIf=\"producerInvoice?.e001pes.nomPes\">\r\n <span\r\n ><strong>{{ \"agro.angular_components.supplier\" | libTranslate }}</strong></span\r\n >\r\n <p>{{ producerInvoice?.e001pes.nomPes }}</p>\r\n </div>\r\n <div class=\"ui-g-4\" *ngIf=\"producerInvoice?.ruralEstate.name\">\r\n <span\r\n ><strong>{{ \"agro.angular_components.rural_estate\" | libTranslate }}</strong></span\r\n >\r\n <p>{{ producerInvoice?.ruralEstate.name }}</p>\r\n </div>\r\n <div class=\"ui-g-4\" *ngIf=\"selectedStep?.controlCode\">\r\n <span\r\n ><strong>{{ \"agro.angular_components.control_code\" | libTranslate }}</strong></span\r\n >\r\n <p>{{ selectedStep?.controlCode }}</p>\r\n </div>\r\n <div class=\"ui-g-4\">\r\n <span\r\n ><strong>{{ \"agro.angular_components.status_label\" | libTranslate }}</strong></span\r\n >\r\n <ng-container [ngSwitch]=\"selectedStep?.item.status\">\r\n <p *ngSwitchCase=\"'SUCCESS'\">\r\n <s-badge\r\n [color]=\"BadgeColors.Green\"\r\n text=\"{{\r\n 'agro.angular_components.panel_title_events_completed_successfully'\r\n | libTranslate\r\n }}\"\r\n [selectable]=\"false\"\r\n >\r\n </s-badge>\r\n </p>\r\n <p *ngSwitchCase=\"'PROCESSING'\">\r\n <s-badge\r\n [color]=\"BadgeColors.Orange\"\r\n text=\"{{ 'agro.angular_components.processing' | libTranslate }}\"\r\n [selectable]=\"false\"\r\n >\r\n </s-badge>\r\n </p>\r\n <p *ngSwitchCase=\"'FAILED'\">\r\n <s-badge\r\n [color]=\"BadgeColors.Red\"\r\n text=\"{{\r\n 'agro.angular_components.panel_title_events_ended_with_error'\r\n | libTranslate\r\n }}\"\r\n [selectable]=\"false\"\r\n >\r\n </s-badge>\r\n </p>\r\n <p *ngSwitchCase=\"'PENDING'\">\r\n <s-badge\r\n [color]=\"BadgeColors.Gray\"\r\n text=\"{{ 'agro.angular_components.pending' | libTranslate }}\"\r\n [selectable]=\"false\"\r\n >\r\n </s-badge>\r\n </p>\r\n </ng-container>\r\n </div>\r\n <div class=\"ui-g-4\">\r\n <span\r\n ><strong>{{\r\n \"agro.angular_components.last_update_date\" | libTranslate\r\n }}</strong></span\r\n >\r\n <p>{{ selectedStep?.item.lastModifiedDate | date : \"dd/MM/yyyy HH:mm:ss\" }}</p>\r\n </div>\r\n <div class=\"ui-g-4\" *ngIf=\"selectedStep?.item.status === 'FAILED'\">\r\n <span\r\n ><strong>{{\r\n \"agro.angular_components.event_error_message\" | libTranslate\r\n }}</strong></span\r\n >\r\n <p>{{ selectedStep?.item.message || \"-\" }}</p>\r\n </div>\r\n </div>\r\n </p-fieldset>\r\n </div>\r\n <s-footer>\r\n <div class=\"ui-g\">\r\n <div class=\"ui-g-12 width-fit\">\r\n <s-button\r\n id=\"sidebar-close-button\"\r\n [priority]=\"ButtonPriority.Primary\"\r\n [label]=\"'agro.angular_components.events_close' | libTranslate\"\r\n [auxiliary]=\"false\"\r\n (click)=\"closeSidebar()\"\r\n >\r\n </s-button>\r\n <s-button\r\n *ngIf=\"showReprocessButton\"\r\n id=\"sidebar-reprocess-button\"\r\n [priority]=\"ButtonPriority.Secondary\"\r\n iconClass=\"fa fa-refresh\"\r\n [label]=\"'agro.angular_components.reprocess_event' | libTranslate\"\r\n [auxiliary]=\"false\"\r\n (click)=\"openModal()\"\r\n >\r\n </s-button>\r\n </div>\r\n </div>\r\n </s-footer>\r\n</s-sidebar>\r\n\r\n<p-dialog [header]=\"'agro.angular_components.event_modal_title' | libTranslate\" [(visible)]=\"displayModal\" [modal]=\"true\" class=\"dialog\">\r\n <div class=\"event-modal-text\">{{ \"agro.angular_components.event_modal\" | libTranslate }}</div>\r\n <p-footer>\r\n <div class=\"ui-dialog-buttonpane ui-widget-content ui-helper-clearfix\">\r\n <button\r\n id=\"modal-yes\"\r\n type=\"button\"\r\n pButton\r\n icon=\"fa fa-check\"\r\n (click)=\"confirmModal()\"\r\n label=\"{{ 'agro.angular_components.yes' | libTranslate }}\"\r\n class=\"ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only\"\r\n ></button>\r\n <button\r\n id=\"modal-no\"\r\n type=\"button\"\r\n pButton\r\n icon=\"fa fa-close\"\r\n (click)=\"cancelModal()\"\r\n label=\"{{ 'agro.angular_components.no' | libTranslate }}\"\r\n class=\"ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only\"\r\n ></button>\r\n </div>\r\n </p-footer>\r\n</p-dialog>\r\n",
505
+ template: "<div class=\"ui-g\" *sLoadingState=\"gridLoading\">\r\n <div class=\"ui-g-12\">\r\n <p-panel>\r\n <p-header>\r\n {{ \"agro.angular_components.event_control_header\" | libTranslate }}\r\n </p-header>\r\n <div class=\"ui-g\">\r\n <div class=\"ui-g-12\">\r\n <s-button\r\n id=\"refresh-button\"\r\n [priority]=\"ButtonPriority.Primary\"\r\n iconClass=\"fa fa-refresh\"\r\n [label]=\"'agro.angular_components.refresh' | libTranslate\"\r\n (click)=\"onSearch()\"\r\n >\r\n </s-button>\r\n <s-button\r\n *ngIf=\"standalone && showCancelButton\"\r\n id=\"cancel-button-agro-events-lib\"\r\n iconClass=\"fa fa-times\"\r\n [label]=\"'agro.angular_components.cancel' | libTranslate\"\r\n (click)=\"openCancelModal()\"\r\n >\r\n </s-button>\r\n </div>\r\n </div>\r\n <div class=\"ui-g\">\r\n <div class=\"ui-g-12 ui-md-12\" *ngIf=\"!gridData || gridData?.length === 0\">\r\n <s-empty-state\r\n iconClass=\"fa fa-exclamation-triangle\"\r\n title=\"{{ 'agro.angular_components.nothing_found' | libTranslate }}\"\r\n [showPrimaryAction]=\"false\"\r\n description=\"{{ 'agro.angular_components.table_empty_description' | libTranslate }}\"\r\n >\r\n </s-empty-state>\r\n </div>\r\n <ng-container *ngIf=\"gridData?.length > 0\">\r\n <p-table\r\n stylelass=\"custom-table\"\r\n #eventControlTable\r\n [value]=\"gridDataResolved\"\r\n [columns]=\"gridColumns\"\r\n dataKey=\"id\"\r\n [lazy]=\"true\"\r\n [scrollable]=\"true\"\r\n [resizableColumns]=\"true\"\r\n [paginator]=\"!standalone\"\r\n [totalRecords]=\"gridTotalRecords\"\r\n [rows]=\"10\"\r\n [responsive]=\"true\"\r\n (onLazyLoad)=\"onGridChange($event)\"\r\n [sortOrder]=\"getSortOrder()\"\r\n [first]=\"getRowIndex()\"\r\n [lazyLoadOnInit]=\"false\"\r\n sortMode=\"multiple\"\r\n [rows]=\"getPageSize()\"\r\n [rowsPerPageOptions]=\"[10, 20, 50, 100]\"\r\n >\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <ng-container *ngIf=\"!standalone\">\r\n <th\r\n *ngFor=\"let col of columns\"\r\n class=\"ui-lg-1 ui-md-1\"\r\n [pSortableColumn]=\"col.field\"\r\n scope=\"col\"\r\n >\r\n <div class=\"senior-header\">\r\n <span class=\"senior-header-title\">{{\r\n col.header\r\n }}</span>\r\n <p-sortIcon [field]=\"col.field\"></p-sortIcon>\r\n </div>\r\n </th>\r\n </ng-container>\r\n <th class=\"ui-lg-8 ui-md-7\" scope=\"col\">\r\n {{ \"agro.angular_components.panel_title_events_events\" | libTranslate }}\r\n </th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData>\r\n <tr>\r\n <ng-container *ngIf=\"!standalone\">\r\n <td class=\"ui-lg-1 ui-md-1\">\r\n {{ rowData.e070emp?.nomEmp }}\r\n </td>\r\n <td class=\"ui-lg-1 ui-md-1\">\r\n {{ rowData.e070fil?.nomFil }}\r\n </td>\r\n <td class=\"ui-lg-1 ui-md-1\">\r\n <ng-container [ngSwitch]=\"rowData.eventOrigin\">\r\n <span *ngSwitchCase=\"'BALANCE_ENTRY_CONTROL'\">\r\n {{\r\n \"agro.angular_components.balance_entry_control_event\"\r\n | libTranslate\r\n }}\r\n </span>\r\n <span *ngSwitchCase=\"'TICKET'\">\r\n {{\r\n \"agro.angular_components.ticket_maintenance_header\"\r\n | libTranslate\r\n }}\r\n </span>\r\n <span *ngSwitchCase=\"'TRANSFER'\">\r\n {{\r\n \"agro.angular_components.transfer_origin_event\"\r\n | libTranslate\r\n }}\r\n </span>\r\n <span *ngSwitchCase=\"'INVOICE'\">\r\n {{\r\n \"agro.angular_components.invoice_creating_event\"\r\n | libTranslate\r\n }}\r\n </span>\r\n <span *ngSwitchCase=\"'CHANGE_REQUEST'\">\r\n {{\r\n \"agro.angular_components.change_request_event\"\r\n | libTranslate\r\n }}\r\n </span>\r\n <span *ngSwitchCase=\"'FIXATION'\">\r\n {{\r\n \"agro.angular_components.fixation_event\"\r\n | libTranslate\r\n }}\r\n </span>\r\n <span *ngSwitchCase=\"'CANCEL_FIXATION'\">\r\n {{\r\n \"agro.angular_components.cancel_fixation_event\"\r\n | libTranslate\r\n }}\r\n </span>\r\n <span *ngSwitchCase=\"'TRANSFER_CANCELLATION'\">\r\n {{\r\n \"agro.angular_components.transfer_cancellation_event\"\r\n | libTranslate\r\n }}\r\n </span>\r\n </ng-container>\r\n </td>\r\n <td class=\"ui-lg-1 ui ui-md-1\">\r\n {{ rowData.controlCode || \"\" }}\r\n </td>\r\n </ng-container>\r\n <td class=\"ui-lg-8 ui-md-7\">\r\n <ng-container *ngFor=\"let group of rowData.groups\">\r\n <s-event-steps\r\n [steps]=\"group.steps || []\"\r\n [activeIndex]=\"group.activeIndex\"\r\n (stepSelected)=\"stepSelected($event)\"\r\n >\r\n </s-event-steps>\r\n </ng-container>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template\r\n *ngIf=\"!standalone\"\r\n pTemplate=\"paginatorright\"\r\n class=\"custom-table\"\r\n >\r\n <span>\r\n {{\r\n \"agro.angular_components.registers_found\"\r\n | libTranslate : { total: gridTotalRecords }\r\n }}\r\n </span>\r\n </ng-template>\r\n </p-table>\r\n </ng-container>\r\n </div>\r\n </p-panel>\r\n </div>\r\n</div>\r\n<s-sidebar [visible]=\"showSidebar\" (visibleChange)=\"closeSidebar()\" header=\"{{ 'agro.angular_components.event_details_header' | libTranslate }}\">\r\n <div class=\"ui-fluid\">\r\n <p-fieldset [legend]=\"sidebarTitle\" [toggleable]=\"false\">\r\n <div class=\"ui-g\">\r\n <div class=\"ui-g-4\">\r\n <span\r\n ><strong>{{\r\n \"agro.angular_components.event_origin_label\" | libTranslate\r\n }}</strong></span\r\n >\r\n <ng-container [ngSwitch]=\"selectedStep?.eventType\">\r\n <p *ngSwitchCase=\"'BALANCE_ENTRY_CONTROL'\">\r\n {{ \"agro.angular_components.balance_entry_control_event\" | libTranslate }}\r\n </p>\r\n <p *ngSwitchCase=\"'TICKET'\">\r\n {{ \"agro.angular_components.ticket_maintenance_header\" | libTranslate }}\r\n </p>\r\n <p *ngSwitchCase=\"'TRANSFER'\">\r\n {{ \"agro.angular_components.transfer_origin_event\" | libTranslate }}\r\n </p>\r\n <p *ngSwitchCase=\"'INVOICE'\">\r\n {{ \"agro.angular_components.invoice_creating_event\" | libTranslate }}\r\n </p>\r\n <p *ngSwitchCase=\"'CHANGE_REQUEST'\">\r\n {{ \"agro.angular_components.change_request_event\" | libTranslate }}\r\n </p>\r\n <p *ngSwitchCase=\"'FIXATION'\">\r\n {{ \"agro.angular_components.fixation_event\" | libTranslate }}\r\n </p>\r\n <p *ngSwitchCase=\"'CANCEL_FIXATION'\">\r\n {{ \"agro.angular_components.cancel_fixation_event\" | libTranslate }}\r\n </p>\r\n <p *ngSwitchCase=\"'TRANSFER_CANCELLATION'\">\r\n {{ \"agro.angular_components.transfer_cancellation_event\" | libTranslate }}\r\n </p>\r\n </ng-container>\r\n </div>\r\n <div class=\"ui-g-4\" *ngIf=\"producerInvoice?.e001pes.nomPes\">\r\n <span\r\n ><strong>{{ \"agro.angular_components.supplier\" | libTranslate }}</strong></span\r\n >\r\n <p>{{ producerInvoice?.e001pes.nomPes }}</p>\r\n </div>\r\n <div class=\"ui-g-4\" *ngIf=\"producerInvoice?.ruralEstate.name\">\r\n <span\r\n ><strong>{{ \"agro.angular_components.rural_estate\" | libTranslate }}</strong></span\r\n >\r\n <p>{{ producerInvoice?.ruralEstate.name }}</p>\r\n </div>\r\n <div class=\"ui-g-4\" *ngIf=\"selectedStep?.controlCode\">\r\n <span\r\n ><strong>{{ \"agro.angular_components.control_code\" | libTranslate }}</strong></span\r\n >\r\n <p>{{ selectedStep?.controlCode }}</p>\r\n </div>\r\n <div class=\"ui-g-4\">\r\n <span\r\n ><strong>{{ \"agro.angular_components.status_label\" | libTranslate }}</strong></span\r\n >\r\n <ng-container [ngSwitch]=\"selectedStep?.item.status\">\r\n <p *ngSwitchCase=\"'SUCCESS'\">\r\n <s-badge\r\n [color]=\"BadgeColors.Green\"\r\n text=\"{{\r\n 'agro.angular_components.panel_title_events_completed_successfully'\r\n | libTranslate\r\n }}\"\r\n [selectable]=\"false\"\r\n >\r\n </s-badge>\r\n </p>\r\n <p *ngSwitchCase=\"'PROCESSING'\">\r\n <s-badge\r\n [color]=\"BadgeColors.Orange\"\r\n text=\"{{ 'agro.angular_components.processing' | libTranslate }}\"\r\n [selectable]=\"false\"\r\n >\r\n </s-badge>\r\n </p>\r\n <p *ngSwitchCase=\"'FAILED'\">\r\n <s-badge\r\n [color]=\"BadgeColors.Red\"\r\n text=\"{{\r\n 'agro.angular_components.panel_title_events_ended_with_error'\r\n | libTranslate\r\n }}\"\r\n [selectable]=\"false\"\r\n >\r\n </s-badge>\r\n </p>\r\n <p *ngSwitchCase=\"'PENDING'\">\r\n <s-badge\r\n [color]=\"BadgeColors.Gray\"\r\n text=\"{{ 'agro.angular_components.pending' | libTranslate }}\"\r\n [selectable]=\"false\"\r\n >\r\n </s-badge>\r\n </p>\r\n </ng-container>\r\n </div>\r\n <div class=\"ui-g-4\">\r\n <span\r\n ><strong>{{\r\n \"agro.angular_components.last_update_date\" | libTranslate\r\n }}</strong></span\r\n >\r\n <p>{{ selectedStep?.item.lastModifiedDate | date : \"dd/MM/yyyy HH:mm:ss\" }}</p>\r\n </div>\r\n <div class=\"ui-g-4\" *ngIf=\"selectedStep?.item.status === 'FAILED'\">\r\n <span\r\n ><strong>{{\r\n \"agro.angular_components.event_error_message\" | libTranslate\r\n }}</strong></span\r\n >\r\n <p>{{ selectedStep?.item.message || \"-\" }}</p>\r\n </div>\r\n </div>\r\n </p-fieldset>\r\n </div>\r\n <s-footer>\r\n <div class=\"ui-g\">\r\n <div class=\"ui-g-12 width-fit\">\r\n <s-button\r\n id=\"sidebar-close-button\"\r\n [priority]=\"ButtonPriority.Primary\"\r\n [label]=\"'agro.angular_components.events_close' | libTranslate\"\r\n [auxiliary]=\"false\"\r\n (click)=\"closeSidebar()\"\r\n >\r\n </s-button>\r\n <s-button\r\n *ngIf=\"showReprocessButton\"\r\n id=\"sidebar-reprocess-button\"\r\n [priority]=\"ButtonPriority.Secondary\"\r\n iconClass=\"fa fa-refresh\"\r\n [label]=\"'agro.angular_components.reprocess_event' | libTranslate\"\r\n [auxiliary]=\"false\"\r\n (click)=\"openModal()\"\r\n >\r\n </s-button>\r\n </div>\r\n </div>\r\n </s-footer>\r\n</s-sidebar>\r\n\r\n<p-dialog [header]=\"'agro.angular_components.event_modal_title' | libTranslate\" [(visible)]=\"displayModal\" [modal]=\"true\" class=\"dialog\">\r\n <div class=\"event-modal-text\">{{ \"agro.angular_components.event_modal\" | libTranslate }}</div>\r\n <p-footer>\r\n <div class=\"ui-dialog-buttonpane ui-widget-content ui-helper-clearfix\">\r\n <button\r\n id=\"modal-yes\"\r\n type=\"button\"\r\n pButton\r\n icon=\"fa fa-check\"\r\n (click)=\"confirmModal()\"\r\n label=\"{{ 'agro.angular_components.yes' | libTranslate }}\"\r\n class=\"ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only\"\r\n ></button>\r\n <button\r\n id=\"modal-no\"\r\n type=\"button\"\r\n pButton\r\n icon=\"fa fa-close\"\r\n (click)=\"cancelModal()\"\r\n label=\"{{ 'agro.angular_components.no' | libTranslate }}\"\r\n class=\"ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only\"\r\n ></button>\r\n </div>\r\n </p-footer>\r\n</p-dialog>\r\n",
503
506
  providers: [
504
507
  { provide: LOCALE_ID, useValue: 'pt-BR' }
505
508
  ],
@@ -507,4 +510,4 @@ EventControlBoardComponent = __decorate([
507
510
  })
508
511
  ], EventControlBoardComponent);
509
512
  export { EventControlBoardComponent };
510
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtY29udHJvbC1ib2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZXZlbnQtY29udHJvbC1ib2FyZC9ldmVudC1jb250cm9sLWJvYXJkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxRQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBZ0MsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFRLFNBQVMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hILE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFNUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztB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LFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFO1NBQzVDOztLQUNKLENBQUM7R0FDVywwQkFBMEIsQ0EyZnRDO1NBM2ZZLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlZ2lzdGVyTG9jYWxlRGF0YSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IGxvY2FsZVB0IGZyb20gXCJAYW5ndWxhci9jb21tb24vbG9jYWxlcy9wdFwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIExPQ0FMRV9JRCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgQmFkZ2VDb2xvcnMsIEJ1dHRvblByaW9yaXR5LCBGaWVsZFR5cGUsIEZvcm1GaWVsZCwgU3RlcCwgU3RlcFN0YXRlIH0gZnJvbSBcIkBzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHNcIjtcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSwgTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwicHJpbWVuZ1wiO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IEFHUk9fTlVNQkVSUyB9IGZyb20gXCIuLi8uLi9lbnVtcy9hZ3JvLW51bWJlcnMuZW51bVwiO1xyXG5pbXBvcnQgeyBMaWJUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvbGliLXRyYW5zbGF0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgV2Vic29ja2V0U2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy93ZWJzb2NrZXRcIjtcclxuaW1wb3J0IHsgQ2FuY2VsRXZlbnREaWFsb2dDb25maWcgfSBmcm9tIFwiLi4vY2FuY2VsLWV2ZW50LWRpYWxvZy9jYW5jZWwtZXZlbnQtZGlhbG9nLWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBDYW5jZWxFdmVudERpYWxvZ0NvbXBvbmVudCB9IGZyb20gXCIuLi9jYW5jZWwtZXZlbnQtZGlhbG9nL2NhbmNlbC1ldmVudC1kaWFsb2cuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IGV2ZW50SXRlbSwgaW5wdXRGaWVsZHNQYXRoIH0gZnJvbSBcIi4vY29tbW9uL2V2ZW50LWNvbnRyb2wtY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IEV2ZW50T3JpZ2luIH0gZnJvbSBcIi4vY29tbW9uL2V2ZW50LW9yaWdpblwiO1xyXG5pbXBvcnQgeyBFdmVudFN0YXR1cyB9IGZyb20gXCIuL2NvbW1vbi9ldmVudC1zdGF0dXNcIjtcclxuaW1wb3J0IHsgSW5wdXRGaWVsZHMgfSBmcm9tIFwiLi9jb21tb24vaW5wdXQtZmllbGRzXCI7XHJcbmltcG9ydCB7IGludm9pY2VUeXBlVHJhbnNsYXRlIH0gZnJvbSBcIi4vY29tbW9uL2lucHV0LWZpZWxkcy10cmFuc2xhdGVcIjtcclxuaW1wb3J0IHsgTG9va3VwRXJyb3JNZXNzYWdlcyB9IGZyb20gXCIuL2NvbW1vbi9sb29rdXAtZXJyb3ItbWVzc2FnZS5jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgRTA3MEVtcCB9IGZyb20gXCIuL3NlcnZpY2UvZTA3MGVtcC9lMDcwZW1wXCI7XHJcbmltcG9ydCB7IEUwNzBGaWwgfSBmcm9tIFwiLi9zZXJ2aWNlL2UwNzBmaWwvZTA3MGZpbFwiO1xyXG5pbXBvcnQgeyBFdmVudENvbnRyb2xCb2FyZFNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlL2V2ZW50LWNvbnRyb2wtYm9hcmQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBFdmVudENvbnRyb2xJdGVtIH0gZnJvbSBcIi4vc2VydmljZS9ldmVudC1jb250cm9sLWl0ZW0vZXZlbnQtY29udHJvbC1pdGVtXCI7XHJcbmltcG9ydCB7IFJlcHJvY2Vzc0ZhaWxlZEV2ZW50IH0gZnJvbSBcIi4vc2VydmljZS9ldmVudC1jb250cm9sLWl0ZW0vZXZlbnQtY29udHJvbC1pdGVtLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRXZlbnRDb250cm9sIH0gZnJvbSBcIi4vc2VydmljZS9ldmVudC1jb250cm9sL2V2ZW50LWNvbnRyb2xcIjtcclxuaW1wb3J0IHsgTGlzdEV2ZW50Q29udHJvbFdpdGhGaWx0ZXJzSW5wdXREdG8gfSBmcm9tIFwiLi9zZXJ2aWNlL2V2ZW50LWNvbnRyb2wvZXZlbnQtY29udHJvbC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFBhZ2luYXRvclN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZS9wYWdpbmF0b3Itc3RvcmFnZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFByb2R1Y2VySW52b2ljZUR0byB9IGZyb20gXCIuL3NlcnZpY2UvcHJvZHVjZXItaW52b2ljZS9wcm9kdWNlci1pbnZvaWNlLWR0b1wiO1xyXG5jb25zdCBtb21lbnQgPSByZXF1aXJlKFwibW9tZW50XCIpO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2V2ZW50LWNvbnRyb2wtYm9hcmQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V2ZW50LWNvbnRyb2wtYm9hcmQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vZXZlbnQtY29udHJvbC1ib2FyZC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgeyBwcm92aWRlOiBMT0NBTEVfSUQsIHVzZVZhbHVlOiAncHQtQlInIH1cclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEV2ZW50Q29udHJvbEJvYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XHJcblxyXG4gICAgQElucHV0KCkgZTA3MGVtcCE6IEUwNzBFbXA7XHJcbiAgICBASW5wdXQoKSBlMDcwZmlsITogRTA3MEZpbDtcclxuICAgIEBJbnB1dCgpIGNvbnRyb2xDb2RlITogc3RyaW5nW107XHJcbiAgICBASW5wdXQoKSBldmVudE9yaWdpbiE6IEV2ZW50T3JpZ2luO1xyXG4gICAgQElucHV0KCkgZXZlbnRTdGF0dXMhOiBFdmVudFN0YXR1cztcclxuICAgIEBJbnB1dCgpIGV4dGVybmFsSWQhOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBjcmVhdGVkRGF0ZSE6IERhdGU7XHJcbiAgICBASW5wdXQoKSBzdGFuZGFsb25lITogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIHNob3dDYW5jZWxCdXR0b24hOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgY2FuY2VsRXZlbnREaWFsb2dDb25maWchOiBDYW5jZWxFdmVudERpYWxvZ0NvbmZpZztcclxuICAgIEBPdXRwdXQoKSBwcm9jZXNzZWRFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxyXG5cclxuICAgIHB1YmxpYyBwcm9kdWNlckludm9pY2UhOiBQcm9kdWNlckludm9pY2VEdG87XHJcblxyXG4gICAgcHVibGljIHN0ZXBzOiBTdGVwW10gPSBbXTtcclxuICAgIHB1YmxpYyBzZWxlY3RlZFN0ZXA6IGFueTtcclxuICAgIHB1YmxpYyBldmVudElkITogJyc7XHJcbiAgICBwdWJsaWMgc2hvd1NpZGViYXIgPSBmYWxzZTtcclxuICAgIHB1YmxpYyBzaG93UmVwcm9jZXNzQnV0dG9uID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgc2lkZWJhclRpdGxlITogc3RyaW5nO1xyXG4gICAgcHVibGljIHNpZGViYXJMb2FkaW5nITogYm9vbGVhbjtcclxuXHJcbiAgICBwdWJsaWMgZmlsdGVyRm9ybUdyb3VwITogRm9ybUdyb3VwO1xyXG4gICAgcHVibGljIGZpbHRlckZpZWxkcyE6IEZvcm1GaWVsZFtdO1xyXG5cclxuICAgIHB1YmxpYyBncmlkRGF0YSE6IGFueVtdO1xyXG4gICAgcHVibGljIGdyaWREYXRhUmVzb2x2ZWQhOiBhbnlbXTtcclxuICAgIHB1YmxpYyBncmlkQ29sdW1ucyE6IGFueVtdO1xyXG4gICAgcHVibGljIGdyaWRUb3RhbFJlY29yZHMgPSBBR1JPX05VTUJFUlMuWkVSTztcclxuICAgIHB1YmxpYyBncmlkTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgcHVibGljIGRpc3BsYXlNb2RhbCA9IGZhbHNlO1xyXG5cclxuICAgIHB1YmxpYyBCdXR0b25Qcmlvcml0eSA9IEJ1dHRvblByaW9yaXR5O1xyXG4gICAgcHVibGljIEJhZGdlQ29sb3JzID0gQmFkZ2VDb2xvcnM7XHJcblxyXG4gICAgcHVibGljIHBlcm1pc3Npb25zOiBhbnkgPSB7fTtcclxuICAgIHB1YmxpYyBsb2NhbGVDb25maWc6IGFueSA9IHt9O1xyXG5cclxuICAgIHB1YmxpYyBjdXJyZW50TGlzdFBhcmFtczogYW55ID0geyBwYWdlOiBBR1JPX05VTUJFUlMuWkVSTywgc2l6ZTogQUdST19OVU1CRVJTLlRFTiwgc29ydDogW10sIGZpbHRlckRhdGE6IHt9IH07XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRJdGVtID0gZXZlbnRJdGVtO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbnB1dEZpZWxkc1BhdGggPSBpbnB1dEZpZWxkc1BhdGg7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGludm9pY2VUeXBlVHJhbnNsYXRlID0gaW52b2ljZVR5cGVUcmFuc2xhdGU7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IExpYlRyYW5zbGF0aW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHdlYnNvY2tldFNlcnZpY2U6IFdlYnNvY2tldFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBldmVudENvbnRyb2xCb2FyZFNlcnZpY2U6IEV2ZW50Q29udHJvbEJvYXJkU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2luYXRvclN0b3JhZ2VTZXJ2aWNlOiBQYWdpbmF0b3JTdG9yYWdlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICApIHtcclxuICAgICAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlUHQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmdyaWRDb2x1bW5zID0gdGhpcy5zZXRHcmlkQ29sdW1ucygpO1xyXG4gICAgICAgIHRoaXMuY2FsbFdlYnNvY2tldCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmZpbHRlckZvcm1Hcm91cCkge1xyXG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVGb3JtR3JvdXAoKTtcclxuICAgICAgICAgICAgdGhpcy5zZXRGb3JtRmllbGRzKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnVwZGF0ZUNvbXBhbnlBbmRCcmFuY2hGb3JtRmllbGRzKGNoYW5nZXMpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRXZlbnRPcmlnaW5BbmRDb250cm9sQ29kZUZvcm1GaWVsZHMoY2hhbmdlcyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVFdmVudFN0YXR1c0FuZENyZWF0ZWREYXRlRm9ybUZpZWxkcyhjaGFuZ2VzKTtcclxuICAgICAgICB0aGlzLm9uU2VhcmNoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGVDb21wYW55QW5kQnJhbmNoRm9ybUZpZWxkcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgaWYgKGNoYW5nZXMuZTA3MGVtcCAmJiBjaGFuZ2VzLmUwNzBlbXAuY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmUwNzBlbXAucHJldmlvdXNWYWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXQoJ2UwNzBlbXAnKT8uc2V0VmFsdWUoY2hhbmdlcy5lMDcwZW1wLmN1cnJlbnRWYWx1ZSA/PyBudWxsKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjaGFuZ2VzLmUwNzBmaWwgJiYgY2hhbmdlcy5lMDcwZmlsLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5lMDcwZmlsLnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KCdlMDcwZmlsJyk/LnNldFZhbHVlKGNoYW5nZXMuZTA3MGZpbC5jdXJyZW50VmFsdWUgPz8gbnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBkYXRlRXZlbnRPcmlnaW5BbmRDb250cm9sQ29kZUZvcm1GaWVsZHMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmIChjaGFuZ2VzLmV2ZW50T3JpZ2luICYmIGNoYW5nZXMuZXZlbnRPcmlnaW4uY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmV2ZW50T3JpZ2luLnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KCdldmVudE9yaWdpbicpPy5zZXRWYWx1ZShjaGFuZ2VzLmV2ZW50T3JpZ2luLmN1cnJlbnRWYWx1ZSA/PyBudWxsKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjaGFuZ2VzLmNvbnRyb2xDb2RlICYmIGNoYW5nZXMuY29udHJvbENvZGUuY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmNvbnRyb2xDb2RlLnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KCdjb250cm9sQ29kZScpPy5zZXRWYWx1ZShjaGFuZ2VzLmNvbnRyb2xDb2RlLmN1cnJlbnRWYWx1ZSA/PyBudWxsKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGVFdmVudFN0YXR1c0FuZENyZWF0ZWREYXRlRm9ybUZpZWxkcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgaWYgKGNoYW5nZXMuZXZlbnRTdGF0dXMgJiYgY2hhbmdlcy5ldmVudFN0YXR1cy5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuZXZlbnRTdGF0dXMucHJldmlvdXNWYWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXQoJ3N0YXR1cycpPy5zZXRWYWx1ZShjaGFuZ2VzLmV2ZW50U3RhdHVzLmN1cnJlbnRWYWx1ZSA/PyBudWxsKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjaGFuZ2VzLmNyZWF0ZWREYXRlICYmIGNoYW5nZXMuY3JlYXRlZERhdGUuY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmNyZWF0ZWREYXRlLnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KCdjcmVhdGVkRGF0ZScpPy5zZXRWYWx1ZShjaGFuZ2VzLmNyZWF0ZWREYXRlLmN1cnJlbnRWYWx1ZSA/PyBudWxsKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplRm9ybUdyb3VwKCkge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgICAgICAgIGUwNzBlbXA6IFt7IHZhbHVlOiB0aGlzLmUwNzBlbXAgPz8gbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFZhbGlkYXRvcnMuY29tcG9zZShbXSldLFxyXG4gICAgICAgICAgICBlMDcwZmlsOiBbeyB2YWx1ZTogdGhpcy5lMDcwZmlsID8/IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LCBWYWxpZGF0b3JzLmNvbXBvc2UoW10pXSxcclxuICAgICAgICAgICAgY29udHJvbENvZGU6IFt7IHZhbHVlOiB0aGlzLmNvbnRyb2xDb2RlID8/IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LCBWYWxpZGF0b3JzLmNvbXBvc2UoW10pXSxcclxuICAgICAgICAgICAgZXh0ZXJuYWxJZDogW3sgdmFsdWU6IHRoaXMuZXh0ZXJuYWxJZCA/PyBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSwgVmFsaWRhdG9ycy5jb21wb3NlKFtdKV0sXHJcbiAgICAgICAgICAgIGV2ZW50T3JpZ2luOiBbeyB2YWx1ZTogdGhpcy5ldmVudE9yaWdpbiA/PyBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSwgVmFsaWRhdG9ycy5jb21wb3NlKFtdKV0sXHJcbiAgICAgICAgICAgIHN0YXR1czogW3sgdmFsdWU6IHRoaXMuZXZlbnRTdGF0dXMgPz8gbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFZhbGlkYXRvcnMuY29tcG9zZShbXSldLFxyXG4gICAgICAgICAgICBjcmVhdGVkRGF0ZTogW3sgdmFsdWU6IHRoaXMuY3JlYXRlZERhdGUgPz8gbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFZhbGlkYXRvcnMuY29tcG9zZShbXSldLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0Rm9ybUZpZWxkcygpIHtcclxuICAgICAgICB0aGlzLmZpbHRlckZpZWxkcyA9IFtcclxuICAgICAgICAgICAgbmV3IEZvcm1GaWVsZCh7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcImUwNzBlbXBcIixcclxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5DaGlwcyxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBGb3JtRmllbGQoe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJlMDcwZmlsXCIsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuQ2hpcHMsXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgRm9ybUZpZWxkKHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiY29udHJvbENvZGVcIixcclxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5DaGlwcyxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBGb3JtRmllbGQoe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJleHRlcm5hbElkXCIsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuU3RyaW5nLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IEZvcm1GaWVsZCh7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcImV2ZW50T3JpZ2luXCIsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuRW51bSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBGb3JtRmllbGQoe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJzdGF0dXNcIixcclxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5FbnVtLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IEZvcm1GaWVsZCh7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcImNyZWF0ZWREYXRlXCIsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuRGF0ZSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldEdyaWRDb2x1bW5zKCkge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgIHsgZmllbGQ6ICdlMDcwZW1wJywgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuY29tcGFueVwiKSB9LFxyXG4gICAgICAgICAgICB7IGZpZWxkOiAnZTA3MGZpbCcsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmxhYmVsX2JyYW5jaFwiKSB9LFxyXG4gICAgICAgICAgICB7IGZpZWxkOiAnZXZlbnRPcmlnaW4nLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5ldmVudF9vcmlnaW5fbGFiZWxcIikgfSxcclxuICAgICAgICAgICAgeyBmaWVsZDogJ2NvbnRyb2xDb2RlJywgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuY29udHJvbF9jb2RlXCIpIH0sXHJcbiAgICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcclxuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcclxuICAgICAgICB0aGlzLndlYnNvY2tldFNlcnZpY2UuZGlzY29ubmVjdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjYWxsV2Vic29ja2V0KCkge1xyXG4gICAgICAgIHRoaXMud2Vic29ja2V0U2VydmljZVxyXG4gICAgICAgICAgICAub25FdmVudDxhbnk+KHtcclxuICAgICAgICAgICAgICAgIGRvbWFpbjogJ2Fncm8nLFxyXG4gICAgICAgICAgICAgICAgc2VydmljZTogJ2Fncm9fZXZlbnRzJyxcclxuICAgICAgICAgICAgICAgIHByaW1pdGl2ZTogXCJwcm9jZXNzZWRFdmVudFwiLFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgobWVzc2FnZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZXh0ZXJuYWxJZCA9IG1lc3NhZ2U/LmRhdGE/LmV4dGVybmFsSWQ7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJEYXRhID0gdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0UmF3VmFsdWUoKTtcclxuICAgICAgICAgICAgICAgIGlmICghZXh0ZXJuYWxJZCB8fCB0aGlzLmdyaWREYXRhPy5zb21lKChpdGVtOiBhbnkpID0+IGl0ZW0uZXh0ZXJuYWxJZCA9PT0gZXh0ZXJuYWxJZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUdyaWQoeyBmaWx0ZXJEYXRhIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc2VkRXZlbnQuZW1pdChtZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMud2Vic29ja2V0U2VydmljZVxyXG4gICAgICAgICAgICAub25FdmVudDxhbnk+KHtcclxuICAgICAgICAgICAgICAgIGRvbWFpbjogJ3BsYXRmb3JtJyxcclxuICAgICAgICAgICAgICAgIHNlcnZpY2U6ICdub3RpZmljYXRpb25zJyxcclxuICAgICAgICAgICAgICAgIHByaW1pdGl2ZTogXCJ1c2VyTm90aWZpZWRcIixcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyRGF0YSA9IHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUdyaWQoeyBmaWx0ZXJEYXRhIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25TZWFyY2goKSB7XHJcbiAgICAgICAgY29uc3QgZmlsdGVyRGF0YSA9IHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XHJcbiAgICAgICAgdGhpcy5ncmlkTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5yZXNldEdyaWQoeyBmaWx0ZXJEYXRhIH0pO1xyXG4gICAgICAgIHRoaXMudXBkYXRlR3JpZCh7IGZpbHRlckRhdGEgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlc2V0R3JpZChsaXN0UGFyYW1zPzogYW55KSB7XHJcbiAgICAgICAgaWYgKGxpc3RQYXJhbXMpIHtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlzdFBhcmFtcyA9IHsgLi4udGhpcy5jdXJyZW50TGlzdFBhcmFtcywgLi4ubGlzdFBhcmFtcyB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnBhZ2UgPSBBR1JPX05VTUJFUlMuWkVSTztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZUdyaWQobGlzdFBhcmFtczogYW55ID0ge30pIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zID0geyAuLi50aGlzLmN1cnJlbnRMaXN0UGFyYW1zLCAuLi5saXN0UGFyYW1zIH07XHJcbiAgICAgICAgY29uc3QgeyBwYWdlLCBzaXplIH0gPSB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zO1xyXG4gICAgICAgIGNvbnN0IG9yZGVyID0gdGhpcy5nZXRTb3J0ZWRGaWVsZHMoKTtcclxuICAgICAgICBjb25zdCBpbnB1dCA9IHsgLi4udGhpcy5nZXRJbnB1dCgpLCBwYWdlLCBzaXplLCBvcmRlciB9O1xyXG5cclxuICAgICAgICB0aGlzLmV2ZW50Q29udHJvbEJvYXJkU2VydmljZS5ldmVudENvbnRyb2xTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5nZXRMaXN0RXZlbnRDb250cm9sV2l0aEZpbHRlcnMoaW5wdXQpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JpZExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChsaXN0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZERhdGEgPSBsaXN0LmNvbnRlbnRzO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkVG90YWxSZWNvcmRzID0gbGlzdC50b3RhbEVsZW1lbnRzO1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmdyaWREYXRhIHx8IHRoaXMuZ3JpZERhdGEubGVuZ3RoIDw9IEFHUk9fTlVNQkVSUy5aRVJPKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncmlkTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc0V2ZW50Q29udHJvbEl0ZW1zKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcHJvY2Vzc0V2ZW50Q29udHJvbEl0ZW1zKCkge1xyXG4gICAgICAgIHRoaXMuZ3JpZERhdGEuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc29ydGVkSXRlbXMgPSBpdGVtLmV2ZW50Q29udHJvbEl0ZW0uc29ydCgoYTogRXZlbnRDb250cm9sSXRlbSwgYjogRXZlbnRDb250cm9sSXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGEuc2VxdWVuY2UgLSBiLnNlcXVlbmNlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY29uc3Qgc3RlcHMgPSBzb3J0ZWRJdGVtcy5tYXAoKGRldGFpbDogRXZlbnRDb250cm9sSXRlbSwgaW5kZXg6IG51bWJlcikgPT4gdGhpcy5jcmVhdGVTdGVwKGRldGFpbCwgaXRlbSwgaW5kZXgpKTtcclxuICAgICAgICAgICAgY29uc3QgYWN0aXZlSW5kZXggPSB0aGlzLmNhbGN1bGF0ZUFjdGl2ZUluZGV4KHNvcnRlZEl0ZW1zKTtcclxuICAgICAgICAgICAgaXRlbS5ncm91cHMgPSBbeyBzdGVwcywgYWN0aXZlSW5kZXggfV07XHJcbiAgICAgICAgICAgIGl0ZW0uYWN0aXZlSW5kZXggPSBhY3RpdmVJbmRleDtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmdyaWREYXRhUmVzb2x2ZWQgPSB0aGlzLmdyaWREYXRhO1xyXG4gICAgICAgIHRoaXMuZ3JpZExvYWRpbmcgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNhbGN1bGF0ZUFjdGl2ZUluZGV4KGRldGFpbHM6IEV2ZW50Q29udHJvbEl0ZW1bXSk6IG51bWJlciB7XHJcbiAgICAgICAgY29uc3QgbGFzdEFjdGl2ZSA9IGRldGFpbHMucmVkdWNlKChsYXN0SW5kZXgsIGRldGFpbCwgY3VycmVudEluZGV4KSA9PlxyXG4gICAgICAgICAgICBkZXRhaWwuc3RhdHVzICE9PSBFdmVudFN0YXR1cy5QRU5ESU5HID8gY3VycmVudEluZGV4IDogbGFzdEluZGV4LCAtMSk7XHJcbiAgICAgICAgaWYgKGxhc3RBY3RpdmUgIT09IC0xICYmIGRldGFpbHNbbGFzdEFjdGl2ZV0uc3RhdHVzID09PSBFdmVudFN0YXR1cy5TVUNDRVNTKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBsYXN0QWN0aXZlICsgMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGxhc3RBY3RpdmU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjcmVhdGVTdGVwKGRldGFpbDogRXZlbnRDb250cm9sSXRlbSwgaXRlbTogRXZlbnRDb250cm9sLCBkZXRhaWxJbmRleDogbnVtYmVyKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaXRlbTogZGV0YWlsLFxyXG4gICAgICAgICAgICBjb250cm9sQ29kZTogaXRlbS5jb250cm9sQ29kZSxcclxuICAgICAgICAgICAgZXZlbnRUeXBlOiBpdGVtLmV2ZW50T3JpZ2luLFxyXG4gICAgICAgICAgICBsYWJlbDogdGhpcy5nZXRFdmVudExhYmVsKGRldGFpbCksXHJcbiAgICAgICAgICAgIHN1YkxhYmVsOiB0aGlzLmdldEV2ZW50U3ViTGFiZWwoZGV0YWlsKSxcclxuICAgICAgICAgICAgZGlzYWJsZWQ6IGRldGFpbC5zdGF0dXMgPT09IEV2ZW50U3RhdHVzLlBFTkRJTkcgJiYgZGV0YWlsSW5kZXggIT09IHRoaXMuY2FsY3VsYXRlQWN0aXZlSW5kZXgoaXRlbS5ldmVudENvbnRyb2xJdGVtKSxcclxuICAgICAgICAgICAgdG9vbHRpcDogdGhpcy5nZXRFdmVudExhYmVsKGRldGFpbCksXHJcbiAgICAgICAgICAgIHN0YXRlOiB0aGlzLmRldGVybWluZVN0ZXBTdGF0ZShkZXRhaWwpXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGRldGVybWluZVN0ZXBTdGF0ZShkZXRhaWw6IHsgc3RhdHVzOiBFdmVudFN0YXR1cyB9KTogU3RlcFN0YXRlIHtcclxuICAgICAgICBpZiAoZGV0YWlsLnN0YXR1cyA9PT0gRXZlbnRTdGF0dXMuU1VDQ0VTUykge1xyXG4gICAgICAgICAgICByZXR1cm4gU3RlcFN0YXRlLlN1Y2Nlc3M7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChkZXRhaWwuc3RhdHVzID09PSBFdmVudFN0YXR1cy5GQUlMRUQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFN0ZXBTdGF0ZS5XYXJuaW5nO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gU3RlcFN0YXRlLkRlZmF1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRFdmVudExhYmVsKGRldGFpbDogYW55KTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBldmVudExhYmVsID0gdGhpcy5ldmVudEl0ZW0uZmluZChlID0+IGUudmFsdWUgPT09IGRldGFpbC5ldmVudE9wZXJhdGlvbik/LmxhYmVsO1xyXG4gICAgICAgIHJldHVybiBldmVudExhYmVsID8gdGhpcy50cmFuc2xhdGUuaW5zdGFudChldmVudExhYmVsKSA6IGRldGFpbC5ldmVudE9wZXJhdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEV2ZW50U3ViTGFiZWwoZGV0YWlsOiBFdmVudENvbnRyb2xJdGVtKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICAgICAgY29uc3QgZmllbGQgPSB0aGlzLmV2ZW50SXRlbS5maW5kKGUgPT4gZS52YWx1ZSA9PT0gZGV0YWlsLmV2ZW50T3BlcmF0aW9uKT8uc3ViTGFiZWxGaWVsZDtcclxuICAgICAgICBpZiAoIWZpZWxkIHx8ICFkZXRhaWwuaW5wdXQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBwYXRoID0gdGhpcy5pbnB1dEZpZWxkc1BhdGguZmluZChmID0+IGYuZmllbGQgPT09IGZpZWxkKT8ucGF0aDtcclxuICAgICAgICB2YXIgZnVsbFBhdGggPSBwYXRoID8gYCR7cGF0aH0uJHtmaWVsZH1gIDogZmllbGQ7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlRmllbGRKc29uRnJvbVBhdGgoZGV0YWlsLmlucHV0LCBmdWxsUGF0aCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0RmllbGRWYWx1ZShmaWVsZCwgdmFsdWUpXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRWYWx1ZUZpZWxkSnNvbkZyb21QYXRoKGpzb246IHN0cmluZywgcGF0aDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCBwYXJzZWRKc29uID0gSlNPTi5wYXJzZShqc29uKTtcclxuICAgICAgICAgICAgY29uc3Qga2V5cyA9IHBhdGguc3BsaXQoJy4nKTtcclxuICAgICAgICAgICAgcmV0dXJuIGtleXMucmVkdWNlKChhY2MsIGtleSkgPT4gYWNjICYmIGFjY1trZXldLCBwYXJzZWRKc29uKTtcclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvIGFvIGFjZXNzYXIgbyBvYmpldG8gcGVsbyBwYXRoOiAnICsgcGF0aCwgZXJyb3IpO1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBmb3JtYXRGaWVsZFZhbHVlKGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICBzd2l0Y2ggKGZpZWxkKSB7XHJcbiAgICAgICAgICAgIGNhc2UgSW5wdXRGaWVsZHMuQUdST19JTlZPSUNFX1RZUEU6XHJcbiAgICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IHRoaXMuaW52b2ljZVR5cGVUcmFuc2xhdGUuZmluZChlID0+IGUudmFsdWUgPT09IHZhbHVlKT8ubGFiZWw7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbGFiZWwgPyB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGxhYmVsKSA6IHZhbHVlXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0U29ydGVkRmllbGRzKCk6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IG9yZGVyID0gJyc7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudExpc3RQYXJhbXMuc29ydD8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBvcmRlciA9IHRoaXMuY3VycmVudExpc3RQYXJhbXMuc29ydC5tYXAoKHNvcnRJdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBgJHt0aGlzLmdldEZpZWxkTmFtZUZvclNvcnRSZXF1ZXN0KHNvcnRJdGVtLmZpZWxkKX0gJHtzb3J0SXRlbS5vcmRlciA9PT0gQUdST19OVU1CRVJTLk9ORSA/ICdhc2MnIDogJ2Rlc2MnfWA7XHJcbiAgICAgICAgICAgIH0pLmpvaW4oJywgJyk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnN0YW5kYWxvbmUpIHtcclxuICAgICAgICAgICAgb3JkZXIgPSAnY3JlYXRlZERhdGUgYXNjJztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBvcmRlciA9ICdsYXN0TW9kaWZpZWREYXRlIGRlc2MnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gb3JkZXI7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRJbnB1dCgpOiBMaXN0RXZlbnRDb250cm9sV2l0aEZpbHRlcnNJbnB1dER0byB7XHJcbiAgICAgICAgY29uc3QgeyBmaWx0ZXJEYXRhIH0gPSB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zO1xyXG4gICAgICAgIGNvbnN0IGNvbnRyb2xDb2RlID0gZmlsdGVyRGF0YVsnY29udHJvbENvZGUnXSAmJiBBcnJheS5pc0FycmF5KGZpbHRlckRhdGFbJ2NvbnRyb2xDb2RlJ10pID8gZmlsdGVyRGF0YVsnY29udHJvbENvZGUnXSA6IG51bGw7XHJcbiAgICAgICAgY29uc3QgZmlsdGVyID0ge1xyXG4gICAgICAgICAgICBjb21wYW55SWQ6IGZpbHRlckRhdGFbJ2UwNzBlbXAnXT8uaWQgPz8gbnVsbCxcclxuICAgICAgICAgICAgYnJhbmNoSWQ6IGZpbHRlckRhdGFbJ2UwNzBmaWwnXT8uaWQgPz8gbnVsbCxcclxuICAgICAgICAgICAgY29udHJvbENvZGU6IGNvbnRyb2xDb2RlID8gY29udHJvbENvZGUubWFwKChjb2RlOiBzdHJpbmcpID0+IHBhcnNlSW50KGNvZGUpKSA6IG51bGwsXHJcbiAgICAgICAgICAgIGV4dGVybmFsSWQ6IGZpbHRlckRhdGFbJ2V4dGVybmFsSWQnXSA/PyBudWxsLFxyXG4gICAgICAgICAgICBldmVudE9yaWdpbjogZmlsdGVyRGF0YVsnZXZlbnRPcmlnaW4nXSA/PyBudWxsLFxyXG4gICAgICAgICAgICBldmVudFN0YXR1czogZmlsdGVyRGF0YVsnc3RhdHVzJ10gPz8gbnVsbCxcclxuICAgICAgICAgICAgY3JlYXRlZERhdGVTdGFydDogZmlsdGVyRGF0YVsnY3JlYXRlZERhdGUnXSA/IHRoaXMuZ2V0U3RhcnREYXRlKGZpbHRlckRhdGFbJ2NyZWF0ZWREYXRlJ10pIDogbnVsbCxcclxuICAgICAgICAgICAgY3JlYXRlZERhdGVFbmQ6IGZpbHRlckRhdGFbJ2NyZWF0ZWREYXRlJ10gPyB0aGlzLmdldEVuZERhdGUoZmlsdGVyRGF0YVsnY3JlYXRlZERhdGUnXSkgOiBudWxsLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIGZpbHRlcjtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEZpZWxkTmFtZUZvclNvcnRSZXF1ZXN0KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgc3dpdGNoIChuYW1lKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ2UwNzBlbXAnOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuICdlMDcwZW1wLm5vbUVtcCc7XHJcbiAgICAgICAgICAgIGNhc2UgJ2UwNzBmaWwnOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuICdlMDcwZmlsLm5vbUZpbCc7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbmFtZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRFbmREYXRlKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGVuZERhdGUgPSBtb21lbnQodmFsdWUpLmVuZE9mKCdkYXknKS5mb3JtYXQoXCJZWVlZLU1NLUREVEhIOm1tOnNzXCIpICsgJ1onO1xyXG4gICAgICAgIHJldHVybiBlbmREYXRlO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBnZXRTdGFydERhdGUodmFsdWU6IGFueSk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3Qgc3RhcnREYXRlID0gbW9tZW50KHZhbHVlKS5zdGFydE9mKCdkYXknKS5mb3JtYXQoXCJZWVlZLU1NLUREVEhIOm1tOnNzXCIpICsgJ1onO1xyXG4gICAgICAgIHJldHVybiBzdGFydERhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uR3JpZENoYW5nZShldmVudDogYW55KSB7XHJcbiAgICAgICAgY29uc3Qgc2l6ZSA9IGV2ZW50Py5yb3dzO1xyXG4gICAgICAgIGNvbnN0IHBhZ2UgPSBldmVudD8uZmlyc3QgLyBzaXplO1xyXG4gICAgICAgIGNvbnN0IHNvcnQgPSBldmVudC5tdWx0aVNvcnRNZXRhO1xyXG4gICAgICAgIHRoaXMuZ3JpZExvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgIGlmIChzaXplICE9PSBBR1JPX05VTUJFUlMuVEVOIHx8IHBhZ2UgIT09IEFHUk9fTlVNQkVSUy5aRVJPIHx8IChzb3J0ICYmIHNvcnQubGVuZ3RoID4gQUdST19OVU1CRVJTLlpFUk8pKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdG9yU3RvcmFnZVNlcnZpY2Uuc3RvcmVQYWdpbmF0b3IoJ0V2ZW50Q29udHJvbEJvYXJkUGFnaW5hdG9yJywgeyBwYWdlLCBzaXplLCBzb3J0IH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlR3JpZCh7IHBhZ2UsIHNpemUsIHNvcnQgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFBhZ2VTaXplKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFJvd0luZGV4KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnBhZ2UgKiB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFNvcnRGaWVsZCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuY3VycmVudExpc3RQYXJhbXMuc29ydCB8fCB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNvcnQubGVuZ3RoIDw9IEFHUk9fTlVNQkVSUy5aRVJPKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdyaWRDb2x1bW5zW0FHUk9fTlVNQkVSUy5aRVJPXS5maWVsZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudExpc3RQYXJhbXMuc29ydFtBR1JPX05VTUJFUlMuWkVST10uZmllbGQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFNvcnRPcmRlcigpIHtcclxuICAgICAgICBpZiAoIXRoaXMuY3VycmVudExpc3RQYXJhbXMuc29ydCB8fCB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNvcnQubGVuZ3RoIDw9IEFHUk9fTlVNQkVSUy5aRVJPKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBBR1JPX05VTUJFUlMuT05FO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudExpc3RQYXJhbXMuc29ydFtBR1JPX05VTUJFUlMuWkVST10ub3JkZXI7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEVycm9yTWVzc2FnZXMoKSB7XHJcbiAgICAgICAgY29uc3QgdHJhbnNsYXRlZEVycm9yTWVzc2FnZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBMb29rdXBFcnJvck1lc3NhZ2VzKSB7XHJcbiAgICAgICAgICAgIGlmIChMb29rdXBFcnJvck1lc3NhZ2VzLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmdldChMb29rdXBFcnJvck1lc3NhZ2VzW2tleV0pLnN1YnNjcmliZSgocmVzOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGVkRXJyb3JNZXNzYWdlc1trZXldID0gcmVzO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRyYW5zbGF0ZWRFcnJvck1lc3NhZ2VzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGVwU2VsZWN0ZWQoZXZlbnQ6IGFueSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTdGVwID0gZXZlbnQuc3RlcDtcclxuXHJcbiAgICAgICAgc3dpdGNoICh0aGlzLnNlbGVjdGVkU3RlcC5ldmVudFR5cGUpIHtcclxuICAgICAgICAgICAgY2FzZSBFdmVudE9yaWdpbi5CQUxBTkNFX0VOVFJZX0NPTlRST0w6XHJcbiAgICAgICAgICAgIGNhc2UgRXZlbnRPcmlnaW4uVElDS0VUOlxyXG4gICAgICAgICAgICBjYXNlIEV2ZW50T3JpZ2luLklOVk9JQ0U6XHJcbiAgICAgICAgICAgIGNhc2UgRXZlbnRPcmlnaW4uQ1JFQVRFX0lOVk9JQ0U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNpZGViYXJMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmFtID0gSlNPTi5wYXJzZSh0aGlzLnNlbGVjdGVkU3RlcC5pdGVtLmlucHV0KTtcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBwcm9kdWNlckludm9pY2VJZCA9IHBhcmFtLnByb2R1Y2VySW52b2ljZUlkcyA/IHBhcmFtLnByb2R1Y2VySW52b2ljZUlkc1swXVxyXG4gICAgICAgICAgICAgICAgICAgIDogcGFyYW0uaW52b2ljZS5nZW5lcmFsRGF0YS50cmFuc2FjdGlvbmFsSWQ7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5ldmVudENvbnRyb2xCb2FyZFNlcnZpY2UucHJvZHVjZXJJbnZvaWNlU2VydmljZS5nZXQocHJvZHVjZXJJbnZvaWNlSWQpXHJcbiAgICAgICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXHJcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9kdWNlckludm9pY2UgPSByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2lkZWJhckxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB9LCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2lkZWJhckxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIEV2ZW50T3JpZ2luLkZJWEFUSU9OOlxyXG4gICAgICAgICAgICBjYXNlIEV2ZW50T3JpZ2luLkNBTkNFTF9GSVhBVElPTjpcclxuICAgICAgICAgICAgY2FzZSBFdmVudE9yaWdpbi5DSEFOR0VfUkVRVUVTVDpcclxuICAgICAgICAgICAgY2FzZSBFdmVudE9yaWdpbi5UUkFOU0ZFUjpcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zaG93UmVwcm9jZXNzQnV0dG9uID0gZXZlbnQuc3RlcC5zdGF0ZSA9PT0gU3RlcFN0YXRlLldhcm5pbmc7XHJcbiAgICAgICAgdGhpcy5zaWRlYmFyVGl0bGUgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5ldmVudF9zaWRlYmFyX3RpdGxlJywgeyBldmVudDogZXZlbnQuc3RlcC5sYWJlbCB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5zaG93U2lkZWJhciA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlcHJvY2Vzc0V2ZW50KCkge1xyXG4gICAgICAgIGNvbnN0IHJlcHJvY2Vzc0V2ZW50T2JqOiBSZXByb2Nlc3NGYWlsZWRFdmVudCA9IHtcclxuICAgICAgICAgICAgZXZlbnRDb250cm9sSXRlbUlkOiB0aGlzLnNlbGVjdGVkU3RlcC5pdGVtLmlkXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmV2ZW50Q29udHJvbEJvYXJkU2VydmljZS5ldmVudENvbnRyb2xJdGVtU2VydmljZS5yZXByb2Nlc3NGYWlsZWRFdmVudChyZXByb2Nlc3NFdmVudE9iailcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hZGRNZXNzYWdlKFxyXG4gICAgICAgICAgICAgICAgICAgICdpbmZvJyxcclxuICAgICAgICAgICAgICAgICAgICAnYWdyby5hbmd1bGFyX2NvbXBvbmVudHMucmVwcm9jZXNzaW5nX2V2ZW50X21lc3NhZ2VfdGl0bGUnLFxyXG4gICAgICAgICAgICAgICAgICAgICdhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5yZXByb2Nlc3NpbmdfZXZlbnRfbWVzc2FnZV9kZXNjcmlwdGlvbicpO1xyXG4gICAgICAgICAgICB9LCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFkZE1lc3NhZ2UoXHJcbiAgICAgICAgICAgICAgICAgICAgJ2Vycm9yJyxcclxuICAgICAgICAgICAgICAgICAgICAnYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuZXJyb3JfcmVwcm9jZXNzaW5nX2V2ZW50X21lc3NhZ2VfdGl0bGUnLFxyXG4gICAgICAgICAgICAgICAgICAgICdhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5lcnJvcl9yZXByb2Nlc3NpbmdfZXZlbnRfbWVzc2FnZV9kZXNjcmlwdGlvbicpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGFkZE1lc3NhZ2Uoc2V2ZXJpdHk6IHN0cmluZywgc3VtbWFyeTogc3RyaW5nLCBkZXRhaWw6IHN0cmluZywgbGlmZSA9IEFHUk9fTlVNQkVSUy5GSVZFX1NFQ09ORFMpIHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcbiAgICAgICAgICAgIHNldmVyaXR5LFxyXG4gICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHN1bW1hcnkpLFxyXG4gICAgICAgICAgICBkZXRhaWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoZGV0YWlsKSxcclxuICAgICAgICAgICAgbGlmZVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvcGVuTW9kYWwoKSB7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5TW9kYWwgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgcHVibGljIGFzeW5jIG9wZW5DYW5jZWxNb2RhbCgpIHtcclxuICAgICAgICBhd2FpdCB0aGlzLmNhbmNlbEV2ZW50RGlhbG9nQ29uZmlnLmJlZm9yZU9wZW4/LigpO1xyXG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKENhbmNlbEV2ZW50RGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgIGhlYWRlcjogdGhpcy5jYW5jZWxFdmVudERpYWxvZ0NvbmZpZz8uaGVhZGVyLFxyXG4gICAgICAgICAgICBjb250ZW50U3R5bGU6IHsgaGVpZ2h0OiBcIjEwMCVcIiB9LFxyXG4gICAgICAgICAgICBjbG9zYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgY2xvc2VPbkVzY2FwZTogZmFsc2UsXHJcbiAgICAgICAgICAgIGRhdGE6IHsgY2FuY2VsRXZlbnREaWFsb2dDb25maWc6IHRoaXMuY2FuY2VsRXZlbnREaWFsb2dDb25maWcgfSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY29uZmlybU1vZGFsKCkge1xyXG4gICAgICAgIHRoaXMucmVwcm9jZXNzRXZlbnQoKTtcclxuICAgICAgICB0aGlzLmRpc3BsYXlNb2RhbCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2hvd1NpZGViYXIgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2FuY2VsTW9kYWwoKSB7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5TW9kYWwgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2xvc2VTaWRlYmFyKCkge1xyXG4gICAgICAgIHRoaXMuc2hvd1NpZGViYXIgPSBmYWxzZTtcclxuICAgIH1cclxufVxyXG4iXX0=
513
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtY29udHJvbC1ib2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZXZlbnQtY29udHJvbC1ib2FyZC9ldmVudC1jb250cm9sLWJvYXJkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxRQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBZ0MsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFRLFNBQVMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hILE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFNUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztB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QUU7MkVBQW1EO0FBQ2pEO0lBQVQsTUFBTSxFQUFFO2tFQUE0RDtBQVo1RCwwQkFBMEI7SUFSdEMsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLHFCQUFxQjtRQUMvQiwydGxCQUFtRDtRQUVuRCxTQUFTLEVBQUU7WUFDUCxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtTQUM1Qzs7S0FDSixDQUFDO0dBQ1csMEJBQTBCLENBOGZ0QztTQTlmWSwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZWdpc3RlckxvY2FsZURhdGEgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCBsb2NhbGVQdCBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvcHRcIjtcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBMT0NBTEVfSUQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IEJhZGdlQ29sb3JzLCBCdXR0b25Qcmlvcml0eSwgRmllbGRUeXBlLCBGb3JtRmllbGQsIFN0ZXAsIFN0ZXBTdGF0ZSB9IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzXCI7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UsIE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSBcInByaW1lbmdcIjtcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBBR1JPX05VTUJFUlMgfSBmcm9tIFwiLi4vLi4vZW51bXMvYWdyby1udW1iZXJzLmVudW1cIjtcclxuaW1wb3J0IHsgTGliVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2xpYi10cmFuc2xhdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFdlYnNvY2tldFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvd2Vic29ja2V0XCI7XHJcbmltcG9ydCB7IENhbmNlbEV2ZW50RGlhbG9nQ29uZmlnIH0gZnJvbSBcIi4uL2NhbmNlbC1ldmVudC1kaWFsb2cvY2FuY2VsLWV2ZW50LWRpYWxvZy1jb25maWdcIjtcclxuaW1wb3J0IHsgQ2FuY2VsRXZlbnREaWFsb2dDb21wb25lbnQgfSBmcm9tIFwiLi4vY2FuY2VsLWV2ZW50LWRpYWxvZy9jYW5jZWwtZXZlbnQtZGlhbG9nLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBldmVudEl0ZW0sIGlucHV0RmllbGRzUGF0aCB9IGZyb20gXCIuL2NvbW1vbi9ldmVudC1jb250cm9sLWNvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBFdmVudE9yaWdpbiB9IGZyb20gXCIuL2NvbW1vbi9ldmVudC1vcmlnaW5cIjtcclxuaW1wb3J0IHsgRXZlbnRTdGF0dXMgfSBmcm9tIFwiLi9jb21tb24vZXZlbnQtc3RhdHVzXCI7XHJcbmltcG9ydCB7IElucHV0RmllbGRzIH0gZnJvbSBcIi4vY29tbW9uL2lucHV0LWZpZWxkc1wiO1xyXG5pbXBvcnQgeyBpbnZvaWNlVHlwZVRyYW5zbGF0ZSB9IGZyb20gXCIuL2NvbW1vbi9pbnB1dC1maWVsZHMtdHJhbnNsYXRlXCI7XHJcbmltcG9ydCB7IExvb2t1cEVycm9yTWVzc2FnZXMgfSBmcm9tIFwiLi9jb21tb24vbG9va3VwLWVycm9yLW1lc3NhZ2UuY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IEUwNzBFbXAgfSBmcm9tIFwiLi9zZXJ2aWNlL2UwNzBlbXAvZTA3MGVtcFwiO1xyXG5pbXBvcnQgeyBFMDcwRmlsIH0gZnJvbSBcIi4vc2VydmljZS9lMDcwZmlsL2UwNzBmaWxcIjtcclxuaW1wb3J0IHsgRXZlbnRDb250cm9sQm9hcmRTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZS9ldmVudC1jb250cm9sLWJvYXJkLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRXZlbnRDb250cm9sSXRlbSB9IGZyb20gXCIuL3NlcnZpY2UvZXZlbnQtY29udHJvbC1pdGVtL2V2ZW50LWNvbnRyb2wtaXRlbVwiO1xyXG5pbXBvcnQgeyBSZXByb2Nlc3NGYWlsZWRFdmVudCB9IGZyb20gXCIuL3NlcnZpY2UvZXZlbnQtY29udHJvbC1pdGVtL2V2ZW50LWNvbnRyb2wtaXRlbS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEV2ZW50Q29udHJvbCB9IGZyb20gXCIuL3NlcnZpY2UvZXZlbnQtY29udHJvbC9ldmVudC1jb250cm9sXCI7XHJcbmltcG9ydCB7IExpc3RFdmVudENvbnRyb2xXaXRoRmlsdGVyc0lucHV0RHRvIH0gZnJvbSBcIi4vc2VydmljZS9ldmVudC1jb250cm9sL2V2ZW50LWNvbnRyb2wuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBQYWdpbmF0b3JTdG9yYWdlU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2UvcGFnaW5hdG9yLXN0b3JhZ2Uuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBQcm9kdWNlckludm9pY2VEdG8gfSBmcm9tIFwiLi9zZXJ2aWNlL3Byb2R1Y2VyLWludm9pY2UvcHJvZHVjZXItaW52b2ljZS1kdG9cIjtcclxuY29uc3QgbW9tZW50ID0gcmVxdWlyZShcIm1vbWVudFwiKTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdldmVudC1jb250cm9sLWJvYXJkJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldmVudC1jb250cm9sLWJvYXJkLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2V2ZW50LWNvbnRyb2wtYm9hcmQuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHsgcHJvdmlkZTogTE9DQUxFX0lELCB1c2VWYWx1ZTogJ3B0LUJSJyB9XHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFdmVudENvbnRyb2xCb2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xyXG5cclxuICAgIEBJbnB1dCgpIGUwNzBlbXAhOiBFMDcwRW1wO1xyXG4gICAgQElucHV0KCkgZTA3MGZpbCE6IEUwNzBGaWw7XHJcbiAgICBASW5wdXQoKSBjb250cm9sQ29kZSE6IHN0cmluZ1tdO1xyXG4gICAgQElucHV0KCkgZXZlbnRPcmlnaW4hOiBFdmVudE9yaWdpbjtcclxuICAgIEBJbnB1dCgpIGV2ZW50U3RhdHVzITogRXZlbnRTdGF0dXM7XHJcbiAgICBASW5wdXQoKSBleHRlcm5hbElkITogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgY3JlYXRlZERhdGUhOiBEYXRlO1xyXG4gICAgQElucHV0KCkgc3RhbmRhbG9uZSE6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBzaG93Q2FuY2VsQnV0dG9uITogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGNhbmNlbEV2ZW50RGlhbG9nQ29uZmlnITogQ2FuY2VsRXZlbnREaWFsb2dDb25maWc7XHJcbiAgICBAT3V0cHV0KCkgcHJvY2Vzc2VkRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KClcclxuXHJcbiAgICBwdWJsaWMgcHJvZHVjZXJJbnZvaWNlITogUHJvZHVjZXJJbnZvaWNlRHRvO1xyXG5cclxuICAgIHB1YmxpYyBzdGVwczogU3RlcFtdID0gW107XHJcbiAgICBwdWJsaWMgc2VsZWN0ZWRTdGVwOiBhbnk7XHJcbiAgICBwdWJsaWMgZXZlbnRJZCE6ICcnO1xyXG4gICAgcHVibGljIHNob3dTaWRlYmFyID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgc2hvd1JlcHJvY2Vzc0J1dHRvbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIHNpZGViYXJUaXRsZSE6IHN0cmluZztcclxuICAgIHB1YmxpYyBzaWRlYmFyTG9hZGluZyE6IGJvb2xlYW47XHJcblxyXG4gICAgcHVibGljIGZpbHRlckZvcm1Hcm91cCE6IEZvcm1Hcm91cDtcclxuICAgIHB1YmxpYyBmaWx0ZXJGaWVsZHMhOiBGb3JtRmllbGRbXTtcclxuXHJcbiAgICBwdWJsaWMgZ3JpZERhdGEhOiBhbnlbXTtcclxuICAgIHB1YmxpYyBncmlkRGF0YVJlc29sdmVkITogYW55W107XHJcbiAgICBwdWJsaWMgZ3JpZENvbHVtbnMhOiBhbnlbXTtcclxuICAgIHB1YmxpYyBncmlkVG90YWxSZWNvcmRzID0gQUdST19OVU1CRVJTLlpFUk87XHJcbiAgICBwdWJsaWMgZ3JpZExvYWRpbmcgPSBmYWxzZTtcclxuICAgIHB1YmxpYyBkaXNwbGF5TW9kYWwgPSBmYWxzZTtcclxuXHJcbiAgICBwdWJsaWMgQnV0dG9uUHJpb3JpdHkgPSBCdXR0b25Qcmlvcml0eTtcclxuICAgIHB1YmxpYyBCYWRnZUNvbG9ycyA9IEJhZGdlQ29sb3JzO1xyXG5cclxuICAgIHB1YmxpYyBwZXJtaXNzaW9uczogYW55ID0ge307XHJcbiAgICBwdWJsaWMgbG9jYWxlQ29uZmlnOiBhbnkgPSB7fTtcclxuXHJcbiAgICBwdWJsaWMgY3VycmVudExpc3RQYXJhbXM6IGFueSA9IHsgcGFnZTogQUdST19OVU1CRVJTLlpFUk8sIHNpemU6IEFHUk9fTlVNQkVSUy5URU4sIHNvcnQ6IFtdLCBmaWx0ZXJEYXRhOiB7fSB9O1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGV2ZW50SXRlbSA9IGV2ZW50SXRlbTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5wdXRGaWVsZHNQYXRoID0gaW5wdXRGaWVsZHNQYXRoO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbnZvaWNlVHlwZVRyYW5zbGF0ZSA9IGludm9pY2VUeXBlVHJhbnNsYXRlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBMaWJUcmFuc2xhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB3ZWJzb2NrZXRTZXJ2aWNlOiBXZWJzb2NrZXRTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRDb250cm9sQm9hcmRTZXJ2aWNlOiBFdmVudENvbnRyb2xCb2FyZFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBwYWdpbmF0b3JTdG9yYWdlU2VydmljZTogUGFnaW5hdG9yU3RvcmFnZVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgKSB7XHJcbiAgICAgICAgcmVnaXN0ZXJMb2NhbGVEYXRhKGxvY2FsZVB0KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5ncmlkQ29sdW1ucyA9IHRoaXMuc2V0R3JpZENvbHVtbnMoKTtcclxuICAgICAgICB0aGlzLmNhbGxXZWJzb2NrZXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmICghdGhpcy5maWx0ZXJGb3JtR3JvdXApIHtcclxuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplRm9ybUdyb3VwKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkcygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVDb21wYW55QW5kQnJhbmNoRm9ybUZpZWxkcyhjaGFuZ2VzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUV2ZW50T3JpZ2luQW5kQ29udHJvbENvZGVGb3JtRmllbGRzKGNoYW5nZXMpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRXZlbnRTdGF0dXNBbmRDcmVhdGVkRGF0ZUZvcm1GaWVsZHMoY2hhbmdlcyk7XHJcbiAgICAgICAgdGhpcy5vblNlYXJjaCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBkYXRlQ29tcGFueUFuZEJyYW5jaEZvcm1GaWVsZHMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmIChjaGFuZ2VzLmUwNzBlbXAgJiYgY2hhbmdlcy5lMDcwZW1wLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5lMDcwZW1wLnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KCdlMDcwZW1wJyk/LnNldFZhbHVlKGNoYW5nZXMuZTA3MGVtcC5jdXJyZW50VmFsdWUgPz8gbnVsbCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY2hhbmdlcy5lMDcwZmlsICYmIGNoYW5nZXMuZTA3MGZpbC5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuZTA3MGZpbC5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldCgnZTA3MGZpbCcpPy5zZXRWYWx1ZShjaGFuZ2VzLmUwNzBmaWwuY3VycmVudFZhbHVlID8/IG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZUV2ZW50T3JpZ2luQW5kQ29udHJvbENvZGVGb3JtRmllbGRzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBpZiAoY2hhbmdlcy5ldmVudE9yaWdpbiAmJiBjaGFuZ2VzLmV2ZW50T3JpZ2luLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5ldmVudE9yaWdpbi5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldCgnZXZlbnRPcmlnaW4nKT8uc2V0VmFsdWUoY2hhbmdlcy5ldmVudE9yaWdpbi5jdXJyZW50VmFsdWUgPz8gbnVsbCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY2hhbmdlcy5jb250cm9sQ29kZSAmJiBjaGFuZ2VzLmNvbnRyb2xDb2RlLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5jb250cm9sQ29kZS5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldCgnY29udHJvbENvZGUnKT8uc2V0VmFsdWUoY2hhbmdlcy5jb250cm9sQ29kZS5jdXJyZW50VmFsdWUgPz8gbnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBkYXRlRXZlbnRTdGF0dXNBbmRDcmVhdGVkRGF0ZUZvcm1GaWVsZHMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmIChjaGFuZ2VzLmV2ZW50U3RhdHVzICYmIGNoYW5nZXMuZXZlbnRTdGF0dXMuY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmV2ZW50U3RhdHVzLnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KCdzdGF0dXMnKT8uc2V0VmFsdWUoY2hhbmdlcy5ldmVudFN0YXR1cy5jdXJyZW50VmFsdWUgPz8gbnVsbCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY2hhbmdlcy5jcmVhdGVkRGF0ZSAmJiBjaGFuZ2VzLmNyZWF0ZWREYXRlLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5jcmVhdGVkRGF0ZS5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldCgnY3JlYXRlZERhdGUnKT8uc2V0VmFsdWUoY2hhbmdlcy5jcmVhdGVkRGF0ZS5jdXJyZW50VmFsdWUgPz8gbnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdGlhbGl6ZUZvcm1Hcm91cCgpIHtcclxuICAgICAgICB0aGlzLmZpbHRlckZvcm1Hcm91cCA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICAgICAgICBlMDcwZW1wOiBbeyB2YWx1ZTogdGhpcy5lMDcwZW1wID8/IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LCBWYWxpZGF0b3JzLmNvbXBvc2UoW10pXSxcclxuICAgICAgICAgICAgZTA3MGZpbDogW3sgdmFsdWU6IHRoaXMuZTA3MGZpbCA/PyBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSwgVmFsaWRhdG9ycy5jb21wb3NlKFtdKV0sXHJcbiAgICAgICAgICAgIGNvbnRyb2xDb2RlOiBbeyB2YWx1ZTogdGhpcy5jb250cm9sQ29kZSA/PyBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSwgVmFsaWRhdG9ycy5jb21wb3NlKFtdKV0sXHJcbiAgICAgICAgICAgIGV4dGVybmFsSWQ6IFt7IHZhbHVlOiB0aGlzLmV4dGVybmFsSWQgPz8gbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFZhbGlkYXRvcnMuY29tcG9zZShbXSldLFxyXG4gICAgICAgICAgICBldmVudE9yaWdpbjogW3sgdmFsdWU6IHRoaXMuZXZlbnRPcmlnaW4gPz8gbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFZhbGlkYXRvcnMuY29tcG9zZShbXSldLFxyXG4gICAgICAgICAgICBzdGF0dXM6IFt7IHZhbHVlOiB0aGlzLmV2ZW50U3RhdHVzID8/IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LCBWYWxpZGF0b3JzLmNvbXBvc2UoW10pXSxcclxuICAgICAgICAgICAgY3JlYXRlZERhdGU6IFt7IHZhbHVlOiB0aGlzLmNyZWF0ZWREYXRlID8/IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LCBWYWxpZGF0b3JzLmNvbXBvc2UoW10pXSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldEZvcm1GaWVsZHMoKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJGaWVsZHMgPSBbXHJcbiAgICAgICAgICAgIG5ldyBGb3JtRmllbGQoe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJlMDcwZW1wXCIsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuQ2hpcHMsXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgRm9ybUZpZWxkKHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiZTA3MGZpbFwiLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLkNoaXBzLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IEZvcm1GaWVsZCh7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcImNvbnRyb2xDb2RlXCIsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuQ2hpcHMsXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgRm9ybUZpZWxkKHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiZXh0ZXJuYWxJZFwiLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLlN0cmluZyxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBGb3JtRmllbGQoe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJldmVudE9yaWdpblwiLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLkVudW0sXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgRm9ybUZpZWxkKHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwic3RhdHVzXCIsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuRW51bSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBGb3JtRmllbGQoe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJjcmVhdGVkRGF0ZVwiLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLkRhdGUsXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgIF07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRHcmlkQ29sdW1ucygpIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICB7IGZpZWxkOiAnZTA3MGVtcCcsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmNvbXBhbnlcIikgfSxcclxuICAgICAgICAgICAgeyBmaWVsZDogJ2UwNzBmaWwnLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5sYWJlbF9icmFuY2hcIikgfSxcclxuICAgICAgICAgICAgeyBmaWVsZDogJ2V2ZW50T3JpZ2luJywgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuZXZlbnRfb3JpZ2luX2xhYmVsXCIpIH0sXHJcbiAgICAgICAgICAgIHsgZmllbGQ6ICdjb250cm9sQ29kZScsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmNvbnRyb2xfY29kZVwiKSB9LFxyXG4gICAgICAgIF07XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XHJcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgdGhpcy53ZWJzb2NrZXRTZXJ2aWNlLmRpc2Nvbm5lY3QoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2FsbFdlYnNvY2tldCgpIHtcclxuICAgICAgICB0aGlzLndlYnNvY2tldFNlcnZpY2VcclxuICAgICAgICAgICAgLm9uRXZlbnQ8YW55Pih7XHJcbiAgICAgICAgICAgICAgICBkb21haW46ICdhZ3JvJyxcclxuICAgICAgICAgICAgICAgIHNlcnZpY2U6ICdhZ3JvX2V2ZW50cycsXHJcbiAgICAgICAgICAgICAgICBwcmltaXRpdmU6IFwicHJvY2Vzc2VkRXZlbnRcIixcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKG1lc3NhZ2UpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGV4dGVybmFsSWQgPSBtZXNzYWdlPy5kYXRhPy5leHRlcm5hbElkO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyRGF0YSA9IHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWV4dGVybmFsSWQgXHJcbiAgICAgICAgICAgICAgICAgICAgfHwgdGhpcy5leHRlcm5hbElkID09PSBleHRlcm5hbElkXHJcbiAgICAgICAgICAgICAgICAgICAgfHwgdGhpcy5ncmlkRGF0YT8uc29tZSgoaXRlbTogYW55KSA9PiBpdGVtLmV4dGVybmFsSWQgPT09IGV4dGVybmFsSWQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVHcmlkKHsgZmlsdGVyRGF0YSB9KTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NlZEV2ZW50LmVtaXQobWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLndlYnNvY2tldFNlcnZpY2VcclxuICAgICAgICAgICAgLm9uRXZlbnQ8YW55Pih7XHJcbiAgICAgICAgICAgICAgICBkb21haW46ICdwbGF0Zm9ybScsXHJcbiAgICAgICAgICAgICAgICBzZXJ2aWNlOiAnbm90aWZpY2F0aW9ucycsXHJcbiAgICAgICAgICAgICAgICBwcmltaXRpdmU6IFwidXNlck5vdGlmaWVkXCIsXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlckRhdGEgPSB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVHcmlkKHsgZmlsdGVyRGF0YSB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uU2VhcmNoKCkge1xyXG4gICAgICAgIGNvbnN0IGZpbHRlckRhdGEgPSB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgICAgIHRoaXMuZ3JpZExvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMucmVzZXRHcmlkKHsgZmlsdGVyRGF0YSB9KTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUdyaWQoeyBmaWx0ZXJEYXRhIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZXNldEdyaWQobGlzdFBhcmFtcz86IGFueSkge1xyXG4gICAgICAgIGlmIChsaXN0UGFyYW1zKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExpc3RQYXJhbXMgPSB7IC4uLnRoaXMuY3VycmVudExpc3RQYXJhbXMsIC4uLmxpc3RQYXJhbXMgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5wYWdlID0gQUdST19OVU1CRVJTLlpFUk87XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGVHcmlkKGxpc3RQYXJhbXM6IGFueSA9IHt9KSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50TGlzdFBhcmFtcyA9IHsgLi4udGhpcy5jdXJyZW50TGlzdFBhcmFtcywgLi4ubGlzdFBhcmFtcyB9O1xyXG4gICAgICAgIGNvbnN0IHsgcGFnZSwgc2l6ZSB9ID0gdGhpcy5jdXJyZW50TGlzdFBhcmFtcztcclxuICAgICAgICBjb25zdCBvcmRlciA9IHRoaXMuZ2V0U29ydGVkRmllbGRzKCk7XHJcbiAgICAgICAgY29uc3QgaW5wdXQgPSB7IC4uLnRoaXMuZ2V0SW5wdXQoKSwgcGFnZSwgc2l6ZSwgb3JkZXIgfTtcclxuXHJcbiAgICAgICAgdGhpcy5ldmVudENvbnRyb2xCb2FyZFNlcnZpY2UuZXZlbnRDb250cm9sU2VydmljZVxyXG4gICAgICAgICAgICAuZ2V0TGlzdEV2ZW50Q29udHJvbFdpdGhGaWx0ZXJzKGlucHV0KVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxyXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyaWRMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgobGlzdDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWREYXRhID0gbGlzdC5jb250ZW50cztcclxuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZFRvdGFsUmVjb3JkcyA9IGxpc3QudG90YWxFbGVtZW50cztcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5ncmlkRGF0YSB8fCB0aGlzLmdyaWREYXRhLmxlbmd0aCA8PSBBR1JPX05VTUJFUlMuWkVSTykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JpZExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NFdmVudENvbnRyb2xJdGVtcygpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHByb2Nlc3NFdmVudENvbnRyb2xJdGVtcygpIHtcclxuICAgICAgICB0aGlzLmdyaWREYXRhLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNvcnRlZEl0ZW1zID0gaXRlbS5ldmVudENvbnRyb2xJdGVtLnNvcnQoKGE6IEV2ZW50Q29udHJvbEl0ZW0sIGI6IEV2ZW50Q29udHJvbEl0ZW0pID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBhLnNlcXVlbmNlIC0gYi5zZXF1ZW5jZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0ZXBzID0gc29ydGVkSXRlbXMubWFwKChkZXRhaWw6IEV2ZW50Q29udHJvbEl0ZW0sIGluZGV4OiBudW1iZXIpID0+IHRoaXMuY3JlYXRlU3RlcChkZXRhaWwsIGl0ZW0sIGluZGV4KSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUluZGV4ID0gdGhpcy5jYWxjdWxhdGVBY3RpdmVJbmRleChzb3J0ZWRJdGVtcyk7XHJcbiAgICAgICAgICAgIGl0ZW0uZ3JvdXBzID0gW3sgc3RlcHMsIGFjdGl2ZUluZGV4IH1dO1xyXG4gICAgICAgICAgICBpdGVtLmFjdGl2ZUluZGV4ID0gYWN0aXZlSW5kZXg7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5ncmlkRGF0YVJlc29sdmVkID0gdGhpcy5ncmlkRGF0YTtcclxuICAgICAgICB0aGlzLmdyaWRMb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVBY3RpdmVJbmRleChkZXRhaWxzOiBFdmVudENvbnRyb2xJdGVtW10pOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IGxhc3RBY3RpdmUgPSBkZXRhaWxzLnJlZHVjZSgobGFzdEluZGV4LCBkZXRhaWwsIGN1cnJlbnRJbmRleCkgPT5cclxuICAgICAgICAgICAgZGV0YWlsLnN0YXR1cyAhPT0gRXZlbnRTdGF0dXMuUEVORElORyA/IGN1cnJlbnRJbmRleCA6IGxhc3RJbmRleCwgLTEpO1xyXG4gICAgICAgIGlmIChsYXN0QWN0aXZlICE9PSAtMSAmJiBkZXRhaWxzW2xhc3RBY3RpdmVdLnN0YXR1cyA9PT0gRXZlbnRTdGF0dXMuU1VDQ0VTUykge1xyXG4gICAgICAgICAgICByZXR1cm4gbGFzdEFjdGl2ZSArIDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBsYXN0QWN0aXZlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY3JlYXRlU3RlcChkZXRhaWw6IEV2ZW50Q29udHJvbEl0ZW0sIGl0ZW06IEV2ZW50Q29udHJvbCwgZGV0YWlsSW5kZXg6IG51bWJlcikge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGl0ZW06IGRldGFpbCxcclxuICAgICAgICAgICAgY29udHJvbENvZGU6IGl0ZW0uY29udHJvbENvZGUsXHJcbiAgICAgICAgICAgIGV2ZW50VHlwZTogaXRlbS5ldmVudE9yaWdpbixcclxuICAgICAgICAgICAgbGFiZWw6IHRoaXMuZ2V0RXZlbnRMYWJlbChkZXRhaWwpLFxyXG4gICAgICAgICAgICBzdWJMYWJlbDogdGhpcy5nZXRFdmVudFN1YkxhYmVsKGRldGFpbCksXHJcbiAgICAgICAgICAgIGRpc2FibGVkOiBkZXRhaWwuc3RhdHVzID09PSBFdmVudFN0YXR1cy5QRU5ESU5HICYmIGRldGFpbEluZGV4ICE9PSB0aGlzLmNhbGN1bGF0ZUFjdGl2ZUluZGV4KGl0ZW0uZXZlbnRDb250cm9sSXRlbSksXHJcbiAgICAgICAgICAgIHRvb2x0aXA6IHRoaXMuZ2V0RXZlbnRMYWJlbChkZXRhaWwpLFxyXG4gICAgICAgICAgICBzdGF0ZTogdGhpcy5kZXRlcm1pbmVTdGVwU3RhdGUoZGV0YWlsKVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBkZXRlcm1pbmVTdGVwU3RhdGUoZGV0YWlsOiB7IHN0YXR1czogRXZlbnRTdGF0dXMgfSk6IFN0ZXBTdGF0ZSB7XHJcbiAgICAgICAgaWYgKGRldGFpbC5zdGF0dXMgPT09IEV2ZW50U3RhdHVzLlNVQ0NFU1MpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFN0ZXBTdGF0ZS5TdWNjZXNzO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZGV0YWlsLnN0YXR1cyA9PT0gRXZlbnRTdGF0dXMuRkFJTEVEKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBTdGVwU3RhdGUuV2FybmluZztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIFN0ZXBTdGF0ZS5EZWZhdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0RXZlbnRMYWJlbChkZXRhaWw6IGFueSk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgZXZlbnRMYWJlbCA9IHRoaXMuZXZlbnRJdGVtLmZpbmQoZSA9PiBlLnZhbHVlID09PSBkZXRhaWwuZXZlbnRPcGVyYXRpb24pPy5sYWJlbDtcclxuICAgICAgICByZXR1cm4gZXZlbnRMYWJlbCA/IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoZXZlbnRMYWJlbCkgOiBkZXRhaWwuZXZlbnRPcGVyYXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRFdmVudFN1YkxhYmVsKGRldGFpbDogRXZlbnRDb250cm9sSXRlbSk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgICAgIGNvbnN0IGZpZWxkID0gdGhpcy5ldmVudEl0ZW0uZmluZChlID0+IGUudmFsdWUgPT09IGRldGFpbC5ldmVudE9wZXJhdGlvbik/LnN1YkxhYmVsRmllbGQ7XHJcbiAgICAgICAgaWYgKCFmaWVsZCB8fCAhZGV0YWlsLmlucHV0KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgcGF0aCA9IHRoaXMuaW5wdXRGaWVsZHNQYXRoLmZpbmQoZiA9PiBmLmZpZWxkID09PSBmaWVsZCAmJiAoIWYub3BlcmF0aW9uIHx8IGYub3BlcmF0aW9uID09PSBkZXRhaWwuZXZlbnRPcGVyYXRpb24pKT8ucGF0aDtcclxuICAgICAgICB2YXIgZnVsbFBhdGggPSBwYXRoID8gYCR7cGF0aH0uJHtmaWVsZH1gIDogZmllbGQ7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlRmllbGRKc29uRnJvbVBhdGgoZGV0YWlsLmlucHV0LCBmdWxsUGF0aCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0RmllbGRWYWx1ZShmaWVsZCwgdmFsdWUpXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRWYWx1ZUZpZWxkSnNvbkZyb21QYXRoKGpzb246IHN0cmluZywgcGF0aDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCBwYXJzZWRKc29uID0gSlNPTi5wYXJzZShqc29uKTtcclxuICAgICAgICAgICAgY29uc3Qga2V5cyA9IHBhdGguc3BsaXQoJy4nKTtcclxuICAgICAgICAgICAgcmV0dXJuIGtleXMucmVkdWNlKChhY2MsIGtleSkgPT4gYWNjICYmIGFjY1trZXldLCBwYXJzZWRKc29uKTtcclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvIGFvIGFjZXNzYXIgbyBvYmpldG8gcGVsbyBwYXRoOiAnICsgcGF0aCwgZXJyb3IpO1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBmb3JtYXRGaWVsZFZhbHVlKGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICBzd2l0Y2ggKGZpZWxkKSB7XHJcbiAgICAgICAgICAgIGNhc2UgSW5wdXRGaWVsZHMuQUdST19JTlZPSUNFX1RZUEU6XHJcbiAgICAgICAgICAgIGNhc2UgSW5wdXRGaWVsZHMuSU5WT0lDRV9UWVBFOlxyXG4gICAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLmludm9pY2VUeXBlVHJhbnNsYXRlLmZpbmQoZSA9PiBlLnZhbHVlID09PSB2YWx1ZSk/LmxhYmVsO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGxhYmVsID8gdGhpcy50cmFuc2xhdGUuaW5zdGFudChsYWJlbCkgOiB2YWx1ZVxyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFNvcnRlZEZpZWxkcygpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCBvcmRlciA9ICcnO1xyXG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNvcnQ/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgb3JkZXIgPSB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNvcnQubWFwKChzb3J0SXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7dGhpcy5nZXRGaWVsZE5hbWVGb3JTb3J0UmVxdWVzdChzb3J0SXRlbS5maWVsZCl9ICR7c29ydEl0ZW0ub3JkZXIgPT09IEFHUk9fTlVNQkVSUy5PTkUgPyAnYXNjJyA6ICdkZXNjJ31gO1xyXG4gICAgICAgICAgICB9KS5qb2luKCcsICcpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zdGFuZGFsb25lKSB7XHJcbiAgICAgICAgICAgIG9yZGVyID0gJ2NyZWF0ZWREYXRlIGFzYyc7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgb3JkZXIgPSAnbGFzdE1vZGlmaWVkRGF0ZSBkZXNjJztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG9yZGVyO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0SW5wdXQoKTogTGlzdEV2ZW50Q29udHJvbFdpdGhGaWx0ZXJzSW5wdXREdG8ge1xyXG4gICAgICAgIGNvbnN0IHsgZmlsdGVyRGF0YSB9ID0gdGhpcy5jdXJyZW50TGlzdFBhcmFtcztcclxuICAgICAgICBjb25zdCBjb250cm9sQ29kZSA9IGZpbHRlckRhdGFbJ2NvbnRyb2xDb2RlJ10gJiYgQXJyYXkuaXNBcnJheShmaWx0ZXJEYXRhWydjb250cm9sQ29kZSddKSA/IGZpbHRlckRhdGFbJ2NvbnRyb2xDb2RlJ10gOiBudWxsO1xyXG4gICAgICAgIGNvbnN0IGZpbHRlciA9IHtcclxuICAgICAgICAgICAgY29tcGFueUlkOiBmaWx0ZXJEYXRhWydlMDcwZW1wJ10/LmlkID8/IG51bGwsXHJcbiAgICAgICAgICAgIGJyYW5jaElkOiBmaWx0ZXJEYXRhWydlMDcwZmlsJ10/LmlkID8/IG51bGwsXHJcbiAgICAgICAgICAgIGNvbnRyb2xDb2RlOiBjb250cm9sQ29kZSA/IGNvbnRyb2xDb2RlLm1hcCgoY29kZTogc3RyaW5nKSA9PiBwYXJzZUludChjb2RlKSkgOiBudWxsLFxyXG4gICAgICAgICAgICBleHRlcm5hbElkOiBmaWx0ZXJEYXRhWydleHRlcm5hbElkJ10gPz8gbnVsbCxcclxuICAgICAgICAgICAgZXZlbnRPcmlnaW46IGZpbHRlckRhdGFbJ2V2ZW50T3JpZ2luJ10gPz8gbnVsbCxcclxuICAgICAgICAgICAgZXZlbnRTdGF0dXM6IGZpbHRlckRhdGFbJ3N0YXR1cyddID8/IG51bGwsXHJcbiAgICAgICAgICAgIGNyZWF0ZWREYXRlU3RhcnQ6IGZpbHRlckRhdGFbJ2NyZWF0ZWREYXRlJ10gPyB0aGlzLmdldFN0YXJ0RGF0ZShmaWx0ZXJEYXRhWydjcmVhdGVkRGF0ZSddKSA6IG51bGwsXHJcbiAgICAgICAgICAgIGNyZWF0ZWREYXRlRW5kOiBmaWx0ZXJEYXRhWydjcmVhdGVkRGF0ZSddID8gdGhpcy5nZXRFbmREYXRlKGZpbHRlckRhdGFbJ2NyZWF0ZWREYXRlJ10pIDogbnVsbCxcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBmaWx0ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRGaWVsZE5hbWVGb3JTb3J0UmVxdWVzdChuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHN3aXRjaCAobmFtZSkge1xyXG4gICAgICAgICAgICBjYXNlICdlMDcwZW1wJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiAnZTA3MGVtcC5ub21FbXAnO1xyXG4gICAgICAgICAgICBjYXNlICdlMDcwZmlsJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiAnZTA3MGZpbC5ub21GaWwnO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0RW5kRGF0ZSh2YWx1ZTogYW55KTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBlbmREYXRlID0gbW9tZW50KHZhbHVlKS5lbmRPZignZGF5JykuZm9ybWF0KFwiWVlZWS1NTS1ERFRISDptbTpzc1wiKSArICdaJztcclxuICAgICAgICByZXR1cm4gZW5kRGF0ZTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgZ2V0U3RhcnREYXRlKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IG1vbWVudCh2YWx1ZSkuc3RhcnRPZignZGF5JykuZm9ybWF0KFwiWVlZWS1NTS1ERFRISDptbTpzc1wiKSArICdaJztcclxuICAgICAgICByZXR1cm4gc3RhcnREYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkdyaWRDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgICAgIGNvbnN0IHNpemUgPSBldmVudD8ucm93cztcclxuICAgICAgICBjb25zdCBwYWdlID0gZXZlbnQ/LmZpcnN0IC8gc2l6ZTtcclxuICAgICAgICBjb25zdCBzb3J0ID0gZXZlbnQubXVsdGlTb3J0TWV0YTtcclxuICAgICAgICB0aGlzLmdyaWRMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICBpZiAoc2l6ZSAhPT0gQUdST19OVU1CRVJTLlRFTiB8fCBwYWdlICE9PSBBR1JPX05VTUJFUlMuWkVSTyB8fCAoc29ydCAmJiBzb3J0Lmxlbmd0aCA+IEFHUk9fTlVNQkVSUy5aRVJPKSkge1xyXG4gICAgICAgICAgICB0aGlzLnBhZ2luYXRvclN0b3JhZ2VTZXJ2aWNlLnN0b3JlUGFnaW5hdG9yKCdFdmVudENvbnRyb2xCb2FyZFBhZ2luYXRvcicsIHsgcGFnZSwgc2l6ZSwgc29ydCB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZUdyaWQoeyBwYWdlLCBzaXplLCBzb3J0IH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRQYWdlU2l6ZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5zaXplO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRSb3dJbmRleCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5wYWdlICogdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5zaXplO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRTb3J0RmllbGQoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNvcnQgfHwgdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5zb3J0Lmxlbmd0aCA8PSBBR1JPX05VTUJFUlMuWkVSTykge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5ncmlkQ29sdW1uc1tBR1JPX05VTUJFUlMuWkVST10uZmllbGQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNvcnRbQUdST19OVU1CRVJTLlpFUk9dLmZpZWxkO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRTb3J0T3JkZXIoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNvcnQgfHwgdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5zb3J0Lmxlbmd0aCA8PSBBR1JPX05VTUJFUlMuWkVSTykge1xyXG4gICAgICAgICAgICByZXR1cm4gQUdST19OVU1CRVJTLk9ORTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNvcnRbQUdST19OVU1CRVJTLlpFUk9dLm9yZGVyO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRFcnJvck1lc3NhZ2VzKCkge1xyXG4gICAgICAgIGNvbnN0IHRyYW5zbGF0ZWRFcnJvck1lc3NhZ2VzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gTG9va3VwRXJyb3JNZXNzYWdlcykge1xyXG4gICAgICAgICAgICBpZiAoTG9va3VwRXJyb3JNZXNzYWdlcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS5nZXQoTG9va3VwRXJyb3JNZXNzYWdlc1trZXldKS5zdWJzY3JpYmUoKHJlczogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlZEVycm9yTWVzc2FnZXNba2V5XSA9IHJlcztcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cmFuc2xhdGVkRXJyb3JNZXNzYWdlcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RlcFNlbGVjdGVkKGV2ZW50OiBhbnkpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkU3RlcCA9IGV2ZW50LnN0ZXA7XHJcblxyXG4gICAgICAgIHN3aXRjaCAodGhpcy5zZWxlY3RlZFN0ZXAuZXZlbnRUeXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgRXZlbnRPcmlnaW4uQkFMQU5DRV9FTlRSWV9DT05UUk9MOlxyXG4gICAgICAgICAgICBjYXNlIEV2ZW50T3JpZ2luLlRJQ0tFVDpcclxuICAgICAgICAgICAgY2FzZSBFdmVudE9yaWdpbi5JTlZPSUNFOlxyXG4gICAgICAgICAgICBjYXNlIEV2ZW50T3JpZ2luLkNSRUFURV9JTlZPSUNFOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zaWRlYmFyTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJhbSA9IEpTT04ucGFyc2UodGhpcy5zZWxlY3RlZFN0ZXAuaXRlbS5pbnB1dCk7XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgcHJvZHVjZXJJbnZvaWNlSWQgPSBwYXJhbS5wcm9kdWNlckludm9pY2VJZHMgPyBwYXJhbS5wcm9kdWNlckludm9pY2VJZHNbMF1cclxuICAgICAgICAgICAgICAgICAgICA6IHBhcmFtLmludm9pY2UuZ2VuZXJhbERhdGEudHJhbnNhY3Rpb25hbElkO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuZXZlbnRDb250cm9sQm9hcmRTZXJ2aWNlLnByb2R1Y2VySW52b2ljZVNlcnZpY2UuZ2V0KHByb2R1Y2VySW52b2ljZUlkKVxyXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxyXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjZXJJbnZvaWNlID0gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNpZGViYXJMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNpZGViYXJMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBFdmVudE9yaWdpbi5GSVhBVElPTjpcclxuICAgICAgICAgICAgY2FzZSBFdmVudE9yaWdpbi5DQU5DRUxfRklYQVRJT046XHJcbiAgICAgICAgICAgIGNhc2UgRXZlbnRPcmlnaW4uQ0hBTkdFX1JFUVVFU1Q6XHJcbiAgICAgICAgICAgIGNhc2UgRXZlbnRPcmlnaW4uVFJBTlNGRVI6XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2hvd1JlcHJvY2Vzc0J1dHRvbiA9IGV2ZW50LnN0ZXAuc3RhdGUgPT09IFN0ZXBTdGF0ZS5XYXJuaW5nO1xyXG4gICAgICAgIHRoaXMuc2lkZWJhclRpdGxlID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuZXZlbnRfc2lkZWJhcl90aXRsZScsIHsgZXZlbnQ6IGV2ZW50LnN0ZXAubGFiZWwgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuc2hvd1NpZGViYXIgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZXByb2Nlc3NFdmVudCgpIHtcclxuICAgICAgICBjb25zdCByZXByb2Nlc3NFdmVudE9iajogUmVwcm9jZXNzRmFpbGVkRXZlbnQgPSB7XHJcbiAgICAgICAgICAgIGV2ZW50Q29udHJvbEl0ZW1JZDogdGhpcy5zZWxlY3RlZFN0ZXAuaXRlbS5pZFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5ldmVudENvbnRyb2xCb2FyZFNlcnZpY2UuZXZlbnRDb250cm9sSXRlbVNlcnZpY2UucmVwcm9jZXNzRmFpbGVkRXZlbnQocmVwcm9jZXNzRXZlbnRPYmopXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWRkTWVzc2FnZShcclxuICAgICAgICAgICAgICAgICAgICAnaW5mbycsXHJcbiAgICAgICAgICAgICAgICAgICAgJ2Fncm8uYW5ndWxhcl9jb21wb25lbnRzLnJlcHJvY2Vzc2luZ19ldmVudF9tZXNzYWdlX3RpdGxlJyxcclxuICAgICAgICAgICAgICAgICAgICAnYWdyby5hbmd1bGFyX2NvbXBvbmVudHMucmVwcm9jZXNzaW5nX2V2ZW50X21lc3NhZ2VfZGVzY3JpcHRpb24nKTtcclxuICAgICAgICAgICAgfSwgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hZGRNZXNzYWdlKFxyXG4gICAgICAgICAgICAgICAgICAgICdlcnJvcicsXHJcbiAgICAgICAgICAgICAgICAgICAgJ2Fncm8uYW5ndWxhcl9jb21wb25lbnRzLmVycm9yX3JlcHJvY2Vzc2luZ19ldmVudF9tZXNzYWdlX3RpdGxlJyxcclxuICAgICAgICAgICAgICAgICAgICAnYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuZXJyb3JfcmVwcm9jZXNzaW5nX2V2ZW50X21lc3NhZ2VfZGVzY3JpcHRpb24nKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhZGRNZXNzYWdlKHNldmVyaXR5OiBzdHJpbmcsIHN1bW1hcnk6IHN0cmluZywgZGV0YWlsOiBzdHJpbmcsIGxpZmUgPSBBR1JPX05VTUJFUlMuRklWRV9TRUNPTkRTKSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xyXG4gICAgICAgICAgICBzZXZlcml0eSxcclxuICAgICAgICAgICAgc3VtbWFyeTogdGhpcy50cmFuc2xhdGUuaW5zdGFudChzdW1tYXJ5KSxcclxuICAgICAgICAgICAgZGV0YWlsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGRldGFpbCksXHJcbiAgICAgICAgICAgIGxpZmVcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb3Blbk1vZGFsKCkge1xyXG4gICAgICAgIHRoaXMuZGlzcGxheU1vZGFsID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHB1YmxpYyBhc3luYyBvcGVuQ2FuY2VsTW9kYWwoKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5jYW5jZWxFdmVudERpYWxvZ0NvbmZpZy5iZWZvcmVPcGVuPy4oKTtcclxuICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihDYW5jZWxFdmVudERpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICAgICAgICBoZWFkZXI6IHRoaXMuY2FuY2VsRXZlbnREaWFsb2dDb25maWc/LmhlYWRlcixcclxuICAgICAgICAgICAgY29udGVudFN0eWxlOiB7IGhlaWdodDogXCIxMDAlXCIgfSxcclxuICAgICAgICAgICAgY2xvc2FibGU6IHRydWUsXHJcbiAgICAgICAgICAgIGNsb3NlT25Fc2NhcGU6IGZhbHNlLFxyXG4gICAgICAgICAgICBkYXRhOiB7IGNhbmNlbEV2ZW50RGlhbG9nQ29uZmlnOiB0aGlzLmNhbmNlbEV2ZW50RGlhbG9nQ29uZmlnIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNvbmZpcm1Nb2RhbCgpIHtcclxuICAgICAgICB0aGlzLnJlcHJvY2Vzc0V2ZW50KCk7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5TW9kYWwgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNob3dTaWRlYmFyID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNhbmNlbE1vZGFsKCkge1xyXG4gICAgICAgIHRoaXMuZGlzcGxheU1vZGFsID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNsb3NlU2lkZWJhcigpIHtcclxuICAgICAgICB0aGlzLnNob3dTaWRlYmFyID0gZmFsc2U7XHJcbiAgICB9XHJcbn1cclxuIl19