@hmcts/ccpay-web-component 5.0.1 → 6.0.0-beta3

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 (70) hide show
  1. package/bundles/hmcts-ccpay-web-component.umd.js +4999 -3876
  2. package/bundles/hmcts-ccpay-web-component.umd.js.map +1 -1
  3. package/bundles/hmcts-ccpay-web-component.umd.min.js +1 -1
  4. package/bundles/hmcts-ccpay-web-component.umd.min.js.map +1 -1
  5. package/esm2015/hmcts-ccpay-web-component.js +40 -38
  6. package/esm2015/lib/components/add-remission/add-remission.component.js +216 -166
  7. package/esm2015/lib/components/case-transactions/case-transactions.component.js +68 -41
  8. package/esm2015/lib/components/fee-summary/fee-summary.component.js +1 -3
  9. package/esm2015/lib/components/payment-view/payment-view.component.js +95 -19
  10. package/esm2015/lib/components/pba-payment/pba-payment.component.js +205 -0
  11. package/esm2015/lib/components/process-refund/process-refund.component.js +72 -9
  12. package/esm2015/lib/components/refund-list/refund-list.component.js +6 -10
  13. package/esm2015/lib/components/refund-status/refund-status.component.js +29 -43
  14. package/esm2015/lib/components/service-request/service-request.component.js +626 -0
  15. package/esm2015/lib/components/status-history/status-history.component.js +2 -2
  16. package/esm2015/lib/components/table/table.component.js +27 -10
  17. package/esm2015/lib/components/unprocessed-payments/unprocessed-payments.component.js +1 -2
  18. package/esm2015/lib/interfaces/IFee.js +3 -1
  19. package/esm2015/lib/interfaces/IPayment.js +3 -1
  20. package/esm2015/lib/interfaces/IserviceRequestCardPayment.js +23 -0
  21. package/esm2015/lib/interfaces/IserviceRequestPbaPayment.js +28 -0
  22. package/esm2015/lib/payment-lib.component.js +54 -6
  23. package/esm2015/lib/payment-lib.module.js +6 -2
  24. package/esm2015/lib/services/orderslist.service.js +193 -1
  25. package/esm2015/lib/services/payment-view/payment-view.service.js +30 -2
  26. package/esm2015/lib/services/shared/error-handler.service.js +49 -22
  27. package/esm5/hmcts-ccpay-web-component.js +40 -38
  28. package/esm5/lib/components/add-remission/add-remission.component.js +220 -167
  29. package/esm5/lib/components/case-transactions/case-transactions.component.js +74 -45
  30. package/esm5/lib/components/fee-summary/fee-summary.component.js +1 -3
  31. package/esm5/lib/components/payment-view/payment-view.component.js +99 -19
  32. package/esm5/lib/components/pba-payment/pba-payment.component.js +222 -0
  33. package/esm5/lib/components/process-refund/process-refund.component.js +76 -9
  34. package/esm5/lib/components/refund-list/refund-list.component.js +6 -10
  35. package/esm5/lib/components/refund-status/refund-status.component.js +32 -44
  36. package/esm5/lib/components/service-request/service-request.component.js +702 -0
  37. package/esm5/lib/components/status-history/status-history.component.js +2 -2
  38. package/esm5/lib/components/table/table.component.js +26 -11
  39. package/esm5/lib/components/unprocessed-payments/unprocessed-payments.component.js +1 -2
  40. package/esm5/lib/interfaces/IFee.js +3 -1
  41. package/esm5/lib/interfaces/IPayment.js +3 -1
  42. package/esm5/lib/interfaces/IserviceRequestCardPayment.js +22 -0
  43. package/esm5/lib/interfaces/IserviceRequestPbaPayment.js +25 -0
  44. package/esm5/lib/payment-lib.component.js +50 -5
  45. package/esm5/lib/payment-lib.module.js +6 -2
  46. package/esm5/lib/services/orderslist.service.js +256 -1
  47. package/esm5/lib/services/payment-view/payment-view.service.js +43 -2
  48. package/esm5/lib/services/shared/error-handler.service.js +49 -22
  49. package/fesm2015/hmcts-ccpay-web-component.js +1447 -470
  50. package/fesm2015/hmcts-ccpay-web-component.js.map +1 -1
  51. package/fesm5/hmcts-ccpay-web-component.js +6133 -4985
  52. package/fesm5/hmcts-ccpay-web-component.js.map +1 -1
  53. package/hmcts-ccpay-web-component.d.ts +39 -37
  54. package/hmcts-ccpay-web-component.metadata.json +1 -1
  55. package/lib/components/add-remission/add-remission.component.d.ts +14 -1
  56. package/lib/components/case-transactions/case-transactions.component.d.ts +7 -3
  57. package/lib/components/payment-view/payment-view.component.d.ts +13 -3
  58. package/lib/components/pba-payment/pba-payment.component.d.ts +28 -0
  59. package/lib/components/process-refund/process-refund.component.d.ts +8 -1
  60. package/lib/components/refund-status/refund-status.component.d.ts +2 -0
  61. package/lib/components/service-request/service-request.component.d.ts +105 -0
  62. package/lib/components/table/table.component.d.ts +5 -2
  63. package/lib/interfaces/IFee.d.ts +1 -0
  64. package/lib/interfaces/IPayment.d.ts +1 -0
  65. package/lib/interfaces/IserviceRequestCardPayment.d.ts +6 -0
  66. package/lib/interfaces/IserviceRequestPbaPayment.d.ts +7 -0
  67. package/lib/payment-lib.component.d.ts +18 -1
  68. package/lib/services/orderslist.service.d.ts +34 -0
  69. package/lib/services/payment-view/payment-view.service.d.ts +5 -0
  70. package/package.json +1 -1
@@ -26,40 +26,67 @@ var ErrorHandlerService = /** @class */ (function () {
26
26
  else {
27
27
  // The backend returned an unsuccessful response code.
28
28
  if (err.status === 404) {
29
- if (!err.error) {
30
- errorMessage = 'Not found';
29
+ if (typeof err.error === 'string' && err.error !== undefined) {
30
+ if (err.error.length > 60) {
31
+ if (JSON.parse(err.error).statusCode !== undefined && JSON.parse(err.error).statusCode === 500) {
32
+ errorMessage = 'Internal server error';
33
+ }
34
+ else {
35
+ if (err.error.length > 60) {
36
+ errorMessage = JSON.parse(err.error).error;
37
+ }
38
+ else {
39
+ errorMessage = err.error;
40
+ }
41
+ }
42
+ }
43
+ else {
44
+ errorMessage = err.error;
45
+ }
31
46
  }
32
47
  else {
33
- errorMessage = err.error;
48
+ errorMessage = JSON.parse(err.error).error;
34
49
  }
35
50
  }
36
- else if (err.status === 400) {
37
- if (typeof err !== 'string') {
38
- if (JSON.parse(err.error)["error"] !== undefined) {
39
- errorMessage = JSON.parse(err.error)["error"];
51
+ else if (err.status === 500) {
52
+ errorMessage = 'Internal server error';
53
+ }
54
+ else if (err.error.messsage === undefined) {
55
+ if (typeof err.error === 'object') {
56
+ errorMessage = JSON.parse(JSON.stringify(err.error)).error;
57
+ }
58
+ else {
59
+ if (typeof err.error === 'string' && err.error !== undefined) {
60
+ if (err.error.length > 60) {
61
+ if (JSON.parse(err.error).statusCode !== undefined && JSON.parse(err.error).statusCode === 500) {
62
+ errorMessage = 'Internal server error';
63
+ }
64
+ else {
65
+ if (err.error.length > 60) {
66
+ errorMessage = JSON.parse(err.error).error;
67
+ }
68
+ else {
69
+ errorMessage = err.error;
70
+ }
71
+ }
72
+ }
73
+ else {
74
+ errorMessage = err.error;
75
+ }
40
76
  }
41
77
  else {
42
- JSON.parse(err.error)["err"].split('-')[1];
78
+ errorMessage = JSON.parse(err.error).error;
43
79
  }
44
80
  }
45
- if (errorMessage === '') {
46
- errorMessage = err.error.toString().replace(/"/g, "");
47
- }
48
81
  }
49
- else if (err.error) {
50
- if (typeof err.error === 'string') {
51
- errorMessage = err.error.toString().replace(/"/g, "");
82
+ else {
83
+ if (err.error.message !== undefined) {
84
+ errorMessage = "" + err.error.message;
52
85
  }
53
86
  else {
54
- errorMessage = Object.values(err.error)[0].toString().replace(/"/g, "");
87
+ errorMessage = "" + err.error;
55
88
  }
56
89
  }
57
- else if (err.error.messsage === undefined) {
58
- errorMessage = 'Server error';
59
- }
60
- else {
61
- errorMessage = "" + err.error.message;
62
- }
63
90
  }
64
91
  return _throw(errorMessage);
65
92
  };
@@ -89,4 +116,4 @@ var ErrorHandlerService = /** @class */ (function () {
89
116
  return ErrorHandlerService;
90
117
  }());
91
118
  export { ErrorHandlerService };
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItaGFuZGxlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL2NjcGF5LXdlYi1jb21wb25lbnQvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvc2hhcmVkL2Vycm9yLWhhbmRsZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBSS9DO0lBT0U7SUFBZ0IsQ0FBQzs7Ozs7SUFHakIseUNBQVc7Ozs7SUFBWCxVQUFZLEdBQXNCOztZQUM1QixZQUFvQjtRQUN4QixJQUFJLEdBQUcsQ0FBQyxLQUFLLFlBQVksS0FBSyxFQUFFO1lBQzlCLDJDQUEyQztZQUMzQyxZQUFZLEdBQUcsd0JBQXNCLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBUyxDQUFDO1NBQzFEO2FBQU07WUFDTCxzREFBc0Q7WUFDdEQsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUU7b0JBQ2QsWUFBWSxHQUFHLFdBQVcsQ0FBQztpQkFDNUI7cUJBQU07b0JBQ0wsWUFBWSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7aUJBQzFCO2FBQ0Y7aUJBQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRTtnQkFDN0IsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7b0JBQzNCLElBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssU0FBUyxFQUFFO3dCQUMvQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7cUJBQy9DO3lCQUFNO3dCQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDNUM7aUJBRUY7Z0JBQ0QsSUFBSSxZQUFZLEtBQUssRUFBRSxFQUFFO29CQUNyQixZQUFZLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUN4RDthQUNGO2lCQUFNLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRTtnQkFDcEIsSUFBSSxPQUFPLEdBQUcsQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFO29CQUNqQyxZQUFZLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUN0RDtxQkFBTTtvQkFDTCxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBQyxFQUFFLENBQUMsQ0FBQztpQkFDeEU7YUFDRjtpQkFDSyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRTtnQkFDMUMsWUFBWSxHQUFHLGNBQWMsQ0FBQzthQUMvQjtpQkFBTTtnQkFDTCxZQUFZLEdBQUcsS0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQVMsQ0FBQzthQUN2QztTQUNGO1FBQ0QsT0FBTyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDOUIsQ0FBQzs7Ozs7SUFFRCxtREFBcUI7Ozs7SUFBckIsVUFBc0IsWUFBWTtRQUNoQyxPQUFPO1lBQ0wsS0FBSyxFQUFFLHFDQUFxQztZQUM1QyxJQUFJLEVBQUUsaUJBQWlCO1lBQ3ZCLFNBQVMsRUFBRSxZQUFZO1NBQ3hCLENBQUM7SUFDSixDQUFDOztnQkF6REYsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7Ozs7OEJBUEQ7Q0ErREMsQUExREQsSUEwREM7U0FyRFksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgX3Rocm93IH0gZnJvbSAncnhqcy9vYnNlcnZhYmxlL3Rocm93JztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzL2ludGVybmFsL09ic2VydmFibGUnO1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuXG5cbmV4cG9ydCBjbGFzcyBFcnJvckhhbmRsZXJTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG5cbiAgaGFuZGxlRXJyb3IoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICAgIGlmIChlcnIuZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgLy8gQSBjbGllbnQtc2lkZSBvciBuZXR3b3JrIGVycm9yIG9jY3VycmVkLlxuICAgICAgZXJyb3JNZXNzYWdlID0gYEFuIGVycm9yIG9jY3VycmVkOiAke2Vyci5lcnJvci5tZXNzYWdlfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoZSBiYWNrZW5kIHJldHVybmVkIGFuIHVuc3VjY2Vzc2Z1bCByZXNwb25zZSBjb2RlLlxuICAgICAgaWYgKGVyci5zdGF0dXMgPT09IDQwNCkge1xuICAgICAgICBpZiAoIWVyci5lcnJvcikge1xuICAgICAgICAgIGVycm9yTWVzc2FnZSA9ICdOb3QgZm91bmQnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGVyci5lcnJvcjtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChlcnIuc3RhdHVzID09PSA0MDApIHtcbiAgICAgICAgaWYgKHR5cGVvZiBlcnIgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgaWYoSlNPTi5wYXJzZShlcnIuZXJyb3IpW1wiZXJyb3JcIl0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gSlNPTi5wYXJzZShlcnIuZXJyb3IpW1wiZXJyb3JcIl07ICBcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgSlNPTi5wYXJzZShlcnIuZXJyb3IpW1wiZXJyXCJdLnNwbGl0KCctJylbMV07XG4gICAgICAgICAgfVxuXG4gICAgICAgIH0gXG4gICAgICAgIGlmIChlcnJvck1lc3NhZ2UgPT09ICcnKSB7XG4gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBlcnIuZXJyb3IudG9TdHJpbmcoKS5yZXBsYWNlKC9cIi9nLFwiXCIpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGVyci5lcnJvcikge1xuICAgICAgICBpZiAodHlwZW9mIGVyci5lcnJvciA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBlcnIuZXJyb3IudG9TdHJpbmcoKS5yZXBsYWNlKC9cIi9nLFwiXCIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGVycm9yTWVzc2FnZSA9IE9iamVjdC52YWx1ZXMoZXJyLmVycm9yKVswXS50b1N0cmluZygpLnJlcGxhY2UoL1wiL2csXCJcIik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICBlbHNlIGlmIChlcnIuZXJyb3IubWVzc3NhZ2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBlcnJvck1lc3NhZ2UgPSAnU2VydmVyIGVycm9yJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVycm9yTWVzc2FnZSA9IGAke2Vyci5lcnJvci5tZXNzYWdlfWA7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBfdGhyb3coZXJyb3JNZXNzYWdlKTtcbiAgfVxuXG4gIGdldFNlcnZlckVycm9yTWVzc2FnZShpc0Vycm9yRXhpc3QpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGl0bGU6IFwiVGhlcmUgaXMgYSBwcm9ibGVtIHdpdGggdGhlIHNlcnZpY2VcIixcbiAgICAgIGJvZHk6IFwiVHJ5IGFnYWluIGxhdGVyXCIsXG4gICAgICBzaG93RXJyb3I6IGlzRXJyb3JFeGlzdFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItaGFuZGxlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL2NjcGF5LXdlYi1jb21wb25lbnQvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvc2hhcmVkL2Vycm9yLWhhbmRsZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBSy9DO0lBT0U7SUFBZ0IsQ0FBQzs7Ozs7SUFHakIseUNBQVc7Ozs7SUFBWCxVQUFZLEdBQXNCOztZQUM1QixZQUFvQjtRQUN4QixJQUFJLEdBQUcsQ0FBQyxLQUFLLFlBQVksS0FBSyxFQUFFO1lBQzlCLDJDQUEyQztZQUMzQyxZQUFZLEdBQUcsd0JBQXNCLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBUyxDQUFDO1NBQzFEO2FBQU07WUFDTCxzREFBc0Q7WUFDdEQsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRTtnQkFFdEIsSUFBSSxPQUFPLEdBQUcsQ0FBQyxLQUFLLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFO29CQUU1RCxJQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRTt3QkFDeEIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsS0FBSyxHQUFHLEVBQzlGOzRCQUNFLFlBQVksR0FBRyx1QkFBdUIsQ0FBQzt5QkFDeEM7NkJBQU07NEJBQ0wsSUFBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxFQUFFLEVBQUU7Z0NBQ3hCLFlBQVksR0FBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUM7NkJBQzdDO2lDQUFNO2dDQUNMLFlBQVksR0FBSSxHQUFHLENBQUMsS0FBSyxDQUFDOzZCQUMzQjt5QkFFRjtxQkFDRjt5QkFBTTt3QkFDTCxZQUFZLEdBQUksR0FBRyxDQUFDLEtBQUssQ0FBQztxQkFDM0I7aUJBQ0Y7cUJBQU07b0JBQ0wsWUFBWSxHQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQztpQkFDN0M7YUFFRjtpQkFDSSxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFO2dCQUMzQixZQUFZLEdBQUcsdUJBQXVCLENBQUM7YUFDeEM7aUJBQU0sSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUU7Z0JBQzNDLElBQUksT0FBTyxHQUFHLENBQUMsS0FBSyxLQUFLLFFBQVEsRUFBRTtvQkFDakMsWUFBWSxHQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7aUJBQzdEO3FCQUFNO29CQUNMLElBQUksT0FBTyxHQUFHLENBQUMsS0FBSyxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRTt3QkFFNUQsSUFBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxFQUFFLEVBQUU7NEJBQ3hCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLEtBQUssR0FBRyxFQUM5RjtnQ0FDRSxZQUFZLEdBQUcsdUJBQXVCLENBQUM7NkJBQ3hDO2lDQUFNO2dDQUNMLElBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFO29DQUN4QixZQUFZLEdBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDO2lDQUM3QztxQ0FBTTtvQ0FDTCxZQUFZLEdBQUksR0FBRyxDQUFDLEtBQUssQ0FBQztpQ0FDM0I7NkJBRUY7eUJBQ0Y7NkJBQU07NEJBQ0wsWUFBWSxHQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUM7eUJBQzNCO3FCQUNGO3lCQUFNO3dCQUNMLFlBQVksR0FBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUM7cUJBQzdDO2lCQUVGO2FBRUY7aUJBQU07Z0JBQ0wsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUU7b0JBQ25DLFlBQVksR0FBRyxLQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBUyxDQUFDO2lCQUN2QztxQkFBTTtvQkFDTCxZQUFZLEdBQUcsS0FBRyxHQUFHLENBQUMsS0FBTyxDQUFDO2lCQUMvQjthQUVGO1NBQ0Y7UUFDRCxPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM5QixDQUFDOzs7OztJQUdELG1EQUFxQjs7OztJQUFyQixVQUFzQixZQUFZO1FBQ2hDLE9BQU87WUFDTCxLQUFLLEVBQUUscUNBQXFDO1lBQzVDLElBQUksRUFBRSxpQkFBaUI7WUFDdkIsU0FBUyxFQUFFLFlBQVk7U0FDeEIsQ0FBQztJQUNKLENBQUM7O2dCQXpGRixVQUFVLFNBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7Ozs4QkFSRDtDQWdHQyxBQTFGRCxJQTBGQztTQXJGWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBfdGhyb3cgfSBmcm9tICdyeGpzL29ic2VydmFibGUvdGhyb3cnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMvaW50ZXJuYWwvT2JzZXJ2YWJsZSc7XG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IHN0cmluZ2lmeSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvc3JjL3V0aWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcblxuXG5leHBvcnQgY2xhc3MgRXJyb3JIYW5kbGVyU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuXG4gIGhhbmRsZUVycm9yKGVycjogSHR0cEVycm9yUmVzcG9uc2UpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgICBpZiAoZXJyLmVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIC8vIEEgY2xpZW50LXNpZGUgb3IgbmV0d29yayBlcnJvciBvY2N1cnJlZC5cbiAgICAgIGVycm9yTWVzc2FnZSA9IGBBbiBlcnJvciBvY2N1cnJlZDogJHtlcnIuZXJyb3IubWVzc2FnZX1gO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUaGUgYmFja2VuZCByZXR1cm5lZCBhbiB1bnN1Y2Nlc3NmdWwgcmVzcG9uc2UgY29kZS5cbiAgICAgIGlmIChlcnIuc3RhdHVzID09PSA0MDQpIHtcblxuICAgICAgICBpZiAodHlwZW9mIGVyci5lcnJvciA9PT0gJ3N0cmluZycgJiYgZXJyLmVycm9yICE9PSB1bmRlZmluZWQpIHtcbiAgICBcbiAgICAgICAgICBpZihlcnIuZXJyb3IubGVuZ3RoID4gNjApIHtcbiAgICAgICAgICAgIGlmIChKU09OLnBhcnNlKGVyci5lcnJvcikuc3RhdHVzQ29kZSAhPT0gdW5kZWZpbmVkICYmIEpTT04ucGFyc2UoZXJyLmVycm9yKS5zdGF0dXNDb2RlID09PSA1MDApXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9ICdJbnRlcm5hbCBzZXJ2ZXIgZXJyb3InO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaWYoZXJyLmVycm9yLmxlbmd0aCA+IDYwKSB7XG4gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gIEpTT04ucGFyc2UoZXJyLmVycm9yKS5lcnJvcjtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSAgZXJyLmVycm9yO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgIFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSAgZXJyLmVycm9yO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlcnJvck1lc3NhZ2UgPSAgSlNPTi5wYXJzZShlcnIuZXJyb3IpLmVycm9yO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgfVxuICAgICAgZWxzZSBpZiAoZXJyLnN0YXR1cyA9PT0gNTAwKSB7XG4gICAgICAgIGVycm9yTWVzc2FnZSA9ICdJbnRlcm5hbCBzZXJ2ZXIgZXJyb3InO1xuICAgICAgfSBlbHNlIGlmIChlcnIuZXJyb3IubWVzc3NhZ2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiggdHlwZW9mIGVyci5lcnJvciA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBlcnJvck1lc3NhZ2UgPSAgSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShlcnIuZXJyb3IpKS5lcnJvcjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAodHlwZW9mIGVyci5lcnJvciA9PT0gJ3N0cmluZycgJiYgZXJyLmVycm9yICE9PSB1bmRlZmluZWQpIHtcbiAgICBcbiAgICAgICAgICAgIGlmKGVyci5lcnJvci5sZW5ndGggPiA2MCkge1xuICAgICAgICAgICAgICBpZiAoSlNPTi5wYXJzZShlcnIuZXJyb3IpLnN0YXR1c0NvZGUgIT09IHVuZGVmaW5lZCAmJiBKU09OLnBhcnNlKGVyci5lcnJvcikuc3RhdHVzQ29kZSA9PT0gNTAwKVxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gJ0ludGVybmFsIHNlcnZlciBlcnJvcic7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYoZXJyLmVycm9yLmxlbmd0aCA+IDYwKSB7XG4gICAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSAgSlNPTi5wYXJzZShlcnIuZXJyb3IpLmVycm9yO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSAgZXJyLmVycm9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gIGVyci5lcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gIEpTT04ucGFyc2UoZXJyLmVycm9yKS5lcnJvcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgXG4gICAgICAgIH1cbiAgICAgICBcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChlcnIuZXJyb3IubWVzc2FnZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gYCR7ZXJyLmVycm9yLm1lc3NhZ2V9YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBgJHtlcnIuZXJyb3J9YDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIF90aHJvdyhlcnJvck1lc3NhZ2UpO1xuICB9XG5cblxuICBnZXRTZXJ2ZXJFcnJvck1lc3NhZ2UoaXNFcnJvckV4aXN0KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlOiBcIlRoZXJlIGlzIGEgcHJvYmxlbSB3aXRoIHRoZSBzZXJ2aWNlXCIsXG4gICAgICBib2R5OiBcIlRyeSBhZ2FpbiBsYXRlclwiLFxuICAgICAgc2hvd0Vycm9yOiBpc0Vycm9yRXhpc3RcbiAgICB9O1xuICB9XG59XG4iXX0=