gamma-app-controller 3.0.1 → 3.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/esm2020/lib/application-controller/application-dataset-component/create-dataset/create-dataset.component.mjs +2 -2
  2. package/esm2020/lib/application-controller/application-view-components/create-comp-view/create-comp-view.component.mjs +8 -3
  3. package/esm2020/lib/application-controller/page-controller/page-config/page-config.component.mjs +3 -28
  4. package/esm2020/lib/application-controller/support-components/dash-chart/dash-chart.component.mjs +23 -3
  5. package/esm2020/lib/application-controller/support-components/dash-table/dash-table.component.mjs +17 -4
  6. package/esm2020/lib/application-controller/support-components/dash-today-previous/dash-today-previous.component.mjs +3 -3
  7. package/esm2020/lib/application-controller/support-components/geo-map/geo-map.component.mjs +4 -3
  8. package/esm2020/lib/application-controller/support-components/heat-map/heat-map.component.mjs +23 -3
  9. package/esm2020/lib/application-controller/support-components/table-with-bar/table-with-bar.component.mjs +24 -3
  10. package/esm2020/lib/shared/advanced-component/gamma-advance-chart/gamma-advance-chart.component.mjs +14 -1
  11. package/esm2020/lib/shared/advanced-component/gamma-advance-operator-table/gamma-advance-operator-table.component.mjs +15 -3
  12. package/esm2020/lib/shared/advanced-component/gamma-geo-chart/gamma-geo-chart.component.mjs +3 -3
  13. package/esm2020/lib/shared/advanced-component/gamma-table-with-percentage/gamma-table-with-percentage.component.mjs +2 -1
  14. package/esm2020/lib/shared/template-dataset-call-service.mjs +10 -3
  15. package/esm2020/lib/template-module/KpiCreationModule/create-kpi-tree.component.mjs +2 -1
  16. package/esm2020/lib/template-module/kpiWithMultiLayout/kpi-with-multilayout.component.mjs +2 -2
  17. package/esm2020/lib/template-module/kpiWithSingleLayout/kpi-with-dataset.component.mjs +72 -9
  18. package/fesm2015/gamma-app-controller.mjs +6082 -5928
  19. package/fesm2015/gamma-app-controller.mjs.map +1 -1
  20. package/fesm2020/gamma-app-controller.mjs +6195 -6044
  21. package/fesm2020/gamma-app-controller.mjs.map +1 -1
  22. package/lib/application-controller/support-components/dash-chart/dash-chart.component.d.ts +2 -0
  23. package/lib/application-controller/support-components/dash-table/dash-table.component.d.ts +1 -0
  24. package/lib/application-controller/support-components/heat-map/heat-map.component.d.ts +2 -0
  25. package/lib/application-controller/support-components/table-with-bar/table-with-bar.component.d.ts +2 -0
  26. package/lib/shared/advanced-component/gamma-advance-chart/gamma-advance-chart.component.d.ts +1 -0
  27. package/lib/shared/advanced-component/gamma-advance-operator-table/gamma-advance-operator-table.component.d.ts +1 -0
  28. package/lib/template-module/kpiWithSingleLayout/kpi-with-dataset.component.d.ts +3 -1
  29. package/package.json +1 -1
@@ -27,7 +27,7 @@ export class CreateDatasetComponent {
27
27
  "datasetName": "",
28
28
  "datasetType": ""
29
29
  };
30
- this.dataSetTypeContainer = [{ name: "Query Builder", value: "querybuilder" }, { name: "Service JSON", value: "mongo" },
30
+ this.dataSetTypeContainer = [{ name: "Query Builder", value: "querybuilder" },
31
31
  { name: "Rest API", value: "simpleApi" }, { name: "SQL Builder", value: "sqlQuery" }, { name: "Plain JSON", value: "plainjson" }];
32
32
  this.mongoDataset = {
33
33
  "api": "/kpi/trends/network/get-metric-data",
@@ -349,4 +349,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
349
349
  type: Input,
350
350
  args: ['selectedDatasetId']
351
351
  }] } });
352
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWRhdGFzZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2FtbWEtYXBwLWNvbnRyb2xsZXIvc3JjL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLWRhdGFzZXQtY29tcG9uZW50L2NyZWF0ZS1kYXRhc2V0L2NyZWF0ZS1kYXRhc2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dhbW1hLWFwcC1jb250cm9sbGVyL3NyYy9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi1kYXRhc2V0LWNvbXBvbmVudC9jcmVhdGUtZGF0YXNldC9jcmVhdGUtZGF0YXNldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXekQsTUFBTSxPQUFPLHNCQUFzQjtJQW9NakMsWUFDVSxPQUFrQyxFQUNsQyxNQUFxQixFQUN0QixhQUE0QixFQUMzQixNQUFjLEVBQ2QsY0FBOEI7UUFKOUIsWUFBTyxHQUFQLE9BQU8sQ0FBMkI7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUMzQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBdk14QyxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQyx1QkFBa0IsR0FBRztZQUNuQixhQUFhLEVBQUUsRUFBRTtZQUNqQixhQUFhLEVBQUUsRUFBRTtTQUNsQixDQUFDO1FBRUYseUJBQW9CLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxL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SUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztTQUM5QjthQUFNO1lBQ0wsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQ3hDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFBO2FBQzlCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO2FBQzlCO1NBQ0Y7SUFJSCxDQUFDOzttSEE3WFUsc0JBQXNCO3VHQUF0QixzQkFBc0Isb0lDWG5DLCtqRkFtRE07MkZEeENPLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxvQkFBb0I7ME5Bc0tyQixRQUFRO3NCQUFoQixLQUFLO2dCQUdGLGlCQUFpQjtzQkFEcEIsS0FBSzt1QkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uQ29udGVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9hcHBsaWNhdGlvbi1jb250ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gJ25neC10b2FzdHInO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNyZWF0ZS1kYXRhc2V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1kYXRhc2V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3JlYXRlLWRhdGFzZXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDcmVhdGVEYXRhc2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgbG9hZGluZ01vZGFsOiBib29sZWFuO1xuICBpc0R1cGxpZGF0ZVZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgY3JlYXREYXRhc2V0T2JqZWN0ID0ge1xuICAgIFwiZGF0YXNldE5hbWVcIjogXCJcIixcbiAgICBcImRhdGFzZXRUeXBlXCI6IFwiXCJcbiAgfTtcblxuICBkYXRhU2V0VHlwZUNvbnRhaW5lciA9IFt7IG5hbWU6IFwiUXVlcnkgQnVpbGRlclwiLCB2YWx1ZTogXCJxdWVyeWJ1aWxkZXJcIiB9LCB7IG5hbWU6IFwiU2VydmljZSBKU09OXCIsIHZhbHVlOiBcIm1vbmdvXCIgfSxcbiAgeyBuYW1lOiBcIlJlc3QgQVBJXCIsIHZhbHVlOiBcInNpbXBsZUFwaVwiIH0sIHsgbmFtZTogXCJTUUwgQnVpbGRlclwiLCB2YWx1ZTogXCJzcWxRdWVyeVwiIH0sIHsgbmFtZTogXCJQbGFpbiBKU09OXCIsIHZhbHVlOiBcInBsYWluanNvblwiIH1dXG4gIG1vbmdvRGF0YXNldCA9IHtcbiAgICBcImFwaVwiOiBcIi9rcGkvdHJlbmRzL25ldHdvcmsvZ2V0LW1ldHJpYy1kYXRhXCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJcIixcbiAgICBcImFwaVR5cGVcIjogXCJwb3N0XCIsXG4gICAgXCJmaWx0ZXJJdGVtc1wiOiBbXG4gICAgICB7XG4gICAgICAgIFwiYXBpTmFtZVwiOiBcInN0YXJ0RGF0ZVwiLFxuICAgICAgICBcImxhYmVsXCI6IFwiU3RhcnQgRGF0ZVwiLFxuICAgICAgICBcImZpbHRlclR5cGVcIjogXCJkYXRlXCIsXG4gICAgICAgIFwib3BlcmF0b3JOYW1lXCI6IFwiXCIsXG4gICAgICAgIFwiZGVmYXVsdEZpbHRlclR5cGVcIjogXCJkeW5hbWljXCIsXG4gICAgICAgIFwiZGVmYXVsdEZpbHRlclZhbHVlXCI6IFwiWVlZWS1NTS1ERFwiLFxuICAgICAgICBcIm1vbWVudEZ1bmN0aW9uXCI6IFwic3VidHJhY3RcIixcbiAgICAgICAgXCJtb21lbnRGb3JtYXRlXCI6IFwiMTUsZGF5c1wiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBcImFwaU5hbWVcIjogXCJlbmREYXRlXCIsXG4gICAgICAgIFwibGFiZWxcIjogXCJFbmQgRGF0ZVwiLFxuICAgICAgICBcImZpbHRlclR5cGVcIjogXCJkYXRlXCIsXG4gICAgICAgIFwib3BlcmF0b3JOYW1lXCI6IFwiXCIsXG4gICAgICAgIFwiZGVmYXVsdEZpbHRlclR5cGVcIjogXCJkeW5hbWljXCIsXG4gICAgICAgIFwiZGVmYXVsdEZpbHRlclZhbHVlXCI6IFwiWVlZWS1NTS1ERFwiLFxuICAgICAgICBcIm1vbWVudEZ1bmN0aW9uXCI6IFwic3VidHJhY3RcIixcbiAgICAgICAgXCJtb21lbnRGb3JtYXRlXCI6IFwiMSxkYXlzXCJcbiAgICAgIH1cbiAgICBdLFxuICAgIFwiZml4T3BlcmF0aW9uTGV2bGVzXCI6IFtdXG4gIH1cblxuICBxdWVyeUJ1bGRlckRhdGFzZXQgPSB7XG4gICAgXCJhcGlcIjogXCIva3BpL2dlbmVyaWNBZ2dyZWdhdGVQYWdpbmF0ZWRLcGlTZXJ2aWNlUmVzcG9uc2VcIixcbiAgICBcImFwaVR5cGVcIjogXCJwb3N0XCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJcIixcbiAgICBcInF1ZXJ5Q29uZmlnXCI6IHtcbiAgICAgIFwibWFwZWRGaWx0ZXJzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwibG9jYWxDb2x1bW5cIjogXCJzdGFydERhdGVcIixcbiAgICAgICAgICBcInNlcnZlckNvbHVtblwiOiBcInJlY29yZF9kYXRlXCIsXG4gICAgICAgICAgXCJvcGVyYXRvck5hbWVcIjogXCJndGVcIixcbiAgICAgICAgICBcImRlZmF1bHRWYWx1ZVwiOiBcIlwiLFxuICAgICAgICAgIFwiZGF0YVR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJsb2NhbENvbHVtblwiOiBcImVuZERhdGVcIixcbiAgICAgICAgICBcInNlcnZlckNvbHVtblwiOiBcInJlY29yZF9kYXRlXCIsXG4gICAgICAgICAgXCJvcGVyYXRvck5hbWVcIjogXCJsdGVcIixcbiAgICAgICAgICBcImRlZmF1bHRWYWx1ZVwiOiBcIlwiLFxuICAgICAgICAgIFwiZGF0YVR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgXCJzb3J0ZXJzXCI6IFtcblxuICAgICAgXSxcbiAgICAgIFwicmVxRmllbGRzXCI6IFtcblxuICAgICAgXSxcbiAgICAgIFwibWVhc3VyZXNcIjogW1xuXG4gICAgICBdLFxuICAgICAgXCJmaWx0ZXJcIjogW1xuXG4gICAgICBdLFxuICAgICAgXCJoYXZpbmdzXCI6IFtdLFxuICAgICAgXCJjb21tb25Db25maWdcIjoge30sXG4gICAgICBcImNvbHVtbnNcIjogW1xuICAgICAgXVxuICAgIH1cbiAgfVxuXG4gIHJlc3RBcGlEYXRhc2V0ID0ge1xuICAgIFwiYXBpXCI6IFwiXCIsXG4gICAgXCJhcGlUeXBlXCI6IFwicG9zdFwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiXCIsXG4gICAgXCJxdWVyeUNvbmZpZ1wiOiB7XG4gICAgICBcIm1hcGVkRmlsdGVyc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImxvY2FsQ29sdW1uXCI6IFwic3RhcnREYXRlXCIsXG4gICAgICAgICAgXCJzZXJ2ZXJDb2x1bW5cIjogXCJyZWNvcmREYXRlXCIsXG4gICAgICAgICAgXCJvcGVyYXRvck5hbWVcIjogXCJndGVcIixcbiAgICAgICAgICBcImRlZmF1bHRWYWx1ZVwiOiBcIlwiLFxuICAgICAgICAgIFwiZGF0YVR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJsb2NhbENvbHVtblwiOiBcImVuZERhdGVcIixcbiAgICAgICAgICBcInNlcnZlckNvbHVtblwiOiBcInJlY29yZERhdGVcIixcbiAgICAgICAgICBcIm9wZXJhdG9yTmFtZVwiOiBcImx0ZVwiLFxuICAgICAgICAgIFwiZGVmYXVsdFZhbHVlXCI6IFwiXCIsXG4gICAgICAgICAgXCJkYXRhVHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gIH07XG4gIHNxbEFwaURhdGFzZXQgPSB7XG4gICAgXCJhcGlcIjogXCIva3BpL2dlbmVyaWNTcWxRdWVyeVJlc3BvbnNlXCIsXG4gICAgXCJhcGlUeXBlXCI6IFwicG9zdFwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiXCIsXG4gICAgXCJxdWVyeUNvbmZpZ1wiOiB7XG4gICAgICBcInRlbXBsYXRlUXVlcnlcIjogXCJcIixcbiAgICAgIFwiZGF0YWJhc2VOYW1lXCI6IFwiXCIsXG4gICAgICBcImRiQ29uZmlnXCI6IFwiXCIsXG4gICAgICBcImVucmljaG1lbnRzXCI6IFtdLFxuICAgICAgXCJtYXBlZEZpbHRlcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJsb2NhbENvbHVtblwiOiBcInN0YXJ0RGF0ZVwiLFxuICAgICAgICAgIFwic2VydmVyQ29sdW1uXCI6IFwicmVjb3JkX2RhdGVcIixcbiAgICAgICAgICBcIm9wZXJhdG9yTmFtZVwiOiBcImd0ZVwiLFxuICAgICAgICAgIFwiZGVmYXVsdFZhbHVlXCI6IFwiXCIsXG4gICAgICAgICAgXCJkYXRhVHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImxvY2FsQ29sdW1uXCI6IFwiZW5kRGF0ZVwiLFxuICAgICAgICAgIFwic2VydmVyQ29sdW1uXCI6IFwicmVjb3JkX2RhdGVcIixcbiAgICAgICAgICBcIm9wZXJhdG9yTmFtZVwiOiBcImx0ZVwiLFxuICAgICAgICAgIFwiZGVmYXVsdFZhbHVlXCI6IFwiXCIsXG4gICAgICAgICAgXCJkYXRhVHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImxvY2FsQ29sdW1uXCI6IFwibGltaXRcIixcbiAgICAgICAgICBcInNlcnZlckNvbHVtblwiOiBcImxpbWl0XCIsXG4gICAgICAgICAgXCJvcGVyYXRvck5hbWVcIjogXCJlcVwiLFxuICAgICAgICAgIFwiZGVmYXVsdFZhbHVlXCI6IFwiNTAwMFwiLFxuICAgICAgICAgIFwiZGF0YVR5cGVcIjogXCJpbnRcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICB9O1xuXG4gIGpzb25EYXRhc2V0ID0ge1xuICAgIFwiYXBpXCI6IFwiL3VpLWNvbmZpZy9nZXRKc29uRGF0YXNldFBheWxvYWRcIixcbiAgICBcImFwaVR5cGVcIjogXCJnZXRcIixcbiAgICBcInNlcnZpY2VJZFwiOiBcIlwiLFxuICAgIFwicXVlcnlDb25maWdcIjoge1xuICAgICAgXCJtYXBlZEZpbHRlcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJsb2NhbENvbHVtblwiOiBcInN0YXJ0RGF0ZVwiLFxuICAgICAgICAgIFwic2VydmVyQ29sdW1uXCI6IFwicmVjb3JkRGF0ZVwiLFxuICAgICAgICAgIFwib3BlcmF0b3JOYW1lXCI6IFwiZ3RlXCIsXG4gICAgICAgICAgXCJkZWZhdWx0VmFsdWVcIjogXCJcIixcbiAgICAgICAgICBcImRhdGFUeXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibG9jYWxDb2x1bW5cIjogXCJlbmREYXRlXCIsXG4gICAgICAgICAgXCJzZXJ2ZXJDb2x1bW5cIjogXCJyZWNvcmREYXRlXCIsXG4gICAgICAgICAgXCJvcGVyYXRvck5hbWVcIjogXCJsdGVcIixcbiAgICAgICAgICBcImRlZmF1bHRWYWx1ZVwiOiBcIlwiLFxuICAgICAgICAgIFwiZGF0YVR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICB9XG5cbiAgaW5wdXREYXRhc2V0SUQ6IGFueTtcbiAgQElucHV0KCkgaXNIZWFkZXI6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBJbnB1dCgnc2VsZWN0ZWREYXRhc2V0SWQnKVxuICBzZXQgc2VsZWN0ZWREYXRhc2V0SWQodmFsdWUpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuaW5wdXREYXRhc2V0SUQgPSB2YWx1ZVxuICAgICAgdGhpcy5zZXJ2aWNlLmdldEFwcERhdGFzZXRDb25maWcodmFsdWUpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRpbmdNb2RhbCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0ID0gZGF0YTtcbiAgICAgICAgICBpZiAoZGF0YS5kYXRhc2V0VHlwZSA9PSAnbW9uZ28nKSB7XG4gICAgICAgICAgICB0aGlzLm1vbmdvRGF0YXNldCA9IGRhdGEuY29uZmlnXG4gICAgICAgICAgfSBlbHNlIGlmIChkYXRhLmRhdGFzZXRUeXBlID09ICdxdWVyeWJ1aWxkZXInKSB7XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5QnVsZGVyRGF0YXNldCA9IGRhdGEuY29uZmlnXG4gICAgICAgICAgfSBlbHNlIGlmIChkYXRhLmRhdGFzZXRUeXBlID09ICdzaW1wbGVBcGknKSB7XG4gICAgICAgICAgICB0aGlzLnJlc3RBcGlEYXRhc2V0ID0gZGF0YS5jb25maWc7XG4gICAgICAgICAgfSBlbHNlIGlmIChkYXRhLmRhdGFzZXRUeXBlID09ICdzcWxRdWVyeScpIHtcbiAgICAgICAgICAgIHRoaXMuc3FsQXBpRGF0YXNldCA9IGRhdGEuY29uZmlnO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YS5kYXRhc2V0VHlwZSA9PSAncGxhaW5qc29uJykge1xuICAgICAgICAgICAgdGhpcy5qc29uRGF0YXNldCA9IGRhdGEuY29uZmlnO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZGluZ01vZGFsID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoJ1VuZXhwZWN0ZWQgU2VydmVyIEV4Y2VwdGlvbi4gUGxlYXNlIGNvbnRhY3QgU3lzdGVtIEFkbWluLicsICdEYXRhc2V0IENyZWF0aW9uJylcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9IGVsc2Uge1xuXG5cbiAgICB9XG5cblxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBBcHBsaWNhdGlvbkNvbnRlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlLFxuICAgIHB1YmxpYyBjb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGVcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBsZXQgZGF0YXNldElkID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1snZGF0YXNldElkJ107XG4gICAgbGV0IGNvbnRlbnRUeXBlID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1snY29udGVudFR5cGUnXTtcbiAgICBpZiAoY29udGVudFR5cGUgPT0gXCJjbG9uZVwiKSB7XG4gICAgICB0aGlzLmlzRHVwbGlkYXRlVmlldyA9IHRydWU7XG4gICAgfVxuICAgIGlmIChkYXRhc2V0SWQpIHtcbiAgICAgIHRoaXMubG9hZGluZ01vZGFsID0gdHJ1ZTtcblxuICAgICAgdGhpcy5zZXJ2aWNlLmdldEFwcERhdGFzZXRDb25maWcoZGF0YXNldElkKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nTW9kYWwgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmNyZWF0RGF0YXNldE9iamVjdCA9IGRhdGE7XG4gICAgICAgICAgaWYgKGRhdGEuZGF0YXNldFR5cGUgPT0gJ21vbmdvJykge1xuICAgICAgICAgICAgdGhpcy5tb25nb0RhdGFzZXQgPSBkYXRhLmNvbmZpZ1xuICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YS5kYXRhc2V0VHlwZSA9PSAncXVlcnlidWlsZGVyJykge1xuICAgICAgICAgICAgdGhpcy5xdWVyeUJ1bGRlckRhdGFzZXQgPSBkYXRhLmNvbmZpZ1xuICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YS5kYXRhc2V0VHlwZSA9PSAnc2ltcGxlQXBpJykge1xuICAgICAgICAgICAgdGhpcy5yZXN0QXBpRGF0YXNldCA9IGRhdGEuY29uZmlnO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YS5kYXRhc2V0VHlwZSA9PSAncGxhaW5qc29uJykge1xuICAgICAgICAgICAgdGhpcy5qc29uRGF0YXNldCA9IGRhdGEuY29uZmlnO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YS5kYXRhc2V0VHlwZSA9PSAnc3FsUXVlcnknKSB7XG4gICAgICAgICAgICB0aGlzLnNxbEFwaURhdGFzZXQgPSBkYXRhLmNvbmZpZztcbiAgICAgICAgICB9XG4gICAgICAgIH0sIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRpbmdNb2RhbCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdVbmV4cGVjdGVkIFNlcnZlciBFeGNlcHRpb24uIFBsZWFzZSBjb250YWN0IFN5c3RlbSBBZG1pbi4nLCAnRGF0YXNldCBDcmVhdGlvbicpXG4gICAgICAgIH1cbiAgICAgIH0pXG5cblxuICAgICAgLy8gdGhpcy5zZXJ2aWNlLmdldEFwcERhdGFzZXRDb25maWdzKCkuc3Vic2NyaWJlKHtcbiAgICAgIC8vICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuICAgICAgLy8gICAgIGNvbnN0IGZvdW5kT2JqZWN0ID0gZGF0YS5maW5kKGRhdGFzZXQgPT4gZGF0YXNldC5kYXRhc2V0SWQgPT09IGRhdGFzZXRJZCk7XG4gICAgICAvLyAgICAgdGhpcy5sb2FkaW5nTW9kYWwgPSBmYWxzZTtcbiAgICAgIC8vICAgICB0aGlzLmNyZWF0RGF0YXNldE9iamVjdCA9IGZvdW5kT2JqZWN0O1xuICAgICAgLy8gICAgIGlmIChmb3VuZE9iamVjdC5kYXRhc2V0VHlwZSA9PSAnbW9uZ28nKSB7XG4gICAgICAvLyAgICAgICB0aGlzLm1vbmdvRGF0YXNldCA9IGZvdW5kT2JqZWN0LmNvbmZpZ1xuICAgICAgLy8gICAgIH0gZWxzZSBpZiAoZm91bmRPYmplY3QuZGF0YXNldFR5cGUgPT0gJ3F1ZXJ5YnVpbGRlcicpIHtcbiAgICAgIC8vICAgICAgIHRoaXMucXVlcnlCdWxkZXJEYXRhc2V0ID0gZm91bmRPYmplY3QuY29uZmlnXG4gICAgICAvLyAgICAgfSBlbHNlIGlmIChmb3VuZE9iamVjdC5kYXRhc2V0VHlwZSA9PSAnc2ltcGxlQXBpJykge1xuICAgICAgLy8gICAgICAgdGhpcy5yZXN0QXBpRGF0YXNldCA9IGZvdW5kT2JqZWN0LmNvbmZpZztcbiAgICAgIC8vICAgICB9XG4gICAgICAvLyAgIH1cbiAgICAgIC8vIH0pXG4gICAgfVxuXG4gIH1cblxuXG4gIGNyZWF0ZU1vbmdvU2VydmljZURhdGFTZXQoZGF0YSkge1xuXG4gICAgdGhpcy5jcmVhdERhdGFzZXRPYmplY3RbJ2NvbmZpZyddID0gZGF0YTtcbiAgICBjb25zb2xlLmxvZyh0aGlzLmNyZWF0RGF0YXNldE9iamVjdCk7XG4gICAgdGhpcy5sb2FkaW5nTW9kYWwgPSB0cnVlO1xuICAgIGlmICh0aGlzLmlzRHVwbGlkYXRlVmlldykge1xuXG4gICAgICB0aGlzLmNyZWF0ZU5lRGF0YVNldENvbmZpZygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5jcmVhdERhdGFzZXRPYmplY3RbJ2RhdGFzZXRJZCddKSB7XG4gICAgICAgIHRoaXMudXBkYXRhTmV3RGF0YVNldENvbmdpZygpXG5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3JlYXRlTmVEYXRhU2V0Q29uZmlnKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGNyZWF0ZVF1ZXJ5QnVpbGRlckRhdGFTZXQoZGF0YSkge1xuXG4gICAgdGhpcy5jcmVhdERhdGFzZXRPYmplY3RbJ2NvbmZpZyddID0gZGF0YTtcbiAgICBjb25zb2xlLmxvZyh0aGlzLmNyZWF0RGF0YXNldE9iamVjdCk7XG4gICAgdGhpcy5sb2FkaW5nTW9kYWwgPSB0cnVlO1xuICAgIGlmICh0aGlzLmlzRHVwbGlkYXRlVmlldykge1xuXG4gICAgICB0aGlzLmNyZWF0ZU5lRGF0YVNldENvbmZpZygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5jcmVhdERhdGFzZXRPYmplY3RbJ2RhdGFzZXRJZCddKSB7XG4gICAgICAgIHRoaXMudXBkYXRhTmV3RGF0YVNldENvbmdpZygpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNyZWF0ZU5lRGF0YVNldENvbmZpZygpO1xuXG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuICBjcmVhdGVTcWxRdWVyeUJ1aWxkZXJEYXRhU2V0KGRhdGEpIHtcblxuICAgIHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0Wydjb25maWcnXSA9IGRhdGE7XG4gICAgY29uc29sZS5sb2codGhpcy5jcmVhdERhdGFzZXRPYmplY3QpO1xuICAgIHRoaXMubG9hZGluZ01vZGFsID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5pc0R1cGxpZGF0ZVZpZXcpIHtcblxuICAgICAgdGhpcy5jcmVhdGVOZURhdGFTZXRDb25maWcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0WydkYXRhc2V0SWQnXSkge1xuICAgICAgICB0aGlzLnVwZGF0YU5ld0RhdGFTZXRDb25naWcoKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jcmVhdGVOZURhdGFTZXRDb25maWcoKTtcblxuICAgICAgfVxuICAgIH1cblxuICB9XG5cblxuXG4gIGNyZWF0ZVJlc3RBcGlEYXRhU2V0KGRhdGEpIHtcbiAgICB0aGlzLmNyZWF0RGF0YXNldE9iamVjdFsnY29uZmlnJ10gPSBkYXRhO1xuICAgIGNvbnNvbGUubG9nKHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0KTtcbiAgICB0aGlzLmxvYWRpbmdNb2RhbCA9IHRydWU7XG5cbiAgICBpZiAodGhpcy5pc0R1cGxpZGF0ZVZpZXcpIHtcbiAgICAgIHRoaXMuY3JlYXRlTmVEYXRhU2V0Q29uZmlnKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmNyZWF0RGF0YXNldE9iamVjdFsnZGF0YXNldElkJ10pIHtcbiAgICAgICAgdGhpcy51cGRhdGFOZXdEYXRhU2V0Q29uZ2lnKClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3JlYXRlTmVEYXRhU2V0Q29uZmlnKCk7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuXG4gIGNyZWF0ZU5lRGF0YVNldENvbmZpZygpIHtcbiAgICB0aGlzLnNlcnZpY2UuY3JlYXRlQXBwRGF0YXNldCh0aGlzLmNyZWF0RGF0YXNldE9iamVjdCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgLy8gdGhpcy5pc05ld0RhdGFTZXRDcmVhdGVWaWV3ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNEdXBsaWRhdGVWaWV3ID0gZmFsc2U7XG4gICAgICAgIHRoaXMubG9hZGluZ01vZGFsID0gZmFsc2U7XG4gICAgICAgIHRoaXMudG9hc3RyLnN1Y2Nlc3MoJ0RhdGFzZXQgQ3JlYXRlZCBTdWNjZXNzZnVsbHknKVxuICAgICAgICAvLyBpZiAodGhpcy5pc0hlYWRlcikge1xuICAgICAgICAvLyAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnYXBwcy9jb250cm9sUGFuZWwvYXBwbGljYXRpb25EYXRhc2V0LyddKVxuICAgICAgICAvLyB9XG5cbiAgICAgIH0sIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoJ1VuZXhwZWN0ZWQgU2VydmVyIEV4Y2VwdGlvbi4gUGxlYXNlIGNvbnRhY3QgU3lzdGVtIEFkbWluLicsICdEYXRhc2V0IENyZWF0aW9uJylcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgdXBkYXRhTmV3RGF0YVNldENvbmdpZygpIHtcbiAgICB0aGlzLnNlcnZpY2UudXBkYXRlQXBwRGF0YXNldENvbmZpZyh0aGlzLmNyZWF0RGF0YXNldE9iamVjdCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgLy8gdGhpcy5pc05ld0RhdGFTZXRDcmVhdGVWaWV3ID0gZmFsc2U7XG4gICAgICAgIHRoaXMubG9hZGluZ01vZGFsID0gZmFsc2U7XG4gICAgICAgIHRoaXMudG9hc3RyLnN1Y2Nlc3MoJ0RhdGFzZXQgVXBkYXRlZCBTdWNjZXNzZnVsbHknKVxuICAgICAgICAvLyBpZiAodGhpcy5pc0hlYWRlcikge1xuICAgICAgICAvLyAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnYXBwcy9jb250cm9sUGFuZWwvYXBwbGljYXRpb25EYXRhc2V0LyddKVxuICAgICAgICAvLyB9XG4gICAgICB9LCBlcnJvcjogKGVycjogYW55KSA9PiB7XG4gICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdVbmV4cGVjdGVkIFNlcnZlciBFeGNlcHRpb24uIFBsZWFzZSBjb250YWN0IFN5c3RlbSBBZG1pbi4nLCAnRGF0YXNldCBDcmVhdGlvbicpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGdvdG9BbGxEYXRhc2V0cygpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ2FwcHMvY29udHJvbFBhbmVsL2FwcGxpY2F0aW9uRGF0YXNldC8nXSlcbiAgfVxuXG5cbiAgY3JlYXRlRGF0YVNldFdpdGhKc29uKGRhdGEpIHtcbiAgICB0aGlzLmNyZWF0RGF0YXNldE9iamVjdFsnY29uZmlnJ10gPSBkYXRhO1xuICAgIGNvbnNvbGUubG9nKHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0KTtcbiAgICBpZiAodGhpcy5pc0R1cGxpZGF0ZVZpZXcpIHtcbiAgICAgIHRoaXMuY3JlYXRlTmVEYXRhU2V0Q29uZmlnKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmNyZWF0RGF0YXNldE9iamVjdFsnZGF0YXNldElkJ10pIHtcbiAgICAgICAgdGhpcy51cGRhdGFOZXdEYXRhU2V0Q29uZ2lnKClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3JlYXRlTmVEYXRhU2V0Q29uZmlnKCk7XG4gICAgICB9XG4gICAgfVxuXG5cblxuICB9XG5cbn1cbiIsIjxhcHAtbG9hZGluZyAqbmdJZj1cImxvYWRpbmdNb2RhbFwiPjwvYXBwLWxvYWRpbmc+XG5cbjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGZsZXgtYXV0byBtaW4tdy0wXCI+XG5cbiAgICA8bGliLWNvbW1vbi1oZWFkZXIgW3BhZ2VUaXRsZV09XCInRGF0YXNldCBFZGl0b3InXCIgKm5nSWY9XCJpc0hlYWRlclwiPjwvbGliLWNvbW1vbi1oZWFkZXI+XG5cblxuICAgIDxkaXYgY2xhc3M9XCJwLTIgdy1mdWxsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLTMgcC00IGJnLXdoaXRlIGJvcmRlciBib3JkZXItZ3JheS0yMDAgcm91bmRlZC1sZyBzaGFkb3ctbWQgZGFyazpiZy1ncmF5LTgwMCBkYXJrOmJvcmRlci1ncmF5LTcwMFwiPlxuICAgICAgICAgICAgPGg2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtYi0yIGZvbnQtYm9sZCB0ZXh0LWxnIHRyYWNraW5nLXRpZ2h0IHRleHQtZ3JheS05MDAgZGFyazp0ZXh0LXdoaXRlIGJvcmRlci1iIHBiLTMgZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRhYmxlIG1yLTJcIj48L2k+IERhdGFzZXQgRWRpdG9yXG5cbiAgICAgICAgICAgIDwvaDY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBteS00XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm14LTIgdy0xLzNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbWQgbWItMlwiPkRhdGFzZXQgTmFtZTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZHgtdGV4dC1ib3ggWyhuZ01vZGVsKV09XCJjcmVhdERhdGFzZXRPYmplY3QuZGF0YXNldE5hbWVcIj48L2R4LXRleHQtYm94PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteC0yIHctMS8zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kIG1iLTJcIj5TZWxlY3QgRGF0YXNldCBUeXBlPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkeC1zZWxlY3QtYm94IFtpdGVtc109XCJkYXRhU2V0VHlwZUNvbnRhaW5lclwiIGRpc3BsYXlFeHByPVwibmFtZVwiIHZhbHVlRXhwcj1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY3JlYXREYXRhc2V0T2JqZWN0LmRhdGFzZXRUeXBlXCI+PC9keC1zZWxlY3QtYm94PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS01IGJvcmRlclwiPlxuICAgICAgICAgICAgICAgIDxhcHAtZGF0YXNldC1tb25nbyAqbmdJZj1cImNyZWF0RGF0YXNldE9iamVjdC5kYXRhc2V0VHlwZSA9PSAnbW9uZ28nXCIgW21vbmdvRGF0YXNldF09XCJtb25nb0RhdGFzZXRcIlxuICAgICAgICAgICAgICAgICAgICAoZ2V0TW9uZ29TZXJ2aWNlRGF0YVNldCk9XCJjcmVhdGVNb25nb1NlcnZpY2VEYXRhU2V0KCRldmVudClcIj48L2FwcC1kYXRhc2V0LW1vbmdvPlxuXG4gICAgICAgICAgICAgICAgPGFwcC1kYXRhc2V0LXJlc3QtYXBpICpuZ0lmPVwiY3JlYXREYXRhc2V0T2JqZWN0LmRhdGFzZXRUeXBlID09ICdzaW1wbGVBcGknXCJcbiAgICAgICAgICAgICAgICAgICAgW3Jlc3RBcGlEYXRhc2V0XT1cInJlc3RBcGlEYXRhc2V0XCJcbiAgICAgICAgICAgICAgICAgICAgKGdldFJlc3RBcGlCdWxiZGVyRGF0YVNldCk9XCJjcmVhdGVSZXN0QXBpRGF0YVNldCgkZXZlbnQpXCI+PC9hcHAtZGF0YXNldC1yZXN0LWFwaT5cblxuICAgICAgICAgICAgICAgIDxhcHAtZGF0YXNldC1xdWVyeS1idWxkZXIgKm5nSWY9XCJjcmVhdERhdGFzZXRPYmplY3QuZGF0YXNldFR5cGUgPT0gJ3F1ZXJ5YnVpbGRlcidcIlxuICAgICAgICAgICAgICAgICAgICBbYnVsZGVyRGF0YXNldF09XCJxdWVyeUJ1bGRlckRhdGFzZXRcIlxuICAgICAgICAgICAgICAgICAgICAoZ2V0UXVlcnlCdWxiZGVyRGF0YVNldCk9XCJjcmVhdGVRdWVyeUJ1aWxkZXJEYXRhU2V0KCRldmVudClcIj48L2FwcC1kYXRhc2V0LXF1ZXJ5LWJ1bGRlcj5cblxuICAgICAgICAgICAgICAgIDxhcHAtY3JlYXRlLWRhdGFzZXQtc3FsICpuZ0lmPVwiY3JlYXREYXRhc2V0T2JqZWN0LmRhdGFzZXRUeXBlID09ICdzcWxRdWVyeSdcIlxuICAgICAgICAgICAgICAgICAgICBbc3FsQnVsZGVyRGF0YXNldF09XCJzcWxBcGlEYXRhc2V0XCJcbiAgICAgICAgICAgICAgICAgICAgKGdldFNxbFF1ZXJ5QnVsYmRlckRhdGFTZXQpPVwiY3JlYXRlU3FsUXVlcnlCdWlsZGVyRGF0YVNldCgkZXZlbnQpXCI+PC9hcHAtY3JlYXRlLWRhdGFzZXQtc3FsPlxuXG4gICAgICAgICAgICAgICAgPGFwcC1jcmVhdGUtZGF0YXNldC1qc29uICpuZ0lmPVwiY3JlYXREYXRhc2V0T2JqZWN0LmRhdGFzZXRUeXBlID09ICdwbGFpbmpzb24nXCJcbiAgICAgICAgICAgICAgICAgICAgW2pzb25EYXRhc2V0XT1cImpzb25EYXRhc2V0XCJcbiAgICAgICAgICAgICAgICAgICAgKGdldEpzb25EYXRhc2V0KT1cImNyZWF0ZURhdGFTZXRXaXRoSnNvbigkZXZlbnQpXCI+PC9hcHAtY3JlYXRlLWRhdGFzZXQtanNvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cblxuPC9kaXY+Il19
352
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWRhdGFzZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2FtbWEtYXBwLWNvbnRyb2xsZXIvc3JjL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLWRhdGFzZXQtY29tcG9uZW50L2NyZWF0ZS1kYXRhc2V0L2NyZWF0ZS1kYXRhc2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dhbW1hLWFwcC1jb250cm9sbGVyL3NyYy9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi1kYXRhc2V0LWNvbXBvbmVudC9jcmVhdGUtZGF0YXNldC9jcmVhdGUtZGF0YXNldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXekQsTUFBTSxPQUFPLHNCQUFzQjtJQW9NakMsWUFDVSxPQUFrQyxFQUNsQyxNQUFxQixFQUN0QixhQUE0QixFQUMzQixNQUFjLEVBQ2QsY0FBOEI7UUFKOUIsWUFBTyxHQUFQLE9BQU8sQ0FBMkI7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUMzQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBdk14QyxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQyx1QkFBa0IsR0FBRztZQUNuQixhQUFhLEVBQUUsRUFBRTtZQUNqQixhQUFhLEVBQUUsRUFBRTtTQUNsQixDQUFDO1FBRUYseUJBQW9CLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRTtZQUN4RSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUs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QUM7U0FDOUI7YUFBTTtZQUNMLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUN4QyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQTthQUM5QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQzthQUM5QjtTQUNGO0lBSUgsQ0FBQzs7bUhBN1hVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLG9JQ1huQywrakZBbURNOzJGRHhDTyxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usb0JBQW9COzBOQXNLckIsUUFBUTtzQkFBaEIsS0FBSztnQkFHRixpQkFBaUI7c0JBRHBCLEtBQUs7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkNvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXBwbGljYXRpb24tY29udGVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ29tbW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jcmVhdGUtZGF0YXNldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jcmVhdGUtZGF0YXNldC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NyZWF0ZS1kYXRhc2V0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ3JlYXRlRGF0YXNldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGxvYWRpbmdNb2RhbDogYm9vbGVhbjtcbiAgaXNEdXBsaWRhdGVWaWV3OiBib29sZWFuID0gZmFsc2U7XG4gIGNyZWF0RGF0YXNldE9iamVjdCA9IHtcbiAgICBcImRhdGFzZXROYW1lXCI6IFwiXCIsXG4gICAgXCJkYXRhc2V0VHlwZVwiOiBcIlwiXG4gIH07XG5cbiAgZGF0YVNldFR5cGVDb250YWluZXIgPSBbeyBuYW1lOiBcIlF1ZXJ5IEJ1aWxkZXJcIiwgdmFsdWU6IFwicXVlcnlidWlsZGVyXCIgfSxcbiAgeyBuYW1lOiBcIlJlc3QgQVBJXCIsIHZhbHVlOiBcInNpbXBsZUFwaVwiIH0sIHsgbmFtZTogXCJTUUwgQnVpbGRlclwiLCB2YWx1ZTogXCJzcWxRdWVyeVwiIH0sIHsgbmFtZTogXCJQbGFpbiBKU09OXCIsIHZhbHVlOiBcInBsYWluanNvblwiIH1dXG4gIG1vbmdvRGF0YXNldCA9IHtcbiAgICBcImFwaVwiOiBcIi9rcGkvdHJlbmRzL25ldHdvcmsvZ2V0LW1ldHJpYy1kYXRhXCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJcIixcbiAgICBcImFwaVR5cGVcIjogXCJwb3N0XCIsXG4gICAgXCJmaWx0ZXJJdGVtc1wiOiBbXG4gICAgICB7XG4gICAgICAgIFwiYXBpTmFtZVwiOiBcInN0YXJ0RGF0ZVwiLFxuICAgICAgICBcImxhYmVsXCI6IFwiU3RhcnQgRGF0ZVwiLFxuICAgICAgICBcImZpbHRlclR5cGVcIjogXCJkYXRlXCIsXG4gICAgICAgIFwib3BlcmF0b3JOYW1lXCI6IFwiXCIsXG4gICAgICAgIFwiZGVmYXVsdEZpbHRlclR5cGVcIjogXCJkeW5hbWljXCIsXG4gICAgICAgIFwiZGVmYXVsdEZpbHRlclZhbHVlXCI6IFwiWVlZWS1NTS1ERFwiLFxuICAgICAgICBcIm1vbWVudEZ1bmN0aW9uXCI6IFwic3VidHJhY3RcIixcbiAgICAgICAgXCJtb21lbnRGb3JtYXRlXCI6IFwiMTUsZGF5c1wiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBcImFwaU5hbWVcIjogXCJlbmREYXRlXCIsXG4gICAgICAgIFwibGFiZWxcIjogXCJFbmQgRGF0ZVwiLFxuICAgICAgICBcImZpbHRlclR5cGVcIjogXCJkYXRlXCIsXG4gICAgICAgIFwib3BlcmF0b3JOYW1lXCI6IFwiXCIsXG4gICAgICAgIFwiZGVmYXVsdEZpbHRlclR5cGVcIjogXCJkeW5hbWljXCIsXG4gICAgICAgIFwiZGVmYXVsdEZpbHRlclZhbHVlXCI6IFwiWVlZWS1NTS1ERFwiLFxuICAgICAgICBcIm1vbWVudEZ1bmN0aW9uXCI6IFwic3VidHJhY3RcIixcbiAgICAgICAgXCJtb21lbnRGb3JtYXRlXCI6IFwiMSxkYXlzXCJcbiAgICAgIH1cbiAgICBdLFxuICAgIFwiZml4T3BlcmF0aW9uTGV2bGVzXCI6IFtdXG4gIH1cblxuICBxdWVyeUJ1bGRlckRhdGFzZXQgPSB7XG4gICAgXCJhcGlcIjogXCIva3BpL2dlbmVyaWNBZ2dyZWdhdGVQYWdpbmF0ZWRLcGlTZXJ2aWNlUmVzcG9uc2VcIixcbiAgICBcImFwaVR5cGVcIjogXCJwb3N0XCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJcIixcbiAgICBcInF1ZXJ5Q29uZmlnXCI6IHtcbiAgICAgIFwibWFwZWRGaWx0ZXJzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwibG9jYWxDb2x1bW5cIjogXCJzdGFydERhdGVcIixcbiAgICAgICAgICBcInNlcnZlckNvbHVtblwiOiBcInJlY29yZF9kYXRlXCIsXG4gICAgICAgICAgXCJvcGVyYXRvck5hbWVcIjogXCJndGVcIixcbiAgICAgICAgICBcImRlZmF1bHRWYWx1ZVwiOiBcIlwiLFxuICAgICAgICAgIFwiZGF0YVR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJsb2NhbENvbHVtblwiOiBcImVuZERhdGVcIixcbiAgICAgICAgICBcInNlcnZlckNvbHVtblwiOiBcInJlY29yZF9kYXRlXCIsXG4gICAgICAgICAgXCJvcGVyYXRvck5hbWVcIjogXCJsdGVcIixcbiAgICAgICAgICBcImRlZmF1bHRWYWx1ZVwiOiBcIlwiLFxuICAgICAgICAgIFwiZGF0YVR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgXCJzb3J0ZXJzXCI6IFtcblxuICAgICAgXSxcbiAgICAgIFwicmVxRmllbGRzXCI6IFtcblxuICAgICAgXSxcbiAgICAgIFwibWVhc3VyZXNcIjogW1xuXG4gICAgICBdLFxuICAgICAgXCJmaWx0ZXJcIjogW1xuXG4gICAgICBdLFxuICAgICAgXCJoYXZpbmdzXCI6IFtdLFxuICAgICAgXCJjb21tb25Db25maWdcIjoge30sXG4gICAgICBcImNvbHVtbnNcIjogW1xuICAgICAgXVxuICAgIH1cbiAgfVxuXG4gIHJlc3RBcGlEYXRhc2V0ID0ge1xuICAgIFwiYXBpXCI6IFwiXCIsXG4gICAgXCJhcGlUeXBlXCI6IFwicG9zdFwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiXCIsXG4gICAgXCJxdWVyeUNvbmZpZ1wiOiB7XG4gICAgICBcIm1hcGVkRmlsdGVyc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImxvY2FsQ29sdW1uXCI6IFwic3RhcnREYXRlXCIsXG4gICAgICAgICAgXCJzZXJ2ZXJDb2x1bW5cIjogXCJyZWNvcmREYXRlXCIsXG4gICAgICAgICAgXCJvcGVyYXRvck5hbWVcIjogXCJndGVcIixcbiAgICAgICAgICBcImRlZmF1bHRWYWx1ZVwiOiBcIlwiLFxuICAgICAgICAgIFwiZGF0YVR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJsb2NhbENvbHVtblwiOiBcImVuZERhdGVcIixcbiAgICAgICAgICBcInNlcnZlckNvbHVtblwiOiBcInJlY29yZERhdGVcIixcbiAgICAgICAgICBcIm9wZXJhdG9yTmFtZVwiOiBcImx0ZVwiLFxuICAgICAgICAgIFwiZGVmYXVsdFZhbHVlXCI6IFwiXCIsXG4gICAgICAgICAgXCJkYXRhVHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gIH07XG4gIHNxbEFwaURhdGFzZXQgPSB7XG4gICAgXCJhcGlcIjogXCIva3BpL2dlbmVyaWNTcWxRdWVyeVJlc3BvbnNlXCIsXG4gICAgXCJhcGlUeXBlXCI6IFwicG9zdFwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiXCIsXG4gICAgXCJxdWVyeUNvbmZpZ1wiOiB7XG4gICAgICBcInRlbXBsYXRlUXVlcnlcIjogXCJcIixcbiAgICAgIFwiZGF0YWJhc2VOYW1lXCI6IFwiXCIsXG4gICAgICBcImRiQ29uZmlnXCI6IFwiXCIsXG4gICAgICBcImVucmljaG1lbnRzXCI6IFtdLFxuICAgICAgXCJtYXBlZEZpbHRlcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJsb2NhbENvbHVtblwiOiBcInN0YXJ0RGF0ZVwiLFxuICAgICAgICAgIFwic2VydmVyQ29sdW1uXCI6IFwicmVjb3JkX2RhdGVcIixcbiAgICAgICAgICBcIm9wZXJhdG9yTmFtZVwiOiBcImd0ZVwiLFxuICAgICAgICAgIFwiZGVmYXVsdFZhbHVlXCI6IFwiXCIsXG4gICAgICAgICAgXCJkYXRhVHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImxvY2FsQ29sdW1uXCI6IFwiZW5kRGF0ZVwiLFxuICAgICAgICAgIFwic2VydmVyQ29sdW1uXCI6IFwicmVjb3JkX2RhdGVcIixcbiAgICAgICAgICBcIm9wZXJhdG9yTmFtZVwiOiBcImx0ZVwiLFxuICAgICAgICAgIFwiZGVmYXVsdFZhbHVlXCI6IFwiXCIsXG4gICAgICAgICAgXCJkYXRhVHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImxvY2FsQ29sdW1uXCI6IFwibGltaXRcIixcbiAgICAgICAgICBcInNlcnZlckNvbHVtblwiOiBcImxpbWl0XCIsXG4gICAgICAgICAgXCJvcGVyYXRvck5hbWVcIjogXCJlcVwiLFxuICAgICAgICAgIFwiZGVmYXVsdFZhbHVlXCI6IFwiNTAwMFwiLFxuICAgICAgICAgIFwiZGF0YVR5cGVcIjogXCJpbnRcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICB9O1xuXG4gIGpzb25EYXRhc2V0ID0ge1xuICAgIFwiYXBpXCI6IFwiL3VpLWNvbmZpZy9nZXRKc29uRGF0YXNldFBheWxvYWRcIixcbiAgICBcImFwaVR5cGVcIjogXCJnZXRcIixcbiAgICBcInNlcnZpY2VJZFwiOiBcIlwiLFxuICAgIFwicXVlcnlDb25maWdcIjoge1xuICAgICAgXCJtYXBlZEZpbHRlcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJsb2NhbENvbHVtblwiOiBcInN0YXJ0RGF0ZVwiLFxuICAgICAgICAgIFwic2VydmVyQ29sdW1uXCI6IFwicmVjb3JkRGF0ZVwiLFxuICAgICAgICAgIFwib3BlcmF0b3JOYW1lXCI6IFwiZ3RlXCIsXG4gICAgICAgICAgXCJkZWZhdWx0VmFsdWVcIjogXCJcIixcbiAgICAgICAgICBcImRhdGFUeXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibG9jYWxDb2x1bW5cIjogXCJlbmREYXRlXCIsXG4gICAgICAgICAgXCJzZXJ2ZXJDb2x1bW5cIjogXCJyZWNvcmREYXRlXCIsXG4gICAgICAgICAgXCJvcGVyYXRvck5hbWVcIjogXCJsdGVcIixcbiAgICAgICAgICBcImRlZmF1bHRWYWx1ZVwiOiBcIlwiLFxuICAgICAgICAgIFwiZGF0YVR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICB9XG5cbiAgaW5wdXREYXRhc2V0SUQ6IGFueTtcbiAgQElucHV0KCkgaXNIZWFkZXI6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBJbnB1dCgnc2VsZWN0ZWREYXRhc2V0SWQnKVxuICBzZXQgc2VsZWN0ZWREYXRhc2V0SWQodmFsdWUpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuaW5wdXREYXRhc2V0SUQgPSB2YWx1ZVxuICAgICAgdGhpcy5zZXJ2aWNlLmdldEFwcERhdGFzZXRDb25maWcodmFsdWUpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRpbmdNb2RhbCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0ID0gZGF0YTtcbiAgICAgICAgICBpZiAoZGF0YS5kYXRhc2V0VHlwZSA9PSAnbW9uZ28nKSB7XG4gICAgICAgICAgICB0aGlzLm1vbmdvRGF0YXNldCA9IGRhdGEuY29uZmlnXG4gICAgICAgICAgfSBlbHNlIGlmIChkYXRhLmRhdGFzZXRUeXBlID09ICdxdWVyeWJ1aWxkZXInKSB7XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5QnVsZGVyRGF0YXNldCA9IGRhdGEuY29uZmlnXG4gICAgICAgICAgfSBlbHNlIGlmIChkYXRhLmRhdGFzZXRUeXBlID09ICdzaW1wbGVBcGknKSB7XG4gICAgICAgICAgICB0aGlzLnJlc3RBcGlEYXRhc2V0ID0gZGF0YS5jb25maWc7XG4gICAgICAgICAgfSBlbHNlIGlmIChkYXRhLmRhdGFzZXRUeXBlID09ICdzcWxRdWVyeScpIHtcbiAgICAgICAgICAgIHRoaXMuc3FsQXBpRGF0YXNldCA9IGRhdGEuY29uZmlnO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YS5kYXRhc2V0VHlwZSA9PSAncGxhaW5qc29uJykge1xuICAgICAgICAgICAgdGhpcy5qc29uRGF0YXNldCA9IGRhdGEuY29uZmlnO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZGluZ01vZGFsID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoJ1VuZXhwZWN0ZWQgU2VydmVyIEV4Y2VwdGlvbi4gUGxlYXNlIGNvbnRhY3QgU3lzdGVtIEFkbWluLicsICdEYXRhc2V0IENyZWF0aW9uJylcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9IGVsc2Uge1xuXG5cbiAgICB9XG5cblxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBBcHBsaWNhdGlvbkNvbnRlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlLFxuICAgIHB1YmxpYyBjb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGVcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBsZXQgZGF0YXNldElkID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1snZGF0YXNldElkJ107XG4gICAgbGV0IGNvbnRlbnRUeXBlID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1snY29udGVudFR5cGUnXTtcbiAgICBpZiAoY29udGVudFR5cGUgPT0gXCJjbG9uZVwiKSB7XG4gICAgICB0aGlzLmlzRHVwbGlkYXRlVmlldyA9IHRydWU7XG4gICAgfVxuICAgIGlmIChkYXRhc2V0SWQpIHtcbiAgICAgIHRoaXMubG9hZGluZ01vZGFsID0gdHJ1ZTtcblxuICAgICAgdGhpcy5zZXJ2aWNlLmdldEFwcERhdGFzZXRDb25maWcoZGF0YXNldElkKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nTW9kYWwgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmNyZWF0RGF0YXNldE9iamVjdCA9IGRhdGE7XG4gICAgICAgICAgaWYgKGRhdGEuZGF0YXNldFR5cGUgPT0gJ21vbmdvJykge1xuICAgICAgICAgICAgdGhpcy5tb25nb0RhdGFzZXQgPSBkYXRhLmNvbmZpZ1xuICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YS5kYXRhc2V0VHlwZSA9PSAncXVlcnlidWlsZGVyJykge1xuICAgICAgICAgICAgdGhpcy5xdWVyeUJ1bGRlckRhdGFzZXQgPSBkYXRhLmNvbmZpZ1xuICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YS5kYXRhc2V0VHlwZSA9PSAnc2ltcGxlQXBpJykge1xuICAgICAgICAgICAgdGhpcy5yZXN0QXBpRGF0YXNldCA9IGRhdGEuY29uZmlnO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YS5kYXRhc2V0VHlwZSA9PSAncGxhaW5qc29uJykge1xuICAgICAgICAgICAgdGhpcy5qc29uRGF0YXNldCA9IGRhdGEuY29uZmlnO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YS5kYXRhc2V0VHlwZSA9PSAnc3FsUXVlcnknKSB7XG4gICAgICAgICAgICB0aGlzLnNxbEFwaURhdGFzZXQgPSBkYXRhLmNvbmZpZztcbiAgICAgICAgICB9XG4gICAgICAgIH0sIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRpbmdNb2RhbCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdVbmV4cGVjdGVkIFNlcnZlciBFeGNlcHRpb24uIFBsZWFzZSBjb250YWN0IFN5c3RlbSBBZG1pbi4nLCAnRGF0YXNldCBDcmVhdGlvbicpXG4gICAgICAgIH1cbiAgICAgIH0pXG5cblxuICAgICAgLy8gdGhpcy5zZXJ2aWNlLmdldEFwcERhdGFzZXRDb25maWdzKCkuc3Vic2NyaWJlKHtcbiAgICAgIC8vICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuICAgICAgLy8gICAgIGNvbnN0IGZvdW5kT2JqZWN0ID0gZGF0YS5maW5kKGRhdGFzZXQgPT4gZGF0YXNldC5kYXRhc2V0SWQgPT09IGRhdGFzZXRJZCk7XG4gICAgICAvLyAgICAgdGhpcy5sb2FkaW5nTW9kYWwgPSBmYWxzZTtcbiAgICAgIC8vICAgICB0aGlzLmNyZWF0RGF0YXNldE9iamVjdCA9IGZvdW5kT2JqZWN0O1xuICAgICAgLy8gICAgIGlmIChmb3VuZE9iamVjdC5kYXRhc2V0VHlwZSA9PSAnbW9uZ28nKSB7XG4gICAgICAvLyAgICAgICB0aGlzLm1vbmdvRGF0YXNldCA9IGZvdW5kT2JqZWN0LmNvbmZpZ1xuICAgICAgLy8gICAgIH0gZWxzZSBpZiAoZm91bmRPYmplY3QuZGF0YXNldFR5cGUgPT0gJ3F1ZXJ5YnVpbGRlcicpIHtcbiAgICAgIC8vICAgICAgIHRoaXMucXVlcnlCdWxkZXJEYXRhc2V0ID0gZm91bmRPYmplY3QuY29uZmlnXG4gICAgICAvLyAgICAgfSBlbHNlIGlmIChmb3VuZE9iamVjdC5kYXRhc2V0VHlwZSA9PSAnc2ltcGxlQXBpJykge1xuICAgICAgLy8gICAgICAgdGhpcy5yZXN0QXBpRGF0YXNldCA9IGZvdW5kT2JqZWN0LmNvbmZpZztcbiAgICAgIC8vICAgICB9XG4gICAgICAvLyAgIH1cbiAgICAgIC8vIH0pXG4gICAgfVxuXG4gIH1cblxuXG4gIGNyZWF0ZU1vbmdvU2VydmljZURhdGFTZXQoZGF0YSkge1xuXG4gICAgdGhpcy5jcmVhdERhdGFzZXRPYmplY3RbJ2NvbmZpZyddID0gZGF0YTtcbiAgICBjb25zb2xlLmxvZyh0aGlzLmNyZWF0RGF0YXNldE9iamVjdCk7XG4gICAgdGhpcy5sb2FkaW5nTW9kYWwgPSB0cnVlO1xuICAgIGlmICh0aGlzLmlzRHVwbGlkYXRlVmlldykge1xuXG4gICAgICB0aGlzLmNyZWF0ZU5lRGF0YVNldENvbmZpZygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5jcmVhdERhdGFzZXRPYmplY3RbJ2RhdGFzZXRJZCddKSB7XG4gICAgICAgIHRoaXMudXBkYXRhTmV3RGF0YVNldENvbmdpZygpXG5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3JlYXRlTmVEYXRhU2V0Q29uZmlnKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGNyZWF0ZVF1ZXJ5QnVpbGRlckRhdGFTZXQoZGF0YSkge1xuXG4gICAgdGhpcy5jcmVhdERhdGFzZXRPYmplY3RbJ2NvbmZpZyddID0gZGF0YTtcbiAgICBjb25zb2xlLmxvZyh0aGlzLmNyZWF0RGF0YXNldE9iamVjdCk7XG4gICAgdGhpcy5sb2FkaW5nTW9kYWwgPSB0cnVlO1xuICAgIGlmICh0aGlzLmlzRHVwbGlkYXRlVmlldykge1xuXG4gICAgICB0aGlzLmNyZWF0ZU5lRGF0YVNldENvbmZpZygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5jcmVhdERhdGFzZXRPYmplY3RbJ2RhdGFzZXRJZCddKSB7XG4gICAgICAgIHRoaXMudXBkYXRhTmV3RGF0YVNldENvbmdpZygpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNyZWF0ZU5lRGF0YVNldENvbmZpZygpO1xuXG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuICBjcmVhdGVTcWxRdWVyeUJ1aWxkZXJEYXRhU2V0KGRhdGEpIHtcblxuICAgIHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0Wydjb25maWcnXSA9IGRhdGE7XG4gICAgY29uc29sZS5sb2codGhpcy5jcmVhdERhdGFzZXRPYmplY3QpO1xuICAgIHRoaXMubG9hZGluZ01vZGFsID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5pc0R1cGxpZGF0ZVZpZXcpIHtcblxuICAgICAgdGhpcy5jcmVhdGVOZURhdGFTZXRDb25maWcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0WydkYXRhc2V0SWQnXSkge1xuICAgICAgICB0aGlzLnVwZGF0YU5ld0RhdGFTZXRDb25naWcoKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jcmVhdGVOZURhdGFTZXRDb25maWcoKTtcblxuICAgICAgfVxuICAgIH1cblxuICB9XG5cblxuXG4gIGNyZWF0ZVJlc3RBcGlEYXRhU2V0KGRhdGEpIHtcbiAgICB0aGlzLmNyZWF0RGF0YXNldE9iamVjdFsnY29uZmlnJ10gPSBkYXRhO1xuICAgIGNvbnNvbGUubG9nKHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0KTtcbiAgICB0aGlzLmxvYWRpbmdNb2RhbCA9IHRydWU7XG5cbiAgICBpZiAodGhpcy5pc0R1cGxpZGF0ZVZpZXcpIHtcbiAgICAgIHRoaXMuY3JlYXRlTmVEYXRhU2V0Q29uZmlnKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmNyZWF0RGF0YXNldE9iamVjdFsnZGF0YXNldElkJ10pIHtcbiAgICAgICAgdGhpcy51cGRhdGFOZXdEYXRhU2V0Q29uZ2lnKClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3JlYXRlTmVEYXRhU2V0Q29uZmlnKCk7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuXG4gIGNyZWF0ZU5lRGF0YVNldENvbmZpZygpIHtcbiAgICB0aGlzLnNlcnZpY2UuY3JlYXRlQXBwRGF0YXNldCh0aGlzLmNyZWF0RGF0YXNldE9iamVjdCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgLy8gdGhpcy5pc05ld0RhdGFTZXRDcmVhdGVWaWV3ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNEdXBsaWRhdGVWaWV3ID0gZmFsc2U7XG4gICAgICAgIHRoaXMubG9hZGluZ01vZGFsID0gZmFsc2U7XG4gICAgICAgIHRoaXMudG9hc3RyLnN1Y2Nlc3MoJ0RhdGFzZXQgQ3JlYXRlZCBTdWNjZXNzZnVsbHknKVxuICAgICAgICAvLyBpZiAodGhpcy5pc0hlYWRlcikge1xuICAgICAgICAvLyAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnYXBwcy9jb250cm9sUGFuZWwvYXBwbGljYXRpb25EYXRhc2V0LyddKVxuICAgICAgICAvLyB9XG5cbiAgICAgIH0sIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoJ1VuZXhwZWN0ZWQgU2VydmVyIEV4Y2VwdGlvbi4gUGxlYXNlIGNvbnRhY3QgU3lzdGVtIEFkbWluLicsICdEYXRhc2V0IENyZWF0aW9uJylcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgdXBkYXRhTmV3RGF0YVNldENvbmdpZygpIHtcbiAgICB0aGlzLnNlcnZpY2UudXBkYXRlQXBwRGF0YXNldENvbmZpZyh0aGlzLmNyZWF0RGF0YXNldE9iamVjdCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgLy8gdGhpcy5pc05ld0RhdGFTZXRDcmVhdGVWaWV3ID0gZmFsc2U7XG4gICAgICAgIHRoaXMubG9hZGluZ01vZGFsID0gZmFsc2U7XG4gICAgICAgIHRoaXMudG9hc3RyLnN1Y2Nlc3MoJ0RhdGFzZXQgVXBkYXRlZCBTdWNjZXNzZnVsbHknKVxuICAgICAgICAvLyBpZiAodGhpcy5pc0hlYWRlcikge1xuICAgICAgICAvLyAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnYXBwcy9jb250cm9sUGFuZWwvYXBwbGljYXRpb25EYXRhc2V0LyddKVxuICAgICAgICAvLyB9XG4gICAgICB9LCBlcnJvcjogKGVycjogYW55KSA9PiB7XG4gICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdVbmV4cGVjdGVkIFNlcnZlciBFeGNlcHRpb24uIFBsZWFzZSBjb250YWN0IFN5c3RlbSBBZG1pbi4nLCAnRGF0YXNldCBDcmVhdGlvbicpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGdvdG9BbGxEYXRhc2V0cygpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ2FwcHMvY29udHJvbFBhbmVsL2FwcGxpY2F0aW9uRGF0YXNldC8nXSlcbiAgfVxuXG5cbiAgY3JlYXRlRGF0YVNldFdpdGhKc29uKGRhdGEpIHtcbiAgICB0aGlzLmNyZWF0RGF0YXNldE9iamVjdFsnY29uZmlnJ10gPSBkYXRhO1xuICAgIGNvbnNvbGUubG9nKHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0KTtcbiAgICBpZiAodGhpcy5pc0R1cGxpZGF0ZVZpZXcpIHtcbiAgICAgIHRoaXMuY3JlYXRlTmVEYXRhU2V0Q29uZmlnKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmNyZWF0RGF0YXNldE9iamVjdFsnZGF0YXNldElkJ10pIHtcbiAgICAgICAgdGhpcy51cGRhdGFOZXdEYXRhU2V0Q29uZ2lnKClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3JlYXRlTmVEYXRhU2V0Q29uZmlnKCk7XG4gICAgICB9XG4gICAgfVxuXG5cblxuICB9XG5cbn1cbiIsIjxhcHAtbG9hZGluZyAqbmdJZj1cImxvYWRpbmdNb2RhbFwiPjwvYXBwLWxvYWRpbmc+XG5cbjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGZsZXgtYXV0byBtaW4tdy0wXCI+XG5cbiAgICA8bGliLWNvbW1vbi1oZWFkZXIgW3BhZ2VUaXRsZV09XCInRGF0YXNldCBFZGl0b3InXCIgKm5nSWY9XCJpc0hlYWRlclwiPjwvbGliLWNvbW1vbi1oZWFkZXI+XG5cblxuICAgIDxkaXYgY2xhc3M9XCJwLTIgdy1mdWxsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLTMgcC00IGJnLXdoaXRlIGJvcmRlciBib3JkZXItZ3JheS0yMDAgcm91bmRlZC1sZyBzaGFkb3ctbWQgZGFyazpiZy1ncmF5LTgwMCBkYXJrOmJvcmRlci1ncmF5LTcwMFwiPlxuICAgICAgICAgICAgPGg2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtYi0yIGZvbnQtYm9sZCB0ZXh0LWxnIHRyYWNraW5nLXRpZ2h0IHRleHQtZ3JheS05MDAgZGFyazp0ZXh0LXdoaXRlIGJvcmRlci1iIHBiLTMgZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRhYmxlIG1yLTJcIj48L2k+IERhdGFzZXQgRWRpdG9yXG5cbiAgICAgICAgICAgIDwvaDY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBteS00XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm14LTIgdy0xLzNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbWQgbWItMlwiPkRhdGFzZXQgTmFtZTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZHgtdGV4dC1ib3ggWyhuZ01vZGVsKV09XCJjcmVhdERhdGFzZXRPYmplY3QuZGF0YXNldE5hbWVcIj48L2R4LXRleHQtYm94PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteC0yIHctMS8zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kIG1iLTJcIj5TZWxlY3QgRGF0YXNldCBUeXBlPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkeC1zZWxlY3QtYm94IFtpdGVtc109XCJkYXRhU2V0VHlwZUNvbnRhaW5lclwiIGRpc3BsYXlFeHByPVwibmFtZVwiIHZhbHVlRXhwcj1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY3JlYXREYXRhc2V0T2JqZWN0LmRhdGFzZXRUeXBlXCI+PC9keC1zZWxlY3QtYm94PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS01IGJvcmRlclwiPlxuICAgICAgICAgICAgICAgIDxhcHAtZGF0YXNldC1tb25nbyAqbmdJZj1cImNyZWF0RGF0YXNldE9iamVjdC5kYXRhc2V0VHlwZSA9PSAnbW9uZ28nXCIgW21vbmdvRGF0YXNldF09XCJtb25nb0RhdGFzZXRcIlxuICAgICAgICAgICAgICAgICAgICAoZ2V0TW9uZ29TZXJ2aWNlRGF0YVNldCk9XCJjcmVhdGVNb25nb1NlcnZpY2VEYXRhU2V0KCRldmVudClcIj48L2FwcC1kYXRhc2V0LW1vbmdvPlxuXG4gICAgICAgICAgICAgICAgPGFwcC1kYXRhc2V0LXJlc3QtYXBpICpuZ0lmPVwiY3JlYXREYXRhc2V0T2JqZWN0LmRhdGFzZXRUeXBlID09ICdzaW1wbGVBcGknXCJcbiAgICAgICAgICAgICAgICAgICAgW3Jlc3RBcGlEYXRhc2V0XT1cInJlc3RBcGlEYXRhc2V0XCJcbiAgICAgICAgICAgICAgICAgICAgKGdldFJlc3RBcGlCdWxiZGVyRGF0YVNldCk9XCJjcmVhdGVSZXN0QXBpRGF0YVNldCgkZXZlbnQpXCI+PC9hcHAtZGF0YXNldC1yZXN0LWFwaT5cblxuICAgICAgICAgICAgICAgIDxhcHAtZGF0YXNldC1xdWVyeS1idWxkZXIgKm5nSWY9XCJjcmVhdERhdGFzZXRPYmplY3QuZGF0YXNldFR5cGUgPT0gJ3F1ZXJ5YnVpbGRlcidcIlxuICAgICAgICAgICAgICAgICAgICBbYnVsZGVyRGF0YXNldF09XCJxdWVyeUJ1bGRlckRhdGFzZXRcIlxuICAgICAgICAgICAgICAgICAgICAoZ2V0UXVlcnlCdWxiZGVyRGF0YVNldCk9XCJjcmVhdGVRdWVyeUJ1aWxkZXJEYXRhU2V0KCRldmVudClcIj48L2FwcC1kYXRhc2V0LXF1ZXJ5LWJ1bGRlcj5cblxuICAgICAgICAgICAgICAgIDxhcHAtY3JlYXRlLWRhdGFzZXQtc3FsICpuZ0lmPVwiY3JlYXREYXRhc2V0T2JqZWN0LmRhdGFzZXRUeXBlID09ICdzcWxRdWVyeSdcIlxuICAgICAgICAgICAgICAgICAgICBbc3FsQnVsZGVyRGF0YXNldF09XCJzcWxBcGlEYXRhc2V0XCJcbiAgICAgICAgICAgICAgICAgICAgKGdldFNxbFF1ZXJ5QnVsYmRlckRhdGFTZXQpPVwiY3JlYXRlU3FsUXVlcnlCdWlsZGVyRGF0YVNldCgkZXZlbnQpXCI+PC9hcHAtY3JlYXRlLWRhdGFzZXQtc3FsPlxuXG4gICAgICAgICAgICAgICAgPGFwcC1jcmVhdGUtZGF0YXNldC1qc29uICpuZ0lmPVwiY3JlYXREYXRhc2V0T2JqZWN0LmRhdGFzZXRUeXBlID09ICdwbGFpbmpzb24nXCJcbiAgICAgICAgICAgICAgICAgICAgW2pzb25EYXRhc2V0XT1cImpzb25EYXRhc2V0XCJcbiAgICAgICAgICAgICAgICAgICAgKGdldEpzb25EYXRhc2V0KT1cImNyZWF0ZURhdGFTZXRXaXRoSnNvbigkZXZlbnQpXCI+PC9hcHAtY3JlYXRlLWRhdGFzZXQtanNvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cblxuPC9kaXY+Il19