@senior-agronegocio/angular-components 0.0.9884 → 0.0.9886

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 (51) hide show
  1. package/bundles/senior-agronegocio-angular-components.umd.js +182 -130
  2. package/bundles/senior-agronegocio-angular-components.umd.js.map +1 -1
  3. package/bundles/senior-agronegocio-angular-components.umd.min.js +2 -2
  4. package/bundles/senior-agronegocio-angular-components.umd.min.js.map +1 -1
  5. package/components/event-control-board/common/event-control-constants.d.ts +2 -8
  6. package/components/event-control-board/event-control-board.component.d.ts +3 -0
  7. package/components/event-control-board/service/rural-estate/rural-estate.d.ts +0 -2
  8. package/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.component.d.ts +6 -5
  9. package/components/modal-invoice-pj/services/agro-invoice/interfaces.d.ts +2 -1
  10. package/components/modal-invoice-pj/services/producer-invoice-fixation/producer-invoice-dto.d.ts +15 -0
  11. package/components/modal-invoice-pj/services/producer-invoice-fixation/producer-invoice.service.d.ts +18 -0
  12. package/esm2015/components/event-control-board/common/event-control-constants.js +1 -7
  13. package/esm2015/components/event-control-board/event-control-board.component.js +49 -46
  14. package/esm2015/components/event-control-board/service/rural-estate/rural-estate.js +1 -10
  15. package/esm2015/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.component.js +44 -26
  16. package/esm2015/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.component.js +2 -2
  17. package/esm2015/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.component.js +2 -2
  18. package/esm2015/components/modal-invoice-pj/modal-invoice-pj-base.class.js +10 -5
  19. package/esm2015/components/modal-invoice-pj/services/agro-invoice/interfaces.js +1 -1
  20. package/esm2015/components/modal-invoice-pj/services/producer-invoice-fixation/producer-invoice-dto.js +1 -0
  21. package/esm2015/components/modal-invoice-pj/services/producer-invoice-fixation/producer-invoice.service.js +63 -0
  22. package/esm2015/services/i18n/en-US.js +2 -1
  23. package/esm2015/services/i18n/es-CO.js +2 -1
  24. package/esm2015/services/i18n/pt-BR.js +6 -4
  25. package/esm2015/services/producer-invoice/producer-invoice.service.js +4 -37
  26. package/esm5/components/event-control-board/common/event-control-constants.js +1 -7
  27. package/esm5/components/event-control-board/event-control-board.component.js +50 -47
  28. package/esm5/components/event-control-board/service/rural-estate/rural-estate.js +1 -10
  29. package/esm5/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.component.js +53 -29
  30. package/esm5/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.component.js +2 -2
  31. package/esm5/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.component.js +2 -2
  32. package/esm5/components/modal-invoice-pj/modal-invoice-pj-base.class.js +16 -5
  33. package/esm5/components/modal-invoice-pj/services/agro-invoice/interfaces.js +1 -1
  34. package/esm5/components/modal-invoice-pj/services/producer-invoice-fixation/producer-invoice-dto.js +1 -0
  35. package/esm5/components/modal-invoice-pj/services/producer-invoice-fixation/producer-invoice.service.js +71 -0
  36. package/esm5/services/i18n/en-US.js +2 -1
  37. package/esm5/services/i18n/es-CO.js +2 -1
  38. package/esm5/services/i18n/pt-BR.js +6 -4
  39. package/esm5/services/producer-invoice/producer-invoice.service.js +4 -42
  40. package/fesm2015/senior-agronegocio-angular-components.js +158 -121
  41. package/fesm2015/senior-agronegocio-angular-components.js.map +1 -1
  42. package/fesm5/senior-agronegocio-angular-components.js +182 -130
  43. package/fesm5/senior-agronegocio-angular-components.js.map +1 -1
  44. package/package.json +1 -1
  45. package/services/i18n/en-US.d.ts +1 -0
  46. package/services/i18n/es-CO.d.ts +1 -0
  47. package/services/i18n/pt-BR.d.ts +1 -0
  48. package/services/producer-invoice/producer-invoice.service.d.ts +1 -4
  49. package/components/event-control-board/common/input-fields.d.ts +0 -5
  50. package/esm2015/components/event-control-board/common/input-fields.js +0 -7
  51. package/esm5/components/event-control-board/common/input-fields.js +0 -7
@@ -1,5 +1,4 @@
1
1
  import { EventOperation } from "./event-operation";
2
- import { InputFields } from "./input-fields";
3
2
  export var eventItem = [
4
3
  { label: "agro.angular_components.ticket_event", value: EventOperation.TICKET },
5
4
  { label: "agro.angular_components.provisional_event", value: EventOperation.PROVISIONAL },
@@ -21,11 +20,6 @@ export var eventItem = [
21
20
  label: "agro.angular_components." + EventOperation.INVOICE_CLOSE_INVOICE,
22
21
  value: EventOperation.INVOICE_CLOSE_INVOICE,
23
22
  },
24
- {
25
- label: "agro.angular_components." + EventOperation.INVOICE_CLOSE_INVOICE,
26
- value: EventOperation.INVOICE_CLOSE_INVOICE,
27
- subLabelField: InputFields.AGRO_INVOICE_TYPE,
28
- },
29
23
  { label: "agro.angular_components." + EventOperation.REPROCESS_INVOICE, value: EventOperation.REPROCESS_INVOICE },
30
24
  { label: "agro.angular_components." + EventOperation.EFFECTIVE_CONFIRMATION, value: EventOperation.EFFECTIVE_CONFIRMATION },
31
25
  { label: "agro.angular_components." + EventOperation.CHANGE_REQUEST, value: EventOperation.CHANGE_REQUEST },
@@ -110,4 +104,4 @@ export var eventItem = [
110
104
  value: EventOperation.REOPEN_INVOICE_FIXATION,
111
105
  },
112
106
  ];
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtY29udHJvbC1jb25zdGFudHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZXZlbnQtY29udHJvbC1ib2FyZC9jb21tb24vZXZlbnQtY29udHJvbC1jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxNQUFNLENBQUMsSUFBTSxTQUFTLEdBQUc7SUFDckIsRUFBRSxLQUFLLEVBQUUsc0NBQXNDLEVBQUUsS0FBSyxFQUFFLGNBQWMsQ0FBQyxNQUFNLEVBQUU7SUFDL0UsRUFBRSxLQUFLLEVBQUUsMkNBQTJDLEVBQUUsS0FBSyxFQUFFLGNBQWMsQ0FBQyxXQUFXLEVBQUU7SUFDekY7UUFDSSxLQUFLLEVBQUUsaURBQWlEO1FBQ3hELEtBQUssRUFBRSxjQUFjLENBQUMsY0FBYztLQUN2QztJQUNELEVBQUUsS0FBSyxFQUFFLGtEQUFrRCxFQUFFLEtBQUssRUFBRSxjQUFjLENBQUMsa0JBQWtCLEVBQUU7SUFDdkcsRUFBRSxLQUFLLEVBQUUseUNBQXlDLEVBQUUsS0FBSyxFQUFFLGNBQWMsQ0FBQyxTQUFTLEVBQUU7SUFDckYsRUFBRSxLQUFLLEVBQUUsc0RBQXNELEVBQUUsS0FBSyxFQUFFLGNBQWMsQ0FBQyxzQkFBc0IsRUFBRTtJQUMvRyxFQUFFLEtBQUssRUFBRSxzREFBc0QsRUFBRSxLQUFLLEVBQUUsY0FBYyxDQUFDLGNBQWMsRUFBRTtJQUN2RyxFQUFFLEtBQUssRUFBRSwrQ0FBK0MsRUFBRSxLQUFLLEVBQUUsY0FBYyxDQUFDLGVBQWUsRUFBRTtJQUNqRyxFQUFFLEtBQUssRUFBRSx3Q0FBd0MsRUFBRSxLQUFLLEVBQUUsY0FBYyxDQUFDLGdCQUFnQixFQUFF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cG9ydCB7IEV2ZW50T3BlcmF0aW9uIH0gZnJvbSBcIi4vZXZlbnQtb3BlcmF0aW9uXCI7XHJcbmltcG9ydCB7IElucHV0RmllbGRzIH0gZnJvbSBcIi4vaW5wdXQtZmllbGRzXCI7XHJcblxyXG5leHBvcnQgY29uc3QgZXZlbnRJdGVtID0gW1xyXG4gICAgeyBsYWJlbDogXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy50aWNrZXRfZXZlbnRcIiwgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLlRJQ0tFVCB9LFxyXG4gICAgeyBsYWJlbDogXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5wcm92aXNpb25hbF9ldmVudFwiLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uUFJPVklTSU9OQUwgfSxcclxuICAgIHtcclxuICAgICAgICBsYWJlbDogXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5DUkVBVEVfSU5WT0lDRV9GSVhBVElPTlwiLFxyXG4gICAgICAgIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5DUkVBVEVfSU5WT0lDRSxcclxuICAgIH0sXHJcbiAgICB7IGxhYmVsOiBcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLnJlbW92ZV9wcm92aXNpb25hbF9ldmVudFwiLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uUkVNT1ZFX1BST1ZJU0lPTkFMIH0sXHJcbiAgICB7IGxhYmVsOiBcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmVmZmVjdGl2ZV9ldmVudFwiLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uRUZGRUNUSVZFIH0sXHJcbiAgICB7IGxhYmVsOiBcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmVmZmVjdGl2ZV9jb25maXJtYXRpb25fZXZlbnRcIiwgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLkVGRkVDVElWRV9DT05GSVJNQVRJT04gfSxcclxuICAgIHsgbGFiZWw6IFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuY2hhbmdlX3JlcXVlc3RfZXZlbnRfc3VtbWFyeVwiLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uQ0hBTkdFX1JFUVVFU1QgfSxcclxuICAgIHsgbGFiZWw6IFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuY2hhbmdlX3Jlc3BvbnNlX2V2ZW50XCIsIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5DSEFOR0VfUkVTUE9OU0UgfSxcclxuICAgIHsgbGFiZWw6IFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuZml4YXRpb25fZXZlbnRcIiwgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLlBST0NFU1NfRklYQVRJT04gfSxcclxuICAgIHtcclxuICAgICAgICBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uQ0FOQ0VMX0lOVk9JQ0V9YCxcclxuICAgICAgICB2YWx1ZTogRXZlbnRPcGVyYXRpb24uQ0FOQ0VMX0lOVk9JQ0UsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5JTlZPSUNFX0NMT1NFX0lOVk9JQ0V9YCxcclxuICAgICAgICB2YWx1ZTogRXZlbnRPcGVyYXRpb24uSU5WT0lDRV9DTE9TRV9JTlZPSUNFLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uSU5WT0lDRV9DTE9TRV9JTlZPSUNFfWAsXHJcbiAgICAgICAgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLklOVk9JQ0VfQ0xPU0VfSU5WT0lDRSxcclxuICAgICAgICBzdWJMYWJlbEZpZWxkOiBJbnB1dEZpZWxkcy5BR1JPX0lOVk9JQ0VfVFlQRSxcclxuICAgIH0sXHJcbiAgICB7IGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5SRVBST0NFU1NfSU5WT0lDRX1gLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uUkVQUk9DRVNTX0lOVk9JQ0UgfSxcclxuICAgIHsgbGFiZWw6IGBhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy4ke0V2ZW50T3BlcmF0aW9uLkVGRkVDVElWRV9DT05GSVJNQVRJT059YCwgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLkVGRkVDVElWRV9DT05GSVJNQVRJT04gfSxcclxuICAgIHsgbGFiZWw6IGBhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy4ke0V2ZW50T3BlcmF0aW9uLkNIQU5HRV9SRVFVRVNUfWAsIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5DSEFOR0VfUkVRVUVTVCB9LFxyXG4gICAgeyBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uQ0hBTkdFX1JFU1BPTlNFfWAsIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5DSEFOR0VfUkVTUE9OU0UgfSxcclxuICAgIHsgbGFiZWw6IGBhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy4ke0V2ZW50T3BlcmF0aW9uLlBST0NFU1NfRklYQVRJT059YCwgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLlBST0NFU1NfRklYQVRJT04gfSxcclxuICAgIHtcclxuICAgICAgICBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uVFJBTlNGRVJfQ1JFQVRFX0lOQ09NSU5HX0lOVk9JQ0V9YCxcclxuICAgICAgICB2YWx1ZTogRXZlbnRPcGVyYXRpb24uVFJBTlNGRVJfQ1JFQVRFX0lOQ09NSU5HX0lOVk9JQ0UsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5UUkFOU0ZFUl9DUkVBVEVfT1VUR09JTkdfSU5WT0lDRX1gLFxyXG4gICAgICAgIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5UUkFOU0ZFUl9DUkVBVEVfT1VUR09JTkdfSU5WT0lDRSxcclxuICAgIH0sXHJcbiAgICB7IGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5UUkFOU0ZFUl9QUk9EVUNFUl9CQUxBTkNFfWAsIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5UUkFOU0ZFUl9QUk9EVUNFUl9CQUxBTkNFIH0sXHJcbiAgICB7IGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5GSU5JU0hfRklOQU5DSUFMX0ZJWEFUSU9OfWAsIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5GSU5JU0hfRklOQU5DSUFMX0ZJWEFUSU9OIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbGFiZWw6IGBhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy4ke0V2ZW50T3BlcmF0aW9uLkZJTklTSF9QUk9EVUNFUl9ORVRfVkFMVUVfRklYQVRJT059YCxcclxuICAgICAgICB2YWx1ZTogRXZlbnRPcGVyYXRpb24uRklOSVNIX1BST0RVQ0VSX05FVF9WQUxVRV9GSVhBVElPTixcclxuICAgIH0sXHJcbiAgICB7IGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5DT05DTFVERV9GSVhBVElPTn1gLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uQ09OQ0xVREVfRklYQVRJT04gfSxcclxuICAgIHsgbGFiZWw6IGBhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy4ke0V2ZW50T3BlcmF0aW9uLkNBTkNFTF9GSU5BTkNJQUxfRklYQVRJT059YCwgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLkNBTkNFTF9GSU5BTkNJQUxfRklYQVRJT04gfSxcclxuICAgIHtcclxuICAgICAgICBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uQ0FOQ0VMX1BST0RVQ0VSX05FVF9WQUxVRV9GSVhBVElPTn1gLFxyXG4gICAgICAgIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5DQU5DRUxfUFJPRFVDRVJfTkVUX1ZBTFVFX0ZJWEFUSU9OLFxyXG4gICAgfSxcclxuICAgIHsgbGFiZWw6IGBhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy4ke0V2ZW50T3BlcmF0aW9uLkNBTkNFTF9GSVhBVElPTn1gLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uQ0FOQ0VMX0ZJWEFUSU9OIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbGFiZWw6IGBhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy4ke0V2ZW50T3BlcmF0aW9uLlRSQU5TRkVSX0NBTkNFTF9JTkNPTUlOR19JTlZPSUNFfWAsXHJcbiAgICAgICAgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLlRSQU5TRkVSX0NBTkNFTF9JTkNPTUlOR19JTlZPSUNFLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uVFJBTlNGRVJfQ0FOQ0VMX09VVEdPSU5HX0lOVk9JQ0V9YCxcclxuICAgICAgICB2YWx1ZTogRXZlbnRPcGVyYXRpb24uVFJBTlNGRVJfQ0FOQ0VMX09VVEdPSU5HX0lOVk9JQ0UsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5UUkFOU0ZFUl9SRVZFUlNFX1BST0RVQ0VSX0JBTEFOQ0V9YCxcclxuICAgICAgICB2YWx1ZTogRXZlbnRPcGVyYXRpb24uVFJBTlNGRVJfUkVWRVJTRV9QUk9EVUNFUl9CQUxBTkNFLFxyXG4gICAgfSxcclxuICAgIHsgbGFiZWw6IGBhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy4ke0V2ZW50T3BlcmF0aW9uLlRSQU5TRkVSX0NPTkNMVURFX0NBTkNFTH1gLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uVFJBTlNGRVJfQ09OQ0xVREVfQ0FOQ0VMIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbGFiZWw6IGBhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy4ke0V2ZW50T3BlcmF0aW9uLkNSRUFURV9JTlZPSUNFX0ZJWEFUSU9OfWAsXHJcbiAgICAgICAgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLkNSRUFURV9JTlZPSUNFX0ZJWEFUSU9OLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uQ0FOQ0VMX0lOVk9JQ0VfRklYQVRJT059YCxcclxuICAgICAgICB2YWx1ZTogRXZlbnRPcGVyYXRpb24uQ0FOQ0VMX0lOVk9JQ0VfRklYQVRJT04sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5DTE9TRV9JTlZPSUNFX0ZJWEFUSU9OfWAsXHJcbiAgICAgICAgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLkNMT1NFX0lOVk9JQ0VfRklYQVRJT04sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5DTE9TRV9JTlZPSUNFX1RSQU5TRkVSfWAsXHJcbiAgICAgICAgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLkNMT1NFX0lOVk9JQ0VfVFJBTlNGRVIsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5SRU9QRU5fSU5WT0lDRV9UUkFOU0ZFUn1gLFxyXG4gICAgICAgIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5SRU9QRU5fSU5WT0lDRV9UUkFOU0ZFUixcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbGFiZWw6IGBhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy4ke0V2ZW50T3BlcmF0aW9uLk9SSUdJTkFUSU9OX0NSRUFURV9JTlZPSUNFfWAsXHJcbiAgICAgICAgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLk9SSUdJTkFUSU9OX0NSRUFURV9JTlZPSUNFLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uVFJBTlNGRVJfQ1JFQVRFX0ZJTkFOQ0lBTF9USVRMRX1gLFxyXG4gICAgICAgIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5UUkFOU0ZFUl9DUkVBVEVfRklOQU5DSUFMX1RJVExFLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uVFJBTlNGRVJfQ0FOQ0VMX0ZJTkFOQ0lBTF9USVRMRX1gLFxyXG4gICAgICAgIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5UUkFOU0ZFUl9DQU5DRUxfRklOQU5DSUFMX1RJVExFLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uVFJBTlNGRVJfQ1JFQVRFX1NFUlZJQ0VfSU5WT0lDRX1gLFxyXG4gICAgICAgIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5UUkFOU0ZFUl9DUkVBVEVfU0VSVklDRV9JTlZPSUNFLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uVFJBTlNGRVJfQ0FOQ0VMX1NFUlZJQ0VfSU5WT0lDRX1gLFxyXG4gICAgICAgIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5UUkFOU0ZFUl9DQU5DRUxfU0VSVklDRV9JTlZPSUNFLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uUkVPUEVOX0lOVk9JQ0VfRklYQVRJT059YCxcclxuICAgICAgICB2YWx1ZTogRXZlbnRPcGVyYXRpb24uUkVPUEVOX0lOVk9JQ0VfRklYQVRJT04sXHJcbiAgICB9LFxyXG5dO1xyXG4iXX0=
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtY29udHJvbC1jb25zdGFudHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZXZlbnQtY29udHJvbC1ib2FyZC9jb21tb24vZXZlbnQtY29udHJvbC1jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRW5ELE1BQU0sQ0FBQyxJQUFNLFNBQVMsR0FBRztJQUNyQixFQUFFLEtBQUssRUFBRSxzQ0FBc0MsRUFBRSxLQUFLLEVBQUUsY0FBYyxDQUFDLE1BQU0sRUFBRTtJQUMvRSxFQUFFLEtBQUssRUFBRSwyQ0FBMkMsRUFBRSxLQUFLLEVBQUUsY0FBYyxDQUFDLFdBQVcsRUFBRTtJQUN6RjtRQUNJLEtBQUssRUFBRSxpREFBaUQ7UUFDeEQsS0FBSyxFQUFFLGNBQWMsQ0FBQyxjQUFjO0tBQ3ZDO0lBQ0QsRUFBRSxLQUFLLEVBQUUsa0RBQWtELEVBQUUsS0FBSyxFQUFFLGNBQWMsQ0FBQyxrQkFBa0IsRUFBRTtJQUN2RyxFQUFFLEtBQUssRUFBRSx5Q0FBeUMsRUFBRSxLQUFLLEVBQUUsY0FBYyxDQUFDLFNBQVMsRUFBRTtJQUNyRixFQUFFLEtBQUssRUFBRSxzREFBc0QsRUFBRSxLQUFLLEVBQUUsY0FBYyxDQUFDLHNCQUFzQixFQUFFO0lBQy9HLEVBQUUsS0FBSyxFQUFFLHNEQUFzRCxFQUFFLEtBQUssRUFBRSxjQUFjLENBQUMsY0FBYyxFQUFFO0lBQ3ZHLEVBQUUsS0FBSyxFQUFFLCtDQUErQyxFQUFFLEtBQUssRUFBRSxjQUFjLENBQUMsZUFBZSxFQUFFO0lBQ2pHLEVBQUUsS0FBSyxFQUFFLHdDQUF3QyxFQUFFLEtBQUssRUFBRSxjQUFjLENBQUMsZ0JBQWdCLEVBQUU7SUFDM0Y7UUFDSSxLQUFLLEVBQUUsNkJBQTJCLGNBQWMsQ0FBQyxjQUFn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QkFBd0I7UUFDekUsS0FBSyxFQUFFLGNBQWMsQ0FBQyxzQkFBc0I7S0FDL0M7SUFDRDtRQUNJLEtBQUssRUFBRSw2QkFBMkIsY0FBYyxDQUFDLHNCQUF3QjtRQUN6RSxLQUFLLEVBQUUsY0FBYyxDQUFDLHNCQUFzQjtLQUMvQztJQUNEO1FBQ0ksS0FBSyxFQUFFLDZCQUEyQixjQUFjLENBQUMsdUJBQXlCO1FBQzFFLEtBQUssRUFBRSxjQUFjLENBQUMsdUJBQXVCO0tBQ2hEO0lBQ0Q7UUFDSSxLQUFLLEVBQUUsNkJBQTJCLGNBQWMsQ0FBQywwQkFBNEI7UUFDN0UsS0FBSyxFQUFFLGNBQWMsQ0FBQywwQkFBMEI7S0FDbkQ7SUFDRDtRQUNJLEtBQUssRUFBRSw2QkFBMkIsY0FBYyxDQUFDLCtCQUFpQztRQUNsRixLQUFLLEVBQUUsY0FBYyxDQUFDLCtCQUErQjtLQUN4RDtJQUNEO1FBQ0ksS0FBSyxFQUFFLDZCQUEyQixjQUFjLENBQUMsK0JBQWlDO1FBQ2xGLEtBQUssRUFBRSxjQUFjLENBQUMsK0JBQStCO0tBQ3hEO0lBQ0Q7UUFDSSxLQUFLLEVBQUUsNkJBQTJCLGNBQWMsQ0FBQywrQkFBaUM7UUFDbEYsS0FBSyxFQUFFLGNBQWMsQ0FBQywrQkFBK0I7S0FDeEQ7SUFDRDtRQUNJLEtBQUssRUFBRSw2QkFBMkIsY0FBYyxDQUFDLCtCQUFpQztRQUNsRixLQUFLLEVBQUUsY0FBYyxDQUFDLCtCQUErQjtLQUN4RDtJQUNEO1FBQ0ksS0FBSyxFQUFFLDZCQUEyQixjQUFjLENBQUMsdUJBQXlCO1FBQzFFLEtBQUssRUFBRSxjQUFjLENBQUMsdUJBQXVCO0tBQ2hEO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50T3BlcmF0aW9uIH0gZnJvbSBcIi4vZXZlbnQtb3BlcmF0aW9uXCI7XHJcblxyXG5leHBvcnQgY29uc3QgZXZlbnRJdGVtID0gW1xyXG4gICAgeyBsYWJlbDogXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy50aWNrZXRfZXZlbnRcIiwgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLlRJQ0tFVCB9LFxyXG4gICAgeyBsYWJlbDogXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5wcm92aXNpb25hbF9ldmVudFwiLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uUFJPVklTSU9OQUwgfSxcclxuICAgIHtcclxuICAgICAgICBsYWJlbDogXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5DUkVBVEVfSU5WT0lDRV9GSVhBVElPTlwiLFxyXG4gICAgICAgIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5DUkVBVEVfSU5WT0lDRSxcclxuICAgIH0sXHJcbiAgICB7IGxhYmVsOiBcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLnJlbW92ZV9wcm92aXNpb25hbF9ldmVudFwiLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uUkVNT1ZFX1BST1ZJU0lPTkFMIH0sXHJcbiAgICB7IGxhYmVsOiBcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmVmZmVjdGl2ZV9ldmVudFwiLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uRUZGRUNUSVZFIH0sXHJcbiAgICB7IGxhYmVsOiBcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmVmZmVjdGl2ZV9jb25maXJtYXRpb25fZXZlbnRcIiwgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLkVGRkVDVElWRV9DT05GSVJNQVRJT04gfSxcclxuICAgIHsgbGFiZWw6IFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuY2hhbmdlX3JlcXVlc3RfZXZlbnRfc3VtbWFyeVwiLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uQ0hBTkdFX1JFUVVFU1QgfSxcclxuICAgIHsgbGFiZWw6IFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuY2hhbmdlX3Jlc3BvbnNlX2V2ZW50XCIsIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5DSEFOR0VfUkVTUE9OU0UgfSxcclxuICAgIHsgbGFiZWw6IFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuZml4YXRpb25fZXZlbnRcIiwgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLlBST0NFU1NfRklYQVRJT04gfSxcclxuICAgIHtcclxuICAgICAgICBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uQ0FOQ0VMX0lOVk9JQ0V9YCxcclxuICAgICAgICB2YWx1ZTogRXZlbnRPcGVyYXRpb24uQ0FOQ0VMX0lOVk9JQ0UsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5JTlZPSUNFX0NMT1NFX0lOVk9JQ0V9YCxcclxuICAgICAgICB2YWx1ZTogRXZlbnRPcGVyYXRpb24uSU5WT0lDRV9DTE9TRV9JTlZPSUNFLFxyXG4gICAgfSxcclxuICAgIHsgbGFiZWw6IGBhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy4ke0V2ZW50T3BlcmF0aW9uLlJFUFJPQ0VTU19JTlZPSUNFfWAsIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5SRVBST0NFU1NfSU5WT0lDRSB9LFxyXG4gICAgeyBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uRUZGRUNUSVZFX0NPTkZJUk1BVElPTn1gLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uRUZGRUNUSVZFX0NPTkZJUk1BVElPTiB9LFxyXG4gICAgeyBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uQ0hBTkdFX1JFUVVFU1R9YCwgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLkNIQU5HRV9SRVFVRVNUIH0sXHJcbiAgICB7IGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5DSEFOR0VfUkVTUE9OU0V9YCwgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLkNIQU5HRV9SRVNQT05TRSB9LFxyXG4gICAgeyBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uUFJPQ0VTU19GSVhBVElPTn1gLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uUFJPQ0VTU19GSVhBVElPTiB9LFxyXG4gICAge1xyXG4gICAgICAgIGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5UUkFOU0ZFUl9DUkVBVEVfSU5DT01JTkdfSU5WT0lDRX1gLFxyXG4gICAgICAgIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5UUkFOU0ZFUl9DUkVBVEVfSU5DT01JTkdfSU5WT0lDRSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbGFiZWw6IGBhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy4ke0V2ZW50T3BlcmF0aW9uLlRSQU5TRkVSX0NSRUFURV9PVVRHT0lOR19JTlZPSUNFfWAsXHJcbiAgICAgICAgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLlRSQU5TRkVSX0NSRUFURV9PVVRHT0lOR19JTlZPSUNFLFxyXG4gICAgfSxcclxuICAgIHsgbGFiZWw6IGBhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy4ke0V2ZW50T3BlcmF0aW9uLlRSQU5TRkVSX1BST0RVQ0VSX0JBTEFOQ0V9YCwgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLlRSQU5TRkVSX1BST0RVQ0VSX0JBTEFOQ0UgfSxcclxuICAgIHsgbGFiZWw6IGBhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy4ke0V2ZW50T3BlcmF0aW9uLkZJTklTSF9GSU5BTkNJQUxfRklYQVRJT059YCwgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLkZJTklTSF9GSU5BTkNJQUxfRklYQVRJT04gfSxcclxuICAgIHtcclxuICAgICAgICBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uRklOSVNIX1BST0RVQ0VSX05FVF9WQUxVRV9GSVhBVElPTn1gLFxyXG4gICAgICAgIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5GSU5JU0hfUFJPRFVDRVJfTkVUX1ZBTFVFX0ZJWEFUSU9OLFxyXG4gICAgfSxcclxuICAgIHsgbGFiZWw6IGBhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy4ke0V2ZW50T3BlcmF0aW9uLkNPTkNMVURFX0ZJWEFUSU9OfWAsIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5DT05DTFVERV9GSVhBVElPTiB9LFxyXG4gICAgeyBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uQ0FOQ0VMX0ZJTkFOQ0lBTF9GSVhBVElPTn1gLCB2YWx1ZTogRXZlbnRPcGVyYXRpb24uQ0FOQ0VMX0ZJTkFOQ0lBTF9GSVhBVElPTiB9LFxyXG4gICAge1xyXG4gICAgICAgIGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5DQU5DRUxfUFJPRFVDRVJfTkVUX1ZBTFVFX0ZJWEFUSU9OfWAsXHJcbiAgICAgICAgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLkNBTkNFTF9QUk9EVUNFUl9ORVRfVkFMVUVfRklYQVRJT04sXHJcbiAgICB9LFxyXG4gICAgeyBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uQ0FOQ0VMX0ZJWEFUSU9OfWAsIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5DQU5DRUxfRklYQVRJT04gfSxcclxuICAgIHtcclxuICAgICAgICBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uVFJBTlNGRVJfQ0FOQ0VMX0lOQ09NSU5HX0lOVk9JQ0V9YCxcclxuICAgICAgICB2YWx1ZTogRXZlbnRPcGVyYXRpb24uVFJBTlNGRVJfQ0FOQ0VMX0lOQ09NSU5HX0lOVk9JQ0UsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5UUkFOU0ZFUl9DQU5DRUxfT1VUR09JTkdfSU5WT0lDRX1gLFxyXG4gICAgICAgIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5UUkFOU0ZFUl9DQU5DRUxfT1VUR09JTkdfSU5WT0lDRSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbGFiZWw6IGBhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy4ke0V2ZW50T3BlcmF0aW9uLlRSQU5TRkVSX1JFVkVSU0VfUFJPRFVDRVJfQkFMQU5DRX1gLFxyXG4gICAgICAgIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5UUkFOU0ZFUl9SRVZFUlNFX1BST0RVQ0VSX0JBTEFOQ0UsXHJcbiAgICB9LFxyXG4gICAgeyBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uVFJBTlNGRVJfQ09OQ0xVREVfQ0FOQ0VMfWAsIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5UUkFOU0ZFUl9DT05DTFVERV9DQU5DRUwgfSxcclxuICAgIHtcclxuICAgICAgICBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uQ1JFQVRFX0lOVk9JQ0VfRklYQVRJT059YCxcclxuICAgICAgICB2YWx1ZTogRXZlbnRPcGVyYXRpb24uQ1JFQVRFX0lOVk9JQ0VfRklYQVRJT04sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5DQU5DRUxfSU5WT0lDRV9GSVhBVElPTn1gLFxyXG4gICAgICAgIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5DQU5DRUxfSU5WT0lDRV9GSVhBVElPTixcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbGFiZWw6IGBhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy4ke0V2ZW50T3BlcmF0aW9uLkNMT1NFX0lOVk9JQ0VfRklYQVRJT059YCxcclxuICAgICAgICB2YWx1ZTogRXZlbnRPcGVyYXRpb24uQ0xPU0VfSU5WT0lDRV9GSVhBVElPTixcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbGFiZWw6IGBhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy4ke0V2ZW50T3BlcmF0aW9uLkNMT1NFX0lOVk9JQ0VfVFJBTlNGRVJ9YCxcclxuICAgICAgICB2YWx1ZTogRXZlbnRPcGVyYXRpb24uQ0xPU0VfSU5WT0lDRV9UUkFOU0ZFUixcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbGFiZWw6IGBhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy4ke0V2ZW50T3BlcmF0aW9uLlJFT1BFTl9JTlZPSUNFX1RSQU5TRkVSfWAsXHJcbiAgICAgICAgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLlJFT1BFTl9JTlZPSUNFX1RSQU5TRkVSLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBsYWJlbDogYGFncm8uYW5ndWxhcl9jb21wb25lbnRzLiR7RXZlbnRPcGVyYXRpb24uT1JJR0lOQVRJT05fQ1JFQVRFX0lOVk9JQ0V9YCxcclxuICAgICAgICB2YWx1ZTogRXZlbnRPcGVyYXRpb24uT1JJR0lOQVRJT05fQ1JFQVRFX0lOVk9JQ0UsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5UUkFOU0ZFUl9DUkVBVEVfRklOQU5DSUFMX1RJVExFfWAsXHJcbiAgICAgICAgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLlRSQU5TRkVSX0NSRUFURV9GSU5BTkNJQUxfVElUTEUsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5UUkFOU0ZFUl9DQU5DRUxfRklOQU5DSUFMX1RJVExFfWAsXHJcbiAgICAgICAgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLlRSQU5TRkVSX0NBTkNFTF9GSU5BTkNJQUxfVElUTEUsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5UUkFOU0ZFUl9DUkVBVEVfU0VSVklDRV9JTlZPSUNFfWAsXHJcbiAgICAgICAgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLlRSQU5TRkVSX0NSRUFURV9TRVJWSUNFX0lOVk9JQ0UsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5UUkFOU0ZFUl9DQU5DRUxfU0VSVklDRV9JTlZPSUNFfWAsXHJcbiAgICAgICAgdmFsdWU6IEV2ZW50T3BlcmF0aW9uLlRSQU5TRkVSX0NBTkNFTF9TRVJWSUNFX0lOVk9JQ0UsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGxhYmVsOiBgYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuJHtFdmVudE9wZXJhdGlvbi5SRU9QRU5fSU5WT0lDRV9GSVhBVElPTn1gLFxyXG4gICAgICAgIHZhbHVlOiBFdmVudE9wZXJhdGlvbi5SRU9QRU5fSU5WT0lDRV9GSVhBVElPTixcclxuICAgIH0sXHJcbl07XHJcbiJdfQ==
@@ -381,7 +381,7 @@ var EventControlBoardComponent = /** @class */ (function () {
381
381
  if (prescriptionOperations.includes(eventOperation)) {
382
382
  formattedSubtitle = this.translate.instant('agro.angular_components.new_prescription_page', { count: subTitle });
383
383
  }
384
- return formattedSubtitle;
384
+ return formattedSubtitle !== null && formattedSubtitle !== void 0 ? formattedSubtitle : null;
385
385
  };
386
386
  EventControlBoardComponent.prototype.onGridChange = function (event) {
387
387
  var size = event === null || event === void 0 ? void 0 : event.rows;
@@ -444,57 +444,60 @@ var EventControlBoardComponent = /** @class */ (function () {
444
444
  return producerBalanceEntryControlId ? producerBalanceEntryControlId : null;
445
445
  };
446
446
  EventControlBoardComponent.prototype.stepSelected = function (event) {
447
- var _this = this;
448
447
  this.selectedStep = event.step;
449
448
  this.applySidebarTitle("");
450
- switch (this.selectedStep.eventType) {
451
- case EventOrigin.BALANCE_ENTRY_CONTROL:
452
- case EventOrigin.TICKET:
453
- case EventOrigin.INVOICE:
454
- case EventOrigin.CREATE_INVOICE:
455
- this.sidebarLoading = true;
456
- {
457
- var param = JSON.parse(this.selectedStep.item.input);
458
- var producerInvoiceId = this.getProducerInvoiceIdFromParams(param);
459
- var filterQuery = "";
460
- if (!producerInvoiceId) {
461
- var producerBalanceEntryControlId = this.getProducerBalanceEntryControlIdFromParams(param);
462
- if (!producerBalanceEntryControlId) {
463
- this.sidebarLoading = false;
464
- return;
465
- }
466
- filterQuery = "producerBalanceEntryControl.id eq '" + producerBalanceEntryControlId + "'";
467
- }
468
- else {
469
- filterQuery = "id eq '" + producerInvoiceId + "'";
470
- }
471
- this.producerInvoiceService
472
- .list({
473
- displayFields: ["*", "producerBalanceEntryControl.*", "producerBalanceEntryControl.producer.*"],
474
- filterQuery: filterQuery,
475
- page: 0,
476
- size: 1,
477
- })
478
- .pipe(takeUntil(this.ngUnsubscribe))
479
- .subscribe(function (result) {
480
- _this.producerInvoice = result === null || result === void 0 ? void 0 : result.contents[0];
481
- _this.producerInvoice;
482
- _this.sidebarLoading = false;
483
- _this.applySidebarTitle(_this.getProducerInvoiceNumberAndSerie());
484
- }, function () {
485
- _this.sidebarLoading = false;
486
- });
487
- }
488
- break;
489
- case EventOrigin.FIXATION:
490
- case EventOrigin.CANCEL_FIXATION:
491
- case EventOrigin.CHANGE_REQUEST:
492
- case EventOrigin.TRANSFER:
493
- break;
449
+ if (this.shouldLoadProducerInvoice(this.selectedStep.eventType)) {
450
+ this.loadSelectedStepProducerInvoice();
494
451
  }
495
452
  this.showReprocessButton = event.step.state === StepState.Warning;
496
453
  this.showSidebar = true;
497
454
  };
455
+ EventControlBoardComponent.prototype.shouldLoadProducerInvoice = function (eventType) {
456
+ return [
457
+ EventOrigin.BALANCE_ENTRY_CONTROL,
458
+ EventOrigin.TICKET,
459
+ EventOrigin.INVOICE,
460
+ EventOrigin.CREATE_INVOICE,
461
+ EventOrigin.CLOSE_INVOICE,
462
+ ].includes(eventType);
463
+ };
464
+ EventControlBoardComponent.prototype.loadSelectedStepProducerInvoice = function () {
465
+ var _this = this;
466
+ this.sidebarLoading = true;
467
+ var param = JSON.parse(this.selectedStep.item.input);
468
+ var filterQuery = this.getProducerInvoiceFilterQuery(param);
469
+ if (!filterQuery) {
470
+ this.sidebarLoading = false;
471
+ return;
472
+ }
473
+ this.producerInvoiceService
474
+ .list({
475
+ displayFields: ["*", "producerBalanceEntryControl.*", "producerBalanceEntryControl.producer.*"],
476
+ filterQuery: filterQuery,
477
+ page: 0,
478
+ size: 1,
479
+ })
480
+ .pipe(takeUntil(this.ngUnsubscribe))
481
+ .subscribe(function (result) {
482
+ _this.producerInvoice = result === null || result === void 0 ? void 0 : result.contents[0];
483
+ _this.producerInvoice;
484
+ _this.sidebarLoading = false;
485
+ _this.applySidebarTitle(_this.getProducerInvoiceNumberAndSerie());
486
+ }, function () {
487
+ _this.sidebarLoading = false;
488
+ });
489
+ };
490
+ EventControlBoardComponent.prototype.getProducerInvoiceFilterQuery = function (param) {
491
+ var producerInvoiceId = this.getProducerInvoiceIdFromParams(param);
492
+ if (producerInvoiceId) {
493
+ return "id eq '" + producerInvoiceId + "'";
494
+ }
495
+ var producerBalanceEntryControlId = this.getProducerBalanceEntryControlIdFromParams(param);
496
+ if (!producerBalanceEntryControlId) {
497
+ return null;
498
+ }
499
+ return "producerBalanceEntryControl.id eq '" + producerBalanceEntryControlId + "'";
500
+ };
498
501
  EventControlBoardComponent.prototype.applySidebarTitle = function (title) {
499
502
  this.sidebarTitle = this.translate.instant("agro.angular_components.event_sidebar_title", { eventNumber: title });
500
503
  };
@@ -617,4 +620,4 @@ var EventControlBoardComponent = /** @class */ (function () {
617
620
  return EventControlBoardComponent;
618
621
  }());
619
622
  export { EventControlBoardComponent };
620
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtY29udHJvbC1ib2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZXZlbnQtY29udHJvbC1ib2FyZC9ldmVudC1jb250cm9sLWJvYXJkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxRQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBZ0MsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFRLFNBQVMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hILE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFNUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBSTlFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBRXhILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzlFLElBQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQVFqQztJQW1ESSxvQ0FDcUIsU0FBZ0MsRUFDaEMsV0FBd0IsRUFDeEIsZ0JBQWtDLEVBQ2xDLG1CQUF3QyxFQUN4Qyx1QkFBZ0QsRUFDaEQsdUJBQWdELEVBQ2hELHNCQUE4QyxFQUM5QyxjQUE4QixFQUM5QixhQUE0QjtRQVI1QixjQUFTLEdBQVQsU0FBUyxDQUF1QjtRQUNoQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBQ2hELDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBakR2QyxtQkFBYyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBSS9ELFVBQUssR0FBVyxFQUFFLENBQUM7UUFHbkIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBVTVCLHFCQUFnQixHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUM7UUFDckMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFFckIsbUJBQWMsR0FBRyxjQUFjLENBQUM7UUFDaEMsZ0JBQVcsR0FBRyxXQUFXLENBQUM7UUFFMUIsZ0JBQVcsR0FBUSxFQUFFLENBQUM7UUFDdEIsaUJBQVksR0FBUSxFQUFFLENBQUM7UUFFdkIsc0JBQWlCLEdBQVE7WUFDNUIsSUFBSSxFQUFFLFlBQVksQ0FBQyxJQUFJO1lBQ3ZCLElBQUksRUFBRSxZQUFZLENBQUMsR0FBRztZQUN0QixhQUFhLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3RDLElBQUksRUFBRSxFQUFFO1lBQ1IsVUFBVSxFQUFFLEVBQUU7U0FDakIsQ0FBQztRQUVlLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM5QixjQUFTLEdBQUcsU0FBUyxDQUFDO1FBQ3RCLHlCQUFvQixHQUFHLG9CQUFvQixDQUFDO1FBYXpELGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFWSw2Q0FBUSxHQUFyQjs7O2dCQUNJLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN6QyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Ozs7S0FDeEI7SUFFTSxnREFBVyxHQUFsQixVQUFtQixPQUFzQjtRQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN2QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDeEI7UUFFRCxJQUFJLENBQUMsZ0NBQWdDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLHlDQUF5QyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyx5Q0FBeUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVPLHFFQUFnQyxHQUF4QyxVQUF5QyxPQUFzQjs7UUFDM0QsSUFBSSxPQUFPLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxLQUFLLE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFO1lBQ25GLE1BQUEsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLDBDQUFFLFFBQVEsT0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksbUNBQUksSUFBSSxFQUFFO1NBQ3ZGO1FBRUQsSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxLQUFLLE9BQU8sQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFO1lBQ2hGLE1BQUEsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLDBDQUFFLFFBQVEsT0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFlBQVksbUNBQUksSUFBSSxFQUFFO1NBQ3JGO0lBQ0wsQ0FBQztJQUVPLDhFQUF5QyxHQUFqRCxVQUFrRCxPQUFzQjs7UUFDcEUsSUFBSSxPQUFPLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsWUFBWSxLQUFLLE9BQU8sQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFO1lBQy9GLE1BQUEsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLDBDQUFFLFFBQVEsT0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFlBQVksbUNBQUksSUFBSSxFQUFFO1NBQy9GO1FBRUQsSUFBSSxPQUFPLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsWUFBWSxLQUFLLE9BQU8sQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFO1lBQy9GLE1BQUEsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLDBDQUFFLFFBQVEsT0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFlBQVksbUNBQUksSUFBSSxFQUFFO1NBQy9GO0lBQ0wsQ0FBQztJQUVPLDhFQUF5QyxHQUFqRCxVQUFrRCxPQUFzQjs7UUFDcEUsSUFBSSxPQUFPLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsWUFBWSxLQUFLLE9BQU8sQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFO1lBQy9GLE1BQUEsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLDBDQUFFLFFBQVEsT0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFlBQVksbUNBQUksSUFBSSxFQUFFO1NBQzFGO1FBRUQsSUFBSSxPQUFPLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsWUFBWSxLQUFLLE9BQU8sQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFO1lBQy9GLE1BQUEsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLDBDQUFFLFFBQVEsT0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFlBQVksbUNBQUksSUFBSSxFQUFFO1NBQy9GO0lBQ0wsQ0FBQztJQUVPLHdEQUFtQixHQUEzQjs7UUFDSSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQzFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsS0FBSyxRQUFFLElBQUksQ0FBQyxPQUFPLG1DQUFJLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNuRixNQUFNLEVBQUUsQ0FBQyxFQUFFLEtBQUssUUFBRSxJQUFJLENBQUMsTUFBTSxtQ0FBSSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDakYsV0FBVyxFQUFFLENBQUMsRUFBRSxLQUFLLFFBQUUsSUFBSSxDQUFDLFdBQVcsbUNBQUksSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzNGLFVBQVUsRUFBRSxDQUFDLEVBQUUsS0FBSyxRQUFFLElBQUksQ0FBQyxVQUFVLG1DQUFJLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN6RixXQUFXLEVBQUUsQ0FBQyxFQUFFLEtBQUssUUFBRSxJQUFJLENBQUMsV0FBVyxtQ0FBSSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDM0YsTUFBTSxFQUFFLENBQUMsRUFBRSxLQUFLLFFBQUUsSUFBSSxDQUFDLFdBQVcsbUNBQUksSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3RGLFdBQVcsRUFBRSxDQUFDLEVBQUUsS0FBSyxRQUFFLElBQUksQ0FBQyxXQUFXLG1DQUFJLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUM5RixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sa0RBQWEsR0FBckI7UUFDSSxJQUFJLENBQUMsWUFBWSxHQUFHO1lBQ2hCLElBQUksU0FBUyxDQUFDO2dCQUNWLElBQUksRUFBRSxTQUFTO2dCQUNmLElBQUksRUFBRSxTQUFTLENBQUMsS0FBSzthQUN4QixDQUFDO1lBQ0YsSUFBSSxTQUFTLENBQUM7Z0JBQ1YsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLFNBQVMsQ0FBQyxLQUFLO2FBQ3hCLENBQUM7WUFDRixJQUFJLFNBQVMsQ0FBQztnQkFDVixJQUFJLEVBQUUsYUFBYTtnQkFDbkIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxLQUFLO2FBQ3hCLENBQUM7WUFDRixJQUFJLFNBQVMsQ0FBQztnQkFDVixJQUFJLEVBQUUsWUFBWTtnQkFDbEIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO2FBQ3pCLENBQUM7WUFDRixJQUFJLFNBQVMsQ0FBQztnQkFDVixJQUFJLEVBQUUsYUFBYTtnQkFDbkIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO2FBQ3ZCLENBQUM7WUFDRixJQUFJLFNBQVMsQ0FBQztnQkFDVixJQUFJLEVBQUUsUUFBUTtnQkFDZCxJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUk7YUFDdkIsQ0FBQztZQUNGLElBQUksU0FBUyxDQUFDO2dCQUNWLElBQUksRUFBRSxhQUFhO2dCQUNuQixJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUk7YUFDdkIsQ0FBQztTQUNMLENBQUM7SUFDTixDQUFDO0lBRU8sbURBQWMsR0FBdEI7UUFDSSxPQUFPO1lBQ0gsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxFQUFFO1lBQ3ZGLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsc0NBQXNDLENBQUMsRUFBRTtZQUMzRixFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLDRDQUE0QyxDQUFDLEVBQUU7WUFDdEcsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxzQ0FBc0MsQ0FBQyxFQUFFO1NBQ25HLENBQUM7SUFDTixDQUFDO0lBRU0sZ0RBQVcsR0FBbEI7UUFDSSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxrREFBYSxHQUFwQjtRQUFBLGlCQTRCQztRQTNCRyxJQUFJLENBQUMsZ0JBQWdCO2FBQ2hCLE9BQU8sQ0FBTTtZQUNWLE1BQU0sRUFBRSxNQUFNO1lBQ2QsT0FBTyxFQUFFLGFBQWE7WUFDdEIsU0FBUyxFQUFFLGdCQUFnQjtTQUM5QixDQUFDO2FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDbkMsU0FBUyxDQUFDLFVBQUMsT0FBTzs7WUFDZixJQUFNLFVBQVUsU0FBRyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsSUFBSSwwQ0FBRSxVQUFVLENBQUM7WUFDN0MsSUFBTSxVQUFVLEdBQUcsS0FBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN0RCxJQUFJLENBQUMsVUFBVSxJQUFJLEtBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxXQUFJLEtBQUksQ0FBQyxRQUFRLDBDQUFFLElBQUksQ0FBQyxVQUFDLElBQVMsSUFBSyxPQUFBLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUE5QixDQUE4QixFQUFDLEVBQUU7Z0JBQ3JILEtBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxVQUFVLFlBQUEsRUFBRSxDQUFDLENBQUM7Z0JBQ2hDLEtBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3JDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFUCxJQUFJLENBQUMsZ0JBQWdCO2FBQ2hCLE9BQU8sQ0FBTTtZQUNWLE1BQU0sRUFBRSxVQUFVO1lBQ2xCLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLFNBQVMsRUFBRSxjQUFjO1NBQzVCLENBQUM7YUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNuQyxTQUFTLENBQUM7WUFDUCxJQUFNLFVBQVUsR0FBRyxLQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RELEtBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxVQUFVLFlBQUEsRUFBRSxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU0sNkNBQVEsR0FBZjtRQUNJLElBQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFVBQVUsWUFBQSxFQUFFLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsVUFBVSxZQUFBLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSw4Q0FBUyxHQUFoQixVQUFpQixVQUFnQjtRQUM3QixJQUFJLFVBQVUsRUFBRTtZQUNaLElBQUksQ0FBQyxpQkFBaUIseUJBQVEsSUFBSSxDQUFDLGlCQUFpQixHQUFLLFVBQVUsQ0FBRSxDQUFDO1NBQ3pFO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDO0lBQ3BELENBQUM7SUFFTywrQ0FBVSxHQUFsQixVQUFtQixVQUFvQjtRQUF2QyxpQkE2QkM7UUE3QmtCLDJCQUFBLEVBQUEsZUFBb0I7O1FBQ25DLElBQUksQ0FBQyxpQkFBaUIseUJBQVEsSUFBSSxDQUFDLGlCQUFpQixHQUFLLFVBQVUsQ0FBRSxDQUFDO1FBRXRFLElBQUksT0FBQSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSwwQ0FBRSxNQUFNLEtBQUksQ0FBQyxFQUFFO1lBQzFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUMzQyxDQUFDLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUN0QyxDQUFDLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDbEQ7UUFFRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUV0RCxJQUFJLENBQUMsbUJBQW1CO2FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7YUFDNUIsSUFBSSxDQUNELFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQzdCLFVBQVUsQ0FBQyxVQUFDLEdBQVE7WUFDaEIsS0FBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDekIsTUFBTSxHQUFHLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FDTDthQUNBLFNBQVMsQ0FBQyxVQUFDLElBQVM7WUFDakIsS0FBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQzlCLEtBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQzNDLElBQUksQ0FBQyxLQUFJLENBQUMsUUFBUSxJQUFJLEtBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLFlBQVksQ0FBQyxJQUFJLEVBQUU7Z0JBQzdELEtBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO2dCQUN6QixPQUFPO2FBQ1Y7WUFDRCxLQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFTyw4Q0FBUyxHQUFqQjs7UUFDWSxJQUFBLDhDQUFVLENBQTRCO1FBQzlDLElBQU0sT0FBTyxHQUFhLEVBQUUsQ0FBQztRQUU3QixVQUFJLFVBQVUsQ0FBQyxTQUFTLENBQUMsMENBQUUsRUFBRSxFQUFFO1lBQzNCLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQWtCLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLE1BQUcsQ0FBQyxDQUFDO1NBQy9EO1FBRUQsVUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLDBDQUFFLEVBQUUsRUFBRTtZQUMxQixPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFrQixVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFHLENBQUMsQ0FBQztTQUM5RDtRQUVELElBQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM5QyxJQUFJLFdBQVcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3JFLElBQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBQyxJQUFZLElBQUssT0FBQSxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFsQixDQUFrQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlFLE9BQU8sQ0FBQyxJQUFJLENBQUMscUJBQW1CLEtBQUssTUFBRyxDQUFDLENBQUM7U0FDN0M7UUFFRCxJQUFJLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUMxQixPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFrQixVQUFVLENBQUMsWUFBWSxDQUFDLE1BQUcsQ0FBQyxDQUFDO1NBQy9EO1FBRUQsSUFBSSxVQUFVLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDM0IsT0FBTyxDQUFDLElBQUksQ0FBQyxxQkFBbUIsVUFBVSxDQUFDLGFBQWEsQ0FBQyxNQUFHLENBQUMsQ0FBQztTQUNqRTtRQUVELElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3RCLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUNBQStCLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBRyxDQUFDLENBQUM7U0FDeEU7UUFFRCxJQUFJLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUMzQixPQUFPLENBQUMsSUFBSSxDQUFDLHFCQUFtQixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFHLENBQUMsQ0FBQztZQUNqRixPQUFPLENBQUMsSUFBSSxDQUFDLHFCQUFtQixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFHLENBQUMsQ0FBQztTQUNsRjtRQUVELE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU8sK0NBQVUsR0FBbEIsVUFBbUIsS0FBVTtRQUN6QixJQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUMvRSxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBQ08saURBQVksR0FBcEIsVUFBcUIsS0FBVTtRQUMzQixJQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUNuRixPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRU8scURBQWdCLEdBQXhCO1FBQ0ksT0FBTztZQUNILEdBQUc7WUFDSCxXQUFXO1lBQ1gsVUFBVTtZQUNWLDhCQUE4QjtZQUM5QixxQkFBcUI7WUFDckIsOEJBQThCO1lBQzlCLCtCQUErQjtZQUMvQixpQ0FBaUM7WUFDakMsK0JBQStCO1lBQy9CLDZCQUE2QjtZQUM3QiwyQkFBMkI7WUFDM0IsaUNBQWlDO1lBQ2pDLHlCQUF5QjtZQUN6Qix3QkFBd0I7WUFDeEIseUJBQXlCO1lBQ3pCLDJCQUEyQjtZQUMzQiwwQkFBMEI7WUFDMUIsNEJBQTRCO1lBQzVCLDhCQUE4QjtZQUM5QixpQ0FBaUM7WUFDakMsbUNBQW1DO1NBQ3RDLENBQUM7SUFDTixDQUFDO0lBRU8sNkRBQXdCLEdBQWhDO1FBQUEsaUJBWUM7UUFYRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFDLElBQUk7WUFDdkIsSUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFDLENBQW1CLEVBQUUsQ0FBbUI7Z0JBQ3BGLE9BQU8sQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDO1lBQ25DLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxVQUFDLE1BQXdCLEVBQUUsS0FBYSxJQUFLLE9BQUEsS0FBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFwQyxDQUFvQyxDQUFDLENBQUM7WUFDakgsSUFBTSxXQUFXLEdBQUcsS0FBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzNELElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLEtBQUssT0FBQSxFQUFFLFdBQVcsYUFBQSxFQUFFLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFTyx5REFBb0IsR0FBNUIsVUFBNkIsT0FBMkI7UUFDcEQsSUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FDN0IsVUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksSUFBSyxPQUFBLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFsRSxDQUFrRSxFQUN2RyxDQUFDLENBQUMsQ0FDTCxDQUFDO1FBQ0YsSUFBSSxVQUFVLEtBQUssQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sS0FBSyxXQUFXLENBQUMsT0FBTyxFQUFFO1lBQ3pFLE9BQU8sVUFBVSxHQUFHLENBQUMsQ0FBQztTQUN6QjtRQUNELE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7SUFFTywrQ0FBVSxHQUFsQixVQUFtQixNQUF3QixFQUFFLElBQWtCLEVBQUUsV0FBbUI7UUFDaEYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDL0IsT0FBTztZQUNILElBQUksRUFBRSxNQUFNO1lBQ1osV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVztZQUMzQixLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7WUFDakMsUUFBUSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO1lBQ3JDLFFBQVEsRUFBRSxNQUFNLENBQUMsTUFBTSxLQUFLLFdBQVcsQ0FBQyxPQUFPLElBQUksV0FBVyxLQUFLLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7WUFDbkgsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO1lBQ25DLEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDO1NBQ3pDLENBQUM7SUFDTixDQUFDO0lBRU8sdURBQWtCLEdBQTFCLFVBQTJCLE1BQStCO1FBQ3RELElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxXQUFXLENBQUMsT0FBTyxFQUFFO1lBQ3ZDLE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQztTQUM1QjtRQUNELElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxXQUFXLENBQUMsTUFBTSxFQUFFO1lBQ3RDLE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQztTQUM1QjtRQUNELE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQztJQUM3QixDQUFDO0lBRU8sa0RBQWEsR0FBckIsVUFBc0IsTUFBVzs7UUFDN0IsSUFBTSxVQUFVLFNBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBQyxDQUFDLElBQUssT0FBQSxDQUFDLENBQUMsS0FBSyxLQUFLLE1BQU0sQ0FBQyxjQUFjLEVBQWpDLENBQWlDLENBQUMsMENBQUUsS0FBSyxDQUFDO1FBQ3hGLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0NBQW9DLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUQsSUFBSSxVQUFVLEVBQUU7WUFDWixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQzdDO1FBQ0QsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsMEJBQTBCLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzlGLElBQUksVUFBVSxFQUFFO1lBQ1osT0FBTyxVQUFVLENBQUM7U0FDckI7UUFDRCxPQUFPLE1BQU0sQ0FBQyxjQUFjLENBQUM7SUFDakMsQ0FBQztJQUVPLG1EQUFjLEdBQXRCLFVBQXVCLE1BQXdCOztRQUNuQyxJQUFBLHNDQUFjLEVBQUUsMEJBQVEsQ0FBWTtRQUU1QyxJQUFNLGlCQUFpQixHQUFHO1lBQ3RCLGNBQWMsQ0FBQyx1QkFBdUI7WUFDdEMsY0FBYyxDQUFDLHVCQUF1QjtZQUN0QyxjQUFjLENBQUMsMEJBQTBCO1NBQzVDLENBQUM7UUFFRixJQUFNLHNCQUFzQixHQUFHO1lBQzNCLGNBQWMsQ0FBQyxzQkFBc0I7WUFDckMsY0FBYyxDQUFDLHVCQUF1QjtTQUN6QyxDQUFDO1FBRUYsSUFBTSxzQkFBc0IsR0FBRztZQUMzQixjQUFjLENBQUMsbUNBQW1DO1lBQ2xELGNBQWMsQ0FBQyx1Q0FBdUM7WUFDdEQsY0FBYyxDQUFDLGtDQUFrQztZQUNqRCxjQUFjLENBQUMsK0JBQStCO1lBQzlDLGNBQWMsQ0FBQyx1Q0FBdUM7WUFDdEQsY0FBYyxDQUFDLDZCQUE2QjtZQUM1QyxjQUFjLENBQUMsdUNBQXVDO1lBQ3RELGNBQWMsQ0FBQywrQkFBK0I7WUFDOUMsY0FBYyxDQUFDLGtDQUFrQztTQUNwRCxDQUFDO1FBRUYsSUFBSSxpQkFBaUIsR0FBRyxRQUFRLENBQUM7UUFDakMsSUFBSSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDNUMsSUFBTSxLQUFLLFNBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxVQUFDLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFwQixDQUFvQixDQUFDLDBDQUFFLEtBQUssQ0FBQztZQUNqRixpQkFBaUIsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7U0FDeEU7UUFFRCxJQUFJLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUNqRCxpQkFBaUIsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLGFBQU0sUUFBVSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7U0FDOUQ7UUFFRCxJQUFJLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUNqRCxpQkFBaUIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQywrQ0FBK0MsRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBQ3BIO1FBRUQsT0FBTyxpQkFBaUIsQ0FBQztJQUM3QixDQUFDO0lBSU0saURBQVksR0FBbkIsVUFBb0IsS0FBVTtRQUMxQixJQUFNLElBQUksR0FBRyxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsSUFBSSxDQUFDO1FBQ3pCLElBQU0sSUFBSSxHQUFHLENBQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLEtBQUssSUFBRyxJQUFJLENBQUM7UUFDakMsSUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLElBQUksS0FBSyxZQUFZLENBQUMsR0FBRyxJQUFJLElBQUksS0FBSyxZQUFZLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3RHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLENBQUMsNEJBQTRCLEVBQUUsRUFBRSxJQUFJLE1BQUEsRUFBRSxJQUFJLE1BQUEsRUFBRSxJQUFJLE1BQUEsRUFBRSxDQUFDLENBQUM7U0FDbkc7UUFFRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLE1BQUEsRUFBRSxJQUFJLE1BQUEsRUFBRSxJQUFJLE1BQUEsRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVNLGdEQUFXLEdBQWxCO1FBQ0ksT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxnREFBVyxHQUFsQjtRQUNJLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDO0lBQ3JFLENBQUM7SUFFTSxpREFBWSxHQUFuQjtRQUNJLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLFlBQVksQ0FBQyxJQUFJLEVBQUU7WUFDekYsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUM7U0FDcEQ7UUFDRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNoRSxDQUFDO0lBRU0saURBQVksR0FBbkI7UUFDSSxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFO1lBQ3pGLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQztTQUMzQjtRQUVELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ2hFLENBQUM7SUFFTSxxREFBZ0IsR0FBdkI7UUFDSSxJQUFNLHVCQUF1QixHQUE4QixFQUFFLENBQUM7Z0NBQ25ELEdBQUc7WUFDVixJQUFJLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDekMsT0FBSyxTQUFTLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQUMsR0FBVztvQkFDL0QsdUJBQXVCLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO2dCQUN2QyxDQUFDLENBQUMsQ0FBQzthQUNOOzs7UUFMTCxLQUFLLElBQU0sR0FBRyxJQUFJLG1CQUFtQjtvQkFBMUIsR0FBRztTQU1iO1FBQ0QsT0FBTyx1QkFBdUIsQ0FBQztJQUNuQyxDQUFDO0lBRUQsbUVBQThCLEdBQTlCLFVBQStCLEtBQVU7O1FBQ3JDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDUixPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsYUFBTztrQkFDSCxLQUFLLENBQUMsa0JBQWtCLDBDQUFHLENBQUM7d0JBQzVCLEtBQUssQ0FBQyxPQUFPLDBDQUFFLFdBQVcsMENBQUUsZUFBZTtZQUMzQyxLQUFLLENBQUMsaUJBQWlCO1lBQ3ZCLEtBQUssQ0FBQyxVQUFVO2tCQUNoQixLQUFLLENBQUMsa0JBQWtCLDBDQUFHLENBQUM7U0FDL0IsQ0FBQyxJQUFJLENBQUMsVUFBQyxFQUFFLElBQUssT0FBQSxFQUFFLEVBQUYsQ0FBRSxDQUFDLG1DQUFJLElBQUksQ0FBQztJQUMvQixDQUFDO0lBRUQsK0VBQTBDLEdBQTFDLFVBQTJDLEtBQVU7UUFDekMsSUFBQSxtRUFBNkIsQ0FBVztRQUNoRCxPQUFPLDZCQUE2QixDQUFDLENBQUMsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2hGLENBQUM7SUFFTSxpREFBWSxHQUFuQixVQUFvQixLQUFVO1FBQTlCLGlCQTJEQztRQTFERyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDL0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTNCLFFBQVEsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUU7WUFDakMsS0FBSyxXQUFXLENBQUMscUJBQXFCLENBQUM7WUFDdkMsS0FBSyxXQUFXLENBQUMsTUFBTSxDQUFDO1lBQ3hCLEtBQUssV0FBVyxDQUFDLE9BQU8sQ0FBQztZQUN6QixLQUFLLFdBQVcsQ0FBQyxjQUFjO2dCQUMzQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztnQkFDM0I7b0JBQ0ksSUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDdkQsSUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsOEJBQThCLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3JFLElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQztvQkFFckIsSUFBSSxDQUFDLGlCQUFpQixFQUFFO3dCQUNwQixJQUFNLDZCQUE2QixHQUFHLElBQUksQ0FBQywwQ0FBMEMsQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFFN0YsSUFBSSxDQUFDLDZCQUE2QixFQUFFOzRCQUNoQyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQzs0QkFDNUIsT0FBTzt5QkFDVjt3QkFFRCxXQUFXLEdBQUcsd0NBQXNDLDZCQUE2QixNQUFHLENBQUM7cUJBQ3hGO3lCQUFNO3dCQUNILFdBQVcsR0FBRyxZQUFVLGlCQUFpQixNQUFHLENBQUM7cUJBQ2hEO29CQUVELElBQUksQ0FBQyxzQkFBc0I7eUJBQ3RCLElBQUksQ0FBQzt3QkFDRixhQUFhLEVBQUUsQ0FBQyxHQUFHLEVBQUUsK0JBQStCLEVBQUUsd0NBQXdDLENBQUM7d0JBQy9GLFdBQVcsYUFBQTt3QkFDWCxJQUFJLEVBQUUsQ0FBQzt3QkFDUCxJQUFJLEVBQUUsQ0FBQztxQkFDVixDQUFDO3lCQUNELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO3lCQUNuQyxTQUFTLENBQ04sVUFBQyxNQUFXO3dCQUNSLEtBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDM0MsS0FBSSxDQUFDLGVBQWUsQ0FBQzt3QkFDckIsS0FBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7d0JBQzVCLEtBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFJLENBQUMsZ0NBQWdDLEVBQUUsQ0FBQyxDQUFDO29CQUNwRSxDQUFDLEVBQ0Q7d0JBQ0ksS0FBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7b0JBQ2hDLENBQUMsQ0FDSixDQUFDO2lCQUNUO2dCQUNELE1BQU07WUFDVixLQUFLLFdBQVcsQ0FBQyxRQUFRLENBQUM7WUFDMUIsS0FBSyxXQUFXLENBQUMsZUFBZSxDQUFDO1lBQ2pDLEtBQUssV0FBVyxDQUFDLGNBQWMsQ0FBQztZQUNoQyxLQUFLLFdBQVcsQ0FBQyxRQUFRO2dCQUNyQixNQUFNO1NBQ2I7UUFFRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLE9BQU8sQ0FBQztRQUVsRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRU8sc0RBQWlCLEdBQXpCLFVBQTBCLEtBQWE7UUFDbkMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyw2Q0FBNkMsRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3RILENBQUM7SUFFTyxxRUFBZ0MsR0FBeEM7O1FBQ0ksSUFBSSxPQUFBLElBQUksQ0FBQyxlQUFlLDBDQUFFLE1BQU0sWUFBSSxJQUFJLENBQUMsZUFBZSwwQ0FBRSxNQUFNLENBQUEsRUFBRTtZQUM5RCxPQUFVLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxXQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBUSxDQUFDO1NBQzVFO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRU0sbURBQWMsR0FBckI7UUFBQSxpQkF1QkM7UUF0QkcsSUFBTSxpQkFBaUIsR0FBeUI7WUFDNUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRTtTQUNoRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLHVCQUF1QjthQUN2QixvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQzthQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNuQyxTQUFTLENBQ047WUFDSSxLQUFJLENBQUMsVUFBVSxDQUNYLE1BQU0sRUFDTiwwREFBMEQsRUFDMUQsZ0VBQWdFLENBQ25FLENBQUM7UUFDTixDQUFDLEVBQ0Q7WUFDSSxLQUFJLENBQUMsVUFBVSxDQUNYLE9BQU8sRUFDUCxnRUFBZ0UsRUFDaEUsc0VBQXNFLENBQ3pFLENBQUM7UUFDTixDQUFDLENBQ0osQ0FBQztJQUNWLENBQUM7SUFFTywrQ0FBVSxHQUFsQixVQUFtQixRQUFnQixFQUFFLE9BQWUsRUFBRSxNQUFjLEVBQUUsSUFBZ0M7UUFBaEMscUJBQUEsRUFBQSxPQUFPLFlBQVksQ0FBQyxZQUFZO1FBQ2xHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDO1lBQ3BCLFFBQVEsVUFBQTtZQUNSLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDeEMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUN0QyxJQUFJLE1BQUE7U0FDUCxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sOENBQVMsR0FBaEI7UUFDSSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRVksb0RBQWUsR0FBNUI7Ozs7OzRCQUNJLDRCQUFNLE1BQUEsSUFBSSxDQUFDLHVCQUF1QixFQUFDLFVBQVUscURBQUk7O3dCQUFqRCxTQUFpRCxDQUFDO3dCQUNsRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRTs0QkFDaEQsTUFBTSxRQUFFLElBQUksQ0FBQyx1QkFBdUIsMENBQUUsTUFBTTs0QkFDNUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRTs0QkFDaEMsUUFBUSxFQUFFLElBQUk7NEJBQ2QsYUFBYSxFQUFFLEtBQUs7NEJBQ3BCLElBQUksRUFBRSxFQUFFLHVCQUF1QixFQUFFLElBQUksQ0FBQyx1QkFBdUIsRUFBRTt5QkFDbEUsQ0FBQyxDQUFDOzs7OztLQUNOO0lBRU0saURBQVksR0FBbkI7UUFDSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVNLGdEQUFXLEdBQWxCO1FBQ0ksSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVNLGlEQUFZLEdBQW5CO1FBQ0ksSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDN0IsQ0FBQzs7Z0JBOWpCK0IscUJBQXFCO2dCQUNuQixXQUFXO2dCQUNOLGdCQUFnQjtnQkFDYixtQkFBbUI7Z0JBQ2YsdUJBQXVCO2dCQUN2Qix1QkFBdUI7Z0JBQ3hCLHNCQUFzQjtnQkFDOUIsY0FBYztnQkFDZixhQUFhOztJQTNEeEM7UUFBUixLQUFLLEVBQUU7K0RBQW1CO0lBQ2xCO1FBQVIsS0FBSyxFQUFFOzhEQUFrQjtJQUNqQjtRQUFSLEtBQUssRUFBRTttRUFBd0I7SUFDdkI7UUFBUixLQUFLLEVBQUU7bUVBQTJCO0lBQzFCO1FBQVIsS0FBSyxFQUFFO21FQUEyQjtJQUMxQjtRQUFSLEtBQUssRUFBRTtrRUFBcUI7SUFDcEI7UUFBUixLQUFLLEVBQUU7bUVBQW9CO0lBQ25CO1FBQVIsS0FBSyxFQUFFO2tFQUFzQjtJQUNyQjtRQUFSLEtBQUssRUFBRTt3RUFBNEI7SUFDM0I7UUFBUixLQUFLLEVBQUU7K0VBQW1EO0lBQ2pEO1FBQVQsTUFBTSxFQUFFO3NFQUE2RDtJQVg3RCwwQkFBMEI7UUFOdEMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLHFCQUFxQjtZQUMvQixva2lCQUFtRDtZQUVuRCxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDOztTQUN6RCxDQUFDO09BQ1csMEJBQTBCLENBbW5CdEM7SUFBRCxpQ0FBQztDQUFBLEFBbm5CRCxJQW1uQkM7U0FubkJZLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlZ2lzdGVyTG9jYWxlRGF0YSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IGxvY2FsZVB0IGZyb20gXCJAYW5ndWxhci9jb21tb24vbG9jYWxlcy9wdFwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIExPQ0FMRV9JRCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBCYWRnZUNvbG9ycywgQnV0dG9uUHJpb3JpdHksIEZpZWxkVHlwZSwgRm9ybUZpZWxkLCBTdGVwLCBTdGVwU3RhdGUgfSBmcm9tIFwiQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50c1wiO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlLCBNZXNzYWdlU2VydmljZSB9IGZyb20gXCJwcmltZW5nXCI7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgQUdST19OVU1CRVJTIH0gZnJvbSBcIi4uLy4uL2VudW1zL2Fncm8tbnVtYmVycy5lbnVtXCI7XHJcbmltcG9ydCB7IExpYlRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9saWItdHJhbnNsYXRpb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBQcm9kdWNlckludm9pY2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3Byb2R1Y2VyLWludm9pY2VcIjtcclxuaW1wb3J0IHsgV2Vic29ja2V0U2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy93ZWJzb2NrZXRcIjtcclxuaW1wb3J0IHsgQ2FuY2VsRXZlbnREaWFsb2dDb25maWcgfSBmcm9tIFwiLi4vY2FuY2VsLWV2ZW50LWRpYWxvZy9jYW5jZWwtZXZlbnQtZGlhbG9nLWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBDYW5jZWxFdmVudERpYWxvZ0NvbXBvbmVudCB9IGZyb20gXCIuLi9jYW5jZWwtZXZlbnQtZGlhbG9nL2NhbmNlbC1ldmVudC1kaWFsb2cuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IGV2ZW50SXRlbSB9IGZyb20gXCIuL2NvbW1vbi9ldmVudC1jb250cm9sLWNvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBFdmVudE9wZXJhdGlvbiB9IGZyb20gXCIuL2NvbW1vbi9ldmVudC1vcGVyYXRpb25cIjtcclxuaW1wb3J0IHsgRXZlbnRPcmlnaW4gfSBmcm9tIFwiLi9jb21tb24vZXZlbnQtb3JpZ2luXCI7XHJcbmltcG9ydCB7IEV2ZW50U3RhdHVzIH0gZnJvbSBcIi4vY29tbW9uL2V2ZW50LXN0YXR1c1wiO1xyXG5pbXBvcnQgeyBpbnZvaWNlVHlwZVRyYW5zbGF0ZSB9IGZyb20gXCIuL2NvbW1vbi9pbnB1dC1maWVsZHMtdHJhbnNsYXRlXCI7XHJcbmltcG9ydCB7IExvb2t1cEVycm9yTWVzc2FnZXMgfSBmcm9tIFwiLi9jb21tb24vbG9va3VwLWVycm9yLW1lc3NhZ2UuY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IEUwNzBFbXAgfSBmcm9tIFwiLi9zZXJ2aWNlL2UwNzBlbXAvZTA3MGVtcFwiO1xyXG5pbXBvcnQgeyBFMDcwRmlsIH0gZnJvbSBcIi4vc2VydmljZS9lMDcwZmlsL2UwNzBmaWxcIjtcclxuaW1wb3J0IHsgRXZlbnRDb250cm9sSXRlbSB9IGZyb20gXCIuL3NlcnZpY2UvZXZlbnQtY29udHJvbC1pdGVtL2V2ZW50LWNvbnRyb2wtaXRlbVwiO1xyXG5pbXBvcnQgeyBFdmVudENvbnRyb2xJdGVtU2VydmljZSwgUmVwcm9jZXNzRmFpbGVkRXZlbnQgfSBmcm9tIFwiLi9zZXJ2aWNlL2V2ZW50LWNvbnRyb2wtaXRlbS9ldmVudC1jb250cm9sLWl0ZW0uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBFdmVudENvbnRyb2wgfSBmcm9tIFwiLi9zZXJ2aWNlL2V2ZW50LWNvbnRyb2wvZXZlbnQtY29udHJvbFwiO1xyXG5pbXBvcnQgeyBFdmVudENvbnRyb2xTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZS9ldmVudC1jb250cm9sL2V2ZW50LWNvbnRyb2wuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBQYWdpbmF0b3JTdG9yYWdlU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2UvcGFnaW5hdG9yLXN0b3JhZ2Uuc2VydmljZVwiO1xyXG5jb25zdCBtb21lbnQgPSByZXF1aXJlKFwibW9tZW50XCIpO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJldmVudC1jb250cm9sLWJvYXJkXCIsXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2V2ZW50LWNvbnRyb2wtYm9hcmQuY29tcG9uZW50Lmh0bWxcIixcclxuICAgIHN0eWxlVXJsczogW1wiLi9ldmVudC1jb250cm9sLWJvYXJkLmNvbXBvbmVudC5zY3NzXCJdLFxyXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBMT0NBTEVfSUQsIHVzZVZhbHVlOiBcInB0LUJSXCIgfV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFdmVudENvbnRyb2xCb2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xyXG4gICAgQElucHV0KCkgY29tcGFueSE6IEUwNzBFbXA7XHJcbiAgICBASW5wdXQoKSBicmFuY2ghOiBFMDcwRmlsO1xyXG4gICAgQElucHV0KCkgY29udHJvbENvZGUhOiBzdHJpbmdbXTtcclxuICAgIEBJbnB1dCgpIGV2ZW50T3JpZ2luITogRXZlbnRPcmlnaW47XHJcbiAgICBASW5wdXQoKSBldmVudFN0YXR1cyE6IEV2ZW50U3RhdHVzO1xyXG4gICAgQElucHV0KCkgZXh0ZXJuYWxJZCE6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGNyZWF0ZWREYXRlITogRGF0ZTtcclxuICAgIEBJbnB1dCgpIHN0YW5kYWxvbmUhOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgc2hvd0NhbmNlbEJ1dHRvbiE6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBjYW5jZWxFdmVudERpYWxvZ0NvbmZpZyE6IENhbmNlbEV2ZW50RGlhbG9nQ29uZmlnO1xyXG4gICAgQE91dHB1dCgpIHByb2Nlc3NlZEV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIHB1YmxpYyBwcm9kdWNlckludm9pY2UhOiBhbnk7XHJcblxyXG4gICAgcHVibGljIHN0ZXBzOiBTdGVwW10gPSBbXTtcclxuICAgIHB1YmxpYyBzZWxlY3RlZFN0ZXA6IGFueTtcclxuICAgIHB1YmxpYyBldmVudElkITogXCJcIjtcclxuICAgIHB1YmxpYyBzaG93U2lkZWJhciA9IGZhbHNlO1xyXG4gICAgcHVibGljIHNob3dSZXByb2Nlc3NCdXR0b24gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBzaWRlYmFyVGl0bGUhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgc2lkZWJhckxvYWRpbmchOiBib29sZWFuO1xyXG5cclxuICAgIHB1YmxpYyBmaWx0ZXJGb3JtR3JvdXAhOiBGb3JtR3JvdXA7XHJcbiAgICBwdWJsaWMgZmlsdGVyRmllbGRzITogRm9ybUZpZWxkW107XHJcblxyXG4gICAgcHVibGljIGdyaWREYXRhITogYW55W107XHJcbiAgICBwdWJsaWMgZ3JpZERhdGFSZXNvbHZlZCE6IGFueVtdO1xyXG4gICAgcHVibGljIGdyaWRDb2x1bW5zITogYW55W107XHJcbiAgICBwdWJsaWMgZ3JpZFRvdGFsUmVjb3JkcyA9IEFHUk9fTlVNQkVSUy5aRVJPO1xyXG4gICAgcHVibGljIGdyaWRMb2FkaW5nID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgZGlzcGxheU1vZGFsID0gZmFsc2U7XHJcblxyXG4gICAgcHVibGljIEJ1dHRvblByaW9yaXR5ID0gQnV0dG9uUHJpb3JpdHk7XHJcbiAgICBwdWJsaWMgQmFkZ2VDb2xvcnMgPSBCYWRnZUNvbG9ycztcclxuXHJcbiAgICBwdWJsaWMgcGVybWlzc2lvbnM6IGFueSA9IHt9O1xyXG4gICAgcHVibGljIGxvY2FsZUNvbmZpZzogYW55ID0ge307XHJcblxyXG4gICAgcHVibGljIGN1cnJlbnRMaXN0UGFyYW1zOiBhbnkgPSB7XHJcbiAgICAgICAgcGFnZTogQUdST19OVU1CRVJTLlpFUk8sXHJcbiAgICAgICAgc2l6ZTogQUdST19OVU1CRVJTLlRFTixcclxuICAgICAgICBkaXNwbGF5RmllbGRzOiB0aGlzLmdldERpc3BsYXlGaWVsZHMoKSxcclxuICAgICAgICBzb3J0OiBbXSxcclxuICAgICAgICBmaWx0ZXJEYXRhOiB7fVxyXG4gICAgfTtcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBldmVudEl0ZW0gPSBldmVudEl0ZW07XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGludm9pY2VUeXBlVHJhbnNsYXRlID0gaW52b2ljZVR5cGVUcmFuc2xhdGU7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IExpYlRyYW5zbGF0aW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHdlYnNvY2tldFNlcnZpY2U6IFdlYnNvY2tldFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBldmVudENvbnRyb2xTZXJ2aWNlOiBFdmVudENvbnRyb2xTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcGFnaW5hdG9yU3RvcmFnZVNlcnZpY2U6IFBhZ2luYXRvclN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRDb250cm9sSXRlbVNlcnZpY2U6IEV2ZW50Q29udHJvbEl0ZW1TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjZXJJbnZvaWNlU2VydmljZTogUHJvZHVjZXJJbnZvaWNlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVQdCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuZ3JpZENvbHVtbnMgPSB0aGlzLnNldEdyaWRDb2x1bW5zKCk7XHJcbiAgICAgICAgdGhpcy5jYWxsV2Vic29ja2V0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBpZiAoIXRoaXMuZmlsdGVyRm9ybUdyb3VwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUZvcm1Hcm91cCgpO1xyXG4gICAgICAgICAgICB0aGlzLnNldEZvcm1GaWVsZHMoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMudXBkYXRlQ29tcGFueUFuZEJyYW5jaEZvcm1GaWVsZHMoY2hhbmdlcyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVFdmVudE9yaWdpbkFuZENvbnRyb2xDb2RlRm9ybUZpZWxkcyhjaGFuZ2VzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUV2ZW50U3RhdHVzQW5kQ3JlYXRlZERhdGVGb3JtRmllbGRzKGNoYW5nZXMpO1xyXG4gICAgICAgIHRoaXMub25TZWFyY2goKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZUNvbXBhbnlBbmRCcmFuY2hGb3JtRmllbGRzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBpZiAoY2hhbmdlcy5jb21wYW55ICYmIGNoYW5nZXMuY29tcGFueS5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuY29tcGFueS5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldChcImNvbXBhbnlcIik/LnNldFZhbHVlKGNoYW5nZXMuY29tcGFueS5jdXJyZW50VmFsdWUgPz8gbnVsbCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY2hhbmdlcy5icmFuY2ggJiYgY2hhbmdlcy5icmFuY2guY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmJyYW5jaC5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldChcImJyYW5jaFwiKT8uc2V0VmFsdWUoY2hhbmdlcy5icmFuY2guY3VycmVudFZhbHVlID8/IG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZUV2ZW50T3JpZ2luQW5kQ29udHJvbENvZGVGb3JtRmllbGRzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBpZiAoY2hhbmdlcy5ldmVudE9yaWdpbiAmJiBjaGFuZ2VzLmV2ZW50T3JpZ2luLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5ldmVudE9yaWdpbi5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldChcImV2ZW50T3JpZ2luXCIpPy5zZXRWYWx1ZShjaGFuZ2VzLmV2ZW50T3JpZ2luLmN1cnJlbnRWYWx1ZSA/PyBudWxsKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjaGFuZ2VzLmNvbnRyb2xDb2RlICYmIGNoYW5nZXMuY29udHJvbENvZGUuY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmNvbnRyb2xDb2RlLnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KFwiY29udHJvbENvZGVcIik/LnNldFZhbHVlKGNoYW5nZXMuY29udHJvbENvZGUuY3VycmVudFZhbHVlID8/IG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZUV2ZW50U3RhdHVzQW5kQ3JlYXRlZERhdGVGb3JtRmllbGRzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBpZiAoY2hhbmdlcy5ldmVudFN0YXR1cyAmJiBjaGFuZ2VzLmV2ZW50U3RhdHVzLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5ldmVudFN0YXR1cy5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldChcInN0YXR1c1wiKT8uc2V0VmFsdWUoY2hhbmdlcy5ldmVudFN0YXR1cy5jdXJyZW50VmFsdWUgPz8gbnVsbCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY2hhbmdlcy5jcmVhdGVkRGF0ZSAmJiBjaGFuZ2VzLmNyZWF0ZWREYXRlLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5jcmVhdGVkRGF0ZS5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldChcImNyZWF0ZWREYXRlXCIpPy5zZXRWYWx1ZShjaGFuZ2VzLmNyZWF0ZWREYXRlLmN1cnJlbnRWYWx1ZSA/PyBudWxsKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplRm9ybUdyb3VwKCkge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgICAgICAgIGNvbXBhbnk6IFt7IHZhbHVlOiB0aGlzLmNvbXBhbnkgPz8gbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFZhbGlkYXRvcnMuY29tcG9zZShbXSldLFxyXG4gICAgICAgICAgICBicmFuY2g6IFt7IHZhbHVlOiB0aGlzLmJyYW5jaCA/PyBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSwgVmFsaWRhdG9ycy5jb21wb3NlKFtdKV0sXHJcbiAgICAgICAgICAgIGNvbnRyb2xDb2RlOiBbeyB2YWx1ZTogdGhpcy5jb250cm9sQ29kZSA/PyBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSwgVmFsaWRhdG9ycy5jb21wb3NlKFtdKV0sXHJcbiAgICAgICAgICAgIGV4dGVybmFsSWQ6IFt7IHZhbHVlOiB0aGlzLmV4dGVybmFsSWQgPz8gbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFZhbGlkYXRvcnMuY29tcG9zZShbXSldLFxyXG4gICAgICAgICAgICBldmVudE9yaWdpbjogW3sgdmFsdWU6IHRoaXMuZXZlbnRPcmlnaW4gPz8gbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFZhbGlkYXRvcnMuY29tcG9zZShbXSldLFxyXG4gICAgICAgICAgICBzdGF0dXM6IFt7IHZhbHVlOiB0aGlzLmV2ZW50U3RhdHVzID8/IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LCBWYWxpZGF0b3JzLmNvbXBvc2UoW10pXSxcclxuICAgICAgICAgICAgY3JlYXRlZERhdGU6IFt7IHZhbHVlOiB0aGlzLmNyZWF0ZWREYXRlID8/IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LCBWYWxpZGF0b3JzLmNvbXBvc2UoW10pXSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldEZvcm1GaWVsZHMoKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJGaWVsZHMgPSBbXHJcbiAgICAgICAgICAgIG5ldyBGb3JtRmllbGQoe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJjb21wYW55XCIsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuQ2hpcHMsXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgRm9ybUZpZWxkKHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiYnJhbmNoXCIsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuQ2hpcHMsXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgRm9ybUZpZWxkKHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiY29udHJvbENvZGVcIixcclxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5DaGlwcyxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBGb3JtRmllbGQoe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJleHRlcm5hbElkXCIsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuU3RyaW5nLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IEZvcm1GaWVsZCh7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcImV2ZW50T3JpZ2luXCIsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuRW51bSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBGb3JtRmllbGQoe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJzdGF0dXNcIixcclxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5FbnVtLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IEZvcm1GaWVsZCh7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcImNyZWF0ZWREYXRlXCIsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuRGF0ZSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldEdyaWRDb2x1bW5zKCkge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgIHsgZmllbGQ6IFwiY29tcGFueVwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5jb21wYW55XCIpIH0sXHJcbiAgICAgICAgICAgIHsgZmllbGQ6IFwiYnJhbmNoXCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmxhYmVsX2JyYW5jaFwiKSB9LFxyXG4gICAgICAgICAgICB7IGZpZWxkOiBcImV2ZW50T3JpZ2luXCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmV2ZW50X29yaWdpbl9sYWJlbFwiKSB9LFxyXG4gICAgICAgICAgICB7IGZpZWxkOiBcImNvbnRyb2xDb2RlXCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmNvbnRyb2xfY29kZVwiKSB9LFxyXG4gICAgICAgIF07XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XHJcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgdGhpcy53ZWJzb2NrZXRTZXJ2aWNlLmRpc2Nvbm5lY3QoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2FsbFdlYnNvY2tldCgpIHtcclxuICAgICAgICB0aGlzLndlYnNvY2tldFNlcnZpY2VcclxuICAgICAgICAgICAgLm9uRXZlbnQ8YW55Pih7XHJcbiAgICAgICAgICAgICAgICBkb21haW46IFwiYWdyb1wiLFxyXG4gICAgICAgICAgICAgICAgc2VydmljZTogXCJhZ3JvX2V2ZW50c1wiLFxyXG4gICAgICAgICAgICAgICAgcHJpbWl0aXZlOiBcInByb2Nlc3NlZEV2ZW50XCIsXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChtZXNzYWdlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBleHRlcm5hbElkID0gbWVzc2FnZT8uZGF0YT8uZXh0ZXJuYWxJZDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlckRhdGEgPSB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFleHRlcm5hbElkIHx8IHRoaXMuZXh0ZXJuYWxJZCA9PT0gZXh0ZXJuYWxJZCB8fCB0aGlzLmdyaWREYXRhPy5zb21lKChpdGVtOiBhbnkpID0+IGl0ZW0uZXh0ZXJuYWxJZCA9PT0gZXh0ZXJuYWxJZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUdyaWQoeyBmaWx0ZXJEYXRhIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc2VkRXZlbnQuZW1pdChtZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMud2Vic29ja2V0U2VydmljZVxyXG4gICAgICAgICAgICAub25FdmVudDxhbnk+KHtcclxuICAgICAgICAgICAgICAgIGRvbWFpbjogXCJwbGF0Zm9ybVwiLFxyXG4gICAgICAgICAgICAgICAgc2VydmljZTogXCJub3RpZmljYXRpb25zXCIsXHJcbiAgICAgICAgICAgICAgICBwcmltaXRpdmU6IFwidXNlck5vdGlmaWVkXCIsXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlckRhdGEgPSB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVHcmlkKHsgZmlsdGVyRGF0YSB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uU2VhcmNoKCkge1xyXG4gICAgICAgIGNvbnN0IGZpbHRlckRhdGEgPSB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgICAgIHRoaXMuZ3JpZExvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMucmVzZXRHcmlkKHsgZmlsdGVyRGF0YSB9KTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUdyaWQoeyBmaWx0ZXJEYXRhIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZXNldEdyaWQobGlzdFBhcmFtcz86IGFueSkge1xyXG4gICAgICAgIGlmIChsaXN0UGFyYW1zKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExpc3RQYXJhbXMgPSB7IC4uLnRoaXMuY3VycmVudExpc3RQYXJhbXMsIC4uLmxpc3RQYXJhbXMgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5wYWdlID0gQUdST19OVU1CRVJTLlpFUk87XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGVHcmlkKGxpc3RQYXJhbXM6IGFueSA9IHt9KSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50TGlzdFBhcmFtcyA9IHsgLi4udGhpcy5jdXJyZW50TGlzdFBhcmFtcywgLi4ubGlzdFBhcmFtcyB9O1xyXG5cclxuICAgICAgICBpZiAodGhpcy5jdXJyZW50TGlzdFBhcmFtcy5zb3J0Py5sZW5ndGggPD0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNvcnQgPSB0aGlzLnN0YW5kYWxvbmUgP1xyXG4gICAgICAgICAgICAgICAgW3sgZmllbGQ6IFwiY3JlYXRlZERhdGVcIiwgb3JkZXI6IDEgfV0gOlxyXG4gICAgICAgICAgICAgICAgW3sgZmllbGQ6IFwibGFzdE1vZGlmaWVkRGF0ZVwiLCBvcmRlcjogLTEgfV07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLmZpbHRlclF1ZXJ5ID0gdGhpcy5nZXRGaWx0ZXIoKTtcclxuXHJcbiAgICAgICAgdGhpcy5ldmVudENvbnRyb2xTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5saXN0KHRoaXMuY3VycmVudExpc3RQYXJhbXMpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JpZExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGxpc3Q6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkRGF0YSA9IGxpc3QuY29udGVudHM7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWRUb3RhbFJlY29yZHMgPSBsaXN0LnRvdGFsRWxlbWVudHM7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZ3JpZERhdGEgfHwgdGhpcy5ncmlkRGF0YS5sZW5ndGggPD0gQUdST19OVU1CRVJTLlpFUk8pIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyaWRMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzRXZlbnRDb250cm9sSXRlbXMoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRGaWx0ZXIoKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCB7IGZpbHRlckRhdGEgfSA9IHRoaXMuY3VycmVudExpc3RQYXJhbXM7XHJcbiAgICAgICAgY29uc3QgZmlsdGVyczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKGZpbHRlckRhdGFbXCJjb21wYW55XCJdPy5pZCkge1xyXG4gICAgICAgICAgICBmaWx0ZXJzLnB1c2goYGUwNzBlbXAuaWQgZXEgJyR7ZmlsdGVyRGF0YVtcImNvbXBhbnlcIl0uaWR9J2ApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGZpbHRlckRhdGFbXCJicmFuY2hcIl0/LmlkKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaChgZTA3MGZpbC5pZCBlcSAnJHtmaWx0ZXJEYXRhW1wiYnJhbmNoXCJdLmlkfSdgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbnRyb2xDb2RlID0gZmlsdGVyRGF0YVtcImNvbnRyb2xDb2RlXCJdO1xyXG4gICAgICAgIGlmIChjb250cm9sQ29kZSAmJiBBcnJheS5pc0FycmF5KGNvbnRyb2xDb2RlKSAmJiBjb250cm9sQ29kZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvZGVzID0gY29udHJvbENvZGUubWFwKChjb2RlOiBzdHJpbmcpID0+IHBhcnNlSW50KGNvZGUsIDEwKSkuam9pbihcIixcIik7XHJcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaChgY29udHJvbENvZGUgaW4gKCR7Y29kZXN9KWApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGZpbHRlckRhdGFbXCJleHRlcm5hbElkXCJdKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaChgZXh0ZXJuYWxJZCBlcSAnJHtmaWx0ZXJEYXRhW1wiZXh0ZXJuYWxJZFwiXX0nYCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZmlsdGVyRGF0YVtcImV2ZW50T3JpZ2luXCJdKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaChgZXZlbnRPcmlnaW4gZXEgJyR7ZmlsdGVyRGF0YVtcImV2ZW50T3JpZ2luXCJdfSdgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChmaWx0ZXJEYXRhW1wic3RhdHVzXCJdKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaChgZXZlbnRDb250cm9sSXRlbS5zdGF0dXMgZXEgJyR7ZmlsdGVyRGF0YVtcInN0YXR1c1wiXX0nYCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZmlsdGVyRGF0YVtcImNyZWF0ZWREYXRlXCJdKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaChgY3JlYXRlZERhdGUgZ2UgJyR7dGhpcy5nZXRTdGFydERhdGUoZmlsdGVyRGF0YVtcImNyZWF0ZWREYXRlXCJdKX0nYCk7XHJcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaChgY3JlYXRlZERhdGUgbGUgJyR7dGhpcy5nZXRFbmREYXRlKGZpbHRlckRhdGFbXCJjcmVhdGVkRGF0ZVwiXSl9J2ApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGZpbHRlcnMuam9pbihcIiBhbmQgXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0RW5kRGF0ZSh2YWx1ZTogYW55KTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBlbmREYXRlID0gbW9tZW50KHZhbHVlKS5lbmRPZihcImRheVwiKS5mb3JtYXQoXCJZWVlZLU1NLUREVEhIOm1tOnNzXCIpICsgXCJaXCI7XHJcbiAgICAgICAgcmV0dXJuIGVuZERhdGU7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIGdldFN0YXJ0RGF0ZSh2YWx1ZTogYW55KTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBzdGFydERhdGUgPSBtb21lbnQodmFsdWUpLnN0YXJ0T2YoXCJkYXlcIikuZm9ybWF0KFwiWVlZWS1NTS1ERFRISDptbTpzc1wiKSArIFwiWlwiO1xyXG4gICAgICAgIHJldHVybiBzdGFydERhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXREaXNwbGF5RmllbGRzKCk6IHN0cmluZ1tdIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICAnKicsXHJcbiAgICAgICAgICAgICdjb21wYW55LionLFxyXG4gICAgICAgICAgICAnYnJhbmNoLionLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5ldmVudERvbWFpbicsXHJcbiAgICAgICAgICAgICdldmVudENvbnRyb2xJdGVtLmlkJyxcclxuICAgICAgICAgICAgJ2V2ZW50Q29udHJvbEl0ZW0uZXZlbnREb21haW4nLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5ldmVudFNlcnZpY2UnLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5ldmVudFByaW1pdGl2ZScsXHJcbiAgICAgICAgICAgICdldmVudENvbnRyb2xJdGVtLmV2ZW50Q29udHJvbCcsXHJcbiAgICAgICAgICAgICdldmVudENvbnRyb2xJdGVtLmV2ZW50R3JvdXAnLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5zZXF1ZW5jZScsXHJcbiAgICAgICAgICAgICdldmVudENvbnRyb2xJdGVtLmV2ZW50T3BlcmF0aW9uJyxcclxuICAgICAgICAgICAgJ2V2ZW50Q29udHJvbEl0ZW0ub3V0cHV0JyxcclxuICAgICAgICAgICAgJ2V2ZW50Q29udHJvbEl0ZW0uaW5wdXQnLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5zdGF0dXMnLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5zdWJUaXRsZScsXHJcbiAgICAgICAgICAgICdldmVudENvbnRyb2xJdGVtLm1lc3NhZ2UnLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5jcmVhdGVkQnknLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5jcmVhdGVkRGF0ZScsXHJcbiAgICAgICAgICAgICdldmVudENvbnRyb2xJdGVtLmxhc3RNb2RpZmllZEJ5JyxcclxuICAgICAgICAgICAgJ2V2ZW50Q29udHJvbEl0ZW0ubGFzdE1vZGlmaWVkRGF0ZScsXHJcbiAgICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHByb2Nlc3NFdmVudENvbnRyb2xJdGVtcygpIHtcclxuICAgICAgICB0aGlzLmdyaWREYXRhLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc29ydGVkSXRlbXMgPSBpdGVtLmV2ZW50Q29udHJvbEl0ZW0uc29ydCgoYTogRXZlbnRDb250cm9sSXRlbSwgYjogRXZlbnRDb250cm9sSXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGEuc2VxdWVuY2UgLSBiLnNlcXVlbmNlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY29uc3Qgc3RlcHMgPSBzb3J0ZWRJdGVtcy5tYXAoKGRldGFpbDogRXZlbnRDb250cm9sSXRlbSwgaW5kZXg6IG51bWJlcikgPT4gdGhpcy5jcmVhdGVTdGVwKGRldGFpbCwgaXRlbSwgaW5kZXgpKTtcclxuICAgICAgICAgICAgY29uc3QgYWN0aXZlSW5kZXggPSB0aGlzLmNhbGN1bGF0ZUFjdGl2ZUluZGV4KHNvcnRlZEl0ZW1zKTtcclxuICAgICAgICAgICAgaXRlbS5ncm91cHMgPSBbeyBzdGVwcywgYWN0aXZlSW5kZXggfV07XHJcbiAgICAgICAgICAgIGl0ZW0uYWN0aXZlSW5kZXggPSBhY3RpdmVJbmRleDtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmdyaWREYXRhUmVzb2x2ZWQgPSB0aGlzLmdyaWREYXRhO1xyXG4gICAgICAgIHRoaXMuZ3JpZExvYWRpbmcgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNhbGN1bGF0ZUFjdGl2ZUluZGV4KGRldGFpbHM6IEV2ZW50Q29udHJvbEl0ZW1bXSk6IG51bWJlciB7XHJcbiAgICAgICAgY29uc3QgbGFzdEFjdGl2ZSA9IGRldGFpbHMucmVkdWNlKFxyXG4gICAgICAgICAgICAobGFzdEluZGV4LCBkZXRhaWwsIGN1cnJlbnRJbmRleCkgPT4gKGRldGFpbC5zdGF0dXMgIT09IEV2ZW50U3RhdHVzLlBFTkRJTkcgPyBjdXJyZW50SW5kZXggOiBsYXN0SW5kZXgpLFxyXG4gICAgICAgICAgICAtMVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGxhc3RBY3RpdmUgIT09IC0xICYmIGRldGFpbHNbbGFzdEFjdGl2ZV0uc3RhdHVzID09PSBFdmVudFN0YXR1cy5TVUNDRVNTKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBsYXN0QWN0aXZlICsgMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGxhc3RBY3RpdmU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjcmVhdGVTdGVwKGRldGFpbDogRXZlbnRDb250cm9sSXRlbSwgaXRlbTogRXZlbnRDb250cm9sLCBkZXRhaWxJbmRleDogbnVtYmVyKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0RldGFpbDonLCBkZXRhaWwpO1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGl0ZW06IGRldGFpbCxcclxuICAgICAgICAgICAgY29udHJvbENvZGU6IGl0ZW0uY29udHJvbENvZGUsXHJcbiAgICAgICAgICAgIGV2ZW50VHlwZTogaXRlbS5ldmVudE9yaWdpbixcclxuICAgICAgICAgICAgbGFiZWw6IHRoaXMuZ2V0RXZlbnRMYWJlbChkZXRhaWwpLFxyXG4gICAgICAgICAgICBzdWJMYWJlbDogdGhpcy5mb3JtYXRTdWJ0aXRsZShkZXRhaWwpLFxyXG4gICAgICAgICAgICBkaXNhYmxlZDogZGV0YWlsLnN0YXR1cyA9PT0gRXZlbnRTdGF0dXMuUEVORElORyAmJiBkZXRhaWxJbmRleCAhPT0gdGhpcy5jYWxjdWxhdGVBY3RpdmVJbmRleChpdGVtLmV2ZW50Q29udHJvbEl0ZW0pLFxyXG4gICAgICAgICAgICB0b29sdGlwOiB0aGlzLmdldEV2ZW50TGFiZWwoZGV0YWlsKSxcclxuICAgICAgICAgICAgc3RhdGU6IHRoaXMuZGV0ZXJtaW5lU3RlcFN0YXRlKGRldGFpbCksXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGRldGVybWluZVN0ZXBTdGF0ZShkZXRhaWw6IHsgc3RhdHVzOiBFdmVudFN0YXR1cyB9KTogU3RlcFN0YXRlIHtcclxuICAgICAgICBpZiAoZGV0YWlsLnN0YXR1cyA9PT0gRXZlbnRTdGF0dXMuU1VDQ0VTUykge1xyXG4gICAgICAgICAgICByZXR1cm4gU3RlcFN0YXRlLlN1Y2Nlc3M7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChkZXRhaWwuc3RhdHVzID09PSBFdmVudFN0YXR1cy5GQUlMRUQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFN0ZXBTdGF0ZS5XYXJuaW5nO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gU3RlcFN0YXRlLkRlZmF1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRFdmVudExhYmVsKGRldGFpbDogYW55KTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBldmVudExhYmVsID0gdGhpcy5ldmVudEl0ZW0uZmluZCgoZSkgPT4gZS52YWx1ZSA9PT0gZGV0YWlsLmV2ZW50T3BlcmF0aW9uKT8ubGFiZWw7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0dldHRpbmcgbGFiZWwgZm9yIGV2ZW50IG9wZXJhdGlvbjonLCBldmVudExhYmVsKTtcclxuICAgICAgICBpZiAoZXZlbnRMYWJlbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudChldmVudExhYmVsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgbG9jYWxMYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5cIiArIGRldGFpbC5ldmVudE9wZXJhdGlvbik7XHJcbiAgICAgICAgaWYgKGxvY2FsTGFiZWwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGxvY2FsTGFiZWw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBkZXRhaWwuZXZlbnRPcGVyYXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBmb3JtYXRTdWJ0aXRsZShkZXRhaWw6IEV2ZW50Q29udHJvbEl0ZW0pOiBzdHJpbmcgfCBudWxsIHtcclxuICAgICAgICBjb25zdCB7IGV2ZW50T3BlcmF0aW9uLCBzdWJUaXRsZSB9ID0gZGV0YWlsO1xyXG5cclxuICAgICAgICBjb25zdCBpbnZvaWNlT3BlcmF0aW9ucyA9IFtcclxuICAgICAgICAgICAgRXZlbnRPcGVyYXRpb24uQ1JFQVRFX0lOVk9JQ0VfRklYQVRJT04sXHJcbiAgICAgICAgICAgIEV2ZW50T3BlcmF0aW9uLkNBTkNFTF9JTlZPSUNFX0ZJWEFUSU9OLFxyXG4gICAgICAgICAgICBFdmVudE9wZXJhdGlvbi5PUklHSU5BVElPTl9DUkVBVEVfSU5WT0lDRVxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIGNvbnN0IG51bWJlclByZWZpeE9wZXJhdGlvbnMgPSBbXHJcbiAgICAgICAgICAgIEV2ZW50T3BlcmF0aW9uLkNMT1NFX0lOVk9JQ0VfRklYQVRJT04sXHJcbiAgICAgICAgICAgIEV2ZW50T3BlcmF0aW9uLlJFT1BFTl9JTlZPSUNFX0ZJWEFUSU9OXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgY29uc3QgcHJlc2NyaXB0aW9uT3BlcmF0aW9ucyA9IFtcclxuICAgICAgICAgICAgRXZlbnRPcGVyYXRpb24uUFJFU0NSSVBUSU9OX0RBVEFfTE9BRF9QUk9EVUNUX1RZUEUsXHJcbiAgICAgICAgICAgIEV2ZW50T3BlcmF0aW9uLlBSRVNDUklQVElPTl9EQVRBX0xPQURfQUNUSVZFX1BSSU5DSVBMRSxcclxuICAgICAgICAgICAgRXZlbnRPcGVyYXRpb24uUFJFU0NSSVBUSU9OX0RBVEFfTE9BRF9GT1JNVUxBVElPTixcclxuICAgICAgICAgICAgRXZlbnRPcGVyYXRpb24uUFJFU0NSSVBUSU9OX0RBVEFfTE9BRF9CVUxMRVRJTixcclxuICAgICAgICAgICAgRXZlbnRPcGVyYXRpb24uUFJFU0NSSVBUSU9OX0RBVEFfTE9BRF9BUFBMSUNBVElPTl9VTklULFxyXG4gICAgICAgICAgICBFdmVudE9wZXJhdGlvbi5QUkVTQ1JJUFRJT05fREFUQV9MT0FEX1NQRUNJRSxcclxuICAgICAgICAgICAgRXZlbnRPcGVyYXRpb24uUFJFU0NSSVBUSU9OX0RBVEFfTE9BRF9BUFBMSUNBVElPTl9UWVBFLFxyXG4gICAgICAgICAgICBFdmVudE9wZXJhdGlvbi5QUkVTQ1JJUFRJT05fREFUQV9MT0FEX1BST0JMRU1TLFxyXG4gICAgICAgICAgICBFdmVudE9wZXJhdGlvbi5QUkVTQ1JJUFRJT05fREFUQV9MT0FEX0FQUExJQ0FUSU9OXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgbGV0IGZvcm1hdHRlZFN1YnRpdGxlID0gc3ViVGl0bGU7XHJcbiAgICAgICAgaWYgKGludm9pY2VPcGVyYXRpb25zLmluY2x1ZGVzKGV2ZW50T3BlcmF0aW9uKSkge1xyXG4gICAgICAgICAgICBjb25zdCBsYWJlbCA9IHRoaXMuaW52b2ljZVR5cGVUcmFuc2xhdGUuZmluZCgoZSkgPT4gZS52YWx1ZSA9PT0gc3ViVGl0bGUpPy5sYWJlbDtcclxuICAgICAgICAgICAgZm9ybWF0dGVkU3VidGl0bGUgPSBsYWJlbCA/IHRoaXMudHJhbnNsYXRlLmluc3RhbnQobGFiZWwpIDogc3ViVGl0bGU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAobnVtYmVyUHJlZml4T3BlcmF0aW9ucy5pbmNsdWRlcyhldmVudE9wZXJhdGlvbikpIHtcclxuICAgICAgICAgICAgZm9ybWF0dGVkU3VidGl0bGUgPSBzdWJUaXRsZSA/IGBuwrAgJHtzdWJUaXRsZX1gIDogc3ViVGl0bGU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocHJlc2NyaXB0aW9uT3BlcmF0aW9ucy5pbmNsdWRlcyhldmVudE9wZXJhdGlvbikpIHtcclxuICAgICAgICAgICAgZm9ybWF0dGVkU3VidGl0bGUgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5uZXdfcHJlc2NyaXB0aW9uX3BhZ2UnLCB7IGNvdW50OiBzdWJUaXRsZSB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBmb3JtYXR0ZWRTdWJ0aXRsZTtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIHB1YmxpYyBvbkdyaWRDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgICAgIGNvbnN0IHNpemUgPSBldmVudD8ucm93cztcclxuICAgICAgICBjb25zdCBwYWdlID0gZXZlbnQ/LmZpcnN0IC8gc2l6ZTtcclxuICAgICAgICBjb25zdCBzb3J0ID0gZXZlbnQubXVsdGlTb3J0TWV0YTtcclxuICAgICAgICB0aGlzLmdyaWRMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICBpZiAoc2l6ZSAhPT0gQUdST19OVU1CRVJTLlRFTiB8fCBwYWdlICE9PSBBR1JPX05VTUJFUlMuWkVSTyB8fCAoc29ydCAmJiBzb3J0Lmxlbmd0aCA+IEFHUk9fTlVNQkVSUy5aRVJPKSkge1xyXG4gICAgICAgICAgICB0aGlzLnBhZ2luYXRvclN0b3JhZ2VTZXJ2aWNlLnN0b3JlUGFnaW5hdG9yKFwiRXZlbnRDb250cm9sQm9hcmRQYWdpbmF0b3JcIiwgeyBwYWdlLCBzaXplLCBzb3J0IH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlR3JpZCh7IHBhZ2UsIHNpemUsIHNvcnQgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFBhZ2VTaXplKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFJvd0luZGV4KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnBhZ2UgKiB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFNvcnRGaWVsZCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuY3VycmVudExpc3RQYXJhbXMuc29ydCB8fCB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNvcnQubGVuZ3RoIDw9IEFHUk9fTlVNQkVSUy5aRVJPKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdyaWRDb2x1bW5zW0FHUk9fTlVNQkVSUy5aRVJPXS5maWVsZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudExpc3RQYXJhbXMuc29ydFtBR1JPX05VTUJFUlMuWkVST10uZmllbGQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFNvcnRPcmRlcigpIHtcclxuICAgICAgICBpZiAoIXRoaXMuY3VycmVudExpc3RQYXJhbXMuc29ydCB8fCB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNvcnQubGVuZ3RoIDw9IEFHUk9fTlVNQkVSUy5aRVJPKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBBR1JPX05VTUJFUlMuT05FO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudExpc3RQYXJhbXMuc29ydFtBR1JPX05VTUJFUlMuWkVST10ub3JkZXI7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEVycm9yTWVzc2FnZXMoKSB7XHJcbiAgICAgICAgY29uc3QgdHJhbnNsYXRlZEVycm9yTWVzc2FnZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBMb29rdXBFcnJvck1lc3NhZ2VzKSB7XHJcbiAgICAgICAgICAgIGlmIChMb29rdXBFcnJvck1lc3NhZ2VzLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmdldChMb29rdXBFcnJvck1lc3NhZ2VzW2tleV0pLnN1YnNjcmliZSgocmVzOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGVkRXJyb3JNZXNzYWdlc1trZXldID0gcmVzO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRyYW5zbGF0ZWRFcnJvck1lc3NhZ2VzO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFByb2R1Y2VySW52b2ljZUlkRnJvbVBhcmFtcyhwYXJhbTogYW55KTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICAgICAgaWYgKCFwYXJhbSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgIHBhcmFtLnByb2R1Y2VySW52b2ljZUlkcz8uWzBdLFxyXG4gICAgICAgICAgICBwYXJhbS5pbnZvaWNlPy5nZW5lcmFsRGF0YT8udHJhbnNhY3Rpb25hbElkLFxyXG4gICAgICAgICAgICBwYXJhbS5wcm9kdWNlckludm9pY2VJZCxcclxuICAgICAgICAgICAgcGFyYW0uZXh0ZXJuYWxJZCxcclxuICAgICAgICAgICAgcGFyYW0uZXh0ZXJuYWxJbnZvaWNlSWRzPy5bMF0sXHJcbiAgICAgICAgXS5maW5kKChpZCkgPT4gaWQpID8/IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UHJvZHVjZXJCYWxhbmNlRW50cnlDb250cm9sSWRGcm9tUGFyYW1zKHBhcmFtOiBhbnkpIHtcclxuICAgICAgICBjb25zdCB7IHByb2R1Y2VyQmFsYW5jZUVudHJ5Q29udHJvbElkIH0gPSBwYXJhbTtcclxuICAgICAgICByZXR1cm4gcHJvZHVjZXJCYWxhbmNlRW50cnlDb250cm9sSWQgPyBwcm9kdWNlckJhbGFuY2VFbnRyeUNvbnRyb2xJZCA6IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0ZXBTZWxlY3RlZChldmVudDogYW55KSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFN0ZXAgPSBldmVudC5zdGVwO1xyXG4gICAgICAgIHRoaXMuYXBwbHlTaWRlYmFyVGl0bGUoXCJcIik7XHJcblxyXG4gICAgICAgIHN3aXRjaCAodGhpcy5zZWxlY3RlZFN0ZXAuZXZlbnRUeXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgRXZlbnRPcmlnaW4uQkFMQU5DRV9FTlRSWV9DT05UUk9MOlxyXG4gICAgICAgICAgICBjYXNlIEV2ZW50T3JpZ2luLlRJQ0tFVDpcclxuICAgICAgICAgICAgY2FzZSBFdmVudE9yaWdpbi5JTlZPSUNFOlxyXG4gICAgICAgICAgICBjYXNlIEV2ZW50T3JpZ2luLkNSRUFURV9JTlZPSUNFOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zaWRlYmFyTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyYW0gPSBKU09OLnBhcnNlKHRoaXMuc2VsZWN0ZWRTdGVwLml0ZW0uaW5wdXQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByb2R1Y2VySW52b2ljZUlkID0gdGhpcy5nZXRQcm9kdWNlckludm9pY2VJZEZyb21QYXJhbXMocGFyYW0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBmaWx0ZXJRdWVyeSA9IFwiXCI7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghcHJvZHVjZXJJbnZvaWNlSWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJvZHVjZXJCYWxhbmNlRW50cnlDb250cm9sSWQgPSB0aGlzLmdldFByb2R1Y2VyQmFsYW5jZUVudHJ5Q29udHJvbElkRnJvbVBhcmFtcyhwYXJhbSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2R1Y2VyQmFsYW5jZUVudHJ5Q29udHJvbElkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNpZGViYXJMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclF1ZXJ5ID0gYHByb2R1Y2VyQmFsYW5jZUVudHJ5Q29udHJvbC5pZCBlcSAnJHtwcm9kdWNlckJhbGFuY2VFbnRyeUNvbnRyb2xJZH0nYDtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJRdWVyeSA9IGBpZCBlcSAnJHtwcm9kdWNlckludm9pY2VJZH0nYDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjZXJJbnZvaWNlU2VydmljZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAubGlzdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5RmllbGRzOiBbXCIqXCIsIFwicHJvZHVjZXJCYWxhbmNlRW50cnlDb250cm9sLipcIiwgXCJwcm9kdWNlckJhbGFuY2VFbnRyeUNvbnRyb2wucHJvZHVjZXIuKlwiXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclF1ZXJ5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZTogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9kdWNlckludm9pY2UgPSByZXN1bHQ/LmNvbnRlbnRzWzBdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjZXJJbnZvaWNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2lkZWJhckxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGx5U2lkZWJhclRpdGxlKHRoaXMuZ2V0UHJvZHVjZXJJbnZvaWNlTnVtYmVyQW5kU2VyaWUoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2lkZWJhckxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIEV2ZW50T3JpZ2luLkZJWEFUSU9OOlxyXG4gICAgICAgICAgICBjYXNlIEV2ZW50T3JpZ2luLkNBTkNFTF9GSVhBVElPTjpcclxuICAgICAgICAgICAgY2FzZSBFdmVudE9yaWdpbi5DSEFOR0VfUkVRVUVTVDpcclxuICAgICAgICAgICAgY2FzZSBFdmVudE9yaWdpbi5UUkFOU0ZFUjpcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zaG93UmVwcm9jZXNzQnV0dG9uID0gZXZlbnQuc3RlcC5zdGF0ZSA9PT0gU3RlcFN0YXRlLldhcm5pbmc7XHJcblxyXG4gICAgICAgIHRoaXMuc2hvd1NpZGViYXIgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYXBwbHlTaWRlYmFyVGl0bGUodGl0bGU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuc2lkZWJhclRpdGxlID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmV2ZW50X3NpZGViYXJfdGl0bGVcIiwgeyBldmVudE51bWJlcjogdGl0bGUgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRQcm9kdWNlckludm9pY2VOdW1iZXJBbmRTZXJpZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLnByb2R1Y2VySW52b2ljZT8ubnVtYmVyICYmIHRoaXMucHJvZHVjZXJJbnZvaWNlPy5zZXJpZXMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAke3RoaXMucHJvZHVjZXJJbnZvaWNlLm51bWJlcn0gLSAke3RoaXMucHJvZHVjZXJJbnZvaWNlLnNlcmllc31gO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVwcm9jZXNzRXZlbnQoKSB7XHJcbiAgICAgICAgY29uc3QgcmVwcm9jZXNzRXZlbnRPYmo6IFJlcHJvY2Vzc0ZhaWxlZEV2ZW50ID0ge1xyXG4gICAgICAgICAgICBldmVudENvbnRyb2xJdGVtSWQ6IHRoaXMuc2VsZWN0ZWRTdGVwLml0ZW0uaWQsXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmV2ZW50Q29udHJvbEl0ZW1TZXJ2aWNlXHJcbiAgICAgICAgICAgIC5yZXByb2Nlc3NGYWlsZWRFdmVudChyZXByb2Nlc3NFdmVudE9iailcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRNZXNzYWdlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImluZm9cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5yZXByb2Nlc3NpbmdfZXZlbnRfbWVzc2FnZV90aXRsZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLnJlcHJvY2Vzc2luZ19ldmVudF9tZXNzYWdlX2Rlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZE1lc3NhZ2UoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZXJyb3JcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5lcnJvcl9yZXByb2Nlc3NpbmdfZXZlbnRfbWVzc2FnZV90aXRsZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmVycm9yX3JlcHJvY2Vzc2luZ19ldmVudF9tZXNzYWdlX2Rlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYWRkTWVzc2FnZShzZXZlcml0eTogc3RyaW5nLCBzdW1tYXJ5OiBzdHJpbmcsIGRldGFpbDogc3RyaW5nLCBsaWZlID0gQUdST19OVU1CRVJTLkZJVkVfU0VDT05EUykge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcclxuICAgICAgICAgICAgc2V2ZXJpdHksXHJcbiAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoc3VtbWFyeSksXHJcbiAgICAgICAgICAgIGRldGFpbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChkZXRhaWwpLFxyXG4gICAgICAgICAgICBsaWZlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvcGVuTW9kYWwoKSB7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5TW9kYWwgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2hvd1NpZGViYXIgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgb3BlbkNhbmNlbE1vZGFsKCkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuY2FuY2VsRXZlbnREaWFsb2dDb25maWcuYmVmb3JlT3Blbj8uKCk7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4oQ2FuY2VsRXZlbnREaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgaGVhZGVyOiB0aGlzLmNhbmNlbEV2ZW50RGlhbG9nQ29uZmlnPy5oZWFkZXIsXHJcbiAgICAgICAgICAgIGNvbnRlbnRTdHlsZTogeyBoZWlnaHQ6IFwiMTAwJVwiIH0sXHJcbiAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICBjbG9zZU9uRXNjYXBlOiBmYWxzZSxcclxuICAgICAgICAgICAgZGF0YTogeyBjYW5jZWxFdmVudERpYWxvZ0NvbmZpZzogdGhpcy5jYW5jZWxFdmVudERpYWxvZ0NvbmZpZyB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjb25maXJtTW9kYWwoKSB7XHJcbiAgICAgICAgdGhpcy5yZXByb2Nlc3NFdmVudCgpO1xyXG4gICAgICAgIHRoaXMuZGlzcGxheU1vZGFsID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNhbmNlbE1vZGFsKCkge1xyXG4gICAgICAgIHRoaXMuZGlzcGxheU1vZGFsID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNsb3NlU2lkZWJhcigpIHtcclxuICAgICAgICB0aGlzLnNob3dTaWRlYmFyID0gZmFsc2U7XHJcbiAgICB9XHJcbn1cclxuIl19
623
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtY29udHJvbC1ib2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZXZlbnQtY29udHJvbC1ib2FyZC9ldmVudC1jb250cm9sLWJvYXJkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxRQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBZ0MsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFRLFNBQVMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hILE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFNUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbEcsT0FB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S0FBSyxFQUFFO21FQUEyQjtJQUMxQjtRQUFSLEtBQUssRUFBRTtrRUFBcUI7SUFDcEI7UUFBUixLQUFLLEVBQUU7bUVBQW9CO0lBQ25CO1FBQVIsS0FBSyxFQUFFO2tFQUFzQjtJQUNyQjtRQUFSLEtBQUssRUFBRTt3RUFBNEI7SUFDM0I7UUFBUixLQUFLLEVBQUU7K0VBQW1EO0lBQ2pEO1FBQVQsTUFBTSxFQUFFO3NFQUE2RDtJQVg3RCwwQkFBMEI7UUFOdEMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLHFCQUFxQjtZQUMvQixva2lCQUFtRDtZQUVuRCxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDOztTQUN6RCxDQUFDO09BQ1csMEJBQTBCLENBMG5CdEM7SUFBRCxpQ0FBQztDQUFBLEFBMW5CRCxJQTBuQkM7U0ExbkJZLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlZ2lzdGVyTG9jYWxlRGF0YSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IGxvY2FsZVB0IGZyb20gXCJAYW5ndWxhci9jb21tb24vbG9jYWxlcy9wdFwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIExPQ0FMRV9JRCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBCYWRnZUNvbG9ycywgQnV0dG9uUHJpb3JpdHksIEZpZWxkVHlwZSwgRm9ybUZpZWxkLCBTdGVwLCBTdGVwU3RhdGUgfSBmcm9tIFwiQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50c1wiO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlLCBNZXNzYWdlU2VydmljZSB9IGZyb20gXCJwcmltZW5nXCI7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgQUdST19OVU1CRVJTIH0gZnJvbSBcIi4uLy4uL2VudW1zL2Fncm8tbnVtYmVycy5lbnVtXCI7XHJcbmltcG9ydCB7IExpYlRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9saWItdHJhbnNsYXRpb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBQcm9kdWNlckludm9pY2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3Byb2R1Y2VyLWludm9pY2VcIjtcclxuaW1wb3J0IHsgV2Vic29ja2V0U2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy93ZWJzb2NrZXRcIjtcclxuaW1wb3J0IHsgQ2FuY2VsRXZlbnREaWFsb2dDb25maWcgfSBmcm9tIFwiLi4vY2FuY2VsLWV2ZW50LWRpYWxvZy9jYW5jZWwtZXZlbnQtZGlhbG9nLWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBDYW5jZWxFdmVudERpYWxvZ0NvbXBvbmVudCB9IGZyb20gXCIuLi9jYW5jZWwtZXZlbnQtZGlhbG9nL2NhbmNlbC1ldmVudC1kaWFsb2cuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IGV2ZW50SXRlbSB9IGZyb20gXCIuL2NvbW1vbi9ldmVudC1jb250cm9sLWNvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBFdmVudE9wZXJhdGlvbiB9IGZyb20gXCIuL2NvbW1vbi9ldmVudC1vcGVyYXRpb25cIjtcclxuaW1wb3J0IHsgRXZlbnRPcmlnaW4gfSBmcm9tIFwiLi9jb21tb24vZXZlbnQtb3JpZ2luXCI7XHJcbmltcG9ydCB7IEV2ZW50U3RhdHVzIH0gZnJvbSBcIi4vY29tbW9uL2V2ZW50LXN0YXR1c1wiO1xyXG5pbXBvcnQgeyBpbnZvaWNlVHlwZVRyYW5zbGF0ZSB9IGZyb20gXCIuL2NvbW1vbi9pbnB1dC1maWVsZHMtdHJhbnNsYXRlXCI7XHJcbmltcG9ydCB7IExvb2t1cEVycm9yTWVzc2FnZXMgfSBmcm9tIFwiLi9jb21tb24vbG9va3VwLWVycm9yLW1lc3NhZ2UuY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IEUwNzBFbXAgfSBmcm9tIFwiLi9zZXJ2aWNlL2UwNzBlbXAvZTA3MGVtcFwiO1xyXG5pbXBvcnQgeyBFMDcwRmlsIH0gZnJvbSBcIi4vc2VydmljZS9lMDcwZmlsL2UwNzBmaWxcIjtcclxuaW1wb3J0IHsgRXZlbnRDb250cm9sSXRlbSB9IGZyb20gXCIuL3NlcnZpY2UvZXZlbnQtY29udHJvbC1pdGVtL2V2ZW50LWNvbnRyb2wtaXRlbVwiO1xyXG5pbXBvcnQgeyBFdmVudENvbnRyb2xJdGVtU2VydmljZSwgUmVwcm9jZXNzRmFpbGVkRXZlbnQgfSBmcm9tIFwiLi9zZXJ2aWNlL2V2ZW50LWNvbnRyb2wtaXRlbS9ldmVudC1jb250cm9sLWl0ZW0uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBFdmVudENvbnRyb2wgfSBmcm9tIFwiLi9zZXJ2aWNlL2V2ZW50LWNvbnRyb2wvZXZlbnQtY29udHJvbFwiO1xyXG5pbXBvcnQgeyBFdmVudENvbnRyb2xTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZS9ldmVudC1jb250cm9sL2V2ZW50LWNvbnRyb2wuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBQYWdpbmF0b3JTdG9yYWdlU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2UvcGFnaW5hdG9yLXN0b3JhZ2Uuc2VydmljZVwiO1xyXG5jb25zdCBtb21lbnQgPSByZXF1aXJlKFwibW9tZW50XCIpO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJldmVudC1jb250cm9sLWJvYXJkXCIsXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2V2ZW50LWNvbnRyb2wtYm9hcmQuY29tcG9uZW50Lmh0bWxcIixcclxuICAgIHN0eWxlVXJsczogW1wiLi9ldmVudC1jb250cm9sLWJvYXJkLmNvbXBvbmVudC5zY3NzXCJdLFxyXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBMT0NBTEVfSUQsIHVzZVZhbHVlOiBcInB0LUJSXCIgfV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFdmVudENvbnRyb2xCb2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xyXG4gICAgQElucHV0KCkgY29tcGFueSE6IEUwNzBFbXA7XHJcbiAgICBASW5wdXQoKSBicmFuY2ghOiBFMDcwRmlsO1xyXG4gICAgQElucHV0KCkgY29udHJvbENvZGUhOiBzdHJpbmdbXTtcclxuICAgIEBJbnB1dCgpIGV2ZW50T3JpZ2luITogRXZlbnRPcmlnaW47XHJcbiAgICBASW5wdXQoKSBldmVudFN0YXR1cyE6IEV2ZW50U3RhdHVzO1xyXG4gICAgQElucHV0KCkgZXh0ZXJuYWxJZCE6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGNyZWF0ZWREYXRlITogRGF0ZTtcclxuICAgIEBJbnB1dCgpIHN0YW5kYWxvbmUhOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgc2hvd0NhbmNlbEJ1dHRvbiE6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBjYW5jZWxFdmVudERpYWxvZ0NvbmZpZyE6IENhbmNlbEV2ZW50RGlhbG9nQ29uZmlnO1xyXG4gICAgQE91dHB1dCgpIHByb2Nlc3NlZEV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIHB1YmxpYyBwcm9kdWNlckludm9pY2UhOiBhbnk7XHJcblxyXG4gICAgcHVibGljIHN0ZXBzOiBTdGVwW10gPSBbXTtcclxuICAgIHB1YmxpYyBzZWxlY3RlZFN0ZXA6IGFueTtcclxuICAgIHB1YmxpYyBldmVudElkITogXCJcIjtcclxuICAgIHB1YmxpYyBzaG93U2lkZWJhciA9IGZhbHNlO1xyXG4gICAgcHVibGljIHNob3dSZXByb2Nlc3NCdXR0b24gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBzaWRlYmFyVGl0bGUhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgc2lkZWJhckxvYWRpbmchOiBib29sZWFuO1xyXG5cclxuICAgIHB1YmxpYyBmaWx0ZXJGb3JtR3JvdXAhOiBGb3JtR3JvdXA7XHJcbiAgICBwdWJsaWMgZmlsdGVyRmllbGRzITogRm9ybUZpZWxkW107XHJcblxyXG4gICAgcHVibGljIGdyaWREYXRhITogYW55W107XHJcbiAgICBwdWJsaWMgZ3JpZERhdGFSZXNvbHZlZCE6IGFueVtdO1xyXG4gICAgcHVibGljIGdyaWRDb2x1bW5zITogYW55W107XHJcbiAgICBwdWJsaWMgZ3JpZFRvdGFsUmVjb3JkcyA9IEFHUk9fTlVNQkVSUy5aRVJPO1xyXG4gICAgcHVibGljIGdyaWRMb2FkaW5nID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgZGlzcGxheU1vZGFsID0gZmFsc2U7XHJcblxyXG4gICAgcHVibGljIEJ1dHRvblByaW9yaXR5ID0gQnV0dG9uUHJpb3JpdHk7XHJcbiAgICBwdWJsaWMgQmFkZ2VDb2xvcnMgPSBCYWRnZUNvbG9ycztcclxuXHJcbiAgICBwdWJsaWMgcGVybWlzc2lvbnM6IGFueSA9IHt9O1xyXG4gICAgcHVibGljIGxvY2FsZUNvbmZpZzogYW55ID0ge307XHJcblxyXG4gICAgcHVibGljIGN1cnJlbnRMaXN0UGFyYW1zOiBhbnkgPSB7XHJcbiAgICAgICAgcGFnZTogQUdST19OVU1CRVJTLlpFUk8sXHJcbiAgICAgICAgc2l6ZTogQUdST19OVU1CRVJTLlRFTixcclxuICAgICAgICBkaXNwbGF5RmllbGRzOiB0aGlzLmdldERpc3BsYXlGaWVsZHMoKSxcclxuICAgICAgICBzb3J0OiBbXSxcclxuICAgICAgICBmaWx0ZXJEYXRhOiB7fVxyXG4gICAgfTtcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBldmVudEl0ZW0gPSBldmVudEl0ZW07XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGludm9pY2VUeXBlVHJhbnNsYXRlID0gaW52b2ljZVR5cGVUcmFuc2xhdGU7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IExpYlRyYW5zbGF0aW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHdlYnNvY2tldFNlcnZpY2U6IFdlYnNvY2tldFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBldmVudENvbnRyb2xTZXJ2aWNlOiBFdmVudENvbnRyb2xTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcGFnaW5hdG9yU3RvcmFnZVNlcnZpY2U6IFBhZ2luYXRvclN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRDb250cm9sSXRlbVNlcnZpY2U6IEV2ZW50Q29udHJvbEl0ZW1TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjZXJJbnZvaWNlU2VydmljZTogUHJvZHVjZXJJbnZvaWNlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVQdCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuZ3JpZENvbHVtbnMgPSB0aGlzLnNldEdyaWRDb2x1bW5zKCk7XHJcbiAgICAgICAgdGhpcy5jYWxsV2Vic29ja2V0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBpZiAoIXRoaXMuZmlsdGVyRm9ybUdyb3VwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUZvcm1Hcm91cCgpO1xyXG4gICAgICAgICAgICB0aGlzLnNldEZvcm1GaWVsZHMoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMudXBkYXRlQ29tcGFueUFuZEJyYW5jaEZvcm1GaWVsZHMoY2hhbmdlcyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVFdmVudE9yaWdpbkFuZENvbnRyb2xDb2RlRm9ybUZpZWxkcyhjaGFuZ2VzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUV2ZW50U3RhdHVzQW5kQ3JlYXRlZERhdGVGb3JtRmllbGRzKGNoYW5nZXMpO1xyXG4gICAgICAgIHRoaXMub25TZWFyY2goKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZUNvbXBhbnlBbmRCcmFuY2hGb3JtRmllbGRzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBpZiAoY2hhbmdlcy5jb21wYW55ICYmIGNoYW5nZXMuY29tcGFueS5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuY29tcGFueS5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldChcImNvbXBhbnlcIik/LnNldFZhbHVlKGNoYW5nZXMuY29tcGFueS5jdXJyZW50VmFsdWUgPz8gbnVsbCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY2hhbmdlcy5icmFuY2ggJiYgY2hhbmdlcy5icmFuY2guY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmJyYW5jaC5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldChcImJyYW5jaFwiKT8uc2V0VmFsdWUoY2hhbmdlcy5icmFuY2guY3VycmVudFZhbHVlID8/IG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZUV2ZW50T3JpZ2luQW5kQ29udHJvbENvZGVGb3JtRmllbGRzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBpZiAoY2hhbmdlcy5ldmVudE9yaWdpbiAmJiBjaGFuZ2VzLmV2ZW50T3JpZ2luLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5ldmVudE9yaWdpbi5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldChcImV2ZW50T3JpZ2luXCIpPy5zZXRWYWx1ZShjaGFuZ2VzLmV2ZW50T3JpZ2luLmN1cnJlbnRWYWx1ZSA/PyBudWxsKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjaGFuZ2VzLmNvbnRyb2xDb2RlICYmIGNoYW5nZXMuY29udHJvbENvZGUuY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmNvbnRyb2xDb2RlLnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KFwiY29udHJvbENvZGVcIik/LnNldFZhbHVlKGNoYW5nZXMuY29udHJvbENvZGUuY3VycmVudFZhbHVlID8/IG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZUV2ZW50U3RhdHVzQW5kQ3JlYXRlZERhdGVGb3JtRmllbGRzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBpZiAoY2hhbmdlcy5ldmVudFN0YXR1cyAmJiBjaGFuZ2VzLmV2ZW50U3RhdHVzLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5ldmVudFN0YXR1cy5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldChcInN0YXR1c1wiKT8uc2V0VmFsdWUoY2hhbmdlcy5ldmVudFN0YXR1cy5jdXJyZW50VmFsdWUgPz8gbnVsbCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY2hhbmdlcy5jcmVhdGVkRGF0ZSAmJiBjaGFuZ2VzLmNyZWF0ZWREYXRlLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5jcmVhdGVkRGF0ZS5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldChcImNyZWF0ZWREYXRlXCIpPy5zZXRWYWx1ZShjaGFuZ2VzLmNyZWF0ZWREYXRlLmN1cnJlbnRWYWx1ZSA/PyBudWxsKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplRm9ybUdyb3VwKCkge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgICAgICAgIGNvbXBhbnk6IFt7IHZhbHVlOiB0aGlzLmNvbXBhbnkgPz8gbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFZhbGlkYXRvcnMuY29tcG9zZShbXSldLFxyXG4gICAgICAgICAgICBicmFuY2g6IFt7IHZhbHVlOiB0aGlzLmJyYW5jaCA/PyBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSwgVmFsaWRhdG9ycy5jb21wb3NlKFtdKV0sXHJcbiAgICAgICAgICAgIGNvbnRyb2xDb2RlOiBbeyB2YWx1ZTogdGhpcy5jb250cm9sQ29kZSA/PyBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSwgVmFsaWRhdG9ycy5jb21wb3NlKFtdKV0sXHJcbiAgICAgICAgICAgIGV4dGVybmFsSWQ6IFt7IHZhbHVlOiB0aGlzLmV4dGVybmFsSWQgPz8gbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFZhbGlkYXRvcnMuY29tcG9zZShbXSldLFxyXG4gICAgICAgICAgICBldmVudE9yaWdpbjogW3sgdmFsdWU6IHRoaXMuZXZlbnRPcmlnaW4gPz8gbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFZhbGlkYXRvcnMuY29tcG9zZShbXSldLFxyXG4gICAgICAgICAgICBzdGF0dXM6IFt7IHZhbHVlOiB0aGlzLmV2ZW50U3RhdHVzID8/IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LCBWYWxpZGF0b3JzLmNvbXBvc2UoW10pXSxcclxuICAgICAgICAgICAgY3JlYXRlZERhdGU6IFt7IHZhbHVlOiB0aGlzLmNyZWF0ZWREYXRlID8/IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LCBWYWxpZGF0b3JzLmNvbXBvc2UoW10pXSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldEZvcm1GaWVsZHMoKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJGaWVsZHMgPSBbXHJcbiAgICAgICAgICAgIG5ldyBGb3JtRmllbGQoe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJjb21wYW55XCIsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuQ2hpcHMsXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgRm9ybUZpZWxkKHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiYnJhbmNoXCIsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuQ2hpcHMsXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgRm9ybUZpZWxkKHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiY29udHJvbENvZGVcIixcclxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5DaGlwcyxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBGb3JtRmllbGQoe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJleHRlcm5hbElkXCIsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuU3RyaW5nLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IEZvcm1GaWVsZCh7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcImV2ZW50T3JpZ2luXCIsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuRW51bSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBGb3JtRmllbGQoe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJzdGF0dXNcIixcclxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5FbnVtLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IEZvcm1GaWVsZCh7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcImNyZWF0ZWREYXRlXCIsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuRGF0ZSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldEdyaWRDb2x1bW5zKCkge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgIHsgZmllbGQ6IFwiY29tcGFueVwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5jb21wYW55XCIpIH0sXHJcbiAgICAgICAgICAgIHsgZmllbGQ6IFwiYnJhbmNoXCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmxhYmVsX2JyYW5jaFwiKSB9LFxyXG4gICAgICAgICAgICB7IGZpZWxkOiBcImV2ZW50T3JpZ2luXCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmV2ZW50X29yaWdpbl9sYWJlbFwiKSB9LFxyXG4gICAgICAgICAgICB7IGZpZWxkOiBcImNvbnRyb2xDb2RlXCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmNvbnRyb2xfY29kZVwiKSB9LFxyXG4gICAgICAgIF07XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XHJcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgdGhpcy53ZWJzb2NrZXRTZXJ2aWNlLmRpc2Nvbm5lY3QoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2FsbFdlYnNvY2tldCgpIHtcclxuICAgICAgICB0aGlzLndlYnNvY2tldFNlcnZpY2VcclxuICAgICAgICAgICAgLm9uRXZlbnQ8YW55Pih7XHJcbiAgICAgICAgICAgICAgICBkb21haW46IFwiYWdyb1wiLFxyXG4gICAgICAgICAgICAgICAgc2VydmljZTogXCJhZ3JvX2V2ZW50c1wiLFxyXG4gICAgICAgICAgICAgICAgcHJpbWl0aXZlOiBcInByb2Nlc3NlZEV2ZW50XCIsXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChtZXNzYWdlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBleHRlcm5hbElkID0gbWVzc2FnZT8uZGF0YT8uZXh0ZXJuYWxJZDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlckRhdGEgPSB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFleHRlcm5hbElkIHx8IHRoaXMuZXh0ZXJuYWxJZCA9PT0gZXh0ZXJuYWxJZCB8fCB0aGlzLmdyaWREYXRhPy5zb21lKChpdGVtOiBhbnkpID0+IGl0ZW0uZXh0ZXJuYWxJZCA9PT0gZXh0ZXJuYWxJZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUdyaWQoeyBmaWx0ZXJEYXRhIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc2VkRXZlbnQuZW1pdChtZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMud2Vic29ja2V0U2VydmljZVxyXG4gICAgICAgICAgICAub25FdmVudDxhbnk+KHtcclxuICAgICAgICAgICAgICAgIGRvbWFpbjogXCJwbGF0Zm9ybVwiLFxyXG4gICAgICAgICAgICAgICAgc2VydmljZTogXCJub3RpZmljYXRpb25zXCIsXHJcbiAgICAgICAgICAgICAgICBwcmltaXRpdmU6IFwidXNlck5vdGlmaWVkXCIsXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlckRhdGEgPSB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVHcmlkKHsgZmlsdGVyRGF0YSB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uU2VhcmNoKCkge1xyXG4gICAgICAgIGNvbnN0IGZpbHRlckRhdGEgPSB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgICAgIHRoaXMuZ3JpZExvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMucmVzZXRHcmlkKHsgZmlsdGVyRGF0YSB9KTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUdyaWQoeyBmaWx0ZXJEYXRhIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZXNldEdyaWQobGlzdFBhcmFtcz86IGFueSkge1xyXG4gICAgICAgIGlmIChsaXN0UGFyYW1zKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExpc3RQYXJhbXMgPSB7IC4uLnRoaXMuY3VycmVudExpc3RQYXJhbXMsIC4uLmxpc3RQYXJhbXMgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5wYWdlID0gQUdST19OVU1CRVJTLlpFUk87XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGVHcmlkKGxpc3RQYXJhbXM6IGFueSA9IHt9KSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50TGlzdFBhcmFtcyA9IHsgLi4udGhpcy5jdXJyZW50TGlzdFBhcmFtcywgLi4ubGlzdFBhcmFtcyB9O1xyXG5cclxuICAgICAgICBpZiAodGhpcy5jdXJyZW50TGlzdFBhcmFtcy5zb3J0Py5sZW5ndGggPD0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNvcnQgPSB0aGlzLnN0YW5kYWxvbmUgP1xyXG4gICAgICAgICAgICAgICAgW3sgZmllbGQ6IFwiY3JlYXRlZERhdGVcIiwgb3JkZXI6IDEgfV0gOlxyXG4gICAgICAgICAgICAgICAgW3sgZmllbGQ6IFwibGFzdE1vZGlmaWVkRGF0ZVwiLCBvcmRlcjogLTEgfV07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLmZpbHRlclF1ZXJ5ID0gdGhpcy5nZXRGaWx0ZXIoKTtcclxuXHJcbiAgICAgICAgdGhpcy5ldmVudENvbnRyb2xTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5saXN0KHRoaXMuY3VycmVudExpc3RQYXJhbXMpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JpZExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGxpc3Q6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkRGF0YSA9IGxpc3QuY29udGVudHM7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWRUb3RhbFJlY29yZHMgPSBsaXN0LnRvdGFsRWxlbWVudHM7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZ3JpZERhdGEgfHwgdGhpcy5ncmlkRGF0YS5sZW5ndGggPD0gQUdST19OVU1CRVJTLlpFUk8pIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyaWRMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzRXZlbnRDb250cm9sSXRlbXMoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRGaWx0ZXIoKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCB7IGZpbHRlckRhdGEgfSA9IHRoaXMuY3VycmVudExpc3RQYXJhbXM7XHJcbiAgICAgICAgY29uc3QgZmlsdGVyczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKGZpbHRlckRhdGFbXCJjb21wYW55XCJdPy5pZCkge1xyXG4gICAgICAgICAgICBmaWx0ZXJzLnB1c2goYGUwNzBlbXAuaWQgZXEgJyR7ZmlsdGVyRGF0YVtcImNvbXBhbnlcIl0uaWR9J2ApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGZpbHRlckRhdGFbXCJicmFuY2hcIl0/LmlkKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaChgZTA3MGZpbC5pZCBlcSAnJHtmaWx0ZXJEYXRhW1wiYnJhbmNoXCJdLmlkfSdgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbnRyb2xDb2RlID0gZmlsdGVyRGF0YVtcImNvbnRyb2xDb2RlXCJdO1xyXG4gICAgICAgIGlmIChjb250cm9sQ29kZSAmJiBBcnJheS5pc0FycmF5KGNvbnRyb2xDb2RlKSAmJiBjb250cm9sQ29kZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvZGVzID0gY29udHJvbENvZGUubWFwKChjb2RlOiBzdHJpbmcpID0+IHBhcnNlSW50KGNvZGUsIDEwKSkuam9pbihcIixcIik7XHJcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaChgY29udHJvbENvZGUgaW4gKCR7Y29kZXN9KWApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGZpbHRlckRhdGFbXCJleHRlcm5hbElkXCJdKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaChgZXh0ZXJuYWxJZCBlcSAnJHtmaWx0ZXJEYXRhW1wiZXh0ZXJuYWxJZFwiXX0nYCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZmlsdGVyRGF0YVtcImV2ZW50T3JpZ2luXCJdKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaChgZXZlbnRPcmlnaW4gZXEgJyR7ZmlsdGVyRGF0YVtcImV2ZW50T3JpZ2luXCJdfSdgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChmaWx0ZXJEYXRhW1wic3RhdHVzXCJdKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaChgZXZlbnRDb250cm9sSXRlbS5zdGF0dXMgZXEgJyR7ZmlsdGVyRGF0YVtcInN0YXR1c1wiXX0nYCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZmlsdGVyRGF0YVtcImNyZWF0ZWREYXRlXCJdKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaChgY3JlYXRlZERhdGUgZ2UgJyR7dGhpcy5nZXRTdGFydERhdGUoZmlsdGVyRGF0YVtcImNyZWF0ZWREYXRlXCJdKX0nYCk7XHJcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaChgY3JlYXRlZERhdGUgbGUgJyR7dGhpcy5nZXRFbmREYXRlKGZpbHRlckRhdGFbXCJjcmVhdGVkRGF0ZVwiXSl9J2ApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGZpbHRlcnMuam9pbihcIiBhbmQgXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0RW5kRGF0ZSh2YWx1ZTogYW55KTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBlbmREYXRlID0gbW9tZW50KHZhbHVlKS5lbmRPZihcImRheVwiKS5mb3JtYXQoXCJZWVlZLU1NLUREVEhIOm1tOnNzXCIpICsgXCJaXCI7XHJcbiAgICAgICAgcmV0dXJuIGVuZERhdGU7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIGdldFN0YXJ0RGF0ZSh2YWx1ZTogYW55KTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBzdGFydERhdGUgPSBtb21lbnQodmFsdWUpLnN0YXJ0T2YoXCJkYXlcIikuZm9ybWF0KFwiWVlZWS1NTS1ERFRISDptbTpzc1wiKSArIFwiWlwiO1xyXG4gICAgICAgIHJldHVybiBzdGFydERhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXREaXNwbGF5RmllbGRzKCk6IHN0cmluZ1tdIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICAnKicsXHJcbiAgICAgICAgICAgICdjb21wYW55LionLFxyXG4gICAgICAgICAgICAnYnJhbmNoLionLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5ldmVudERvbWFpbicsXHJcbiAgICAgICAgICAgICdldmVudENvbnRyb2xJdGVtLmlkJyxcclxuICAgICAgICAgICAgJ2V2ZW50Q29udHJvbEl0ZW0uZXZlbnREb21haW4nLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5ldmVudFNlcnZpY2UnLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5ldmVudFByaW1pdGl2ZScsXHJcbiAgICAgICAgICAgICdldmVudENvbnRyb2xJdGVtLmV2ZW50Q29udHJvbCcsXHJcbiAgICAgICAgICAgICdldmVudENvbnRyb2xJdGVtLmV2ZW50R3JvdXAnLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5zZXF1ZW5jZScsXHJcbiAgICAgICAgICAgICdldmVudENvbnRyb2xJdGVtLmV2ZW50T3BlcmF0aW9uJyxcclxuICAgICAgICAgICAgJ2V2ZW50Q29udHJvbEl0ZW0ub3V0cHV0JyxcclxuICAgICAgICAgICAgJ2V2ZW50Q29udHJvbEl0ZW0uaW5wdXQnLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5zdGF0dXMnLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5zdWJUaXRsZScsXHJcbiAgICAgICAgICAgICdldmVudENvbnRyb2xJdGVtLm1lc3NhZ2UnLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5jcmVhdGVkQnknLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5jcmVhdGVkRGF0ZScsXHJcbiAgICAgICAgICAgICdldmVudENvbnRyb2xJdGVtLmxhc3RNb2RpZmllZEJ5JyxcclxuICAgICAgICAgICAgJ2V2ZW50Q29udHJvbEl0ZW0ubGFzdE1vZGlmaWVkRGF0ZScsXHJcbiAgICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHByb2Nlc3NFdmVudENvbnRyb2xJdGVtcygpIHtcclxuICAgICAgICB0aGlzLmdyaWREYXRhLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc29ydGVkSXRlbXMgPSBpdGVtLmV2ZW50Q29udHJvbEl0ZW0uc29ydCgoYTogRXZlbnRDb250cm9sSXRlbSwgYjogRXZlbnRDb250cm9sSXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGEuc2VxdWVuY2UgLSBiLnNlcXVlbmNlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY29uc3Qgc3RlcHMgPSBzb3J0ZWRJdGVtcy5tYXAoKGRldGFpbDogRXZlbnRDb250cm9sSXRlbSwgaW5kZXg6IG51bWJlcikgPT4gdGhpcy5jcmVhdGVTdGVwKGRldGFpbCwgaXRlbSwgaW5kZXgpKTtcclxuICAgICAgICAgICAgY29uc3QgYWN0aXZlSW5kZXggPSB0aGlzLmNhbGN1bGF0ZUFjdGl2ZUluZGV4KHNvcnRlZEl0ZW1zKTtcclxuICAgICAgICAgICAgaXRlbS5ncm91cHMgPSBbeyBzdGVwcywgYWN0aXZlSW5kZXggfV07XHJcbiAgICAgICAgICAgIGl0ZW0uYWN0aXZlSW5kZXggPSBhY3RpdmVJbmRleDtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmdyaWREYXRhUmVzb2x2ZWQgPSB0aGlzLmdyaWREYXRhO1xyXG4gICAgICAgIHRoaXMuZ3JpZExvYWRpbmcgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNhbGN1bGF0ZUFjdGl2ZUluZGV4KGRldGFpbHM6IEV2ZW50Q29udHJvbEl0ZW1bXSk6IG51bWJlciB7XHJcbiAgICAgICAgY29uc3QgbGFzdEFjdGl2ZSA9IGRldGFpbHMucmVkdWNlKFxyXG4gICAgICAgICAgICAobGFzdEluZGV4LCBkZXRhaWwsIGN1cnJlbnRJbmRleCkgPT4gKGRldGFpbC5zdGF0dXMgIT09IEV2ZW50U3RhdHVzLlBFTkRJTkcgPyBjdXJyZW50SW5kZXggOiBsYXN0SW5kZXgpLFxyXG4gICAgICAgICAgICAtMVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGxhc3RBY3RpdmUgIT09IC0xICYmIGRldGFpbHNbbGFzdEFjdGl2ZV0uc3RhdHVzID09PSBFdmVudFN0YXR1cy5TVUNDRVNTKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBsYXN0QWN0aXZlICsgMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGxhc3RBY3RpdmU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjcmVhdGVTdGVwKGRldGFpbDogRXZlbnRDb250cm9sSXRlbSwgaXRlbTogRXZlbnRDb250cm9sLCBkZXRhaWxJbmRleDogbnVtYmVyKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0RldGFpbDonLCBkZXRhaWwpO1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGl0ZW06IGRldGFpbCxcclxuICAgICAgICAgICAgY29udHJvbENvZGU6IGl0ZW0uY29udHJvbENvZGUsXHJcbiAgICAgICAgICAgIGV2ZW50VHlwZTogaXRlbS5ldmVudE9yaWdpbixcclxuICAgICAgICAgICAgbGFiZWw6IHRoaXMuZ2V0RXZlbnRMYWJlbChkZXRhaWwpLFxyXG4gICAgICAgICAgICBzdWJMYWJlbDogdGhpcy5mb3JtYXRTdWJ0aXRsZShkZXRhaWwpLFxyXG4gICAgICAgICAgICBkaXNhYmxlZDogZGV0YWlsLnN0YXR1cyA9PT0gRXZlbnRTdGF0dXMuUEVORElORyAmJiBkZXRhaWxJbmRleCAhPT0gdGhpcy5jYWxjdWxhdGVBY3RpdmVJbmRleChpdGVtLmV2ZW50Q29udHJvbEl0ZW0pLFxyXG4gICAgICAgICAgICB0b29sdGlwOiB0aGlzLmdldEV2ZW50TGFiZWwoZGV0YWlsKSxcclxuICAgICAgICAgICAgc3RhdGU6IHRoaXMuZGV0ZXJtaW5lU3RlcFN0YXRlKGRldGFpbCksXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGRldGVybWluZVN0ZXBTdGF0ZShkZXRhaWw6IHsgc3RhdHVzOiBFdmVudFN0YXR1cyB9KTogU3RlcFN0YXRlIHtcclxuICAgICAgICBpZiAoZGV0YWlsLnN0YXR1cyA9PT0gRXZlbnRTdGF0dXMuU1VDQ0VTUykge1xyXG4gICAgICAgICAgICByZXR1cm4gU3RlcFN0YXRlLlN1Y2Nlc3M7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChkZXRhaWwuc3RhdHVzID09PSBFdmVudFN0YXR1cy5GQUlMRUQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFN0ZXBTdGF0ZS5XYXJuaW5nO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gU3RlcFN0YXRlLkRlZmF1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRFdmVudExhYmVsKGRldGFpbDogYW55KTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBldmVudExhYmVsID0gdGhpcy5ldmVudEl0ZW0uZmluZCgoZSkgPT4gZS52YWx1ZSA9PT0gZGV0YWlsLmV2ZW50T3BlcmF0aW9uKT8ubGFiZWw7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0dldHRpbmcgbGFiZWwgZm9yIGV2ZW50IG9wZXJhdGlvbjonLCBldmVudExhYmVsKTtcclxuICAgICAgICBpZiAoZXZlbnRMYWJlbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudChldmVudExhYmVsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgbG9jYWxMYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5cIiArIGRldGFpbC5ldmVudE9wZXJhdGlvbik7XHJcbiAgICAgICAgaWYgKGxvY2FsTGFiZWwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGxvY2FsTGFiZWw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBkZXRhaWwuZXZlbnRPcGVyYXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBmb3JtYXRTdWJ0aXRsZShkZXRhaWw6IEV2ZW50Q29udHJvbEl0ZW0pOiBzdHJpbmcgfCBudWxsIHtcclxuICAgICAgICBjb25zdCB7IGV2ZW50T3BlcmF0aW9uLCBzdWJUaXRsZSB9ID0gZGV0YWlsO1xyXG5cclxuICAgICAgICBjb25zdCBpbnZvaWNlT3BlcmF0aW9ucyA9IFtcclxuICAgICAgICAgICAgRXZlbnRPcGVyYXRpb24uQ1JFQVRFX0lOVk9JQ0VfRklYQVRJT04sXHJcbiAgICAgICAgICAgIEV2ZW50T3BlcmF0aW9uLkNBTkNFTF9JTlZPSUNFX0ZJWEFUSU9OLFxyXG4gICAgICAgICAgICBFdmVudE9wZXJhdGlvbi5PUklHSU5BVElPTl9DUkVBVEVfSU5WT0lDRVxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIGNvbnN0IG51bWJlclByZWZpeE9wZXJhdGlvbnMgPSBbXHJcbiAgICAgICAgICAgIEV2ZW50T3BlcmF0aW9uLkNMT1NFX0lOVk9JQ0VfRklYQVRJT04sXHJcbiAgICAgICAgICAgIEV2ZW50T3BlcmF0aW9uLlJFT1BFTl9JTlZPSUNFX0ZJWEFUSU9OXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgY29uc3QgcHJlc2NyaXB0aW9uT3BlcmF0aW9ucyA9IFtcclxuICAgICAgICAgICAgRXZlbnRPcGVyYXRpb24uUFJFU0NSSVBUSU9OX0RBVEFfTE9BRF9QUk9EVUNUX1RZUEUsXHJcbiAgICAgICAgICAgIEV2ZW50T3BlcmF0aW9uLlBSRVNDUklQVElPTl9EQVRBX0xPQURfQUNUSVZFX1BSSU5DSVBMRSxcclxuICAgICAgICAgICAgRXZlbnRPcGVyYXRpb24uUFJFU0NSSVBUSU9OX0RBVEFfTE9BRF9GT1JNVUxBVElPTixcclxuICAgICAgICAgICAgRXZlbnRPcGVyYXRpb24uUFJFU0NSSVBUSU9OX0RBVEFfTE9BRF9CVUxMRVRJTixcclxuICAgICAgICAgICAgRXZlbnRPcGVyYXRpb24uUFJFU0NSSVBUSU9OX0RBVEFfTE9BRF9BUFBMSUNBVElPTl9VTklULFxyXG4gICAgICAgICAgICBFdmVudE9wZXJhdGlvbi5QUkVTQ1JJUFRJT05fREFUQV9MT0FEX1NQRUNJRSxcclxuICAgICAgICAgICAgRXZlbnRPcGVyYXRpb24uUFJFU0NSSVBUSU9OX0RBVEFfTE9BRF9BUFBMSUNBVElPTl9UWVBFLFxyXG4gICAgICAgICAgICBFdmVudE9wZXJhdGlvbi5QUkVTQ1JJUFRJT05fREFUQV9MT0FEX1BST0JMRU1TLFxyXG4gICAgICAgICAgICBFdmVudE9wZXJhdGlvbi5QUkVTQ1JJUFRJT05fREFUQV9MT0FEX0FQUExJQ0FUSU9OXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgbGV0IGZvcm1hdHRlZFN1YnRpdGxlID0gc3ViVGl0bGU7XHJcbiAgICAgICAgaWYgKGludm9pY2VPcGVyYXRpb25zLmluY2x1ZGVzKGV2ZW50T3BlcmF0aW9uKSkge1xyXG4gICAgICAgICAgICBjb25zdCBsYWJlbCA9IHRoaXMuaW52b2ljZVR5cGVUcmFuc2xhdGUuZmluZCgoZSkgPT4gZS52YWx1ZSA9PT0gc3ViVGl0bGUpPy5sYWJlbDtcclxuICAgICAgICAgICAgZm9ybWF0dGVkU3VidGl0bGUgPSBsYWJlbCA/IHRoaXMudHJhbnNsYXRlLmluc3RhbnQobGFiZWwpIDogc3ViVGl0bGU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAobnVtYmVyUHJlZml4T3BlcmF0aW9ucy5pbmNsdWRlcyhldmVudE9wZXJhdGlvbikpIHtcclxuICAgICAgICAgICAgZm9ybWF0dGVkU3VidGl0bGUgPSBzdWJUaXRsZSA/IGBuwrAgJHtzdWJUaXRsZX1gIDogc3ViVGl0bGU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocHJlc2NyaXB0aW9uT3BlcmF0aW9ucy5pbmNsdWRlcyhldmVudE9wZXJhdGlvbikpIHtcclxuICAgICAgICAgICAgZm9ybWF0dGVkU3VidGl0bGUgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5uZXdfcHJlc2NyaXB0aW9uX3BhZ2UnLCB7IGNvdW50OiBzdWJUaXRsZSB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBmb3JtYXR0ZWRTdWJ0aXRsZSA/PyBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkdyaWRDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgICAgIGNvbnN0IHNpemUgPSBldmVudD8ucm93cztcclxuICAgICAgICBjb25zdCBwYWdlID0gZXZlbnQ/LmZpcnN0IC8gc2l6ZTtcclxuICAgICAgICBjb25zdCBzb3J0ID0gZXZlbnQubXVsdGlTb3J0TWV0YTtcclxuICAgICAgICB0aGlzLmdyaWRMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICBpZiAoc2l6ZSAhPT0gQUdST19OVU1CRVJTLlRFTiB8fCBwYWdlICE9PSBBR1JPX05VTUJFUlMuWkVSTyB8fCAoc29ydCAmJiBzb3J0Lmxlbmd0aCA+IEFHUk9fTlVNQkVSUy5aRVJPKSkge1xyXG4gICAgICAgICAgICB0aGlzLnBhZ2luYXRvclN0b3JhZ2VTZXJ2aWNlLnN0b3JlUGFnaW5hdG9yKFwiRXZlbnRDb250cm9sQm9hcmRQYWdpbmF0b3JcIiwgeyBwYWdlLCBzaXplLCBzb3J0IH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlR3JpZCh7IHBhZ2UsIHNpemUsIHNvcnQgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFBhZ2VTaXplKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFJvd0luZGV4KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnBhZ2UgKiB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFNvcnRGaWVsZCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuY3VycmVudExpc3RQYXJhbXMuc29ydCB8fCB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNvcnQubGVuZ3RoIDw9IEFHUk9fTlVNQkVSUy5aRVJPKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdyaWRDb2x1bW5zW0FHUk9fTlVNQkVSUy5aRVJPXS5maWVsZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudExpc3RQYXJhbXMuc29ydFtBR1JPX05VTUJFUlMuWkVST10uZmllbGQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFNvcnRPcmRlcigpIHtcclxuICAgICAgICBpZiAoIXRoaXMuY3VycmVudExpc3RQYXJhbXMuc29ydCB8fCB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNvcnQubGVuZ3RoIDw9IEFHUk9fTlVNQkVSUy5aRVJPKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBBR1JPX05VTUJFUlMuT05FO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudExpc3RQYXJhbXMuc29ydFtBR1JPX05VTUJFUlMuWkVST10ub3JkZXI7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEVycm9yTWVzc2FnZXMoKSB7XHJcbiAgICAgICAgY29uc3QgdHJhbnNsYXRlZEVycm9yTWVzc2FnZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBMb29rdXBFcnJvck1lc3NhZ2VzKSB7XHJcbiAgICAgICAgICAgIGlmIChMb29rdXBFcnJvck1lc3NhZ2VzLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmdldChMb29rdXBFcnJvck1lc3NhZ2VzW2tleV0pLnN1YnNjcmliZSgocmVzOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGVkRXJyb3JNZXNzYWdlc1trZXldID0gcmVzO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRyYW5zbGF0ZWRFcnJvck1lc3NhZ2VzO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFByb2R1Y2VySW52b2ljZUlkRnJvbVBhcmFtcyhwYXJhbTogYW55KTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICAgICAgaWYgKCFwYXJhbSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgIHBhcmFtLnByb2R1Y2VySW52b2ljZUlkcz8uWzBdLFxyXG4gICAgICAgICAgICBwYXJhbS5pbnZvaWNlPy5nZW5lcmFsRGF0YT8udHJhbnNhY3Rpb25hbElkLFxyXG4gICAgICAgICAgICBwYXJhbS5wcm9kdWNlckludm9pY2VJZCxcclxuICAgICAgICAgICAgcGFyYW0uZXh0ZXJuYWxJZCxcclxuICAgICAgICAgICAgcGFyYW0uZXh0ZXJuYWxJbnZvaWNlSWRzPy5bMF0sXHJcbiAgICAgICAgXS5maW5kKChpZCkgPT4gaWQpID8/IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UHJvZHVjZXJCYWxhbmNlRW50cnlDb250cm9sSWRGcm9tUGFyYW1zKHBhcmFtOiBhbnkpIHtcclxuICAgICAgICBjb25zdCB7IHByb2R1Y2VyQmFsYW5jZUVudHJ5Q29udHJvbElkIH0gPSBwYXJhbTtcclxuICAgICAgICByZXR1cm4gcHJvZHVjZXJCYWxhbmNlRW50cnlDb250cm9sSWQgPyBwcm9kdWNlckJhbGFuY2VFbnRyeUNvbnRyb2xJZCA6IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0ZXBTZWxlY3RlZChldmVudDogYW55KSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFN0ZXAgPSBldmVudC5zdGVwO1xyXG4gICAgICAgIHRoaXMuYXBwbHlTaWRlYmFyVGl0bGUoXCJcIik7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnNob3VsZExvYWRQcm9kdWNlckludm9pY2UodGhpcy5zZWxlY3RlZFN0ZXAuZXZlbnRUeXBlKSkge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRTZWxlY3RlZFN0ZXBQcm9kdWNlckludm9pY2UoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2hvd1JlcHJvY2Vzc0J1dHRvbiA9IGV2ZW50LnN0ZXAuc3RhdGUgPT09IFN0ZXBTdGF0ZS5XYXJuaW5nO1xyXG5cclxuICAgICAgICB0aGlzLnNob3dTaWRlYmFyID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNob3VsZExvYWRQcm9kdWNlckludm9pY2UoZXZlbnRUeXBlOiBFdmVudE9yaWdpbik6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgIEV2ZW50T3JpZ2luLkJBTEFOQ0VfRU5UUllfQ09OVFJPTCxcclxuICAgICAgICAgICAgRXZlbnRPcmlnaW4uVElDS0VULFxyXG4gICAgICAgICAgICBFdmVudE9yaWdpbi5JTlZPSUNFLFxyXG4gICAgICAgICAgICBFdmVudE9yaWdpbi5DUkVBVEVfSU5WT0lDRSxcclxuICAgICAgICAgICAgRXZlbnRPcmlnaW4uQ0xPU0VfSU5WT0lDRSxcclxuICAgICAgICBdLmluY2x1ZGVzKGV2ZW50VHlwZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBsb2FkU2VsZWN0ZWRTdGVwUHJvZHVjZXJJbnZvaWNlKCkge1xyXG4gICAgICAgIHRoaXMuc2lkZWJhckxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgIGNvbnN0IHBhcmFtID0gSlNPTi5wYXJzZSh0aGlzLnNlbGVjdGVkU3RlcC5pdGVtLmlucHV0KTtcclxuICAgICAgICBjb25zdCBmaWx0ZXJRdWVyeSA9IHRoaXMuZ2V0UHJvZHVjZXJJbnZvaWNlRmlsdGVyUXVlcnkocGFyYW0pO1xyXG5cclxuICAgICAgICBpZiAoIWZpbHRlclF1ZXJ5KSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2lkZWJhckxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5wcm9kdWNlckludm9pY2VTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5saXN0KHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXlGaWVsZHM6IFtcIipcIiwgXCJwcm9kdWNlckJhbGFuY2VFbnRyeUNvbnRyb2wuKlwiLCBcInByb2R1Y2VyQmFsYW5jZUVudHJ5Q29udHJvbC5wcm9kdWNlci4qXCJdLFxyXG4gICAgICAgICAgICAgICAgZmlsdGVyUXVlcnksXHJcbiAgICAgICAgICAgICAgICBwYWdlOiAwLFxyXG4gICAgICAgICAgICAgICAgc2l6ZTogMSxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y2VySW52b2ljZSA9IHJlc3VsdD8uY29udGVudHNbMF07XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9kdWNlckludm9pY2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaWRlYmFyTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwbHlTaWRlYmFyVGl0bGUodGhpcy5nZXRQcm9kdWNlckludm9pY2VOdW1iZXJBbmRTZXJpZSgpKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaWRlYmFyTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0UHJvZHVjZXJJbnZvaWNlRmlsdGVyUXVlcnkocGFyYW06IGFueSk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgICAgIGNvbnN0IHByb2R1Y2VySW52b2ljZUlkID0gdGhpcy5nZXRQcm9kdWNlckludm9pY2VJZEZyb21QYXJhbXMocGFyYW0pO1xyXG5cclxuICAgICAgICBpZiAocHJvZHVjZXJJbnZvaWNlSWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGBpZCBlcSAnJHtwcm9kdWNlckludm9pY2VJZH0nYDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHByb2R1Y2VyQmFsYW5jZUVudHJ5Q29udHJvbElkID0gdGhpcy5nZXRQcm9kdWNlckJhbGFuY2VFbnRyeUNvbnRyb2xJZEZyb21QYXJhbXMocGFyYW0pO1xyXG5cclxuICAgICAgICBpZiAoIXByb2R1Y2VyQmFsYW5jZUVudHJ5Q29udHJvbElkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGBwcm9kdWNlckJhbGFuY2VFbnRyeUNvbnRyb2wuaWQgZXEgJyR7cHJvZHVjZXJCYWxhbmNlRW50cnlDb250cm9sSWR9J2A7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhcHBseVNpZGViYXJUaXRsZSh0aXRsZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5zaWRlYmFyVGl0bGUgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuZXZlbnRfc2lkZWJhcl90aXRsZVwiLCB7IGV2ZW50TnVtYmVyOiB0aXRsZSB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFByb2R1Y2VySW52b2ljZU51bWJlckFuZFNlcmllKCk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvZHVjZXJJbnZvaWNlPy5udW1iZXIgJiYgdGhpcy5wcm9kdWNlckludm9pY2U/LnNlcmllcykge1xyXG4gICAgICAgICAgICByZXR1cm4gYCR7dGhpcy5wcm9kdWNlckludm9pY2UubnVtYmVyfSAtICR7dGhpcy5wcm9kdWNlckludm9pY2Uuc2VyaWVzfWA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZXByb2Nlc3NFdmVudCgpIHtcclxuICAgICAgICBjb25zdCByZXByb2Nlc3NFdmVudE9iajogUmVwcm9jZXNzRmFpbGVkRXZlbnQgPSB7XHJcbiAgICAgICAgICAgIGV2ZW50Q29udHJvbEl0ZW1JZDogdGhpcy5zZWxlY3RlZFN0ZXAuaXRlbS5pZCxcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuZXZlbnRDb250cm9sSXRlbVNlcnZpY2VcclxuICAgICAgICAgICAgLnJlcHJvY2Vzc0ZhaWxlZEV2ZW50KHJlcHJvY2Vzc0V2ZW50T2JqKVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZE1lc3NhZ2UoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5mb1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLnJlcHJvY2Vzc2luZ19ldmVudF9tZXNzYWdlX3RpdGxlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMucmVwcm9jZXNzaW5nX2V2ZW50X21lc3NhZ2VfZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkTWVzc2FnZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJlcnJvclwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmVycm9yX3JlcHJvY2Vzc2luZ19ldmVudF9tZXNzYWdlX3RpdGxlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuZXJyb3JfcmVwcm9jZXNzaW5nX2V2ZW50X21lc3NhZ2VfZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhZGRNZXNzYWdlKHNldmVyaXR5OiBzdHJpbmcsIHN1bW1hcnk6IHN0cmluZywgZGV0YWlsOiBzdHJpbmcsIGxpZmUgPSBBR1JPX05VTUJFUlMuRklWRV9TRUNPTkRTKSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xyXG4gICAgICAgICAgICBzZXZlcml0eSxcclxuICAgICAgICAgICAgc3VtbWFyeTogdGhpcy50cmFuc2xhdGUuaW5zdGFudChzdW1tYXJ5KSxcclxuICAgICAgICAgICAgZGV0YWlsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGRldGFpbCksXHJcbiAgICAgICAgICAgIGxpZmUsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9wZW5Nb2RhbCgpIHtcclxuICAgICAgICB0aGlzLmRpc3BsYXlNb2RhbCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zaG93U2lkZWJhciA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBvcGVuQ2FuY2VsTW9kYWwoKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5jYW5jZWxFdmVudERpYWxvZ0NvbmZpZy5iZWZvcmVPcGVuPy4oKTtcclxuICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihDYW5jZWxFdmVudERpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICAgICAgICBoZWFkZXI6IHRoaXMuY2FuY2VsRXZlbnREaWFsb2dDb25maWc/LmhlYWRlcixcclxuICAgICAgICAgICAgY29udGVudFN0eWxlOiB7IGhlaWdodDogXCIxMDAlXCIgfSxcclxuICAgICAgICAgICAgY2xvc2FibGU6IHRydWUsXHJcbiAgICAgICAgICAgIGNsb3NlT25Fc2NhcGU6IGZhbHNlLFxyXG4gICAgICAgICAgICBkYXRhOiB7IGNhbmNlbEV2ZW50RGlhbG9nQ29uZmlnOiB0aGlzLmNhbmNlbEV2ZW50RGlhbG9nQ29uZmlnIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNvbmZpcm1Nb2RhbCgpIHtcclxuICAgICAgICB0aGlzLnJlcHJvY2Vzc0V2ZW50KCk7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5TW9kYWwgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2FuY2VsTW9kYWwoKSB7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5TW9kYWwgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2xvc2VTaWRlYmFyKCkge1xyXG4gICAgICAgIHRoaXMuc2hvd1NpZGViYXIgPSBmYWxzZTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,7 +1,6 @@
1
1
  import { __assign } from "tslib";
2
2
  var moment = require("moment");
3
3
  import { E070Emp } from '../e070emp/e070emp';
4
- import { E070Fil } from '../e070fil/e070fil';
5
4
  import { E001pes } from '../e001pes/e001pes';
6
5
  var RuralEstate = /** @class */ (function () {
7
6
  function RuralEstate() {
@@ -17,8 +16,6 @@ var RuralEstate = /** @class */ (function () {
17
16
  'company.codEmp',
18
17
  'company.nomEmp',
19
18
  'company.sigEmp',
20
- 'branch.codFil',
21
- 'branch.nomFil',
22
19
  'code',
23
20
  'name',
24
21
  'ie',
@@ -48,9 +45,6 @@ var RuralEstate = /** @class */ (function () {
48
45
  if (originEntity !== 'E070Emp' && model.company) {
49
46
  model.company = E070Emp.fromDto(model.company, 'RuralEstate');
50
47
  }
51
- if (originEntity !== 'E070Fil' && model.branch) {
52
- model.branch = E070Fil.fromDto(model.branch, 'RuralEstate');
53
- }
54
48
  if (originEntity !== 'E001Pes' && model.producers) {
55
49
  model.producers = Object.values(model.producers).map(function (item) { return E001pes.fromDto(item, 'RuralEstate'); });
56
50
  }
@@ -64,9 +58,6 @@ var RuralEstate = /** @class */ (function () {
64
58
  if (originEntity !== 'E070Emp' && dto.company) {
65
59
  dto.company = E070Emp.toDto(dto.company, 'RuralEstate');
66
60
  }
67
- if (originEntity !== 'E070Fil' && dto.branch) {
68
- dto.branch = E070Fil.toDto(dto.branch, 'RuralEstate');
69
- }
70
61
  if (originEntity !== 'E001Pes' && dto.producers) {
71
62
  dto.producers = Object.values(dto.producers)
72
63
  .map(function (item) { return E001pes.toDto(item, 'RuralEstate'); })
@@ -80,4 +71,4 @@ var RuralEstate = /** @class */ (function () {
80
71
  return RuralEstate;
81
72
  }());
82
73
  export { RuralEstate };
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVyYWwtZXN0YXRlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1hZ3JvbmVnb2Npby9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2V2ZW50LWNvbnRyb2wtYm9hcmQvc2VydmljZS9ydXJhbC1lc3RhdGUvcnVyYWwtZXN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFJakMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFN0M7SUFBQTtJQThHQSxDQUFDO0lBcEZpQixtQkFBTyxHQUFyQixVQUFzQixjQUE4QixFQUFFLFlBQXFCO1FBQ3ZFLElBQU0sS0FBSyxnQkFBYSxjQUFjLENBQUUsQ0FBQztRQUV6QyxLQUFLLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM3RCxLQUFLLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUU3RCxJQUFNLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBTSxhQUFhLEdBQUc7WUFDbEIsSUFBSTtZQUNKLFlBQVk7WUFDWixnQkFBZ0I7WUFDaEIsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2YsZUFBZTtZQUNmLE1BQU07WUFDTixNQUFNO1lBQ04sSUFBSTtZQUNKLEtBQUs7WUFDTCxTQUFTO1lBQ1QsUUFBUTtZQUNSLFlBQVk7WUFDWixVQUFVO1lBQ1YsZ0JBQWdCO1lBQ2hC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QUFDLFNBQVMsQ0FBQztJQUNwRCxDQUFDO0lBRUwsa0JBQUM7QUFBRCxDQUFDLEFBOUdELElBOEdDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbW9tZW50ID0gcmVxdWlyZShcIm1vbWVudFwiKTtcclxuXHJcbmltcG9ydCB7IFJ1cmFsRXN0YXRlRHRvIH0gZnJvbSAnLi4vcnVyYWwtZXN0YXRlL3J1cmFsLWVzdGF0ZS1kdG8nO1xyXG5pbXBvcnQgeyBTdGF0dXNFbnRpdHkgfSBmcm9tICcuLi8uLi9jb21tb24vc3RhdHVzLWVudGl0eSc7XHJcbmltcG9ydCB7IEUwNzBFbXAgfSBmcm9tICcuLi9lMDcwZW1wL2UwNzBlbXAnO1xyXG5pbXBvcnQgeyBFMDcwRmlsIH0gZnJvbSAnLi4vZTA3MGZpbC9lMDcwZmlsJztcclxuaW1wb3J0IHsgRTAwMXBlcyB9IGZyb20gJy4uL2UwMDFwZXMvZTAwMXBlcyc7XHJcblxyXG5leHBvcnQgY2xhc3MgUnVyYWxFc3RhdGUge1xyXG4gICAgcHVibGljIGlkPzogc3RyaW5nO1xyXG4gICAgcHVibGljIHNlcXVlbnRpYWw/OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgY29tcGFueSE6IEUwNzBFbXA7XHJcbiAgICBwdWJsaWMgYnJhbmNoITogRTA3MEZpbDtcclxuICAgIHB1YmxpYyBjb2RlPzogc3RyaW5nO1xyXG4gICAgcHVibGljIG5hbWUhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgaWU/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgY2VwITogc3RyaW5nO1xyXG4gICAgcHVibGljIGFkZHJlc3MhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgbnVtYmVyPzogbnVtYmVyO1xyXG4gICAgcHVibGljIGNvbXBsZW1lbnQ/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgZGlzdHJpY3Q/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgY291bnRyeT86IGFueTtcclxuICAgIHB1YmxpYyBzdGF0ZT86IGFueTtcclxuICAgIHB1YmxpYyBjaXR5PzogYW55O1xyXG4gICAgcHVibGljIGxhdGl0dWRlPzogc3RyaW5nO1xyXG4gICAgcHVibGljIGxvbmdpdHVkZT86IHN0cmluZztcclxuICAgIHB1YmxpYyBzdGF0dXMhOiBTdGF0dXNFbnRpdHk7XHJcbiAgICBwdWJsaWMgcHJvZHVjZXJzPzogRTAwMXBlc1tdO1xyXG4gICAgcHVibGljIHVzdWdlcj86IHN0cmluZztcclxuICAgIHB1YmxpYyBkdGhnZXI/OiBEYXRlO1xyXG4gICAgcHVibGljIHVzdWFsdD86IHN0cmluZztcclxuICAgIHB1YmxpYyBkdGhhbHQ/OiBEYXRlO1xyXG4gICAgcHVibGljIGN1c3RvbT86IGFueTtcclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGZyb21EdG8ocnVyYWxFc3RhdGVEdG86IFJ1cmFsRXN0YXRlRHRvLCBvcmlnaW5FbnRpdHk/OiBzdHJpbmcpOiBSdXJhbEVzdGF0ZSB7XHJcbiAgICAgICAgY29uc3QgbW9kZWw6IGFueSA9IHsgLi4ucnVyYWxFc3RhdGVEdG8gfTtcclxuXHJcbiAgICAgICAgbW9kZWwuZHRoZ2VyID0gbW9kZWwuZHRoZ2VyICYmIG1vbWVudChtb2RlbC5kdGhnZXIpLnRvRGF0ZSgpO1xyXG4gICAgICAgIG1vZGVsLmR0aGFsdCA9IG1vZGVsLmR0aGFsdCAmJiBtb21lbnQobW9kZWwuZHRoYWx0KS50b0RhdGUoKTtcclxuXHJcbiAgICAgICAgY29uc3QgbG9va3VwU2VwYXJhdG9yID0gJyAtICc7XHJcbiAgICAgICAgY29uc3QgZGlzcGxheUZpZWxkcyA9IFtcclxuICAgICAgICAgICAgJ2lkJyxcclxuICAgICAgICAgICAgJ3NlcXVlbnRpYWwnLFxyXG4gICAgICAgICAgICAnY29tcGFueS5jb2RFbXAnLFxyXG4gICAgICAgICAgICAnY29tcGFueS5ub21FbXAnLFxyXG4gICAgICAgICAgICAnY29tcGFueS5zaWdFbXAnLFxyXG4gICAgICAgICAgICAnYnJhbmNoLmNvZEZpbCcsXHJcbiAgICAgICAgICAgICdicmFuY2gubm9tRmlsJyxcclxuICAgICAgICAgICAgJ2NvZGUnLFxyXG4gICAgICAgICAgICAnbmFtZScsXHJcbiAgICAgICAgICAgICdpZScsXHJcbiAgICAgICAgICAgICdjZXAnLFxyXG4gICAgICAgICAgICAnYWRkcmVzcycsXHJcbiAgICAgICAgICAgICdudW1iZXInLFxyXG4gICAgICAgICAgICAnY29tcGxlbWVudCcsXHJcbiAgICAgICAgICAgICdkaXN0cmljdCcsXHJcbiAgICAgICAgICAgICdjb3VudHJ5LmNvZFBhaScsXHJcbiAgICAgICAgICAgICdjb3VudHJ5Lm5vbVBhaScsXHJcbiAgICAgICAgICAgICdzdGF0ZS5zaWdVZnMnLFxyXG4gICAgICAgICAgICAnc3RhdGUubm9tVWZzJyxcclxuICAgICAgICAgICAgJ2NpdHkuY29kUmFpJyxcclxuICAgICAgICAgICAgJ2NpdHkubm9tQ2lkJyxcclxuICAgICAgICAgICAgJ2xhdGl0dWRlJyxcclxuICAgICAgICAgICAgJ2xvbmdpdHVkZScsXHJcbiAgICAgICAgICAgICdzdGF0dXMnLFxyXG4gICAgICAgICAgICAncHJvZHVjZXJzLmNvZFBlcycsXHJcbiAgICAgICAgICAgICdwcm9kdWNlcnMubm9tUGVzJyxcclxuICAgICAgICAgICAgJ3Byb2R1Y2Vycy5jbnBDcGYnLFxyXG4gICAgICAgICAgICAndXN1Z2VyJyxcclxuICAgICAgICAgICAgJ2R0aGdlcicsXHJcbiAgICAgICAgICAgICd1c3VhbHQnLFxyXG4gICAgICAgICAgICAnZHRoYWx0JyxcclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICBtb2RlbC5sYWJlbCA9IGRpc3BsYXlGaWVsZHMubWFwKChmaWVsZCkgPT4gbW9kZWxbZmllbGRdKS5qb2luKGxvb2t1cFNlcGFyYXRvcik7XHJcblxyXG4gICAgICAgIGlmIChvcmlnaW5FbnRpdHkgIT09ICdFMDcwRW1wJyAmJiBtb2RlbC5jb21wYW55KSB7XHJcbiAgICAgICAgICAgICBtb2RlbC5jb21wYW55ID0gRTA3MEVtcC5mcm9tRHRvKG1vZGVsLmNvbXBhbnksICdSdXJhbEVzdGF0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAob3JpZ2luRW50aXR5ICE9PSAnRTA3MEZpbCcgJiYgbW9kZWwuYnJhbmNoKSB7XHJcbiAgICAgICAgICAgICBtb2RlbC5icmFuY2ggPSBFMDcwRmlsLmZyb21EdG8obW9kZWwuYnJhbmNoLCAnUnVyYWxFc3RhdGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9yaWdpbkVudGl0eSAhPT0gJ0UwMDFQZXMnICYmIG1vZGVsLnByb2R1Y2Vycykge1xyXG4gICAgICAgICAgICBtb2RlbC5wcm9kdWNlcnMgPSBPYmplY3QudmFsdWVzKG1vZGVsLnByb2R1Y2VycykubWFwKChpdGVtOiBhbnkpID0+IEUwMDFwZXMuZnJvbUR0byhpdGVtLCAnUnVyYWxFc3RhdGUnKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbW9kZWwgYXMgUnVyYWxFc3RhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyB0b0R0byhydXJhbEVzdGF0ZTogUnVyYWxFc3RhdGUsIG9yaWdpbkVudGl0eT86IHN0cmluZyk6IFJ1cmFsRXN0YXRlRHRvIHtcclxuICAgICAgICBjb25zdCBkdG86IGFueSA9IHsgLi4ucnVyYWxFc3RhdGUgfTtcclxuXHJcbiAgICAgICAgZHRvLmR0aGdlciA9IHRoaXMuZm9ybWF0RGF0ZVRpbWUoZHRvLmR0aGdlcik7XHJcbiAgICAgICAgZHRvLmR0aGFsdCA9IHRoaXMuZm9ybWF0RGF0ZVRpbWUoZHRvLmR0aGFsdCk7XHJcblxyXG4gICAgICAgIGRlbGV0ZSBkdG8ubGFiZWw7XHJcblxyXG4gICAgICAgIGlmIChvcmlnaW5FbnRpdHkgIT09ICdFMDcwRW1wJyAmJiBkdG8uY29tcGFueSkge1xyXG4gICAgICAgICAgICBkdG8uY29tcGFueSA9IEUwNzBFbXAudG9EdG8oZHRvLmNvbXBhbnksICdSdXJhbEVzdGF0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAob3JpZ2luRW50aXR5ICE9PSAnRTA3MEZpbCcgJiYgZHRvLmJyYW5jaCkge1xyXG4gICAgICAgICAgICBkdG8uYnJhbmNoID0gRTA3MEZpbC50b0R0byhkdG8uYnJhbmNoLCAnUnVyYWxFc3RhdGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9yaWdpbkVudGl0eSAhPT0gJ0UwMDFQZXMnICYmIGR0by5wcm9kdWNlcnMpIHtcclxuICAgICAgICAgICAgZHRvLnByb2R1Y2VycyA9IE9iamVjdC52YWx1ZXMoZHRvLnByb2R1Y2VycylcclxuICAgICAgICAgICAgICAgIC5tYXAoKGl0ZW06IGFueSkgPT4gRTAwMXBlcy50b0R0byhpdGVtLCAnUnVyYWxFc3RhdGUnKSlcclxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IE9iamVjdC5rZXlzKGl0ZW0pLmxlbmd0aCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZHRvO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBmb3JtYXREYXRlVGltZShkYXRlOiBEYXRlIHwgdW5kZWZpbmVkKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gZGF0ZSA/IG1vbWVudChkYXRlKS5mb3JtYXQoKSA6IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbn1cclxuIl19
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVyYWwtZXN0YXRlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1hZ3JvbmVnb2Npby9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2V2ZW50LWNvbnRyb2wtYm9hcmQvc2VydmljZS9ydXJhbC1lc3RhdGUvcnVyYWwtZXN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFJakMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU3QztJQUFBO0lBcUdBLENBQUM7SUE1RWlCLG1CQUFPLEdBQXJCLFVBQXNCLGNBQThCLEVBQUUsWUFBcUI7UUFDdkUsSUFBTSxLQUFLLGdCQUFhLGNBQWMsQ0FBRSxDQUFDO1FBRXpDLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzdELEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRTdELElBQU0sZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFNLGFBQWEsR0FBRztZQUNsQixJQUFJO1lBQ0osWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsZ0JBQWdCO1lBQ2hCLE1BQU07WUFDTixNQUFNO1lBQ04sSUFBSTtZQUNKLEtBQUs7WUFDTCxTQUFTO1lBQ1QsUUFBUTtZQUNSLFlBQVk7WUFDWixVQUFVO1lBQ1YsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixjQUFjO1lBQ2QsY0FBYztZQUNkLGFBQWE7WUFDYixhQUFhO1lBQ2IsVUFBVTtZQUNWLFdBQVc7WUFDWCxRQUFRO1lBQ1Isa0JBQWtCO1lBQ2xCLGtCQUFrQjtZQUNsQixrQkFBa0I7WUFDbEIsUUFBUTtZQUNSLFFBQVE7WUFDUixRQUFRO1lBQ1IsUUFBUTtTQUNYLENBQUM7UUFFRixLQUFLLENBQUMsS0FBSyxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsVUFBQyxLQUFLLElBQUssT0FBQSxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQVosQ0FBWSxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRS9FLElBQUksWUFBWSxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFO1lBQzVDLEtBQUssQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1NBQ2xFO1FBQ0QsSUFBSSxZQUFZLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUU7WUFDL0MsS0FBSyxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQyxJQUFTLElBQUssT0FBQSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsRUFBcEMsQ0FBb0MsQ0FBQyxDQUFDO1NBQzdHO1FBRUQsT0FBTyxLQUFvQixDQUFDO0lBQ2hDLENBQUM7SUFFYSxpQkFBSyxHQUFuQixVQUFvQixXQUF3QixFQUFFLFlBQXFCO1FBQy9ELElBQU0sR0FBRyxnQkFBYSxXQUFXLENBQUUsQ0FBQztRQUVwQyxHQUFHLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFN0MsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDO1FBRWpCLElBQUksWUFBWSxLQUFLLFNBQVMsSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFO1lBQzNDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1NBQzNEO1FBQ0QsSUFBSSxZQUFZLEtBQUssU0FBUyxJQUFJLEdBQUcsQ0FBQyxTQUFTLEVBQUU7WUFDN0MsR0FBRyxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUM7aUJBQ3ZDLEdBQUcsQ0FBQyxVQUFDLElBQVMsSUFBSyxPQUFBLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxFQUFsQyxDQUFrQyxDQUFDO2lCQUN0RCxNQUFNLENBQUMsVUFBQyxJQUFJLElBQUssT0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBeEIsQ0FBd0IsQ0FBQyxDQUFDO1NBQ25EO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBR2MsMEJBQWMsR0FBN0IsVUFBOEIsSUFBc0I7UUFDaEQsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3BELENBQUM7SUFFTCxrQkFBQztBQUFELENBQUMsQUFyR0QsSUFxR0MiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtb21lbnQgPSByZXF1aXJlKFwibW9tZW50XCIpO1xyXG5cclxuaW1wb3J0IHsgUnVyYWxFc3RhdGVEdG8gfSBmcm9tICcuLi9ydXJhbC1lc3RhdGUvcnVyYWwtZXN0YXRlLWR0byc7XHJcbmltcG9ydCB7IFN0YXR1c0VudGl0eSB9IGZyb20gJy4uLy4uL2NvbW1vbi9zdGF0dXMtZW50aXR5JztcclxuaW1wb3J0IHsgRTA3MEVtcCB9IGZyb20gJy4uL2UwNzBlbXAvZTA3MGVtcCc7XHJcbmltcG9ydCB7IEUwMDFwZXMgfSBmcm9tICcuLi9lMDAxcGVzL2UwMDFwZXMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFJ1cmFsRXN0YXRlIHtcclxuICAgIHB1YmxpYyBpZD86IHN0cmluZztcclxuICAgIHB1YmxpYyBzZXF1ZW50aWFsPzogbnVtYmVyO1xyXG4gICAgcHVibGljIGNvbXBhbnkhOiBFMDcwRW1wO1xyXG4gICAgcHVibGljIGNvZGU/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgbmFtZSE6IHN0cmluZztcclxuICAgIHB1YmxpYyBpZT86IHN0cmluZztcclxuICAgIHB1YmxpYyBjZXAhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgYWRkcmVzcyE6IHN0cmluZztcclxuICAgIHB1YmxpYyBudW1iZXI/OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgY29tcGxlbWVudD86IHN0cmluZztcclxuICAgIHB1YmxpYyBkaXN0cmljdD86IHN0cmluZztcclxuICAgIHB1YmxpYyBjb3VudHJ5PzogYW55O1xyXG4gICAgcHVibGljIHN0YXRlPzogYW55O1xyXG4gICAgcHVibGljIGNpdHk/OiBhbnk7XHJcbiAgICBwdWJsaWMgbGF0aXR1ZGU/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgbG9uZ2l0dWRlPzogc3RyaW5nO1xyXG4gICAgcHVibGljIHN0YXR1cyE6IFN0YXR1c0VudGl0eTtcclxuICAgIHB1YmxpYyBwcm9kdWNlcnM/OiBFMDAxcGVzW107XHJcbiAgICBwdWJsaWMgdXN1Z2VyPzogc3RyaW5nO1xyXG4gICAgcHVibGljIGR0aGdlcj86IERhdGU7XHJcbiAgICBwdWJsaWMgdXN1YWx0Pzogc3RyaW5nO1xyXG4gICAgcHVibGljIGR0aGFsdD86IERhdGU7XHJcbiAgICBwdWJsaWMgY3VzdG9tPzogYW55O1xyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgZnJvbUR0byhydXJhbEVzdGF0ZUR0bzogUnVyYWxFc3RhdGVEdG8sIG9yaWdpbkVudGl0eT86IHN0cmluZyk6IFJ1cmFsRXN0YXRlIHtcclxuICAgICAgICBjb25zdCBtb2RlbDogYW55ID0geyAuLi5ydXJhbEVzdGF0ZUR0byB9O1xyXG5cclxuICAgICAgICBtb2RlbC5kdGhnZXIgPSBtb2RlbC5kdGhnZXIgJiYgbW9tZW50KG1vZGVsLmR0aGdlcikudG9EYXRlKCk7XHJcbiAgICAgICAgbW9kZWwuZHRoYWx0ID0gbW9kZWwuZHRoYWx0ICYmIG1vbWVudChtb2RlbC5kdGhhbHQpLnRvRGF0ZSgpO1xyXG5cclxuICAgICAgICBjb25zdCBsb29rdXBTZXBhcmF0b3IgPSAnIC0gJztcclxuICAgICAgICBjb25zdCBkaXNwbGF5RmllbGRzID0gW1xyXG4gICAgICAgICAgICAnaWQnLFxyXG4gICAgICAgICAgICAnc2VxdWVudGlhbCcsXHJcbiAgICAgICAgICAgICdjb21wYW55LmNvZEVtcCcsXHJcbiAgICAgICAgICAgICdjb21wYW55Lm5vbUVtcCcsXHJcbiAgICAgICAgICAgICdjb21wYW55LnNpZ0VtcCcsXHJcbiAgICAgICAgICAgICdjb2RlJyxcclxuICAgICAgICAgICAgJ25hbWUnLFxyXG4gICAgICAgICAgICAnaWUnLFxyXG4gICAgICAgICAgICAnY2VwJyxcclxuICAgICAgICAgICAgJ2FkZHJlc3MnLFxyXG4gICAgICAgICAgICAnbnVtYmVyJyxcclxuICAgICAgICAgICAgJ2NvbXBsZW1lbnQnLFxyXG4gICAgICAgICAgICAnZGlzdHJpY3QnLFxyXG4gICAgICAgICAgICAnY291bnRyeS5jb2RQYWknLFxyXG4gICAgICAgICAgICAnY291bnRyeS5ub21QYWknLFxyXG4gICAgICAgICAgICAnc3RhdGUuc2lnVWZzJyxcclxuICAgICAgICAgICAgJ3N0YXRlLm5vbVVmcycsXHJcbiAgICAgICAgICAgICdjaXR5LmNvZFJhaScsXHJcbiAgICAgICAgICAgICdjaXR5Lm5vbUNpZCcsXHJcbiAgICAgICAgICAgICdsYXRpdHVkZScsXHJcbiAgICAgICAgICAgICdsb25naXR1ZGUnLFxyXG4gICAgICAgICAgICAnc3RhdHVzJyxcclxuICAgICAgICAgICAgJ3Byb2R1Y2Vycy5jb2RQZXMnLFxyXG4gICAgICAgICAgICAncHJvZHVjZXJzLm5vbVBlcycsXHJcbiAgICAgICAgICAgICdwcm9kdWNlcnMuY25wQ3BmJyxcclxuICAgICAgICAgICAgJ3VzdWdlcicsXHJcbiAgICAgICAgICAgICdkdGhnZXInLFxyXG4gICAgICAgICAgICAndXN1YWx0JyxcclxuICAgICAgICAgICAgJ2R0aGFsdCcsXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgbW9kZWwubGFiZWwgPSBkaXNwbGF5RmllbGRzLm1hcCgoZmllbGQpID0+IG1vZGVsW2ZpZWxkXSkuam9pbihsb29rdXBTZXBhcmF0b3IpO1xyXG5cclxuICAgICAgICBpZiAob3JpZ2luRW50aXR5ICE9PSAnRTA3MEVtcCcgJiYgbW9kZWwuY29tcGFueSkge1xyXG4gICAgICAgICAgICAgbW9kZWwuY29tcGFueSA9IEUwNzBFbXAuZnJvbUR0byhtb2RlbC5jb21wYW55LCAnUnVyYWxFc3RhdGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9yaWdpbkVudGl0eSAhPT0gJ0UwMDFQZXMnICYmIG1vZGVsLnByb2R1Y2Vycykge1xyXG4gICAgICAgICAgICBtb2RlbC5wcm9kdWNlcnMgPSBPYmplY3QudmFsdWVzKG1vZGVsLnByb2R1Y2VycykubWFwKChpdGVtOiBhbnkpID0+IEUwMDFwZXMuZnJvbUR0byhpdGVtLCAnUnVyYWxFc3RhdGUnKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbW9kZWwgYXMgUnVyYWxFc3RhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyB0b0R0byhydXJhbEVzdGF0ZTogUnVyYWxFc3RhdGUsIG9yaWdpbkVudGl0eT86IHN0cmluZyk6IFJ1cmFsRXN0YXRlRHRvIHtcclxuICAgICAgICBjb25zdCBkdG86IGFueSA9IHsgLi4ucnVyYWxFc3RhdGUgfTtcclxuXHJcbiAgICAgICAgZHRvLmR0aGdlciA9IHRoaXMuZm9ybWF0RGF0ZVRpbWUoZHRvLmR0aGdlcik7XHJcbiAgICAgICAgZHRvLmR0aGFsdCA9IHRoaXMuZm9ybWF0RGF0ZVRpbWUoZHRvLmR0aGFsdCk7XHJcblxyXG4gICAgICAgIGRlbGV0ZSBkdG8ubGFiZWw7XHJcblxyXG4gICAgICAgIGlmIChvcmlnaW5FbnRpdHkgIT09ICdFMDcwRW1wJyAmJiBkdG8uY29tcGFueSkge1xyXG4gICAgICAgICAgICBkdG8uY29tcGFueSA9IEUwNzBFbXAudG9EdG8oZHRvLmNvbXBhbnksICdSdXJhbEVzdGF0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAob3JpZ2luRW50aXR5ICE9PSAnRTAwMVBlcycgJiYgZHRvLnByb2R1Y2Vycykge1xyXG4gICAgICAgICAgICBkdG8ucHJvZHVjZXJzID0gT2JqZWN0LnZhbHVlcyhkdG8ucHJvZHVjZXJzKVxyXG4gICAgICAgICAgICAgICAgLm1hcCgoaXRlbTogYW55KSA9PiBFMDAxcGVzLnRvRHRvKGl0ZW0sICdSdXJhbEVzdGF0ZScpKVxyXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoaXRlbSkgPT4gT2JqZWN0LmtleXMoaXRlbSkubGVuZ3RoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBkdG87XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIGZvcm1hdERhdGVUaW1lKGRhdGU6IERhdGUgfCB1bmRlZmluZWQpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiBkYXRlID8gbW9tZW50KGRhdGUpLmZvcm1hdCgpIDogdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=