brainloper-ui 15.0.0 → 16.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/{esm2020 → esm2022}/src/app/modules/brainloper-ui/brainloper-ui.module.mjs +151 -151
  2. package/esm2022/src/app/modules/brainloper-ui/components/bread-crumb/bread-crumb.component.mjs +30 -0
  3. package/esm2022/src/app/modules/brainloper-ui/components/buttons/button-icon/button-icon.component.mjs +23 -0
  4. package/esm2022/src/app/modules/brainloper-ui/components/buttons/button-label/button-label.component.mjs +83 -0
  5. package/esm2022/src/app/modules/brainloper-ui/components/carousel/carousel.component.mjs +42 -0
  6. package/esm2022/src/app/modules/brainloper-ui/components/combos/combos.component.mjs +183 -0
  7. package/esm2022/src/app/modules/brainloper-ui/components/data-table/data-table.component.mjs +746 -0
  8. package/esm2022/src/app/modules/brainloper-ui/components/data-table/table-modal/table-modal.component.mjs +122 -0
  9. package/esm2022/src/app/modules/brainloper-ui/components/file-input/file-input.component.mjs +205 -0
  10. package/esm2022/src/app/modules/brainloper-ui/components/filters/filters.component.mjs +227 -0
  11. package/esm2022/src/app/modules/brainloper-ui/components/report/template-fuel/template-fuel.component.mjs +89 -0
  12. package/esm2022/src/app/modules/brainloper-ui/components/report/template-ot/template-ot.component.mjs +86 -0
  13. package/esm2022/src/app/modules/brainloper-ui/components/select-filter/select-filter.component.mjs +117 -0
  14. package/esm2022/src/app/modules/directives/carousel-item.directive.mjs +20 -0
  15. package/esm2022/src/app/modules/interfaces/menu-break-crumb/menu-break-crumb.mjs +6 -0
  16. package/esm2022/src/app/modules/services/crypto.service.mjs +38 -0
  17. package/esm2022/src/app/modules/services/export-data.service.mjs +169 -0
  18. package/{esm2020 → esm2022}/src/app/modules/services/file-forms.service.mjs +4 -4
  19. package/{esm2020 → esm2022}/src/app/modules/services/fuel-order-pdf.service.mjs +4 -4
  20. package/{esm2020 → esm2022}/src/app/modules/services/functions.service.mjs +4 -4
  21. package/esm2022/src/app/modules/services/generate-pdf.service.mjs +93 -0
  22. package/esm2022/src/app/modules/services/http.service.mjs +142 -0
  23. package/esm2022/src/app/modules/services/loading/loading.component.mjs +30 -0
  24. package/{esm2020 → esm2022}/src/app/modules/services/local-storage.service.mjs +6 -6
  25. package/esm2022/src/app/modules/services/message.service.mjs +202 -0
  26. package/esm2022/src/app/modules/services/purchase-order-pdf.service.mjs +179 -0
  27. package/esm2022/src/app/modules/services/session.service.mjs +43 -0
  28. package/{esm2020 → esm2022}/src/app/modules/services/work-order-pdf.service.mjs +4 -4
  29. package/{fesm2020 → fesm2022}/brainloper-ui.mjs +501 -409
  30. package/{fesm2015 → fesm2022}/brainloper-ui.mjs.map +1 -1
  31. package/package.json +17 -23
  32. package/src/app/modules/brainloper-ui/components/bread-crumb/bread-crumb.component.d.ts +1 -1
  33. package/src/app/modules/brainloper-ui/components/buttons/button-icon/button-icon.component.d.ts +1 -1
  34. package/src/app/modules/brainloper-ui/components/buttons/button-label/button-label.component.d.ts +1 -1
  35. package/src/app/modules/brainloper-ui/components/carousel/carousel.component.d.ts +1 -1
  36. package/src/app/modules/brainloper-ui/components/combos/combos.component.d.ts +1 -1
  37. package/src/app/modules/brainloper-ui/components/data-table/data-table.component.d.ts +1 -1
  38. package/src/app/modules/brainloper-ui/components/file-input/file-input.component.d.ts +2 -1
  39. package/src/app/modules/brainloper-ui/components/filters/filters.component.d.ts +1 -1
  40. package/src/app/modules/brainloper-ui/components/select-filter/select-filter.component.d.ts +1 -1
  41. package/src/app/modules/directives/carousel-item.directive.d.ts +1 -1
  42. package/esm2020/src/app/modules/brainloper-ui/components/bread-crumb/bread-crumb.component.mjs +0 -29
  43. package/esm2020/src/app/modules/brainloper-ui/components/buttons/button-icon/button-icon.component.mjs +0 -23
  44. package/esm2020/src/app/modules/brainloper-ui/components/buttons/button-label/button-label.component.mjs +0 -83
  45. package/esm2020/src/app/modules/brainloper-ui/components/carousel/carousel.component.mjs +0 -40
  46. package/esm2020/src/app/modules/brainloper-ui/components/combos/combos.component.mjs +0 -176
  47. package/esm2020/src/app/modules/brainloper-ui/components/data-table/data-table.component.mjs +0 -728
  48. package/esm2020/src/app/modules/brainloper-ui/components/data-table/table-modal/table-modal.component.mjs +0 -118
  49. package/esm2020/src/app/modules/brainloper-ui/components/file-input/file-input.component.mjs +0 -184
  50. package/esm2020/src/app/modules/brainloper-ui/components/filters/filters.component.mjs +0 -222
  51. package/esm2020/src/app/modules/brainloper-ui/components/report/template-fuel/template-fuel.component.mjs +0 -84
  52. package/esm2020/src/app/modules/brainloper-ui/components/report/template-ot/template-ot.component.mjs +0 -81
  53. package/esm2020/src/app/modules/brainloper-ui/components/select-filter/select-filter.component.mjs +0 -108
  54. package/esm2020/src/app/modules/directives/carousel-item.directive.mjs +0 -18
  55. package/esm2020/src/app/modules/interfaces/menu-break-crumb/menu-break-crumb.mjs +0 -8
  56. package/esm2020/src/app/modules/services/crypto.service.mjs +0 -37
  57. package/esm2020/src/app/modules/services/export-data.service.mjs +0 -166
  58. package/esm2020/src/app/modules/services/generate-pdf.service.mjs +0 -89
  59. package/esm2020/src/app/modules/services/http.service.mjs +0 -140
  60. package/esm2020/src/app/modules/services/loading/loading.component.mjs +0 -28
  61. package/esm2020/src/app/modules/services/message.service.mjs +0 -200
  62. package/esm2020/src/app/modules/services/purchase-order-pdf.service.mjs +0 -178
  63. package/esm2020/src/app/modules/services/session.service.mjs +0 -42
  64. package/fesm2015/brainloper-ui.mjs +0 -3912
  65. package/fesm2020/brainloper-ui.mjs.map +0 -1
  66. /package/{esm2020 → esm2022}/brainloper-ui.mjs +0 -0
  67. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
  68. /package/{esm2020 → esm2022}/src/app/modules/brainloper-ui/components/file-input/imagenes/doc.mjs +0 -0
  69. /package/{esm2020 → esm2022}/src/app/modules/brainloper-ui/components/file-input/imagenes/fondoTransparente.mjs +0 -0
  70. /package/{esm2020 → esm2022}/src/app/modules/brainloper-ui/components/file-input/imagenes/pdf.mjs +0 -0
  71. /package/{esm2020 → esm2022}/src/app/modules/interfaces/buttons/button-icon.mjs +0 -0
  72. /package/{esm2020 → esm2022}/src/app/modules/interfaces/buttons/button-lavel-edit.mjs +0 -0
  73. /package/{esm2020 → esm2022}/src/app/modules/interfaces/combos/combos-configuration.mjs +0 -0
  74. /package/{esm2020 → esm2022}/src/app/modules/interfaces/data-table/params.mjs +0 -0
  75. /package/{esm2020 → esm2022}/src/app/modules/interfaces/data-table/rules.mjs +0 -0
  76. /package/{esm2020 → esm2022}/src/app/modules/interfaces/data-table/table-columns.mjs +0 -0
  77. /package/{esm2020 → esm2022}/src/app/modules/interfaces/data-table/table-configuration.mjs +0 -0
  78. /package/{esm2020 → esm2022}/src/app/modules/interfaces/enum/enumActions.mjs +0 -0
  79. /package/{esm2020 → esm2022}/src/app/modules/interfaces/enum/enumRules.mjs +0 -0
  80. /package/{esm2020 → esm2022}/src/app/modules/interfaces/enum/httpResponseType.mjs +0 -0
  81. /package/{esm2020 → esm2022}/src/app/modules/interfaces/file-forms-service/file-forms-params.mjs +0 -0
  82. /package/{esm2020 → esm2022}/src/app/modules/interfaces/file-forms-service/file-input-params.mjs +0 -0
  83. /package/{esm2020 → esm2022}/src/app/modules/interfaces/filters/header-filters.mjs +0 -0
  84. /package/{esm2020 → esm2022}/src/app/modules/interfaces/report/template-pdf-base.mjs +0 -0
  85. /package/{esm2020 → esm2022}/src/app/modules/interfaces/report/template-pdf-ot.mjs +0 -0
  86. /package/{esm2020 → esm2022}/src/app/modules/interfaces/report/template-pdf-purchase-order.mjs +0 -0
  87. /package/{esm2020 → esm2022}/src/app/modules/interfaces/report/template-pfd-fo.mjs +0 -0
  88. /package/{esm2020 → esm2022}/src/app/modules/services/screen-size-util.mjs +0 -0
@@ -334,13 +334,13 @@ export class FuelOrderPdfService {
334
334
  // Resetear color
335
335
  doc.setTextColor(0, 0, 0);
336
336
  }
337
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FuelOrderPdfService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
338
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FuelOrderPdfService, providedIn: 'root' });
337
339
  }
338
- FuelOrderPdfService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FuelOrderPdfService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
339
- FuelOrderPdfService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FuelOrderPdfService, providedIn: 'root' });
340
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FuelOrderPdfService, decorators: [{
340
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FuelOrderPdfService, decorators: [{
341
341
  type: Injectable,
342
342
  args: [{
343
343
  providedIn: 'root'
344
344
  }]
345
345
  }], ctorParameters: function () { return []; } });
346
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVlbC1vcmRlci1wZGYuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zZXJ2aWNlcy9mdWVsLW9yZGVyLXBkZi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM5QixPQUFPLGlCQUFpQixDQUFDOztBQUd6QixtQ0FBbUM7QUFDbkMsa0JBQWtCO0FBQ2xCLGlCQUFpQjtBQUNqQixxQkFBcUI7QUFDckIsdUJBQXVCO0FBQ3ZCLGtCQUFrQjtBQUNsQixvQkFBb0I7QUFDcEIsa0JBQWtCO0FBQ2xCLGtCQUFrQjtBQUNsQix5QkFBeUI7QUFDekIsc0JBQXNCO0FBQ3RCLHlCQUF5QjtBQUN6QixxQkFBcUI7QUFDckIseUJBQXlCO0FBQ3pCLHlCQUF5QjtBQUN6Qix1QkFBdUI7QUFDdkIsMEJBQTBCO0FBQzFCLGtCQUFrQjtBQUNsQixzQkFBc0I7QUFDdEIsK0JBQStCO0FBQy9CLElBQUk7QUFLSixNQUFNLE9BQU8sbUJBQW1CO0lBRTlCLGdCQUFnQixDQUFDO0lBRWpCLCtCQUErQixDQUFDLElBQW1CLEVBQUUsT0FJcEQ7UUFDQyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUk7Z0JBQ0YsTUFBTSxJQUFJLEdBQUc7b0JBQ1gsTUFBTSxFQUFFLFFBQVE7b0JBQ2hCLFFBQVEsRUFBRSxJQUFJO29CQUNkLFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLEdBQUcsT0FBTztpQkFDWCxDQUFDO2dCQUVGLE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM5QyxNQUFNLFNBQVMs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U0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUUzRCxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BCLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9DLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBRTFELGlCQUFpQjtRQUNqQixHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUIsQ0FBQzs7aUhBcFhVLG1CQUFtQjtxSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGpzUERGIH0gZnJvbSAnanNwZGYnO1xuaW1wb3J0ICdqc3BkZi1hdXRvdGFibGUnO1xuaW1wb3J0IHsgVGVtcGxhdGVQZGZGbyB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0L3RlbXBsYXRlLXBmZC1mbyc7XG5cbi8vIGV4cG9ydCBpbnRlcmZhY2UgVGVtcGxhdGVQZGZGbyB7XG4vLyAgIG5hbWU6IHN0cmluZztcbi8vICAgbml0OiBzdHJpbmc7XG4vLyAgIGFkZHJlc3M6IHN0cmluZztcbi8vICAgdGVsZXBob25lOiBzdHJpbmc7XG4vLyAgIG1haWw6IHN0cmluZztcbi8vICAgaW1hZ2U/OiBzdHJpbmc7XG4vLyAgIGNvZGU6IHN0cmluZztcbi8vICAgZGF0ZTogc3RyaW5nO1xuLy8gICByZXNwb25zaWJsZTogc3RyaW5nO1xuLy8gICBpZF9wbGFjZTogc3RyaW5nO1xuLy8gICBhcHByb3ZlZF9ieTogc3RyaW5nO1xuLy8gICBkZXRhbGxlOiBzdHJpbmc7XG4vLyAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4vLyAgIGNvbnNlY3V0aXZlOiBzdHJpbmc7XG4vLyAgIG5hbWVQbGFjZTogc3RyaW5nO1xuLy8gICBhZGRyZXNzUGxhY2U6IHN0cmluZztcbi8vICAgYXJlYTogc3RyaW5nO1xuLy8gICBvZG9tZXRlcjogc3RyaW5nO1xuLy8gICBpbnZvaWNlUmVmZXJlbmNlPzogc3RyaW5nO1xuLy8gfVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGdWVsT3JkZXJQZGZTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIGdlbmVyYXRlRnVlbE9yZGVyUHJvZmVzaW9uYWxQREYoZGF0YTogVGVtcGxhdGVQZGZGbywgb3B0aW9ucz86IHtcbiAgICBmb3JtYXQ/OiAnbGV0dGVyJyB8ICdhNCc7XG4gICAgZG93bmxvYWQ/OiBib29sZWFuO1xuICAgIGZpbGVuYW1lPzogc3RyaW5nO1xuICB9KTogUHJvbWlzZTxqc1BERj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBvcHRzID0ge1xuICAgICAgICAgIGZvcm1hdDogJ2xldHRlcicsXG4gICAgICAgICAgZG93bmxvYWQ6IHRydWUsXG4gICAgICAgICAgZmlsZW5hbWU6ICdvcmRlbl9jb21idXN0aWJsZS5wZGYnLFxuICAgICAgICAgIC4uLm9wdGlvbnNcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBkb2MgPSBuZXcganNQREYoJ3AnLCAncHQnLCBvcHRzLmZvcm1hdCk7XG4gICAgICAgIGNvbnN0IHBhZ2VXaWR0aCA9IGRvYy5pbnRlcm5hbC5wYWdlU2l6ZS5nZXRXaWR0aCgpO1xuICAgICAgICBjb25zdCBwYWdlSGVpZ2h0ID0gZG9jLmludGVybmFsLnBhZ2VTaXplLmdldEhlaWdodCgpO1xuICAgICAgICBjb25zdCBtYXJnaW4gPSA0MDtcbiAgICAgICAgbGV0IGN1cnJlbnRZID0gbWFyZ2luO1xuXG4gICAgICAgIC8vIENvbG9yZXMgY29ycG9yYXRpdm9zXG4gICAgICAgIGNvbnN0IHByaW1hcnlDb2xvciA9IFs0MSwgMTI4LCAxODVdOyAvLyBBenVsXG4gICAgICAgIGNvbnN0IHNlY29uZGFyeUNvbG9yID0gWzUyLCA3MywgOTRdOyAvLyBHcmlzIG9zY3Vyb1xuICAgICAgICBjb25zdCBhY2NlbnRDb2xvciA9IFsyMzAsIDEyNiwgMzRdOyAvLyBOYXJhbmphXG5cbiAgICAgICAgLy8gPT09IEVOQ0FCRVpBRE8gUFJJTkNJUEFMID09PVxuICAgICAgICB0aGlzLmFkZEhlYWRlcihkb2MsIGRhdGEsIG1hcmdpbiwgY3VycmVudFksIHBhZ2VXaWR0aCwgcHJpbWFyeUNvbG9yKTtcbiAgICAgICAgY3VycmVudFkgPSAxNDA7XG5cbiAgICAgICAgLy8gPT09IFTDjVRVTE8gREVMIERPQ1VNRU5UTyA9PT1cbiAgICAgICAgY3VycmVudFkgPSB0aGlzLmFkZERvY3VtZW50VGl0bGUoZG9jLCBkYXRhLCBjdXJyZW50WSwgcGFnZVdpZHRoLCBhY2NlbnRDb2xvcik7XG4gICAgICAgIGN1cnJlbnRZICs9IDI1O1xuXG4gICAgICAgIC8vID09PSBJTkZPUk1BQ0nDk04gUFJJTkNJUEFMID09PVxuICAgICAgICBjdXJyZW50WSA9IHRoaXMuYWRkTWFpbkluZm8oZG9jLCBkYXRhLCBjdXJyZW50WSwgbWFyZ2luLCBwYWdlV2lkdGgpO1xuICAgICAgICBjdXJyZW50WSArPSAyMDtcblxuICAgICAgICAvLyA9PT0gREFUT1MgREVMIFBST1ZFRURPUiA9PT1cbiAgICAgICAgY3VycmVudFkgPSB0aGlzLmFkZFByb3ZpZGVySW5mbyhkb2MsIGRhdGEsIGN1cnJlbnRZLCBtYXJnaW4sIHBhZ2VXaWR0aCwgc2Vjb25kYXJ5Q29sb3IpO1xuICAgICAgICBjdXJyZW50WSArPSAyMDtcblxuICAgICAgICAvLyA9PT0gREVUQUxMRVMgREVMIFNFUlZJQ0lPID09PVxuICAgICAgICBjdXJyZW50WSA9IHRoaXMuYWRkU2VydmljZURldGFpbHMoZG9jLCBkYXRhLCBjdXJyZW50WSwgbWFyZ2luLCBwYWdlV2lkdGgsIHNlY29uZGFyeUNvbG9yKTtcbiAgICAgICAgY3VycmVudFkgKz0gMjA7XG5cbiAgICAgICAgLy8gPT09IEFVVE9SSVpBQ0nDk04gPT09XG4gICAgICAgIGN1cnJlbnRZID0gdGhpcy5hZGRBdXRob3JpemF0aW9uKGRvYywgZGF0YSwgY3VycmVudFksIG1hcmdpbiwgcGFnZVdpZHRoKTtcbiAgICAgICAgY3VycmVudFkgKz0gMzA7XG5cbiAgICAgICAgLy8gPT09IFBJRSBERSBQw4FHSU5BID09PVxuICAgICAgICB0aGlzLmFkZEZvb3Rlcihkb2MsIGRhdGEsIHBhZ2VIZWlnaHQgLSA4MCwgcGFnZVdpZHRoLCBwcmltYXJ5Q29sb3IpO1xuXG4gICAgICAgIC8vID09PSBHRU5FUkFSL0RFU0NBUkdBUiA9PT1cbiAgICAgICAgaWYgKG9wdHMuZG93bmxvYWQpIHtcbiAgICAgICAgICBkb2Mub3V0cHV0KCdkYXRhdXJsbmV3d2luZG93JywgeyBmaWxlbmFtZTogb3B0cy5maWxlbmFtZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlc29sdmUoZG9jKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhIFBERiBvcHRpbWl6YWRvIHBhcmEgaW1wcmVzacOzblxuICAgKi9cbiAgZ2VuZXJhdGVGb3JQcmludChkYXRhOiBUZW1wbGF0ZVBkZkZvKTogUHJvbWlzZTxqc1BERj4ge1xuICAgIHJldHVybiB0aGlzLmdlbmVyYXRlRnVlbE9yZGVyUHJvZmVzaW9uYWxQREYoZGF0YSwge1xuICAgICAgZm9ybWF0OiAnbGV0dGVyJyxcbiAgICAgIGRvd25sb2FkOiBmYWxzZVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRIZWFkZXIoZG9jOiBqc1BERiwgZGF0YTogVGVtcGxhdGVQZGZGbywgbWFyZ2luOiBudW1iZXIsIHk6IG51bWJlciwgcGFnZVdpZHRoOiBudW1iZXIsIGNvbG9yOiBudW1iZXJbXSk6IHZvaWQge1xuICAgIC8vIEZvbmRvIGRlbCBlbmNhYmV6YWRvXG4gICAgZG9jLnNldEZpbGxDb2xvcihjb2xvclswXSwgY29sb3JbMV0sIGNvbG9yWzJdKTtcbiAgICBkb2MucmVjdChtYXJnaW4sIHksIHBhZ2VXaWR0aCAtIChtYXJnaW4gKiAyKSwgODAsICdGJyk7XG5cbiAgICAvLyBUZXh0byBkZWwgZW5jYWJlemFkbyBlbiBibGFuY29cbiAgICBkb2Muc2V0VGV4dENvbG9yKDI1NSwgMjU1LCAyNTUpO1xuICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnYm9sZCcpO1xuICAgIGRvYy5zZXRGb250U2l6ZSgxOCk7XG5cbiAgICBjb25zdCBjb21wYW55TmFtZSA9IGRhdGEubmFtZS50b1VwcGVyQ2FzZSgpO1xuICAgIGNvbnN0IG5hbWVXaWR0aCA9IGRvYy5nZXRUZXh0V2lkdGgoY29tcGFueU5hbWUpO1xuICAgIGRvYy50ZXh0KGNvbXBhbnlOYW1lLCAocGFnZVdpZHRoIC0gbmFtZVdpZHRoKSAvIDIsIHkgKyAyNSk7XG5cbiAgICBkb2Muc2V0Rm9udFNpemUoMTIpO1xuICAgIGNvbnN0IG5pdFRleHQgPSBgTklUOiAke2RhdGEubml0fWA7XG4gICAgY29uc3Qgbml0V2lkdGggPSBkb2MuZ2V0VGV4dFdpZHRoKG5pdFRleHQpO1xuICAgIGRvYy50ZXh0KG5pdFRleHQsIChwYWdlV2lkdGggLSBuaXRXaWR0aCkgLyAyLCB5ICsgNDUpO1xuXG4gICAgZG9jLnNldEZvbnRTaXplKDEwKTtcbiAgICBjb25zdCBhZGRyZXNzVGV4dCA9IGAke2RhdGEuYWRkcmVzc30gLSBURUw6ICR7ZGF0YS50ZWxlcGhvbmV9YDtcbiAgICBjb25zdCBhZGRyZXNzV2lkdGggPSBkb2MuZ2V0VGV4dFdpZHRoKGFkZHJlc3NUZXh0KTtcbiAgICBkb2MudGV4dChhZGRyZXNzVGV4dCwgKHBhZ2VXaWR0aCAtIGFkZHJlc3NXaWR0aCkgLyAyLCB5ICsgNjUpO1xuXG4gICAgLy8gUmVzZXRlYXIgY29sb3IgZGUgdGV4dG9cbiAgICBkb2Muc2V0VGV4dENvbG9yKDAsIDAsIDApO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGREb2N1bWVudFRpdGxlKGRvYzoganNQREYsIGRhdGE6IFRlbXBsYXRlUGRmRm8sIHk6IG51bWJlciwgcGFnZVdpZHRoOiBudW1iZXIsIGNvbG9yOiBudW1iZXJbXSk6IG51bWJlciB7XG4gICAgZG9jLnNldFRleHRDb2xvcihjb2xvclswXSwgY29sb3JbMV0sIGNvbG9yWzJdKTtcbiAgICBkb2Muc2V0Rm9udCgnaGVsdmV0aWNhJywgJ2JvbGQnKTtcbiAgICBkb2Muc2V0Rm9udFNpemUoMjApO1xuXG4gICAgY29uc3QgdGl0bGUgPSAnT1JERU4gREUgQ09NQlVTVElCTEUnO1xuICAgIGNvbnN0IHRpdGxlV2lkdGggPSBkb2MuZ2V0VGV4dFdpZHRoKHRpdGxlKTtcbiAgICBkb2MudGV4dCh0aXRsZSwgKHBhZ2VXaWR0aCAtIHRpdGxlV2lkdGgpIC8gMiwgeSk7XG5cbiAgICBkb2Muc2V0Rm9udFNpemUoMTYpO1xuICAgIGNvbnN0IG51bWJlclRleHQgPSBgTsKwICR7ZGF0YS5jb25zZWN1dGl2ZX1gO1xuICAgIGNvbnN0IG51bWJlcldpZHRoID0gZG9jLmdldFRleHRXaWR0aChudW1iZXJUZXh0KTtcbiAgICBkb2MudGV4dChudW1iZXJUZXh0LCAocGFnZVdpZHRoIC0gbnVtYmVyV2lkdGgpIC8gMiwgeSArIDI1KTtcblxuICAgIGRvYy5zZXRUZXh0Q29sb3IoMCwgMCwgMCk7XG4gICAgcmV0dXJuIHkgKyA0MDtcbiAgfVxuXG4gIHByaXZhdGUgYWRkTWFpbkluZm8oZG9jOiBqc1BERiwgZGF0YTogVGVtcGxhdGVQZGZGbywgeTogbnVtYmVyLCBtYXJnaW46IG51bWJlciwgcGFnZVdpZHRoOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IHRhYmxlRGF0YSA9IFtcbiAgICAgIFtcbiAgICAgICAgeyBjb250ZW50OiAnw4FyZWE6Jywgc3R5bGVzOiB7IGZvbnRTdHlsZTogJ2JvbGQnLCBmaWxsQ29sb3I6IFsyNDAsIDI0MCwgMjQwXSB9IH0sXG4gICAgICAgIHsgY29udGVudDogZGF0YS5hcmVhLCBzdHlsZXM6IHt9IH0sXG4gICAgICAgIHsgY29udGVudDogJ0PDs2RpZ286Jywgc3R5bGVzOiB7IGZvbnRTdHlsZTogJ2JvbGQnLCBmaWxsQ29sb3I6IFsyNDAsIDI0MCwgMjQwXSB9IH0sXG4gICAgICAgIHsgY29udGVudDogZGF0YS5jb2RlLCBzdHlsZXM6IHt9IH0sXG4gICAgICAgIHsgY29udGVudDogJ0ZlY2hhOicsIHN0eWxlczogeyBmb250U3R5bGU6ICdib2xkJywgZmlsbENvbG9yOiBbMjQwLCAyNDAsIDI0MF0gfSB9LFxuICAgICAgICB7IGNvbnRlbnQ6IGRhdGEuZGF0ZSwgc3R5bGVzOiB7fSB9XG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICB7IGNvbnRlbnQ6ICdPcGVyYXJpbzonLCBzdHlsZXM6IHsgZm9udFN0eWxlOiAnYm9sZCcsIGZpbGxDb2xvcjogWzI0MCwgMjQwLCAyNDBdIH0gfSxcbiAgICAgICAgeyBjb250ZW50OiBkYXRhLnJlc3BvbnNpYmxlLCBzdHlsZXM6IHsgY29sU3BhbjogMyB9IH0sXG4gICAgICAgIHsgY29udGVudDogJ09kw7NtZXRybzonLCBzdHlsZXM6IHsgZm9udFN0eWxlOiAnYm9sZCcsIGZpbGxDb2xvcjogWzI0MCwgMjQwLCAyNDBdIH0gfSxcbiAgICAgICAgeyBjb250ZW50OiBkYXRhLm9kb21ldGVyLCBzdHlsZXM6IHt9IH1cbiAgICAgIF1cbiAgICBdO1xuXG4gICAgKGRvYyBhcyBhbnkpLmF1dG9UYWJsZSh7XG4gICAgICBzdGFydFk6IHksXG4gICAgICBib2R5OiB0YWJsZURhdGEsXG4gICAgICB0aGVtZTogJ2dyaWQnLFxuICAgICAgc3R5bGVzOiB7XG4gICAgICAgIGZvbnRTaXplOiAxMSxcbiAgICAgICAgY2VsbFBhZGRpbmc6IDgsXG4gICAgICAgIGxpbmVDb2xvcjogWzIwMCwgMjAwLCAyMDBdLFxuICAgICAgICBsaW5lV2lkdGg6IDAuNVxuICAgICAgfSxcbiAgICAgIGNvbHVtblN0eWxlczoge1xuICAgICAgICAwOiB7IGNlbGxXaWR0aDogNzAgfSxcbiAgICAgICAgMTogeyBjZWxsV2lkdGg6IDEwMCB9LFxuICAgICAgICAyOiB7IGNlbGxXaWR0aDogNzAgfSxcbiAgICAgICAgMzogeyBjZWxsV2lkdGg6IDgwIH0sXG4gICAgICAgIDQ6IHsgY2VsbFdpZHRoOiA3MCB9LFxuICAgICAgICA1OiB7IGNlbGxXaWR0aDogODAgfVxuICAgICAgfSxcbiAgICAgIG1hcmdpbjogeyBsZWZ0OiBtYXJnaW4sIHJpZ2h0OiBtYXJnaW4gfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIChkb2MgYXMgYW55KS5sYXN0QXV0b1RhYmxlLmZpbmFsWTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkUHJvdmlkZXJJbmZvKGRvYzoganNQREYsIGRhdGE6IFRlbXBsYXRlUGRmRm8sIHk6IG51bWJlciwgbWFyZ2luOiBudW1iZXIsIHBhZ2VXaWR0aDogbnVtYmVyLCBjb2xvcjogbnVtYmVyW10pOiBudW1iZXIge1xuICAgIC8vIFTDrXR1bG8gZGUgc2VjY2nDs25cbiAgICBkb2Muc2V0VGV4dENvbG9yKGNvbG9yWzBdLCBjb2xvclsxXSwgY29sb3JbMl0pO1xuICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnYm9sZCcpO1xuICAgIGRvYy5zZXRGb250U2l6ZSgxNCk7XG4gICAgY29uc3QgdGl0bGUgPSAnREFUT1MgREVMIFBST1ZFRURPUic7XG4gICAgY29uc3QgdGl0bGVXaWR0aCA9IGRvYy5nZXRUZXh0V2lkdGgodGl0bGUpO1xuICAgIGRvYy50ZXh0KHRpdGxlLCAocGFnZVdpZHRoIC0gdGl0bGVXaWR0aCkgLyAyLCB5KTtcbiAgICBkb2Muc2V0VGV4dENvbG9yKDAsIDAsIDApO1xuXG4gICAgY29uc3QgdGFibGVEYXRhID0gW1xuICAgICAgW1xuICAgICAgICB7IGNvbnRlbnQ6ICdMdWdhcjonLCBzdHlsZXM6IHsgZm9udFN0eWxlOiAnYm9sZCcsIGZpbGxDb2xvcjogWzI0MCwgMjQwLCAyNDBdIH0gfSxcbiAgICAgICAgeyBjb250ZW50OiBkYXRhLm5hbWVQbGFjZSwgc3R5bGVzOiB7fSB9LFxuICAgICAgICB7IGNvbnRlbnQ6ICdEaXJlY2Npw7NuOicsIHN0eWxlczogeyBmb250U3R5bGU6ICdib2xkJywgZmlsbENvbG9yOiBbMjQwLCAyNDAsIDI0MF0gfSB9LFxuICAgICAgICB7IGNvbnRlbnQ6IGRhdGEuYWRkcmVzc1BsYWNlLCBzdHlsZXM6IHt9IH1cbiAgICAgIF1cbiAgICBdO1xuXG4gICAgKGRvYyBhcyBhbnkpLmF1dG9UYWJsZSh7XG4gICAgICBzdGFydFk6IHkgKyAyMCxcbiAgICAgIGJvZHk6IHRhYmxlRGF0YSxcbiAgICAgIHRoZW1lOiAnZ3JpZCcsXG4gICAgICBzdHlsZXM6IHtcbiAgICAgICAgZm9udFNpemU6IDExLFxuICAgICAgICBjZWxsUGFkZGluZzogOCxcbiAgICAgICAgbGluZUNvbG9yOiBbMjAwLCAyMDAsIDIwMF0sXG4gICAgICAgIGxpbmVXaWR0aDogMC41XG4gICAgICB9LFxuICAgICAgY29sdW1uU3R5bGVzOiB7XG4gICAgICAgIDA6IHsgY2VsbFdpZHRoOiA4MCB9LFxuICAgICAgICAxOiB7IGNlbGxXaWR0aDogMTYwIH0sXG4gICAgICAgIDI6IHsgY2VsbFdpZHRoOiA4MCB9LFxuICAgICAgICAzOiB7IGNlbGxXaWR0aDogMTUwIH1cbiAgICAgIH0sXG4gICAgICBtYXJnaW46IHsgbGVmdDogbWFyZ2luLCByaWdodDogbWFyZ2luIH1cbiAgICB9KTtcblxuICAgIHJldHVybiAoZG9jIGFzIGFueSkubGFzdEF1dG9UYWJsZS5maW5hbFk7XG4gIH1cblxuICBwcml2YXRlIGFkZFNlcnZpY2VEZXRhaWxzKGRvYzoganNQREYsIGRhdGE6IFRlbXBsYXRlUGRmRm8sIHk6IG51bWJlciwgbWFyZ2luOiBudW1iZXIsIHBhZ2VXaWR0aDogbnVtYmVyLCBjb2xvcjogbnVtYmVyW10pOiBudW1iZXIge1xuICAgIC8vIFTDrXR1bG8gZGUgc2VjY2nDs25cbiAgICBkb2Muc2V0VGV4dENvbG9yKGNvbG9yWzBdLCBjb2xvclsxXSwgY29sb3JbMl0pO1xuICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnYm9sZCcpO1xuICAgIGRvYy5zZXRGb250U2l6ZSgxNCk7XG4gICAgY29uc3QgdGl0bGUgPSAnREVUQUxMRVMgREVMIFNFUlZJQ0lPJztcbiAgICBjb25zdCB0aXRsZVdpZHRoID0gZG9jLmdldFRleHRXaWR0aCh0aXRsZSk7XG4gICAgZG9jLnRleHQodGl0bGUsIChwYWdlV2lkdGggLSB0aXRsZVdpZHRoKSAvIDIsIHkpO1xuICAgIGRvYy5zZXRUZXh0Q29sb3IoMCwgMCwgMCk7XG5cbiAgICAvLyBQcmVwYXJhciB0ZXh0byBwYXJhIGNhbGN1bGFyIGFsdHVyYSBuZWNlc2FyaWFcbiAgICBjb25zdCBib3hZID0geSArIDIwO1xuICAgIGNvbnN0IGJveFdpZHRoID0gcGFnZVdpZHRoIC0gKG1hcmdpbiAqIDIpO1xuICAgIGNvbnN0IHRleHRNYXJnaW4gPSBtYXJnaW4gKyAxNTtcbiAgICBjb25zdCBtYXhXaWR0aCA9IGJveFdpZHRoIC0gMzA7XG4gICAgY29uc3QgbGluZUhlaWdodCA9IDE1O1xuICAgIGNvbnN0IG1pbkJveEhlaWdodCA9IDYwOyAvLyBBbHR1cmEgbcOtbmltYSBkZWwgY29udGVuZWRvclxuICAgIGNvbnN0IHBhZGRpbmcgPSA0MDsgLy8gUGFkZGluZyBzdXBlcmlvciBlIGluZmVyaW9yXG5cbiAgICAvLyBDYWxjdWxhciBsw61uZWFzIGRlIHRleHRvIG5lY2VzYXJpYXNcbiAgICBkb2Muc2V0Rm9udCgnaGVsdmV0aWNhJywgJ25vcm1hbCcpO1xuICAgIGRvYy5zZXRGb250U2l6ZSgxMSk7XG5cbiAgICBsZXQgdG90YWxMaW5lcyA9IDA7XG5cbiAgICAvLyBDb250YXIgbMOtbmVhcyBkZWwgZGV0YWxsZVxuICAgIGlmIChkYXRhLmRldGFsbGUgJiYgZGF0YS5kZXRhbGxlLnRyaW0oKSkge1xuICAgICAgY29uc3QgZGV0YWxsZUxpbmVzID0gZG9jLnNwbGl0VGV4dFRvU2l6ZShkYXRhLmRldGFsbGUudHJpbSgpLCBtYXhXaWR0aCk7XG4gICAgICB0b3RhbExpbmVzICs9IGRldGFsbGVMaW5lcy5sZW5ndGg7XG4gICAgfVxuXG4gICAgLy8gQ29udGFyIGzDrW5lYXMgZGUgbGEgZGVzY3JpcGNpw7NuIChpbmNsdXllIGV0aXF1ZXRhIFwiRGVzY3JpcGNpw7NuOlwiKVxuICAgIGlmIChkYXRhLmRlc2NyaXB0aW9uICYmIGRhdGEuZGVzY3JpcHRpb24udHJpbSgpKSB7XG4gICAgICB0b3RhbExpbmVzICs9IDI7IC8vIFVuYSBsw61uZWEgcGFyYSBcIkRlc2NyaXBjacOzbjpcIiArIGVzcGFjaW9cbiAgICAgIGNvbnN0IGRlc2NMaW5lcyA9IGRvYy5zcGxpdFRleHRUb1NpemUoZGF0YS5kZXNjcmlwdGlvbi50cmltKCksIG1heFdpZHRoKTtcbiAgICAgIHRvdGFsTGluZXMgKz0gZGVzY0xpbmVzLmxlbmd0aDtcbiAgICB9XG5cbiAgICAvLyBDYWxjdWxhciBhbHR1cmEgbmVjZXNhcmlhIGJhc2FkYSBlbiBlbCBjb250ZW5pZG9cbiAgICBjb25zdCBjb250ZW50SGVpZ2h0ID0gTWF0aC5tYXgodG90YWxMaW5lcyAqIGxpbmVIZWlnaHQsIDMwKTsgLy8gTcOtbmltbyAzMHB0IHBhcmEgY29udGVuaWRvXG4gICAgY29uc3QgYm94SGVpZ2h0ID0gTWF0aC5tYXgobWluQm94SGVpZ2h0LCBjb250ZW50SGVpZ2h0ICsgcGFkZGluZyk7XG5cbiAgICAvLyBWZXJpZmljYXIgc2kgbmVjZXNpdGFtb3MgdW5hIG51ZXZhIHDDoWdpbmFcbiAgICBjb25zdCBwYWdlSGVpZ2h0ID0gZG9jLmludGVybmFsLnBhZ2VTaXplLmdldEhlaWdodCgpO1xuICAgIGNvbnN0IHJlbWFpbmluZ1NwYWNlID0gcGFnZUhlaWdodCAtIGJveFkgLSAxMDA7IC8vIERlamFyIGVzcGFjaW8gcGFyYSBmb290ZXJcblxuICAgIGxldCBmaW5hbEJveFkgPSBib3hZO1xuICAgIGlmIChib3hIZWlnaHQgPiByZW1haW5pbmdTcGFjZSkge1xuICAgICAgLy8gQcOxYWRpciBudWV2YSBww6FnaW5hXG4gICAgICBkb2MuYWRkUGFnZSgpO1xuICAgICAgZmluYWxCb3hZID0gbWFyZ2luICsgNDA7IC8vIFBvc2ljacOzbiBlbiBudWV2YSBww6FnaW5hXG4gICAgfVxuXG4gICAgLy8gRGlidWphciBjb250ZW5lZG9yIGNvbiBhbHR1cmEgZGluw6FtaWNhXG4gICAgLy8gRm9uZG8gZ3JpcyBjbGFyb1xuICAgIGRvYy5zZXRGaWxsQ29sb3IoMjUwLCAyNTAsIDI1MCk7XG4gICAgZG9jLnJlY3QobWFyZ2luLCBmaW5hbEJveFksIGJveFdpZHRoLCBib3hIZWlnaHQsICdGJyk7XG5cbiAgICAvLyBCb3JkZVxuICAgIGRvYy5zZXREcmF3Q29sb3IoMjAwLCAyMDAsIDIwMCk7XG4gICAgZG9jLnJlY3QobWFyZ2luLCBmaW5hbEJveFksIGJveFdpZHRoLCBib3hIZWlnaHQsICdTJyk7XG5cbiAgICAvLyBBw7FhZGlyIGNvbnRlbmlkbyBkZSB0ZXh0b1xuICAgIGxldCB0ZXh0WSA9IGZpbmFsQm94WSArIDIwO1xuXG4gICAgLy8gQcOxYWRpciBkZXRhbGxlIHNpIGV4aXN0ZVxuICAgIGlmIChkYXRhLmRldGFsbGUgJiYgZGF0YS5kZXRhbGxlLnRyaW0oKSkge1xuICAgICAgY29uc3QgZGV0YWxsZUxpbmVzID0gZG9jLnNwbGl0VGV4dFRvU2l6ZShkYXRhLmRldGFsbGUudHJpbSgpLCBtYXhXaWR0aCk7XG4gICAgICBkb2MudGV4dChkZXRhbGxlTGluZXMsIHRleHRNYXJnaW4sIHRleHRZKTtcbiAgICAgIHRleHRZICs9IGRldGFsbGVMaW5lcy5sZW5ndGggKiBsaW5lSGVpZ2h0ICsgMTA7IC8vIEVzcGFjaW8gZXh0cmEgZGVzcHXDqXMgZGVsIGRldGFsbGVcbiAgICB9XG5cbiAgICAvLyBBw7FhZGlyIGRlc2NyaXBjacOzbiBzaSBleGlzdGVcbiAgICBpZiAoZGF0YS5kZXNjcmlwdGlvbiAmJiBkYXRhLmRlc2NyaXB0aW9uLnRyaW0oKSkge1xuICAgICAgZG9jLnNldEZvbnQoJ2hlbHZldGljYScsICdib2xkJyk7XG4gICAgICBkb2MudGV4dCgnRGVzY3JpcGNpw7NuOicsIHRleHRNYXJnaW4sIHRleHRZKTtcbiAgICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnbm9ybWFsJyk7XG4gICAgICB0ZXh0WSArPSBsaW5lSGVpZ2h0O1xuXG4gICAgICBjb25zdCBkZXNjTGluZXMgPSBkb2Muc3BsaXRUZXh0VG9TaXplKGRhdGEuZGVzY3JpcHRpb24udHJpbSgpLCBtYXhXaWR0aCk7XG5cbiAgICAgIC8vIFZlcmlmaWNhciBzaSBuZWNlc2l0YW1vcyBtYW5lamFyIGNvbnRlbmlkbyBtdXkgbGFyZ29cbiAgICAgIGNvbnN0IHJlbWFpbmluZ0hlaWdodCA9IGZpbmFsQm94WSArIGJveEhlaWdodCAtIHRleHRZIC0gMjA7XG4gICAgICBjb25zdCBtYXhMaW5lc0luU3BhY2UgPSBNYXRoLmZsb29yKHJlbWFpbmluZ0hlaWdodCAvIGxpbmVIZWlnaHQpO1xuXG4gICAgICBpZiAoZGVzY0xpbmVzLmxlbmd0aCA+IG1heExpbmVzSW5TcGFjZSAmJiBtYXhMaW5lc0luU3BhY2UgPiAwKSB7XG4gICAgICAgIC8vIE1vc3RyYXIgbMOtbmVhcyBxdWUgY2FiZW4gZW4gZWwgZXNwYWNpbyBhY3R1YWxcbiAgICAgICAgY29uc3QgY3VycmVudExpbmVzID0gZGVzY0xpbmVzLnNsaWNlKDAsIG1heExpbmVzSW5TcGFjZSk7XG4gICAgICAgIGRvYy50ZXh0KGN1cnJlbnRMaW5lcywgdGV4dE1hcmdpbiwgdGV4dFkpO1xuXG4gICAgICAgIC8vIENvbnRpbnVhciBlbiBudWV2YSBww6FnaW5hIHNpIGhheSBtw6FzIGNvbnRlbmlkb1xuICAgICAgICBpZiAoZGVzY0xpbmVzLmxlbmd0aCA+IG1heExpbmVzSW5TcGFjZSkge1xuICAgICAgICAgIGRvYy5hZGRQYWdlKCk7XG4gICAgICAgICAgdGV4dFkgPSBtYXJnaW4gKyAyMDtcbiAgICAgICAgICBjb25zdCByZW1haW5pbmdMaW5lcyA9IGRlc2NMaW5lcy5zbGljZShtYXhMaW5lc0luU3BhY2UpO1xuICAgICAgICAgIGRvYy50ZXh0KHJlbWFpbmluZ0xpbmVzLCB0ZXh0TWFyZ2luLCB0ZXh0WSk7XG4gICAgICAgICAgcmV0dXJuIHRleHRZICsgKHJlbWFpbmluZ0xpbmVzLmxlbmd0aCAqIGxpbmVIZWlnaHQpICsgMjA7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRvYy50ZXh0KGRlc2NMaW5lcywgdGV4dE1hcmdpbiwgdGV4dFkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNpIG5vIGhheSBjb250ZW5pZG8sIG1vc3RyYXIgdW4gbWVuc2FqZVxuICAgIGlmICgoIWRhdGEuZGV0YWxsZSB8fCAhZGF0YS5kZXRhbGxlLnRyaW0oKSkgJiYgKCFkYXRhLmRlc2NyaXB0aW9uIHx8ICFkYXRhLmRlc2NyaXB0aW9uLnRyaW0oKSkpIHtcbiAgICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnaXRhbGljJyk7XG4gICAgICBkb2Muc2V0Rm9udFNpemUoMTApO1xuICAgICAgZG9jLnNldFRleHRDb2xvcigxNTAsIDE1MCwgMTUwKTtcbiAgICAgIGRvYy50ZXh0KCdObyBzZSBoYW4gZXNwZWNpZmljYWRvIGRldGFsbGVzIGRlbCBzZXJ2aWNpby4nLCB0ZXh0TWFyZ2luLCB0ZXh0WSk7XG4gICAgICBkb2Muc2V0VGV4dENvbG9yKDAsIDAsIDApO1xuICAgICAgZG9jLnNldEZvbnQoJ2hlbHZldGljYScsICdub3JtYWwnKTtcbiAgICAgIGRvYy5zZXRGb250U2l6ZSgxMSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbmFsQm94WSArIGJveEhlaWdodDtcbiAgfVxuXG5cbiAgcHJpdmF0ZSBhZGRBdXRob3JpemF0aW9uKGRvYzoganNQREYsIGRhdGE6IFRlbXBsYXRlUGRmRm8sIHk6IG51bWJlciwgbWFyZ2luOiBudW1iZXIsIHBhZ2VXaWR0aDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCB0YWJsZURhdGEgPSBbXG4gICAgICBbXG4gICAgICAgIHsgY29udGVudDogJ0FVVE9SSVpBREEgUE9SOicsIHN0eWxlczogeyBmb250U3R5bGU6ICdib2xkJywgZm9udFNpemU6IDEyLCBmaWxsQ29sb3I6IFsyNDAsIDI0MCwgMjQwXSB9IH0sXG4gICAgICAgIHsgY29udGVudDogZGF0YS5hcHByb3ZlZF9ieSwgc3R5bGVzOiB7IGZvbnRTaXplOiAxMiB9IH1cbiAgICAgIF1cbiAgICBdO1xuXG4gICAgKGRvYyBhcyBhbnkpLmF1dG9UYWJsZSh7XG4gICAgICBzdGFydFk6IHksXG4gICAgICBib2R5OiB0YWJsZURhdGEsXG4gICAgICB0aGVtZTogJ2dyaWQnLFxuICAgICAgc3R5bGVzOiB7XG4gICAgICAgIGNlbGxQYWRkaW5nOiAxMixcbiAgICAgICAgbGluZUNvbG9yOiBbMjAwLCAyMDAsIDIwMF0sXG4gICAgICAgIGxpbmVXaWR0aDogMC41XG4gICAgICB9LFxuICAgICAgY29sdW1uU3R5bGVzOiB7XG4gICAgICAgIDA6IHsgY2VsbFdpZHRoOiAxNTAgfSxcbiAgICAgICAgMTogeyBjZWxsV2lkdGg6IDMyMCB9XG4gICAgICB9LFxuICAgICAgbWFyZ2luOiB7IGxlZnQ6IG1hcmdpbiwgcmlnaHQ6IG1hcmdpbiB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gKGRvYyBhcyBhbnkpLmxhc3RBdXRvVGFibGUuZmluYWxZO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRGb290ZXIoZG9jOiBqc1BERiwgZGF0YTogVGVtcGxhdGVQZGZGbywgeTogbnVtYmVyLCBwYWdlV2lkdGg6IG51bWJlciwgY29sb3I6IG51bWJlcltdKTogdm9pZCB7XG4gICAgLy8gRm9uZG8gZGVsIHBpZSBkZSBww6FnaW5hXG4gICAgZG9jLnNldEZpbGxDb2xvcihjb2xvclswXSwgY29sb3JbMV0sIGNvbG9yWzJdKTtcbiAgICBkb2MucmVjdCg0MCwgeSwgcGFnZVdpZHRoIC0gODAsIDYwLCAnRicpO1xuXG4gICAgLy8gVGV4dG8gZW4gYmxhbmNvXG4gICAgZG9jLnNldFRleHRDb2xvcigyNTUsIDI1NSwgMjU1KTtcbiAgICBkb2Muc2V0Rm9udCgnaGVsdmV0aWNhJywgJ2JvbGQnKTtcbiAgICBkb2Muc2V0Rm9udFNpemUoMTIpO1xuXG4gICAgY29uc3QgaW5zdHJ1Y3Rpb24gPSAnRmF2b3IgYWRqdW50YXIgbGEgb3JkZW4gZGUgdmVudGEgbyBmYWN0dXJhJztcbiAgICBjb25zdCBpbnN0V2lkdGggPSBkb2MuZ2V0VGV4dFdpZHRoKGluc3RydWN0aW9uKTtcbiAgICBkb2MudGV4dChpbnN0cnVjdGlvbiwgKHBhZ2VXaWR0aCAtIGluc3RXaWR0aCkgLyAyLCB5ICsgMjUpO1xuXG4gICAgZG9jLnNldEZvbnRTaXplKDEwKTtcbiAgICBjb25zdCBlbWFpbFdpZHRoID0gZG9jLmdldFRleHRXaWR0aChkYXRhLm1haWwpO1xuICAgIGRvYy50ZXh0KGRhdGEubWFpbCwgKHBhZ2VXaWR0aCAtIGVtYWlsV2lkdGgpIC8gMiwgeSArIDQ1KTtcblxuICAgIC8vIFJlc2V0ZWFyIGNvbG9yXG4gICAgZG9jLnNldFRleHRDb2xvcigwLCAwLCAwKTtcbiAgfVxuXG59XG4iXX0=
346
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVlbC1vcmRlci1wZGYuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zZXJ2aWNlcy9mdWVsLW9yZGVyLXBkZi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM5QixPQUFPLGlCQUFpQixDQUFDOztBQUd6QixtQ0FBbUM7QUFDbkMsa0JBQWtCO0FBQ2xCLGlCQUFpQjtBQUNqQixxQkFBcUI7QUFDckIsdUJBQXVCO0FBQ3ZCLGtCQUFrQjtBQUNsQixvQkFBb0I7QUFDcEIsa0JBQWtCO0FBQ2xCLGtCQUFrQjtBQUNsQix5QkFBeUI7QUFDekIsc0JBQXNCO0FBQ3RCLHlCQUF5QjtBQUN6QixxQkFBcUI7QUFDckIseUJBQXlCO0FBQ3pCLHlCQUF5QjtBQUN6Qix1QkFBdUI7QUFDdkIsMEJBQTBCO0FBQzFCLGtCQUFrQjtBQUNsQixzQkFBc0I7QUFDdEIsK0JBQStCO0FBQy9CLElBQUk7QUFLSixNQUFNLE9BQU8sbUJBQW1CO0lBRTlCLGdCQUFnQixDQUFDO0lBRWpCLCtCQUErQixDQUFDLElBQW1CLEVBQUUsT0FJcEQ7UUFDQyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUk7Z0JBQ0YsTUFBTSxJQUFJLEdBQUc7b0JBQ1gsTUFBTSxFQUFFLFFBQVE7b0JBQ2hCLFFBQVEsRUFBRSxJQUFJO29CQUNkLFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLEdBQUcsT0FBTztpQkFDWCxDQUFDO2dCQUVGLE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM5QyxNQUFNLFNBQVMs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U0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUUzRCxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BCLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9DLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBRTFELGlCQUFpQjtRQUNqQixHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUIsQ0FBQzt3R0FwWFUsbUJBQW1COzRHQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGpzUERGIH0gZnJvbSAnanNwZGYnO1xuaW1wb3J0ICdqc3BkZi1hdXRvdGFibGUnO1xuaW1wb3J0IHsgVGVtcGxhdGVQZGZGbyB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0L3RlbXBsYXRlLXBmZC1mbyc7XG5cbi8vIGV4cG9ydCBpbnRlcmZhY2UgVGVtcGxhdGVQZGZGbyB7XG4vLyAgIG5hbWU6IHN0cmluZztcbi8vICAgbml0OiBzdHJpbmc7XG4vLyAgIGFkZHJlc3M6IHN0cmluZztcbi8vICAgdGVsZXBob25lOiBzdHJpbmc7XG4vLyAgIG1haWw6IHN0cmluZztcbi8vICAgaW1hZ2U/OiBzdHJpbmc7XG4vLyAgIGNvZGU6IHN0cmluZztcbi8vICAgZGF0ZTogc3RyaW5nO1xuLy8gICByZXNwb25zaWJsZTogc3RyaW5nO1xuLy8gICBpZF9wbGFjZTogc3RyaW5nO1xuLy8gICBhcHByb3ZlZF9ieTogc3RyaW5nO1xuLy8gICBkZXRhbGxlOiBzdHJpbmc7XG4vLyAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4vLyAgIGNvbnNlY3V0aXZlOiBzdHJpbmc7XG4vLyAgIG5hbWVQbGFjZTogc3RyaW5nO1xuLy8gICBhZGRyZXNzUGxhY2U6IHN0cmluZztcbi8vICAgYXJlYTogc3RyaW5nO1xuLy8gICBvZG9tZXRlcjogc3RyaW5nO1xuLy8gICBpbnZvaWNlUmVmZXJlbmNlPzogc3RyaW5nO1xuLy8gfVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGdWVsT3JkZXJQZGZTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIGdlbmVyYXRlRnVlbE9yZGVyUHJvZmVzaW9uYWxQREYoZGF0YTogVGVtcGxhdGVQZGZGbywgb3B0aW9ucz86IHtcbiAgICBmb3JtYXQ/OiAnbGV0dGVyJyB8ICdhNCc7XG4gICAgZG93bmxvYWQ/OiBib29sZWFuO1xuICAgIGZpbGVuYW1lPzogc3RyaW5nO1xuICB9KTogUHJvbWlzZTxqc1BERj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBvcHRzID0ge1xuICAgICAgICAgIGZvcm1hdDogJ2xldHRlcicsXG4gICAgICAgICAgZG93bmxvYWQ6IHRydWUsXG4gICAgICAgICAgZmlsZW5hbWU6ICdvcmRlbl9jb21idXN0aWJsZS5wZGYnLFxuICAgICAgICAgIC4uLm9wdGlvbnNcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBkb2MgPSBuZXcganNQREYoJ3AnLCAncHQnLCBvcHRzLmZvcm1hdCk7XG4gICAgICAgIGNvbnN0IHBhZ2VXaWR0aCA9IGRvYy5pbnRlcm5hbC5wYWdlU2l6ZS5nZXRXaWR0aCgpO1xuICAgICAgICBjb25zdCBwYWdlSGVpZ2h0ID0gZG9jLmludGVybmFsLnBhZ2VTaXplLmdldEhlaWdodCgpO1xuICAgICAgICBjb25zdCBtYXJnaW4gPSA0MDtcbiAgICAgICAgbGV0IGN1cnJlbnRZID0gbWFyZ2luO1xuXG4gICAgICAgIC8vIENvbG9yZXMgY29ycG9yYXRpdm9zXG4gICAgICAgIGNvbnN0IHByaW1hcnlDb2xvciA9IFs0MSwgMTI4LCAxODVdOyAvLyBBenVsXG4gICAgICAgIGNvbnN0IHNlY29uZGFyeUNvbG9yID0gWzUyLCA3MywgOTRdOyAvLyBHcmlzIG9zY3Vyb1xuICAgICAgICBjb25zdCBhY2NlbnRDb2xvciA9IFsyMzAsIDEyNiwgMzRdOyAvLyBOYXJhbmphXG5cbiAgICAgICAgLy8gPT09IEVOQ0FCRVpBRE8gUFJJTkNJUEFMID09PVxuICAgICAgICB0aGlzLmFkZEhlYWRlcihkb2MsIGRhdGEsIG1hcmdpbiwgY3VycmVudFksIHBhZ2VXaWR0aCwgcHJpbWFyeUNvbG9yKTtcbiAgICAgICAgY3VycmVudFkgPSAxNDA7XG5cbiAgICAgICAgLy8gPT09IFTDjVRVTE8gREVMIERPQ1VNRU5UTyA9PT1cbiAgICAgICAgY3VycmVudFkgPSB0aGlzLmFkZERvY3VtZW50VGl0bGUoZG9jLCBkYXRhLCBjdXJyZW50WSwgcGFnZVdpZHRoLCBhY2NlbnRDb2xvcik7XG4gICAgICAgIGN1cnJlbnRZICs9IDI1O1xuXG4gICAgICAgIC8vID09PSBJTkZPUk1BQ0nDk04gUFJJTkNJUEFMID09PVxuICAgICAgICBjdXJyZW50WSA9IHRoaXMuYWRkTWFpbkluZm8oZG9jLCBkYXRhLCBjdXJyZW50WSwgbWFyZ2luLCBwYWdlV2lkdGgpO1xuICAgICAgICBjdXJyZW50WSArPSAyMDtcblxuICAgICAgICAvLyA9PT0gREFUT1MgREVMIFBST1ZFRURPUiA9PT1cbiAgICAgICAgY3VycmVudFkgPSB0aGlzLmFkZFByb3ZpZGVySW5mbyhkb2MsIGRhdGEsIGN1cnJlbnRZLCBtYXJnaW4sIHBhZ2VXaWR0aCwgc2Vjb25kYXJ5Q29sb3IpO1xuICAgICAgICBjdXJyZW50WSArPSAyMDtcblxuICAgICAgICAvLyA9PT0gREVUQUxMRVMgREVMIFNFUlZJQ0lPID09PVxuICAgICAgICBjdXJyZW50WSA9IHRoaXMuYWRkU2VydmljZURldGFpbHMoZG9jLCBkYXRhLCBjdXJyZW50WSwgbWFyZ2luLCBwYWdlV2lkdGgsIHNlY29uZGFyeUNvbG9yKTtcbiAgICAgICAgY3VycmVudFkgKz0gMjA7XG5cbiAgICAgICAgLy8gPT09IEFVVE9SSVpBQ0nDk04gPT09XG4gICAgICAgIGN1cnJlbnRZID0gdGhpcy5hZGRBdXRob3JpemF0aW9uKGRvYywgZGF0YSwgY3VycmVudFksIG1hcmdpbiwgcGFnZVdpZHRoKTtcbiAgICAgICAgY3VycmVudFkgKz0gMzA7XG5cbiAgICAgICAgLy8gPT09IFBJRSBERSBQw4FHSU5BID09PVxuICAgICAgICB0aGlzLmFkZEZvb3Rlcihkb2MsIGRhdGEsIHBhZ2VIZWlnaHQgLSA4MCwgcGFnZVdpZHRoLCBwcmltYXJ5Q29sb3IpO1xuXG4gICAgICAgIC8vID09PSBHRU5FUkFSL0RFU0NBUkdBUiA9PT1cbiAgICAgICAgaWYgKG9wdHMuZG93bmxvYWQpIHtcbiAgICAgICAgICBkb2Mub3V0cHV0KCdkYXRhdXJsbmV3d2luZG93JywgeyBmaWxlbmFtZTogb3B0cy5maWxlbmFtZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlc29sdmUoZG9jKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhIFBERiBvcHRpbWl6YWRvIHBhcmEgaW1wcmVzacOzblxuICAgKi9cbiAgZ2VuZXJhdGVGb3JQcmludChkYXRhOiBUZW1wbGF0ZVBkZkZvKTogUHJvbWlzZTxqc1BERj4ge1xuICAgIHJldHVybiB0aGlzLmdlbmVyYXRlRnVlbE9yZGVyUHJvZmVzaW9uYWxQREYoZGF0YSwge1xuICAgICAgZm9ybWF0OiAnbGV0dGVyJyxcbiAgICAgIGRvd25sb2FkOiBmYWxzZVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRIZWFkZXIoZG9jOiBqc1BERiwgZGF0YTogVGVtcGxhdGVQZGZGbywgbWFyZ2luOiBudW1iZXIsIHk6IG51bWJlciwgcGFnZVdpZHRoOiBudW1iZXIsIGNvbG9yOiBudW1iZXJbXSk6IHZvaWQge1xuICAgIC8vIEZvbmRvIGRlbCBlbmNhYmV6YWRvXG4gICAgZG9jLnNldEZpbGxDb2xvcihjb2xvclswXSwgY29sb3JbMV0sIGNvbG9yWzJdKTtcbiAgICBkb2MucmVjdChtYXJnaW4sIHksIHBhZ2VXaWR0aCAtIChtYXJnaW4gKiAyKSwgODAsICdGJyk7XG5cbiAgICAvLyBUZXh0byBkZWwgZW5jYWJlemFkbyBlbiBibGFuY29cbiAgICBkb2Muc2V0VGV4dENvbG9yKDI1NSwgMjU1LCAyNTUpO1xuICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnYm9sZCcpO1xuICAgIGRvYy5zZXRGb250U2l6ZSgxOCk7XG5cbiAgICBjb25zdCBjb21wYW55TmFtZSA9IGRhdGEubmFtZS50b1VwcGVyQ2FzZSgpO1xuICAgIGNvbnN0IG5hbWVXaWR0aCA9IGRvYy5nZXRUZXh0V2lkdGgoY29tcGFueU5hbWUpO1xuICAgIGRvYy50ZXh0KGNvbXBhbnlOYW1lLCAocGFnZVdpZHRoIC0gbmFtZVdpZHRoKSAvIDIsIHkgKyAyNSk7XG5cbiAgICBkb2Muc2V0Rm9udFNpemUoMTIpO1xuICAgIGNvbnN0IG5pdFRleHQgPSBgTklUOiAke2RhdGEubml0fWA7XG4gICAgY29uc3Qgbml0V2lkdGggPSBkb2MuZ2V0VGV4dFdpZHRoKG5pdFRleHQpO1xuICAgIGRvYy50ZXh0KG5pdFRleHQsIChwYWdlV2lkdGggLSBuaXRXaWR0aCkgLyAyLCB5ICsgNDUpO1xuXG4gICAgZG9jLnNldEZvbnRTaXplKDEwKTtcbiAgICBjb25zdCBhZGRyZXNzVGV4dCA9IGAke2RhdGEuYWRkcmVzc30gLSBURUw6ICR7ZGF0YS50ZWxlcGhvbmV9YDtcbiAgICBjb25zdCBhZGRyZXNzV2lkdGggPSBkb2MuZ2V0VGV4dFdpZHRoKGFkZHJlc3NUZXh0KTtcbiAgICBkb2MudGV4dChhZGRyZXNzVGV4dCwgKHBhZ2VXaWR0aCAtIGFkZHJlc3NXaWR0aCkgLyAyLCB5ICsgNjUpO1xuXG4gICAgLy8gUmVzZXRlYXIgY29sb3IgZGUgdGV4dG9cbiAgICBkb2Muc2V0VGV4dENvbG9yKDAsIDAsIDApO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGREb2N1bWVudFRpdGxlKGRvYzoganNQREYsIGRhdGE6IFRlbXBsYXRlUGRmRm8sIHk6IG51bWJlciwgcGFnZVdpZHRoOiBudW1iZXIsIGNvbG9yOiBudW1iZXJbXSk6IG51bWJlciB7XG4gICAgZG9jLnNldFRleHRDb2xvcihjb2xvclswXSwgY29sb3JbMV0sIGNvbG9yWzJdKTtcbiAgICBkb2Muc2V0Rm9udCgnaGVsdmV0aWNhJywgJ2JvbGQnKTtcbiAgICBkb2Muc2V0Rm9udFNpemUoMjApO1xuXG4gICAgY29uc3QgdGl0bGUgPSAnT1JERU4gREUgQ09NQlVTVElCTEUnO1xuICAgIGNvbnN0IHRpdGxlV2lkdGggPSBkb2MuZ2V0VGV4dFdpZHRoKHRpdGxlKTtcbiAgICBkb2MudGV4dCh0aXRsZSwgKHBhZ2VXaWR0aCAtIHRpdGxlV2lkdGgpIC8gMiwgeSk7XG5cbiAgICBkb2Muc2V0Rm9udFNpemUoMTYpO1xuICAgIGNvbnN0IG51bWJlclRleHQgPSBgTsKwICR7ZGF0YS5jb25zZWN1dGl2ZX1gO1xuICAgIGNvbnN0IG51bWJlcldpZHRoID0gZG9jLmdldFRleHRXaWR0aChudW1iZXJUZXh0KTtcbiAgICBkb2MudGV4dChudW1iZXJUZXh0LCAocGFnZVdpZHRoIC0gbnVtYmVyV2lkdGgpIC8gMiwgeSArIDI1KTtcblxuICAgIGRvYy5zZXRUZXh0Q29sb3IoMCwgMCwgMCk7XG4gICAgcmV0dXJuIHkgKyA0MDtcbiAgfVxuXG4gIHByaXZhdGUgYWRkTWFpbkluZm8oZG9jOiBqc1BERiwgZGF0YTogVGVtcGxhdGVQZGZGbywgeTogbnVtYmVyLCBtYXJnaW46IG51bWJlciwgcGFnZVdpZHRoOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IHRhYmxlRGF0YSA9IFtcbiAgICAgIFtcbiAgICAgICAgeyBjb250ZW50OiAnw4FyZWE6Jywgc3R5bGVzOiB7IGZvbnRTdHlsZTogJ2JvbGQnLCBmaWxsQ29sb3I6IFsyNDAsIDI0MCwgMjQwXSB9IH0sXG4gICAgICAgIHsgY29udGVudDogZGF0YS5hcmVhLCBzdHlsZXM6IHt9IH0sXG4gICAgICAgIHsgY29udGVudDogJ0PDs2RpZ286Jywgc3R5bGVzOiB7IGZvbnRTdHlsZTogJ2JvbGQnLCBmaWxsQ29sb3I6IFsyNDAsIDI0MCwgMjQwXSB9IH0sXG4gICAgICAgIHsgY29udGVudDogZGF0YS5jb2RlLCBzdHlsZXM6IHt9IH0sXG4gICAgICAgIHsgY29udGVudDogJ0ZlY2hhOicsIHN0eWxlczogeyBmb250U3R5bGU6ICdib2xkJywgZmlsbENvbG9yOiBbMjQwLCAyNDAsIDI0MF0gfSB9LFxuICAgICAgICB7IGNvbnRlbnQ6IGRhdGEuZGF0ZSwgc3R5bGVzOiB7fSB9XG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICB7IGNvbnRlbnQ6ICdPcGVyYXJpbzonLCBzdHlsZXM6IHsgZm9udFN0eWxlOiAnYm9sZCcsIGZpbGxDb2xvcjogWzI0MCwgMjQwLCAyNDBdIH0gfSxcbiAgICAgICAgeyBjb250ZW50OiBkYXRhLnJlc3BvbnNpYmxlLCBzdHlsZXM6IHsgY29sU3BhbjogMyB9IH0sXG4gICAgICAgIHsgY29udGVudDogJ09kw7NtZXRybzonLCBzdHlsZXM6IHsgZm9udFN0eWxlOiAnYm9sZCcsIGZpbGxDb2xvcjogWzI0MCwgMjQwLCAyNDBdIH0gfSxcbiAgICAgICAgeyBjb250ZW50OiBkYXRhLm9kb21ldGVyLCBzdHlsZXM6IHt9IH1cbiAgICAgIF1cbiAgICBdO1xuXG4gICAgKGRvYyBhcyBhbnkpLmF1dG9UYWJsZSh7XG4gICAgICBzdGFydFk6IHksXG4gICAgICBib2R5OiB0YWJsZURhdGEsXG4gICAgICB0aGVtZTogJ2dyaWQnLFxuICAgICAgc3R5bGVzOiB7XG4gICAgICAgIGZvbnRTaXplOiAxMSxcbiAgICAgICAgY2VsbFBhZGRpbmc6IDgsXG4gICAgICAgIGxpbmVDb2xvcjogWzIwMCwgMjAwLCAyMDBdLFxuICAgICAgICBsaW5lV2lkdGg6IDAuNVxuICAgICAgfSxcbiAgICAgIGNvbHVtblN0eWxlczoge1xuICAgICAgICAwOiB7IGNlbGxXaWR0aDogNzAgfSxcbiAgICAgICAgMTogeyBjZWxsV2lkdGg6IDEwMCB9LFxuICAgICAgICAyOiB7IGNlbGxXaWR0aDogNzAgfSxcbiAgICAgICAgMzogeyBjZWxsV2lkdGg6IDgwIH0sXG4gICAgICAgIDQ6IHsgY2VsbFdpZHRoOiA3MCB9LFxuICAgICAgICA1OiB7IGNlbGxXaWR0aDogODAgfVxuICAgICAgfSxcbiAgICAgIG1hcmdpbjogeyBsZWZ0OiBtYXJnaW4sIHJpZ2h0OiBtYXJnaW4gfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIChkb2MgYXMgYW55KS5sYXN0QXV0b1RhYmxlLmZpbmFsWTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkUHJvdmlkZXJJbmZvKGRvYzoganNQREYsIGRhdGE6IFRlbXBsYXRlUGRmRm8sIHk6IG51bWJlciwgbWFyZ2luOiBudW1iZXIsIHBhZ2VXaWR0aDogbnVtYmVyLCBjb2xvcjogbnVtYmVyW10pOiBudW1iZXIge1xuICAgIC8vIFTDrXR1bG8gZGUgc2VjY2nDs25cbiAgICBkb2Muc2V0VGV4dENvbG9yKGNvbG9yWzBdLCBjb2xvclsxXSwgY29sb3JbMl0pO1xuICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnYm9sZCcpO1xuICAgIGRvYy5zZXRGb250U2l6ZSgxNCk7XG4gICAgY29uc3QgdGl0bGUgPSAnREFUT1MgREVMIFBST1ZFRURPUic7XG4gICAgY29uc3QgdGl0bGVXaWR0aCA9IGRvYy5nZXRUZXh0V2lkdGgodGl0bGUpO1xuICAgIGRvYy50ZXh0KHRpdGxlLCAocGFnZVdpZHRoIC0gdGl0bGVXaWR0aCkgLyAyLCB5KTtcbiAgICBkb2Muc2V0VGV4dENvbG9yKDAsIDAsIDApO1xuXG4gICAgY29uc3QgdGFibGVEYXRhID0gW1xuICAgICAgW1xuICAgICAgICB7IGNvbnRlbnQ6ICdMdWdhcjonLCBzdHlsZXM6IHsgZm9udFN0eWxlOiAnYm9sZCcsIGZpbGxDb2xvcjogWzI0MCwgMjQwLCAyNDBdIH0gfSxcbiAgICAgICAgeyBjb250ZW50OiBkYXRhLm5hbWVQbGFjZSwgc3R5bGVzOiB7fSB9LFxuICAgICAgICB7IGNvbnRlbnQ6ICdEaXJlY2Npw7NuOicsIHN0eWxlczogeyBmb250U3R5bGU6ICdib2xkJywgZmlsbENvbG9yOiBbMjQwLCAyNDAsIDI0MF0gfSB9LFxuICAgICAgICB7IGNvbnRlbnQ6IGRhdGEuYWRkcmVzc1BsYWNlLCBzdHlsZXM6IHt9IH1cbiAgICAgIF1cbiAgICBdO1xuXG4gICAgKGRvYyBhcyBhbnkpLmF1dG9UYWJsZSh7XG4gICAgICBzdGFydFk6IHkgKyAyMCxcbiAgICAgIGJvZHk6IHRhYmxlRGF0YSxcbiAgICAgIHRoZW1lOiAnZ3JpZCcsXG4gICAgICBzdHlsZXM6IHtcbiAgICAgICAgZm9udFNpemU6IDExLFxuICAgICAgICBjZWxsUGFkZGluZzogOCxcbiAgICAgICAgbGluZUNvbG9yOiBbMjAwLCAyMDAsIDIwMF0sXG4gICAgICAgIGxpbmVXaWR0aDogMC41XG4gICAgICB9LFxuICAgICAgY29sdW1uU3R5bGVzOiB7XG4gICAgICAgIDA6IHsgY2VsbFdpZHRoOiA4MCB9LFxuICAgICAgICAxOiB7IGNlbGxXaWR0aDogMTYwIH0sXG4gICAgICAgIDI6IHsgY2VsbFdpZHRoOiA4MCB9LFxuICAgICAgICAzOiB7IGNlbGxXaWR0aDogMTUwIH1cbiAgICAgIH0sXG4gICAgICBtYXJnaW46IHsgbGVmdDogbWFyZ2luLCByaWdodDogbWFyZ2luIH1cbiAgICB9KTtcblxuICAgIHJldHVybiAoZG9jIGFzIGFueSkubGFzdEF1dG9UYWJsZS5maW5hbFk7XG4gIH1cblxuICBwcml2YXRlIGFkZFNlcnZpY2VEZXRhaWxzKGRvYzoganNQREYsIGRhdGE6IFRlbXBsYXRlUGRmRm8sIHk6IG51bWJlciwgbWFyZ2luOiBudW1iZXIsIHBhZ2VXaWR0aDogbnVtYmVyLCBjb2xvcjogbnVtYmVyW10pOiBudW1iZXIge1xuICAgIC8vIFTDrXR1bG8gZGUgc2VjY2nDs25cbiAgICBkb2Muc2V0VGV4dENvbG9yKGNvbG9yWzBdLCBjb2xvclsxXSwgY29sb3JbMl0pO1xuICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnYm9sZCcpO1xuICAgIGRvYy5zZXRGb250U2l6ZSgxNCk7XG4gICAgY29uc3QgdGl0bGUgPSAnREVUQUxMRVMgREVMIFNFUlZJQ0lPJztcbiAgICBjb25zdCB0aXRsZVdpZHRoID0gZG9jLmdldFRleHRXaWR0aCh0aXRsZSk7XG4gICAgZG9jLnRleHQodGl0bGUsIChwYWdlV2lkdGggLSB0aXRsZVdpZHRoKSAvIDIsIHkpO1xuICAgIGRvYy5zZXRUZXh0Q29sb3IoMCwgMCwgMCk7XG5cbiAgICAvLyBQcmVwYXJhciB0ZXh0byBwYXJhIGNhbGN1bGFyIGFsdHVyYSBuZWNlc2FyaWFcbiAgICBjb25zdCBib3hZID0geSArIDIwO1xuICAgIGNvbnN0IGJveFdpZHRoID0gcGFnZVdpZHRoIC0gKG1hcmdpbiAqIDIpO1xuICAgIGNvbnN0IHRleHRNYXJnaW4gPSBtYXJnaW4gKyAxNTtcbiAgICBjb25zdCBtYXhXaWR0aCA9IGJveFdpZHRoIC0gMzA7XG4gICAgY29uc3QgbGluZUhlaWdodCA9IDE1O1xuICAgIGNvbnN0IG1pbkJveEhlaWdodCA9IDYwOyAvLyBBbHR1cmEgbcOtbmltYSBkZWwgY29udGVuZWRvclxuICAgIGNvbnN0IHBhZGRpbmcgPSA0MDsgLy8gUGFkZGluZyBzdXBlcmlvciBlIGluZmVyaW9yXG5cbiAgICAvLyBDYWxjdWxhciBsw61uZWFzIGRlIHRleHRvIG5lY2VzYXJpYXNcbiAgICBkb2Muc2V0Rm9udCgnaGVsdmV0aWNhJywgJ25vcm1hbCcpO1xuICAgIGRvYy5zZXRGb250U2l6ZSgxMSk7XG5cbiAgICBsZXQgdG90YWxMaW5lcyA9IDA7XG5cbiAgICAvLyBDb250YXIgbMOtbmVhcyBkZWwgZGV0YWxsZVxuICAgIGlmIChkYXRhLmRldGFsbGUgJiYgZGF0YS5kZXRhbGxlLnRyaW0oKSkge1xuICAgICAgY29uc3QgZGV0YWxsZUxpbmVzID0gZG9jLnNwbGl0VGV4dFRvU2l6ZShkYXRhLmRldGFsbGUudHJpbSgpLCBtYXhXaWR0aCk7XG4gICAgICB0b3RhbExpbmVzICs9IGRldGFsbGVMaW5lcy5sZW5ndGg7XG4gICAgfVxuXG4gICAgLy8gQ29udGFyIGzDrW5lYXMgZGUgbGEgZGVzY3JpcGNpw7NuIChpbmNsdXllIGV0aXF1ZXRhIFwiRGVzY3JpcGNpw7NuOlwiKVxuICAgIGlmIChkYXRhLmRlc2NyaXB0aW9uICYmIGRhdGEuZGVzY3JpcHRpb24udHJpbSgpKSB7XG4gICAgICB0b3RhbExpbmVzICs9IDI7IC8vIFVuYSBsw61uZWEgcGFyYSBcIkRlc2NyaXBjacOzbjpcIiArIGVzcGFjaW9cbiAgICAgIGNvbnN0IGRlc2NMaW5lcyA9IGRvYy5zcGxpdFRleHRUb1NpemUoZGF0YS5kZXNjcmlwdGlvbi50cmltKCksIG1heFdpZHRoKTtcbiAgICAgIHRvdGFsTGluZXMgKz0gZGVzY0xpbmVzLmxlbmd0aDtcbiAgICB9XG5cbiAgICAvLyBDYWxjdWxhciBhbHR1cmEgbmVjZXNhcmlhIGJhc2FkYSBlbiBlbCBjb250ZW5pZG9cbiAgICBjb25zdCBjb250ZW50SGVpZ2h0ID0gTWF0aC5tYXgodG90YWxMaW5lcyAqIGxpbmVIZWlnaHQsIDMwKTsgLy8gTcOtbmltbyAzMHB0IHBhcmEgY29udGVuaWRvXG4gICAgY29uc3QgYm94SGVpZ2h0ID0gTWF0aC5tYXgobWluQm94SGVpZ2h0LCBjb250ZW50SGVpZ2h0ICsgcGFkZGluZyk7XG5cbiAgICAvLyBWZXJpZmljYXIgc2kgbmVjZXNpdGFtb3MgdW5hIG51ZXZhIHDDoWdpbmFcbiAgICBjb25zdCBwYWdlSGVpZ2h0ID0gZG9jLmludGVybmFsLnBhZ2VTaXplLmdldEhlaWdodCgpO1xuICAgIGNvbnN0IHJlbWFpbmluZ1NwYWNlID0gcGFnZUhlaWdodCAtIGJveFkgLSAxMDA7IC8vIERlamFyIGVzcGFjaW8gcGFyYSBmb290ZXJcblxuICAgIGxldCBmaW5hbEJveFkgPSBib3hZO1xuICAgIGlmIChib3hIZWlnaHQgPiByZW1haW5pbmdTcGFjZSkge1xuICAgICAgLy8gQcOxYWRpciBudWV2YSBww6FnaW5hXG4gICAgICBkb2MuYWRkUGFnZSgpO1xuICAgICAgZmluYWxCb3hZID0gbWFyZ2luICsgNDA7IC8vIFBvc2ljacOzbiBlbiBudWV2YSBww6FnaW5hXG4gICAgfVxuXG4gICAgLy8gRGlidWphciBjb250ZW5lZG9yIGNvbiBhbHR1cmEgZGluw6FtaWNhXG4gICAgLy8gRm9uZG8gZ3JpcyBjbGFyb1xuICAgIGRvYy5zZXRGaWxsQ29sb3IoMjUwLCAyNTAsIDI1MCk7XG4gICAgZG9jLnJlY3QobWFyZ2luLCBmaW5hbEJveFksIGJveFdpZHRoLCBib3hIZWlnaHQsICdGJyk7XG5cbiAgICAvLyBCb3JkZVxuICAgIGRvYy5zZXREcmF3Q29sb3IoMjAwLCAyMDAsIDIwMCk7XG4gICAgZG9jLnJlY3QobWFyZ2luLCBmaW5hbEJveFksIGJveFdpZHRoLCBib3hIZWlnaHQsICdTJyk7XG5cbiAgICAvLyBBw7FhZGlyIGNvbnRlbmlkbyBkZSB0ZXh0b1xuICAgIGxldCB0ZXh0WSA9IGZpbmFsQm94WSArIDIwO1xuXG4gICAgLy8gQcOxYWRpciBkZXRhbGxlIHNpIGV4aXN0ZVxuICAgIGlmIChkYXRhLmRldGFsbGUgJiYgZGF0YS5kZXRhbGxlLnRyaW0oKSkge1xuICAgICAgY29uc3QgZGV0YWxsZUxpbmVzID0gZG9jLnNwbGl0VGV4dFRvU2l6ZShkYXRhLmRldGFsbGUudHJpbSgpLCBtYXhXaWR0aCk7XG4gICAgICBkb2MudGV4dChkZXRhbGxlTGluZXMsIHRleHRNYXJnaW4sIHRleHRZKTtcbiAgICAgIHRleHRZICs9IGRldGFsbGVMaW5lcy5sZW5ndGggKiBsaW5lSGVpZ2h0ICsgMTA7IC8vIEVzcGFjaW8gZXh0cmEgZGVzcHXDqXMgZGVsIGRldGFsbGVcbiAgICB9XG5cbiAgICAvLyBBw7FhZGlyIGRlc2NyaXBjacOzbiBzaSBleGlzdGVcbiAgICBpZiAoZGF0YS5kZXNjcmlwdGlvbiAmJiBkYXRhLmRlc2NyaXB0aW9uLnRyaW0oKSkge1xuICAgICAgZG9jLnNldEZvbnQoJ2hlbHZldGljYScsICdib2xkJyk7XG4gICAgICBkb2MudGV4dCgnRGVzY3JpcGNpw7NuOicsIHRleHRNYXJnaW4sIHRleHRZKTtcbiAgICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnbm9ybWFsJyk7XG4gICAgICB0ZXh0WSArPSBsaW5lSGVpZ2h0O1xuXG4gICAgICBjb25zdCBkZXNjTGluZXMgPSBkb2Muc3BsaXRUZXh0VG9TaXplKGRhdGEuZGVzY3JpcHRpb24udHJpbSgpLCBtYXhXaWR0aCk7XG5cbiAgICAgIC8vIFZlcmlmaWNhciBzaSBuZWNlc2l0YW1vcyBtYW5lamFyIGNvbnRlbmlkbyBtdXkgbGFyZ29cbiAgICAgIGNvbnN0IHJlbWFpbmluZ0hlaWdodCA9IGZpbmFsQm94WSArIGJveEhlaWdodCAtIHRleHRZIC0gMjA7XG4gICAgICBjb25zdCBtYXhMaW5lc0luU3BhY2UgPSBNYXRoLmZsb29yKHJlbWFpbmluZ0hlaWdodCAvIGxpbmVIZWlnaHQpO1xuXG4gICAgICBpZiAoZGVzY0xpbmVzLmxlbmd0aCA+IG1heExpbmVzSW5TcGFjZSAmJiBtYXhMaW5lc0luU3BhY2UgPiAwKSB7XG4gICAgICAgIC8vIE1vc3RyYXIgbMOtbmVhcyBxdWUgY2FiZW4gZW4gZWwgZXNwYWNpbyBhY3R1YWxcbiAgICAgICAgY29uc3QgY3VycmVudExpbmVzID0gZGVzY0xpbmVzLnNsaWNlKDAsIG1heExpbmVzSW5TcGFjZSk7XG4gICAgICAgIGRvYy50ZXh0KGN1cnJlbnRMaW5lcywgdGV4dE1hcmdpbiwgdGV4dFkpO1xuXG4gICAgICAgIC8vIENvbnRpbnVhciBlbiBudWV2YSBww6FnaW5hIHNpIGhheSBtw6FzIGNvbnRlbmlkb1xuICAgICAgICBpZiAoZGVzY0xpbmVzLmxlbmd0aCA+IG1heExpbmVzSW5TcGFjZSkge1xuICAgICAgICAgIGRvYy5hZGRQYWdlKCk7XG4gICAgICAgICAgdGV4dFkgPSBtYXJnaW4gKyAyMDtcbiAgICAgICAgICBjb25zdCByZW1haW5pbmdMaW5lcyA9IGRlc2NMaW5lcy5zbGljZShtYXhMaW5lc0luU3BhY2UpO1xuICAgICAgICAgIGRvYy50ZXh0KHJlbWFpbmluZ0xpbmVzLCB0ZXh0TWFyZ2luLCB0ZXh0WSk7XG4gICAgICAgICAgcmV0dXJuIHRleHRZICsgKHJlbWFpbmluZ0xpbmVzLmxlbmd0aCAqIGxpbmVIZWlnaHQpICsgMjA7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRvYy50ZXh0KGRlc2NMaW5lcywgdGV4dE1hcmdpbiwgdGV4dFkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNpIG5vIGhheSBjb250ZW5pZG8sIG1vc3RyYXIgdW4gbWVuc2FqZVxuICAgIGlmICgoIWRhdGEuZGV0YWxsZSB8fCAhZGF0YS5kZXRhbGxlLnRyaW0oKSkgJiYgKCFkYXRhLmRlc2NyaXB0aW9uIHx8ICFkYXRhLmRlc2NyaXB0aW9uLnRyaW0oKSkpIHtcbiAgICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnaXRhbGljJyk7XG4gICAgICBkb2Muc2V0Rm9udFNpemUoMTApO1xuICAgICAgZG9jLnNldFRleHRDb2xvcigxNTAsIDE1MCwgMTUwKTtcbiAgICAgIGRvYy50ZXh0KCdObyBzZSBoYW4gZXNwZWNpZmljYWRvIGRldGFsbGVzIGRlbCBzZXJ2aWNpby4nLCB0ZXh0TWFyZ2luLCB0ZXh0WSk7XG4gICAgICBkb2Muc2V0VGV4dENvbG9yKDAsIDAsIDApO1xuICAgICAgZG9jLnNldEZvbnQoJ2hlbHZldGljYScsICdub3JtYWwnKTtcbiAgICAgIGRvYy5zZXRGb250U2l6ZSgxMSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbmFsQm94WSArIGJveEhlaWdodDtcbiAgfVxuXG5cbiAgcHJpdmF0ZSBhZGRBdXRob3JpemF0aW9uKGRvYzoganNQREYsIGRhdGE6IFRlbXBsYXRlUGRmRm8sIHk6IG51bWJlciwgbWFyZ2luOiBudW1iZXIsIHBhZ2VXaWR0aDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCB0YWJsZURhdGEgPSBbXG4gICAgICBbXG4gICAgICAgIHsgY29udGVudDogJ0FVVE9SSVpBREEgUE9SOicsIHN0eWxlczogeyBmb250U3R5bGU6ICdib2xkJywgZm9udFNpemU6IDEyLCBmaWxsQ29sb3I6IFsyNDAsIDI0MCwgMjQwXSB9IH0sXG4gICAgICAgIHsgY29udGVudDogZGF0YS5hcHByb3ZlZF9ieSwgc3R5bGVzOiB7IGZvbnRTaXplOiAxMiB9IH1cbiAgICAgIF1cbiAgICBdO1xuXG4gICAgKGRvYyBhcyBhbnkpLmF1dG9UYWJsZSh7XG4gICAgICBzdGFydFk6IHksXG4gICAgICBib2R5OiB0YWJsZURhdGEsXG4gICAgICB0aGVtZTogJ2dyaWQnLFxuICAgICAgc3R5bGVzOiB7XG4gICAgICAgIGNlbGxQYWRkaW5nOiAxMixcbiAgICAgICAgbGluZUNvbG9yOiBbMjAwLCAyMDAsIDIwMF0sXG4gICAgICAgIGxpbmVXaWR0aDogMC41XG4gICAgICB9LFxuICAgICAgY29sdW1uU3R5bGVzOiB7XG4gICAgICAgIDA6IHsgY2VsbFdpZHRoOiAxNTAgfSxcbiAgICAgICAgMTogeyBjZWxsV2lkdGg6IDMyMCB9XG4gICAgICB9LFxuICAgICAgbWFyZ2luOiB7IGxlZnQ6IG1hcmdpbiwgcmlnaHQ6IG1hcmdpbiB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gKGRvYyBhcyBhbnkpLmxhc3RBdXRvVGFibGUuZmluYWxZO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRGb290ZXIoZG9jOiBqc1BERiwgZGF0YTogVGVtcGxhdGVQZGZGbywgeTogbnVtYmVyLCBwYWdlV2lkdGg6IG51bWJlciwgY29sb3I6IG51bWJlcltdKTogdm9pZCB7XG4gICAgLy8gRm9uZG8gZGVsIHBpZSBkZSBww6FnaW5hXG4gICAgZG9jLnNldEZpbGxDb2xvcihjb2xvclswXSwgY29sb3JbMV0sIGNvbG9yWzJdKTtcbiAgICBkb2MucmVjdCg0MCwgeSwgcGFnZVdpZHRoIC0gODAsIDYwLCAnRicpO1xuXG4gICAgLy8gVGV4dG8gZW4gYmxhbmNvXG4gICAgZG9jLnNldFRleHRDb2xvcigyNTUsIDI1NSwgMjU1KTtcbiAgICBkb2Muc2V0Rm9udCgnaGVsdmV0aWNhJywgJ2JvbGQnKTtcbiAgICBkb2Muc2V0Rm9udFNpemUoMTIpO1xuXG4gICAgY29uc3QgaW5zdHJ1Y3Rpb24gPSAnRmF2b3IgYWRqdW50YXIgbGEgb3JkZW4gZGUgdmVudGEgbyBmYWN0dXJhJztcbiAgICBjb25zdCBpbnN0V2lkdGggPSBkb2MuZ2V0VGV4dFdpZHRoKGluc3RydWN0aW9uKTtcbiAgICBkb2MudGV4dChpbnN0cnVjdGlvbiwgKHBhZ2VXaWR0aCAtIGluc3RXaWR0aCkgLyAyLCB5ICsgMjUpO1xuXG4gICAgZG9jLnNldEZvbnRTaXplKDEwKTtcbiAgICBjb25zdCBlbWFpbFdpZHRoID0gZG9jLmdldFRleHRXaWR0aChkYXRhLm1haWwpO1xuICAgIGRvYy50ZXh0KGRhdGEubWFpbCwgKHBhZ2VXaWR0aCAtIGVtYWlsV2lkdGgpIC8gMiwgeSArIDQ1KTtcblxuICAgIC8vIFJlc2V0ZWFyIGNvbG9yXG4gICAgZG9jLnNldFRleHRDb2xvcigwLCAwLCAwKTtcbiAgfVxuXG59XG4iXX0=
@@ -63,13 +63,13 @@ export class FunctionsService {
63
63
  number = "0" + number;
64
64
  return number;
65
65
  }
66
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FunctionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
67
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FunctionsService, providedIn: 'root' });
66
68
  }
67
- FunctionsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FunctionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
68
- FunctionsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FunctionsService, providedIn: 'root' });
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FunctionsService, decorators: [{
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FunctionsService, decorators: [{
70
70
  type: Injectable,
71
71
  args: [{
72
72
  providedIn: 'root'
73
73
  }]
74
74
  }], ctorParameters: function () { return []; } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvc2VydmljZXMvZnVuY3Rpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLGdCQUFnQjtJQUUzQixnQkFBZ0IsQ0FBQztJQUdqQixRQUFRLENBQUUsSUFBSTtRQUNiLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3pCLElBQUksTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUE7UUFDNUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2pCLENBQUM7SUFFRCxPQUFPLENBQUUsSUFBSTtRQUNYLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMzQixJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUN4QyxJQUFJLEdBQUcsR0FBSSxHQUFHLEdBQUcsZ0JBQWdCLENBQUE7UUFDakMsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDekMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUUsSUFBSTtRQUNWLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtRQUNoRSxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsc0JBQXNCLENB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L2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGdW5jdGlvbnNTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG5cbiAgZGF0ZUZvcm0gKGRhdGUpIHtcbiAgIGxldCBkYXRhID0gbmV3IERhdGUoZGF0ZSlcbiAgIGxldCBjaGFuZ2UgPSBgJHtkYXRhLmdldEZ1bGxZZWFyKCl9LyR7ZGF0YS5nZXRNb250aCgpICsgMX0vJHtkYXRhLmdldERhdGUoKX1gXG4gICAgcmV0dXJuIChjaGFuZ2UpXG4gIH1cblxuICBkYXRlSXNvIChkYXRlKSB7XG4gICAgbGV0IGRhdGEgPSBkYXRlLnRvU3RyaW5nKCk7XG4gICAgbGV0IGN1dCA9IGRhdGEucmVwbGFjZSgvKC4qKVxcVC4qLywgJyQxJylcbiAgICBsZXQgYWRkICA9IGAke2N1dH1UMDU6MDA6MDAuMDAwWmBcbiAgICBsZXQgZmVjaGEgPSBhZGQucmVwbGFjZSgvKC4qKVxcVC4qLywgJyQxJylcbiAgICByZXR1cm4gKGZlY2hhKVxuICB9XG5cbiAgZGF0ZURCIChkYXRlKSB7XG4gICAgbGV0IGRheSA9IHRoaXMudmFsaWRhdGVUd29EaWdpdEZvcm1hdChkYXRlLmdldERhdGUoKS50b1N0cmluZygpKVxuICAgIGxldCBtb250aCA9IHRoaXMudmFsaWRhdGVUd29EaWdpdEZvcm1hdCgoZGF0ZS5nZXRNb250aCgpKzEpLnRvU3RyaW5nKCkpXG4gICAgcmV0dXJuIGAke2RhdGUuZ2V0RnVsbFllYXIoKX0tJHttb250aH0tJHtkYXl9YFxuICB9XG5cbiAgZGF0ZVdpdGhUaW1lKGRhdGU6c3RyaW5nKTpzdHJpbmd7XG4gICAgaWYoIWRhdGUpIHJldHVybiBcIlwiXG4gICAgdmFyIHZhbHVlID0gZGF0ZS5zcGxpdChcIlRcIilcbiAgICByZXR1cm4gIHZhbHVlWzBdICsgXCIgXCIgKyB2YWx1ZVsxXS5zcGxpdChcIi5cIilbMF1cbiAgfVxuXG4gIGFyZU9iamVjdHNFcXVhbChvYmoxOiBhbnksIG9iajI6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShvYmoxKSA9PT0gSlNPTi5zdHJpbmdpZnkob2JqMik7XG4gIH1cblxuICByZW1vdmVEdXBsaWNhdGVPYmplY3RzKG9yaWdpbmFsQXJyYXk6IGFueVtdKTogYW55W10ge1xuICAgIGNvbnN0IHVuaXF1ZUFycmF5OiBhbnlbXSA9IFtdO1xuICAgIG9yaWdpbmFsQXJyYXkuZm9yRWFjaCgob2JqKSA9PiB7XG4gICAgICBpZiAoIXVuaXF1ZUFycmF5LnNvbWUoKHVuaXF1ZU9iaikgPT4gdGhpcy5hcmVPYmplY3RzRXF1YWwob2JqLCB1bmlxdWVPYmopKSkge1xuICAgICAgICB1bmlxdWVBcnJheS5wdXNoKG9iaik7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdW5pcXVlQXJyYXk7XG4gIH1cblxuICB0cmFuc2Zvcm1EYXRlKGRhdGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFkYXRlKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGNvbnN0IGRhdGVPYmogPSBuZXcgRGF0ZShkYXRlKTtcbiAgICBjb25zdCBkYXkgPSB0aGlzLnZhbGlkYXRlVHdvRGlnaXRGb3JtYXQoZGF0ZU9iai5nZXREYXRlKCkudG9TdHJpbmcoKSk7XG4gICAgY29uc3QgbW9udGggPSB0aGlzLnZhbGlkYXRlVHdvRGlnaXRGb3JtYXQoKGRhdGVPYmouZ2V0TW9udGgoKSArIDEpLnRvU3RyaW5nKCkpO1xuICAgIGNvbnN0IHllYXIgPSBkYXRlT2JqLmdldEZ1bGxZZWFyKCk7XG4gICAgcmV0dXJuIGAke2RheX0vJHttb250aH0vJHt5ZWFyfWA7XG4gIH1cblxuICBmb3JtYXROdW1iZXIodmFsdWU6IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiAnJCAwJztcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBJbnRsLk51bWJlckZvcm1hdCgnZXMtQ08nLCB7XG4gICAgICBzdHlsZTogJ2N1cnJlbmN5JyxcbiAgICAgIGN1cnJlbmN5OiAnQ09QJyxcbiAgICAgIG1pbmltdW1GcmFjdGlvbkRpZ2l0czogMCxcbiAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogMCxcbiAgICB9KS5mb3JtYXQodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVR3b0RpZ2l0Rm9ybWF0KG51bWJlcjogc3RyaW5nKTpzdHJpbmd7XG4gICAgaWYobnVtYmVyLmxlbmd0aCA9PSAxKSBudW1iZXIgPSBcIjBcIiArIG51bWJlclxuICAgIHJldHVybiBudW1iZXJcbiAgfVxuXG59XG4iXX0=
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvc2VydmljZXMvZnVuY3Rpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLGdCQUFnQjtJQUUzQixnQkFBZ0IsQ0FBQztJQUdqQixRQUFRLENBQUUsSUFBSTtRQUNiLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3pCLElBQUksTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUE7UUFDNUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2pCLENBQUM7SUFFRCxPQUFPLENBQUUsSUFBSTtRQUNYLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMzQixJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUN4QyxJQUFJLEdBQUcsR0FBSSxHQUFHLEdBQUcsZ0JBQWdCLENBQUE7UUFDakMsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDekMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUUsSUFBSTtRQUNWLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtRQUNoRSxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsc0JBQXNCLENB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L2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGdW5jdGlvbnNTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG5cbiAgZGF0ZUZvcm0gKGRhdGUpIHtcbiAgIGxldCBkYXRhID0gbmV3IERhdGUoZGF0ZSlcbiAgIGxldCBjaGFuZ2UgPSBgJHtkYXRhLmdldEZ1bGxZZWFyKCl9LyR7ZGF0YS5nZXRNb250aCgpICsgMX0vJHtkYXRhLmdldERhdGUoKX1gXG4gICAgcmV0dXJuIChjaGFuZ2UpXG4gIH1cblxuICBkYXRlSXNvIChkYXRlKSB7XG4gICAgbGV0IGRhdGEgPSBkYXRlLnRvU3RyaW5nKCk7XG4gICAgbGV0IGN1dCA9IGRhdGEucmVwbGFjZSgvKC4qKVxcVC4qLywgJyQxJylcbiAgICBsZXQgYWRkICA9IGAke2N1dH1UMDU6MDA6MDAuMDAwWmBcbiAgICBsZXQgZmVjaGEgPSBhZGQucmVwbGFjZSgvKC4qKVxcVC4qLywgJyQxJylcbiAgICByZXR1cm4gKGZlY2hhKVxuICB9XG5cbiAgZGF0ZURCIChkYXRlKSB7XG4gICAgbGV0IGRheSA9IHRoaXMudmFsaWRhdGVUd29EaWdpdEZvcm1hdChkYXRlLmdldERhdGUoKS50b1N0cmluZygpKVxuICAgIGxldCBtb250aCA9IHRoaXMudmFsaWRhdGVUd29EaWdpdEZvcm1hdCgoZGF0ZS5nZXRNb250aCgpKzEpLnRvU3RyaW5nKCkpXG4gICAgcmV0dXJuIGAke2RhdGUuZ2V0RnVsbFllYXIoKX0tJHttb250aH0tJHtkYXl9YFxuICB9XG5cbiAgZGF0ZVdpdGhUaW1lKGRhdGU6c3RyaW5nKTpzdHJpbmd7XG4gICAgaWYoIWRhdGUpIHJldHVybiBcIlwiXG4gICAgdmFyIHZhbHVlID0gZGF0ZS5zcGxpdChcIlRcIilcbiAgICByZXR1cm4gIHZhbHVlWzBdICsgXCIgXCIgKyB2YWx1ZVsxXS5zcGxpdChcIi5cIilbMF1cbiAgfVxuXG4gIGFyZU9iamVjdHNFcXVhbChvYmoxOiBhbnksIG9iajI6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShvYmoxKSA9PT0gSlNPTi5zdHJpbmdpZnkob2JqMik7XG4gIH1cblxuICByZW1vdmVEdXBsaWNhdGVPYmplY3RzKG9yaWdpbmFsQXJyYXk6IGFueVtdKTogYW55W10ge1xuICAgIGNvbnN0IHVuaXF1ZUFycmF5OiBhbnlbXSA9IFtdO1xuICAgIG9yaWdpbmFsQXJyYXkuZm9yRWFjaCgob2JqKSA9PiB7XG4gICAgICBpZiAoIXVuaXF1ZUFycmF5LnNvbWUoKHVuaXF1ZU9iaikgPT4gdGhpcy5hcmVPYmplY3RzRXF1YWwob2JqLCB1bmlxdWVPYmopKSkge1xuICAgICAgICB1bmlxdWVBcnJheS5wdXNoKG9iaik7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdW5pcXVlQXJyYXk7XG4gIH1cblxuICB0cmFuc2Zvcm1EYXRlKGRhdGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFkYXRlKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGNvbnN0IGRhdGVPYmogPSBuZXcgRGF0ZShkYXRlKTtcbiAgICBjb25zdCBkYXkgPSB0aGlzLnZhbGlkYXRlVHdvRGlnaXRGb3JtYXQoZGF0ZU9iai5nZXREYXRlKCkudG9TdHJpbmcoKSk7XG4gICAgY29uc3QgbW9udGggPSB0aGlzLnZhbGlkYXRlVHdvRGlnaXRGb3JtYXQoKGRhdGVPYmouZ2V0TW9udGgoKSArIDEpLnRvU3RyaW5nKCkpO1xuICAgIGNvbnN0IHllYXIgPSBkYXRlT2JqLmdldEZ1bGxZZWFyKCk7XG4gICAgcmV0dXJuIGAke2RheX0vJHttb250aH0vJHt5ZWFyfWA7XG4gIH1cblxuICBmb3JtYXROdW1iZXIodmFsdWU6IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiAnJCAwJztcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBJbnRsLk51bWJlckZvcm1hdCgnZXMtQ08nLCB7XG4gICAgICBzdHlsZTogJ2N1cnJlbmN5JyxcbiAgICAgIGN1cnJlbmN5OiAnQ09QJyxcbiAgICAgIG1pbmltdW1GcmFjdGlvbkRpZ2l0czogMCxcbiAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogMCxcbiAgICB9KS5mb3JtYXQodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVR3b0RpZ2l0Rm9ybWF0KG51bWJlcjogc3RyaW5nKTpzdHJpbmd7XG4gICAgaWYobnVtYmVyLmxlbmd0aCA9PSAxKSBudW1iZXIgPSBcIjBcIiArIG51bWJlclxuICAgIHJldHVybiBudW1iZXJcbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,93 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { TemplateFuelComponent } from '../brainloper-ui/components/report/template-fuel/template-fuel.component';
3
+ import { TemplateOtComponent } from '../brainloper-ui/components/report/template-ot/template-ot.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/material/dialog";
6
+ import * as i2 from "./work-order-pdf.service";
7
+ import * as i3 from "./fuel-order-pdf.service";
8
+ import * as i4 from "./purchase-order-pdf.service";
9
+ export class GeneratePdfService {
10
+ dialog;
11
+ workOrderPdfService;
12
+ FuelOrderPdfService;
13
+ purchaseOrderPdfService;
14
+ constructor(dialog, workOrderPdfService, FuelOrderPdfService, purchaseOrderPdfService) {
15
+ this.dialog = dialog;
16
+ this.workOrderPdfService = workOrderPdfService;
17
+ this.FuelOrderPdfService = FuelOrderPdfService;
18
+ this.purchaseOrderPdfService = purchaseOrderPdfService;
19
+ }
20
+ getPdfOt(data, autoGenerateData) {
21
+ let autoGenerate = false;
22
+ if (autoGenerateData) {
23
+ autoGenerate = autoGenerateData;
24
+ }
25
+ return new Promise((resolve, rejects) => {
26
+ let screen = "850px";
27
+ // if ( window.screen.width<1000) {
28
+ // screen = "100vw"
29
+ // }
30
+ this.dialog.open(TemplateOtComponent, {
31
+ data: {
32
+ data,
33
+ autoGenerate: autoGenerate
34
+ },
35
+ width: screen
36
+ }).afterClosed().subscribe((res) => {
37
+ return resolve(true);
38
+ });
39
+ });
40
+ }
41
+ getPdfFo(data, autoGenerateData) {
42
+ let autoGenerate = false;
43
+ if (autoGenerateData) {
44
+ autoGenerate = autoGenerateData;
45
+ }
46
+ return new Promise((resolve, rejects) => {
47
+ let screen = "850px";
48
+ this.dialog.open(TemplateFuelComponent, {
49
+ data: {
50
+ data,
51
+ autoGenerate: autoGenerate
52
+ },
53
+ width: screen
54
+ }).afterClosed().subscribe((res) => {
55
+ return resolve(true);
56
+ });
57
+ });
58
+ }
59
+ getPdfFoV2(data) {
60
+ return new Promise((resolve, reject) => {
61
+ this.FuelOrderPdfService.generateFuelOrderProfesionalPDF(data)
62
+ .then(() => resolve(true))
63
+ .catch(error => reject(error));
64
+ });
65
+ }
66
+ getPdfOtV2(data) {
67
+ return new Promise((resolve, reject) => {
68
+ this.workOrderPdfService.generateWorkOrderPDF(data)
69
+ .then(() => resolve(true))
70
+ .catch(error => reject(error));
71
+ });
72
+ }
73
+ generatePurchaseOrderPDF(order) {
74
+ return new Promise((resolve, reject) => {
75
+ this.purchaseOrderPdfService.generatePurchaseOrderPDF(order, { download: false })
76
+ .then((doc) => {
77
+ const blobUrl = doc.output('bloburl');
78
+ window.open(blobUrl, '_blank');
79
+ resolve(true);
80
+ })
81
+ .catch(error => reject(error));
82
+ });
83
+ }
84
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GeneratePdfService, deps: [{ token: i1.MatDialog }, { token: i2.WorkOrderPdfService }, { token: i3.FuelOrderPdfService }, { token: i4.PurchaseOrderPdfService }], target: i0.ɵɵFactoryTarget.Injectable });
85
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GeneratePdfService, providedIn: 'root' });
86
+ }
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GeneratePdfService, decorators: [{
88
+ type: Injectable,
89
+ args: [{
90
+ providedIn: 'root'
91
+ }]
92
+ }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.WorkOrderPdfService }, { type: i3.FuelOrderPdfService }, { type: i4.PurchaseOrderPdfService }]; } });
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtcGRmLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvc2VydmljZXMvZ2VuZXJhdGUtcGRmLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUtqSCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQzs7Ozs7O0FBTTNHLE1BQU0sT0FBTyxrQkFBa0I7SUFHbkI7SUFDQTtJQUNBO0lBQ0E7SUFKVixZQUNVLE1BQWlCLEVBQ2pCLG1CQUF3QyxFQUN4QyxtQkFBd0MsRUFDeEMsdUJBQWlEO1FBSGpELFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBMEI7SUFDdkQsQ0FBQztJQUVMLFFBQVEsQ0FBQyxJQUFtQixFQUFFLGdCQUEwQjtRQUN0RCxJQUFJLFlBQVksR0FBRyxLQUFLLENBQUE7UUFDeEIsSUFBSSxnQkFBZ0IsRUFBRTtZQUNwQixZQUFZLEdBQUcsZ0JBQWdCLENBQUE7U0FDaEM7UUFFRCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ3RDLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQTtZQUNwQixtQ0FBbUM7WUFDbkMscUJBQXFCO1lBQ3JCLElBQUk7WUFFSixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtnQkFDcEMsSUFBSSxFQUFFO29CQUNKLElBQUk7b0JBQ0osWUFBWSxFQUFFLFlBQVk7aUJBQzNCO2dCQUNELEtBQUssRUFBRSxNQUFN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ZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgVGVtcGxhdGVGdWVsQ29tcG9uZW50IH0gZnJvbSAnLi4vYnJhaW5sb3Blci11aS9jb21wb25lbnRzL3JlcG9ydC90ZW1wbGF0ZS1mdWVsL3RlbXBsYXRlLWZ1ZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFRlbXBsYXRlUGRmT3QgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3JlcG9ydC90ZW1wbGF0ZS1wZGYtb3QnO1xuaW1wb3J0IHsgVGVtcGxhdGVQZGZGbyB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0L3RlbXBsYXRlLXBmZC1mbyc7XG5pbXBvcnQgeyBXb3JrT3JkZXJQZGZTZXJ2aWNlIH0gZnJvbSAnLi93b3JrLW9yZGVyLXBkZi5zZXJ2aWNlJztcbmltcG9ydCB7IEZ1ZWxPcmRlclBkZlNlcnZpY2UgfSBmcm9tICcuL2Z1ZWwtb3JkZXItcGRmLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGVtcGxhdGVPdENvbXBvbmVudCB9IGZyb20gJy4uL2JyYWlubG9wZXItdWkvY29tcG9uZW50cy9yZXBvcnQvdGVtcGxhdGUtb3QvdGVtcGxhdGUtb3QuY29tcG9uZW50JztcbmltcG9ydCB7IFB1cmNoYXNlT3JkZXJQZGZTZXJ2aWNlIH0gZnJvbSAnLi9wdXJjaGFzZS1vcmRlci1wZGYuc2VydmljZSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBkZlB1cmNoYXNlT3JkZXIgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3JlcG9ydC90ZW1wbGF0ZS1wZGYtcHVyY2hhc2Utb3JkZXInO1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgR2VuZXJhdGVQZGZTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgd29ya09yZGVyUGRmU2VydmljZTogV29ya09yZGVyUGRmU2VydmljZSxcbiAgICBwcml2YXRlIEZ1ZWxPcmRlclBkZlNlcnZpY2U6IEZ1ZWxPcmRlclBkZlNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwdXJjaGFzZU9yZGVyUGRmU2VydmljZSA6IFB1cmNoYXNlT3JkZXJQZGZTZXJ2aWNlXG4gICkgeyB9XG5cbiAgZ2V0UGRmT3QoZGF0YTogVGVtcGxhdGVQZGZPdCwgYXV0b0dlbmVyYXRlRGF0YT86IGJvb2xlYW4pIHtcbiAgICBsZXQgYXV0b0dlbmVyYXRlID0gZmFsc2VcbiAgICBpZiAoYXV0b0dlbmVyYXRlRGF0YSkge1xuICAgICAgYXV0b0dlbmVyYXRlID0gYXV0b0dlbmVyYXRlRGF0YVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0cykgPT4ge1xuICAgICAgbGV0IHNjcmVlbiA9IFwiODUwcHhcIlxuICAgICAgLy8gaWYgKCB3aW5kb3cuc2NyZWVuLndpZHRoPDEwMDApIHtcbiAgICAgIC8vICAgc2NyZWVuID0gXCIxMDB2d1wiXG4gICAgICAvLyB9XG5cbiAgICAgIHRoaXMuZGlhbG9nLm9wZW4oVGVtcGxhdGVPdENvbXBvbmVudCwge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBhdXRvR2VuZXJhdGU6IGF1dG9HZW5lcmF0ZVxuICAgICAgICB9LFxuICAgICAgICB3aWR0aDogc2NyZWVuXG4gICAgICB9KS5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgIHJldHVybiByZXNvbHZlKHRydWUpXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICBnZXRQZGZGbyhkYXRhOiBUZW1wbGF0ZVBkZkZvLCBhdXRvR2VuZXJhdGVEYXRhPzogYm9vbGVhbikge1xuICAgIGxldCBhdXRvR2VuZXJhdGUgPSBmYWxzZVxuICAgIGlmIChhdXRvR2VuZXJhdGVEYXRhKSB7XG4gICAgICBhdXRvR2VuZXJhdGUgPSBhdXRvR2VuZXJhdGVEYXRhXG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3RzKSA9PiB7XG4gICAgICBsZXQgc2NyZWVuID0gXCI4NTBweFwiXG5cbiAgICAgIHRoaXMuZGlhbG9nLm9wZW4oVGVtcGxhdGVGdWVsQ29tcG9uZW50LCB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIGF1dG9HZW5lcmF0ZTogYXV0b0dlbmVyYXRlXG4gICAgICAgIH0sXG4gICAgICAgIHdpZHRoOiBzY3JlZW5cbiAgICAgIH0pLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmUodHJ1ZSlcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIGdldFBkZkZvVjIoZGF0YTogVGVtcGxhdGVQZGZGbyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIHRoaXMuRnVlbE9yZGVyUGRmU2VydmljZS5nZW5lcmF0ZUZ1ZWxPcmRlclByb2Zlc2lvbmFsUERGKGRhdGEpXG4gICAgICAgICAgLnRoZW4oKCkgPT4gcmVzb2x2ZSh0cnVlKSlcbiAgICAgICAgICAuY2F0Y2goZXJyb3IgPT4gcmVqZWN0KGVycm9yKSk7XG4gICAgfSk7XG4gIH1cblxuICBnZXRQZGZPdFYyKGRhdGE6IFRlbXBsYXRlUGRmT3QpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICB0aGlzLndvcmtPcmRlclBkZlNlcnZpY2UuZ2VuZXJhdGVXb3JrT3JkZXJQREYoZGF0YSlcbiAgICAgICAgICAudGhlbigoKSA9PiByZXNvbHZlKHRydWUpKVxuICAgICAgICAgIC5jYXRjaChlcnJvciA9PiByZWplY3QoZXJyb3IpKTtcblxuICAgIH0pO1xuICB9XG5cbiAgZ2VuZXJhdGVQdXJjaGFzZU9yZGVyUERGKG9yZGVyOiBUZW1wbGF0ZVBkZlB1cmNoYXNlT3JkZXIpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgdGhpcy5wdXJjaGFzZU9yZGVyUGRmU2VydmljZS5nZW5lcmF0ZVB1cmNoYXNlT3JkZXJQREYob3JkZXIsIHsgZG93bmxvYWQ6IGZhbHNlIH0pXG4gICAgICAgICAgLnRoZW4oKGRvYykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJsb2JVcmwgPSBkb2Mub3V0cHV0KCdibG9idXJsJyk7XG4gICAgICAgICAgICAgICAgd2luZG93Lm9wZW4oYmxvYlVybCwgJ19ibGFuaycpO1xuICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKVxuICAgICAgICAgIH1cbiAgICAgICAgICApXG4gICAgICAgICAgLmNhdGNoKGVycm9yID0+IHJlamVjdChlcnJvcikpO1xuXG4gICAgfSk7XG4gIH1cblxuXG59XG4iXX0=
@@ -0,0 +1,142 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { HttpParams } from '@angular/common/http';
3
+ import { HttpResponseType } from '../interfaces/enum/httpResponseType';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common/http";
6
+ import * as i2 from "./message.service";
7
+ export class HttpService {
8
+ http;
9
+ message;
10
+ constructor(http, message) {
11
+ this.http = http;
12
+ this.message = message;
13
+ }
14
+ createParams(params) {
15
+ let data = new HttpParams();
16
+ if (params) {
17
+ params.forEach(element => {
18
+ data = data.append(`${element.id}`, `${element.value}`);
19
+ });
20
+ }
21
+ return data;
22
+ }
23
+ createOptionsWithResponseType(params, withCredentials = false, responseType = HttpResponseType.JSON) {
24
+ const options = {
25
+ params: this.createParams(params),
26
+ withCredentials
27
+ };
28
+ if (responseType !== HttpResponseType.JSON) {
29
+ options.responseType = responseType;
30
+ }
31
+ return options;
32
+ }
33
+ getData(url, params, withCredentials = false) {
34
+ return this.http.get(url, { params: this.createParams(params), withCredentials });
35
+ }
36
+ postData(url, body, params, withCredentials = false) {
37
+ return this.http.post(url, body, { params: this.createParams(params), withCredentials });
38
+ }
39
+ putData(url, body, params, withCredentials = false) {
40
+ return this.http.put(url, body, { params: this.createParams(params), withCredentials });
41
+ }
42
+ deleteData(url, params, withCredentials = false) {
43
+ return this.http.delete(url, { params: this.createParams(params), withCredentials });
44
+ }
45
+ getDataPromise(url, params, withCredentials = false) {
46
+ return new Promise((resolve, reject) => {
47
+ this.getData(url, params, withCredentials).subscribe(res => resolve(res), err => reject(err));
48
+ });
49
+ }
50
+ postDataPromise(url, body, params, withCredentials = false) {
51
+ return new Promise((resolve, reject) => {
52
+ this.postData(url, body, params, withCredentials).subscribe(res => resolve(res), err => reject(err));
53
+ });
54
+ }
55
+ putDataPromise(url, body, params, withCredentials = false) {
56
+ return new Promise((resolve, reject) => {
57
+ this.putData(url, body, params, withCredentials).subscribe(res => resolve(res), err => reject(err));
58
+ });
59
+ }
60
+ deleteDataPromise(url, params, withCredentials = false) {
61
+ return new Promise((resolve, reject) => {
62
+ this.deleteData(url, params, withCredentials).subscribe(res => resolve(res), err => reject(err));
63
+ });
64
+ }
65
+ getDataBody(url, params, withCredentials = false) {
66
+ return new Promise((resolve, reject) => {
67
+ this.http.get(url, { params: this.createParams(params), withCredentials }).subscribe(res => {
68
+ if (res['code'] === 0 && res['body']) {
69
+ resolve(res['body']);
70
+ }
71
+ else {
72
+ resolve(null);
73
+ this.message.Error("Error", res['message']);
74
+ }
75
+ }, err => reject(err));
76
+ });
77
+ }
78
+ postDataBody(url, body, params, withCredentials = false) {
79
+ return new Promise((resolve, reject) => {
80
+ this.http.post(url, body, { params: this.createParams(params), withCredentials }).subscribe(res => {
81
+ if (res['code'] === 0 && res['body']) {
82
+ resolve(res['body']);
83
+ }
84
+ else {
85
+ resolve(null);
86
+ this.message.Error("Error", res['message']);
87
+ }
88
+ }, err => reject(err));
89
+ });
90
+ }
91
+ putDataBody(url, body, params, withCredentials = false) {
92
+ return new Promise((resolve, reject) => {
93
+ this.http.put(url, body, { params: this.createParams(params), withCredentials }).subscribe(res => {
94
+ if (res['code'] === 0 && res['body']) {
95
+ resolve(res['body']);
96
+ }
97
+ else {
98
+ resolve(null);
99
+ this.message.Error("Error", res['message']);
100
+ }
101
+ }, err => reject(err));
102
+ });
103
+ }
104
+ getDataWithResponseType(url, params, withCredentials = false, responseType = HttpResponseType.JSON) {
105
+ return this.http.get(url, this.createOptionsWithResponseType(params, withCredentials, responseType));
106
+ }
107
+ postDataWithResponseType(url, body, params, withCredentials = false, responseType = HttpResponseType.JSON) {
108
+ return this.http.post(url, body, this.createOptionsWithResponseType(params, withCredentials, responseType));
109
+ }
110
+ putDataWithResponseType(url, body, params, withCredentials = false, responseType = HttpResponseType.JSON) {
111
+ return this.http.put(url, body, this.createOptionsWithResponseType(params, withCredentials, responseType));
112
+ }
113
+ deleteDataWithResponseType(url, params, withCredentials = false, responseType = HttpResponseType.JSON) {
114
+ return this.http.delete(url, this.createOptionsWithResponseType(params, withCredentials, responseType));
115
+ }
116
+ getDataPromiseWithResponseType(url, params, withCredentials = false, responseType = HttpResponseType.JSON) {
117
+ return new Promise((resolve, reject) => {
118
+ this.getDataWithResponseType(url, params, withCredentials, responseType).subscribe(res => resolve(res), err => reject(err));
119
+ });
120
+ }
121
+ postDataPromiseWithResponseType(url, body, params, withCredentials = false, responseType = HttpResponseType.JSON) {
122
+ return new Promise((resolve, reject) => {
123
+ this.postDataWithResponseType(url, body, params, withCredentials, responseType).subscribe(res => resolve(res), err => reject(err));
124
+ });
125
+ }
126
+ putDataPromiseWithResponseType(url, body, params, withCredentials = false, responseType = HttpResponseType.JSON) {
127
+ return new Promise((resolve, reject) => {
128
+ this.putDataWithResponseType(url, body, params, withCredentials, responseType).subscribe(res => resolve(res), err => reject(err));
129
+ });
130
+ }
131
+ deleteDataPromiseWithResponseType(url, params, withCredentials = false, responseType = HttpResponseType.JSON) {
132
+ return new Promise((resolve, reject) => {
133
+ this.deleteDataWithResponseType(url, params, withCredentials, responseType).subscribe(res => resolve(res), err => reject(err));
134
+ });
135
+ }
136
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpService, deps: [{ token: i1.HttpClient }, { token: i2.MessageService }], target: i0.ɵɵFactoryTarget.Injectable });
137
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpService });
138
+ }
139
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpService, decorators: [{
140
+ type: Injectable
141
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.MessageService }]; } });
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL3NlcnZpY2VzL2h0dHAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7OztBQUd2RSxNQUFNLE9BQU8sV0FBVztJQUdaO0lBQ0E7SUFGVixZQUNVLElBQWdCLEVBQ2hCLE9BQXVCO1FBRHZCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7SUFDN0IsQ0FBQztJQUVHLFlBQVksQ0FBQyxNQUFZO1FBQy9CLElBQUksSUFBSSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDNUIsSUFBSSxNQUFNLEVBQUU7WUFDVixNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUN2QixJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQzFELENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyw2QkFBNkIsQ0FBQyxNQUFPLEVBQUUsa0JBQTJCLEtBQUssRUFBRSxlQUFpQyxnQkFBZ0IsQ0FBQyxJQUFJO1FBQ3JJLE1BQU0sT0FBTyxHQUFRO1lBQ25CLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztZQUNqQyxlQUFlO1NBQ2hCLENBQUM7UUFFRixJQUFJLFlBQVksS0FBSyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUU7WUFDMUMsT0FBTyxDQUFDLFlB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O0lBQ0wsQ0FBQztJQUVELDhCQUE4QixDQUFVLEdBQVcsRUFBRSxJQUFTLEVBQUUsTUFBTyxFQUFFLGtCQUEyQixLQUFLLEVBQUUsZUFBaUMsZ0JBQWdCLENBQUMsSUFBSTtRQUMvSixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsWUFBWSxDQUFDLENBQUMsU0FBUyxDQUN0RixHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFRLENBQUMsRUFDeEIsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQ25CLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxpQ0FBaUMsQ0FBVSxHQUFXLEVBQUUsTUFBTyxFQUFFLGtCQUEyQixLQUFLLEVBQUUsZUFBaUMsZ0JBQWdCLENBQUMsSUFBSTtRQUN2SixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxZQUFZLENBQUMsQ0FBQyxTQUFTLENBQ25GLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQVEsQ0FBQyxFQUN4QixHQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FDbkIsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt3R0FwTFUsV0FBVzs0R0FBWCxXQUFXOzs0RkFBWCxXQUFXO2tCQUR2QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuL21lc3NhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSHR0cFJlc3BvbnNlVHlwZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvZW51bS9odHRwUmVzcG9uc2VUeXBlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEh0dHBTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBtZXNzYWdlOiBNZXNzYWdlU2VydmljZVxuICApIHsgfVxuXG4gIHByaXZhdGUgY3JlYXRlUGFyYW1zKHBhcmFtcz86IGFueSk6IEh0dHBQYXJhbXMge1xuICAgIGxldCBkYXRhID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICBpZiAocGFyYW1zKSB7XG4gICAgICBwYXJhbXMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgZGF0YSA9IGRhdGEuYXBwZW5kKGAke2VsZW1lbnQuaWR9YCwgYCR7ZWxlbWVudC52YWx1ZX1gKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlT3B0aW9uc1dpdGhSZXNwb25zZVR5cGUocGFyYW1zPywgd2l0aENyZWRlbnRpYWxzOiBib29sZWFuID0gZmFsc2UsIHJlc3BvbnNlVHlwZTogSHR0cFJlc3BvbnNlVHlwZSA9IEh0dHBSZXNwb25zZVR5cGUuSlNPTikge1xuICAgIGNvbnN0IG9wdGlvbnM6IGFueSA9IHsgXG4gICAgICBwYXJhbXM6IHRoaXMuY3JlYXRlUGFyYW1zKHBhcmFtcyksIFxuICAgICAgd2l0aENyZWRlbnRpYWxzIFxuICAgIH07XG4gICAgXG4gICAgaWYgKHJlc3BvbnNlVHlwZSAhPT0gSHR0cFJlc3BvbnNlVHlwZS5KU09OKSB7XG4gICAgICBvcHRpb25zLnJlc3BvbnNlVHlwZSA9IHJlc3BvbnNlVHlwZTtcbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cblxuICBnZXREYXRhKHVybDogc3RyaW5nLCBwYXJhbXM/LCB3aXRoQ3JlZGVudGlhbHM6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCwgeyBwYXJhbXM6IHRoaXMuY3JlYXRlUGFyYW1zKHBhcmFtcyksIHdpdGhDcmVkZW50aWFscyB9KTtcbiAgfVxuXG4gIHBvc3REYXRhKHVybDogc3RyaW5nLCBib2R5OiBhbnksIHBhcmFtcz8sIHdpdGhDcmVkZW50aWFsczogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHVybCwgYm9keSwgeyBwYXJhbXM6IHRoaXMuY3JlYXRlUGFyYW1zKHBhcmFtcyksIHdpdGhDcmVkZW50aWFscyB9KTtcbiAgfVxuXG4gIHB1dERhdGEodXJsOiBzdHJpbmcsIGJvZHk6IGFueSwgcGFyYW1zPywgd2l0aENyZWRlbnRpYWxzOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dCh1cmwsIGJvZHksIHsgcGFyYW1zOiB0aGlzLmNyZWF0ZVBhcmFtcyhwYXJhbXMpLCB3aXRoQ3JlZGVudGlhbHMgfSk7XG4gIH1cblxuICBkZWxldGVEYXRhKHVybDogc3RyaW5nLCBwYXJhbXM/LCB3aXRoQ3JlZGVudGlhbHM6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKHVybCwgeyBwYXJhbXM6IHRoaXMuY3JlYXRlUGFyYW1zKHBhcmFtcyksIHdpdGhDcmVkZW50aWFscyB9KTtcbiAgfVxuXG4gIGdldERhdGFQcm9taXNlKHVybDogc3RyaW5nLCBwYXJhbXM/LCB3aXRoQ3JlZGVudGlhbHM6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLmdldERhdGEodXJsLCBwYXJhbXMsIHdpdGhDcmVkZW50aWFscykuc3Vic2NyaWJlKFxuICAgICAgICByZXMgPT4gcmVzb2x2ZShyZXMpLFxuICAgICAgICBlcnIgPT4gcmVqZWN0KGVycilcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwb3N0RGF0YVByb21pc2UodXJsOiBzdHJpbmcsIGJvZHk6IGFueSwgcGFyYW1zPywgd2l0aENyZWRlbnRpYWxzOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5wb3N0RGF0YSh1cmwsIGJvZHksIHBhcmFtcywgd2l0aENyZWRlbnRpYWxzKS5zdWJzY3JpYmUoXG4gICAgICAgIHJlcyA9PiByZXNvbHZlKHJlcyksXG4gICAgICAgIGVyciA9PiByZWplY3QoZXJyKVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1dERhdGFQcm9taXNlKHVybDogc3RyaW5nLCBib2R5OiBhbnksIHBhcmFtcz8sIHdpdGhDcmVkZW50aWFsczogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMucHV0RGF0YSh1cmwsIGJvZHksIHBhcmFtcywgd2l0aENyZWRlbnRpYWxzKS5zdWJzY3JpYmUoXG4gICAgICAgIHJlcyA9PiByZXNvbHZlKHJlcyksXG4gICAgICAgIGVyciA9PiByZWplY3QoZXJyKVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIGRlbGV0ZURhdGFQcm9taXNlKHVybDogc3RyaW5nLCBwYXJhbXM/LCB3aXRoQ3JlZGVudGlhbHM6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLmRlbGV0ZURhdGEodXJsLCBwYXJhbXMsIHdpdGhDcmVkZW50aWFscykuc3Vic2NyaWJlKFxuICAgICAgICByZXMgPT4gcmVzb2x2ZShyZXMpLFxuICAgICAgICBlcnIgPT4gcmVqZWN0KGVycilcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBnZXREYXRhQm9keTxUPih1cmw6IHN0cmluZywgcGFyYW1zPywgd2l0aENyZWRlbnRpYWxzOiBib29sZWFuID0gZmFsc2UpOiBQcm9taXNlPFQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5odHRwLmdldCh1cmwsIHsgcGFyYW1zOiB0aGlzLmNyZWF0ZVBhcmFtcyhwYXJhbXMpLCB3aXRoQ3JlZGVudGlhbHMgfSkuc3Vic2NyaWJlKFxuICAgICAgICByZXMgPT4ge1xuICAgICAgICAgIGlmIChyZXNbJ2NvZGUnXSA9PT0gMCAmJiByZXNbJ2JvZHknXSkge1xuICAgICAgICAgICAgcmVzb2x2ZShyZXNbJ2JvZHknXSBhcyBUKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZS5FcnJvcihcIkVycm9yXCIsIHJlc1snbWVzc2FnZSddKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGVyciA9PiByZWplY3QoZXJyKVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHBvc3REYXRhQm9keTxUPih1cmw6IHN0cmluZywgYm9keTogYW55LCBwYXJhbXM/LCB3aXRoQ3JlZGVudGlhbHM6IGJvb2xlYW4gPSBmYWxzZSk6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLmh0dHAucG9zdCh1cmwsIGJvZHksIHsgcGFyYW1zOiB0aGlzLmNyZWF0ZVBhcmFtcyhwYXJhbXMpLCB3aXRoQ3JlZGVudGlhbHMgfSkuc3Vic2NyaWJlKFxuICAgICAgICByZXMgPT4ge1xuICAgICAgICAgIGlmIChyZXNbJ2NvZGUnXSA9PT0gMCAmJiByZXNbJ2JvZHknXSkge1xuICAgICAgICAgICAgcmVzb2x2ZShyZXNbJ2JvZHknXSBhcyBUKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZS5FcnJvcihcIkVycm9yXCIsIHJlc1snbWVzc2FnZSddKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGVyciA9PiByZWplY3QoZXJyKVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1dERhdGFCb2R5PFQ+KHVybDogc3RyaW5nLCBib2R5OiBhbnksIHBhcmFtcz8sIHdpdGhDcmVkZW50aWFsczogYm9vbGVhbiA9IGZhbHNlKTogUHJvbWlzZTxUPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuaHR0cC5wdXQodXJsLCBib2R5LCB7IHBhcmFtczogdGhpcy5jcmVhdGVQYXJhbXMocGFyYW1zKSwgd2l0aENyZWRlbnRpYWxzIH0pLnN1YnNjcmliZShcbiAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICBpZiAocmVzWydjb2RlJ10gPT09IDAgJiYgcmVzWydib2R5J10pIHtcbiAgICAgICAgICAgIHJlc29sdmUocmVzWydib2R5J10gYXMgVCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2UuRXJyb3IoXCJFcnJvclwiLCByZXNbJ21lc3NhZ2UnXSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnIgPT4gcmVqZWN0KGVycilcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBnZXREYXRhV2l0aFJlc3BvbnNlVHlwZSh1cmw6IHN0cmluZywgcGFyYW1zPywgd2l0aENyZWRlbnRpYWxzOiBib29sZWFuID0gZmFsc2UsIHJlc3BvbnNlVHlwZTogSHR0cFJlc3BvbnNlVHlwZSA9IEh0dHBSZXNwb25zZVR5cGUuSlNPTikge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCwgdGhpcy5jcmVhdGVPcHRpb25zV2l0aFJlc3BvbnNlVHlwZShwYXJhbXMsIHdpdGhDcmVkZW50aWFscywgcmVzcG9uc2VUeXBlKSk7XG4gIH1cblxuICBwb3N0RGF0YVdpdGhSZXNwb25zZVR5cGUodXJsOiBzdHJpbmcsIGJvZHk6IGFueSwgcGFyYW1zPywgd2l0aENyZWRlbnRpYWxzOiBib29sZWFuID0gZmFsc2UsIHJlc3BvbnNlVHlwZTogSHR0cFJlc3BvbnNlVHlwZSA9IEh0dHBSZXNwb25zZVR5cGUuSlNPTikge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh1cmwsIGJvZHksIHRoaXMuY3JlYXRlT3B0aW9uc1dpdGhSZXNwb25zZVR5cGUocGFyYW1zLCB3aXRoQ3JlZGVudGlhbHMsIHJlc3BvbnNlVHlwZSkpO1xuICB9XG5cbiAgcHV0RGF0YVdpdGhSZXNwb25zZVR5cGUodXJsOiBzdHJpbmcsIGJvZHk6IGFueSwgcGFyYW1zPywgd2l0aENyZWRlbnRpYWxzOiBib29sZWFuID0gZmFsc2UsIHJlc3BvbnNlVHlwZTogSHR0cFJlc3BvbnNlVHlwZSA9IEh0dHBSZXNwb25zZVR5cGUuSlNPTikge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHVybCwgYm9keSwgdGhpcy5jcmVhdGVPcHRpb25zV2l0aFJlc3BvbnNlVHlwZShwYXJhbXMsIHdpdGhDcmVkZW50aWFscywgcmVzcG9uc2VUeXBlKSk7XG4gIH1cblxuICBkZWxldGVEYXRhV2l0aFJlc3BvbnNlVHlwZSh1cmw6IHN0cmluZywgcGFyYW1zPywgd2l0aENyZWRlbnRpYWxzOiBib29sZWFuID0gZmFsc2UsIHJlc3BvbnNlVHlwZTogSHR0cFJlc3BvbnNlVHlwZSA9IEh0dHBSZXNwb25zZVR5cGUuSlNPTikge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKHVybCwgdGhpcy5jcmVhdGVPcHRpb25zV2l0aFJlc3BvbnNlVHlwZShwYXJhbXMsIHdpdGhDcmVkZW50aWFscywgcmVzcG9uc2VUeXBlKSk7XG4gIH1cblxuICBnZXREYXRhUHJvbWlzZVdpdGhSZXNwb25zZVR5cGU8VCA9IGFueT4odXJsOiBzdHJpbmcsIHBhcmFtcz8sIHdpdGhDcmVkZW50aWFsczogYm9vbGVhbiA9IGZhbHNlLCByZXNwb25zZVR5cGU6IEh0dHBSZXNwb25zZVR5cGUgPSBIdHRwUmVzcG9uc2VUeXBlLkpTT04pOiBQcm9taXNlPFQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5nZXREYXRhV2l0aFJlc3BvbnNlVHlwZSh1cmwsIHBhcmFtcywgd2l0aENyZWRlbnRpYWxzLCByZXNwb25zZVR5cGUpLnN1YnNjcmliZShcbiAgICAgICAgcmVzID0+IHJlc29sdmUocmVzIGFzIFQpLFxuICAgICAgICBlcnIgPT4gcmVqZWN0KGVycilcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwb3N0RGF0YVByb21pc2VXaXRoUmVzcG9uc2VUeXBlPFQgPSBhbnk+KHVybDogc3RyaW5nLCBib2R5OiBhbnksIHBhcmFtcz8sIHdpdGhDcmVkZW50aWFsczogYm9vbGVhbiA9IGZhbHNlLCByZXNwb25zZVR5cGU6IEh0dHBSZXNwb25zZVR5cGUgPSBIdHRwUmVzcG9uc2VUeXBlLkpTT04pOiBQcm9taXNlPFQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5wb3N0RGF0YVdpdGhSZXNwb25zZVR5cGUodXJsLCBib2R5LCBwYXJhbXMsIHdpdGhDcmVkZW50aWFscywgcmVzcG9uc2VUeXBlKS5zdWJzY3JpYmUoXG4gICAgICAgIHJlcyA9PiByZXNvbHZlKHJlcyBhcyBUKSxcbiAgICAgICAgZXJyID0+IHJlamVjdChlcnIpXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHV0RGF0YVByb21pc2VXaXRoUmVzcG9uc2VUeXBlPFQgPSBhbnk+KHVybDogc3RyaW5nLCBib2R5OiBhbnksIHBhcmFtcz8sIHdpdGhDcmVkZW50aWFsczogYm9vbGVhbiA9IGZhbHNlLCByZXNwb25zZVR5cGU6IEh0dHBSZXNwb25zZVR5cGUgPSBIdHRwUmVzcG9uc2VUeXBlLkpTT04pOiBQcm9taXNlPFQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5wdXREYXRhV2l0aFJlc3BvbnNlVHlwZSh1cmwsIGJvZHksIHBhcmFtcywgd2l0aENyZWRlbnRpYWxzLCByZXNwb25zZVR5cGUpLnN1YnNjcmliZShcbiAgICAgICAgcmVzID0+IHJlc29sdmUocmVzIGFzIFQpLFxuICAgICAgICBlcnIgPT4gcmVqZWN0KGVycilcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBkZWxldGVEYXRhUHJvbWlzZVdpdGhSZXNwb25zZVR5cGU8VCA9IGFueT4odXJsOiBzdHJpbmcsIHBhcmFtcz8sIHdpdGhDcmVkZW50aWFsczogYm9vbGVhbiA9IGZhbHNlLCByZXNwb25zZVR5cGU6IEh0dHBSZXNwb25zZVR5cGUgPSBIdHRwUmVzcG9uc2VUeXBlLkpTT04pOiBQcm9taXNlPFQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5kZWxldGVEYXRhV2l0aFJlc3BvbnNlVHlwZSh1cmwsIHBhcmFtcywgd2l0aENyZWRlbnRpYWxzLCByZXNwb25zZVR5cGUpLnN1YnNjcmliZShcbiAgICAgICAgcmVzID0+IHJlc29sdmUocmVzIGFzIFQpLFxuICAgICAgICBlcnIgPT4gcmVqZWN0KGVycilcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbn0iXX0=
@@ -0,0 +1,30 @@
1
+ import { Component, Inject, ViewEncapsulation } from '@angular/core';
2
+ import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/material/dialog";
5
+ export class LoadingComponent {
6
+ dialogRef;
7
+ data;
8
+ options = {
9
+ path: '/assets/loading.json'
10
+ };
11
+ constructor(dialogRef, data) {
12
+ this.dialogRef = dialogRef;
13
+ this.data = data;
14
+ }
15
+ ngOnInit() {
16
+ }
17
+ animationCreated(animationItem) {
18
+ console.log(animationItem);
19
+ }
20
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LoadingComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
21
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LoadingComponent, selector: "app-loading", ngImport: i0, template: "<mat-dialog-content style=\"display: flex; justify-content: center; align-items: center; flex-direction: column;\">\n <div style=\"font-size: 20px;\">\n <strong>{{data.title}}</strong>\n </div>\n <div>\n <!-- <ng-lottie width='170px' [options]=\"options\" (animationCreated)=\"animationCreated($event)\"></ng-lottie> -->\n <img width=\"170px\" src=\"assets/loading.gif\" alt=\"\">\n </div>\n <div style=\"text-align: center;\">\n {{data.message}}\n </div>\n</mat-dialog-content>", styles: [".mat-dialog-container{overflow:hidden!important;background-color:#fff!important}\n"], dependencies: [{ kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }], encapsulation: i0.ViewEncapsulation.None });
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LoadingComponent, decorators: [{
24
+ type: Component,
25
+ args: [{ selector: 'app-loading', encapsulation: ViewEncapsulation.None, template: "<mat-dialog-content style=\"display: flex; justify-content: center; align-items: center; flex-direction: column;\">\n <div style=\"font-size: 20px;\">\n <strong>{{data.title}}</strong>\n </div>\n <div>\n <!-- <ng-lottie width='170px' [options]=\"options\" (animationCreated)=\"animationCreated($event)\"></ng-lottie> -->\n <img width=\"170px\" src=\"assets/loading.gif\" alt=\"\">\n </div>\n <div style=\"text-align: center;\">\n {{data.message}}\n </div>\n</mat-dialog-content>", styles: [".mat-dialog-container{overflow:hidden!important;background-color:#fff!important}\n"] }]
26
+ }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
27
+ type: Inject,
28
+ args: [MAT_DIALOG_DATA]
29
+ }] }]; } });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvc2VydmljZXMvbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zZXJ2aWNlcy9sb2FkaW5nL2xvYWRpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQUcsTUFBTSxlQUFlLENBQUM7QUFHOUUsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBU3pFLE1BQU0sT0FBTyxnQkFBZ0I7SUFPbEI7SUFDeUI7SUFObEMsT0FBTyxHQUFxQjtRQUMxQixJQUFJLEVBQUUsc0JBQXNCO0tBQzdCLENBQUM7SUFFRixZQUNTLFNBQXlDLEVBQ2hCLElBQUk7UUFEN0IsY0FBUyxHQUFULFNBQVMsQ0FBZ0M7UUFDaEIsU0FBSSxHQUFKLElBQUksQ0FBQTtJQUNsQyxDQUFDO0lBRUwsUUFBUTtJQUVSLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxhQUE0QjtRQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzdCLENBQUM7d0dBakJVLGdCQUFnQiw4Q0FRakIsZUFBZTs0RkFSZCxnQkFBZ0IsbURDWjdCLGtmQVdxQjs7NEZEQ1IsZ0JBQWdCO2tCQU41QixTQUFTOytCQUNFLGFBQWEsaUJBR1IsaUJBQWlCLENBQUMsSUFBSTs7MEJBVWxDLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbmplY3QsIFZpZXdFbmNhcHN1bGF0aW9uICB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQW5pbWF0aW9uSXRlbSB9IGZyb20gJ2xvdHRpZS13ZWInO1xuaW1wb3J0IHsgQW5pbWF0aW9uT3B0aW9ucyB9IGZyb20gJ25neC1sb3R0aWUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1sb2FkaW5nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xvYWRpbmcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sb2FkaW5nLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgTG9hZGluZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgb3B0aW9uczogQW5pbWF0aW9uT3B0aW9ucyA9IHtcbiAgICBwYXRoOiAnL2Fzc2V0cy9sb2FkaW5nLmpzb24nXG4gIH07XG4gXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxMb2FkaW5nQ29tcG9uZW50PixcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGFcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcblxuICB9XG5cbiAgYW5pbWF0aW9uQ3JlYXRlZChhbmltYXRpb25JdGVtOiBBbmltYXRpb25JdGVtKTogdm9pZCB7XG4gICAgY29uc29sZS5sb2coYW5pbWF0aW9uSXRlbSk7XG4gIH1cblxuICBcblxufVxuIiwiPG1hdC1kaWFsb2ctY29udGVudCBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBhbGlnbi1pdGVtczogY2VudGVyOyBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1wiPlxuICA8ZGl2IHN0eWxlPVwiZm9udC1zaXplOiAyMHB4O1wiPlxuICAgIDxzdHJvbmc+e3tkYXRhLnRpdGxlfX08L3N0cm9uZz5cbiAgPC9kaXY+XG4gIDxkaXY+XG4gICAgPCEtLSA8bmctbG90dGllIHdpZHRoPScxNzBweCcgW29wdGlvbnNdPVwib3B0aW9uc1wiIChhbmltYXRpb25DcmVhdGVkKT1cImFuaW1hdGlvbkNyZWF0ZWQoJGV2ZW50KVwiPjwvbmctbG90dGllPiAtLT5cbiAgICA8aW1nIHdpZHRoPVwiMTcwcHhcIiBzcmM9XCJhc3NldHMvbG9hZGluZy5naWZcIiBhbHQ9XCJcIj5cbiAgPC9kaXY+XG4gIDxkaXYgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+XG4gICAge3tkYXRhLm1lc3NhZ2V9fVxuICA8L2Rpdj5cbjwvbWF0LWRpYWxvZy1jb250ZW50PiJdfQ==