@dignite-ng/expand.cms 0.0.13 → 0.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/esm2022/config/enums/route-names.mjs +1 -1
  2. package/esm2022/config/providers/route.provider.mjs +1 -22
  3. package/esm2022/lib/components/admin/entries/create-or-edit-entries.component.mjs +21 -6
  4. package/esm2022/lib/components/admin/entries/create-or-update-entry-input-base.mjs +1 -12
  5. package/esm2022/lib/components/admin/entries/create.component.mjs +5 -5
  6. package/esm2022/lib/components/admin/entries/edit.component.mjs +18 -15
  7. package/esm2022/lib/components/admin/entries/entries.component.mjs +17 -21
  8. package/esm2022/lib/components/admin/fields/create-field.component.mjs +18 -10
  9. package/esm2022/lib/components/admin/fields/create-or-edit-field.component.mjs +8 -12
  10. package/esm2022/lib/components/admin/fields/create-or-update-field-input-base.mjs +2 -2
  11. package/esm2022/lib/components/admin/fields/edit-field.component.mjs +13 -6
  12. package/esm2022/lib/components/admin/fields/fields.component.mjs +10 -3
  13. package/esm2022/lib/components/admin/sections/entry-types/create-or-edit.-entry-type-input-base.mjs +2 -2
  14. package/esm2022/lib/components/admin/sections/entry-types/create-or-edit.component.mjs +20 -8
  15. package/esm2022/lib/components/admin/sections/sections.component.mjs +10 -10
  16. package/esm2022/lib/components/dynamic-form/entry/entry-config.component.mjs +9 -7
  17. package/esm2022/lib/components/dynamic-form/entry/entry-control.component.mjs +26 -23
  18. package/esm2022/lib/components/dynamic-form/matrix/matrix-config.component.mjs +9 -7
  19. package/esm2022/lib/components/dynamic-form/matrix/matrix-config.mjs +2 -16
  20. package/esm2022/lib/components/dynamic-form/matrix/matrix-control.component.mjs +10 -3
  21. package/esm2022/lib/components/dynamic-form/table/table-config.component.mjs +7 -5
  22. package/esm2022/lib/components/dynamic-form/table/table-control.component.mjs +18 -6
  23. package/esm2022/lib/proxy/admin/entries/entry-admin.service.mjs +1 -8
  24. package/esm2022/lib/services/cms-api.service.mjs +1 -5
  25. package/esm2022/lib/services/field-abstracts.service.mjs +3 -2
  26. package/esm2022/lib/services/simple-reuse-strategy.mjs +1 -1
  27. package/esm2022/lib/services/update-list.service.mjs +19 -0
  28. package/fesm2022/dignite-ng-expand.cms-config.mjs +0 -21
  29. package/fesm2022/dignite-ng-expand.cms-config.mjs.map +1 -1
  30. package/fesm2022/dignite-ng-expand.cms.mjs +192 -149
  31. package/fesm2022/dignite-ng-expand.cms.mjs.map +1 -1
  32. package/lib/components/admin/entries/create-or-edit-entries.component.d.ts +3 -0
  33. package/lib/components/admin/entries/create.component.d.ts +1 -0
  34. package/lib/components/admin/entries/edit.component.d.ts +4 -3
  35. package/lib/components/admin/entries/entries.component.d.ts +3 -2
  36. package/lib/components/admin/fields/create-field.component.d.ts +4 -1
  37. package/lib/components/admin/fields/create-or-edit-field.component.d.ts +3 -3
  38. package/lib/components/admin/fields/create-or-update-field-input-base.d.ts +1 -0
  39. package/lib/components/admin/fields/edit-field.component.d.ts +4 -2
  40. package/lib/components/admin/fields/fields.component.d.ts +2 -0
  41. package/lib/components/admin/sections/entry-types/create-or-edit.-entry-type-input-base.d.ts +1 -0
  42. package/lib/components/admin/sections/entry-types/create-or-edit.component.d.ts +4 -2
  43. package/lib/components/admin/sections/sections.component.d.ts +3 -0
  44. package/lib/components/dynamic-form/entry/entry-config.component.d.ts +4 -1
  45. package/lib/components/dynamic-form/entry/entry-control.component.d.ts +6 -7
  46. package/lib/components/dynamic-form/matrix/matrix-config.component.d.ts +1 -0
  47. package/lib/components/dynamic-form/matrix/matrix-config.d.ts +1 -7
  48. package/lib/components/dynamic-form/matrix/matrix-control.component.d.ts +4 -1
  49. package/lib/components/dynamic-form/table/table-control.component.d.ts +4 -0
  50. package/lib/services/update-list.service.d.ts +9 -0
  51. package/package.json +3 -3
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtbmFtZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvY29uZmlnL3NyYy9lbnVtcy9yb3V0ZS1uYW1lcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGVudW0gZUNtc1JvdXRlTmFtZXMge1xyXG4gIC8vIENtcyA9ICdDbXMnLFxyXG4gIC8vIEVudHJpZXMgPSAnRW50cmllcycsXHJcbiAgLy8gU2V0dGluZ3MgPSBcIlNldHRpbmdzXCIsXHJcbiAgLy8gRmllbGRzID0gXCJGaWVsZHNcIixcclxuICAvLyBTaXRlcyA9IFwiU2l0ZXNcIixcclxuICAvLyBTZWN0aW9ucyA9IFwiU2VjdGlvbnNcIixcclxuICBDbXMgPSAnQ21zOjpNZW51OkNtcycsXHJcbiAgRW50cmllcyA9ICdDbXM6OkZvcm1Db250cm9sOkVudHJ5JyxcclxuICBTZXR0aW5ncyA9IFwiQ21zOjpNZW51OlNldHRpbmdzXCIsXHJcbiAgRmllbGRzID0gXCJDbXM6OkZpZWxkc1wiLFxyXG4gIFNpdGVzID0gXCJDbXM6OlNpdGVzXCIsXHJcbiAgU2VjdGlvbnMgPSBcIkNtczo6U2VjdGlvbnNcIixcclxufVxyXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtbmFtZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvY29uZmlnL3NyYy9lbnVtcy9yb3V0ZS1uYW1lcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGVudW0gZUNtc1JvdXRlTmFtZXMge1xyXG4gIENtcyA9ICdDbXM6Ok1lbnU6Q21zJyxcclxuICBFbnRyaWVzID0gJ0Ntczo6Rm9ybUNvbnRyb2w6RW50cnknLFxyXG4gIFNldHRpbmdzID0gXCJDbXM6Ok1lbnU6U2V0dGluZ3NcIixcclxuICBGaWVsZHMgPSBcIkNtczo6RmllbGRzXCIsXHJcbiAgU2l0ZXMgPSBcIkNtczo6U2l0ZXNcIixcclxuICBTZWN0aW9ucyA9IFwiQ21zOjpTZWN0aW9uc1wiLFxyXG59XHJcbiJdfQ==
@@ -58,28 +58,7 @@ export function configureRoutes(routesService) {
58
58
  layout: "application" /* eLayoutType.application */,
59
59
  order: 8,
60
60
  },
61
- // {
62
- // path: '',
63
- // name: '演示',
64
- // iconClass: 'fas fa fa-newspaper-o',
65
- // layout: eLayoutType.application,
66
- // order: 9,
67
- // },{
68
- // path: '/cms/demo/usePage',
69
- // name: '使用abp,page',
70
- // parentName:'演示',
71
- // iconClass: 'fas fa fa-newspaper-o',
72
- // layout: eLayoutType.application,
73
- // order: 10,
74
- // },{
75
- // path: '/cms/demo/useTable',
76
- // name: '使用abp,Table',
77
- // parentName:'演示',
78
- // iconClass: 'fas fa fa-newspaper-o',
79
- // layout: eLayoutType.application,
80
- // order: 11,
81
- // },
82
61
  ]);
83
62
  };
84
63
  }
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvY29uZmlnL3NyYy9wcm92aWRlcnMvcm91dGUucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2hELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHO0lBQ2pDO1FBQ0UsT0FBTyxFQUFFLGVBQWU7UUFDeEIsVUFBVSxFQUFFLGVBQWU7UUFDM0IsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDO1FBQ3JCLEtBQUssRUFBRSxJQUFJO0tBQ1o7Q0FDRixDQUFDO0FBRUYsTUFBTSxVQUFVLGVBQWUsQ0FBQyxhQUE0QjtJQUMxRCxPQUFPLEdBQUcsRUFBRTtRQUNWLGFBQWEsQ0FBQyxHQUFHLENBQUM7WUFDaEI7Z0JBQ0UsSUFBSSxFQUFFLE1BQU07Z0JBQ1osSUFBSSwwQ0FBb0I7Z0JBQ3hCLFNBQVMsRUFBRSx1QkFBdUI7Z0JBQ2xDLE1BQU0sNkNBQXlCO2dCQUMvQixLQUFLLEVBQUUsQ0FBQzthQUNUO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLG9CQUFvQjtnQkFDMUIsSUFBSSx1REFBd0I7Z0JBQzVCLFVBQVUsMENBQW1CO2dCQUM3QixTQUFTLEVBQUUsdUJBQXVCO2dCQUNsQyxNQUFNLDZDQUF5QjtnQkFDL0IsS0FBSyxFQUFFLENBQUM7YUFDVDtZQUNEO2dCQUNFLElBQUksRUFBRSxFQUFFO2dCQUNSLElBQUksb0RBQXlCO2dCQUM3QixVQUFVLDBDQUFtQjtnQkFDN0IsU0FBUyxFQUFFLGVBQWU7Z0JBQzFCLE1BQU0sNkNBQXlCO2dCQUMvQixLQUFLLEVBQUUsQ0FBQzthQUNUO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLG1CQUFtQjtnQkFDekIsSUFBSSwyQ0FBdUI7Z0JBQzNCLFVBQVUsb0RBQXdCO2dCQUNsQyxTQUFTLEVBQUUsMkJBQTJCO2dCQUN0QyxNQUFNLDZDQUF5QjtnQkFDL0IsS0FBSyxFQUFFLENBQUM7YUFDVDtZQUNEO2dCQUNFLElBQUksRUFBRSxrQkFBa0I7Z0JBQ3hCLElBQUkseUNBQXNCO2dCQUMxQixVQUFVLG9EQUF3QjtnQkFDbEMsU0FBUyxFQUFFLGtCQUFrQjtnQkFDN0IsTUFBTSw2Q0FBeUI7Z0JBQy9CLEtBQUssRUFBRSxDQUFDO2FBQ1Q7WUFDRDtnQkFDRSxJQUFJLEVBQUUscUJBQXFCO2dCQUMzQixJQUFJLCtDQUF5QjtnQkFDN0IsVUFBVSxvREFBd0I7Z0JBQ2xDLFNBQVMsRUFBRSx1QkFBdUI7Z0JBQ2xDLE1BQU0sNkNBQXlCO2dCQUMvQixLQUFLLEVBQUUsQ0FBQzthQUNUO1lBQ0QsSUFBSTtZQUNKLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIsd0NBQXdDO1lBQ3hDLHFDQUFxQztZQUNyQyxjQUFjO1lBQ2QsTUFBTTtZQUNOLCtCQUErQjtZQUMvQix3QkFBd0I7WUFDeEIscUJBQXFCO1lBQ3JCLHdDQUF3QztZQUN4QyxxQ0FBcUM7WUFDckMsZUFBZTtZQUNmLE1BQU07WUFDTixnQ0FBZ0M7WUFDaEMseUJBQXlCO1lBQ3pCLHFCQUFxQjtZQUNyQix3Q0FBd0M7WUFDeEMscUNBQXFDO1lBQ3JDLGVBQWU7WUFDZixLQUFLO1NBQ04sQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVMYXlvdXRUeXBlLCBSb3V0ZXNTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGVDbXNSb3V0ZU5hbWVzIH0gZnJvbSAnLi4vZW51bXMvcm91dGUtbmFtZXMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IENNU19ST1VURV9QUk9WSURFUlMgPSBbXHJcbiAge1xyXG4gICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG4gICAgdXNlRmFjdG9yeTogY29uZmlndXJlUm91dGVzLFxyXG4gICAgZGVwczogW1JvdXRlc1NlcnZpY2VdLFxyXG4gICAgbXVsdGk6IHRydWUsXHJcbiAgfSxcclxuXTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjb25maWd1cmVSb3V0ZXMocm91dGVzU2VydmljZTogUm91dGVzU2VydmljZSkge1xyXG4gIHJldHVybiAoKSA9PiB7XHJcbiAgICByb3V0ZXNTZXJ2aWNlLmFkZChbXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiAnL2NtcycsXHJcbiAgICAgICAgbmFtZTogZUNtc1JvdXRlTmFtZXMuQ21zLFxyXG4gICAgICAgIGljb25DbGFzczogJ2ZhcyBmYSBmYS1uZXdzcGFwZXItbycsXHJcbiAgICAgICAgbGF5b3V0OiBlTGF5b3V0VHlwZS5hcHBsaWNhdGlvbixcclxuICAgICAgICBvcmRlcjogMyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6ICcvY21zL2FkbWluL2VudHJpZXMnLFxyXG4gICAgICAgIG5hbWU6IGVDbXNSb3V0ZU5hbWVzLkVudHJpZXMsXHJcbiAgICAgICAgcGFyZW50TmFtZTplQ21zUm91dGVOYW1lcy5DbXMsXHJcbiAgICAgICAgaWNvbkNsYXNzOiAnZmFzIGZhIGZhLWZpbGUtdGV4dC1vJyxcclxuICAgICAgICBsYXlvdXQ6IGVMYXlvdXRUeXBlLmFwcGxpY2F0aW9uLFxyXG4gICAgICAgIG9yZGVyOiA0LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogJycsXHJcbiAgICAgICAgbmFtZTogZUNtc1JvdXRlTmFtZXMuU2V0dGluZ3MsXHJcbiAgICAgICAgcGFyZW50TmFtZTplQ21zUm91dGVOYW1lcy5DbXMsXHJcbiAgICAgICAgaWNvbkNsYXNzOiAnZmFzIGZhIGZhLWNvZycsXHJcbiAgICAgICAgbGF5b3V0OiBlTGF5b3V0VHlwZS5hcHBsaWNhdGlvbixcclxuICAgICAgICBvcmRlcjogNSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6ICcvY21zL2FkbWluL2ZpZWxkcycsXHJcbiAgICAgICAgbmFtZTogZUNtc1JvdXRlTmFtZXMuRmllbGRzLFxyXG4gICAgICAgIHBhcmVudE5hbWU6ZUNtc1JvdXRlTmFtZXMuU2V0dGluZ3MsXHJcbiAgICAgICAgaWNvbkNsYXNzOiAnZmFzIGZhIGZhLXBlbmNpbC1zcXVhcmUtbycsXHJcbiAgICAgICAgbGF5b3V0OiBlTGF5b3V0VHlwZS5hcHBsaWNhdGlvbixcclxuICAgICAgICBvcmRlcjogNixcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6ICcvY21zL2FkbWluL3NpdGVzJyxcclxuICAgICAgICBuYW1lOiBlQ21zUm91dGVOYW1lcy5TaXRlcyxcclxuICAgICAgICBwYXJlbnROYW1lOmVDbXNSb3V0ZU5hbWVzLlNldHRpbmdzLFxyXG4gICAgICAgIGljb25DbGFzczogJ2ZhcyBmYSBmYS1nbG9iZSAnLFxyXG4gICAgICAgIGxheW91dDogZUxheW91dFR5cGUuYXBwbGljYXRpb24sXHJcbiAgICAgICAgb3JkZXI6IDcsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiAnL2Ntcy9hZG1pbi9zZWN0aW9ucycsXHJcbiAgICAgICAgbmFtZTogZUNtc1JvdXRlTmFtZXMuU2VjdGlvbnMsXHJcbiAgICAgICAgcGFyZW50TmFtZTplQ21zUm91dGVOYW1lcy5TZXR0aW5ncyxcclxuICAgICAgICBpY29uQ2xhc3M6ICdmYXMgZmEgZmEtbmV3c3BhcGVyLW8nLFxyXG4gICAgICAgIGxheW91dDogZUxheW91dFR5cGUuYXBwbGljYXRpb24sXHJcbiAgICAgICAgb3JkZXI6IDgsXHJcbiAgICAgIH0sXHJcbiAgICAgIC8vIHtcclxuICAgICAgLy8gICBwYXRoOiAnJyxcclxuICAgICAgLy8gICBuYW1lOiAn5ryU56S6JyxcclxuICAgICAgLy8gICBpY29uQ2xhc3M6ICdmYXMgZmEgZmEtbmV3c3BhcGVyLW8nLFxyXG4gICAgICAvLyAgIGxheW91dDogZUxheW91dFR5cGUuYXBwbGljYXRpb24sXHJcbiAgICAgIC8vICAgb3JkZXI6IDksXHJcbiAgICAgIC8vIH0se1xyXG4gICAgICAvLyAgIHBhdGg6ICcvY21zL2RlbW8vdXNlUGFnZScsXHJcbiAgICAgIC8vICAgbmFtZTogJ+S9v+eUqGFicCxwYWdlJyxcclxuICAgICAgLy8gICBwYXJlbnROYW1lOifmvJTnpLonLFxyXG4gICAgICAvLyAgIGljb25DbGFzczogJ2ZhcyBmYSBmYS1uZXdzcGFwZXItbycsXHJcbiAgICAgIC8vICAgbGF5b3V0OiBlTGF5b3V0VHlwZS5hcHBsaWNhdGlvbixcclxuICAgICAgLy8gICBvcmRlcjogMTAsXHJcbiAgICAgIC8vIH0se1xyXG4gICAgICAvLyAgIHBhdGg6ICcvY21zL2RlbW8vdXNlVGFibGUnLFxyXG4gICAgICAvLyAgIG5hbWU6ICfkvb/nlKhhYnAsVGFibGUnLFxyXG4gICAgICAvLyAgIHBhcmVudE5hbWU6J+a8lOekuicsXHJcbiAgICAgIC8vICAgaWNvbkNsYXNzOiAnZmFzIGZhIGZhLW5ld3NwYXBlci1vJyxcclxuICAgICAgLy8gICBsYXlvdXQ6IGVMYXlvdXRUeXBlLmFwcGxpY2F0aW9uLFxyXG4gICAgICAvLyAgIG9yZGVyOiAxMSxcclxuICAgICAgLy8gfSxcclxuICAgIF0pO1xyXG4gIH07XHJcbn1cclxuIl19
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvY29uZmlnL3NyYy9wcm92aWRlcnMvcm91dGUucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2hELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHO0lBQ2pDO1FBQ0UsT0FBTyxFQUFFLGVBQWU7UUFDeEIsVUFBVSxFQUFFLGVBQWU7UUFDM0IsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDO1FBQ3JCLEtBQUssRUFBRSxJQUFJO0tBQ1o7Q0FDRixDQUFDO0FBRUYsTUFBTSxVQUFVLGVBQWUsQ0FBQyxhQUE0QjtJQUMxRCxPQUFPLEdBQUcsRUFBRTtRQUNWLGFBQWEsQ0FBQyxHQUFHLENBQUM7WUFDaEI7Z0JBQ0UsSUFBSSxFQUFFLE1BQU07Z0JBQ1osSUFBSSwwQ0FBb0I7Z0JBQ3hCLFNBQVMsRUFBRSx1QkFBdUI7Z0JBQ2xDLE1BQU0sNkNBQXlCO2dCQUMvQixLQUFLLEVBQUUsQ0FBQzthQUNUO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLG9CQUFvQjtnQkFDMUIsSUFBSSx1REFBd0I7Z0JBQzVCLFVBQVUsMENBQW1CO2dCQUM3QixTQUFTLEVBQUUsdUJBQXVCO2dCQUNsQyxNQUFNLDZDQUF5QjtnQkFDL0IsS0FBSyxFQUFFLENBQUM7YUFDVDtZQUNEO2dCQUNFLElBQUksRUFBRSxFQUFFO2dCQUNSLElBQUksb0RBQXlCO2dCQUM3QixVQUFVLDBDQUFtQjtnQkFDN0IsU0FBUyxFQUFFLGVBQWU7Z0JBQzFCLE1BQU0sNkNBQXlCO2dCQUMvQixLQUFLLEVBQUUsQ0FBQzthQUNUO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLG1CQUFtQjtnQkFDekIsSUFBSSwyQ0FBdUI7Z0JBQzNCLFVBQVUsb0RBQXdCO2dCQUNsQyxTQUFTLEVBQUUsMkJBQTJCO2dCQUN0QyxNQUFNLDZDQUF5QjtnQkFDL0IsS0FBSyxFQUFFLENBQUM7YUFDVDtZQUNEO2dCQUNFLElBQUksRUFBRSxrQkFBa0I7Z0JBQ3hCLElBQUkseUNBQXNCO2dCQUMxQixVQUFVLG9EQUF3QjtnQkFDbEMsU0FBUyxFQUFFLGtCQUFrQjtnQkFDN0IsTUFBTSw2Q0FBeUI7Z0JBQy9CLEtBQUssRUFBRSxDQUFDO2FBQ1Q7WUFDRDtnQkFDRSxJQUFJLEVBQUUscUJBQXFCO2dCQUMzQixJQUFJLCtDQUF5QjtnQkFDN0IsVUFBVSxvREFBd0I7Z0JBQ2xDLFNBQVMsRUFBRSx1QkFBdUI7Z0JBQ2xDLE1BQU0sNkNBQXlCO2dCQUMvQixLQUFLLEVBQUUsQ0FBQzthQUNUO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVMYXlvdXRUeXBlLCBSb3V0ZXNTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGVDbXNSb3V0ZU5hbWVzIH0gZnJvbSAnLi4vZW51bXMvcm91dGUtbmFtZXMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IENNU19ST1VURV9QUk9WSURFUlMgPSBbXHJcbiAge1xyXG4gICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG4gICAgdXNlRmFjdG9yeTogY29uZmlndXJlUm91dGVzLFxyXG4gICAgZGVwczogW1JvdXRlc1NlcnZpY2VdLFxyXG4gICAgbXVsdGk6IHRydWUsXHJcbiAgfSxcclxuXTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjb25maWd1cmVSb3V0ZXMocm91dGVzU2VydmljZTogUm91dGVzU2VydmljZSkge1xyXG4gIHJldHVybiAoKSA9PiB7XHJcbiAgICByb3V0ZXNTZXJ2aWNlLmFkZChbXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiAnL2NtcycsXHJcbiAgICAgICAgbmFtZTogZUNtc1JvdXRlTmFtZXMuQ21zLFxyXG4gICAgICAgIGljb25DbGFzczogJ2ZhcyBmYSBmYS1uZXdzcGFwZXItbycsXHJcbiAgICAgICAgbGF5b3V0OiBlTGF5b3V0VHlwZS5hcHBsaWNhdGlvbixcclxuICAgICAgICBvcmRlcjogMyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6ICcvY21zL2FkbWluL2VudHJpZXMnLFxyXG4gICAgICAgIG5hbWU6IGVDbXNSb3V0ZU5hbWVzLkVudHJpZXMsXHJcbiAgICAgICAgcGFyZW50TmFtZTplQ21zUm91dGVOYW1lcy5DbXMsXHJcbiAgICAgICAgaWNvbkNsYXNzOiAnZmFzIGZhIGZhLWZpbGUtdGV4dC1vJyxcclxuICAgICAgICBsYXlvdXQ6IGVMYXlvdXRUeXBlLmFwcGxpY2F0aW9uLFxyXG4gICAgICAgIG9yZGVyOiA0LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogJycsXHJcbiAgICAgICAgbmFtZTogZUNtc1JvdXRlTmFtZXMuU2V0dGluZ3MsXHJcbiAgICAgICAgcGFyZW50TmFtZTplQ21zUm91dGVOYW1lcy5DbXMsXHJcbiAgICAgICAgaWNvbkNsYXNzOiAnZmFzIGZhIGZhLWNvZycsXHJcbiAgICAgICAgbGF5b3V0OiBlTGF5b3V0VHlwZS5hcHBsaWNhdGlvbixcclxuICAgICAgICBvcmRlcjogNSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6ICcvY21zL2FkbWluL2ZpZWxkcycsXHJcbiAgICAgICAgbmFtZTogZUNtc1JvdXRlTmFtZXMuRmllbGRzLFxyXG4gICAgICAgIHBhcmVudE5hbWU6ZUNtc1JvdXRlTmFtZXMuU2V0dGluZ3MsXHJcbiAgICAgICAgaWNvbkNsYXNzOiAnZmFzIGZhIGZhLXBlbmNpbC1zcXVhcmUtbycsXHJcbiAgICAgICAgbGF5b3V0OiBlTGF5b3V0VHlwZS5hcHBsaWNhdGlvbixcclxuICAgICAgICBvcmRlcjogNixcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6ICcvY21zL2FkbWluL3NpdGVzJyxcclxuICAgICAgICBuYW1lOiBlQ21zUm91dGVOYW1lcy5TaXRlcyxcclxuICAgICAgICBwYXJlbnROYW1lOmVDbXNSb3V0ZU5hbWVzLlNldHRpbmdzLFxyXG4gICAgICAgIGljb25DbGFzczogJ2ZhcyBmYSBmYS1nbG9iZSAnLFxyXG4gICAgICAgIGxheW91dDogZUxheW91dFR5cGUuYXBwbGljYXRpb24sXHJcbiAgICAgICAgb3JkZXI6IDcsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiAnL2Ntcy9hZG1pbi9zZWN0aW9ucycsXHJcbiAgICAgICAgbmFtZTogZUNtc1JvdXRlTmFtZXMuU2VjdGlvbnMsXHJcbiAgICAgICAgcGFyZW50TmFtZTplQ21zUm91dGVOYW1lcy5TZXR0aW5ncyxcclxuICAgICAgICBpY29uQ2xhc3M6ICdmYXMgZmEgZmEtbmV3c3BhcGVyLW8nLFxyXG4gICAgICAgIGxheW91dDogZUxheW91dFR5cGUuYXBwbGljYXRpb24sXHJcbiAgICAgICAgb3JkZXI6IDgsXHJcbiAgICAgIH0sXHJcbiAgICBdKTtcclxuICB9O1xyXG59XHJcbiJdfQ==
@@ -71,9 +71,24 @@ class CreateOrEditEntriesComponent {
71
71
  entrySelect = '';
72
72
  set parentEntrySelect(v) {
73
73
  if (v) {
74
+ let V_extraProperties = this._CmsApiService.deepClone(this.convertExtraProperties(v.extraProperties));
75
+ v.extraProperties = V_extraProperties;
74
76
  this.entrySelect = v;
75
77
  }
76
78
  }
79
+ /**将对象中的ExtraProperties赋值到extraProperties */
80
+ convertExtraProperties(obj) {
81
+ for (let key in obj) {
82
+ if (Array.isArray(obj[key])) {
83
+ obj[key].forEach(item => {
84
+ if (item.hasOwnProperty('ExtraProperties')) {
85
+ item['extraProperties'] = item['ExtraProperties'];
86
+ }
87
+ });
88
+ }
89
+ }
90
+ return obj;
91
+ }
77
92
  /**别名表单实体 */
78
93
  get sluginput() {
79
94
  return this._entity.get('slug');
@@ -123,7 +138,7 @@ class CreateOrEditEntriesComponent {
123
138
  return (ctrl) => {
124
139
  return new Promise(resolve => {
125
140
  let subculture = this._entity?.get('culture').value;
126
- if (subculture == this.entrySelect?.culture) {
141
+ if (subculture == this.entrySelect?.culture || this.SectionSelect.type !== 0) {
127
142
  resolve(null);
128
143
  return;
129
144
  }
@@ -183,6 +198,7 @@ class CreateOrEditEntriesComponent {
183
198
  let languages = this.configState.getDeep('localization.languages');
184
199
  this.languagesList = languages.filter(el => res?.site?.languages.some(elr => elr.cultureName == el.cultureName));
185
200
  let entryTypesItem = res.entryTypes.find(el => el.id == this.entryTypeId);
201
+ this.SectionSelect = res;
186
202
  this.entryTypesItem = entryTypesItem;
187
203
  this.entryTypesList = res.entryTypes.filter(el => el.id == this.entryTypeId);
188
204
  this._entity.patchValue({
@@ -209,7 +225,6 @@ class CreateOrEditEntriesComponent {
209
225
  /**标题转化别名 */
210
226
  setTitleToSlugBlur(event) {
211
227
  let val = event.target.value;
212
- // let val = event.target.value.replace(/\s+/g, "")
213
228
  let slug = this._entity.get('slug');
214
229
  let pinyinstr = '';
215
230
  if (slug.value)
@@ -232,7 +247,7 @@ class CreateOrEditEntriesComponent {
232
247
  return;
233
248
  });
234
249
  }
235
- //编辑版本
250
+ /**编辑版本 */
236
251
  toEditUrl(id) {
237
252
  this.router.navigateByUrl('', { skipLocationChange: true }).then(() => {
238
253
  this.router.navigate([`/cms/admin/entries/${id}/edit`]);
@@ -246,12 +261,12 @@ class CreateOrEditEntriesComponent {
246
261
  });
247
262
  }
248
263
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateOrEditEntriesComponent, deps: [{ token: i1.ToasterService }, { token: i2.Location }, { token: i3.ConfigStateService }, { token: i4.SectionAdminService }, { token: i5.EntryAdminService }, { token: i2.DatePipe }, { token: i3.LocalizationService }, { token: i6.Router }, { token: i7.CmsApiService }], target: i0.ɵɵFactoryTarget.Component });
249
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CreateOrEditEntriesComponent, selector: "cms-create-or-edit-entries", inputs: { isEdit: "isEdit", ParentQueryParams: "ParentQueryParams", entity: "entity", parentEntrySelect: "parentEntrySelect" }, ngImport: i0, template: "<div class=\"create-or-edit-entry-page\" [formGroup]=\"_entity\">\n <div class=\"container \">\n <div class=\"row\">\n <div class=\"col-md-8 \">\n <div class=\"card p-2\">\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"title\">{{'Cms::Title' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" (blur)=\"setTitleToSlugBlur($event)\"\n formControlName=\"title\">\n </div>\n <ng-container *ngFor=\"let item of entryTypesItem?.fieldTabs\">\n <ng-container *ngFor=\"let el of item.fields\">\n <ng-container *ngIf=\"el&&_entity\">\n <df-dynamic [entity]=\"_entity\" [fields]=\"el\"\n [selected]=\"entrySelect ? entrySelect.extraProperties[el.field.name] : ''\"\n [parentFiledName]=\"'extraProperties'\" ></df-dynamic>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"col-md-4 \">\n <div class=\"card mb-0 p-2\">\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"slug\">{{'Cms::Slug' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"slug\" >\n <div class=\"text-danger invalid-feedback\" *ngIf=\"sluginput.errors?.repetition\">\n {{sluginput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"culture\">{{'AbpUi::Languages' | abpLocalization}}</label>\n <select class=\"form-select\" [disabled]=\"false\" formControlName=\"culture\" >\n <ng-container *ngFor=\"let item of languagesList;let i =index\">\n <option [value]=\"item.cultureName\">{{item.displayName}}</option>\n </ng-container>\n </select>\n <input type=\"text\" formControlName=\"culture_shadow\" style=\"position: absolute;z-index: -1;opacity: 0;\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"culture_shadowInput.errors?.repetition\">\n {{culture_shadowInput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"parentId\">{{'Cms::ParentEntry' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"parentId\">\n <option value=\"\"></option>\n <ng-container *ngFor=\"let item of entryTypesList;let i =index\">\n <option [value]=\"item.id\">{{item.displayName}}</option>\n </ng-container>\n </select>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"publishTime\">{{'Cms::PublishTime' | abpLocalization}}</label>\n <input type=\"datetime-local\" class=\"form-control\" step=\"1\" formControlName=\"publishTime\">\n </div>\n <!-- RevisionEntryId -->\n <div class=\"mb-2\" *ngIf=\"isEdit\">\n <label class=\"form-label\" for=\"publishTime\">{{'Cms::Version' | abpLocalization}}</label>\n <ul class=\"list-group\">\n <ng-container *ngFor=\"let item of AllVersionsList\">\n <li class=\"list-group-item flex-between\">\n <div>\n {{item.initialVersionId?(item.creationTime| date: 'YYYY/MM/dd HH:m:s'):('Cms::InitialVersion' | abpLocalization)}}\n <span class=\"badge text-bg-success ms-1\"\n *ngIf=\"item.isActivatedVersion\">{{'Cms::IsActive' | abpLocalization}}</span>\n <span class=\"badge text-bg-primary ms-1\"\n *ngIf=\"item.id === RevisionEntryId\">{{'Cms::Editing' | abpLocalization}}</span>\n </div>\n <div>\n <div ngbDropdown class=\"d-inline-block\">\n <button type=\"button\" class=\"btn btn-link-primary p-2 \"\n style=\"line-height: 0;\" id=\"dropdownBasic1\" ngbDropdownToggle>\n </button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\n <button ngbDropdownItem type=\"button\" *ngIf=\"!item.isActivatedVersion\"\n (click)=\"ActivatedVersion(item.id)\">\n <i class=\"fas fa-check me-1\"></i>{{'Cms::IsActive' | abpLocalization}}\n </button>\n <button ngbDropdownItem type=\"button\"\n routerLink=\"/cms/admin/entries/create\"\n [queryParams]=\"{RevisionEntryId:item.id}\">\n <i class=\"fas fa-plus me-1\"></i>{{'Cms::NewVersion' | abpLocalization}}\n </button>\n <button ngbDropdownItem type=\"button\" (click.stop)=\"toEditUrl(item.id)\"\n *ngIf=\"item.id !== RevisionEntryId\">\n <i class=\"fas fa-edit me-1\"></i>{{'AbpUi::Edit' | abpLocalization}}\n </button>\n <button ngbDropdownItem type=\"button\"\n (click.stop)=\"delectVersion(item.id)\"\n *ngIf=\"item.initialVersionId&&!item.isActivatedVersion&&item.id !== RevisionEntryId\">\n <i class=\"fas fa-trash me-1\"></i>{{'AbpUi::Delete' | abpLocalization}}\n </button>\n </div>\n </div>\n </div>\n </li>\n </ng-container>\n </ul>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"versionNotes\">{{'Cms::RevisionNotes' | abpLocalization}}</label>\n <textarea class=\"form-control\" formControlName=\"versionNotes\" rows=\"3\"></textarea>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: ["::ng-deep .create-or-edit-entry-page .dignite_page{height:calc(100vh - 125px);overflow:auto;background:transparent}::ng-deep .create-or-edit-entry-page .form-control,::ng-deep .create-or-edit-entry-page .form-select{padding:.475rem 1.25rem}::ng-deep .create-or-edit-entry-page .cursor-move{cursor:move}::ng-deep .create-or-edit-entry-page .bordernNavs{border:var(--bs-border-width) solid var(--lpx-border-color);padding-left:inherit;padding-right:inherit}::ng-deep .create-or-edit-entry-page .flex-between{display:flex;align-items:center;justify-content:space-between}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i8.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i8.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i8.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "directive", type: i9.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i9.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "directive", type: i10.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i10.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i10.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i10.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: i11.DynamicComponent, selector: "df-dynamic", inputs: ["selected", "type", "entity", "parentFiledName", "fields"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "pipe", type: i3.LocalizationPipe, name: "abpLocalization" }] });
264
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CreateOrEditEntriesComponent, selector: "cms-create-or-edit-entries", inputs: { isEdit: "isEdit", ParentQueryParams: "ParentQueryParams", entity: "entity", parentEntrySelect: "parentEntrySelect" }, ngImport: i0, template: "<div class=\"create-or-edit-entry-page\" [formGroup]=\"_entity\">\n <div class=\"container \">\n <div class=\"row\">\n <div class=\"col-md-8 \">\n <div class=\"card p-2\">\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"title\">{{'Cms::Title' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" (blur)=\"setTitleToSlugBlur($event)\"\n formControlName=\"title\">\n </div>\n <ng-container *ngFor=\"let item of entryTypesItem?.fieldTabs\">\n <ng-container *ngFor=\"let el of item.fields\">\n <ng-container *ngIf=\"el&&_entity\">\n <df-dynamic [entity]=\"_entity\" [fields]=\"el\"\n [selected]=\"entrySelect ? entrySelect.extraProperties[el.field.name] : ''\"\n [parentFiledName]=\"'extraProperties'\" [culture]=\"cultureinput.value\" ></df-dynamic>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"col-md-4 \">\n <div class=\"card mb-0 p-2\">\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"slug\">{{'Cms::Slug' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"slug\" >\n <div class=\"text-danger invalid-feedback\" *ngIf=\"sluginput.errors?.repetition\">\n {{sluginput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"culture\">{{'AbpUi::Languages' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"culture\" >\n <ng-container *ngFor=\"let item of languagesList;let i =index\">\n <option [value]=\"item.cultureName\">{{item.displayName}}</option>\n </ng-container>\n </select>\n <input type=\"text\" formControlName=\"culture_shadow\" style=\"position: absolute;z-index: -1;opacity: 0;\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"culture_shadowInput.errors?.repetition\">\n {{culture_shadowInput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"parentId\">{{'Cms::ParentEntry' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"parentId\">\n <option value=\"\"></option>\n <ng-container *ngFor=\"let item of entryTypesList;let i =index\">\n <option [value]=\"item.id\">{{item.displayName}}</option>\n </ng-container>\n </select>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"publishTime\">{{'Cms::PublishTime' | abpLocalization}}</label>\n <input type=\"datetime-local\" class=\"form-control\" step=\"1\" formControlName=\"publishTime\">\n </div>\n <!-- RevisionEntryId -->\n <div class=\"mb-2\" *ngIf=\"isEdit\">\n <label class=\"form-label\" for=\"publishTime\">{{'Cms::Version' | abpLocalization}}</label>\n <ul class=\"list-group\">\n <ng-container *ngFor=\"let item of AllVersionsList\">\n <li class=\"list-group-item flex-between\">\n <div>\n {{item.initialVersionId?(item.creationTime| date: 'YYYY/MM/dd HH:m:s'):('Cms::InitialVersion' | abpLocalization)}}\n <span class=\"badge text-bg-success ms-1\"\n *ngIf=\"item.isActivatedVersion\">{{'Cms::IsActive' | abpLocalization}}</span>\n <span class=\"badge text-bg-primary ms-1\"\n *ngIf=\"item.id === RevisionEntryId\">{{'Cms::Editing' | abpLocalization}}</span>\n </div>\n <div>\n <div ngbDropdown class=\"d-inline-block\">\n <button type=\"button\" class=\"btn btn-link-primary p-2 \"\n style=\"line-height: 0;\" id=\"dropdownBasic1\" ngbDropdownToggle>\n </button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\n <button ngbDropdownItem type=\"button\" *ngIf=\"!item.isActivatedVersion\"\n (click)=\"ActivatedVersion(item.id)\">\n <i class=\"fas fa-check me-1\"></i>{{'Cms::IsActive' | abpLocalization}}\n </button>\n <button ngbDropdownItem type=\"button\"\n routerLink=\"/cms/admin/entries/create\"\n [queryParams]=\"{RevisionEntryId:item.id}\">\n <i class=\"fas fa-plus me-1\"></i>{{'Cms::NewVersion' | abpLocalization}}\n </button>\n <button ngbDropdownItem type=\"button\" (click.stop)=\"toEditUrl(item.id)\"\n *ngIf=\"item.id !== RevisionEntryId\">\n <i class=\"fas fa-edit me-1\"></i>{{'AbpUi::Edit' | abpLocalization}}\n </button>\n <button ngbDropdownItem type=\"button\"\n (click.stop)=\"delectVersion(item.id)\"\n *ngIf=\"item.initialVersionId&&!item.isActivatedVersion&&item.id !== RevisionEntryId\">\n <i class=\"fas fa-trash me-1\"></i>{{'AbpUi::Delete' | abpLocalization}}\n </button>\n </div>\n </div>\n </div>\n </li>\n </ng-container>\n </ul>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"versionNotes\">{{'Cms::RevisionNotes' | abpLocalization}}</label>\n <textarea class=\"form-control\" formControlName=\"versionNotes\" rows=\"3\"></textarea>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: ["::ng-deep .create-or-edit-entry-page .dignite_page{height:calc(100vh - 125px);overflow:auto;background:transparent}::ng-deep .create-or-edit-entry-page .form-control,::ng-deep .create-or-edit-entry-page .form-select{padding:.475rem 1.25rem}::ng-deep .create-or-edit-entry-page .cursor-move{cursor:move}::ng-deep .create-or-edit-entry-page .bordernNavs{border:var(--bs-border-width) solid var(--lpx-border-color);padding-left:inherit;padding-right:inherit}::ng-deep .create-or-edit-entry-page .flex-between{display:flex;align-items:center;justify-content:space-between}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i8.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i8.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i8.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "directive", type: i9.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i9.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "directive", type: i10.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i10.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i10.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i10.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: i11.DynamicComponent, selector: "df-dynamic", inputs: ["selected", "type", "entity", "culture", "parentFiledName", "fields"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "pipe", type: i3.LocalizationPipe, name: "abpLocalization" }] });
250
265
  }
251
266
  export { CreateOrEditEntriesComponent };
252
267
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateOrEditEntriesComponent, decorators: [{
253
268
  type: Component,
254
- args: [{ selector: 'cms-create-or-edit-entries', template: "<div class=\"create-or-edit-entry-page\" [formGroup]=\"_entity\">\n <div class=\"container \">\n <div class=\"row\">\n <div class=\"col-md-8 \">\n <div class=\"card p-2\">\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"title\">{{'Cms::Title' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" (blur)=\"setTitleToSlugBlur($event)\"\n formControlName=\"title\">\n </div>\n <ng-container *ngFor=\"let item of entryTypesItem?.fieldTabs\">\n <ng-container *ngFor=\"let el of item.fields\">\n <ng-container *ngIf=\"el&&_entity\">\n <df-dynamic [entity]=\"_entity\" [fields]=\"el\"\n [selected]=\"entrySelect ? entrySelect.extraProperties[el.field.name] : ''\"\n [parentFiledName]=\"'extraProperties'\" ></df-dynamic>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"col-md-4 \">\n <div class=\"card mb-0 p-2\">\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"slug\">{{'Cms::Slug' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"slug\" >\n <div class=\"text-danger invalid-feedback\" *ngIf=\"sluginput.errors?.repetition\">\n {{sluginput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"culture\">{{'AbpUi::Languages' | abpLocalization}}</label>\n <select class=\"form-select\" [disabled]=\"false\" formControlName=\"culture\" >\n <ng-container *ngFor=\"let item of languagesList;let i =index\">\n <option [value]=\"item.cultureName\">{{item.displayName}}</option>\n </ng-container>\n </select>\n <input type=\"text\" formControlName=\"culture_shadow\" style=\"position: absolute;z-index: -1;opacity: 0;\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"culture_shadowInput.errors?.repetition\">\n {{culture_shadowInput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"parentId\">{{'Cms::ParentEntry' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"parentId\">\n <option value=\"\"></option>\n <ng-container *ngFor=\"let item of entryTypesList;let i =index\">\n <option [value]=\"item.id\">{{item.displayName}}</option>\n </ng-container>\n </select>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"publishTime\">{{'Cms::PublishTime' | abpLocalization}}</label>\n <input type=\"datetime-local\" class=\"form-control\" step=\"1\" formControlName=\"publishTime\">\n </div>\n <!-- RevisionEntryId -->\n <div class=\"mb-2\" *ngIf=\"isEdit\">\n <label class=\"form-label\" for=\"publishTime\">{{'Cms::Version' | abpLocalization}}</label>\n <ul class=\"list-group\">\n <ng-container *ngFor=\"let item of AllVersionsList\">\n <li class=\"list-group-item flex-between\">\n <div>\n {{item.initialVersionId?(item.creationTime| date: 'YYYY/MM/dd HH:m:s'):('Cms::InitialVersion' | abpLocalization)}}\n <span class=\"badge text-bg-success ms-1\"\n *ngIf=\"item.isActivatedVersion\">{{'Cms::IsActive' | abpLocalization}}</span>\n <span class=\"badge text-bg-primary ms-1\"\n *ngIf=\"item.id === RevisionEntryId\">{{'Cms::Editing' | abpLocalization}}</span>\n </div>\n <div>\n <div ngbDropdown class=\"d-inline-block\">\n <button type=\"button\" class=\"btn btn-link-primary p-2 \"\n style=\"line-height: 0;\" id=\"dropdownBasic1\" ngbDropdownToggle>\n </button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\n <button ngbDropdownItem type=\"button\" *ngIf=\"!item.isActivatedVersion\"\n (click)=\"ActivatedVersion(item.id)\">\n <i class=\"fas fa-check me-1\"></i>{{'Cms::IsActive' | abpLocalization}}\n </button>\n <button ngbDropdownItem type=\"button\"\n routerLink=\"/cms/admin/entries/create\"\n [queryParams]=\"{RevisionEntryId:item.id}\">\n <i class=\"fas fa-plus me-1\"></i>{{'Cms::NewVersion' | abpLocalization}}\n </button>\n <button ngbDropdownItem type=\"button\" (click.stop)=\"toEditUrl(item.id)\"\n *ngIf=\"item.id !== RevisionEntryId\">\n <i class=\"fas fa-edit me-1\"></i>{{'AbpUi::Edit' | abpLocalization}}\n </button>\n <button ngbDropdownItem type=\"button\"\n (click.stop)=\"delectVersion(item.id)\"\n *ngIf=\"item.initialVersionId&&!item.isActivatedVersion&&item.id !== RevisionEntryId\">\n <i class=\"fas fa-trash me-1\"></i>{{'AbpUi::Delete' | abpLocalization}}\n </button>\n </div>\n </div>\n </div>\n </li>\n </ng-container>\n </ul>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"versionNotes\">{{'Cms::RevisionNotes' | abpLocalization}}</label>\n <textarea class=\"form-control\" formControlName=\"versionNotes\" rows=\"3\"></textarea>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: ["::ng-deep .create-or-edit-entry-page .dignite_page{height:calc(100vh - 125px);overflow:auto;background:transparent}::ng-deep .create-or-edit-entry-page .form-control,::ng-deep .create-or-edit-entry-page .form-select{padding:.475rem 1.25rem}::ng-deep .create-or-edit-entry-page .cursor-move{cursor:move}::ng-deep .create-or-edit-entry-page .bordernNavs{border:var(--bs-border-width) solid var(--lpx-border-color);padding-left:inherit;padding-right:inherit}::ng-deep .create-or-edit-entry-page .flex-between{display:flex;align-items:center;justify-content:space-between}\n"] }]
269
+ args: [{ selector: 'cms-create-or-edit-entries', template: "<div class=\"create-or-edit-entry-page\" [formGroup]=\"_entity\">\n <div class=\"container \">\n <div class=\"row\">\n <div class=\"col-md-8 \">\n <div class=\"card p-2\">\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"title\">{{'Cms::Title' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" (blur)=\"setTitleToSlugBlur($event)\"\n formControlName=\"title\">\n </div>\n <ng-container *ngFor=\"let item of entryTypesItem?.fieldTabs\">\n <ng-container *ngFor=\"let el of item.fields\">\n <ng-container *ngIf=\"el&&_entity\">\n <df-dynamic [entity]=\"_entity\" [fields]=\"el\"\n [selected]=\"entrySelect ? entrySelect.extraProperties[el.field.name] : ''\"\n [parentFiledName]=\"'extraProperties'\" [culture]=\"cultureinput.value\" ></df-dynamic>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"col-md-4 \">\n <div class=\"card mb-0 p-2\">\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"slug\">{{'Cms::Slug' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"slug\" >\n <div class=\"text-danger invalid-feedback\" *ngIf=\"sluginput.errors?.repetition\">\n {{sluginput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"culture\">{{'AbpUi::Languages' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"culture\" >\n <ng-container *ngFor=\"let item of languagesList;let i =index\">\n <option [value]=\"item.cultureName\">{{item.displayName}}</option>\n </ng-container>\n </select>\n <input type=\"text\" formControlName=\"culture_shadow\" style=\"position: absolute;z-index: -1;opacity: 0;\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"culture_shadowInput.errors?.repetition\">\n {{culture_shadowInput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"parentId\">{{'Cms::ParentEntry' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"parentId\">\n <option value=\"\"></option>\n <ng-container *ngFor=\"let item of entryTypesList;let i =index\">\n <option [value]=\"item.id\">{{item.displayName}}</option>\n </ng-container>\n </select>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"publishTime\">{{'Cms::PublishTime' | abpLocalization}}</label>\n <input type=\"datetime-local\" class=\"form-control\" step=\"1\" formControlName=\"publishTime\">\n </div>\n <!-- RevisionEntryId -->\n <div class=\"mb-2\" *ngIf=\"isEdit\">\n <label class=\"form-label\" for=\"publishTime\">{{'Cms::Version' | abpLocalization}}</label>\n <ul class=\"list-group\">\n <ng-container *ngFor=\"let item of AllVersionsList\">\n <li class=\"list-group-item flex-between\">\n <div>\n {{item.initialVersionId?(item.creationTime| date: 'YYYY/MM/dd HH:m:s'):('Cms::InitialVersion' | abpLocalization)}}\n <span class=\"badge text-bg-success ms-1\"\n *ngIf=\"item.isActivatedVersion\">{{'Cms::IsActive' | abpLocalization}}</span>\n <span class=\"badge text-bg-primary ms-1\"\n *ngIf=\"item.id === RevisionEntryId\">{{'Cms::Editing' | abpLocalization}}</span>\n </div>\n <div>\n <div ngbDropdown class=\"d-inline-block\">\n <button type=\"button\" class=\"btn btn-link-primary p-2 \"\n style=\"line-height: 0;\" id=\"dropdownBasic1\" ngbDropdownToggle>\n </button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\n <button ngbDropdownItem type=\"button\" *ngIf=\"!item.isActivatedVersion\"\n (click)=\"ActivatedVersion(item.id)\">\n <i class=\"fas fa-check me-1\"></i>{{'Cms::IsActive' | abpLocalization}}\n </button>\n <button ngbDropdownItem type=\"button\"\n routerLink=\"/cms/admin/entries/create\"\n [queryParams]=\"{RevisionEntryId:item.id}\">\n <i class=\"fas fa-plus me-1\"></i>{{'Cms::NewVersion' | abpLocalization}}\n </button>\n <button ngbDropdownItem type=\"button\" (click.stop)=\"toEditUrl(item.id)\"\n *ngIf=\"item.id !== RevisionEntryId\">\n <i class=\"fas fa-edit me-1\"></i>{{'AbpUi::Edit' | abpLocalization}}\n </button>\n <button ngbDropdownItem type=\"button\"\n (click.stop)=\"delectVersion(item.id)\"\n *ngIf=\"item.initialVersionId&&!item.isActivatedVersion&&item.id !== RevisionEntryId\">\n <i class=\"fas fa-trash me-1\"></i>{{'AbpUi::Delete' | abpLocalization}}\n </button>\n </div>\n </div>\n </div>\n </li>\n </ng-container>\n </ul>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"versionNotes\">{{'Cms::RevisionNotes' | abpLocalization}}</label>\n <textarea class=\"form-control\" formControlName=\"versionNotes\" rows=\"3\"></textarea>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: ["::ng-deep .create-or-edit-entry-page .dignite_page{height:calc(100vh - 125px);overflow:auto;background:transparent}::ng-deep .create-or-edit-entry-page .form-control,::ng-deep .create-or-edit-entry-page .form-select{padding:.475rem 1.25rem}::ng-deep .create-or-edit-entry-page .cursor-move{cursor:move}::ng-deep .create-or-edit-entry-page .bordernNavs{border:var(--bs-border-width) solid var(--lpx-border-color);padding-left:inherit;padding-right:inherit}::ng-deep .create-or-edit-entry-page .flex-between{display:flex;align-items:center;justify-content:space-between}\n"] }]
255
270
  }], ctorParameters: function () { return [{ type: i1.ToasterService }, { type: i2.Location }, { type: i3.ConfigStateService }, { type: i4.SectionAdminService }, { type: i5.EntryAdminService }, { type: i2.DatePipe }, { type: i3.LocalizationService }, { type: i6.Router }, { type: i7.CmsApiService }]; }, propDecorators: { isEdit: [{
256
271
  type: Input
257
272
  }], ParentQueryParams: [{
@@ -261,4 +276,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
261
276
  }], parentEntrySelect: [{
262
277
  type: Input
263
278
  }] } });
264
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLWVkaXQtZW50cmllcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2VudHJpZXMvY3JlYXRlLW9yLWVkaXQtZW50cmllcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2VudHJpZXMvY3JlYXRlLW9yLWVkaXQtZW50cmllcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQW9CLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFnQyxXQUFXLEVBQStCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBUXBILE1BS2EsNEJBQTRCO0lBRTdCO0lBQ0Q7SUFDQztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQVRWLFlBQ1UsT0FBdUIsRUFDeEIsU0FBbUIsRUFDbEIsV0FBK0IsRUFDL0Isb0JBQXlDLEVBQ3pDLGtCQUFxQyxFQUNyQyxRQUFrQixFQUNsQixvQkFBeUMsRUFDekMsTUFBYyxFQUNkLGNBQTZCO1FBUjdCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3hCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbEIsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQy9CLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFDekMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFDekMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG1CQUFjLEdBQWQsY0FBYyxDQUFlO0lBQ25DLENBQUM7SUFHTCxRQUFRO0lBQ1IsV0FB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QUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUM7WUFDdEYsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUE7UUFDM0IsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO3dHQWhQVSw0QkFBNEI7NEZBQTVCLDRCQUE0QixrTUNoQnpDLDRnUEEyR007O1NEM0ZPLDRCQUE0Qjs0RkFBNUIsNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNFLDRCQUE0Qjt5VUF1QzdCLE1BQU07c0JBQWQsS0FBSztnQkFLSyxpQkFBaUI7c0JBRDNCLEtBQUs7Z0JBVUssTUFBTTtzQkFEaEIsS0FBSztnQkFTSyxpQkFBaUI7c0JBRDNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25maWdTdGF0ZVNlcnZpY2UsIExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgVG9hc3RlclNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XG5pbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBFbnRyeUFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2FkbWluL2VudHJpZXMnO1xuaW1wb3J0IHsgU2VjdGlvbkFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2FkbWluL3NlY3Rpb25zJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERhdGVQaXBlLCBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDbXNBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbXMtY3JlYXRlLW9yLWVkaXQtZW50cmllcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jcmVhdGUtb3ItZWRpdC1lbnRyaWVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3JlYXRlLW9yLWVkaXQtZW50cmllcy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENyZWF0ZU9yRWRpdEVudHJpZXNDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0b2FzdGVyOiBUb2FzdGVyU2VydmljZSxcbiAgICBwdWJsaWMgX2xvY2F0aW9uOiBMb2NhdGlvbixcbiAgICBwcml2YXRlIGNvbmZpZ1N0YXRlOiBDb25maWdTdGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfU2VjdGlvbkFkbWluU2VydmljZTogU2VjdGlvbkFkbWluU2VydmljZSxcbiAgICBwcml2YXRlIF9FbnRyeUFkbWluU2VydmljZTogRW50cnlBZG1pblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGUsXG4gICAgcHJpdmF0ZSBfTG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgX0Ntc0FwaVNlcnZpY2U6IENtc0FwaVNlcnZpY2UsXG4gICkgeyB9XG5cblxuICAvKiror63oqIAgKi9cbiAgY3VsdHVyZU5hbWU6IHN0cmluZyA9ICcnXG4gIC8qKuadoeebrmlkICovXG4gIGVudHJ5VHlwZUlkOiBzdHJpbmcgPSAnJ1xuXG4gIC8qKuaWsOW7uueJiOacrOeahOeJiOacrGlk77yM5ZCM5p2h55uuaWQgKi9cbiAgUmV2aXNpb25FbnRyeUlkOiBhbnkgPSAnJ1xuICAvKirpgInmi6nnmoTmnaHnm67pobkgKi9cbiAgZW50cnlUeXBlc0l0ZW06IGFueSA9ICcnXG4gIC8qKueJiOWdl2lkICovXG4gIHNlY3Rpb25JZDogc3RyaW5nID0gJydcbiAgLyoq54mI5Z2X6K+m5oOFICovXG4gIFNlY3Rpb25TZWxlY3Q6IGFueSA9ICcnXG4gIC8qKuivreiogOWIl+ihqCAqL1xuICBsYW5ndWFnZXNMaXN0OiBhbnlbXSA9IFtdXG4gIC8qKuadoeebruexu+Wei+WIl+ihqC3nlKjkuo7pgInmi6nkuIrnuqfmnaHnm64gKi9cbiAgZW50cnlUeXBlc0xpc3Q6IGFueVtdID0gW11cbiAgLyoq54mI5pys5YiX6KGoICovXG4gIEFsbFZlcnNpb25zTGlzdDogYW55W10gPSBbXVxuXG4gIC8qKuaYr+WQpuaYr+e8lui+kSAqL1xuICBASW5wdXQoKSBpc0VkaXQgPSBmYWxzZVxuXG4gIC8qKuadpeiHqueItue7hOS7tueahOS8oOWAvCAqL1xuICBGcm9tUGFyZW50UXVlcnlQYXJhbXM6IGFueSA9ICcnXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgUGFyZW50UXVlcnlQYXJhbXModjogYW55KSB7XG4gICAgaWYgKHYpIHtcbiAgICAgIHRoaXMuRnJvbVBhcmVudFF1ZXJ5UGFyYW1zID0gdjtcbiAgICB9XG4gIH1cblxuICAvKirooajljZXlrp7kvZMgKi9cbiAgX2VudGl0eTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZW50aXR5KHY6IGFueSkge1xuICAgIGlmICh2KSB7XG4gICAgICB0aGlzLl9lbnRpdHkgPSB2O1xuICAgIH1cbiAgfVxuICAvKirmjIflrpppZOeahOadoeebruS/oeaBryAqL1xuICBlbnRyeVNlbGVjdDogYW55ID0gJydcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBwYXJlbnRFbnRyeVNlbGVjdCh2OiBhbnkpIHtcbiAgICBpZiAodikge1xuICAgICAgdGhpcy5lbnRyeVNlbGVjdCA9IHY7XG4gICAgfVxuICB9XG5cbiAgLyoq5Yir5ZCN6KGo5Y2V5a6e5L2TICovXG4gIGdldCBzbHVnaW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0eS5nZXQoJ3NsdWcnKVxuICB9XG4gIC8qKuivreiogOihqOWNleWunuS9kyAqL1xuICBnZXQgY3VsdHVyZWlucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl9lbnRpdHkuZ2V0KCdjdWx0dXJlJylcbiAgfVxuICAvKiror63oqIDooajljZXlrp7kvZPlvbHlrZAgKi9cbiAgZ2V0IGN1bHR1cmVfc2hhZG93SW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0eS5nZXQoJ2N1bHR1cmVfc2hhZG93JylcbiAgfVxuXG4gIC8qKmV4dHJhUHJvcGVydGllc+mFjee9ruihqOWNleWunuS9kyAqL1xuICBnZXQgZXh0cmFQcm9wZXJ0aWVzKCkge1xuICAgIHJldHVybiB0aGlzLl9lbnRpdHkuZ2V0KCdleHRyYVByb3BlcnRpZXMnKSBhcyBGb3JtR3JvdXBcbiAgfVxuICBhc3luYyBuZ0FmdGVyQ29udGVudEluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy9DYWxsZWQgYWZ0ZXIgbmdPbkluaXQgd2hlbiB0aGUgY29tcG9uZW50J3Mgb3IgZGlyZWN0aXZlJ3MgY29udGVudCBoYXMgYmVlbiBpbml0aWFsaXplZC5cbiAgICAvL0FkZCAnaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0JyB0byB0aGUgY2xhc3MuXG4gICAgbGV0IHF1ZXJ5UGFyYW1zID0gdGhpcy5Gcm9tUGFyZW50UXVlcnlQYXJhbXNcbiAgICBpZiAodGhpcy5fZW50aXR5ICYmIHRoaXMuRnJvbVBhcmVudFF1ZXJ5UGFyYW1zKSB7XG4gICAgICB0aGlzLl9lbnRpdHkuc2V0Q29udHJvbCgnc2x1ZycsIG5ldyBGb3JtQ29udHJvbCgnJywge1xuICAgICAgICB2YWxpZGF0b3JzOiBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICBhc3luY1ZhbGlkYXRvcnM6IHRoaXMucmVwZXRpdGlvbkFzeW5jVmFsaWRhdG9yKCksXG4gICAgICAgIHVwZGF0ZU9uOiAnYmx1cidcbiAgICAgIH0pKVxuICAgICAgdGhpcy5fZW50aXR5LnNldENvbnRyb2woJ2N1bHR1cmVfc2hhZG93JywgbmV3IEZvcm1Db250cm9sKCcnLCB7XG4gICAgICAgIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgYXN5bmNWYWxpZGF0b3JzOiB0aGlzLmN1bHR1cmVBc3luY1ZhbGlkYXRvcl90ZXN0KCksXG4gICAgICB9KSlcbiAgICAgIHRoaXMuX2VudGl0eS5nZXQoJ2N1bHR1cmUnKS5kaXNhYmxlKCk7XG4gICAgICBpZiAocXVlcnlQYXJhbXMuUmV2aXNpb25FbnRyeUlkICYmIHRoaXMuZW50cnlTZWxlY3QpIHtcbiAgICAgICAgdGhpcy5SZXZpc2lvbkVudHJ5SWQgPSBxdWVyeVBhcmFtcy5SZXZpc2lvbkVudHJ5SWRcbiAgICAgICAgdGhpcy5zZXRFbnRyeWNvbmZpZyh0aGlzLmVudHJ5U2VsZWN0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2V0RW50cnljb25maWcocXVlcnlQYXJhbXMpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuc2VjdGlvbklkKSBhd2FpdCB0aGlzLmdldFNlY3Rpb25TZWxlY3QoKTtcbiAgICAgIGlmICh0aGlzLlJldmlzaW9uRW50cnlJZCkgYXdhaXQgdGhpcy5nZXRBbGxWZXJzaW9uc0xpc3QoKVxuICAgIH1cbiAgfVxuXG5cbiAgLyoq5a6a5LmJ6Ieq5a6a5LmJ5byC5q2l6aqM6K+BICovXG4gIGN1bHR1cmVBc3luY1ZhbGlkYXRvcl90ZXN0KCkge1xuICAgIHJldHVybiAoY3RybDogQWJzdHJhY3RDb250cm9sKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gfCBPYnNlcnZhYmxlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiA9PiB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICAgIGxldCBzdWJjdWx0dXJlID0gdGhpcy5fZW50aXR5Py5nZXQoJ2N1bHR1cmUnKS52YWx1ZVxuICAgICAgICBpZiAoc3ViY3VsdHVyZSA9PSB0aGlzLmVudHJ5U2VsZWN0Py5jdWx0dXJlKSB7XG4gICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9FbnRyeUFkbWluU2VydmljZS5jdWx0dXJlRXhpc3RXaXRoU2luZ2xlU2VjdGlvbih7XG4gICAgICAgICAgY3VsdHVyZTogc3ViY3VsdHVyZSxcbiAgICAgICAgICBzZWN0aW9uSWQ6IHRoaXMuc2VjdGlvbklkLFxuICAgICAgICAgIGVudHJ5VHlwZUlkOiB0aGlzLmVudHJ5VHlwZUlkXG4gICAgICAgIH0pLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICAgIHJlc29sdmUoeyByZXBldGl0aW9uOiB0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYENtczo6RW50cmllc0FscmVhZHlFeGlzdEVudHJ5VHlwZWAsIHRoaXMuZW50cnlUeXBlc0l0ZW0uZGlzcGxheU5hbWUsIHRoaXMubGFuZ3VhZ2VzTGlzdC5maW5kKGVsID0+IGVsLmN1bHR1cmVOYW1lID09IHN1YmN1bHR1cmUpLmRpc3BsYXlOYW1lKSB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9KTtcbiAgICB9O1xuICB9XG5cblxuICAvKiogIFxuICog6K6+572u5p2h55uu6K+m5oOFICBcbiAqIEBwYXJhbSB7b2JqZWN0fSBzb3VyY2UgLSDmlbDmja7mupDlr7nosaEgIFxuICovXG4gIHNldEVudHJ5Y29uZmlnKHNvdXJjZTogYW55KSB7XG4gICAgdGhpcy5lbnRyeVR5cGVJZCA9IHNvdXJjZS5lbnRyeVR5cGVJZDtcbiAgICB0aGlzLmN1bHR1cmVOYW1lID0gc291cmNlLmN1bHR1cmUgfHwgc291cmNlLmN1bHR1cmVOYW1lO1xuICAgIHRoaXMuc2VjdGlvbklkID0gc291cmNlLnNlY3Rpb25JZDtcbiAgfVxuICB0aW1lOiBudW1iZXIgPSAwXG5cbiAgLyoq5a6a5LmJ6Ieq5a6a5LmJ5byC5q2l6aqM6K+BICovXG4gIHJlcGV0aXRpb25Bc3luY1ZhbGlkYXRvcigpIHtcbiAgICByZXR1cm4gKGN0cmw6IEFic3RyYWN0Q29udHJvbCk6IFByb21pc2U8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+IHwgT2JzZXJ2YWJsZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gPT4ge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgICBsZXQgc3Vic2x1ZyA9IHRoaXMuX2VudGl0eT8uZ2V0KCdzbHVnJykudmFsdWVcbiAgICAgICAgaWYgKHN1YnNsdWcgPT0gdGhpcy5lbnRyeVNlbGVjdD8uc2x1Zykge1xuICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fRW50cnlBZG1pblNlcnZpY2Uuc2x1Z0V4aXN0cyh7XG4gICAgICAgICAgY3VsdHVyZTogdGhpcy5jdWx0dXJlTmFtZSxcbiAgICAgICAgICBzZWN0aW9uSWQ6IHRoaXMuc2VjdGlvbklkLFxuICAgICAgICAgIHNsdWc6IHN1YnNsdWdcbiAgICAgICAgfSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgcmVzb2x2ZSh7IHJlcGV0aXRpb246IHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQ21zOjpFbnRyeVNsdWd7MH1BbHJlYWR5RXhpc3RgLCBjdHJsLnZhbHVlKSB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9KTtcbiAgICB9O1xuICB9XG5cblxuXG4gIC8qKuiOt+WPlueJiOWdl+ivpuaDhSAqL1xuICBnZXRTZWN0aW9uU2VsZWN0KCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0cykgPT4ge1xuICAgICAgdGhpcy5fU2VjdGlvbkFkbWluU2VydmljZS5nZXQodGhpcy5zZWN0aW9uSWQpLnN1YnNjcmliZShhc3luYyAocmVzKSA9PiB7XG4gICAgICAgIGxldCBsYW5ndWFnZXMgPSB0aGlzLmNvbmZpZ1N0YXRlLmdldERlZXAoJ2xvY2FsaXphdGlvbi5sYW5ndWFnZXMnKVxuICAgICAgICB0aGlzLmxhbmd1YWdlc0xpc3QgPSBsYW5ndWFnZXMuZmlsdGVyKGVsID0+IHJlcz8uc2l0ZT8ubGFuZ3VhZ2VzLnNvbWUoZWxyID0+IGVsci5jdWx0dXJlTmFtZSA9PSBlbC5jdWx0dXJlTmFtZSkpXG4gICAgICAgIGxldCBlbnRyeVR5cGVzSXRlbSA9IHJlcy5lbnRyeVR5cGVzLmZpbmQoZWwgPT4gZWwuaWQgPT0gdGhpcy5lbnRyeVR5cGVJZClcbiAgICAgICAgdGhpcy5lbnRyeVR5cGVzSXRlbSA9IGVudHJ5VHlwZXNJdGVtXG4gICAgICAgIHRoaXMuZW50cnlUeXBlc0xpc3QgPSByZXMuZW50cnlUeXBlcy5maWx0ZXIoZWwgPT4gZWwuaWQgPT0gdGhpcy5lbnRyeVR5cGVJZClcbiAgICAgICAgdGhpcy5fZW50aXR5LnBhdGNoVmFsdWUoe1xuICAgICAgICAgIC4uLnRoaXMuZW50cnlTZWxlY3QsXG4gICAgICAgICAgaW5pdGlhbFZlcnNpb25JZDogdGhpcy5lbnRyeVNlbGVjdD8uaW5pdGlhbFZlcnNpb25JZCB8fCB0aGlzLlJldmlzaW9uRW50cnlJZCB8fCAnJyxcbiAgICAgICAgICBjdWx0dXJlOiB0aGlzLmN1bHR1cmVOYW1lLFxuICAgICAgICAgIGN1bHR1cmVfc2hhZG93OiB0aGlzLmN1bHR1cmVOYW1lLFxuICAgICAgICAgIGVudHJ5VHlwZUlkOiB0aGlzLmVudHJ5VHlwZUlkLFxuICAgICAgICAgIHB1Ymxpc2hUaW1lOiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShuZXcgRGF0ZSgpLCAneXl5eS1NTS1kZCBISDptbTpzcycpLFxuICAgICAgICB9KVxuICAgICAgICByZXNvbHZlKHRydWUpXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICAvKirojrflj5bmnaHnm67niYjmnKzliJfooaggKi9cbiAgZ2V0QWxsVmVyc2lvbnNMaXN0KCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0cykgPT4ge1xuXG4gICAgICB0aGlzLl9FbnRyeUFkbWluU2VydmljZS5nZXRBbGxWZXJzaW9ucyh0aGlzLlJldmlzaW9uRW50cnlJZCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMuQWxsVmVyc2lvbnNMaXN0ID0gcmVzLml0ZW1zXG4gICAgICAgIHJlc29sdmUocmVzKVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgLyoq5qCH6aKY6L2s5YyW5Yir5ZCNICovXG4gIHNldFRpdGxlVG9TbHVnQmx1cihldmVudCkge1xuICAgIGxldCB2YWwgPSBldmVudC50YXJnZXQudmFsdWVcbiAgICAvLyBsZXQgdmFsID0gZXZlbnQudGFyZ2V0LnZhbHVlLnJlcGxhY2UoL1xccysvZywgXCJcIilcbiAgICBsZXQgc2x1ZyA9IHRoaXMuX2VudGl0eS5nZXQoJ3NsdWcnKVxuICAgIGxldCBwaW55aW5zdHIgPSAnJ1xuICAgIGlmIChzbHVnLnZhbHVlKSByZXR1cm5cbiAgICBwaW55aW5zdHIgPSB0aGlzLl9DbXNBcGlTZXJ2aWNlLmNoaW5lc2VUb1Bpbnlpbih2YWwpXG4gICAgdGhpcy5fZW50aXR5LnBhdGNoVmFsdWUoe1xuICAgICAgc2x1ZzogcGlueWluc3RyIHx8IHZhbFxuICAgIH0pXG4gIH1cbiAgLyoq5L2/55SoVW5pY29kZee8lueggeiMg+WbtOWIpOaWreaYr+WQpuaYr+S4reaWh+Wtl+espiAqL1xuICBpc0NoaW5lc2Uoc3RyKSB7XG4gICAgcmV0dXJuIC9eW1xcdTRlMDAtXFx1OWZhNV0rJC8udGVzdChzdHIpO1xuICB9XG5cbiAgLyoq5r+A5rS7ICovXG4gIEFjdGl2YXRlZFZlcnNpb24oVmVyc2lvbklkKSB7XG4gICAgdGhpcy5fRW50cnlBZG1pblNlcnZpY2UuYWN0aXZhdGUoVmVyc2lvbklkKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgdGhpcy5BbGxWZXJzaW9uc0xpc3QuZm9yRWFjaChlbCA9PiB7XG4gICAgICAgIGVsLmlzQWN0aXZhdGVkVmVyc2lvbiA9IGVsLmlkID09PSBWZXJzaW9uSWRcbiAgICAgIH0pXG4gICAgICByZXR1cm5cbiAgICB9KVxuICB9XG4gIC8v57yW6L6R54mI5pysXG4gIHRvRWRpdFVybChpZCkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJycsIHsgc2tpcExvY2F0aW9uQ2hhbmdlOiB0cnVlIH0pLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AvY21zL2FkbWluL2VudHJpZXMvJHtpZH0vZWRpdGBdKTtcbiAgICB9KTtcbiAgfVxuICAvKirliKDpmaTniYjmnKwgKi9cbiAgZGVsZWN0VmVyc2lvbih2aWQpIHtcbiAgICB0aGlzLl9FbnRyeUFkbWluU2VydmljZS5kZWxldGUodmlkKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQWJwVWk6OlN1Y2Nlc3NmdWxseURlbGV0ZWRgKSk7XG4gICAgICB0aGlzLmdldEFsbFZlcnNpb25zTGlzdCgpXG4gICAgfSlcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiY3JlYXRlLW9yLWVkaXQtZW50cnktcGFnZVwiIFtmb3JtR3JvdXBdPVwiX2VudGl0eVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXIgXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOCBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCAgcC0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwidGl0bGVcIj57eydDbXM6OlRpdGxlJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgICAoYmx1cik9XCJzZXRUaXRsZVRvU2x1Z0JsdXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZW50cnlUeXBlc0l0ZW0/LmZpZWxkVGFic1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZWwgb2YgaXRlbS5maWVsZHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWwmJl9lbnRpdHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRmLWR5bmFtaWMgW2VudGl0eV09XCJfZW50aXR5XCIgW2ZpZWxkc109XCJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwiZW50cnlTZWxlY3QgPyBlbnRyeVNlbGVjdC5leHRyYVByb3BlcnRpZXNbZWwuZmllbGQubmFtZV0gOiAnJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGFyZW50RmlsZWROYW1lXT1cIidleHRyYVByb3BlcnRpZXMnXCIgPjwvZGYtZHluYW1pYz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIG1iLTAgcC0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwic2x1Z1wiPnt7J0Ntczo6U2x1ZycgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiICBmb3JtQ29udHJvbE5hbWU9XCJzbHVnXCIgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlciBpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJzbHVnaW5wdXQuZXJyb3JzPy5yZXBldGl0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tzbHVnaW5wdXQuZXJyb3JzPy5yZXBldGl0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJjdWx0dXJlXCI+e3snQWJwVWk6Okxhbmd1YWdlcycgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3RcIiAgIFtkaXNhYmxlZF09XCJmYWxzZVwiIGZvcm1Db250cm9sTmFtZT1cImN1bHR1cmVcIiA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsYW5ndWFnZXNMaXN0O2xldCBpID1pbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJpdGVtLmN1bHR1cmVOYW1lXCI+e3tpdGVtLmRpc3BsYXlOYW1lfX08L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwiY3VsdHVyZV9zaGFkb3dcIiBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTt6LWluZGV4OiAtMTtvcGFjaXR5OiAwO1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyIGludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cImN1bHR1cmVfc2hhZG93SW5wdXQuZXJyb3JzPy5yZXBldGl0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjdWx0dXJlX3NoYWRvd0lucHV0LmVycm9ycz8ucmVwZXRpdGlvbn19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwicGFyZW50SWRcIj57eydDbXM6OlBhcmVudEVudHJ5JyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdFwiIGZvcm1Db250cm9sTmFtZT1cInBhcmVudElkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZW50cnlUeXBlc0xpc3Q7bGV0IGkgPWluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIml0ZW0uaWRcIj57e2l0ZW0uZGlzcGxheU5hbWV9fTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInB1Ymxpc2hUaW1lXCI+e3snQ21zOjpQdWJsaXNoVGltZScgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImRhdGV0aW1lLWxvY2FsXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBzdGVwPVwiMVwiIGZvcm1Db250cm9sTmFtZT1cInB1Ymxpc2hUaW1lXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8IS0tIFJldmlzaW9uRW50cnlJZCAtLT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTJcIiAqbmdJZj1cImlzRWRpdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInB1Ymxpc2hUaW1lXCI+e3snQ21zOjpWZXJzaW9uJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3QtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIEFsbFZlcnNpb25zTGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJsaXN0LWdyb3VwLWl0ZW0gZmxleC1iZXR3ZWVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbS5pbml0aWFsVmVyc2lvbklkPyhpdGVtLmNyZWF0aW9uVGltZXwgZGF0ZTogJ1lZWVkvTU0vZGQgSEg6bTpzJyk6KCdDbXM6OkluaXRpYWxWZXJzaW9uJyB8IGFicExvY2FsaXphdGlvbil9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgdGV4dC1iZy1zdWNjZXNzIG1zLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uaXNBY3RpdmF0ZWRWZXJzaW9uXCI+e3snQ21zOjpJc0FjdGl2ZScgfCBhYnBMb2NhbGl6YXRpb259fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIHRleHQtYmctcHJpbWFyeSBtcy0xXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLmlkID09PSBSZXZpc2lvbkVudHJ5SWRcIj57eydDbXM6OkVkaXRpbmcnIHwgYWJwTG9jYWxpemF0aW9ufX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjbGFzcz1cImQtaW5saW5lLWJsb2NrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1saW5rLXByaW1hcnkgcC0yIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImxpbmUtaGVpZ2h0OiAwO1wiIGlkPVwiZHJvcGRvd25CYXNpYzFcIiBuZ2JEcm9wZG93blRvZ2dsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd25NZW51IGFyaWEtbGFiZWxsZWRieT1cImRyb3Bkb3duQmFzaWMxXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCIhaXRlbS5pc0FjdGl2YXRlZFZlcnNpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJBY3RpdmF0ZWRWZXJzaW9uKGl0ZW0uaWQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hlY2sgbWUtMVwiPjwvaT57eydDbXM6OklzQWN0aXZlJyB8IGFicExvY2FsaXphdGlvbn19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms9XCIvY21zL2FkbWluL2VudHJpZXMvY3JlYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcXVlcnlQYXJhbXNdPVwie1JldmlzaW9uRW50cnlJZDppdGVtLmlkfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXBsdXMgbWUtMVwiPjwvaT57eydDbXM6Ok5ld1ZlcnNpb24nIHwgYWJwTG9jYWxpemF0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gdHlwZT1cImJ1dHRvblwiIChjbGljay5zdG9wKT1cInRvRWRpdFVybChpdGVtLmlkKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLmlkICE9PSBSZXZpc2lvbkVudHJ5SWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1lZGl0IG1lLTFcIj48L2k+e3snQWJwVWk6OkVkaXQnIHwgYWJwTG9jYWxpemF0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrLnN0b3ApPVwiZGVsZWN0VmVyc2lvbihpdGVtLmlkKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLmluaXRpYWxWZXJzaW9uSWQmJiFpdGVtLmlzQWN0aXZhdGVkVmVyc2lvbiYmaXRlbS5pZCAhPT0gUmV2aXNpb25FbnRyeUlkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtdHJhc2ggbWUtMVwiPjwvaT57eydBYnBVaTo6RGVsZXRlJyB8IGFicExvY2FsaXphdGlvbn19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInZlcnNpb25Ob3Rlc1wiPnt7J0Ntczo6UmV2aXNpb25Ob3RlcycgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJ2ZXJzaW9uTm90ZXNcIiByb3dzPVwiM1wiPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+Il19
279
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLWVkaXQtZW50cmllcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2VudHJpZXMvY3JlYXRlLW9yLWVkaXQtZW50cmllcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2VudHJpZXMvY3JlYXRlLW9yLWVkaXQtZW50cmllcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQW9CLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFnQyxXQUFXLEVBQStCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBUXBILE1BS2EsNEJBQTRCO0lBRTdCO0lBQ0Q7SUFDQztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQVRWLFlBQ1UsT0FBdUIsRUFDeEIsU0FBbUIsRUFDbEIsV0FBK0IsRUFDL0Isb0JBQXlDLEVBQ3pDLGtCQUFxQyxFQUNyQyxRQUFrQixFQUNsQixvQkFBeUMsRUFDekMsTUFBYyxFQUNkLGNBQTZCO1FBUjdCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3hCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbEIsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQy9CLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFDekMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFDekMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG1CQUFjLEdBQWQsY0FBYyxDQUFlO0lBQ25DLENBQUM7SUFHTCxRQUFRO0lBQ1IsV0FB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aW1wb3J0IHsgQ29uZmlnU3RhdGVTZXJ2aWNlLCBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRW50cnlBZG1pblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm94eS9hZG1pbi9lbnRyaWVzJztcbmltcG9ydCB7IFNlY3Rpb25BZG1pblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm94eS9hZG1pbi9zZWN0aW9ucyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXRlUGlwZSwgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ21zQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY21zLWNyZWF0ZS1vci1lZGl0LWVudHJpZXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vY3JlYXRlLW9yLWVkaXQtZW50cmllcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NyZWF0ZS1vci1lZGl0LWVudHJpZXMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDcmVhdGVPckVkaXRFbnRyaWVzQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdG9hc3RlcjogVG9hc3RlclNlcnZpY2UsXG4gICAgcHVibGljIF9sb2NhdGlvbjogTG9jYXRpb24sXG4gICAgcHJpdmF0ZSBjb25maWdTdGF0ZTogQ29uZmlnU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgX1NlY3Rpb25BZG1pblNlcnZpY2U6IFNlY3Rpb25BZG1pblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfRW50cnlBZG1pblNlcnZpY2U6IEVudHJ5QWRtaW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlLFxuICAgIHByaXZhdGUgX0xvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIF9DbXNBcGlTZXJ2aWNlOiBDbXNBcGlTZXJ2aWNlLFxuICApIHsgfVxuXG5cbiAgLyoq6K+t6KiAICovXG4gIGN1bHR1cmVOYW1lOiBzdHJpbmcgPSAnJ1xuICAvKirmnaHnm65pZCAqL1xuICBlbnRyeVR5cGVJZDogc3RyaW5nID0gJydcblxuICAvKirmlrDlu7rniYjmnKznmoTniYjmnKxpZO+8jOWQjOadoeebrmlkICovXG4gIFJldmlzaW9uRW50cnlJZDogYW55ID0gJydcbiAgLyoq6YCJ5oup55qE5p2h55uu6aG5ICovXG4gIGVudHJ5VHlwZXNJdGVtOiBhbnkgPSAnJ1xuICAvKirniYjlnZdpZCAqL1xuICBzZWN0aW9uSWQ6IHN0cmluZyA9ICcnXG4gIC8qKueJiOWdl+ivpuaDhSAqL1xuICBTZWN0aW9uU2VsZWN0OiBhbnkgPSAnJ1xuICAvKiror63oqIDliJfooaggKi9cbiAgbGFuZ3VhZ2VzTGlzdDogYW55W10gPSBbXVxuICAvKirmnaHnm67nsbvlnovliJfooagt55So5LqO6YCJ5oup5LiK57qn5p2h55uuICovXG4gIGVudHJ5VHlwZXNMaXN0OiBhbnlbXSA9IFtdXG4gIC8qKueJiOacrOWIl+ihqCAqL1xuICBBbGxWZXJzaW9uc0xpc3Q6IGFueVtdID0gW11cblxuICAvKirmmK/lkKbmmK/nvJbovpEgKi9cbiAgQElucHV0KCkgaXNFZGl0ID0gZmFsc2VcblxuICAvKirmnaXoh6rniLbnu4Tku7bnmoTkvKDlgLwgKi9cbiAgRnJvbVBhcmVudFF1ZXJ5UGFyYW1zOiBhbnkgPSAnJ1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IFBhcmVudFF1ZXJ5UGFyYW1zKHY6IGFueSkge1xuICAgIGlmICh2KSB7XG4gICAgICB0aGlzLkZyb21QYXJlbnRRdWVyeVBhcmFtcyA9IHY7XG4gICAgfVxuICB9XG5cbiAgLyoq6KGo5Y2V5a6e5L2TICovXG4gIF9lbnRpdHk6IEZvcm1Hcm91cCB8IHVuZGVmaW5lZFxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGVudGl0eSh2OiBhbnkpIHtcbiAgICBpZiAodikge1xuICAgICAgdGhpcy5fZW50aXR5ID0gdjtcbiAgICB9XG4gIH1cbiAgLyoq5oyH5a6aaWTnmoTmnaHnm67kv6Hmga8gKi9cbiAgZW50cnlTZWxlY3Q6IGFueSA9ICcnXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcGFyZW50RW50cnlTZWxlY3QodjogYW55KSB7XG4gICAgaWYgKHYpIHtcbiAgICAgIGxldCBWX2V4dHJhUHJvcGVydGllcyA9IHRoaXMuX0Ntc0FwaVNlcnZpY2UuZGVlcENsb25lKHRoaXMuY29udmVydEV4dHJhUHJvcGVydGllcyh2LmV4dHJhUHJvcGVydGllcykpXG4gICAgICB2LmV4dHJhUHJvcGVydGllcyA9IFZfZXh0cmFQcm9wZXJ0aWVzXG4gICAgICB0aGlzLmVudHJ5U2VsZWN0ID0gdjtcbiAgICB9XG4gIH1cbiAgLyoq5bCG5a+56LGh5Lit55qERXh0cmFQcm9wZXJ0aWVz6LWL5YC85YiwZXh0cmFQcm9wZXJ0aWVzICovXG4gIGNvbnZlcnRFeHRyYVByb3BlcnRpZXMob2JqKSB7XG4gICAgZm9yIChsZXQga2V5IGluIG9iaikge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2JqW2tleV0pKSB7XG4gICAgICAgIG9ialtrZXldLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgaWYgKGl0ZW0uaGFzT3duUHJvcGVydHkoJ0V4dHJhUHJvcGVydGllcycpKSB7XG4gICAgICAgICAgICBpdGVtWydleHRyYVByb3BlcnRpZXMnXSA9IGl0ZW1bJ0V4dHJhUHJvcGVydGllcyddO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG4gIH1cblxuICAvKirliKvlkI3ooajljZXlrp7kvZMgKi9cbiAgZ2V0IHNsdWdpbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXR5LmdldCgnc2x1ZycpXG4gIH1cbiAgLyoq6K+t6KiA6KGo5Y2V5a6e5L2TICovXG4gIGdldCBjdWx0dXJlaW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0eS5nZXQoJ2N1bHR1cmUnKVxuICB9XG4gIC8qKuivreiogOihqOWNleWunuS9k+W9seWtkCAqL1xuICBnZXQgY3VsdHVyZV9zaGFkb3dJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXR5LmdldCgnY3VsdHVyZV9zaGFkb3cnKVxuICB9XG5cbiAgLyoqZXh0cmFQcm9wZXJ0aWVz6YWN572u6KGo5Y2V5a6e5L2TICovXG4gIGdldCBleHRyYVByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0eS5nZXQoJ2V4dHJhUHJvcGVydGllcycpIGFzIEZvcm1Hcm91cFxuICB9XG4gIGFzeW5jIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvL0NhbGxlZCBhZnRlciBuZ09uSW5pdCB3aGVuIHRoZSBjb21wb25lbnQncyBvciBkaXJlY3RpdmUncyBjb250ZW50IGhhcyBiZWVuIGluaXRpYWxpemVkLlxuICAgIC8vQWRkICdpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQnIHRvIHRoZSBjbGFzcy5cbiAgICBsZXQgcXVlcnlQYXJhbXMgPSB0aGlzLkZyb21QYXJlbnRRdWVyeVBhcmFtc1xuICAgIGlmICh0aGlzLl9lbnRpdHkgJiYgdGhpcy5Gcm9tUGFyZW50UXVlcnlQYXJhbXMpIHtcbiAgICAgIHRoaXMuX2VudGl0eS5zZXRDb250cm9sKCdzbHVnJywgbmV3IEZvcm1Db250cm9sKCcnLCB7XG4gICAgICAgIHZhbGlkYXRvcnM6IFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgIGFzeW5jVmFsaWRhdG9yczogdGhpcy5yZXBldGl0aW9uQXN5bmNWYWxpZGF0b3IoKSxcbiAgICAgICAgdXBkYXRlT246ICdibHVyJ1xuICAgICAgfSkpXG4gICAgICB0aGlzLl9lbnRpdHkuc2V0Q29udHJvbCgnY3VsdHVyZV9zaGFkb3cnLCBuZXcgRm9ybUNvbnRyb2woJycsIHtcbiAgICAgICAgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICBhc3luY1ZhbGlkYXRvcnM6IHRoaXMuY3VsdHVyZUFzeW5jVmFsaWRhdG9yX3Rlc3QoKSxcbiAgICAgIH0pKVxuICAgICAgdGhpcy5fZW50aXR5LmdldCgnY3VsdHVyZScpLmRpc2FibGUoKTtcbiAgICAgIGlmIChxdWVyeVBhcmFtcy5SZXZpc2lvbkVudHJ5SWQgJiYgdGhpcy5lbnRyeVNlbGVjdCkge1xuICAgICAgICB0aGlzLlJldmlzaW9uRW50cnlJZCA9IHF1ZXJ5UGFyYW1zLlJldmlzaW9uRW50cnlJZFxuICAgICAgICB0aGlzLnNldEVudHJ5Y29uZmlnKHRoaXMuZW50cnlTZWxlY3QpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZXRFbnRyeWNvbmZpZyhxdWVyeVBhcmFtcyk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5zZWN0aW9uSWQpIGF3YWl0IHRoaXMuZ2V0U2VjdGlvblNlbGVjdCgpO1xuICAgICAgaWYgKHRoaXMuUmV2aXNpb25FbnRyeUlkKSBhd2FpdCB0aGlzLmdldEFsbFZlcnNpb25zTGlzdCgpXG4gICAgfVxuICB9XG5cblxuICAvKirlrprkuYnoh6rlrprkuYnlvILmraXpqozor4EgKi9cbiAgY3VsdHVyZUFzeW5jVmFsaWRhdG9yX3Rlc3QoKSB7XG4gICAgcmV0dXJuIChjdHJsOiBBYnN0cmFjdENvbnRyb2wpOiBQcm9taXNlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiB8IE9ic2VydmFibGU8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+ID0+IHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgICAgbGV0IHN1YmN1bHR1cmUgPSB0aGlzLl9lbnRpdHk/LmdldCgnY3VsdHVyZScpLnZhbHVlXG4gICAgICAgIGlmIChzdWJjdWx0dXJlID09IHRoaXMuZW50cnlTZWxlY3Q/LmN1bHR1cmUgfHwgdGhpcy5TZWN0aW9uU2VsZWN0LnR5cGUgIT09IDApIHtcbiAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX0VudHJ5QWRtaW5TZXJ2aWNlLmN1bHR1cmVFeGlzdFdpdGhTaW5nbGVTZWN0aW9uKHtcbiAgICAgICAgICBjdWx0dXJlOiBzdWJjdWx0dXJlLFxuICAgICAgICAgIHNlY3Rpb25JZDogdGhpcy5zZWN0aW9uSWQsXG4gICAgICAgICAgZW50cnlUeXBlSWQ6IHRoaXMuZW50cnlUeXBlSWRcbiAgICAgICAgfSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgcmVzb2x2ZSh7IHJlcGV0aXRpb246IHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQ21zOjpFbnRyaWVzQWxyZWFkeUV4aXN0RW50cnlUeXBlYCwgdGhpcy5lbnRyeVR5cGVzSXRlbS5kaXNwbGF5TmFtZSwgdGhpcy5sYW5ndWFnZXNMaXN0LmZpbmQoZWwgPT4gZWwuY3VsdHVyZU5hbWUgPT0gc3ViY3VsdHVyZSkuZGlzcGxheU5hbWUpIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgIH07XG4gIH1cblxuXG4gIC8qKiAgXG4gKiDorr7nva7mnaHnm67or6bmg4UgIFxuICogQHBhcmFtIHtvYmplY3R9IHNvdXJjZSAtIOaVsOaNrua6kOWvueixoSAgXG4gKi9cbiAgc2V0RW50cnljb25maWcoc291cmNlOiBhbnkpIHtcbiAgICB0aGlzLmVudHJ5VHlwZUlkID0gc291cmNlLmVudHJ5VHlwZUlkO1xuICAgIHRoaXMuY3VsdHVyZU5hbWUgPSBzb3VyY2UuY3VsdHVyZSB8fCBzb3VyY2UuY3VsdHVyZU5hbWU7XG4gICAgdGhpcy5zZWN0aW9uSWQgPSBzb3VyY2Uuc2VjdGlvbklkO1xuICB9XG4gIHRpbWU6IG51bWJlciA9IDBcblxuICAvKirlrprkuYnoh6rlrprkuYnlvILmraXpqozor4EgKi9cbiAgcmVwZXRpdGlvbkFzeW5jVmFsaWRhdG9yKCkge1xuICAgIHJldHVybiAoY3RybDogQWJzdHJhY3RDb250cm9sKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gfCBPYnNlcnZhYmxlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiA9PiB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICAgIGxldCBzdWJzbHVnID0gdGhpcy5fZW50aXR5Py5nZXQoJ3NsdWcnKS52YWx1ZVxuICAgICAgICBpZiAoc3Vic2x1ZyA9PSB0aGlzLmVudHJ5U2VsZWN0Py5zbHVnKSB7XG4gICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9FbnRyeUFkbWluU2VydmljZS5zbHVnRXhpc3RzKHtcbiAgICAgICAgICBjdWx0dXJlOiB0aGlzLmN1bHR1cmVOYW1lLFxuICAgICAgICAgIHNlY3Rpb25JZDogdGhpcy5zZWN0aW9uSWQsXG4gICAgICAgICAgc2x1Zzogc3Vic2x1Z1xuICAgICAgICB9KS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICByZXNvbHZlKHsgcmVwZXRpdGlvbjogdGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBDbXM6OkVudHJ5U2x1Z3swfUFscmVhZHlFeGlzdGAsIGN0cmwudmFsdWUpIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgIH07XG4gIH1cblxuXG5cbiAgLyoq6I635Y+W54mI5Z2X6K+m5oOFICovXG4gIGdldFNlY3Rpb25TZWxlY3QoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3RzKSA9PiB7XG4gICAgICB0aGlzLl9TZWN0aW9uQWRtaW5TZXJ2aWNlLmdldCh0aGlzLnNlY3Rpb25JZCkuc3Vic2NyaWJlKGFzeW5jIChyZXMpID0+IHtcbiAgICAgICAgbGV0IGxhbmd1YWdlcyA9IHRoaXMuY29uZmlnU3RhdGUuZ2V0RGVlcCgnbG9jYWxpemF0aW9uLmxhbmd1YWdlcycpXG4gICAgICAgIHRoaXMubGFuZ3VhZ2VzTGlzdCA9IGxhbmd1YWdlcy5maWx0ZXIoZWwgPT4gcmVzPy5zaXRlPy5sYW5ndWFnZXMuc29tZShlbHIgPT4gZWxyLmN1bHR1cmVOYW1lID09IGVsLmN1bHR1cmVOYW1lKSlcbiAgICAgICAgbGV0IGVudHJ5VHlwZXNJdGVtID0gcmVzLmVudHJ5VHlwZXMuZmluZChlbCA9PiBlbC5pZCA9PSB0aGlzLmVudHJ5VHlwZUlkKVxuICAgICAgICB0aGlzLlNlY3Rpb25TZWxlY3QgPSByZXNcbiAgICAgICAgdGhpcy5lbnRyeVR5cGVzSXRlbSA9IGVudHJ5VHlwZXNJdGVtXG4gICAgICAgIHRoaXMuZW50cnlUeXBlc0xpc3QgPSByZXMuZW50cnlUeXBlcy5maWx0ZXIoZWwgPT4gZWwuaWQgPT0gdGhpcy5lbnRyeVR5cGVJZClcbiAgICAgICAgdGhpcy5fZW50aXR5LnBhdGNoVmFsdWUoe1xuICAgICAgICAgIC4uLnRoaXMuZW50cnlTZWxlY3QsXG4gICAgICAgICAgaW5pdGlhbFZlcnNpb25JZDogdGhpcy5lbnRyeVNlbGVjdD8uaW5pdGlhbFZlcnNpb25JZCB8fCB0aGlzLlJldmlzaW9uRW50cnlJZCB8fCAnJyxcbiAgICAgICAgICBjdWx0dXJlOiB0aGlzLmN1bHR1cmVOYW1lLFxuICAgICAgICAgIGN1bHR1cmVfc2hhZG93OiB0aGlzLmN1bHR1cmVOYW1lLFxuICAgICAgICAgIGVudHJ5VHlwZUlkOiB0aGlzLmVudHJ5VHlwZUlkLFxuICAgICAgICAgIHB1Ymxpc2hUaW1lOiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShuZXcgRGF0ZSgpLCAneXl5eS1NTS1kZCBISDptbTpzcycpLFxuICAgICAgICB9KVxuICAgICAgICByZXNvbHZlKHRydWUpXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICAvKirojrflj5bmnaHnm67niYjmnKzliJfooaggKi9cbiAgZ2V0QWxsVmVyc2lvbnNMaXN0KCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0cykgPT4ge1xuXG4gICAgICB0aGlzLl9FbnRyeUFkbWluU2VydmljZS5nZXRBbGxWZXJzaW9ucyh0aGlzLlJldmlzaW9uRW50cnlJZCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMuQWxsVmVyc2lvbnNMaXN0ID0gcmVzLml0ZW1zXG4gICAgICAgIHJlc29sdmUocmVzKVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgLyoq5qCH6aKY6L2s5YyW5Yir5ZCNICovXG4gIHNldFRpdGxlVG9TbHVnQmx1cihldmVudCkge1xuICAgIGxldCB2YWwgPSBldmVudC50YXJnZXQudmFsdWVcbiAgICBsZXQgc2x1ZyA9IHRoaXMuX2VudGl0eS5nZXQoJ3NsdWcnKVxuICAgIGxldCBwaW55aW5zdHIgPSAnJ1xuICAgIGlmIChzbHVnLnZhbHVlKSByZXR1cm5cbiAgICBwaW55aW5zdHIgPSB0aGlzLl9DbXNBcGlTZXJ2aWNlLmNoaW5lc2VUb1Bpbnlpbih2YWwpXG4gICAgdGhpcy5fZW50aXR5LnBhdGNoVmFsdWUoe1xuICAgICAgc2x1ZzogcGlueWluc3RyIHx8IHZhbFxuICAgIH0pXG4gIH1cbiAgLyoq5L2/55SoVW5pY29kZee8lueggeiMg+WbtOWIpOaWreaYr+WQpuaYr+S4reaWh+Wtl+espiAqL1xuICBpc0NoaW5lc2Uoc3RyKSB7XG4gICAgcmV0dXJuIC9eW1xcdTRlMDAtXFx1OWZhNV0rJC8udGVzdChzdHIpO1xuICB9XG5cbiAgLyoq5r+A5rS7ICovXG4gIEFjdGl2YXRlZFZlcnNpb24oVmVyc2lvbklkKSB7XG4gICAgdGhpcy5fRW50cnlBZG1pblNlcnZpY2UuYWN0aXZhdGUoVmVyc2lvbklkKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgdGhpcy5BbGxWZXJzaW9uc0xpc3QuZm9yRWFjaChlbCA9PiB7XG4gICAgICAgIGVsLmlzQWN0aXZhdGVkVmVyc2lvbiA9IGVsLmlkID09PSBWZXJzaW9uSWRcbiAgICAgIH0pXG4gICAgICByZXR1cm5cbiAgICB9KVxuICB9XG4gIC8qKue8lui+keeJiOacrCAqL1xuICB0b0VkaXRVcmwoaWQpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcnLCB7IHNraXBMb2NhdGlvbkNoYW5nZTogdHJ1ZSB9KS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgL2Ntcy9hZG1pbi9lbnRyaWVzLyR7aWR9L2VkaXRgXSk7XG4gICAgfSk7XG4gIH1cbiAgLyoq5Yig6Zmk54mI5pysICovXG4gIGRlbGVjdFZlcnNpb24odmlkKSB7XG4gICAgdGhpcy5fRW50cnlBZG1pblNlcnZpY2UuZGVsZXRlKHZpZCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLnRvYXN0ZXIuc3VjY2Vzcyh0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYEFicFVpOjpTdWNjZXNzZnVsbHlEZWxldGVkYCkpO1xuICAgICAgdGhpcy5nZXRBbGxWZXJzaW9uc0xpc3QoKVxuICAgIH0pXG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImNyZWF0ZS1vci1lZGl0LWVudHJ5LXBhZ2VcIiBbZm9ybUdyb3VwXT1cIl9lbnRpdHlcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyIFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTggXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgIHAtMlwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInRpdGxlXCI+e3snQ21zOjpUaXRsZScgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiICAgKGJsdXIpPVwic2V0VGl0bGVUb1NsdWdCbHVyKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGVudHJ5VHlwZXNJdGVtPy5maWVsZFRhYnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGVsIG9mIGl0ZW0uZmllbGRzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVsJiZfZW50aXR5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZi1keW5hbWljIFtlbnRpdHldPVwiX2VudGl0eVwiIFtmaWVsZHNdPVwiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkXT1cImVudHJ5U2VsZWN0ID8gZW50cnlTZWxlY3QuZXh0cmFQcm9wZXJ0aWVzW2VsLmZpZWxkLm5hbWVdIDogJydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BhcmVudEZpbGVkTmFtZV09XCInZXh0cmFQcm9wZXJ0aWVzJ1wiIFtjdWx0dXJlXT1cImN1bHR1cmVpbnB1dC52YWx1ZVwiID48L2RmLWR5bmFtaWM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBtYi0wIHAtMlwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInNsdWdcIj57eydDbXM6OlNsdWcnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiAgZm9ybUNvbnRyb2xOYW1lPVwic2x1Z1wiICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1kYW5nZXIgaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwic2x1Z2lucHV0LmVycm9ycz8ucmVwZXRpdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7c2x1Z2lucHV0LmVycm9ycz8ucmVwZXRpdGlvbn19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiY3VsdHVyZVwiPnt7J0FicFVpOjpMYW5ndWFnZXMnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0XCIgICAgZm9ybUNvbnRyb2xOYW1lPVwiY3VsdHVyZVwiID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxhbmd1YWdlc0xpc3Q7bGV0IGkgPWluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIml0ZW0uY3VsdHVyZU5hbWVcIj57e2l0ZW0uZGlzcGxheU5hbWV9fTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJjdWx0dXJlX3NoYWRvd1wiIHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlO3otaW5kZXg6IC0xO29wYWNpdHk6IDA7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1kYW5nZXIgaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwiY3VsdHVyZV9zaGFkb3dJbnB1dC5lcnJvcnM/LnJlcGV0aXRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2N1bHR1cmVfc2hhZG93SW5wdXQuZXJyb3JzPy5yZXBldGl0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJwYXJlbnRJZFwiPnt7J0Ntczo6UGFyZW50RW50cnknIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0XCIgZm9ybUNvbnRyb2xOYW1lPVwicGFyZW50SWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBlbnRyeVR5cGVzTGlzdDtsZXQgaSA9aW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiaXRlbS5pZFwiPnt7aXRlbS5kaXNwbGF5TmFtZX19PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwicHVibGlzaFRpbWVcIj57eydDbXM6OlB1Ymxpc2hUaW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIHN0ZXA9XCIxXCIgZm9ybUNvbnRyb2xOYW1lPVwicHVibGlzaFRpbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gUmV2aXNpb25FbnRyeUlkIC0tPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiICpuZ0lmPVwiaXNFZGl0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwicHVibGlzaFRpbWVcIj57eydDbXM6OlZlcnNpb24nIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibGlzdC1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgQWxsVmVyc2lvbnNMaXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbSBmbGV4LWJldHdlZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtLmluaXRpYWxWZXJzaW9uSWQ/KGl0ZW0uY3JlYXRpb25UaW1lfCBkYXRlOiAnWVlZWS9NTS9kZCBISDptOnMnKTooJ0Ntczo6SW5pdGlhbFZlcnNpb24nIHwgYWJwTG9jYWxpemF0aW9uKX19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSB0ZXh0LWJnLXN1Y2Nlc3MgbXMtMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5pc0FjdGl2YXRlZFZlcnNpb25cIj57eydDbXM6OklzQWN0aXZlJyB8IGFicExvY2FsaXphdGlvbn19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgdGV4dC1iZy1wcmltYXJ5IG1zLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uaWQgPT09IFJldmlzaW9uRW50cnlJZFwiPnt7J0Ntczo6RWRpdGluZycgfCBhYnBMb2NhbGl6YXRpb259fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duIGNsYXNzPVwiZC1pbmxpbmUtYmxvY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWxpbmstcHJpbWFyeSBwLTIgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwibGluZS1oZWlnaHQ6IDA7XCIgaWQ9XCJkcm9wZG93bkJhc2ljMVwiIG5nYkRyb3Bkb3duVG9nZ2xlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93bk1lbnUgYXJpYS1sYWJlbGxlZGJ5PVwiZHJvcGRvd25CYXNpYzFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cIiFpdGVtLmlzQWN0aXZhdGVkVmVyc2lvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIkFjdGl2YXRlZFZlcnNpb24oaXRlbS5pZClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jaGVjayBtZS0xXCI+PC9pPnt7J0Ntczo6SXNBY3RpdmUnIHwgYWJwTG9jYWxpemF0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluaz1cIi9jbXMvYWRtaW4vZW50cmllcy9jcmVhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJ7UmV2aXNpb25FbnRyeUlkOml0ZW0uaWR9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtcGx1cyBtZS0xXCI+PC9pPnt7J0Ntczo6TmV3VmVyc2lvbicgfCBhYnBMb2NhbGl6YXRpb259fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrLnN0b3ApPVwidG9FZGl0VXJsKGl0ZW0uaWQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uaWQgIT09IFJldmlzaW9uRW50cnlJZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWVkaXQgbWUtMVwiPjwvaT57eydBYnBVaTo6RWRpdCcgfCBhYnBMb2NhbGl6YXRpb259fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2suc3RvcCk9XCJkZWxlY3RWZXJzaW9uKGl0ZW0uaWQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uaW5pdGlhbFZlcnNpb25JZCYmIWl0ZW0uaXNBY3RpdmF0ZWRWZXJzaW9uJiZpdGVtLmlkICE9PSBSZXZpc2lvbkVudHJ5SWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS10cmFzaCBtZS0xXCI+PC9pPnt7J0FicFVpOjpEZWxldGUnIHwgYWJwTG9jYWxpemF0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwidmVyc2lvbk5vdGVzXCI+e3snQ21zOjpSZXZpc2lvbk5vdGVzJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInZlcnNpb25Ob3Rlc1wiIHJvd3M9XCIzXCI+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj4iXX0=
@@ -1,4 +1,3 @@
1
- // create-or-update-entry-cobfig-base
2
1
  import { FormGroup, Validators } from "@angular/forms";
3
2
  export class CreateOrUpdateEntryInputBase {
4
3
  /**语言 */
@@ -30,14 +29,4 @@ export class CreateOrUpdateEntryInputBase {
30
29
  }
31
30
  }
32
31
  }
33
- /*
34
- year: [year ?? null, []],
35
- month: [month ?? null, [Validators.required, Validators.min(1), Validators.max(12)]],
36
- description: [description ?? null, [Validators.required, Validators.minLength(1)]],
37
- score: [score ?? null, [Validators.required, Validators.min(0), Validators.max(100)]],
38
- organizationId: [organizationId ?? null, [Validators.required]],
39
- // organizationName: [organizationName ?? null, [Validators.maxLength(128)]],
40
- pointItemId: [pointItemId ?? null, [Validators.required]],
41
- partyMemberIds: [partyMembers.map(({ id }) => id), []],
42
- */
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLXVwZGF0ZS1lbnRyeS1pbnB1dC1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9lbnRyaWVzL2NyZWF0ZS1vci11cGRhdGUtZW50cnktaW5wdXQtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxQ0FBcUM7QUFDckMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUl2RCxNQUFNLE9BQU8sNEJBQTRCO0lBQ3JDLFFBQVE7SUFDUixPQUFPLEdBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtJQUMxQyxVQUFVO0lBQ1YsV0FBVyxHQUFRLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDdkIsUUFBUTtJQUNSLEtBQUssR0FBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO0lBQ3hDLFFBQVE7SUFDUixJQUFJLEdBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtJQUN2QyxXQUFXO0lBQ1gsS0FBSyxHQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQ3JCLFVBQVU7SUFDVixXQUFXLEdBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtJQUM5QyxVQUFVO0lBQ1YsUUFBUSxHQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDbkIsVUFBVTtJQUNWLFlBQVksR0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3ZCLFFBQVE7SUFDUixnQkFBZ0IsR0FBUSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBRTlCLGVBQWUsR0FBMEIsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUE7SUFFMUQsWUFBWSxJQUFtQztRQUMzQyxJQUFJLElBQUksRUFBRTtZQUNOLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFO2dCQUNwQixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ3pCO2FBQ0o7U0FDSjtJQUVMLENBQUM7Q0FDSjtBQUVEOzs7Ozs7Ozs7RUFTRSIsInNvdXJjZXNDb250ZW50IjpbIi8vIGNyZWF0ZS1vci11cGRhdGUtZW50cnktY29iZmlnLWJhc2VcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBDcmVhdGVPclVwZGF0ZUVudHJ5SW5wdXRCYXNlIHtcclxuICAgIC8qKuivreiogCAqL1xyXG4gICAgY3VsdHVyZTogYW55ID0gWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dXHJcbiAgICAvKirmnaHnm65pZCAqL1xyXG4gICAgZW50cnlUeXBlSWQ6IGFueSA9IFsnJ11cclxuICAgIC8qKuagh+mimCAqL1xyXG4gICAgdGl0bGU6IGFueSA9IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXVxyXG4gICAgLyoq5Yir5ZCNICovXHJcbiAgICBzbHVnOiBhbnkgPSBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV1cclxuICAgIC8qKuaYr+WQpuaYr+iNieeovyAqL1xyXG4gICAgZHJhZnQ6IGFueSA9IFsnJywgW11dXHJcbiAgICAvKirlj5HluIPml7bpl7QgKi9cclxuICAgIHB1Ymxpc2hUaW1lOiBhbnkgPSBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV1cclxuICAgIC8qKuS4iue6p+ebruW9lSAqL1xyXG4gICAgcGFyZW50SWQ6YW55PVtudWxsXVxyXG4gICAgLyoq5L+u6K6i6K+05piOICovXHJcbiAgICB2ZXJzaW9uTm90ZXM6YW55PVtudWxsXVxyXG4gICAgLyoq54mI5pysICovXHJcbiAgICBpbml0aWFsVmVyc2lvbklkOiBhbnkgPSBbbnVsbF1cclxuXHJcbiAgICBleHRyYVByb3BlcnRpZXM6IEZvcm1Hcm91cCB8IHVuZGVmaW5lZCA9IG5ldyBGb3JtR3JvdXAoe30pXHJcblxyXG4gICAgY29uc3RydWN0b3IoZGF0YT86IENyZWF0ZU9yVXBkYXRlRW50cnlJbnB1dEJhc2UpIHtcclxuICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpc1trZXldID0gZGF0YVtrZXldO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxufVxyXG5cclxuLyogXHJcbiB5ZWFyOiBbeWVhciA/PyBudWxsLCBbXV0sXHJcbiAgICAgIG1vbnRoOiBbbW9udGggPz8gbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluKDEpLCBWYWxpZGF0b3JzLm1heCgxMildXSxcclxuICAgICAgZGVzY3JpcHRpb246IFtkZXNjcmlwdGlvbiA/PyBudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMSldXSxcclxuICAgICAgc2NvcmU6IFtzY29yZSA/PyBudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW4oMCksIFZhbGlkYXRvcnMubWF4KDEwMCldXSxcclxuICAgICAgb3JnYW5pemF0aW9uSWQ6IFtvcmdhbml6YXRpb25JZCA/PyBudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICAvLyBvcmdhbml6YXRpb25OYW1lOiBbb3JnYW5pemF0aW9uTmFtZSA/PyBudWxsLCBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTI4KV1dLFxyXG4gICAgICBwb2ludEl0ZW1JZDogW3BvaW50SXRlbUlkID8/IG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgIHBhcnR5TWVtYmVySWRzOiBbcGFydHlNZW1iZXJzLm1hcCgoeyBpZCB9KSA9PiBpZCksIFtdXSxcclxuKi8iXX0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLXVwZGF0ZS1lbnRyeS1pbnB1dC1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9lbnRyaWVzL2NyZWF0ZS1vci11cGRhdGUtZW50cnktaW5wdXQtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZELE1BQU0sT0FBTyw0QkFBNEI7SUFDckMsUUFBUTtJQUNSLE9BQU8sR0FBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO0lBQzFDLFVBQVU7SUFDVixXQUFXLEdBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUN2QixRQUFRO0lBQ1IsS0FBSyxHQUFRLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7SUFDeEMsUUFBUTtJQUNSLElBQUksR0FBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO0lBQ3ZDLFdBQVc7SUFDWCxLQUFLLEdBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDckIsVUFBVTtJQUNWLFdBQVcsR0FBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO0lBQzlDLFVBQVU7SUFDVixRQUFRLEdBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNuQixVQUFVO0lBQ1YsWUFBWSxHQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDdkIsUUFBUTtJQUNSLGdCQUFnQixHQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7SUFFOUIsZUFBZSxHQUEwQixJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUUxRCxZQUFZLElBQW1DO1FBQzNDLElBQUksSUFBSSxFQUFFO1lBQ04sS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUU7Z0JBQ3BCLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDekI7YUFDSjtTQUNKO0lBRUwsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgQ3JlYXRlT3JVcGRhdGVFbnRyeUlucHV0QmFzZSB7XHJcbiAgICAvKiror63oqIAgKi9cclxuICAgIGN1bHR1cmU6IGFueSA9IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXVxyXG4gICAgLyoq5p2h55uuaWQgKi9cclxuICAgIGVudHJ5VHlwZUlkOiBhbnkgPSBbJyddXHJcbiAgICAvKirmoIfpopggKi9cclxuICAgIHRpdGxlOiBhbnkgPSBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV1cclxuICAgIC8qKuWIq+WQjSAqL1xyXG4gICAgc2x1ZzogYW55ID0gWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dXHJcbiAgICAvKirmmK/lkKbmmK/ojYnnqL8gKi9cclxuICAgIGRyYWZ0OiBhbnkgPSBbJycsIFtdXVxyXG4gICAgLyoq5Y+R5biD5pe26Ze0ICovXHJcbiAgICBwdWJsaXNoVGltZTogYW55ID0gWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dXHJcbiAgICAvKirkuIrnuqfnm67lvZUgKi9cclxuICAgIHBhcmVudElkOmFueT1bbnVsbF1cclxuICAgIC8qKuS/ruiuouivtOaYjiAqL1xyXG4gICAgdmVyc2lvbk5vdGVzOmFueT1bbnVsbF1cclxuICAgIC8qKueJiOacrCAqL1xyXG4gICAgaW5pdGlhbFZlcnNpb25JZDogYW55ID0gW251bGxdXHJcblxyXG4gICAgZXh0cmFQcm9wZXJ0aWVzOiBGb3JtR3JvdXAgfCB1bmRlZmluZWQgPSBuZXcgRm9ybUdyb3VwKHt9KVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKGRhdGE/OiBDcmVhdGVPclVwZGF0ZUVudHJ5SW5wdXRCYXNlKSB7XHJcbiAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXNba2V5XSA9IGRhdGFba2V5XTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==
@@ -3,6 +3,7 @@ import { FormBuilder } from '@angular/forms';
3
3
  import { CreateOrUpdateEntryInputBase } from './create-or-update-entry-input-base';
4
4
  import { EXTENSIONS_IDENTIFIER } from '@abp/ng.theme.shared/extensions';
5
5
  import { ECmsComponent } from '../../../enums/ecms-component';
6
+ import { UpdateListService } from '../../../services/update-list.service';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "@abp/ng.theme.shared";
8
9
  import * as i2 from "@angular/common";
@@ -13,7 +14,6 @@ import * as i6 from "@angular/forms";
13
14
  import * as i7 from "@ngx-validate/core";
14
15
  import * as i8 from "@abp/ng.components/page";
15
16
  import * as i9 from "./create-or-edit-entries.component";
16
- // const pinyin = require("pinyin");
17
17
  class CreateComponent {
18
18
  toaster;
19
19
  _location;
@@ -21,9 +21,7 @@ class CreateComponent {
21
21
  _EntryAdminService;
22
22
  _LocalizationService;
23
23
  router;
24
- constructor(
25
- // private fb: FormBuilder,
26
- toaster, _location, route, _EntryAdminService, _LocalizationService, router) {
24
+ constructor(toaster, _location, route, _EntryAdminService, _LocalizationService, router) {
27
25
  this.toaster = toaster;
28
26
  this._location = _location;
29
27
  this.route = route;
@@ -32,6 +30,7 @@ class CreateComponent {
32
30
  this.router = router;
33
31
  }
34
32
  fb = inject(FormBuilder);
33
+ _updateListService = inject(UpdateListService);
35
34
  /**表单实体 */
36
35
  newEntity;
37
36
  /**是否是草稿 */
@@ -71,6 +70,7 @@ class CreateComponent {
71
70
  this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));
72
71
  this.router.navigateByUrl('', { skipLocationChange: true }).then(() => {
73
72
  this.router.navigate([`/cms/admin/entries`]);
73
+ this._updateListService.updateList();
74
74
  });
75
75
  });
76
76
  }
@@ -104,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
104
104
  type: ViewChild,
105
105
  args: ['submitclick', { static: true }]
106
106
  }] } });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Ntcy9zcmMvbGliL2NvbXBvbmVudHMvYWRtaW4vZW50cmllcy9jcmVhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9lbnRyaWVzL2NyZWF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFzQixTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFBRyxXQUFXLEVBQVksTUFBTSxnQkFBZ0IsQ0FBQztBQUd4RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUduRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7Ozs7O0FBSzlELG9DQUFvQztBQUNwQyxNQVlhLGVBQWU7SUFHaEI7SUFDRDtJQUNDO0lBQ0E7SUFDQTtJQUNBO0lBUFY7SUFDRSwyQkFBMkI7SUFDbkIsT0FBdUIsRUFDeEIsU0FBbUIsRUFDbEIsS0FBcUIsRUFDckIsa0JBQXFDLEVBQ3JDLG9CQUF5QyxFQUN6QyxNQUFjO1FBTGQsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDeEIsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNsQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3JDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFDekMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNwQixDQUFDO0lBQ0csRUFBRSxHQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUU5QixVQUFV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USxFQUFFLGFBQWEsQ0FBQyxjQUFjO2FBQ3ZDO1NBQ0Ysb0pDeEJILDZ2QkFZTzs7U0RlTSxlQUFlOzRGQUFmLGVBQWU7a0JBWjNCLFNBQVM7K0JBQ0UsWUFBWSxhQUdYO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFFBQVEsRUFBRSxhQUFhLENBQUMsY0FBYzt5QkFDdkM7cUJBQ0Y7Z1BBMkIyQyxXQUFXO3NCQUF0RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUb2FzdGVyU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25Jbml0LCBWaWV3Q2hpbGQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgIExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENyZWF0ZU9yVXBkYXRlRW50cnlJbnB1dEJhc2UgfSBmcm9tICcuL2NyZWF0ZS1vci11cGRhdGUtZW50cnktaW5wdXQtYmFzZSc7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IEVudHJ5QWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvYWRtaW4vZW50cmllcyc7XG5pbXBvcnQgeyBFWFRFTlNJT05TX0lERU5USUZJRVIgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZC9leHRlbnNpb25zJztcbmltcG9ydCB7IEVDbXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9lY21zLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBDbXNBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuXG5cblxuLy8gY29uc3QgcGlueWluID0gcmVxdWlyZShcInBpbnlpblwiKTtcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Ntcy1jcmVhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vY3JlYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3JlYXRlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVYVEVOU0lPTlNfSURFTlRJRklFUixcbiAgICAgIHVzZVZhbHVlOiBFQ21zQ29tcG9uZW50LkVudHJpZXNfQ3JlYXRlLFxuICAgIH0sXG4gIF1cbn0pXG4vLyBpbXBsZW1lbnRzIE9uSW5pdFxuZXhwb3J0IGNsYXNzIENyZWF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIC8vIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgdG9hc3RlcjogVG9hc3RlclNlcnZpY2UsXG4gICAgcHVibGljIF9sb2NhdGlvbjogTG9jYXRpb24sXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBfRW50cnlBZG1pblNlcnZpY2U6IEVudHJ5QWRtaW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgX0xvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgKSB7IH1cbiAgcHJpdmF0ZSBmYj1pbmplY3QoRm9ybUJ1aWxkZXIpXG5cbiAgLyoq6KGo5Y2V5a6e5L2TICovXG4gIG5ld0VudGl0eTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkXG5cbiAgLyoq5piv5ZCm5piv6I2J56i/ICovXG4gIGRyYWZ0VHlwZTogYm9vbGVhbiA9IGZhbHNlXG4gIC8qKumhtemdouS8oOWAvOeUqOS6juS8oOmAkuWIsOWtkOe7hOS7tiAqL1xuICBxdWVyeVBhcmFtczogYW55ID0gJydcblxuICAvKirmjIflrpppZOeahOadoeebruS/oeaBryAqL1xuICBlbnRyeVNlbGVjdDogYW55ID0gJydcblxuICAvKirojrflj5bmj5DkuqTmjInpkq7mm7/ouqvvvIznlKjkuo7nnJ/lrp7op6blj5HooajljZXmj5DkuqQgKi9cbiAgQFZpZXdDaGlsZCgnc3VibWl0Y2xpY2snLCB7IHN0YXRpYzogdHJ1ZSB9KSBzdWJtaXRjbGljazogRWxlbWVudFJlZjtcblxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLnF1ZXJ5UGFyYW1zID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1xuICAgIHRoaXMubmV3RW50aXR5ID0gdGhpcy5mYi5ncm91cChuZXcgQ3JlYXRlT3JVcGRhdGVFbnRyeUlucHV0QmFzZSgpKVxuICAgIGlmKHRoaXMucXVlcnlQYXJhbXMuUmV2aXNpb25FbnRyeUlkKSAgIGF3YWl0IHRoaXMuZ2V0RW50cnlTZWxlY3QoKTtcbiAgIFxuICAgIFxuICB9XG5cbiAgLyoq6I635Y+W5p2h55uu5L+h5oGvICovXG4gIGdldEVudHJ5U2VsZWN0KCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0cykgPT4ge1xuICAgICAgdGhpcy5fRW50cnlBZG1pblNlcnZpY2UuZ2V0KHRoaXMucXVlcnlQYXJhbXMuUmV2aXNpb25FbnRyeUlkKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgdGhpcy5lbnRyeVNlbGVjdCA9IHJlc1xuICAgICAgICBcbiAgICAgICAgcmVzb2x2ZShyZXMpXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuXG5cbiAgLyoq5L+d5a2YICovXG4gIHNhdmUoZHJhZnQpIHtcbiAgICB0aGlzLm5ld0VudGl0eS5wYXRjaFZhbHVlKHtcbiAgICAgIGRyYWZ0OiBkcmFmdFxuICAgIH0pXG4gICAgbGV0IGlucHV0ID0gdGhpcy5uZXdFbnRpdHkudmFsdWVcbiAgICBpbnB1dC5wdWJsaXNoVGltZSA9IG5ldyBEYXRlKG5ldyBEYXRlKGlucHV0LnB1Ymxpc2hUaW1lKS5nZXRUaW1lKCkgKyAoOCAqIDYwICogNjAgKiAxMDAwKSkudG9JU09TdHJpbmcoKVxuICAgIGlucHV0LmN1bHR1cmU9dGhpcy5uZXdFbnRpdHkuZ2V0KCdjdWx0dXJlJykudmFsdWVcbiAgICBpZiAoIXRoaXMubmV3RW50aXR5LnZhbGlkKSByZXR1cm5cbiAgICB0aGlzLl9FbnRyeUFkbWluU2VydmljZS5jcmVhdGUoaW5wdXQpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgdGhpcy50b2FzdGVyLnN1Y2Nlc3ModGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBDbXNLaXQ6OlNhdmVkU3VjY2Vzc2Z1bGx5YCkpO1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnJywgeyBza2lwTG9jYXRpb25DaGFuZ2U6IHRydWUgfSkudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgL2Ntcy9hZG1pbi9lbnRyaWVzYF0pO1xuICAgICAgfSk7XG4gICAgfSlcbiAgfVxuXG4gIC8qKuinpuWPkeeCueWHu+aMiemSruabv+i6qyAqL1xuICBjbGlja1N1Ym1pdCh0eXBlKSB7XG4gICAgdGhpcy5kcmFmdFR5cGUgPSB0eXBlXG4gICAgdGhpcy5zdWJtaXRjbGljay5uYXRpdmVFbGVtZW50LmNsaWNrKClcbiAgfVxuICAvKirov5Tlm57kuIrkuIDpobUgKi9cbiAgYmFja1RvKCkge1xuICAgIHRoaXMuX2xvY2F0aW9uLmJhY2soKVxuICB9XG5cblxuXG5cbn1cbiIsIjxmb3JtIGNsYXNzPVwicm93IGctMyBuZWVkcy12YWxpZGF0aW9uXCIgW2Zvcm1Hcm91cF09XCJuZXdFbnRpdHlcIiAobmdTdWJtaXQpPVwic2F2ZShkcmFmdFR5cGUpXCI+XG4gICAgPGFicC1wYWdlIFt0aXRsZV09XCInQ21zOjpOZXcnfCBhYnBMb2NhbGl6YXRpb25cIiBbdG9vbGJhcl09XCJ0cnVlXCI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIiAjc3VibWl0Y2xpY2s+PC9idXR0b24+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbnRyeVNlbGVjdDsgZWxzZSBlbHNlVGVtcGxhdGVcIj5cbiAgICAgICAgICAgIDxjbXMtY3JlYXRlLW9yLWVkaXQtZW50cmllcyBbZW50aXR5XT1cIm5ld0VudGl0eVwiIFtQYXJlbnRRdWVyeVBhcmFtc109XCJxdWVyeVBhcmFtc1wiXG4gICAgICAgICAgICAgICAgW3BhcmVudEVudHJ5U2VsZWN0XT1cImVudHJ5U2VsZWN0XCIgPjwvY21zLWNyZWF0ZS1vci1lZGl0LWVudHJpZXM+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2Vsc2VUZW1wbGF0ZT5cbiAgICAgICAgICAgIDxjbXMtY3JlYXRlLW9yLWVkaXQtZW50cmllcyBbZW50aXR5XT1cIm5ld0VudGl0eVwiXG4gICAgICAgICAgICAgICAgW1BhcmVudFF1ZXJ5UGFyYW1zXT1cInF1ZXJ5UGFyYW1zXCIgPjwvY21zLWNyZWF0ZS1vci1lZGl0LWVudHJpZXM+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9hYnAtcGFnZT5cbjwvZm9ybT4iXX0=
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Ntcy9zcmMvbGliL2NvbXBvbmVudHMvYWRtaW4vZW50cmllcy9jcmVhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9lbnRyaWVzL2NyZWF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFzQixTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFBRyxXQUFXLEVBQVksTUFBTSxnQkFBZ0IsQ0FBQztBQUd4RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUduRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7Ozs7Ozs7O0FBSTFFLE1BV2EsZUFBZTtJQUVoQjtJQUNEO0lBQ0M7SUFDQTtJQUNBO0lBQ0E7SUFOVixZQUNVLE9BQXVCLEVBQ3hCLFNBQW1CLEVBQ2xCLEtBQXFCLEVBQ3JCLGtCQUFxQyxFQUNyQyxvQkFBeUMsRUFDekMsTUFBYztRQUxkLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3hCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbEIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBQ3pDLFdBQU0sR0FBTixNQUFNLENBQVE7SUFDcEIsQ0FBQztJQUNHLEVBQUUsR0FBQyxNQUFNLENBQUMsV0FBVyxD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Q0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDdkIsQ0FBQzt3R0F2RVUsZUFBZTs0RkFBZixlQUFlLHFDQVBmO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLHFCQUFxQjtnQkFDOUIsUUFBUSxFQUFFLGFBQWEsQ0FBQyxjQUFjO2FBQ3ZDO1NBQ0Ysb0pDeEJILDZ2QkFZTzs7U0RjTSxlQUFlOzRGQUFmLGVBQWU7a0JBWDNCLFNBQVM7K0JBQ0UsWUFBWSxhQUdYO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFFBQVEsRUFBRSxhQUFhLENBQUMsY0FBYzt5QkFDdkM7cUJBQ0Y7Z1BBMEIyQyxXQUFXO3NCQUF0RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUb2FzdGVyU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25Jbml0LCBWaWV3Q2hpbGQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgIExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENyZWF0ZU9yVXBkYXRlRW50cnlJbnB1dEJhc2UgfSBmcm9tICcuL2NyZWF0ZS1vci11cGRhdGUtZW50cnktaW5wdXQtYmFzZSc7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IEVudHJ5QWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvYWRtaW4vZW50cmllcyc7XG5pbXBvcnQgeyBFWFRFTlNJT05TX0lERU5USUZJRVIgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZC9leHRlbnNpb25zJztcbmltcG9ydCB7IEVDbXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9lY21zLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBDbXNBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgVXBkYXRlTGlzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91cGRhdGUtbGlzdC5zZXJ2aWNlJztcblxuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Ntcy1jcmVhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vY3JlYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3JlYXRlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVYVEVOU0lPTlNfSURFTlRJRklFUixcbiAgICAgIHVzZVZhbHVlOiBFQ21zQ29tcG9uZW50LkVudHJpZXNfQ3JlYXRlLFxuICAgIH0sXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ3JlYXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0b2FzdGVyOiBUb2FzdGVyU2VydmljZSxcbiAgICBwdWJsaWMgX2xvY2F0aW9uOiBMb2NhdGlvbixcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIF9FbnRyeUFkbWluU2VydmljZTogRW50cnlBZG1pblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfTG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICApIHsgfVxuICBwcml2YXRlIGZiPWluamVjdChGb3JtQnVpbGRlcilcbiAgcHJpdmF0ZSBfdXBkYXRlTGlzdFNlcnZpY2U9aW5qZWN0KFVwZGF0ZUxpc3RTZXJ2aWNlKVxuXG4gIC8qKuihqOWNleWunuS9kyAqL1xuICBuZXdFbnRpdHk6IEZvcm1Hcm91cCB8IHVuZGVmaW5lZFxuXG4gIC8qKuaYr+WQpuaYr+iNieeovyAqL1xuICBkcmFmdFR5cGU6IGJvb2xlYW4gPSBmYWxzZVxuICAvKirpobXpnaLkvKDlgLznlKjkuo7kvKDpgJLliLDlrZDnu4Tku7YgKi9cbiAgcXVlcnlQYXJhbXM6IGFueSA9ICcnXG5cbiAgLyoq5oyH5a6aaWTnmoTmnaHnm67kv6Hmga8gKi9cbiAgZW50cnlTZWxlY3Q6IGFueSA9ICcnXG5cbiAgLyoq6I635Y+W5o+Q5Lqk5oyJ6ZKu5pu/6Lqr77yM55So5LqO55yf5a6e6Kem5Y+R6KGo5Y2V5o+Q5LqkICovXG4gIEBWaWV3Q2hpbGQoJ3N1Ym1pdGNsaWNrJywgeyBzdGF0aWM6IHRydWUgfSkgc3VibWl0Y2xpY2s6IEVsZW1lbnRSZWY7XG5cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5xdWVyeVBhcmFtcyA9IHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNcbiAgICB0aGlzLm5ld0VudGl0eSA9IHRoaXMuZmIuZ3JvdXAobmV3IENyZWF0ZU9yVXBkYXRlRW50cnlJbnB1dEJhc2UoKSlcbiAgICBpZih0aGlzLnF1ZXJ5UGFyYW1zLlJldmlzaW9uRW50cnlJZCkgICBhd2FpdCB0aGlzLmdldEVudHJ5U2VsZWN0KCk7XG4gIH1cblxuICAvKirojrflj5bmnaHnm67kv6Hmga8gKi9cbiAgZ2V0RW50cnlTZWxlY3QoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3RzKSA9PiB7XG4gICAgICB0aGlzLl9FbnRyeUFkbWluU2VydmljZS5nZXQodGhpcy5xdWVyeVBhcmFtcy5SZXZpc2lvbkVudHJ5SWQpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICB0aGlzLmVudHJ5U2VsZWN0ID0gcmVzXG4gICAgICAgIFxuICAgICAgICByZXNvbHZlKHJlcylcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG5cblxuICAvKirkv53lrZggKi9cbiAgc2F2ZShkcmFmdCkge1xuICAgIHRoaXMubmV3RW50aXR5LnBhdGNoVmFsdWUoe1xuICAgICAgZHJhZnQ6IGRyYWZ0XG4gICAgfSlcbiAgICBsZXQgaW5wdXQgPSB0aGlzLm5ld0VudGl0eS52YWx1ZVxuICAgIGlucHV0LnB1Ymxpc2hUaW1lID0gbmV3IERhdGUobmV3IERhdGUoaW5wdXQucHVibGlzaFRpbWUpLmdldFRpbWUoKSArICg4ICogNjAgKiA2MCAqIDEwMDApKS50b0lTT1N0cmluZygpXG4gICAgaW5wdXQuY3VsdHVyZT10aGlzLm5ld0VudGl0eS5nZXQoJ2N1bHR1cmUnKS52YWx1ZVxuICAgIGlmICghdGhpcy5uZXdFbnRpdHkudmFsaWQpIHJldHVyblxuICAgIHRoaXMuX0VudHJ5QWRtaW5TZXJ2aWNlLmNyZWF0ZShpbnB1dCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLnRvYXN0ZXIuc3VjY2Vzcyh0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYENtc0tpdDo6U2F2ZWRTdWNjZXNzZnVsbHlgKSk7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcnLCB7IHNraXBMb2NhdGlvbkNoYW5nZTogdHJ1ZSB9KS50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AvY21zL2FkbWluL2VudHJpZXNgXSk7XG4gICAgICAgIHRoaXMuX3VwZGF0ZUxpc3RTZXJ2aWNlLnVwZGF0ZUxpc3QoKTtcbiAgICAgIH0pO1xuICAgIH0pXG4gIH1cblxuICAvKirop6blj5Hngrnlh7vmjInpkq7mm7/ouqsgKi9cbiAgY2xpY2tTdWJtaXQodHlwZSkge1xuICAgIHRoaXMuZHJhZnRUeXBlID0gdHlwZVxuICAgIHRoaXMuc3VibWl0Y2xpY2submF0aXZlRWxlbWVudC5jbGljaygpXG4gIH1cbiAgLyoq6L+U5Zue5LiK5LiA6aG1ICovXG4gIGJhY2tUbygpIHtcbiAgICB0aGlzLl9sb2NhdGlvbi5iYWNrKClcbiAgfVxuXG5cblxuXG59XG4iLCI8Zm9ybSBjbGFzcz1cInJvdyBnLTMgbmVlZHMtdmFsaWRhdGlvblwiIFtmb3JtR3JvdXBdPVwibmV3RW50aXR5XCIgKG5nU3VibWl0KT1cInNhdmUoZHJhZnRUeXBlKVwiPlxuICAgIDxhYnAtcGFnZSBbdGl0bGVdPVwiJ0Ntczo6TmV3J3wgYWJwTG9jYWxpemF0aW9uXCIgW3Rvb2xiYXJdPVwidHJ1ZVwiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCIgI3N1Ym1pdGNsaWNrPjwvYnV0dG9uPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZW50cnlTZWxlY3Q7IGVsc2UgZWxzZVRlbXBsYXRlXCI+XG4gICAgICAgICAgICA8Y21zLWNyZWF0ZS1vci1lZGl0LWVudHJpZXMgW2VudGl0eV09XCJuZXdFbnRpdHlcIiBbUGFyZW50UXVlcnlQYXJhbXNdPVwicXVlcnlQYXJhbXNcIlxuICAgICAgICAgICAgICAgIFtwYXJlbnRFbnRyeVNlbGVjdF09XCJlbnRyeVNlbGVjdFwiID48L2Ntcy1jcmVhdGUtb3ItZWRpdC1lbnRyaWVzPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNlbHNlVGVtcGxhdGU+XG4gICAgICAgICAgICA8Y21zLWNyZWF0ZS1vci1lZGl0LWVudHJpZXMgW2VudGl0eV09XCJuZXdFbnRpdHlcIlxuICAgICAgICAgICAgICAgIFtQYXJlbnRRdWVyeVBhcmFtc109XCJxdWVyeVBhcmFtc1wiID48L2Ntcy1jcmVhdGUtb3ItZWRpdC1lbnRyaWVzPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvYWJwLXBhZ2U+XG48L2Zvcm0+Il19