{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./node_modules/moment/locale sync ^\\.\\/.*$","./src/app/activity/activity.component.html","./src/app/activity/dialog.html","./src/app/add-score-card/add-score-card.component.html","./src/app/add-score-card/response-dialog.html","./src/app/add-score-card/validation-dialog.html","./src/app/alerts/alerts.component.html","./src/app/app.component.html","./src/app/case/case.component.html","./src/app/case/dialog.html","./src/app/common/dialog.html","./src/app/company/company.component.html","./src/app/company/dialog.html","./src/app/dashboard/dashboard.component.html","./src/app/departments/departments.component.html","./src/app/departments/dialog.html","./src/app/employee/dialog.html","./src/app/employee/employee.component.html","./src/app/frustration-comments/frustration-comments.component.html","./src/app/frustration-reports/frustration-reports.component.html","./src/app/frustrationstype/dialog.html","./src/app/frustrationstype/frustrationstype.component.html","./src/app/goals/dialog.html","./src/app/goals/goals.component.html","./src/app/hipriority/hipriority.component.html","./src/app/login/dialog.html","./src/app/login/login.component.html","./src/app/metric/dialog.html","./src/app/metric/metric.component.html","./src/app/metricdata/dialog.html","./src/app/metricdata/metricdata.component.html","./src/app/nometric-process/nometric-process.component.html","./src/app/organization/dialog.html","./src/app/organization/organization.component.html","./src/app/other-frustration/other-frustration.component.html","./src/app/performance-score-card/dialog.html","./src/app/performance-score-card/performance-score-card.component.html","./src/app/pointer/dialog.html","./src/app/pointer/pointer.component.html","./src/app/process-map/dialog.html","./src/app/process-map/process-map.component.html","./src/app/process/dialog.html","./src/app/process/process.component.html","./src/app/project/dialog.html","./src/app/project/project.component.html","./src/app/projects-noactions/projects-noactions.component.html","./src/app/quarter/quarter.component.html","./src/app/report-activity-issues/report-activity-issues.component.html","./src/app/report-category/dialog.html","./src/app/report-category/report-category.component.html","./src/app/report-hipriority/dialog.html","./src/app/report-hipriority/report-hipriority.component.html","./src/app/report-metric-process/dialog.html","./src/app/report-metric-process/report-metric-process.component.html","./src/app/report-process/dialog.html","./src/app/report-process/report-process.component.html","./src/app/report-project/dialog.html","./src/app/report-project/report-project.component.html","./src/app/reports/reports.component.html","./src/app/roles/dialog.html","./src/app/roles/roles.component.html","./src/app/sub-company/sub-company.component.html","./src/app/teams/dialog.html","./src/app/teams/teams.component.html","./src/app/user-permisions/user-permisions.component.html","./src/app/usermanual/usermanual.component.html","./src/app/view-score-card/view-score-card.component.html","./src/app/activity/activity.component.ts","./src/app/add-score-card/add-score-card.component.scss","./src/app/add-score-card/add-score-card.component.ts","./src/app/add-score-card/add-score-card.model.ts","./src/app/add-score-card/response-dialog.ts","./src/app/add-score-card/validation-dialog.ts","./src/app/alerts/alerts.component.ts","./src/app/app-routing.module.ts","./src/app/app.component.scss","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/case/case.component.ts","./src/app/common/dialog.ts","./src/app/common/directives/numbers-only.directive.ts","./src/app/common/models/login-level.model.ts","./src/app/company/company.component.scss","./src/app/company/company.component.ts","./src/app/copyRight.model.ts","./src/app/dashboard/dashboard.component.scss","./src/app/dashboard/dashboard.component.ts","./src/app/departments/departments.component.scss","./src/app/departments/departments.component.ts","./src/app/dorsey.service.ts","./src/app/employee/employee.component.ts","./src/app/frustration-comments/frustration-comments.component.ts","./src/app/frustration-reports/frustration-reports.component.ts","./src/app/frustrationstype/frustrationstype.component.ts","./src/app/goals/goals.component.scss","./src/app/goals/goals.component.ts","./src/app/hipriority/hipriority.component.ts","./src/app/login/azure-details.model.ts","./src/app/login/dialog.css","./src/app/login/login.component.scss","./src/app/login/login.component.ts","./src/app/login/msal-user.service.ts","./src/app/long-press.ts","./src/app/metric/metric.component.ts","./src/app/metricdata/metricdata.component.ts","./src/app/nometric-process/nometric-process.component.ts","./src/app/organization/organization.component.scss","./src/app/organization/organization.component.ts","./src/app/other-frustration/other-frustration.component.ts","./src/app/performance-score-card/performance-score-card.component.scss","./src/app/performance-score-card/performance-score-card.component.ts","./src/app/performance-score-card/performance-score-card.model.ts","./src/app/performance-score-card/performance-score-card.service.ts","./src/app/pointer/dialog.css","./src/app/pointer/pointer.component.ts","./src/app/process-map/dialog.css","./src/app/process-map/process-map.component.scss","./src/app/process-map/process-map.component.ts","./src/app/process/process.component.ts","./src/app/project/project.component.ts","./src/app/projects-noactions/projects-noactions.component.ts","./src/app/quarter/quarter.component.scss","./src/app/quarter/quarter.component.ts","./src/app/quarter/quarter.model.ts","./src/app/report-activity-issues/report-activity-issues.component.scss","./src/app/report-activity-issues/report-activity-issues.component.ts","./src/app/report-category/report-category.component.ts","./src/app/report-hipriority/report-hipriority.component.ts","./src/app/report-metric-process/report-metric-process.component.ts","./src/app/report-process/report-process.component.ts","./src/app/report-project/report-project.component.ts","./src/app/reports/reports.component.ts","./src/app/roles/dialog.scss","./src/app/roles/roles.component.ts","./src/app/services/company.service.ts","./src/app/services/department.service.ts","./src/app/services/goal.service.ts","./src/app/services/organization.service.ts","./src/app/services/quarter.service.ts","./src/app/sort.pipe.ts","./src/app/sub-company/sub-company.component.scss","./src/app/sub-company/sub-company.component.ts","./src/app/teams/teams.component.ts","./src/app/user-permisions/user-permisions.component.scss","./src/app/user-permisions/user-permisions.component.ts","./src/app/usermanual/usermanual.component.scss","./src/app/usermanual/usermanual.component.ts","./src/app/view-score-card/view-score-card.component.scss","./src/app/view-score-card/view-score-card.component.ts","./src/environments/environment.ts","./src/main.ts","fs (ignored)","crypto (ignored)","stream (ignored)","zlib (ignored)","webpack:///fs (ignored)?0c95","http (ignored)","https (ignored)","url (ignored)"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,wE;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6E;;;;;;;;;;;ACnSA,2YAA2Y,oiBAAoiB,gBAAgB,8NAA8N,gTAAgT,oBAAoB,w5DAAw5D,2CAA2C,UAAU,wCAAwC,0CAA0C,kBAAkB,8BAA8B,qBAAqB,8BAA8B,sBAAsB,yBAAyB,oBAAoB,yBAAyB,0BAA0B,yBAAyB,iBAAiB,0PAA0P,6GAA6G,mDAAmD,yFAAyF,6MAA6M,6GAA6G,mDAAmD,yMAAyM,2CAA2C,UAAU,wCAAwC,+FAA+F,kBAAkB,0BAA0B,qBAAqB,8BAA8B,sBAAsB,yBAAyB,oBAAoB,yBAAyB,0BAA0B,yBAAyB,iBAAiB,+CAA+C,8NAA8N,kDAAkD,8BAA8B,8GAA8G,MAAM,MAAM,iLAAiL,kDAAkD,8BAA8B,0NAA0N,kBAAkB,0BAA0B,qBAAqB,8BAA8B,sBAAsB,6BAA6B,oBAAoB,6BAA6B,0BAA0B,yBAAyB,iBAAiB,mRAAmR,4GAA4G,mDAAmD,yFAAyF,MAAM,MAAM,8MAA8M,4GAA4G,mDAAmD,uiBAAuiB,mBAAmB,sJAAsJ,KAAK,sT;;;;;;;;;;;ACAz/P,6RAA6R,MAAM,6/BAA6/B,uMAAuM,kBAAkB,qHAAqH,kBAAkB,yYAAyY,kBAAkB,8JAA8J,kBAAkB,+VAA+V,mCAAmC,sDAAsD,kBAAkB,sHAAsH,kBAAkB,uHAAuH,kBAAkB,qSAAqS,YAAY,0DAA0D,4BAA4B,wRAAwR,kBAAkB,2UAA2U,YAAY,iDAAiD,mBAAmB,8VAA8V,YAAY,oDAAoD,sBAAsB,sMAAsM,kBAAkB,yIAAyI,YAAY,sCAAsC,MAAM,+MAA+M,kBAAkB,wPAAwP,YAAY,mFAAmF,sCAAsC,kaAAka,kBAAkB,qJAAqJ,kBAAkB,ibAAib,mCAAmC,uCAAuC,kBAAkB,8GAA8G,kBAAkB,sSAAsS,YAAY,kEAAkE,4BAA4B,6YAA6Y,kBAAkB,gUAAgU,YAAY,wDAAwD,mBAAmB,8oBAA8oB,YAAY,2DAA2D,sBAAsB,uWAAuW,kBAAkB,mKAAmK,YAAY,mDAAmD,MAAM,mmBAAmmB,kBAAkB,2PAA2P,YAAY,6EAA6E,sCAAsC,8bAA8b,mGAAmG,kBAAkB,uNAAuN,YAAY,4DAA4D,8BAA8B,4OAA4O,qGAAqG,kBAAkB,6NAA6N,YAAY,gEAAgE,kCAAkC,u3BAAu3B,UAAU,8F;;;;;;;;;;;ACAriZ,wqBAAwqB,yBAAyB,6IAA6I,0BAA0B,yJAAyJ,UAAU,kJAAkJ,4dAA4d,yBAAyB,qJAAqJ,0BAA0B,iKAAiK,UAAU,2tBAA2tB,iBAAiB,mHAAmH,aAAa,wIAAwI,iBAAiB,qHAAqH,kBAAkB,+SAA+S,iBAAiB,8NAA8N,mEAAmE,qBAAqB,omBAAomB,iBAAiB,42BAA42B,wgBAAwgB,oBAAoB,63BAA63B,2aAA2a,YAAY,sFAAsF,6EAA6E,wBAAwB,k6BAAk6B,iBAAiB,uEAAuE,oBAAoB,2NAA2N,0XAA0X,gFAAgF,+BAA+B,4HAA4H,sdAAsd,OAAO,yYAAyY,2XAA2X,gFAAgF,+BAA+B,4HAA4H,0dAA0d,OAAO,2YAA2Y,wXAAwX,gFAAgF,+BAA+B,4HAA4H,8cAA8c,OAAO,krBAAkrB,2EAA2E,WAAW,kkCAAkkC,scAAsc,YAAY,sFAAsF,iKAAiK,wBAAwB,05BAA05B,uBAAuB,8MAA8M,uBAAuB,8MAA8M,uBAAuB,+MAA+M,uBAAuB,8MAA8M,uBAAuB,8MAA8M,uBAAuB,+MAA+M,uBAAuB,+MAA+M,uBAAuB,+MAA+M,uBAAuB,gNAAgN,uBAAuB,gNAAgN,wBAAwB,+MAA+M,wBAAwB,0OAA0O,wBAAwB,0OAA0O,wBAAwB,oaAAoa,iBAAiB,4EAA4E,oBAAoB,+NAA+N,mBAAmB,yLAAyL,0BAA0B,aAAa,kMAAkM,2LAA2L,qBAAqB,qHAAqH,OAAO,mGAAmG,qBAAqB,4IAA4I,mBAAmB,uLAAuL,2BAA2B,aAAa,gMAAgM,6LAA6L,sBAAsB,sHAAsH,OAAO,oGAAoG,sBAAsB,4IAA4I,mBAAmB,iLAAiL,wBAAwB,aAAa,0LAA0L,uLAAuL,mBAAmB,mHAAmH,OAAO,iGAAiG,mBAAmB,gMAAgM,kBAAkB,4DAA4D,YAAY,6qyBAA6qyB,wZAAwZ,YAAY,sFAAsF,iKAAiK,wBAAwB,05BAA05B,iBAAiB,8MAA8M,iBAAiB,8MAA8M,iBAAiB,+MAA+M,iBAAiB,8MAA8M,iBAAiB,8MAA8M,iBAAiB,+MAA+M,iBAAiB,+MAA+M,iBAAiB,+MAA+M,iBAAiB,gNAAgN,iBAAiB,gNAAgN,kBAAkB,+MAA+M,kBAAkB,+MAA+M,kBAAkB,oaAAoa,iBAAiB,4EAA4E,oBAAoB,+NAA+N,mBAAmB,oQAAoQ,0BAA0B,aAAa,kMAAkM,wDAAwD,qBAAqB,qHAAqH,OAAO,mGAAmG,qBAAqB,4IAA4I,mBAAmB,wQAAwQ,2BAA2B,aAAa,oMAAoM,wDAAwD,sBAAsB,sHAAsH,OAAO,oGAAoG,sBAAsB,4IAA4I,mBAAmB,4PAA4P,wBAAwB,aAAa,8LAA8L,wDAAwD,mBAAmB,mHAAmH,OAAO,iGAAiG,mBAAmB,gMAAgM,kBAAkB,4DAA4D,YAAY,2PAA2P,cAAc,0QAA0Q,cAAc,0QAA0Q,cAAc,0QAA0Q,cAAc,+RAA+R,cAAc,0QAA0Q,cAAc,0QAA0Q,cAAc,0QAA0Q,cAAc,+RAA+R,cAAc,2QAA2Q,eAAe,2QAA2Q,eAAe,2QAA2Q,eAAe,2QAA2Q,eAAe,uTAAuT,ogB;;;;;;;;;;;ACA5s3D,iEAAiE,SAAS,2DAA2D,uDAAuD,KAAK,wY;;;;;;;;;;;ACAjM,iIAAiI,uDAAuD,KAAK,oY;;;;;;;;;;;ACA7L,gpBAAgpB,mIAAmI,kBAAkB,kcAAkc,4GAA4G,sMAAsM,+CAA+C,KAAK,UAAU,6dAA6d,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,yDAAyD,mIAAmI,kBAAkB,+nBAA+nB,qJAAqJ,+CAA+C,KAAK,KAAK,mE;;;;;;;;;;;ACAznG,+CAA+C,6BAA6B,kCAAkC,iBAAiB,SAAS,0BAA0B,mBAAmB,2BAA2B,4BAA4B,aAAa,+BAA+B,yCAAyC,aAAa,SAAS,0BAA0B,6CAA6C,yCAAyC,aAAa,SAAS,2BAA2B,6BAA6B,+BAA+B,aAAa,SAAS,qBAAqB,4CAA4C,SAAS,qtLAAqtL,uV;;;;;;;;;;;ACAz2M,4CAA4C,wBAAwB,sBAAsB,OAAO,yBAAyB,yBAAyB,SAAS,KAAK,oBAAoB,gBAAgB,oBAAoB,2BAA2B,OAAO,qBAAqB,2BAA2B,2BAA2B,OAAO,YAAY,qBAAqB,kCAAkC,qBAAqB,wBAAwB,OAAO,YAAY,qBAAqB,wBAAwB,OAAO,eAAe,kCAAkC,OAAO,iCAAiC,kCAAkC,yBAAyB,8BAA8B,OAAO,qBAAqB,4BAA4B,OAAO,wBAAwB,yBAAyB,OAAO,uBAAuB,4BAA4B,OAAO,cAAc,2BAA2B,OAAO,0BAA0B,yBAAyB,SAAS,yBAAyB,wBAAwB,SAAS,iBAAiB,wBAAwB,kBAAkB,wBAAwB,yBAAyB,OAAO,KAAK,ubAAub,weAAwe,8WAA8W,iBAAiB,kQAAkQ,iBAAiB,oBAAoB,wSAAwS,iBAAiB,oBAAoB,qaAAqa,6BAA6B,WAAW,opCAAopC,4GAA4G,iuFAAiuF,2CAA2C,UAAU,wCAAwC,6MAA6M,4GAA4G,+KAA+K,iBAAiB,uCAAuC,mBAAmB,4BAA4B,kBAAkB,wBAAwB,qBAAqB,0BAA0B,sBAAsB,0BAA0B,8BAA8B,wBAAwB,iBAAiB,4BAA4B,oBAAoB,uBAAuB,qBAAqB,uBAAuB,qBAAqB,uBAAuB,yCAAyC,+CAA+C,6LAA6L,4GAA4G,6EAA6E,0GAA0G,MAAM,MAAM,wKAAwK,4GAA4G,+EAA+E,yYAAyY,UAAU,oMAAoM,mBAAmB,mLAAmL,KAAK,0vBAA0vB,SAAS,MAAM,SAAS,IAAI,YAAY,mEAAmE,SAAS,iWAAiW,sBAAsB,oBAAoB,iLAAiL,kBAAkB,gEAAgE,kCAAkC,mBAAmB,iCAAiC,kBAAkB,yBAAyB,oBAAoB,8BAA8B,0CAA0C,gFAAgF,mBAAmB,iCAAiC,kBAAkB,yBAAyB,oBAAoB,+BAA+B,0CAA0C,oEAAoE,sBAAsB,0BAA0B,uBAAuB,4BAA4B,qBAAqB,4BAA4B,2BAA2B,qHAAqH,iBAAiB,gBAAgB,sKAAsK,mQAAmQ,YAAY,oDAAoD,4BAA4B,mEAAmE,MAAM,MAAM,2EAA2E,eAAe,uMAAuM,SAAS,QAAQ,cAAc,4LAA4L,oCAAoC,mBAAmB,0CAA0C,0BAA0B,+RAA+R,SAAS,MAAM,SAAS,IAAI,YAAY,2CAA2C,SAAS,4OAA4O,sBAAsB,oBAAoB,2JAA2J,kBAAkB,kEAAkE,oCAAoC,mBAAmB,mCAAmC,kBAAkB,2BAA2B,oBAAoB,qBAAqB,0CAA0C,sFAAsF,mBAAmB,mCAAmC,kBAAkB,2BAA2B,oBAAoB,sBAAsB,0CAA0C,0EAA0E,sBAAsB,4BAA4B,uBAAuB,8BAA8B,qBAAqB,8BAA8B,2BAA2B,kHAAkH,WAAW,uFAAuF,kBAAkB,6CAA6C,wBAAwB,iBAAiB,+BAA+B,OAAO,iBAAiB,8BAA8B,mCAAmC,OAAO,qBAAqB,4BAA4B,kCAAkC,OAAO,iBAAiB,+BAA+B,OAAO,OAAO,a;;;;;;;;;;;ACA35f,oPAAoP,MAAM,g9BAAg9B,8rBAA8rB,kBAAkB,kMAAkM,kBAAkB,gLAAgL,YAAY,0DAA0D,4BAA4B,0MAA0M,kBAAkB,mLAAmL,YAAY,4DAA4D,8BAA8B,0MAA0M,kBAAkB,wJAAwJ,YAAY,oDAAoD,sBAAsB,sMAAsM,kBAAkB,uSAAuS,YAAY,+DAA+D,iCAAiC,mNAAmN,kBAAkB,wMAAwM,YAAY,0FAA0F,6CAA6C,wUAAwU,kBAAkB,8iBAA8iB,YAAY,wDAAwD,0BAA0B,0MAA0M,kBAAkB,mLAAmL,YAAY,4DAA4D,8BAA8B,gmCAAgmC,kBAAkB,wRAAwR,kBAAkB,qMAAqM,YAAY,qEAAqE,4BAA4B,mSAAmS,kBAAkB,8LAA8L,YAAY,mEAAmE,8BAA8B,ycAAyc,kBAAkB,wKAAwK,YAAY,6DAA6D,sBAAsB,sQAAsQ,kBAAkB,mUAAmU,YAAY,4EAA4E,iCAAiC,kTAAkT,kBAAkB,uNAAuN,YAAY,oFAAoF,6CAA6C,4jBAA4jB,kBAAkB,ynBAAynB,YAAY,iEAAiE,0BAA0B,6aAA6a,kBAAkB,2LAA2L,YAAY,iEAAiE,8BAA8B,s+CAAs+C,WAAW,iJAAiJ,iCAAiC,+JAA+J,UAAU,8F;;;;;;;;;;;ACAhrc,sa;;;;;;;;;;;ACAA,seAAse,iBAAiB,sCAAsC,0GAA0G,iBAAiB,kCAAkC,uIAAuI,iBAAiB,4CAA4C,iMAAiM,yYAAyY,4KAA4K,gBAAgB,wVAAwV,qrCAAqrC,2CAA2C,UAAU,wCAAwC,0HAA0H,qBAAqB,qBAAqB,eAAe,uBAAuB,gBAAgB,uBAAuB,yDAAyD,kYAAkY,wCAAwC,uEAAuE,8VAA8V,yFAAyF,8CAA8C,yEAAyE,MAAM,MAAM,yLAAyL,yIAAyI,kGAAkG,sGAAsG,MAAM,MAAM,kMAAkM,yIAAyI,gFAAgF,8FAA8F,MAAM,MAAM,kDAAkD,iJAAiJ,gBAAgB,aAAa,WAAW,iEAAiE,qBAAqB,6ZAA6Z,8HAA8H,mBAAmB,0IAA0I,KAAK,uhB;;;;;;;;;;;ACA5lN,yQAAyQ,MAAM,ugCAAugC,sLAAsL,kBAAkB,qGAAqG,kXAAkX,iBAAiB,uVAAuV,iBAAiB,oVAAoV,iBAAiB,kWAAkW,iBAAiB,2oBAA2oB,iBAAiB,+UAA+U,iBAAiB,iWAAiW,iBAAiB,4bAA4b,iBAAiB,gcAAgc,iBAAiB,yuBAAyuB,iBAAiB,o4BAAo4B,0EAA0E,iBAAiB,wcAAwc,iBAAiB,oWAAoW,iBAAiB,gUAAgU,+yBAA+yB,iBAAiB,wZAAwZ,iBAAiB,0pBAA0pB,UAAU,0F;;;;;;;;;;;ACAtgU,kCAAkC,0BAA0B,kBAAkB,0BAA0B,kCAAkC,8BAA8B,QAAQ,sUAAsU,kDAAkD,0EAA0E,mBAAmB,kDAAkD,iBAAiB,2FAA2F,+CAA+C,aAAa,iCAAiC,6BAA6B,aAAa,+BAA+B,mJAAmJ,gDAAgD,gBAAgB,cAAc,KAAK,cAAc,qBAAqB,aAAa,uPAAuP,mVAAmV,sVAAsV,yXAAyX,kWAAkW,oP;;;;;;;;;;;ACA11F,yNAAyN,4NAA4N,ihBAAihB,gBAAgB,mUAAmU,snCAAsnC,2CAA2C,UAAU,wCAAwC,0CAA0C,qBAAqB,8BAA8B,4BAA4B,mDAAmD,odAAod,seAAse,+DAA+D,iGAAiG,MAAM,MAAM,MAAM,MAAM,maAAma,seAAse,+DAA+D,ohBAAohB,mBAAmB,kKAAkK,KAAK,4O;;;;;;;;;;;ACAh6K,4LAA4L,MAAM,ghCAAghC,6KAA6K,QAAQ,kBAAkB,sdAAsd,kBAAkB,mtCAAmtC,UAAU,gG;;;;;;;;;;;ACA9lG,oQAAoQ,MAAM,m/BAAm/B,wIAAwI,kBAAkB,wTAAwT,kBAAkB,0SAA0S,kBAAkB,2KAA2K,iBAAiB,mUAAmU,4CAA4C,YAAY,gVAAgV,iZAAiZ,qBAAqB,uRAAuR,6UAA6U,6CAA6C,eAAe,6LAA6L,kBAAkB,wKAAwK,YAAY,qDAAqD,uBAAuB,k8BAAk8B,kBAAkB,+ZAA+Z,kBAAkB,sUAAsU,kBAAkB,0lCAA0lC,kBAAkB,wZAAwZ,kBAAkB,spBAAspB,UAAU,0F;;;;;;;;;;;ACA50Q,uXAAuX,idAAid,gBAAgB,mRAAmR,ozDAAozD,2CAA2C,UAAU,wCAAwC,oCAAoC,sBAAsB,wBAAwB,8BAA8B,wBAAwB,iBAAiB,wBAAwB,wBAAwB,wBAAwB,kBAAkB,wBAAwB,kBAAkB,6CAA6C,0YAA0Y,wRAAwR,+GAA+G,MAAM,MAAM,uXAAuX,uRAAuR,uGAAuG,MAAM,MAAM,kDAAkD,kKAAkK,4GAA4G,+fAA+f,mBAAmB,gJAAgJ,KAAK,8N;;;;;;;;;;;ACA30L,kIAAkI,wBAAwB,sBAAsB,OAAO,yBAAyB,yBAAyB,SAAS,KAAK,oBAAoB,UAAU,2BAA2B,OAAO,0BAA0B,yBAAyB,SAAS,yBAAyB,wBAAwB,SAAS,KAAK,seAAse,YAAY,oDAAoD,eAAe,6uBAA6uB,aAAa,6QAA6Q,gBAAgB,oIAAoI,MAAM,kiBAAkiB,iBAAiB,oDAAoD,aAAa,6BAA6B,gCAAgC,sCAAsC,qDAAqD,4jCAA4jC,2CAA2C,UAAU,wCAAwC,2DAA2D,qBAAqB,4BAA4B,KAAK,yBAAyB,kBAAkB,yBAAyB,cAAc,2JAA2J,MAAM,0ZAA0Z,KAAK,MAAM,4TAA4T,MAAM,6FAA6F,WAAW,wBAAwB,yBAAyB,kBAAkB,WAAW,mLAAmL,mBAAmB,0IAA0I,KAAK,gN;;;;;;;;;;;ACAnoL,gIAAgI,wBAAwB,sBAAsB,OAAO,yBAAyB,yBAAyB,SAAS,KAAK,wBAAwB,UAAU,2BAA2B,OAAO,0BAA0B,yBAAyB,SAAS,yBAAyB,wBAAwB,SAAS,KAAK,0cAA0c,YAAY,sDAAsD,eAAe,ivBAAivB,aAAa,upBAAupB,iBAAiB,oDAAoD,aAAa,6BAA6B,gCAAgC,oCAAoC,qDAAqD,oMAAoM,2uCAA2uC,2CAA2C,UAAU,wCAAwC,yCAAyC,qBAAqB,0BAA0B,KAAK,wBAAwB,qBAAqB,uBAAuB,kBAAkB,wBAAwB,qBAAqB,wBAAwB,4BAA4B,kZAAkZ,WAAW,wBAAwB,yBAAyB,kBAAkB,WAAW,mLAAmL,mBAAmB,0IAA0I,KAAK,gN;;;;;;;;;;;ACA5qK,oPAAoP,MAAM,s9BAAs9B,+JAA+J,QAAQ,kBAAkB,qdAAqd,kBAAkB,siCAAsiC,UAAU,8F;;;;;;;;;;;ACAh6F,mNAAmN,4MAA4M,qdAAqd,gBAAgB,qRAAqR,2xCAA2xC,gBAAgB,wHAAwH,MAAM,8OAA8O,iBAAiB,oBAAoB,wOAAwO,63BAA63B,2CAA2C,UAAU,wCAAwC,sCAAsC,8BAA8B,wBAAwB,iCAAiC,+CAA+C,qPAAqP,8GAA8G,iDAAiD,uFAAuF,MAAM,MAAM,MAAM,MAAM,oNAAoN,+GAA+G,iDAAiD,wfAAwf,mBAAmB,gJAAgJ,KAAK,oO;;;;;;;;;;;ACA1tL,yLAAyL,MAAM,s9BAAs9B,+JAA+J,QAAQ,kBAAkB,gZAAgZ,kBAAkB,4/BAA4/B,UAAU,8F;;;;;;;;;;;ACAtvF,mNAAmN,gMAAgM,qdAAqd,gBAAgB,qRAAqR,k2BAAk2B,2CAA2C,UAAU,wCAAwC,sCAAsC,eAAe,wBAAwB,sBAAsB,+CAA+C,gOAAgO,8GAA8G,iDAAiD,uFAAuF,MAAM,MAAM,MAAM,MAAM,+LAA+L,+GAA+G,iDAAiD,ueAAue,mBAAmB,gJAAgJ,KAAK,kO;;;;;;;;;;;ACA1rH,gIAAgI,wBAAwB,sBAAsB,OAAO,yBAAyB,yBAAyB,SAAS,KAAK,oBAAoB,UAAU,2BAA2B,OAAO,0BAA0B,yBAAyB,SAAS,yBAAyB,wBAAwB,SAAS,KAAK,kwBAAkwB,aAAa,ymBAAymB,iBAAiB,oDAAoD,aAAa,6BAA6B,gCAAgC,sLAAsL,63CAA63C,2CAA2C,UAAU,wCAAwC,yCAAyC,qBAAqB,0BAA0B,KAAK,uBAAuB,kBAAkB,wBAAwB,qBAAqB,wBAAwB,4BAA4B,wBAAwB,2BAA2B,uBAAuB,sBAAsB,qZAAqZ,WAAW,kBAAkB,mBAAmB,kBAAkB,WAAW,mLAAmL,mBAAmB,0IAA0I,KAAK,gN;;;;;;;;;;;ACArsJ,wKAAwK,MAAM,m6BAAm6B,yBAAyB,0CAA0C,yBAAyB,irBAAirB,uMAAuM,sCAAsC,gBAAgB,0EAA0E,+FAA+F,UAAU,6CAA6C,qBAAqB,wBAAwB,8BAA8B,0BAA0B,OAAO,iB;;;;;;;;;;;ACAv6E,2CAA2C,mCAAmC,qCAAqC,oCAAoC,OAAO,cAAc,uBAAuB,OAAO,oBAAoB,oCAAoC,OAAO,yCAAyC,uBAAuB,kCAAkC,2BAA2B,OAAO,sCAAsC,wBAAwB,OAAO,wBAAwB,yBAAyB,OAAO,2BAA2B,kCAAkC,OAAO,aAAa,qBAAqB,oCAAoC,iCAAiC,uBAAuB,yCAAyC,mBAAmB,6BAA6B,mDAAmD,mCAAmC,uBAAuB,qCAAqC,2HAA2H,6BAA6B,yBAAyB,yBAAyB,6BAA6B,qYAAqY,yBAAyB,uBAAuB,0BAA0B,8DAA8D,yBAAyB,kCAAkC,qMAAqM,6BAA6B,8DAA8D,yBAAyB,kCAAkC,qMAAqM,6BAA6B,wBAAwB,8BAA8B,wBAAwB,8BAA8B,wBAAwB,8BAA8B,wBAAwB,8BAA8B,wBAAwB,8BAA8B,wBAAwB,8BAA8B,aAAa,+BAA+B,sCAAsC,6BAA6B,4BAA4B,sBAAsB,wCAAwC,sBAAsB,+BAA+B,uBAAuB,gCAAgC,wBAAwB,iCAAiC,yBAAyB,kCAAkC,wBAAwB,kCAAkC,2BAA2B,wCAAwC,2BAA2B,wCAAwC,4BAA4B,yCAAyC,uBAAuB,0BAA0B,yBAAyB,6BAA6B,gCAAgC,6BAA6B,yBAAyB,6BAA6B,gCAAgC,6BAA6B,sBAAsB,6BAA6B,6BAA6B,6BAA6B,yBAAyB,6BAA6B,gCAAgC,6BAA6B,wBAAwB,6BAA6B,+BAA+B,6BAA6B,uBAAuB,oBAAoB,wCAAwC,8BAA8B,wCAAwC,uBAAuB,wCAAwC,8BAA8B,wCAAwC,oBAAoB,wCAAwC,2BAA2B,wCAAwC,uBAAuB,wCAAwC,8BAA8B,wCAAwC,sBAAsB,wCAAwC,6BAA6B,wCAAwC,wBAAwB,4BAA4B,4BAA4B,4CAA4C,uBAAuB,sBAAsB,kCAAkC,qDAAqD,+BAA+B,0BAA0B,wBAAwB,+BAA+B,wBAAwB,wBAAwB,0BAA0B,+BAA+B,2BAA2B,8BAA8B,2BAA2B,gCAAgC,cAAc,sBAAsB,kCAAkC,uBAAuB,sCAAsC,cAAc,+BAA+B,cAAc,6BAA6B,oCAAoC,2BAA2B,sBAAsB,uBAAuB,2BAA2B,sBAAsB,4BAA4B,kCAAkC,sCAAsC,+BAA+B,qCAAqC,OAAO,iDAAiD,uBAAuB,mCAAmC,4CAA4C,uJAAuJ,oBAAoB,oCAAoC,4CAA4C,2BAA2B,wBAAwB,0BAA0B,iCAAiC,4CAA4C,0BAA0B,wBAAwB,yBAAyB,iCAAiC,4CAA4C,yBAAyB,wBAAwB,yBAAyB,iCAAiC,sBAAsB,uBAAuB,0BAA0B,iCAAiC,8BAA8B,6GAA6G,0BAA0B,iBAAiB,mBAAmB,gDAAgD,2CAA2C,8CAA8C,oBAAoB,yBAAyB,qBAAqB,sBAAsB,iCAAiC,wBAAwB,uBAAuB,kCAAkC,0BAA0B,iCAAiC,6BAA6B,uCAAuC,uBAAuB,2BAA2B,kBAAkB,yBAAyB,iDAAiD,4CAA4C,yCAAyC,0CAA0C,qCAAqC,kCAAkC,wDAAwD,mDAAmD,sDAAsD,kBAAkB,yBAAyB,+BAA+B,8BAA8B,iBAAiB,kBAAkB,+BAA+B,6CAA6C,0CAA0C,OAAO,uBAAuB,8BAA8B,iBAAiB,kBAAkB,yBAAyB,+BAA+B,8BAA8B,4CAA4C,iDAAiD,mBAAmB,wCAAwC,qBAAqB,OAAO,cAAc,yBAAyB,OAAO,yCAAyC,uBAAuB,kCAAkC,2BAA2B,OAAO,sCAAsC,wBAAwB,OAAO,wBAAwB,yBAAyB,OAAO,2BAA2B,kCAAkC,OAAO,sBAAsB,2BAA2B,OAAO,yBAAyB,oBAAoB,OAAO,4BAA4B,yBAAyB,OAAO,8BAA8B,uBAAuB,kCAAkC,8BAA8B,OAAO,wDAAwD,kCAAkC,gCAAgC,OAAO,sEAAsE,6CAA6C,kCAAkC,OAAO,2LAA2L,8BAA8B,uBAAuB,OAAO,oIAAoI,uBAAuB,OAAO,iBAAiB,qBAAqB,2BAA2B,+BAA+B,OAAO,qCAAqC,oCAAoC,oBAAoB,SAAS,OAAO,yCAAyC,oCAAoC,oBAAoB,SAAS,OAAO,4CAA4C,qCAAqC,oBAAoB,SAAS,OAAO,gDAAgD,qCAAqC,oBAAoB,SAAS,OAAO,yBAAyB,uBAAuB,OAAO,0CAA0C,uBAAuB,0BAA0B,iBAAiB,kBAAkB,qBAAqB,iCAAiC,SAAS,uDAAuD,4BAA4B,SAAS,OAAO,yBAAyB,uBAAuB,qBAAqB,6BAA6B,OAAO,cAAc,oBAAoB,uCAAuC,yBAAyB,mBAAmB,OAAO,sBAAsB,oBAAoB,uBAAuB,uCAAuC,qBAAqB,2BAA2B,mBAAmB,OAAO,+CAA+C,sBAAsB,2BAA2B,qBAAqB,OAAO,8BAA8B,uBAAuB,OAAO,oCAAoC,yBAAyB,+BAA+B,wBAAwB,uBAAuB,yBAAyB,0BAA0B,2BAA2B,2BAA2B,qBAAqB,qBAAqB,OAAO,sCAAsC,sBAAsB,oBAAoB,yBAAyB,4BAA4B,2BAA2B,eAAe,OAAO,4CAA4C,+BAA+B,kBAAkB,sBAAsB,uBAAuB,qBAAqB,2BAA2B,eAAe,qBAAqB,mBAAmB,OAAO,6DAA6D,4BAA4B,OAAO,+DAA+D,uBAAuB,wBAAwB,yBAAyB,oBAAoB,OAAO,yCAAyC,YAAY,sBAAsB,SAAS,wBAAwB,sBAAsB,SAAS,sCAAsC,yBAAyB,uBAAuB,SAAS,wCAAwC,sBAAsB,2BAA2B,SAAS,8CAA8C,iCAAiC,oBAAoB,wBAAwB,yBAAyB,uBAAuB,6BAA6B,iBAAiB,uBAAuB,SAAS,OAAO,wBAAwB,yBAAyB,wBAAwB,SAAS,OAAO,wBAAwB,eAAe,qBAAqB,sBAAsB,SAAS,2BAA2B,mCAAmC,SAAS,OAAO,wBAAwB,qCAAqC,mCAAmC,SAAS,OAAO,yBAAyB,yBAAyB,yBAAyB,SAAS,OAAO,mBAAmB,wCAAwC,OAAO,cAAc,yBAAyB,OAAO,yCAAyC,uBAAuB,kCAAkC,OAAO,sCAAsC,wBAAwB,OAAO,wBAAwB,yBAAyB,OAAO,sBAAsB,2BAA2B,OAAO,6BAA6B,oBAAoB,OAAO,4BAA4B,yBAAyB,OAAO,kCAAkC,uBAAuB,kCAAkC,8BAA8B,OAAO,2LAA2L,8BAA8B,uBAAuB,OAAO,oIAAoI,uBAAuB,OAAO,qCAAqC,mCAAmC,oCAAoC,kCAAkC,4BAA4B,uCAAuC,4BAA4B,SAAS,OAAO,qCAAqC,oBAAoB,wBAAwB,SAAS,WAAW,uLAAuL,cAAc,gBAAgB,uJAAuJ,0sDAA0sD,YAAY,aAAa,kKAAkK,iCAAiC,YAAY,6YAA6Y,gLAAgL,YAAY,aAAa,mFAAmF,gCAAgC,YAAY,wJAAwJ,qDAAqD,WAAW,iDAAiD,yBAAyB,4BAA4B,aAAa,OAAO,wBAAwB,eAAe,qBAAqB,sBAAsB,SAAS,2BAA2B,mCAAmC,SAAS,OAAO,wBAAwB,qCAAqC,mCAAmC,SAAS,OAAO,yBAAyB,yBAAyB,yBAAyB,SAAS,OAAO,mBAAmB,wCAAwC,OAAO,kBAAkB,6BAA6B,iDAAiD,qBAAqB,OAAO,0BAA0B,qBAAqB,OAAO,oTAAoT,yHAAyH,k5BAAk5B,MAAM,+FAA+F,MAAM,seAAse,MAAM,+FAA+F,MAAM,6WAA6W,s5BAAs5B,uMAAuM,MAAM,8GAA8G,MAAM,+JAA+J,mMAAmM,MAAM,8GAA8G,MAAM,oLAAoL,49BAA49B,QAAQ,eAAe,ojBAAojB,MAAM,yeAAye,mZAAmZ,MAAM,uEAAuE,MAAM,6HAA6H,qPAAqP,MAAM,uEAAuE,MAAM,2LAA2L,ktBAAktB,MAAM,sSAAsS,kzBAAkzB,QAAQ,eAAe,0ZAA0Z,urBAAurB,MAAM,mGAAmG,QAAQ,eAAe,wSAAwS,6TAA6T,MAAM,mGAAmG,QAAQ,eAAe,iTAAiT,mrBAAmrB,MAAM,mGAAmG,QAAQ,eAAe,iQAAiQ,6TAA6T,MAAM,mGAAmG,MAAM,qlBAAqlB,gKAAgK,wQAAwQ,OAAO,MAAM,0JAA0J,6XAA6X,2pBAA2pB,aAAa,2PAA2P,iBAAiB,8UAA8U,iBAAiB,0EAA0E,MAAM,MAAM,kEAAkE,0BAA0B,aAAa,gBAAgB,uWAAuW,2CAA2C,WAAW,qH;;;;;;;;;;;ACA9llC,gPAAgP,MAAM,w4BAAw4B,oUAAoU,kBAAkB,0LAA0L,mCAAmC,sDAAsD,kBAAkB,sHAAsH,kBAAkB,uHAAuH,kBAAkB,yNAAyN,YAAY,0DAA0D,4BAA4B,sMAAsM,kBAAkB,gQAAgQ,YAAY,4DAA4D,8BAA8B,0MAA0M,kBAAkB,uLAAuL,YAAY,oDAAoD,sBAAsB,8MAA8M,kBAAkB,mSAAmS,YAAY,+DAA+D,iCAAiC,qMAAqM,kBAAkB,4KAA4K,YAAY,6CAA6C,eAAe,oUAAoU,kBAAkB,wHAAwH,ynCAAynC,UAAU,8F;;;;;;;;;;;ACAv/L,6XAA6X,idAAid,gBAAgB,+sEAA+sE,2CAA2C,UAAU,wCAAwC,qCAAqC,kBAAkB,wBAAwB,qBAAqB,wBAAwB,sBAAsB,wBAAwB,kBAAkB,8BAA8B,qBAAqB,6BAA6B,aAAa,oCAAoC,gBAAgB,+CAA+C,yNAAyN,4GAA4G,iDAAiD,uFAAuF,MAAM,MAAM,qNAAqN,4GAA4G,iDAAiD,0dAA0d,mBAAmB,gJAAgJ,KAAK,qQ;;;;;;;;;;;ACAn9J,oPAAoP,MAAM,s9BAAs9B,wIAAwI,kBAAkB,iTAAiT,kBAAkB,mMAAmM,YAAY,yDAAyD,mBAAmB,4TAA4T,kBAAkB,2SAA2S,kBAAkB,+xBAA+xB,UAAU,8F;;;;;;;;;;;ACA53G,mNAAmN,uMAAuM,qdAAqd,gBAAgB,4VAA4V,iBAAiB,oBAAoB,ivCAAivC,iBAAiB,+FAA+F,MAAM,2PAA2P,iBAAiB,oBAAoB,iTAAiT,iBAAiB,oBAAoB,8QAA8Q,iBAAiB,oBAAoB,szBAAszB,2CAA2C,UAAU,wCAAwC,6FAA6F,sBAAsB,4BAA4B,qBAAqB,qIAAqI,MAAM,mKAAmK,YAAY,iDAAiD,8RAA8R,8GAA8G,uDAAuD,6FAA6F,MAAM,MAAM,MAAM,MAAM,yQAAyQ,+GAA+G,uDAAuD,4UAA4U,gNAAgN,sdAAsd,mBAAmB,gJAAgJ,KAAK,kR;;;;;;;;;;;ACAnjO,kIAAkI,wBAAwB,sBAAsB,OAAO,yBAAyB,uBAAuB,OAAO,KAAK,oBAAoB,UAAU,2BAA2B,OAAO,0BAA0B,uBAAuB,OAAO,yBAAyB,sBAAsB,OAAO,KAAK,0VAA0V,iBAAiB,0MAA0M,6CAA6C,eAAe,2SAA2S,iBAAiB,mMAAmM,iDAAiD,qBAAqB,+PAA+P,iBAAiB,mKAAmK,2CAA2C,eAAe,2uBAA2uB,aAAa,2jBAA2jB,iBAAiB,oDAAoD,aAAa,6BAA6B,gCAAgC,iGAAiG,qDAAqD,kFAAkF,iEAAiE,q+CAAq+C,2CAA2C,UAAU,wCAAwC,mCAAmC,KAAK,wBAAwB,qBAAqB,qEAAqE,wBAAwB,uBAAuB,kBAAkB,wBAAwB,qBAAqB,wBAAwB,4BAA4B,iSAAiS,WAAW,sBAAsB,uBAAuB,kBAAkB,WAAW,kLAAkL,mBAAmB,0IAA0I,KAAK,gN;;;;;;;;;;;ACA53M,yQAAyQ,MAAM,ugCAAugC,sLAAsL,kBAAkB,2GAA2G,kYAAkY,iBAAiB,4VAA4V,iBAAiB,yVAAyV,iBAAiB,uWAAuW,iBAAiB,qpBAAqpB,iBAAiB,oVAAoV,iBAAiB,sWAAsW,iBAAiB,icAAic,iBAAiB,kcAAkc,iBAAiB,mXAAmX,iBAAiB,6WAA6W,iBAAiB,2YAA2Y,uEAAuE,iBAAiB,qdAAqd,iBAAiB,oVAAoV,iBAAiB,8cAA8c,iBAAiB,kXAAkX,iBAAiB,mXAAmX,+yBAA+yB,iBAAiB,wZAAwZ,iBAAiB,0pBAA0pB,UAAU,0F;;;;;;;;;;;ACAp+U,8VAA8V,0hBAA0hB,gBAAgB,kSAAkS,wsCAAwsC,2CAA2C,UAAU,wCAAwC,4DAA4D,sBAAsB,uBAAuB,WAAW,yBAAyB,WAAW,wBAAwB,kBAAkB,4CAA4C,+CAA+C,oJAAoJ,2EAA2E,MAAM,MAAM,wJAAwJ,2FAA2F,MAAM,MAAM,6JAA6J,iFAAiF,MAAM,MAAM,kDAAkD,6jBAA6jB,mBAAmB,gJAAgJ,KAAK,gR;;;;;;;;;;;ACAvuI,kIAAkI,wBAAwB,sBAAsB,OAAO,yBAAyB,yBAAyB,SAAS,KAAK,oBAAoB,UAAU,2BAA2B,OAAO,0BAA0B,yBAAyB,SAAS,yBAAyB,wBAAwB,SAAS,KAAK,6VAA6V,iBAAiB,0MAA0M,6CAA6C,eAAe,6SAA6S,iBAAiB,mMAAmM,iDAAiD,qBAAqB,6PAA6P,iBAAiB,mKAAmK,2CAA2C,eAAe,itBAAitB,aAAa,0QAA0Q,gBAAgB,sIAAsI,MAAM,yfAAyf,iBAAiB,oDAAoD,aAAa,6BAA6B,gCAAgC,iGAAiG,qDAAqD,kFAAkF,iEAAiE,i3FAAi3F,2CAA2C,UAAU,wCAAwC,yCAAyC,qBAAqB,0BAA0B,KAAK,mFAAmF,wBAAwB,mCAAmC,kBAAkB,wBAAwB,qBAAqB,wBAAwB,sBAAsB,qDAAqD,mBAAmB,2BAA2B,8BAA8B,wBAAwB,iBAAiB,wBAAwB,qBAAqB,uBAAuB,qBAAqB,uBAAuB,oBAAoB,uBAAuB,sBAAsB,gZAAgZ,WAAW,wBAAwB,yBAAyB,kBAAkB,WAAW,wLAAwL,mBAAmB,0IAA0I,KAAK,gN;;;;;;;;;;;ACAjlR,+IAA+I,MAAM,o5B;;;;;;;;;;;ACArJ,mcAAmc,iBAAiB,mXAAmX,+DAA+D,eAAe,gSAAgS,iBAAiB,iOAAiO,mEAAmE,qBAAqB,+SAA+S,iBAAiB,yMAAyM,6DAA6D,eAAe,mQAAmQ,2RAA2R,q8CAAq8C,2CAA2C,UAAU,wCAAwC,gFAAgF,2BAA2B,wKAAwK,yBAAyB,wCAAwC,gBAAgB,uCAAuC,uBAAuB,4DAA4D,uNAAuN,+FAA+F,MAAM,MAAM,oJAAoJ,8QAA8Q,sPAAsP,yEAAyE,sJAAsJ,MAAM,MAAM,+GAA+G,gRAAgR,sPAAsP,yEAAyE,4IAA4I,MAAM,OAAO,qGAAqG,oLAAoL,4GAA4G,iEAAiE,kiBAAkiB,mBAAmB,oLAAoL,KAAK,8vB;;;;;;;;;;;ACAl0P,gPAAgP,MAAM,o/BAAo/B,sUAAsU,KAAK,kBAAkB,oMAAoM,kBAAkB,qNAAqN,YAAY,0DAA0D,4BAA4B,8MAA8M,kBAAkB,wNAAwN,YAAY,4DAA4D,8BAA8B,0MAA0M,kBAAkB,+LAA+L,YAAY,oDAAoD,sBAAsB,yWAAyW,YAAY,+DAA+D,iCAAiC,8NAA8N,kBAAkB,+MAA+M,YAAY,0FAA0F,6CAA6C,4UAA4U,kBAAkB,qbAAqb,kBAAkB,mLAAmL,YAAY,4DAA4D,8BAA8B,4MAA4M,kBAAkB,mLAAmL,YAAY,wDAAwD,iBAAiB,2XAA2X,kBAAkB,+NAA+N,YAAY,iEAAiE,4BAA4B,4PAA4P,kBAAkB,0NAA0N,YAAY,+DAA+D,8BAA8B,uPAAuP,kBAAkB,sMAAsM,YAAY,qDAAqD,sBAAsB,giBAAgiB,YAAY,oEAAoE,iCAAiC,oQAAoQ,kBAAkB,2MAA2M,YAAY,0EAA0E,6CAA6C,uWAAuW,kBAAkB,inBAAinB,kBAAkB,+KAA+K,YAAY,2DAA2D,8BAA8B,mOAAmO,kBAAkB,+KAA+K,YAAY,uDAAuD,iBAAiB,q3BAAq3B,WAAW,0IAA0I,iCAAiC,mLAAmL,iCAAiC,4PAA4P,sEAAsE,KAAK,kBAAkB,wSAAwS,kBAAkB,gLAAgL,YAAY,0DAA0D,4BAA4B,wTAAwT,kBAAkB,6MAA6M,YAAY,gEAAgE,kCAAkC,owBAAowB,UAAU,oEAAoE,YAAY,0B;;;;;;;;;;;ACA9nc,ojCAAojC,iBAAiB,8HAA8H,MAAM,8OAA8O,iBAAiB,o5FAAo5F,2CAA2C,UAAU,wCAAwC,4CAA4C,qBAAqB,4BAA4B,sBAAsB,yEAAyE,qBAAqB,0BAA0B,sBAAsB,yBAAyB,kBAAkB,gCAAgC,mBAAmB,yBAAyB,8BAA8B,0BAA0B,iBAAiB,0BAA0B,qBAAqB,0BAA0B,qBAAqB,0BAA0B,oBAAoB,0BAA0B,sBAAsB,6DAA6D,8JAA8J,4GAA4G,yHAAyH,MAAM,MAAM,0KAA0K,4GAA4G,4kBAA4kB,mBAAmB,sKAAsK,KAAK,8iB;;;;;;;;;;;ACAliN,0DAA0D,mBAAmB,wCAAwC,aAAa,qBAAqB,uCAAuC,SAAS,wBAAwB,sCAAsC,qCAAqC,sBAAsB,SAAS,OAAO,iBAAiB,mBAAmB,2BAA2B,OAAO,mBAAmB,kCAAkC,oCAAoC,wBAAwB,6BAA6B,wBAAwB,qCAAqC,mCAAmC,SAAS,OAAO,wBAAwB,yBAAyB,4BAA4B,aAAa,OAAO,wBAAwB,eAAe,oBAAoB,SAAS,kBAAkB,wBAAwB,SAAS,OAAO,wBAAwB,uBAAuB,mCAAmC,SAAS,4BAA4B,mCAAmC,SAAS,OAAO,wBAAwB,uBAAuB,8BAA8B,2BAA2B,8BAA8B,OAAO,wBAAwB,eAAe,qBAAqB,iCAAiC,SAAS,2BAA2B,mCAAmC,SAAS,OAAO,wBAAwB,qCAAqC,wBAAwB,iCAAiC,SAAS,OAAO,yBAAyB,yBAAyB,yBAAyB,aAAa,OAAO,wBAAwB,qIAAqI,wBAAwB,SAAS,OAAO,sBAAsB,qBAAqB,kCAAkC,qBAAqB,2BAA2B,wBAAwB,2BAA2B,kCAAkC,wBAAwB,0BAA0B,wCAAwC,2BAA2B,OAAO,sBAAsB,qBAAqB,kCAAkC,qBAAqB,2BAA2B,wBAAwB,2BAA2B,kCAAkC,wBAAwB,0BAA0B,4CAA4C,2CAA2C,8BAA8B,OAAO,gBAAgB,kCAAkC,OAAO,qBAAqB,4BAA4B,2BAA2B,gCAAgC,OAAO,mBAAmB,wBAAwB,kBAAkB,wBAAwB,yBAAyB,OAAO,qCAAqC,mBAAmB,mCAAmC,kCAAkC,wCAAwC,sCAAsC,SAAS,uBAAuB,sCAAsC,SAAS,wBAAwB,6BAA6B,SAAS,uBAAuB,4BAA4B,8BAA8B,SAAS,6BAA6B,4BAA4B,8BAA8B,SAAS,OAAO,oLAAoL,MAAM,u7BAAu7B,0BAA0B,+nEAA+nE,4NAA4N,SAAS,oEAAoE,UAAU,mIAAmI,48BAA48B,gBAAgB,uDAAuD,cAAc,sDAAsD,eAAe,iDAAiD,kBAAkB,kDAAkD,2BAA2B,wDAAwD,UAAU,uDAAuD,aAAa,uDAAuD,iBAAiB,mDAAmD,mBAAmB,kDAAkD,kBAAkB,4BAA4B,sCAAsC,kDAAkD,kQAAkQ,kHAAkH,qDAAqD,2FAA2F,MAAM,MAAM,kNAAkN,oHAAoH,qDAAqD,kIAAkI,6PAA6P,kHAAkH,qDAAqD,2FAA2F,MAAM,MAAM,6MAA6M,oHAAoH,qDAAqD,grBAAgrB,qOAAqO,SAAS,wEAAwE,UAAU,49BAA49B,gBAAgB,uDAAuD,cAAc,mDAAmD,eAAe,kDAAkD,kBAAkB,kDAAkD,2BAA2B,wDAAwD,UAAU,uDAAuD,aAAa,uDAAuD,iBAAiB,mDAAmD,mBAAmB,kDAAkD,kBAAkB,4BAA4B,sCAAsC,kDAAkD,iQAAiQ,kHAAkH,qDAAqD,2FAA2F,MAAM,MAAM,6MAA6M,oHAAoH,qDAAqD,kIAAkI,sQAAsQ,kHAAkH,qDAAqD,2FAA2F,MAAM,MAAM,kNAAkN,oHAAoH,qDAAqD,yoBAAyoB,iKAAiK,cAAc,eAAe,aAAa,6CAA6C,gCAAgC,yFAAyF,UAAU,0CAA0C,iCAAiC,0KAA0K,wBAAwB,aAAa,gFAAgF,aAAa,gMAAgM,cAAc,8FAA8F,sBAAsB,qBAAqB,cAAc,YAAY,kBAAkB,2CAA2C,WAAW,iBAAiB,eAAe,oDAAoD,gNAAgN,iMAAiM,qJAAqJ,6BAA6B,6BAA6B,2IAA2I,8EAA8E,iNAAiN,YAAY,2DAA2D,mBAAmB,oBAAoB,iCAAiC,KAAK,uFAAuF,YAAY,iCAAiC,kBAAkB,6OAA6O,aAAa,cAAc,mDAAmD,eAAe,oQAAoQ,iHAAiH,kBAAkB,mHAAmH,gBAAgB,+MAA+M,+GAA+G,kBAAkB,6DAA6D,gBAAgB,kBAAkB,0HAA0H,mEAAmE,gBAAgB,6DAA6D,sBAAsB,oBAAoB,oCAAoC,aAAa,SAAS,GAAG,aAAa,MAAM,kbAAkb,kBAAkB,kBAAkB,2IAA2I,8EAA8E,qNAAqN,YAAY,+DAA+D,mBAAmB,oBAAoB,iCAAiC,KAAK,uFAAuF,YAAY,iCAAiC,cAAc,iFAAiF,WAAW,uLAAuL,4HAA4H,2HAA2H,0HAA0H,uUAAuU,6EAA6E,iTAAiT,kBAAkB,iBAAiB,8SAA8S,kBAAkB,iBAAiB,6MAA6M,qFAAqF,mPAAmP,YAAY,iEAAiE,mBAAmB,oBAAoB,uCAAuC,KAAK,mGAAmG,YAAY,uCAAuC,kBAAkB,8ZAA8Z,2BAA2B,aAAa,0KAA0K,uBAAuB,oFAAoF,sBAAsB,oBAAoB,wCAAwC,uBAAuB,QAAQ,uBAAuB,qLAAqL,kBAAkB,+LAA+L,sBAAsB,cAAc,wGAAwG,kGAAkG,uBAAuB,aAAa,8DAA8D,YAAY,uRAAuR,+SAA+S,2BAA2B,aAAa,0KAA0K,uBAAuB,oFAAoF,sBAAsB,oBAAoB,wCAAwC,uBAAuB,QAAQ,uBAAuB,qLAAqL,kBAAkB,+LAA+L,sBAAsB,aAAa,wGAAwG,kGAAkG,uBAAuB,aAAa,8DAA8D,YAAY,sRAAsR,0QAA0Q,gBAAgB,uNAAuN,iBAAiB,iBAAiB,uMAAuM,kBAAkB,kBAAkB,6JAA6J,oFAAoF,uPAAuP,YAAY,qEAAqE,mBAAmB,oBAAoB,uCAAuC,KAAK,mGAAmG,YAAY,uCAAuC,cAAc,6FAA6F,WAAW,mMAAmM,kIAAkI,iIAAiI,gIAAgI,ocAAoc,UAAU,2DAA2D,wBAAwB,gEAAgE,cAAc,eAAe,aAAa,6CAA6C,gCAAgC,6FAA6F,UAAU,0CAA0C,iCAAiC,+EAA+E,WAAW,iBAAiB,kDAAkD,wMAAwM,6LAA6L,mJAAmJ,6BAA6B,6BAA6B,gIAAgI,4EAA4E,yMAAyM,YAAY,yDAAyD,mBAAmB,oBAAoB,+BAA+B,KAAK,mFAAmF,YAAY,+BAA+B,kBAAkB,+NAA+N,aAAa,cAAc,iDAAiD,eAAe,gQAAgQ,+GAA+G,kBAAkB,iHAAiH,gBAAgB,2MAA2M,6GAA6G,kBAAkB,2DAA2D,gBAAgB,kBAAkB,wHAAwH,iEAAiE,gBAAgB,2DAA2D,sBAAsB,oBAAoB,kCAAkC,aAAa,SAAS,GAAG,aAAa,MAAM,oaAAoa,kBAAkB,kBAAkB,qIAAqI,4EAA4E,6MAA6M,YAAY,6DAA6D,mBAAmB,oBAAoB,+BAA+B,KAAK,mFAAmF,YAAY,+BAA+B,cAAc,6EAA6E,WAAW,mLAAmL,0HAA0H,yHAAyH,wHAAwH,qTAAqT,2EAA2E,qSAAqS,kBAAkB,iBAAiB,sSAAsS,kBAAkB,iBAAiB,qMAAqM,kFAAkF,2OAA2O,YAAY,+DAA+D,mBAAmB,oBAAoB,qCAAqC,KAAK,+FAA+F,YAAY,qCAAqC,kBAAkB,0YAA0Y,2BAA2B,aAAa,oKAAoK,uBAAuB,kFAAkF,sBAAsB,oBAAoB,sCAAsC,uBAAuB,QAAQ,uBAAuB,gLAAgL,kBAAkB,2LAA2L,sBAAsB,aAAa,sGAAsG,gGAAgG,uBAAuB,aAAa,4DAA4D,YAAY,mRAAmR,oSAAoS,2BAA2B,aAAa,oKAAoK,uBAAuB,kFAAkF,sBAAsB,oBAAoB,sCAAsC,uBAAuB,QAAQ,uBAAuB,gLAAgL,kBAAkB,2LAA2L,sBAAsB,aAAa,sGAAsG,gGAAgG,uBAAuB,aAAa,4DAA4D,YAAY,kRAAkR,6PAA6P,gBAAgB,0LAA0L,iBAAiB,iBAAiB,wKAAwK,kBAAkB,kBAAkB,gLAAgL,kFAAkF,+OAA+O,YAAY,mEAAmE,mBAAmB,oBAAoB,qCAAqC,KAAK,+FAA+F,YAAY,qCAAqC,cAAc,yFAAyF,WAAW,+LAA+L,gIAAgI,+HAA+H,8HAA8H,sWAAsW,+PAA+P,uJAAuJ,cAAc,2CAA2C,aAAa,oCAAoC,gCAAgC,mFAAmF,UAAU,wCAAwC,iCAAiC,mMAAmM,4LAA4L,sNAAsN,aAAa,wCAAwC,2GAA2G,MAAM,6JAA6J,8BAA8B,6BAA6B,cAAc,6IAA6I,iBAAiB,aAAa,wFAAwF,cAAc,aAAa,gHAAgH,YAAY,oXAAoX,iBAAiB,0JAA0J,gBAAgB,0EAA0E,sBAAsB,oBAAoB,kCAAkC,uBAAuB,KAAK,uBAAuB,yPAAyP,iBAAiB,iBAAiB,gBAAgB,6EAA6E,oDAAoD,oDAAoD,mLAAmL,iBAAiB,iFAAiF,mDAAmD,mDAAmD,iMAAiM,aAAa,gBAAgB,kBAAkB,mMAAmM,YAAY,2FAA2F,aAAa,kBAAkB,kDAAkD,YAAY,oQAAoQ,yIAAyI,cAAc,aAAa,gGAAgG,YAAY,oXAAoX,iBAAiB,sJAAsJ,iBAAiB,sDAAsD,uBAAuB,sDAAsD,sBAAsB,oBAAoB,KAAK,uBAAuB,yPAAyP,iBAAiB,gBAAgB,6EAA6E,6CAA6C,oDAAoD,4KAA4K,iBAAiB,iFAAiF,6CAA6C,mDAAmD,0LAA0L,aAAa,gBAAgB,kBAAkB,mMAAmM,YAAY,2FAA2F,aAAa,kBAAkB,kDAAkD,YAAY,oQAAoQ,2OAA2O,qDAAqD,oTAAoT,4EAA4E,mNAAmN,YAAY,yDAAyD,mBAAmB,oBAAoB,+BAA+B,KAAK,mFAAmF,YAAY,+BAA+B,kBAAkB,oQAAoQ,gBAAgB,gLAAgL,mMAAmM,4EAA4E,uNAAuN,YAAY,yDAAyD,mBAAmB,oBAAoB,+BAA+B,KAAK,mFAAmF,YAAY,+BAA+B,cAAc,iFAAiF,WAAW,mLAAmL,0HAA0H,yHAAyH,wHAAwH,gcAAgc,mSAAmS,sBAAsB,oBAAoB,kCAAkC,0BAA0B,8BAA8B,qBAAqB,OAAO,0BAA0B,uDAAuD,iBAAiB,iMAAiM,wQAAwQ,+FAA+F,0GAA0G,iMAAiM,kPAAkP,8FAA8F,uKAAuK,mRAAmR,sBAAsB,oBAAoB,kCAAkC,0BAA0B,QAAQ,qBAAqB,4BAA4B,0BAA0B,uDAAuD,iBAAiB,iMAAiM,wQAAwQ,+FAA+F,gFAAgF,gBAAgB,gMAAgM,0QAA0Q,8FAA8F,8TAA8T,6EAA6E,kVAAkV,gFAAgF,wQAAwQ,YAAY,6DAA6D,mBAAmB,oBAAoB,mCAAmC,KAAK,2FAA2F,YAAY,mCAAmC,kBAAkB,wSAAwS,gBAAgB,wNAAwN,mNAAmN,gFAAgF,6QAA6Q,YAAY,iEAAiE,mBAAmB,oBAAoB,mCAAmC,KAAK,2FAA2F,YAAY,mCAAmC,cAAc,yFAAyF,WAAW,2LAA2L,8HAA8H,6HAA6H,4HAA4H,4ZAA4Z,cAAc,2CAA2C,aAAa,wCAAwC,gCAAgC,gGAAgG,UAAU,4CAA4C,iCAAiC,+JAA+J,UAAU,yDAAyD,uBAAuB,4DAA4D,cAAc,6BAA6B,aAAa,oCAAoC,gCAAgC,uFAAuF,UAAU,wCAAwC,iCAAiC,oFAAoF,oBAAoB,kDAAkD,aAAa,4BAA4B,wCAAwC,kDAAkD,aAAa,wBAAwB,kDAAkD,aAAa,mCAAmC,iDAAiD,aAAa,eAAe,6HAA6H,4BAA4B,2BAA2B,cAAc,qEAAqE,kBAAkB,eAAe,wJAAwJ,qEAAqE,iBAAiB,aAAa,8FAA8F,cAAc,4HAA4H,YAAY,8ZAA8Z,iBAAiB,4KAA4K,gBAAgB,gFAAgF,sBAAsB,oBAAoB,wCAAwC,uBAAuB,KAAK,uBAAuB,6RAA6R,iBAAiB,mFAAmF,0DAA0D,oDAAoD,qMAAqM,uFAAuF,yDAAyD,mDAAmD,mNAAmN,aAAa,gBAAgB,kBAAkB,+MAA+M,YAAY,6GAA6G,aAAa,kBAAkB,wDAAwD,YAAY,gRAAgR,2JAA2J,cAAc,aAAa,4GAA4G,YAAY,8ZAA8Z,iBAAiB,wKAAwK,iBAAiB,4DAA4D,uBAAuB,4DAA4D,sBAAsB,oBAAoB,KAAK,uBAAuB,6RAA6R,iBAAiB,mFAAmF,mDAAmD,oDAAoD,8LAA8L,wFAAwF,mDAAmD,mDAAmD,4MAA4M,aAAa,gBAAgB,kBAAkB,+MAA+M,WAAW,6GAA6G,aAAa,kBAAkB,wDAAwD,YAAY,gRAAgR,2GAA2G,iBAAiB,mLAAmL,yYAAyY,kFAAkF,2OAA2O,YAAY,+DAA+D,mBAAmB,oBAAoB,qCAAqC,KAAK,+FAA+F,YAAY,qCAAqC,kBAAkB,sQAAsQ,iBAAiB,waAAwa,kFAAkF,+OAA+O,YAAY,+DAA+D,mBAAmB,oBAAoB,qCAAqC,KAAK,+FAA+F,YAAY,qCAAqC,cAAc,6FAA6F,WAAW,+LAA+L,gIAAgI,+HAA+H,8HAA8H,igBAAigB,aAAa,2RAA2R,sBAAsB,oBAAoB,gBAAgB,sCAAsC,0BAA0B,kCAAkC,qBAAqB,OAAO,0BAA0B,2DAA2D,iBAAiB,yMAAyM,oRAAoR,+FAA+F,sHAAsH,iBAAiB,yMAAyM,0PAA0P,8FAA8F,8JAA8J,aAAa,8OAA8O,sBAAsB,oBAAoB,sCAAsC,0BAA0B,QAAQ,qBAAqB,gCAAgC,0BAA0B,2DAA2D,iBAAiB,yMAAyM,oRAAoR,+FAA+F,wFAAwF,gBAAgB,wMAAwM,sRAAsR,8FAA8F,6HAA6H,iBAAiB,gOAAgO,+aAA+a,sFAAsF,sSAAsS,YAAY,mEAAmE,mBAAmB,oBAAoB,yCAAyC,KAAK,uGAAuG,YAAY,yCAAyC,kBAAkB,sSAAsS,iBAAiB,0eAA0e,sFAAsF,2SAA2S,YAAY,uEAAuE,mBAAmB,oBAAoB,yCAAyC,KAAK,uGAAuG,YAAY,yCAAyC,cAAc,qGAAqG,WAAW,uMAAuM,yKAAyK,wKAAwK,kIAAkI,2eAA2e,WAAW,qD;;;;;;;;;;;ACAzigF,icAAic,4BAA4B,sBAAsB,gBAAgB,kBAAkB,qBAAqB,mBAAmB,kBAAkB,mBAAmB,KAAK,uBAAuB,2BAA2B,KAAK,yBAAyB,6BAA6B,yBAAyB,0IAA0I,KAAK,6BAA6B,iBAAiB,KAAK,2BAA2B,6DAA6D,KAAK,oFAAoF,6DAA6D,KAAK,qBAAqB,+BAA+B,uBAAuB,wBAAwB,yBAAyB,uBAAuB,qBAAqB,yBAAyB,OAAO,KAAK,oBAAoB,0CAA0C,0BAA0B,mBAAmB,sBAAsB,yBAAyB,yBAAyB,yCAAyC,KAAK,cAAc,gCAAgC,kCAAkC,sBAAsB,+BAA+B,kBAAkB,gCAAgC,yBAAyB,yBAAyB,mBAAmB,kBAAkB,uBAAuB,iBAAiB,kBAAkB,8BAA8B,sBAAsB,KAAK,eAAe,gCAAgC,kCAAkC,sBAAsB,yBAAyB,0BAA0B,yCAAyC,KAAK,kBAAkB,qBAAqB,yBAAyB,sBAAsB,yBAAyB,KAAK,oBAAoB,4BAA4B,sBAAsB,8BAA8B,KAAK,mBAAmB,8BAA8B,mBAAmB,4BAA4B,6BAA6B,kCAAkC,4CAA4C,4BAA4B,+CAA+C,kFAAkF,KAAK,iBAAiB,uBAAuB,sBAAsB,8BAA8B,KAAK,kBAAkB,gCAAgC,KAAK,qBAAqB,gCAAgC,KAAK,iBAAiB,gCAAgC,KAAK,iBAAiB,gCAAgC,KAAK,sBAAsB,gCAAgC,KAAK,aAAa,wBAAwB,OAAO,qBAAqB,2BAA2B,KAAK,aAAa,kBAAkB,KAAK,eAAe,mBAAmB,gCAAgC,mBAAmB,yBAAyB,sBAAsB,yBAAyB,gCAAgC,sBAAsB,wBAAwB,0CAA0C,yBAAyB,mBAAmB,oBAAoB,KAAK,iBAAiB,mBAAmB,gCAAgC,mBAAmB,yBAAyB,sBAAsB,yBAAyB,gCAAgC,sBAAsB,wBAAwB,0CAA0C,yBAAyB,mBAAmB,KAAK,qBAAqB,mBAAmB,gCAAgC,mBAAmB,yBAAyB,sBAAsB,gCAAgC,yBAAyB,6BAA6B,mBAAmB,8BAA8B,KAAK,sBAAsB,sBAAsB,wBAAwB,KAAK,0BAA0B,mBAAmB,gCAAgC,mBAAmB,uBAAuB,sBAAsB,gCAAgC,yBAAyB,sBAAsB,6BAA6B,mBAAmB,mBAAmB,yCAAyC,4BAA4B,KAAK,yBAAyB,mBAAmB,gCAAgC,mBAAmB,uBAAuB,sBAAsB,gCAAgC,yBAAyB,sBAAsB,6BAA6B,mBAAmB,mBAAmB,yCAAyC,4BAA4B,KAAK,uBAAuB,mBAAmB,gCAAgC,mBAAmB,uBAAuB,sBAAsB,gCAAgC,yBAAyB,sBAAsB,6BAA6B,mBAAmB,mBAAmB,yCAAyC,QAAQ,yBAAyB,mBAAmB,gCAAgC,mBAAmB,uBAAuB,sBAAsB,gCAAgC,yBAAyB,sBAAsB,6BAA6B,mBAAmB,mBAAmB,KAAK,kBAAkB,kCAAkC,yBAAyB,yBAAyB,gCAAgC,mBAAmB,yBAAyB,yBAAyB,kCAAkC,wBAAwB,2BAA2B,qBAAqB,sBAAsB,yBAAyB,yCAAyC,6BAA6B,wBAAwB,QAAQ,mBAAmB,gCAAgC,mBAAmB,yBAAyB,yBAAyB,sBAAsB,yBAAyB,sBAAsB,KAAK,iBAAiB,gCAAgC,mBAAmB,yBAAyB,qBAAqB,0BAA0B,sBAAsB,KAAK,eAAe,kBAAkB,mBAAmB,yBAAyB,KAAK,iBAAiB,kBAAkB,mBAAmB,yBAAyB,sBAAsB,wBAAwB,0BAA0B,sBAAsB,8BAA8B,yBAAyB,uBAAuB,KAAK,mBAAmB,kBAAkB,mBAAmB,yBAAyB,sBAAsB,wBAAwB,0BAA0B,sBAAsB,8BAA8B,yBAAyB,KAAK,uBAAuB,wBAAwB,KAAK,cAAc,kBAAkB,mBAAmB,KAAK,oBAAoB,kCAAkC,kCAAkC,mBAAmB,yBAAyB,sBAAsB,kBAAkB,sBAAsB,wBAAwB,2BAA2B,sBAAsB,yCAAyC,8BAA8B,QAAQ,wBAAwB,kCAAkC,mBAAmB,yBAAyB,sBAAsB,kBAAkB,2BAA2B,sBAAsB,wBAAwB,yBAAyB,OAAO,sBAAsB,kCAAkC,gCAAgC,mBAAmB,kBAAkB,gCAAgC,yBAAyB,4BAA4B,wBAAwB,sBAAsB,yCAAyC,8BAA8B,QAAQ,uBAAuB,8BAA8B,mBAAmB,kBAAkB,gCAAgC,yBAAyB,4BAA4B,wBAAwB,sBAAsB,OAAO,gBAAgB,kBAAkB,iBAAiB,gCAAgC,yBAAyB,yBAAyB,mBAAmB,uBAAuB,KAAK,sBAAsB,kBAAkB,iBAAiB,gCAAgC,yBAAyB,yBAAyB,mBAAmB,uBAAuB,KAAK,gBAAgB,kBAAkB,gBAAgB,mCAAmC,4BAA4B,yBAAyB,mBAAmB,uBAAuB,sBAAsB,KAAK,uBAAuB,sBAAsB,KAAK,qBAAqB,gCAAgC,gCAAgC,mBAAmB,yBAAyB,wBAAwB,2BAA2B,sBAAsB,6BAA6B,sBAAsB,qBAAqB,qBAAqB,uBAAuB,uBAAuB,yCAAyC,QAAQ,gBAAgB,gCAAgC,gCAAgC,mBAAmB,yBAAyB,wBAAwB,2BAA2B,sBAAsB,6BAA6B,sBAAsB,qBAAqB,qBAAqB,uBAAuB,uBAAuB,OAAO,yCAAyC,QAAQ,oBAAoB,uBAAuB,wBAAwB,SAAS,KAAK,oBAAoB,aAAa,mBAAmB,oBAAoB,OAAO,uBAAuB,iCAAiC,OAAO,KAAK,oBAAoB,+BAA+B,iCAAiC,OAAO,KAAK,qBAAqB,uBAAuB,uBAAuB,OAAO,KAAK,eAAe,sBAAsB,gBAAgB,sBAAsB,uBAAuB,KAAK,mBAAmB,8BAA8B,mBAAmB,kBAAkB,gCAAgC,yBAAyB,4BAA4B,wBAAwB,sBAAsB,OAAO,qBAAqB,8BAA8B,mBAAmB,kBAAkB,gCAAgC,yBAAyB,4BAA4B,wBAAwB,sBAAsB,OAAO,gBAAgB,gCAAgC,0BAA0B,yBAAyB,mBAAmB,uBAAuB,kBAAkB,mBAAmB,8BAA8B,sBAAsB,KAAK,gCAAgC,cAAc,mCAAmC,OAAO,iBAAiB,8BAA8B,OAAO,cAAc,8BAA8B,OAAO,mBAAmB,uCAAuC,OAAO,KAAK,2BAA2B,iBAAiB,kCAAkC,iCAAiC,yBAAyB,yCAAyC,iCAAiC,6BAA6B,wCAAwC,s3CAAs3C,YAAY,0DAA0D,eAAe,4dAA4d,YAAY,mGAAmG,yBAAyB,sEAAsE,yBAAyB,mxBAAmxB,aAAa,4RAA4R,aAAa,4fAA4f,6GAA6G,m7BAAm7B,kBAAkB,gDAAgD,+CAA+C,cAAc,8YAA8Y,uIAAuI,sCAAsC,gBAAgB,aAAa,iBAAiB,iBAAiB,aAAa,gBAAgB,gBAAgB,6EAA6E,iBAAiB,aAAa,aAAa,aAAa,mBAAmB,gBAAgB,gBAAgB,oBAAoB,sBAAsB,+EAA+E,MAAM,2BAA2B,eAAe,qLAAqL,8EAA8E,8BAA8B,mBAAmB,yBAAyB,WAAW,iBAAiB,oJAAoJ,yBAAyB,6DAA6D,kFAAkF,yCAAyC,iFAAiF,aAAa,cAAc,+WAA+W,4GAA4G,kFAAkF,kiBAAkiB,wBAAwB,YAAY,2EAA2E,+DAA+D,eAAe,ySAAyS,6GAA6G,yEAAyE,gBAAgB,+TAA+T,2GAA2G,wDAAwD,gBAAgB,mRAAmR,2GAA2G,YAAY,iKAAiK,6bAA6b,iBAAiB,kKAAkK,iBAAiB,mHAAmH,sBAAsB,oBAAoB,sCAAsC,sBAAsB,SAAS,4BAA4B,sBAAsB,MAAM,sYAAsY,gBAAgB,kJAAkJ,mDAAmD,2DAA2D,8WAA8W,2FAA2F,2BAA2B,0DAA0D,gmBAAgmB,kFAAkF,4SAA4S,YAAY,+DAA+D,mBAAmB,oBAAoB,qCAAqC,KAAK,+FAA+F,YAAY,qCAAqC,kBAAkB,muBAAmuB,kFAAkF,gTAAgT,YAAY,+DAA+D,mBAAmB,oBAAoB,qCAAqC,KAAK,+FAA+F,YAAY,qCAAqC,cAAc,yFAAyF,WAAW,gMAAgM,gIAAgI,+HAA+H,+HAA+H,6RAA6R,sBAAsB,2LAA2L,yBAAyB,2EAA2E,wCAAwC,6CAA6C,yCAAyC,qfAAqf,4GAA4G,4HAA4H,sBAAsB,oBAAoB,sCAAsC,uBAAuB,mCAAmC,kBAAkB,IAAI,uBAAuB,m2BAAm2B,4LAA4L,yDAAyD,0EAA0E,mXAAmX,iMAAiM,yDAAyD,yEAAyE,oSAAoS,cAAc,2CAA2C,kBAAkB,0MAA0M,yDAAyD,iBAAiB,2IAA2I,aAAa,6DAA6D,YAAY,6XAA6X,iBAAiB,WAAW,oQAAoQ,8kBAA8kB,4GAA4G,4HAA4H,sBAAsB,oBAAoB,sCAAsC,uBAAuB,kCAAkC,kBAAkB,IAAI,uBAAuB,k2BAAk2B,4LAA4L,yDAAyD,0EAA0E,mXAAmX,iMAAiM,yDAAyD,yEAAyE,oSAAoS,aAAa,2CAA2C,kBAAkB,0MAA0M,yDAAyD,iBAAiB,2EAA2E,sEAAsE,aAAa,4DAA4D,YAAY,wSAAwS,8BAA8B,6BAA6B,smBAAsmB,sFAAsF,0VAA0V,YAAY,iEAAiE,mBAAmB,oBAAoB,uCAAuC,KAAK,mGAAmG,YAAY,uCAAuC,cAAc,6FAA6F,WAAW,mMAAmM,qKAAqK,oKAAoK,gIAAgI,8qBAA8qB,sFAAsF,sTAAsT,YAAY,mEAAmE,mBAAmB,oBAAoB,yCAAyC,KAAK,uGAAuG,YAAY,yCAAyC,kBAAkB,wuBAAwuB,wOAAwO,iBAAiB,mEAAmE,aAAa,aAAa,aAAa,mBAAmB,gBAAgB,gBAAgB,oBAAoB,sBAAsB,wFAAwF,MAAM,2BAA2B,eAAe,yWAAyW,uIAAuI,yCAAyC,aAAa,iBAAiB,iBAAiB,YAAY,gBAAgB,gBAAgB,gBAAgB,4RAA4R,yEAAyE,4BAA4B,mBAAmB,eAAe,oJAAoJ,yBAAyB,6BAA6B,wCAAwC,iDAAiD,aAAa,kFAAkF,yCAAyC,uEAAuE,+WAA+W,4GAA4G,wFAAwF,uBAAuB,sEAAsE,4eAA4e,wBAAwB,YAAY,2EAA2E,+DAA+D,gBAAgB,6VAA6V,6GAA6G,sBAAsB,4EAA4E,gBAAgB,gWAAgW,2GAA2G,kBAAkB,2BAA2B,yTAAyT,2GAA2G,YAAY,qNAAqN,wLAAwL,iSAAiS,mBAAmB,sIAAsI,sBAAsB,oBAAoB,gCAAgC,gCAAgC,SAAS,sBAAsB,gCAAgC,MAAM,wUAAwU,2FAA2F,gBAAgB,gBAAgB,yBAAyB,0DAA0D,sTAAsT,gBAAgB,iJAAiJ,mDAAmD,2DAA2D,oKAAoK,wBAAwB,qXAAqX,gBAAgB,yVAAyV,kHAAkH,6UAA6U,YAAY,6HAA6H,mBAAmB,oBAAoB,qCAAqC,KAAK,8HAA8H,YAAY,qCAAqC,kBAAkB,udAAud,gBAAgB,6VAA6V,kHAAkH,+UAA+U,YAAY,6HAA6H,mBAAmB,oBAAoB,qCAAqC,KAAK,8HAA8H,YAAY,qCAAqC,cAAc,yFAAyF,WAAW,gOAAgO,eAAe,iKAAiK,eAAe,gKAAgK,eAAe,gKAAgK,eAAe,6RAA6R,sBAAsB,2LAA2L,yBAAyB,yFAAyF,2DAA2D,cAAc,kBAAkB,2CAA2C,yCAAyC,4EAA4E,mcAAmc,4GAA4G,sFAAsF,uBAAuB,wDAAwD,sBAAsB,oBAAoB,6BAA6B,kBAAkB,GAAG,uBAAuB,iLAAiL,4EAA4E,+mBAA+mB,iBAAiB,iCAAiC,iMAAiM,uDAAuD,yEAAyE,uYAAuY,gBAAgB,gBAAgB,6LAA6L,uDAAuD,0EAA0E,wLAAwL,iQAAiQ,cAAc,yCAAyC,kBAAkB,oQAAoQ,8BAA8B,+BAA+B,kIAAkI,aAAa,2DAA2D,YAAY,gWAAgW,6BAA6B,2BAA2B,gNAAgN,oJAAoJ,ocAAoc,4GAA4G,sFAAsF,uBAAuB,wDAAwD,sBAAsB,oBAAoB,6BAA6B,kBAAkB,GAAG,uBAAuB,mLAAmL,4EAA4E,+mBAA+mB,iBAAiB,+BAA+B,iMAAiM,uDAAuD,yEAAyE,yYAAyY,gBAAgB,gBAAgB,6LAA6L,uDAAuD,0EAA0E,wLAAwL,iQAAiQ,cAAc,yCAAyC,kBAAkB,oQAAoQ,8BAA8B,6BAA6B,kIAAkI,aAAa,2DAA2D,YAAY,gWAAgW,6BAA6B,yBAAyB,kNAAkN,6JAA6J,0MAA0M,gBAAgB,2WAA2W,qHAAqH,qVAAqV,YAAY,qIAAqI,mBAAmB,oBAAoB,yCAAyC,KAAK,sIAAsI,YAAY,yCAAyC,kBAAkB,6VAA6V,0MAA0M,gBAAgB,+WAA+W,sHAAsH,6XAA6X,YAAY,iIAAiI,mBAAmB,oBAAoB,uCAAuC,KAAK,kIAAkI,YAAY,uCAAuC,cAAc,+FAA+F,WAAW,sOAAsO,eAAe,qKAAqK,eAAe,oKAAoK,eAAe,mKAAmK,eAAe,yaAAya,eAAe,uXAAuX,wOAAwO,gBAAgB,qGAAqG,aAAa,aAAa,aAAa,mBAAmB,0BAA0B,cAAc,gBAAgB,oBAAoB,gBAAgB,gCAAgC,MAAM,0BAA0B,gBAAgB,2ZAA2Z,uIAAuI,yCAAyC,aAAa,iBAAiB,iBAAiB,YAAY,gBAAgB,gBAAgB,YAAY,gBAAgB,qMAAqM,UAAU,2DAA2D,uBAAuB,gEAAgE,cAAc,wDAAwD,gCAAgC,0CAA0C,UAAU,8FAA8F,UAAU,0CAA0C,iCAAiC,kFAAkF,yCAAyC,iBAAiB,UAAU,WAAW,iLAAiL,iBAAiB,UAAU,WAAW,wDAAwD,4NAA4N,uyBAAuyB,6CAA6C,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,qTAAqT,09BAA09B,6IAA6I,iBAAiB,UAAU,WAAW,wDAAwD,kMAAkM,uyBAAuyB,sTAAsT,29BAA29B,0JAA0J,iBAAiB,UAAU,WAAW,wDAAwD,4NAA4N,uyBAAuyB,iVAAiV,09BAA09B,mLAAmL,MAAM,MAAM,MAAM,8KAA8K,iBAAiB,UAAU,WAAW,wDAAwD,4NAA4N,m/BAAm/B,MAAM,MAAM,kKAAkK,4NAA4N,m/BAAm/B,MAAM,MAAM,+KAA+K,iBAAiB,UAAU,WAAW,wDAAwD,4NAA4N,imEAAimE,MAAM,MAAM,uCAAuC,MAAM,MAAM,kCAAkC,MAAM,MAAM,qHAAqH,4NAA4N,imEAAimE,MAAM,MAAM,6QAA6Q,sBAAsB,oDAAoD,eAAe,4BAA4B,0CAA0C,oDAAoD,eAAe,wBAAwB,oDAAoD,eAAe,mCAAmC,mDAAmD,eAAe,iCAAiC,8BAA8B,iBAAiB,aAAa,mFAAmF,mEAAmE,aAAa,2HAA2H,iFAAiF,oBAAoB,uHAAuH,4GAA4G,8HAA8H,wBAAwB,YAAY,2EAA2E,+DAA+D,gBAAgB,6VAA6V,6GAA6G,sBAAsB,oFAAoF,gBAAgB,gWAAgW,2GAA2G,kBAAkB,mCAAmC,uTAAuT,mEAAmE,mBAAmB,kJAAkJ,sBAAsB,oBAAoB,gBAAgB,gCAAgC,gCAAgC,SAAS,sBAAsB,gCAAgC,MAAM,uXAAuX,2FAA2F,gBAAgB,gBAAgB,yBAAyB,0DAA0D,sTAAsT,gBAAgB,iJAAiJ,mDAAmD,2DAA2D,oKAAoK,gCAAgC,qXAAqX,gBAAgB,yVAAyV,iHAAiH,6UAA6U,YAAY,6HAA6H,mBAAmB,oBAAoB,qCAAqC,KAAK,8HAA8H,YAAY,qCAAqC,kBAAkB,meAAme,gBAAgB,6VAA6V,iHAAiH,iVAAiV,YAAY,6HAA6H,mBAAmB,oBAAoB,qCAAqC,KAAK,8HAA8H,YAAY,qCAAqC,cAAc,2FAA2F,WAAW,gOAAgO,eAAe,iKAAiK,eAAe,gKAAgK,eAAe,gKAAgK,eAAe,qYAAqY,wDAAwD,eAAe,kBAAkB,sFAAsF,gdAAgd,4GAA4G,wFAAwF,uBAAuB,sDAAsD,sBAAsB,oBAAoB,2BAA2B,kBAAkB,GAAG,uBAAuB,yUAAyU,kBAAkB,yCAAyC,+LAA+L,qDAAqD,yEAAyE,6XAA6X,iBAAiB,gBAAgB,2LAA2L,qDAAqD,0EAA0E,kLAAkL,oOAAoO,cAAc,uCAAuC,kBAAkB,8PAA8P,8BAA8B,uCAAuC,4HAA4H,aAAa,yDAAyD,YAAY,0VAA0V,6BAA6B,mCAAmC,4MAA4M,8JAA8J,idAAid,4GAA4G,wFAAwF,uBAAuB,sDAAsD,sBAAsB,oBAAoB,2BAA2B,kBAAkB,GAAG,uBAAuB,yUAAyU,kBAAkB,uCAAuC,+LAA+L,qDAAqD,yEAAyE,6XAA6X,iBAAiB,gBAAgB,2LAA2L,qDAAqD,0EAA0E,kLAAkL,oOAAoO,cAAc,uCAAuC,kBAAkB,8PAA8P,8BAA8B,qCAAqC,4HAA4H,aAAa,yDAAyD,YAAY,0VAA0V,6BAA6B,iCAAiC,4MAA4M,oJAAoJ,sMAAsM,gBAAgB,6VAA6V,mHAAmH,2UAA2U,YAAY,iIAAiI,mBAAmB,oBAAoB,uCAAuC,KAAK,kIAAkI,YAAY,uCAAuC,kBAAkB,0UAA0U,sMAAsM,gBAAgB,iWAAiW,mHAAmH,iXAAiX,YAAY,6HAA6H,mBAAmB,oBAAoB,qCAAqC,KAAK,8HAA8H,YAAY,qCAAqC,cAAc,2FAA2F,WAAW,gOAAgO,eAAe,iKAAiK,eAAe,gKAAgK,eAAe,+JAA+J,eAAe,yYAAyY,WAAW,8GAA8G,UAAU,2DAA2D,uBAAuB,gEAAgE,cAAc,wDAAwD,gCAAgC,0CAA0C,UAAU,8FAA8F,UAAU,0CAA0C,iCAAiC,gFAAgF,yCAAyC,iBAAiB,UAAU,WAAW,iLAAiL,iBAAiB,UAAU,WAAW,wDAAwD,4NAA4N,uyBAAuyB,6CAA6C,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,qTAAqT,09BAA09B,6IAA6I,iBAAiB,UAAU,WAAW,wDAAwD,kMAAkM,uyBAAuyB,sTAAsT,29BAA29B,0JAA0J,iBAAiB,UAAU,WAAW,wDAAwD,4NAA4N,uyBAAuyB,iVAAiV,09BAA09B,mLAAmL,MAAM,MAAM,MAAM,8KAA8K,iBAAiB,UAAU,WAAW,wDAAwD,4NAA4N,m/BAAm/B,MAAM,MAAM,kKAAkK,4NAA4N,m/BAAm/B,MAAM,MAAM,+KAA+K,iBAAiB,UAAU,WAAW,wDAAwD,4NAA4N,imEAAimE,MAAM,MAAM,uCAAuC,MAAM,MAAM,kCAAkC,MAAM,MAAM,qHAAqH,4NAA4N,imEAAimE,MAAM,MAAM,oUAAoU,WAAW,iLAAiL,6EAA6E,qCAAqC,SAAS,2DAA2D,oHAAoH,6EAA6E,SAAS,2DAA2D,uIAAuI,6EAA6E,SAAS,4DAA4D,iMAAiM,4DAA4D,2DAA2D,+GAA+G,iEAAiE,4DAA4D,8HAA8H,8EAA8E,SAAS,2DAA2D,sJAAsJ,gHAAgH,iKAAiK,gGAAgG,iFAAiF,MAAM,MAAM,iMAAiM,wGAAwG,iFAAiF,MAAM,MAAM,gPAAgP,8FAA8F,iFAAiF,MAAM,MAAM,8LAA8L,sGAAsG,iFAAiF,MAAM,MAAM,yKAAyK,sBAAsB,oDAAoD,eAAe,4BAA4B,0CAA0C,oDAAoD,eAAe,wBAAwB,oDAAoD,eAAe,mCAAmC,mDAAmD,eAAe,iCAAiC,8BAA8B,iBAAiB,aAAa,6MAA6M,kBAAkB,gGAAgG,iGAAiG,aAAa,cAAc,2HAA2H,4GAA4G,kJAAkJ,0BAA0B,wBAAwB,YAAY,6EAA6E,oFAAoF,YAAY,eAAe,gUAAgU,qIAAqI,+BAA+B,sEAAsE,gBAAgB,mUAAmU,mIAAmI,+BAA+B,4DAA4D,gBAAgB,yRAAyR,iEAAiE,iBAAiB,uMAAuM,iBAAiB,iIAAiI,sBAAsB,oBAAoB,wCAAwC,gCAAgC,SAAS,8BAA8B,gCAAgC,MAAM,sZAAsZ,iBAAiB,oJAAoJ,qDAAqD,2DAA2D,sXAAsX,6FAA6F,6BAA6B,0DAA0D,2eAA2e,oMAAoM,oFAAoF,wTAAwT,YAAY,iEAAiE,mBAAmB,oBAAoB,uCAAuC,KAAK,mGAAmG,YAAY,uCAAuC,kBAAkB,ymBAAymB,oMAAoM,oFAAoF,4TAA4T,YAAY,iEAAiE,mBAAmB,oBAAoB,uCAAuC,KAAK,mGAAmG,YAAY,uCAAuC,cAAc,+FAA+F,WAAW,mMAAmM,qKAAqK,oKAAoK,oKAAoK,+cAA+c,2DAA2D,ogBAAogB,4GAA4G,4HAA4H,sBAAsB,oBAAoB,sCAAsC,uBAAuB,mCAAmC,kBAAkB,IAAI,uBAAuB,8VAA8V,4LAA4L,yDAAyD,0EAA0E,0LAA0L,+VAA+V,iMAAiM,yDAAyD,yEAAyE,sSAAsS,cAAc,2CAA2C,kBAAkB,0MAA0M,yDAAyD,6IAA6I,aAAa,6DAA6D,YAAY,qTAAqT,WAAW,uNAAuN,ulBAAulB,4GAA4G,4HAA4H,sBAAsB,oBAAoB,sCAAsC,uBAAuB,kCAAkC,kBAAkB,IAAI,uBAAuB,yVAAyV,4LAA4L,yDAAyD,0EAA0E,4LAA4L,+VAA+V,iMAAiM,yDAAyD,yEAAyE,oSAAoS,aAAa,2CAA2C,kBAAkB,0MAA0M,yDAAyD,2EAA2E,sEAAsE,aAAa,4DAA4D,YAAY,wSAAwS,6BAA6B,0mBAA0mB,sFAAsF,8VAA8V,YAAY,iEAAiE,mBAAmB,oBAAoB,uCAAuC,KAAK,mGAAmG,YAAY,uCAAuC,cAAc,+FAA+F,WAAW,mMAAmM,qKAAqK,oKAAoK,gIAAgI,0rBAA0rB,uFAAuF,sTAAsT,YAAY,mEAAmE,mBAAmB,oBAAoB,yCAAyC,KAAK,uGAAuG,YAAY,yCAAyC,kBAAkB,+dAA+d,WAAW,kMAAkM,kGAAkG,sPAAsP,gBAAgB,gHAAgH,qCAAqC,SAAS,6EAA6E,+IAA+I,gBAAgB,mIAAmI,SAAS,8EAA8E,kKAAkK,gBAAgB,mIAAmI,SAAS,8EAA8E,goBAAgoB,wwBAAwwB,sFAAsF,+FAA+F,gCAAgC,2BAA2B,gBAAgB,qFAAqF,0BAA0B,wDAAwD,SAAS,kDAAkD,MAAM,4IAA4I,gBAAgB,yGAAyG,UAAU,UAAU,iLAAiL,0tBAA0tB,uLAAuL,gBAAgB,yGAAyG,UAAU,UAAU,kLAAkL,0tBAA0tB,0JAA0J,SAAS,kGAAkG,wFAAwF,gBAAgB,oEAAoE,UAAU,UAAU,kLAAkL,43BAA43B,8JAA8J,gBAAgB,8FAA8F,UAAU,UAAU,kLAAkL,63BAA63B,0KAA0K,gBAAgB,8FAA8F,UAAU,UAAU,mMAAmM,43BAA43B,+KAA+K,wEAAwE,cAAc,qDAAqD,gCAAgC,oHAAoH,oBAAoB,wFAAwF,6EAA6E,sHAAsH,WAAW,UAAU,kHAAkH,kEAAkE,MAAM,MAAM,4MAA4M,uFAAuF,UAAU,iBAAiB,0HAA0H,kEAAkE,MAAM,MAAM,0LAA0L,6EAA6E,4GAA4G,UAAU,iBAAiB,gHAAgH,kEAAkE,MAAM,MAAM,wMAAwM,0GAA0G,UAAU,iBAAiB,wHAAwH,kEAAkE,MAAM,MAAM,iM;;;;;;;;;;;ACAx97J,6QAA6Q,MAAM,s+BAAs+B,wIAAwI,kBAAkB,4cAA4c,kBAAkB,o6BAAo6B,YAAY,wDAAwD,sBAAsB,2OAA2O,kBAAkB,mQAAmQ,YAAY,0CAA0C,MAAM,+zBAA+zB,UAAU,wF;;;;;;;;;;;ACApvI,0YAA0Y,meAAme,gBAAgB,+RAA+R,63CAA63C,2CAA2C,UAAU,wCAAwC,sCAAsC,kBAAkB,0BAA0B,qBAAqB,0BAA0B,4BAA4B,kDAAkD,8BAA8B,iBAAiB,2KAA2K,qPAAqP,6GAA6G,mDAAmD,yFAAyF,MAAM,MAAM,6MAA6M,6GAA6G,mDAAmD,2OAA2O,2CAA2C,UAAU,wCAAwC,2FAA2F,kBAAkB,0BAA0B,qBAAqB,0BAA0B,4BAA4B,kDAAkD,8BAA8B,iBAAiB,oWAAoW,kDAAkD,8BAA8B,8GAA8G,MAAM,MAAM,gLAAgL,kDAAkD,8BAA8B,0MAA0M,kBAAkB,0BAA0B,qBAAqB,0BAA0B,4BAA4B,kDAAkD,8BAA8B,iBAAiB,iYAAiY,4GAA4G,mDAAmD,yFAAyF,MAAM,MAAM,6MAA6M,4GAA4G,mDAAmD,+eAA+e,mBAAmB,sJAAsJ,KAAK,0P;;;;;;;;;;;ACA/1O,oPAAoP,MAAM,o5BAAo5B,wIAAwI,kBAAkB,2TAA2T,kBAAkB,sbAAsb,kBAAkB,mLAAmL,YAAY,+DAA+D,wBAAwB,opBAAopB,kBAAkB,mOAAmO,YAAY,oDAAoD,sBAAsB,owBAAowB,kBAAkB,kgBAAkgB,kBAAkB,4LAA4L,YAAY,oEAAoE,wBAAwB,20BAA20B,kBAAkB,6NAA6N,YAAY,mDAAmD,sBAAsB,0xCAA0xC,kDAAkD,WAAW,uPAAuP,iCAAiC,oKAAoK,UAAU,4F;;;;;;;;;;;ACA5yP,gIAAgI,wBAAwB,sBAAsB,OAAO,yBAAyB,yBAAyB,SAAS,KAAK,oBAAoB,gBAAgB,oBAAoB,2BAA2B,OAAO,qBAAqB,2BAA2B,2BAA2B,OAAO,YAAY,qBAAqB,kCAAkC,qBAAqB,wBAAwB,OAAO,YAAY,qBAAqB,wBAAwB,OAAO,eAAe,kCAAkC,OAAO,iCAAiC,kCAAkC,yBAAyB,8BAA8B,OAAO,qBAAqB,4BAA4B,OAAO,wBAAwB,yBAAyB,OAAO,uBAAuB,4BAA4B,OAAO,cAAc,2BAA2B,OAAO,0BAA0B,yBAAyB,SAAS,yBAAyB,wBAAwB,SAAS,iBAAiB,wBAAwB,kBAAkB,wBAAwB,yBAAyB,OAAO,KAAK,k1BAAk1B,iBAAiB,gGAAgG,iBAAiB,6VAA6V,iBAAiB,iSAAiS,iRAAiR,gBAAgB,oBAAoB,iSAAiS,gBAAgB,oBAAoB,8wDAA8wD,2CAA2C,UAAU,wCAAwC,oEAAoE,6CAA6C,uBAAuB,kBAAkB,2CAA2C,qBAAqB,wCAAwC,4BAA4B,0BAA0B,2BAA2B,yBAAyB,sBAAsB,yBAAyB,4CAA4C,+CAA+C,4FAA4F,6JAA6J,4GAA4G,mDAAmD,yFAAyF,MAAM,MAAM,wFAAwF,+JAA+J,4GAA4G,mDAAmD,uFAAuF,MAAM,OAAO,sEAAsE,wJAAwJ,4GAA4G,iDAAiD,qVAAqV,qBAAqB,mnBAAmnB,yDAAyD,+BAA+B,eAAe,iCAAiC,kBAAkB,qCAAqC,mBAAmB,oCAAoC,cAAc,iCAAiC,kBAAkB,iCAAiC,iBAAiB,wuBAAwuB,mBAAmB,gJAAgJ,KAAK,ytBAAytB,SAAS,MAAM,SAAS,IAAI,YAAY,qEAAqE,SAAS,uWAAuW,sBAAsB,oBAAoB,qNAAqN,uCAAuC,sBAAsB,uCAAuC,oBAAoB,0CAA0C,uBAAuB,gCAAgC,6CAA6C,iFAAiF,sBAAsB,uCAAuC,oBAAoB,wCAAwC,uBAAuB,gCAAgC,6CAA6C,iSAAiS,sCAAsC,mBAAmB,4CAA4C,0BAA0B,kSAAkS,SAAS,MAAM,SAAS,IAAI,YAAY,6CAA6C,SAAS,+OAA+O,sBAAsB,oBAAoB,8MAA8M,yCAAyC,sBAAsB,0CAA0C,oBAAoB,2CAA2C,uBAAuB,mCAAmC,6CAA6C,uFAAuF,sBAAsB,0CAA0C,oBAAoB,0CAA0C,uBAAuB,kCAAkC,6CAA6C,iKAAiK,WAAW,iG;;;;;;;;;;;ACAr0a,kIAAkI,wBAAwB,sBAAsB,OAAO,yBAAyB,yBAAyB,SAAS,KAAK,oBAAoB,UAAU,2BAA2B,OAAO,0BAA0B,yBAAyB,SAAS,yBAAyB,wBAAwB,SAAS,KAAK,2uBAA2uB,aAAa,ypBAAypB,iBAAiB,oDAAoD,aAAa,6BAA6B,gCAAgC,yLAAyL,68CAA68C,2CAA2C,UAAU,wCAAwC,yCAAyC,qBAAqB,0BAA0B,KAAK,uBAAuB,kBAAkB,wBAAwB,qBAAqB,wBAAwB,4BAA4B,wBAAwB,2BAA2B,uBAAuB,sBAAsB,kbAAkb,WAAW,wBAAwB,yBAAyB,kBAAkB,WAAW,+LAA+L,mBAAmB,0IAA0I,KAAK,gN;;;;;;;;;;;ACAx2J,sXAAsX,kBAAkB,2YAA2Y,YAAY,yDAAyD,iBAAiB,ymBAAymB,YAAY,6DAA6D,iBAAiB,4mBAA4mB,YAAY,gDAAgD,MAAM,+NAA+N,maAAma,yBAAyB,UAAU,qcAAqc,qBAAqB,uTAAuT,uCAAuC,iBAAiB,qM;;;;;;;;;;;ACAxsH,6DAA6D,6CAA6C,gCAAgC,eAAe,6CAA6C,mCAAmC,qBAAqB,WAAW,oCAAoC,iBAAiB,mCAAmC,eAAe,gCAAgC,yCAAyC,yBAAyB,yCAAyC,kCAAkC,qBAAqB,aAAa,oCAAoC,WAAW,WAAW,EAAE,UAAU,eAAe,EAAE,GAAG,sBAAsB,qBAAqB,wDAAwD,8DAA8D,wEAAwE,+tBAA+tB,mHAAmH,MAAM,iwBAAiwB,iBAAiB,8EAA8E,kBAAkB,+BAA+B,gCAAgC,6MAA6M,igCAAigC,2CAA2C,UAAU,wCAAwC,6CAA6C,qBAAqB,2CAA2C,qBAAqB,gCAAgC,sBAAsB,0BAA0B,0BAA0B,2mBAA2mB,mBAAmB,sKAAsK,KAAK,oW;;;;;;;;;;;ACA38J,8LAA8L,kbAAkb,YAAY,yBAAyB,wBAAwB,yBAAyB,WAAW,yBAAyB,eAAe,yBAAyB,gBAAgB,yBAAyB,cAAc,mF;;;;;;;;;;;ACAz0B,yZAAyZ,oBAAoB,sBAAsB,yBAAyB,gCAAgC,KAAK,cAAc,kBAAkB,mBAAmB,8BAA8B,wBAAwB,OAAO,qBAAqB,wBAAwB,sBAAsB,OAAO,yBAAyB,yBAAyB,SAAS,KAAK,oBAAoB,gCAAgC,sBAAsB,OAAO,YAAY,2BAA2B,OAAO,0BAA0B,yBAAyB,SAAS,yBAAyB,wBAAwB,SAAS,qBAAqB,sBAAsB,OAAO,wBAAwB,sBAAsB,OAAO,KAAK,2eAA2e,iBAAiB,kNAAkN,iDAAiD,eAAe,gWAAgW,iBAAiB,2MAA2M,qDAAqD,qBAAqB,uQAAuQ,iBAAiB,2KAA2K,+CAA+C,eAAe,ySAAyS,aAAa,2KAA2K,gBAAgB,mDAAmD,MAAM,saAAsa,iBAAiB,2EAA2E,aAAa,6BAA6B,gCAAgC,iGAAiG,qDAAqD,kFAAkF,iEAAiE,+LAA+L,6UAA6U,wGAAwG,aAAa,qBAAqB,gGAAgG,2DAA2D,gBAAgB,YAAY,qEAAqE,mBAAmB,sDAAsD,SAAS,QAAQ,SAAS,kLAAkL,qBAAqB,uBAAuB,iHAAiH,6DAA6D,gBAAgB,YAAY,uEAAuE,mBAAmB,wDAAwD,SAAS,QAAQ,SAAS,0RAA0R,mBAAmB,oBAAoB,aAAa,qBAAqB,sGAAsG,4hGAA4hG,2CAA2C,UAAU,wCAAwC,YAAY,sBAAsB,KAAK,uFAAuF,uBAAuB,uDAAuD,iBAAiB,2DAA2D,oBAAoB,2DAA2D,qBAAqB,6DAA6D,6BAA6B,6DAA6D,gBAAgB,yDAAyD,oBAAoB,uDAAuD,mBAAmB,uDAAuD,qBAAqB,uDAAuD,oBAAoB,+IAA+I,+KAA+K,mBAAmB,4JAA4J,KAAK,iVAAiV,WAAW,oBAAoB,qBAAqB,sBAAsB,GAAG,WAAW,wJAAwJ,yPAAyP,iBAAiB,eAAe,+FAA+F,KAAK,qHAAqH,iUAAiU,KAAK,MAAM,kDAAkD,iBAAiB,2BAA2B,MAAM,YAAY,8FAA8F,UAAU,yEAAyE,gPAAgP,gFAAgF,qEAAqE,2FAA2F,6CAA6C,YAAY,0HAA0H,SAAS,QAAQ,SAAS,2IAA2I,wB;;;;;;;;;;;ACAtza,8LAA8L,6hBAA6hB,YAAY,yBAAyB,eAAe,yBAAyB,gBAAgB,6BAA6B,WAAW,yBAAyB,cAAc,yBAAyB,wBAAwB,yBAAyB,gBAAgB,yBAAyB,eAAe,yBAAyB,mCAAmC,uF;;;;;;;;;;;ACArkC,+ZAA+Z,uBAAuB,sBAAsB,gCAAgC,wCAAwC,KAAK,gBAAgB,yBAAyB,iBAAiB,KAAK,qBAAqB,wBAAwB,sBAAsB,OAAO,yBAAyB,yBAAyB,SAAS,KAAK,oBAAoB,UAAU,2BAA2B,OAAO,0BAA0B,yBAAyB,SAAS,yBAAyB,wBAAwB,SAAS,KAAK,ukBAAukB,YAAY,0DAA0D,eAAe,2UAA2U,aAAa,wdAAwd,iBAAiB,2EAA2E,aAAa,6BAA6B,gCAAgC,oCAAoC,qDAAqD,wYAAwY,sEAAsE,yHAAyH,2DAA2D,gBAAgB,YAAY,qEAAqE,mBAAmB,sDAAsD,SAAS,QAAQ,SAAS,4IAA4I,+FAA+F,kvFAAkvF,2CAA2C,UAAU,wCAAwC,YAAY,sBAAsB,KAAK,yBAAyB,iBAAiB,yCAAyC,oBAAoB,2CAA2C,qBAAqB,2CAA2C,6BAA6B,yDAAyD,gBAAgB,yDAAyD,oBAAoB,6DAA6D,mBAAmB,uDAAuD,qBAAqB,uDAAuD,oBAAoB,iJAAiJ,+KAA+K,mBAAmB,4JAA4J,KAAK,iVAAiV,WAAW,oBAAoB,qBAAqB,kBAAkB,WAAW,wJAAwJ,2PAA2P,iBAAiB,eAAe,+GAA+G,KAAK,uJAAuJ,gWAAgW,KAAK,MAAM,kDAAkD,iBAAiB,2BAA2B,MAAM,YAAY,oFAAoF,UAAU,6BAA6B,4EAA4E,8RAA8R,0DAA0D,0HAA0H,kDAAkD,YAAY,sIAAsI,SAAS,QAAQ,SAAS,iKAAiK,yB;;;;;;;;;;;ACAlsU,8LAA8L,6XAA6X,YAAY,yBAAyB,eAAe,yBAAyB,gBAAgB,6BAA6B,eAAe,uF;;;;;;;;;;;ACApsB,2ZAA2Z,oBAAoB,sBAAsB,yBAAyB,gCAAgC,KAAK,cAAc,mBAAmB,mBAAmB,gCAAgC,wBAAwB,OAAO,qBAAqB,wBAAwB,sBAAsB,OAAO,yBAAyB,yBAAyB,SAAS,KAAK,wBAAwB,gCAAgC,sBAAsB,OAAO,YAAY,2BAA2B,OAAO,0BAA0B,yBAAyB,SAAS,yBAAyB,wBAAwB,SAAS,qBAAqB,sBAAsB,OAAO,KAAK,uBAAuB,oBAAoB,KAAK,oeAAoe,iBAAiB,kNAAkN,iDAAiD,eAAe,kWAAkW,iBAAiB,2MAA2M,qDAAqD,qBAAqB,wQAAwQ,iBAAiB,2KAA2K,+CAA+C,eAAe,iVAAiV,aAAa,2YAA2Y,iBAAiB,4CAA4C,aAAa,oCAAoC,gCAAgC,iGAAiG,qDAAqD,kFAAkF,iEAAiE,uVAAuV,aAAa,qBAAqB,sHAAsH,cAAc,8CAA8C,gBAAgB,YAAY,qEAAqE,mBAAmB,sDAAsD,SAAS,QAAQ,SAAS,kKAAkK,aAAa,qBAAqB,gHAAgH,wBAAwB,YAAY,qIAAqI,SAAS,QAAQ,SAAS,mzEAAmzE,2CAA2C,UAAU,wCAAwC,aAAa,sBAAsB,KAAK,uFAAuF,uBAAuB,uDAAuD,iBAAiB,uDAAuD,oBAAoB,yDAAyD,qBAAqB,yDAAyD,iBAAiB,uDAAuD,oBAAoB,+IAA+I,iLAAiL,mBAAmB,4JAA4J,KAAK,uYAAuY,WAAW,oBAAoB,qBAAqB,kBAAkB,WAAW,yKAAyK,KAAK,MAAM,gDAAgD,iBAAiB,2BAA2B,MAAM,YAAY,kGAAkG,UAAU,gFAAgF,0JAA0J,iBAAiB,sCAAsC,OAAO,KAAK,a;;;;;;;;;;;ACA15T,8LAA8L,6hBAA6hB,YAAY,yBAAyB,eAAe,yBAAyB,gBAAgB,6BAA6B,WAAW,yBAAyB,cAAc,yBAAyB,wBAAwB,yBAAyB,gBAAgB,yBAAyB,eAAe,yBAAyB,mCAAmC,uF;;;;;;;;;;;ACArkC,yZAAyZ,oBAAoB,sBAAsB,yBAAyB,gCAAgC,KAAK,cAAc,mBAAmB,mBAAmB,gCAAgC,wBAAwB,OAAO,qBAAqB,+CAA+C,sBAAsB,OAAO,yBAAyB,yBAAyB,SAAS,KAAK,oBAAoB,8BAA8B,sBAAsB,OAAO,eAAe,6BAA6B,GAAG,iBAAiB,2BAA2B,OAAO,0BAA0B,yBAAyB,SAAS,yBAAyB,wBAAwB,SAAS,qBAAqB,sBAAsB,OAAO,4CAA4C,kCAAkC,yBAAyB,SAAS,wBAAwB,iCAAiC,OAAO,QAAQ,8gBAA8gB,iBAAiB,kNAAkN,iDAAiD,eAAe,wWAAwW,iBAAiB,2MAA2M,qDAAqD,qBAAqB,8QAA8Q,iBAAiB,2KAA2K,+CAA+C,eAAe,gVAAgV,aAAa,qbAAqb,iBAAiB,2EAA2E,aAAa,6BAA6B,gCAAgC,iGAAiG,qDAAqD,kFAAkF,iEAAiE,2QAA2Q,YAAY,qBAAqB,wHAAwH,2DAA2D,gBAAgB,YAAY,qEAAqE,mBAAmB,sDAAsD,SAAS,QAAQ,SAAS,wKAAwK,YAAY,qBAAqB,6IAA6I,wBAAwB,YAAY,qIAAqI,SAAS,QAAQ,SAAS,8tGAA8tG,2CAA2C,UAAU,wCAAwC,YAAY,sBAAsB,KAAK,uFAAuF,uBAAuB,uCAAuC,iBAAiB,yCAAyC,oBAAoB,2CAA2C,qBAAqB,2CAA2C,6BAA6B,yDAAyD,gBAAgB,yDAAyD,oBAAoB,6DAA6D,mBAAmB,uDAAuD,qBAAqB,uDAAuD,oBAAoB,iJAAiJ,+KAA+K,mBAAmB,4JAA4J,KAAK,iVAAiV,WAAW,oBAAoB,qBAAqB,kBAAkB,WAAW,yKAAyK,KAAK,MAAM,kDAAkD,iBAAiB,2BAA2B,MAAM,YAAY,qGAAqG,UAAU,4EAA4E,sH;;;;;;;;;;;ACAzkW,8LAA8L,4vBAA4vB,QAAQ,uDAAuD,UAAU,uJAAuJ,aAAa,2DAA2D,YAAY,qDAAqD,eAAe,mDAAmD,WAAW,+BAA+B,eAAe,qDAAqD,cAAc,qL;;;;;;;;;;;ACAj+C,2aAA2a,6BAA6B,4BAA4B,sCAAsC,8CAA8C,SAAS,sBAAsB,+BAA+B,uBAAuB,SAAS,2BAA2B,8BAA8B,8BAA8B,aAAa,iCAAiC,mCAAmC,iBAAiB,SAAS,8BAA8B,gBAAgB,mCAAmC,aAAa,kCAAkC,mCAAmC,iBAAiB,iCAAiC,kCAAkC,iBAAiB,SAAS,kmBAAkmB,aAAa,6qBAA6qB,iBAAiB,6FAA6F,aAAa,uCAAuC,gCAAgC,qXAAqX,aAAa,qBAAqB,kJAAkJ,uEAAuE,gBAAgB,YAAY,iFAAiF,mBAAmB,oEAAoE,SAAS,QAAQ,SAAS,uOAAuO,uhHAAuhH,2CAA2C,UAAU,wCAAwC,YAAY,0EAA0E,KAAK,0GAA0G,QAAQ,mEAAmE,QAAQ,uCAAuC,UAAU,uCAAuC,SAAS,wKAAwK,oBAAoB,0OAA0O,uBAAuB,8OAA8O,mBAAmB,8OAA8O,uBAAuB,8OAA8O,sBAAsB,iPAAiP,4MAA4M,mBAAmB,4MAA4M,KAAK,ybAAyb,WAAW,wBAAwB,yBAAyB,wBAAwB,WAAW,6KAA6K,KAAK,MAAM,wDAAwD,iBAAiB,2BAA2B,MAAM,YAAY,uGAAuG,UAAU,qEAAqE,oH;;;;;;;;;;;ACA78U,opBAAopB,YAAY,0EAA0E,0BAA0B,k0C;;;;;;;;;;;ACApwB,uLAAuL,MAAM,y6BAAy6B,aAAa,6KAA6K,4GAA4G,mEAAmE,kBAAkB,2iBAA2iB,iBAAiB,05BAA05B,4HAA4H,wFAAwF,MAAM,MAAM,MAAM,MAAM,MAAM,y7BAAy7B,QAAQ,eAAe,gGAAgG,6KAA6K,wFAAwF,MAAM,MAAM,MAAM,MAAM,MAAM,wmBAAwmB,MAAM,2OAA2O,wFAAwF,MAAM,MAAM,MAAM,MAAM,MAAM,2mBAA2mB,MAAM,2fAA2f,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,4RAA4R,MAAM,MAAM,MAAM,MAAM,MAAM,wNAAwN,MAAM,wMAAwM,MAAM,MAAM,MAAM,MAAM,MAAM,kLAAkL,MAAM,+PAA+P,uDAAuD,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,uIAAuI,0BAA0B,wQAAwQ,MAAM,MAAM,MAAM,MAAM,MAAM,uWAAuW,MAAM,gOAAgO,MAAM,MAAM,MAAM,MAAM,MAAM,8PAA8P,MAAM,kRAAkR,qCAAqC,iDAAiD,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,6JAA6J,6BAA6B,mRAAmR,MAAM,MAAM,MAAM,MAAM,MAAM,mZAAmZ,MAAM,wPAAwP,MAAM,MAAM,MAAM,MAAM,MAAM,4RAA4R,MAAM,4VAA4V,qEAAqE,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,2KAA2K,0BAA0B,0RAA0R,MAAM,MAAM,MAAM,MAAM,MAAM,+aAA+a,MAAM,gRAAgR,MAAM,MAAM,MAAM,MAAM,MAAM,kTAAkT,MAAM,+rCAA+rC,kBAAkB,8jBAA8jB,iBAAiB,+gCAA+gC,qHAAqH,6HAA6H,oGAAoG,MAAM,MAAM,MAAM,MAAM,MAAM,6sCAA6sC,wTAAwT,MAAM,eAAe,wNAAwN,0TAA0T,2JAA2J,MAAM,MAAM,MAAM,MAAM,MAAM,o3CAAo3C,MAAM,6WAA6W,2JAA2J,MAAM,MAAM,MAAM,MAAM,MAAM,41CAA41C,MAAM,4oBAA4oB,2dAA2d,2JAA2J,MAAM,MAAM,MAAM,MAAM,MAAM,oSAAoS,MAAM,6PAA6P,2JAA2J,MAAM,MAAM,MAAM,MAAM,MAAM,6PAA6P,MAAM,mlBAAmlB,yGAAyG,mQAAmQ,0BAA0B,+WAA+W,2KAA2K,MAAM,MAAM,MAAM,MAAM,MAAM,uZAAuZ,MAAM,6RAA6R,2KAA2K,MAAM,MAAM,MAAM,MAAM,MAAM,kSAAkS,MAAM,iXAAiX,wFAAwF,6DAA6D,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,yOAAyO,6BAA6B,iSAAiS,2LAA2L,MAAM,MAAM,MAAM,MAAM,MAAM,mcAAmc,MAAM,6TAA6T,2LAA2L,MAAM,MAAM,MAAM,MAAM,MAAM,gUAAgU,MAAM,yZAAyZ,iFAAiF,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,+PAA+P,0BAA0B,wSAAwS,2MAA2M,MAAM,MAAM,MAAM,MAAM,MAAM,+dAA+d,MAAM,6VAA6V,2MAA2M,MAAM,MAAM,MAAM,MAAM,MAAM,sVAAsV,MAAM,88BAA88B,ylBAAylB,uBAAuB,cAAc,0B;;;;;;;;;;;ACArzkC,2VAA2V,+fAA+f,gBAAgB,kNAAkN,wsCAAwsC,gBAAgB,kFAAkF,MAAM,oKAAoK,0zBAA0zB,2CAA2C,UAAU,wCAAwC,oCAAoC,kBAAkB,sBAAsB,yBAAyB,2CAA2C,iBAAiB,oBAAoB,qVAAqV,wRAAwR,kJAAkJ,iCAAiC,MAAM,MAAM,oUAAoU,yRAAyR,4IAA4I,sYAAsY,mBAAmB,gJAAgJ,KAAK,gcAAgc,mBAAmB,sKAAsK,KAAK,6V;;;;;;;;;;;ACA7xM,mMAAmM,uKAAuK,ibAAib,sIAAsI,gBAAgB,knDAAknD,2CAA2C,UAAU,wCAAwC,8IAA8I,qBAAqB,+BAA+B,eAAe,iCAAiC,iBAAiB,iCAAiC,yDAAyD,0cAA0c,wCAAwC,uGAAuG,yDAAyD,ybAAyb,yFAAyF,8DAA8D,uFAAuF,MAAM,MAAM,6KAA6K,mGAAmG,MAAM,MAAM,kJAAkJ,8HAA8H,MAAM,MAAM,4FAA4F,gBAAgB,aAAa,WAAW,+GAA+G,qBAAqB,yuB;;;;;;;;;;;ACAlmK,0LAA0L,MAAM,m2BAAm2B,wIAAwI,kBAAkB,sSAAsS,kBAAkB,qMAAqM,YAAY,uDAAuD,qBAAqB,ocAAoc,kBAAkB,qkCAAqkC,UAAU,8F;;;;;;;;;;;ACAvzG,uXAAuX,qdAAqd,gBAAgB,qRAAqR,woCAAwoC,2CAA2C,UAAU,wCAAwC,kCAAkC,wBAAwB,sBAAsB,kBAAkB,qBAAqB,yBAAyB,2CAA2C,wHAAwH,sGAAsG,MAAM,MAAM,MAAM,MAAM,2LAA2L,sDAAsD,8BAA8B,yMAAyM,2CAA2C,UAAU,wCAAwC,+EAA+E,wBAAwB,sBAAsB,kBAAkB,qBAAqB,yBAAyB,+LAA+L,kDAAkD,8BAA8B,sGAAsG,MAAM,MAAM,MAAM,MAAM,0MAA0M,6FAA6F,+CAA+C,yJAAyJ,wBAAwB,sBAAsB,kBAAkB,qBAAqB,yBAAyB,kTAAkT,mNAAmN,+CAA+C,qFAAqF,MAAM,MAAM,MAAM,MAAM,mVAAmV,8PAA8P,+CAA+C,6bAA6b,mBAAmB,gJAAgJ,KAAK,gO;;;;;;;;;;;ACAz2M,o5BAAo5B,2CAA2C,UAAU,wCAAwC,iDAAiD,qBAAqB,mDAAmD,kBAAkB,8oBAA8oB,KAAK,snCAAsnC,2CAA2C,UAAU,wCAAwC,iDAAiD,qBAAqB,mDAAmD,kBAAkB,8oBAA8oB,KAAK,omCAAomC,2CAA2C,UAAU,wCAAwC,iDAAiD,qBAAqB,mDAAmD,kBAAkB,8oBAA8oB,KAAK,6lCAA6lC,2CAA2C,UAAU,wCAAwC,iDAAiD,qBAAqB,mDAAmD,kBAAkB,+oBAA+oB,KAAK,wmCAAwmC,2CAA2C,UAAU,wCAAwC,iDAAiD,qBAAqB,mDAAmD,kBAAkB,+oBAA+oB,KAAK,snCAAsnC,2CAA2C,UAAU,wCAAwC,iDAAiD,qBAAqB,mDAAmD,kBAAkB,8oBAA8oB,KAAK,+mCAA+mC,2CAA2C,UAAU,wCAAwC,iDAAiD,qBAAqB,mDAAmD,kBAAkB,uoBAAuoB,KAAK,ynCAAynC,2CAA2C,UAAU,wCAAwC,iDAAiD,qBAAqB,mDAAmD,kBAAkB,+oBAA+oB,KAAK,4mCAA4mC,2CAA2C,UAAU,wCAAwC,iDAAiD,qBAAqB,mDAAmD,kBAAkB,4oBAA4oB,KAAK,umCAAumC,2CAA2C,UAAU,wCAAwC,iDAAiD,qBAAqB,mDAAmD,kBAAkB,6oBAA6oB,KAAK,sV;;;;;;;;;;;ACA3inB,6jBAA6jB,kBAAkB,mBAAmB,iBAAiB,yRAAyR,YAAY,oEAAoE,uBAAuB,cAAc,8BAA8B,wBAAwB,KAAK,mBAAmB,gCAAgC,kCAAkC,6BAA6B,4BAA4B,wBAAwB,qBAAqB,KAAK,W;;;;;;;;;;;ACA5vC,wNAAwN,0FAA0F,iCAAiC,kHAAkH,oJAAoJ,mbAAmb,sBAAsB,kOAAkO,uBAAuB,OAAO,kFAAkF,uBAAuB,OAAO,mXAAmX,0BAA0B,8EAA8E,oBAAoB,iGAAiG,yBAAyB,yJAAyJ,0aAA0a,8EAA8E,yIAAyI,wBAAwB,6nBAA6nB,qEAAqE,iJAAiJ,uBAAuB,8KAA8K,uBAAuB,8KAA8K,uBAAuB,+KAA+K,uBAAuB,8KAA8K,uBAAuB,8KAA8K,uBAAuB,+KAA+K,uBAAuB,+KAA+K,uBAAuB,+KAA+K,uBAAuB,gLAAgL,uBAAuB,gLAAgL,wBAAwB,+KAA+K,wBAAwB,qNAAqN,wBAAwB,qNAAqN,wBAAwB,4WAA4W,iBAAiB,oEAAoE,oBAAoB,gNAAgN,mBAAmB,yKAAyK,0BAA0B,aAAa,kLAAkL,2KAA2K,qBAAqB,6GAA6G,OAAO,2FAA2F,qBAAqB,4HAA4H,mBAAmB,2KAA2K,2BAA2B,aAAa,oLAAoL,6KAA6K,sBAAsB,8GAA8G,OAAO,4FAA4F,sBAAsB,4HAA4H,mBAAmB,qKAAqK,wBAAwB,aAAa,8KAA8K,uKAAuK,mBAAmB,2GAA2G,OAAO,yFAAyF,mBAAmB,mLAAmL,kBAAkB,oDAAoD,YAAY,0pBAA0pB,8FAA8F,ueAAue,cAAc,gNAAgN,cAAc,8aAA8a,8FAA8F,2aAA2a,cAAc,gNAAgN,cAAc,8aAA8a,8FAA8F,2aAA2a,cAAc,gNAAgN,cAAc,8aAA8a,8FAA8F,2aAA2a,cAAc,oQAAoQ,cAAc,8aAA8a,8FAA8F,2aAA2a,cAAc,gNAAgN,cAAc,8aAA8a,8FAA8F,2aAA2a,cAAc,gNAAgN,cAAc,8aAA8a,8FAA8F,2aAA2a,cAAc,gNAAgN,cAAc,8aAA8a,8FAA8F,2aAA2a,cAAc,oQAAoQ,cAAc,8aAA8a,8FAA8F,2aAA2a,cAAc,iNAAiN,eAAe,8aAA8a,gGAAgG,2aAA2a,eAAe,iNAAiN,eAAe,8aAA8a,gGAAgG,2aAA2a,eAAe,iNAAiN,eAAe,8aAA8a,gGAAgG,2aAA2a,eAAe,+QAA+Q,eAAe,8aAA8a,gGAAgG,2aAA2a,eAAe,mRAAmR,eAAe,8aAA8a,gGAAgG,2aAA2a,eAAe,qNAAqN,wEAAwE,kiBAAkiB,oEAAoE,iJAAiJ,uBAAuB,8KAA8K,uBAAuB,8KAA8K,uBAAuB,+KAA+K,uBAAuB,8KAA8K,uBAAuB,8KAA8K,uBAAuB,+KAA+K,uBAAuB,+KAA+K,uBAAuB,+KAA+K,uBAAuB,gLAAgL,uBAAuB,gLAAgL,wBAAwB,+KAA+K,wBAAwB,qNAAqN,wBAAwB,qNAAqN,wBAAwB,4WAA4W,iBAAiB,oEAAoE,oBAAoB,2LAA2L,0BAA0B,aAAa,kKAAkK,2JAA2J,qBAAqB,qGAAqG,OAAO,mFAAmF,qBAAqB,gOAAgO,2BAA2B,aAAa,oKAAoK,6JAA6J,sBAAsB,sGAAsG,OAAO,oFAAoF,sBAAsB,0NAA0N,wBAAwB,aAAa,2HAA2H,uJAAuJ,mBAAmB,mGAAmG,OAAO,iFAAiF,mBAAmB,mGAAmG,kBAAkB,oDAAoD,YAAY,0pBAA0pB,8FAA8F,ueAAue,cAAc,gNAAgN,cAAc,8aAA8a,8FAA8F,2aAA2a,cAAc,gNAAgN,cAAc,8aAA8a,8FAA8F,2aAA2a,cAAc,gNAAgN,cAAc,8aAA8a,8FAA8F,2aAA2a,cAAc,oQAAoQ,cAAc,8aAA8a,8FAA8F,2aAA2a,cAAc,gNAAgN,cAAc,8aAA8a,8FAA8F,2aAA2a,cAAc,gNAAgN,cAAc,8aAA8a,8FAA8F,2aAA2a,cAAc,gNAAgN,cAAc,8aAA8a,8FAA8F,2aAA2a,cAAc,oQAAoQ,cAAc,8aAA8a,8FAA8F,2aAA2a,cAAc,iNAAiN,eAAe,8aAA8a,gGAAgG,2aAA2a,eAAe,iNAAiN,eAAe,8aAA8a,gGAAgG,2aAA2a,eAAe,iNAAiN,eAAe,8aAA8a,gGAAgG,2aAA2a,eAAe,+QAA+Q,eAAe,8aAA8a,gGAAgG,2aAA2a,eAAe,mRAAmR,eAAe,8aAA8a,gGAAgG,2aAA2a,eAAe,gL;;;;;;;;;;;;;;;;;;;;;;;;ACAr6iD;AACyB;AAClC;AACL;AAEQ;AACmB;AACzB;AAS/C,IAAa,iBAAiB,GAA9B,MAAa,iBAAiB;IAuE5B,YAAmB,MAAiB,EAAS,aAA4B,EAAU,OAA4B;QAA5F,WAAM,GAAN,MAAM,CAAW;QAAS,kBAAa,GAAb,aAAa,CAAe;QAAU,YAAO,GAAP,OAAO,CAAqB;QAtE/G,uBAAkB,GAAG,mFAAkB,CAAC;QAIxC,oBAAe,GAAG,EAAE,CAAC;QACrB,kBAAa,GAAG,EAAE,CAAC;QAEnB,WAAM,GAAG,KAAK,CAAC;QAcf,cAAS,GAAG,KAAK,CAAC;QAElB,MAAC,GAAW,CAAC,CAAC;QACd,eAAU,GAAG,EAAE,CAAC;QAChB,kBAAa,GAAG,EAAE,CAAC;QAEnB,gBAAW,GAAG,EAAE,CAAC;QACjB,WAAM,GAAY,KAAK,CAAC;QACxB,WAAM,GAAG,EAAE,CAAC;QAEZ,UAAK,GAAG,IAAI,CAAC;QAGb,eAAU,GAAgB,IAAI,0DAAW,EAAE,CAAC;QAC5C,YAAO,GAAQ,EAAE,CAAC;QAElB,eAAU,GAAG,EAAE,CAAC;QAChB,mBAAc,GAAG,KAAK,CAAC;QAIvB,cAAS,GAAG,KAAK,CAAC;QAClB,kBAAa,GAAG,KAAK,CAAC;QAQtB,eAAU,GAAG,EAAE,CAAC;QAKhB,WAAM,GAAG,EAAE,CAAC;QAOZ,iBAAY,GAAG,EAAE,CAAC;QAQhB,wDAAwD;QACxD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAEhE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;YAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;SAC3C;aACI;YACH,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SACrB;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,CAAC;QAE9F,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC1C;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAClD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC;IACD,QAAQ;QACN,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAC5D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC;IACD,qBAAqB;QACnB,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YAC/D,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7D,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;gBAC5D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC5C,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;oBACjC,IAAI,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC9E,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;wBACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;wBACjC,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;wBACvE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;4BACvB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;yBACzD;qBAEF;iBACF;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,IAAY;QACvB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IACD,OAAO;QACL,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC7D,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YAExB,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;oBACnF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;iBACnG;qBACI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE;oBAClF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;oBAC/I,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;iBAC3C;qBACI;oBACH,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;iBACzB;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACzD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;QAEpC,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CACzC,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CACL,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;mBAC7G,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACtH,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1G,CAAC,IAAI,CAAC,gBAAgB,KAAK,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1H,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjH,CAAC;QACH,CAAC,CAEF,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE;YACjC,sBAAsB;YACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;YACpC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;YACzC,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;aAC1C;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,aAAa,EAAE;gBAEtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aACzC;YACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC;YACpC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;aAC1C;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,IAAI,CAAC,aAAa;oBACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;YAED,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IACD,cAAc;QACZ,IAAI,IAAI,CAAC,SAAS,IAAI,GAAG,EAAE;YACzB,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACnD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC7C,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC/E,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC1B,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;iBACpD;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,YAAY;QACV,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACtC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAEtD,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YAExD,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YAEpD,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;YAChE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAEnD,yCAAyC;YACzC,0DAA0D;YAE1D,IAAI;YACJ,QAAQ;YACR,4CAA4C;YAE5C,IAAI;YAEJ,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;YACrC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YACnC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAG/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;YAIpC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YAEnC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAE9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAE/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAE7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;YACxC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YAClC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAE5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;YACvC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAEvB;QAGD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,GAAG,WAAW,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,EAAE,iBAAiB,EAAE,0DAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAC9R,CAAC;IAGD,WAAW;QACT,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACjE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YACjD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;YAC5B,IAAI,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC;YAEzC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;gBAClC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;iBACI;gBACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;gBACzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;gBAChE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBAEvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBACxB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;gBAGtB,IAAI,IAAI,CAAC,eAAe,EAAE;oBACxB,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,UAAU,EAAE;wBAC9E,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;qBAC1H;yBACI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,IAAI,EAAE;wBAC7E,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;qBAC/F;yBACI;wBACH,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;wBACzE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;qBAC1B;oBACD,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,IAAI,IAAI,CAAC,eAAe,CAAC,cAAc,KAAK,IAAI,EAAE;wBACxF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;wBACzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;wBAChE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC;wBACzC,OAAO;qBACR;oBAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;oBAClE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;oBAC9C,IAAI,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAChD,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;oBACnC;wBACE,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;wBACjF,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;qBAC5E;oBAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAC5C,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;wBACpG,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;4BACtB,IAAI,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BAElE,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gCACjC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;;gCAExD,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;4BAG1B,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gCACjC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;;gCAExD,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;4BAG1B,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gCACjC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;;gCAExD,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;4BAG1B,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gCACjC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;;gCAExD,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;4BAE1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;yBACvC;qBACF;oBACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC;oBACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;iBAC7C;aAEF;YAED,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;gBACzC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;gBAChE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC;aAC1C;iBACI,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;gBACvC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;YACD,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;IAGL,CAAC;IAED,qBAAqB,CAAC,UAAU;QAC9B,OAAO,IAAI,CAAC,WAAW,GAAG,UAAU,EAAE;YACpC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;SAC1C;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClF,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;gBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SAC3C;IAEH,CAAC;IAGD,eAAe;QACb,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;YACrD,IAAI,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;YACjF,IAAI,eAAe,CAAC,MAAM,IAAI,CAAC,EAAE;gBAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;SACF;IACH,CAAC;IAED,IAAI,CAAC,QAAQ;QACX,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,sBAAsB;QAClD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,WAAW;QACT,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAEjE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;YAE5B,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;gBACjC,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC3E,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;oBACxB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;iBACvC;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAChE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;YAE3B,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,UAAU,EAAE;oBAC9E,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;iBACxH;qBACI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,IAAI,EAAE;oBAC7E,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;iBAC7F;qBACI;oBACH,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;oBACxE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;iBACzB;aACF;QAEH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe;QACb,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACvD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,GAAW;QACpB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;YAC1D,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,GAAG,GAAG,KAAK,GAAG,IAAI;SACzB,CAAC,CAAC;QACH,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACzD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjE,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACrE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QACnE,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAGjD,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,KAAK,EAAE;YAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACjD,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;SACxB;QAED,IAAI,GAAG,KAAK,MAAM,EAAE;YAClB,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YACnE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC;YAClC,IAAI,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7E,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,eAAe,CAAC;YAC1D,SAAS,CAAC,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YAC/D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACzD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvD,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACzD,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YACjE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YACnD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YACnD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;YACpD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1D,SAAS,CAAC,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC;SAC3D;QAED,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,KAAK,EAAE;YAClC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;QAED,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAEzC,0BAA0B;YAC1B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;gBAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;iBACI;gBAEH,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;YAED,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;gBAChC,CAAC;gBACD,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,IAAI,GAAG,KAAK,KAAK,EAAE;oBACjB,SAAS,GAAG,oBAAoB,CAAC;iBAClC;qBAAM;oBAEL,SAAS,GAAG,sBAAsB,CAAC;iBACpC;gBAGD,0BAA0B;gBAC1B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;gBACtB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;gBACrB,IAAI,CAAC,WAAW,EAAE,CAAC;gBAEnB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;oBAC7D,UAAU,EAAE,yBAAyB;oBACrC,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,KAAK;iBAEhC,CAAC,CAAC;gBAEH,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,CAAC,EAAE,GAAG,CAAC,CAAC;gBACR,YAAY,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBAC7C,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;oBACrB,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;wBAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;qBACnB;yBACI;wBACH,IAAI,CAAC,WAAW,EAAE,CAAC;qBACpB;gBACH,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,YAAY,CAAC,OAAO;QAClB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAChD,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,EAAE;gBACvD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;aAC7C;SACF;QACD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC5C,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;gBAC1C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;aACzD;SACF;QACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,UAAU;QACR,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAChE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YAC/C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SACvC;IACH,CAAC;IAED,cAAc,CAAC,OAAO;QACpB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;YAC1D,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,4CAA4C,GAAG,OAAO,CAAC,YAAY,GAAG,MAAM,GAAG,IAAI;SAE1F,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBAC5I,IAAI,IAAI,CAAC,EAAE,EAAE;wBACX,IAAI,CAAC,QAAQ,EAAE,CAAC;wBAChB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;wBACtB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;qBACzC;oBACD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;oBACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;oBACxB,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;;YAxmB4B,kEAAS;YAAwB,6DAAa;YAAmB,kEAAmB;;AAvEpG,iBAAiB;IAL7B,+DAAS,CAAC;QACT,QAAQ,EAAE,cAAc;QACxB,0JAAwC;QACxC,SAAS,EAAE,CAAC,6DAAa,CAAC;KAC3B,CAAC;GACW,iBAAiB,CA+qB7B;AA/qB6B;AAurB9B,IAAa,uBAAuB,GAApC,MAAa,uBAAuB;IAwClC,YACS,SAAgD,EACvB,IAAS,EAAS,aAA4B,EAAU,OAA4B;QAD7G,cAAS,GAAT,SAAS,CAAuC;QACvB,SAAI,GAAJ,IAAI,CAAK;QAAS,kBAAa,GAAb,aAAa,CAAe;QAAU,YAAO,GAAP,OAAO,CAAqB;QAnCtH,cAAS,GAAG,KAAK,CAAC;QAclB,qBAAgB,GAAG,CAAC,CAAC;QAErB,gBAAW,GAAG,IAAI,0DAAW,EAAE,CAAC;QAEhC,iBAAY,GAAG,EAAE,CAAC;QAKlB,kBAAa,GAAG,EAAE,CAAC;QAGnB,sBAAiB,GAAG,EAAE,CAAC;QAEvB,iBAAY,GAAa,EAAE,CAAC;QAC5B,eAAU,GAAG,EAAE,CAAC;QAGhB,gBAAW,GAAG,KAAK,CAAC;QAIlB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEnC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;YACnC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;aACI;YACH,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;gBACvB,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;aACpC;iBAAM;gBACL,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC;aACrC;SACF;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,sBAAsB,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,sDAAsD,EAAE;YAC5I,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAGD,QAAQ;QAEN,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,IAAI,IAAI,CAAC,iBAAiB,KAAK,UAAU,EAAE;YAEjF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAEjD,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;oBAC/J,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;iBAC9D;aACF;YAED,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YACvC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;gBAClC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAC7B;;gBACI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAC3D;SACJ;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE;YACrD,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YAEvB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;gBACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC;aAClC;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACjD,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE;oBAC5F,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC9C;aACF;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACjD,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;oBAC/J,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;iBACtD;aACF;SACF;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;IAC/C,CAAC;IACD,QAAQ,CAAC,KAAK;QACZ,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IACD,UAAU,CAAC,CAAC,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IACD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,CAAC,KAAK;QACX,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC,EAAE;YAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;SAE9B;QACD,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACjE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;YAC5B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;YAC7B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;YAC/B,CAAC,CAAC,CAAC;YACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAChD,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE;oBACpD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;iBAC7C;aACF;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAEjD,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;oBAC3I,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;iBAE9C;gBAED,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC,EAAE;oBACtD,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;wBAC/J,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;qBACtD;iBACF;aACF;YACD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,EAAE;gBACvC,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;gBACvC,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC,EAAE;oBACtD,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;wBAClC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;qBAC7B;;wBACI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBAChC;aACF;YACD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC,EAAE;gBACtD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC/D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;aAC9C;QACH,CAAC,CAAC,CAAC;IAEL,CAAC;IACD,YAAY;QAEV,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACjE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;YAC5B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;YAC/B,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACjD,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;oBAC/J,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;iBACtD;aACF;YAED,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,aAAa,EAAE;gBAC/C,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;gBACvC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;oBAClC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBAC7B;;oBACI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAChC;YAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC/D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;IACD,YAAY,CAAC,KAAK;QAChB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC;IACpC,CAAC;IACD,UAAU,CAAC,KAAK;QACd,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;IAClC,CAAC;IACD,QAAQ,CAAC,KAAK;QACZ,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;QAE9B,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;QAE9E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YAC9F,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;SAErD;IACH,CAAC;IACD,WAAW;QACT,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,SAAS,GAAG,CAAC,CAAC;QACpB,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YAClE,IAAI,CAAC,QAAQ,GAAG,kCAAkC,CAAC;YACnD,OAAM;SACP;QACD,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;YAEtG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,cAAc,KAAK,EAAE,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,EAAE;YACxF,4HAA4H;YAC5H,IAAI,CAAC,QAAQ,GAAG,kCAAkC,CAAC;YACnD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;aAExB;YACD,KAAK,EAAE,CAAC;SACT;QAED,IAAI,KAAK,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,EAAE;YAClC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;gBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACxB;iBAAM;gBACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACxB;SACF;aAAM;SAEN;IACH,CAAC;IACD,eAAe,CAAC,SAAiB;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAEjD,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE;gBACvF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9C;SACF;IACH,CAAC;IACD,UAAU;QAER,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,MAAM,CAAC,GAAW;QAEhB,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YAClE,IAAI,CAAC,QAAQ,GAAG,kCAAkC,CAAC;YACnD,OAAM;SACP;QAGD,MAAM,IAAI,GAAG;YACX,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,kBAAkB;YAElB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,uBAAuB;YACvB,QAAQ,EAAE,IAAI,CAAC,gBAAgB;YAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,mCAAmC;YACnC,+BAA+B;YAC/B,YAAY,EAAE,GAAG;YACjB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,GAAG;YACT,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;QACF,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,KAAK,EAAE;YAClC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAC3D,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;oBACvC,IAAI,CAAC,QAAQ,GAAG,mBAAmB,CAAC;oBACpC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;oBACvB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;oBACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;oBACnE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBACtC;qBAAM;oBACL,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;iBAC/B;YACH,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;YAC7C,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAC3D,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;oBACvC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBAC5B;qBAAM;oBACL,IAAI,CAAC,QAAQ,GAAG,sBAAsB,CAAC;iBACxC;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IACD,OAAO,CAAC,GAAG;QACT,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO;QACnD,IAAI,CAAC,OAAO,GAAG,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,IAAI,OAAO,GAAG,GAAG,CAAC,IAAI,OAAO,IAAI,EAAE,EAAE;YACtF,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CAGF;;YA3RqB,qEAAY;4CAC7B,oDAAM,SAAC,wEAAe;YAA0C,6DAAa;YAAmB,kEAAmB;;AA1C3G,uBAAuB;IALnC,+DAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,kIAA0B;QAC1B,SAAS,EAAE,CAAC,6DAAa,CAAC;KAC3B,CAAC;IA2CG,6GAAM,CAAC,wEAAe,CAAC;GA1Cf,uBAAuB,CAoUnC;AApUmC;;;;;;;;;;;;ACvsBpC,mCAAmC,+BAA+B,GAAG,YAAY,oBAAoB,GAAG,mBAAmB,2CAA2C,GAAG,iBAAiB,2BAA2B,GAAG,+HAA+H,kBAAkB,GAAG,oEAAoE,mCAAmC,wBAAwB,GAAG,8DAA8D,qBAAqB,GAAG,qBAAqB,4BAA4B,GAAG,gCAAgC,4BAA4B,yBAAyB,uCAAuC,GAAG,aAAa,iCAAiC,GAAG,qBAAqB,qBAAqB,GAAG,QAAQ,iBAAiB,8BAA8B,GAAG,mBAAmB,gBAAgB,GAAG,UAAU,sBAAsB,GAAG,UAAU,4BAA4B,GAAG,UAAU,2BAA2B,GAAG,oBAAoB,gCAAgC,4BAA4B,gCAAgC,0BAA0B,GAAG,gBAAgB,gCAAgC,GAAG,WAAW,uBAAuB,+BAA+B,GAAG,YAAY,gBAAgB,GAAG,UAAU,eAAe,GAAG,kBAAkB,yCAAyC,GAAG,aAAa,0BAA0B,uBAAuB,sBAAsB,GAAG,gBAAgB,6BAA6B,uBAAuB,sBAAsB,GAAG,eAAe,4BAA4B,uBAAuB,sBAAsB,GAAG,WAAW,oBAAoB,GAAG,YAAY,qBAAqB,GAAG,iBAAiB,uBAAuB,eAAe,GAAG,YAAY,kCAAkC,GAAG,oBAAoB,gCAAgC,GAAG,oBAAoB,gCAAgC,4BAA4B,GAAG,cAAc,6BAA6B,qBAAqB,cAAc,oBAAoB,kBAAkB,GAAG,eAAe,6BAA6B,qBAAqB,gBAAgB,oBAAoB,kBAAkB,GAAG,cAAc,6BAA6B,qBAAqB,cAAc,eAAe,gCAAgC,uBAAuB,2BAA2B,GAAG,eAAe,6BAA6B,qBAAqB,gBAAgB,eAAe,gCAAgC,uBAAuB,2BAA2B,GAAG,UAAU,2BAA2B,GAAG,sBAAsB,eAAe,sBAAsB,GAAG,6CAA6C,m4S;;;;;;;;;;;;;;;;;;;;;;;;;;ACAzqF;AACJ;AACW;AAEJ;AACiD;AACC;AAC1C;AAC+C;AAC5C;AACJ;AAO5D,IAAa,qBAAqB,GAAlC,MAAa,qBAAqB;IA+BhC,YAAoB,OAA4B,EACtC,gBAA6C,EAC7C,cAA8B,EAC9B,MAAc,EACd,KAAqB,EACtB,MAAiB;QALN,YAAO,GAAP,OAAO,CAAqB;QACtC,qBAAgB,GAAhB,gBAAgB,CAA6B;QAC7C,mBAAc,GAAd,cAAc,CAAgB;QAC9B,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAgB;QACtB,WAAM,GAAN,MAAM,CAAW;QAnC1B,oBAAe,GAAY,IAAI,CAAC;QAEhC,gBAAW,GAAQ,EAAE,CAAC;QAOtB,SAAI,GAAW,CAAC,CAAC;QACjB,oBAAe,GAA4B,EAAE,CAAC;QAI9C,kBAAa,GAAa,EAAE,CAAC;QAC7B,gBAAW,GAAa,CAAC,+DAAS,CAAC,OAAO,EAAE,+DAAS,CAAC,MAAM,CAAC,CAAC;QAE9D,qBAAgB,GAA4B,EAAE,CAAC;QAM/C,iBAAY,GAAG,EAAE,CAAC;QAClB,uBAAkB,GAAa,EAAE,CAAC;QAElC,sBAAiB,GAAa,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACxE,qBAAgB,GAAY,KAAK,CAAC;QAClC,mBAAc,GAAG,EAAE,CAAC;QAQlB,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EACtC,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1F,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC/C,IAAI,CAAC,IAAI,EAAE;gBACT,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC;gBACjD,OAAO;aACR;YACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,QAAQ;QACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;QACtC,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/D,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;YAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;SACzC;QACD,IAAI,CAAC,gBAAgB,CAAC,8BAA8B,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAChK,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC;YACrC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC;YACvD,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,KAAK,sGAAiB,CAAC,UAAU,EAAE;gBACjE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,KAAK,sGAAiB,CAAC,UAAU,CAAC,CAAC;aACvH;YACD,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,KAAK,sGAAiB,CAAC,IAAI,EAAE;gBAC3D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBACxG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;aACnG;YACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC;YACzD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;YACrD,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC;aACrF;YACD,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,EAAE;gBACpC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBAClC,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC;oBACvB,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;oBAC/B,GAAG,CAAC,iBAAiB,GAAG,GAAG,CAAC,kBAAkB,GAAG,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC;oBAC5E,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;oBACnF,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;oBACvC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC;oBAC7E,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;gBAC5G,CAAC,CAAC,CAAC;aACJ;YACD,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,EAAE;gBAC/B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAC/F,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACjG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC;gBACrG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;gBACxD,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,iBAAiB,CAAC,CAAC,aAAa,CAAC;gBAC/F,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;aACjK;YACD,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,cAAc;QACxB,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,EAAE;YAC9B,OAAO;SACR;QACD,IAAI,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;QACxH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QAC7K,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC1B,IAAI,CAAC,WAAW,CAAC,IAAI,CACnB;gBACE,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,uFAAuF;gBACvF,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC;aACxD,CACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,QAAQ;QACvB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACrB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,YAAY,CAAC,MAAM;QACjB,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,iBAAiB,IAAI,MAAM,EAAE;YACnE,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC;SACjC;aAAM;YACL,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;YAC3B,IAAI,MAAM,CAAC,iBAAiB,KAAK,KAAK;gBACpC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC;iBACrB,IAAI,MAAM,CAAC,iBAAiB,KAAK,IAAI;gBACxC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC;SAC3B;QACD,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,MAAM,CAAC,kBAAkB,IAAI,MAAM,EAAE;YACrE,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC;SAClC;aAAM;YACL,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC;YAC5B,IAAI,MAAM,CAAC,kBAAkB,KAAK,KAAK;gBACrC,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC;iBACtB,IAAI,MAAM,CAAC,kBAAkB,KAAK,IAAI;gBACzC,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC;SAC5B;QACD,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe,IAAI,MAAM,EAAE;YAC/D,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC;SAC/B;aAAM;YACL,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;YACzB,IAAI,MAAM,CAAC,eAAe,KAAK,KAAK;gBAClC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;iBACnB,IAAI,MAAM,CAAC,eAAe,KAAK,IAAI;gBACtC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;SACzB;IACH,CAAC;IAGD,UAAU;QACR,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC3B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;SAClD;QACD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;SAC/C;QAED,IAAI,IAAI,CAAC,iBAAiB,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC/E,IAAI,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE;gBAC5I,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;aACnF;SACF;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4EAAyB,EAAE;gBAC1C,IAAI,EAAE;oBACJ,aAAa,EAAE,IAAI,CAAC,aAAa;iBAClC;aACF,CAAC,CAAC;YACH,OAAO;SACR;QAED,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,EAAE;YAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC;YACrG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YACxD,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,iBAAiB,CAAC,CAAC,aAAa,CAAC;YAC/F,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;SACjK;QACD,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,QAAQ;IACR,kBAAkB;QAChB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;YACrC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;SAC7D;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4EAAyB,EAAE;gBAC1C,IAAI,EAAE;oBACJ,aAAa,EAAE,IAAI,CAAC,aAAa;iBAClC;aACF,CAAC,CAAC;YACH,OAAO;SACR;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,QAAQ;IACR,aAAa;QACX,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAExB,iGAAiG;QACjG,mDAAmD;QACnD,yCAAyC;QAEzC,mCAAmC;QACnC,qDAAqD;QACrD,IAAI;QACJ,IAAI,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC;QACtG,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;SACpD;QAED,IAAI,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAClF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SAC7C;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4EAAyB,EAAE;gBAC1C,IAAI,EAAE;oBACJ,aAAa,EAAE,IAAI,CAAC,aAAa;iBAClC;aACF,CAAC,CAAC;YACH,OAAO;SACR;QACD,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,QAAQ;IACR,iBAAiB;QACf,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,oBAAoB,CAAC,UAAU,GAAG,IAAI;QACpC,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,EAAE;YAC/B,IAAI,CAAC,eAAe,GAAG;gBACrB,EAAE,EAAE,CAAC;gBACL,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa;gBAC3C,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY;gBACzC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM;gBAC7B,SAAS,EAAE,IAAI,CAAC,iBAAiB;gBACjC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;gBAC7C,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE;gBACtC,SAAS,EAAE,IAAI,CAAC,WAAW;gBAC3B,SAAS,EAAE,IAAI,CAAC,WAAW;gBAC3B,WAAW,EAAE,EAAE;gBACf,WAAW,EAAE,EAAE;gBACf,cAAc,EAAE,EAAE;gBAClB,QAAQ,EAAE,EAAE;aACb;SACF;QACD,IAAI,CAAC,oBAAoB,GAAG,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,gBAAgB,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAClJ,IAAI,CAAC,gBAAgB,CAAC,+BAA+B,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAChG,IAAI,IAAI,CAAC,IAAI,EAAE;gBACb,IAAI,CAAC,eAAe,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;gBACvD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;gBACtD,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACvD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACjC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;gBACnF,CAAC,CAAC,CAAC;gBACH,IAAI,UAAU,EAAE;oBACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yEAAuB,EAAE;wBACxC,IAAI,EAAE;4BACJ,OAAO,EAAE,iBAAiB;yBAC3B;qBACF,CAAC,CAAC;iBACJ;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,MAAM;QACjB,IAAI,MAAM,CAAC,UAAU,EAAE;YACrB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACnC;aACI;YACH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC;YAC7F,IAAI,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE;gBAClB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;aACzC;SACF;IACH,CAAC;IAED,aAAa;IACb,UAAU,CAAC,MAAM;QACf,kGAAkG;QAClG,gCAAgC;QAChC,IAAI;QACJ,qGAAqG;QACrG,iCAAiC;QACjC,IAAI;QACJ,4FAA4F;QAC5F,8BAA8B;QAC9B,IAAI;IACN,CAAC;IAED,OAAO,CAAC,KAAa;QACnB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,QAAQ;IACR,oBAAoB;QAClB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QACrD,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,QAAQ;IACR,cAAc;QACZ,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,iBAAiB;IACT,gBAAgB;QACtB,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,KAAK,sGAAiB,CAAC,UAAU,EAAE;YACjE,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,iBAAiB,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC;SACpK;aACI;YACH,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,iBAAiB,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC;SAC/L;IACH,CAAC;IAEO,WAAW;QACjB,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACxD,OAAO,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACT,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;YACrE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;YAC5B,yBAAY,CAAC,IAAE,QAAQ,IAAG;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;CAEF;;YA3U8B,kEAAmB;YACpB,kHAA2B;YAC7B,wEAAc;YACtB,sDAAM;YACP,8DAAc;YACd,2DAAS;;AApCf,qBAAqB;IALjC,+DAAS,CAAC;QACT,QAAQ,EAAE,oBAAoB;QAC9B,4KAA8C;;KAE/C,CAAC;GACW,qBAAqB,CA0WjC;AA1WiC;;;;;;;;;;;;;ACjBlC;AAAA;AAAA,IAAY,SAIX;AAJD,WAAY,SAAS;IACjB,iDAAoC;IACpC,gCAAmB;IACnB,8BAAiB;AACrB,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB;;;;;;;;;;;;;;;;;;;ACJyD;AACN;AAMpD,IAAa,uBAAuB,GAApC,MAAa,uBAAuB;IAIhC,YACoC,IAAS;QAAT,SAAI,GAAJ,IAAI,CAAK;IACzC,CAAC;IAEL,QAAQ;QACJ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IACrC,CAAC;CACJ;;4CANQ,oDAAM,SAAC,iEAAe;;AALlB,uBAAuB;IAJnC,+DAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;QAC3B,0JAAmC;KACtC,CAAC;IAMO,6GAAM,CAAC,iEAAe,CAAC;GALnB,uBAAuB,CAWnC;AAXmC;;;;;;;;;;;;;;;;;;;ACPsB;AACN;AAMpD,IAAa,yBAAyB,GAAtC,MAAa,yBAAyB;IAIlC,YACoC,IAAS;QAAT,SAAI,GAAJ,IAAI,CAAK;QAH7C,kBAAa,GAAQ,EAAE,CAAC;IAIpB,CAAC;IAEL,QAAQ;QACJ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;IACjD,CAAC;CACJ;;4CANQ,oDAAM,SAAC,iEAAe;;AALlB,yBAAyB;IAJrC,+DAAS,CAAC;QACP,QAAQ,EAAE,mBAAmB;QAC7B,8JAAqC;KACxC,CAAC;IAMO,6GAAM,CAAC,iEAAe,CAAC;GALnB,yBAAyB,CAWrC;AAXqC;;;;;;;;;;;;;;;;;;;;ACPY;AACA;AACG;AAMrD,IAAa,eAAe,GAA5B,MAAa,eAAe;IA4B1B,YAAoB,aAA4B,EAAS,OAA4B;QAAjE,kBAAa,GAAb,aAAa,CAAe;QAAS,YAAO,GAAP,OAAO,CAAqB;QAjBrF,sBAAiB,GAAG,KAAK,CAAC;QAC1B,4BAAuB,GAAG,KAAK,CAAC;QAOhC,UAAK,GAAG,IAAI,CAAC;QACb,gBAAW,GAAG,IAAI,CAAC;QAMnB,UAAK,GAAG,KAAK,CAAC;QACd,WAAM,GAAG,KAAK,CAAC;QAEb,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAClE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC,CAAC;QACzE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC1C;IACH,CAAC;IAED,UAAU,CAAC,KAAK;QACd,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC;QACvC,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,EAAE;YACnC,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACpB;QACD,IAAI,IAAI,CAAC,iBAAiB,KAAK,KAAK,EAAE;YACpC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACnB;IACH,CAAC;IAED,gBAAgB,CAAC,KAAK;QACpB,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC,OAAO,CAAC;QAC7C,IAAI,IAAI,CAAC,uBAAuB,KAAK,IAAI,EAAE;YACzC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC1B;QACD,IAAI,IAAI,CAAC,uBAAuB,KAAK,KAAK,EAAE;YAC1C,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SACzB;IACH,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE;YACpF,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,+BAA+B,CAAC;YAChD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,OAAO;SACR;QACD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE;YAClC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7B,IAAI,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC1E,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;oBAE1B,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,EAAE;wBACvC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;qBACtB;yBACI;wBACH,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;qBACtB;iBACF;aACF;SACF;QACD,MAAM,IAAI,GAAG;YACX,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,aAAa,EAAE,CAAC;YAChB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,KAAK,EAAE,IAAI,CAAC,UAAU;YACtB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,IAAI,CAAC,WAAW;SAC5B,CAAC;QACF,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;YAC3D,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;gBAEhC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBACvD,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;wBACvC,IAAI,CAAC,QAAQ,GAAG,sBAAsB,CAAC;wBACvC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;wBACnB,IAAI,CAAC,cAAc,EAAE,CAAC;qBACvB;yBAAM;qBAEN;gBACH,CAAC,CAAC,CAAC;aACJ;SAEF;aAEI;YAEH,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACvD,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;oBACvC,IAAI,CAAC,QAAQ,GAAG,oBAAoB,CAAC;oBACrC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;oBAEnB,IAAI,CAAC,cAAc,EAAE,CAAC;iBACvB;qBAAM;iBACN;YACH,CAAC,CAAC,CAAC;SACJ;IAEH,CAAC;IAED,oBAAoB;QAClB,IAAI,IAAI,CAAC,WAAW,KAAK,EAAE,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE;YACvF,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,GAAG,GAAG,+BAA+B,CAAC;YAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,OAAO;SACR;QACD,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,EAAE;YACxC,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;gBACnC,IAAI,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;gBAChF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;oBAE3B,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,EAAE;wBACxC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;qBAC5B;yBACI;wBACH,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;qBAC5B;iBACF;aACF;SACF;QACD,MAAM,IAAI,GAAG;YACX,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,aAAa,EAAE,CAAC;YAChB,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,WAAW,EAAE,IAAI,CAAC,iBAAiB;YACnC,SAAS,EAAE,IAAI,CAAC,WAAW;SAC5B,CAAC;QACF,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YACzD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;gBAEhC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBACvD,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;wBACvC,IAAI,CAAC,GAAG,GAAG,sBAAsB,CAAC;wBAClC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;wBACpB,IAAI,CAAC,eAAe,EAAE,CAAC;qBACxB;yBAAM;qBAEN;gBACH,CAAC,CAAC,CAAC;aACJ;SACF;aAAM;YAEL,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACvD,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;oBACvC,IAAI,CAAC,GAAG,GAAG,oBAAoB;oBAC/B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;iBAErB;qBAAM;iBAEN;gBACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,CAAC,CAAC,CAAC;SACJ;IAEH,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACtE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;YACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC9C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;gBAC/C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC1C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;gBACvD,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,EAAE;oBACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;iBACpB;qBAAM;oBACL,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;iBACnB;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe;QACb,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACtE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;YAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;gBACzB,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;gBACpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;gBACtD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC/C,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;gBACnE,IAAI,IAAI,CAAC,uBAAuB,KAAK,IAAI,EAAE;oBACzC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;iBAC1B;qBAAM;oBACL,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;iBACzB;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,KAAU;QACjB;QACE,+CAA+C;QAC/C,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAChD,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,gBAAgB;YACpE,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,gBAAgB;YACpE,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,gBAAgB;YACpE,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,gBAAgB;YACpE,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,cAAc;YAClE,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,cAAc;YAClE,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,cAAc;YAClE,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,cAAc;YAClE,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAE,yBAAyB;UACvE;YACA,OAAO;SACR;QAED,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,IAAI,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,IAAI,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,EAAE;YACjH,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;IAIH,CAAC;IAED,GAAG,CAAC,KAAK;QACP,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE;YAC7C,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;SACtB;QACD,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE;YAC9C,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;SACvB;IACH,CAAC;CAEF;;YAhPoC,6DAAa;YAAkB,kEAAmB;;AA5B1E,eAAe;IAJ3B,+DAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,oJAAsC;KACvC,CAAC;GACW,eAAe,CA4Q3B;AA5Q2B;;;;;;;;;;;;;;;;;;;ACRqB;AACM;AAGvD,MAAM,MAAM,GAAW,EAAE,CAAC;AAM1B,IAAa,gBAAgB,GAA7B,MAAa,gBAAgB;CAG5B;AAHY,gBAAgB;IAJ5B,8DAAQ,CAAC;QACR,OAAO,EAAE,CAAC,4DAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,EAAE,CAAC,4DAAY,CAAC;KACxB,CAAC;GACW,gBAAgB,CAG5B;AAH4B;;;;;;;;;;;;ACV7B,6DAA6D,iBAAiB,GAAG,0BAA0B,uCAAuC,kBAAkB,GAAG,+CAA+C,kBAAkB,2BAA2B,GAAG,oBAAoB,iBAAiB,kBAAkB,wBAAwB,GAAG,6BAA6B,sBAAsB,mBAAmB,KAAK,GAAG,iBAAiB,mBAAmB,GAAG,6BAA6B,mBAAmB,sBAAsB,aAAa,cAAc,iBAAiB,6BAA6B,KAAK,2CAA2C,wBAAwB,KAAK,GAAG,wDAAwD,mBAAmB,GAAG,iBAAiB,mBAAmB,iBAAiB,yBAAyB,GAAG,MAAM,gBAAgB,mCAAmC,qBAAqB,eAAe,GAAG,cAAc,gBAAgB,mBAAmB,mCAAmC,iBAAiB,uBAAuB,eAAe,GAAG,mCAAmC,kBAAkB,uBAAuB,iBAAiB,GAAG,sBAAsB,mBAAmB,GAAG,4BAA4B,qBAAqB,2BAA2B,oBAAoB,mBAAmB,qBAAqB,sBAAsB,uBAAuB,uBAAuB,iBAAiB,iBAAiB,GAAG,8BAA8B,kBAAkB,gBAAgB,qBAAqB,wBAAwB,uBAAuB,WAAW,GAAG,oCAAoC,2BAA2B,cAAc,kBAAkB,mBAAmB,iBAAiB,uBAAuB,WAAW,iBAAiB,eAAe,GAAG,mDAAmD,oBAAoB,GAAG,qDAAqD,mBAAmB,oBAAoB,qBAAqB,gBAAgB,GAAG,6BAA6B,QAAQ,kBAAkB,KAAK,kBAAkB,kBAAkB,KAAK,gCAAgC,qBAAqB,mBAAmB,KAAK,kCAAkC,kBAAkB,uBAAuB,KAAK,wCAAwC,6BAA6B,gBAAgB,oBAAoB,qBAAqB,mBAAmB,yBAAyB,aAAa,mBAAmB,KAAK,GAAG,gBAAgB,qBAAqB,oBAAoB,KAAK,GAAG,gBAAgB,WAAW,iBAAiB,kBAAkB,KAAK,mBAAmB,+BAA+B,KAAK,GAAG,gBAAgB,sBAAsB,+BAA+B,KAAK,GAAG,iBAAiB,qBAAqB,qBAAqB,KAAK,GAAG,WAAW,oCAAoC,GAAG,6CAA6C,+6W;;;;;;;;;;;;;;;;;;;ACA7yF;AACe;AACZ;AAQrD,IAAa,YAAY,GAAzB,MAAa,YAAY;IASvB,YAAoB,MAAc,EAAU,YAA4B,EAAU,OAA4B;QAA1F,WAAM,GAAN,MAAM,CAAQ;QAAU,iBAAY,GAAZ,YAAY,CAAgB;QAAU,YAAO,GAAP,OAAO,CAAqB;QAR9G,aAAQ,GAAG,KAAK,CAAC;QACjB,UAAK,GAAG,aAAa,CAAC;QACtB,mBAAc,GAAG,IAAI,CAAC;QACtB,UAAK,GAAG,CAAC,CAAC;QACV,kBAAa,GAAG,KAAK,CAAC;QACtB,cAAS,GAAG,EAAE,CAAC;QACf,eAAU,GAAG,EAAE,CAAC;QAGd,IAAI;IACN,CAAC;IACD,QAAQ;QACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,CAAC,KAAK;QACX,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;YACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;SAChB;IAEH,CAAC;CAGF;;YAtB6B,sDAAM;YAAwB,8DAAc;YAAmB,kEAAmB;;AATnG,YAAY;IANxB,+DAAS,CAAC;QACT,QAAQ,EAAE,UAAU;QACpB,uIAAmC;;KAGpC,CAAC;GACW,YAAY,CA+BxB;AA/BwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACViC;AACjB;AACE;AAC2C;AAC9B;AACT;AACQ;AACwB;AACpC;AAQhB;AACuC;AACqB;AACI;AACZ;AACY;AACnC;AACwD;AACiB;AACtD;AACnB;AAC2B;AACI;AAClC;AACS;AACvB;AAEvC,kCAAkC;AACuC;AAC8B;AACU;AACA;AACmB;AAC1E;AAChB;AAC1C,gDAAgD;AACH;AACc;AAEkB;AACqB;AACH;AACH;AACS;AACZ;AAC1B;AACM;AACgB;AACK;AACrC;AACmB;AAC4C;AACO;AAE/D;AACY;AACM;AAC3B;AACoC;AACzC;AAC0B;AACvB;AACqD;AACxB;AACiE;AAChF;AACN;AACyB;AACH;AACM;AACV;AAC+B;AACpB;AACqB;AACjC;AACG;AACX;AACP;AACC;AAC5D,kDAAkD;AAClD,wEAAkB,CAAC,MAAM,CAAC,0CAAY,EAAE,8DAAM,EAAE,2EAAW,CAAC,CAAC;AAE7D,MAAM,SAAS,GAAW;IACxB,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,2DAAY,EAAE;IACjD,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,2EAAgB,EAAE;IAC/C,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,4EAAgB,EAAE;IAChD,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,+EAAiB,EAAE;IAClD,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,4EAAgB,EAAE;IAChD,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,+EAAiB,EAAE;IAClD,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,sEAAc,EAAE;IAC3C,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,uFAAmB,EAAE;IACtD,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,mEAAa,EAAE;IAC1C,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,yEAAe,EAAE;IAC9C,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,4EAAgB,EAAE;IAChD,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,mGAAuB,EAAE;IACtD,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,gGAAsB,EAAE;IAC5D,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,gGAAsB,EAAE;IAC5D,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,oHAA4B,EAAE;IACjE,EAAE,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,+GAA2B,EAAE;IACrE,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,4GAA0B,EAAE;IAClE,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,yGAAyB,EAAE;IAClE,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,kHAA4B,EAAE;IACxE,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,sGAAwB,EAAE;IAChE,uDAAuD;IACvD,EAAE,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,kFAAkB,EAAE;IAC5D,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,4EAAgB,EAAE;IAChD,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,sEAAc,EAAE;IAC5C,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,uGAAyB,EAAE;IAClE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,yEAAe,EAAE;IAC9C,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,qFAAmB,EAAE;IACtD,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,qFAAmB,EAAE;IACtD,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,wFAAoB,EAAE;IACxD,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,sEAAc,EAAE;IAC5C,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,4EAAgB,EAAE;IAChD,EAAE,IAAI,EAAE,wBAAwB,EAAE,SAAS,EAAE,uHAA6B,EAAE;IAC5E,EAAE,IAAI,EAAE,4BAA4B,EAAE,SAAS,EAAE,+FAAqB,EAAE;IACxE,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,2FAAqB,EAAE;IAC1D,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,uFAAmB,EAAE;CAExD,CAAC;AAEK,MAAM,oBAAoB,GAC/B;IACE,CAAC,wEAAY,CAAC,QAAQ,CAAC;CACxB,CAAC;AAuIJ,IAAa,SAAS,GAAtB,MAAa,SAAS;CAAI;AAAb,SAAS;IApIrB,8DAAQ,CAAC;QACR,YAAY,EAAE;YACZ,2DAAY;YACZ,4EAAgB;YAChB,+EAAiB;YACjB,sEAAc;YACd,+EAAiB;YACjB,2EAAgB;YAChB,iFAAsB;YACtB,kFAAsB;YACtB,qFAAuB;YACvB,qFAAuB;YACvB,4EAAoB;YACpB,4EAAgB;YAChB,kFAAsB;YACtB,mFAAuB;YACvB,uFAAmB;YACnB,6FAAyB;YACzB,8FAA0B;YAC1B,mEAAa;YACb,yEAAmB;YACnB,yEAAe,EAAE,+EAAqB,EAAE,4EAAgB;YACxD,4EAAgB,EAAE,kFAAsB;YACxC,oDAAQ;YACR,mGAAuB;YACvB,2FAAe;YACf,gGAAsB;YACtB,gGAAsB;YACtB,sGAA4B;YAC5B,sGAA4B;YAC5B,oHAA4B;YAC5B,mHAA2B;YAC3B,+GAA2B;YAC3B,4GAA0B;YAC1B,yGAAyB;YACzB,kHAA4B;YAC5B,sGAAwB;YACxB,kFAAkB;YAClB,4EAAgB;YAChB,sEAAc;YACd,kFAA0B;YAC1B,mGAAuB;YACvB,sEAAc;YACd,uFAA+B;YAC/B,qFAAmB;YACnB,kFAA0B;YAC1B,uGAAyB;YACzB,sGAAwB;YACxB,yGAAyB;YACzB,6GAA6B,EAAE,yEAAe;YAC9C,qFAAmB;YACnB,2FAAyB;YACzB,0DAAS;YACT,qFAAmB;YACnB,wFAAoB;YACpB,6FAAyB;YACzB,sEAAc;YACd,2EAAmB;YACnB,uHAA6B;YAC7B,4EAAgB;YAChB,sEAAsB;YACtB,+FAAqB;YACrB,4FAAyB;YACzB,kGAAsB;YACtB,wFAAuB;YACvB,uHAA6B;YAC7B,2FAAqB;YACrB,iGAA2B;YAC3B,uFAAmB;YACnB,6HAAmC;YACnC,0FAAe;SAChB;QACD,OAAO,EAAE;YACP,+DAAU,CAAC,OAAO,CAAC;gBACjB,QAAQ,EAAE,wEAAY,CAAC,QAAQ;gBAC/B,SAAS,EAAE,oCAAoC,GAAG,wEAAY,CAAC,QAAQ;gBACvE,oBAAoB,EAAE,oBAAoB;gBAC1C,WAAW,EAAE,wEAAY,CAAC,WAAW;aACtC,CAAC;YACF,4EAAkB,CAAC,OAAO,EAAE;YAC5B,uEAAa;YACb,oEAAgB;YAChB,wDAAU;YACV,4DAAY,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,wDAAU;YAC3C,+DAAe;YACf,gEAAa,EAAE,4FAAuB,EAAE,gEAAa,EAAE,gEAAa;YACpE,2DAAW,EAAE,mEAAmB,EAAE,qEAAkB,EAAE,kEAAe;YACrE,iEAAc,EAAE,sEAAgB,EAAE,kEAAe,EAAE,kEAAe;YAClE,iEAAc,EAAE,sEAAmB,EAAE,sEAAmB,EAAE,kEAAe,EAAE,uEAAoB;YAC/F,iEAAc,EAAE,qEAAkB,EAAE,sEAAc,EAAE,mEAAgB,EAAE,oEAAiB,EAAE,qEAAkB;YAC3G,mEAAmB,EAAE,wEAAkB,EAAE,wDAAY,EAAE,mEAAmB,CAAC,OAAO,EAAE;YACpF,gEAAa,EAAE,wDAAc,EAAE,mEAAgB,EAAE,iEAAY,EAAE,sEAAgB;YAC/E,kEAAe,EAAE,gEAAa;SAC/B;QACD,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,iEAAgB,EAAE,QAAQ,EAAE,qEAAoB,EAAE;YACvE,gEAAU;YACV,yEAAe;YACf;gBACE,OAAO,EAAE,uEAAiB,EAAE,QAAQ,EAAE,oEAAe,EAAE,KAAK,EAAE,IAAI;aACnE,CAAC;QACJ,SAAS,EAAE,CAAC,sEAAc,CAAC;QAC3B,eAAe,EAAE;YACf,iFAAsB;YACtB,kFAAsB;YACtB,qFAAuB;YACvB,qFAAuB;YACvB,4EAAoB;YACpB,kFAAsB;YACtB,mFAAuB;YACvB,6FAAyB;YACzB,8FAA0B;YAC1B,yEAAmB;YACnB,+EAAqB;YACrB,kFAAsB;YACtB,2FAAe;YACf,sGAA4B;YAC5B,sGAA4B;YAC5B,mHAA2B;YAC3B,uFAA+B;YAC/B,kFAA0B;YAC1B,sGAAwB;YACxB,6GAA6B;YAC7B,2FAAyB;YACzB,6FAAyB;YACzB,2EAAmB;YACnB,sEAAsB;YACtB,4FAAyB;YACzB,wFAAuB;YACvB,iGAA2B;YAC3B,6HAAmC;SACpC;KACF,CAAC;GACW,SAAS,CAAI;AAAJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzQ2D;AAC/B;AACb;AAC+C;AACvC;AACH;AAEW;AACoC;AACjB;AACzB;AAO/C,IAAa,aAAa,GAA1B,MAAa,aAAa;IAgHxB,YAAoB,IAAU,EAAU,aAA4B,EAAS,MAAiB,EAAU,OAA4B,EAAU,QAAkB;QAA5I,SAAI,GAAJ,IAAI,CAAM;QAAU,kBAAa,GAAb,aAAa,CAAe;QAAS,WAAM,GAAN,MAAM,CAAW;QAAU,YAAO,GAAP,OAAO,CAAqB;QAAU,aAAQ,GAAR,QAAQ,CAAU;QA7GhK,cAAS,GAAG,KAAK,CAAC;QAClB,WAAM,GAAG,KAAK,CAAC;QAwBf,iBAAY,GAAG,EAAE,CAAC;QAClB,aAAQ,GAAG,EAAE,CAAC;QAGd,wBAAmB,GAAG,EAAE;QAGxB,eAAU,GAAG,KAAK,CAAC;QAEnB,YAAO,GAAG,EAAE,CAAC;QACb,gBAAW,GAAG,EAAE,CAAC;QACjB,kBAAa,GAAG,EAAE,CAAC;QACnB,gBAAW,GAAG,EAAE,CAAC;QAKjB,eAAU,GAAW,EAAE,CAAC;QACxB,eAAU,GAAG,EAAE,CAAC;QAChB,WAAM,GAAG,EAAE,CAAC;QACZ,UAAK,GAAG,EAAE,CAAC;QACX,gBAAW,GAAG,EAAE,CAAC;QACjB,gBAAW,GAAG,KAAK,CAAC;QACpB,iBAAY,GAAG,KAAK,CAAC;QAMrB,kBAAa,GAAG,KAAK,CAAC;QAGtB,eAAU,GAAG,EAAE,CAAC;QAEhB,kBAAa,GAAG,EAAE,CAAC;QAEnB,gBAAW,GAAG,EAAE,CAAC;QACjB,WAAM,GAAY,KAAK,CAAC;QACxB,WAAM,GAAG,EAAE,CAAC;QAEZ,UAAK,GAAG,IAAI,CAAC;QAEb,cAAS,GAAG,EAAE,CAAC;QACf,iBAAY,GAAG,EAAE,CAAC;QAClB,gBAAW,GAAG,KAAK,CAAC;QACpB,aAAQ,GAAG,KAAK,CAAC;QAIjB,eAAU,GAAG,KAAK,CAAC;QACnB,eAAU,GAAG,EAAE,CAAC;QAEhB,cAAS,GAAG,KAAK,CAAC;QAClB,kBAAa,GAAG,KAAK,CAAC;QACtB,kBAAa,GAAG,KAAK,CAAC;QAEtB,SAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAKlB,gBAAW,GAAG,IAAI,CAAC;QACnB,kBAAa,GAAG,KAAK,CAAC;QAMtB,qBAAgB,GAAG,IAAI,CAAC;QACxB,sBAAiB,GAAG,KAAK,CAAC;QAG1B,oBAAe,GAAG,EAAE,CAAC;QAOrB,cAAS,GAAG,aAAa,CAAC;QAC1B,iBAAY,GAAG,CAAC,CAAC;QACjB,kBAAa,GAAG,KAAK,CAAC;QACtB,gBAAW,GAAG,IAAI,CAAC;QACnB,gBAAW,GAAG,IAAI,IAAI,EAAE,CAAC;QAEvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,SAAS,EAAE,CAAC;IAEnB,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,CAAC;QAClG,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC1C;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;QAGf,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;IAC3B,CAAC;IAID,cAAc;QACZ,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;QACvB,IAAI,IAAI,CAAC,YAAY,GAAG,EAAE,EAAE;YAC1B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC1B;aAAM;YACL,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SACzB;IACH,CAAC;IACD,SAAS;QACP,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,UAAU;QACR,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,UAAU;QACR,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC;QAC1B,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,SAAS,EAAE;YACvC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;SACvB;IACH,CAAC;IAED,QAAQ,CAAC,KAAK;QACZ,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;YAChC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAC9B,IAAI,CAAC,QAAQ,GAAG,uBAAuB,CAAC;YACxC,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC/B,CAAC,EAAE,IAAI,CAAC,CAAC;SAEV;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC3B;aAAM;YACL,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;SACvB;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC;QAExB,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACrC,IAAI,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;QAElC,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;YACtB,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC;YACrD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC;SAE/C;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC;SACjC;QAED,IAAI;YACF,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;gBAEpD,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACjB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;wBACtB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;wBAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;qBACzC;iBACF;qBAAM;oBACL,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;oBAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;iBACzC;aACF;SACF;QAAC,OAAO,KAAK,EAAE,GAAG;IACrB,CAAC;IAED,cAAc;QACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;gBACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,MAAM;aACP;iBAAM;gBACL,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;aAC5B;SACF;IAEH,CAAC;IAED,IAAI,CAAC,QAAQ;QACX,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,sBAAsB;QAClD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAGD,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;YACjC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAC9B,IAAI,CAAC,QAAQ,GAAG,uBAAuB,CAAC;YACxC,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAE/B,CAAC,EAAE,KAAK,CAAC,CAAC;SAEX;QACD,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;YAElB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACjD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACnC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;gBAClC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;aAC5B;iBACI;gBACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;SAEF;aAAM;YACL,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SAEzB;QACD,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YAClC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC1B;IAEH,CAAC;IAED,YAAY;QACV,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAExD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC3C,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAC5C,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YACnD,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;YACvD,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAChD,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YAC1C,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAC5C,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YACpD,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;YAG1F,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAE7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;YACzC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAEhC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAEhC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACvC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YAElC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAE3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;YACvC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;YACrC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;SAGhC;QAED,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,GAAG,cAAc,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,EAAE,oBAAoB,EAAE,2DAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IACvS,CAAC;IACD,KAAK;QACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;IAC3B,CAAC;IACD,MAAM;QACJ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IACD,OAAO;QAEL,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC7D,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YAExB,IAAI,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;YACjC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;iBACI;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC5D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAE3B,sFAAsF;gBACtF,oIAAoI;gBACpI,IAAI;gBACJ,SAAS;gBACT,OAAO;gBACP,8EAA8E;gBAC9E,IAAI;gBAEJ,IAAI,IAAI,CAAC,eAAe,EAAE;oBACxB,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,UAAU,EAAE;wBAC9E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;qBAClH;yBACI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,IAAI,EAAE;wBAC7E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;qBACvF;yBACI;wBACH,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;wBACrE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;qBACtB;iBACF;gBAGD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBAExB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC9B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;oBACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;iBAC3B;qBACI;oBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAC5D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACrC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAErC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;oBACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;oBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;iBAE5B;aAGF;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC/C,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;gBACrB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;gBAEjB,4DAA4D;gBAE5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAE7C,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;wBAE7D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;qBACxC;iBACF;gBACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;gBAClD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;gBAC1C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU;oBACnC,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ;oBACvC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;iBAChC,CAAC,CAAC;aACJ;YACD,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;gBAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aAChC;YAAA,CAAC;YACF,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;IAGL,CAAC;IACD,iBAAiB,CAAC,UAAU;QAE1B,OAAO,IAAI,CAAC,WAAW,GAAG,UAAU,EAAE;YACpC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;SAC1C;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClF,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;gBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SAC3C;IACH,CAAC;IACD,eAAe;QACb,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;YACrD,IAAI,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7E,IAAI,eAAe,CAAC,MAAM,IAAI,CAAC,EAAE;gBAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;SACF;IACH,CAAC;IACD,UAAU;QACR,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC;QAEhC,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CACjC,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CACL,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;mBAC7G,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;mBACxG,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;mBAChH,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;mBAC9G,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;mBAChH,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;mBAC1G,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;mBAClH,CAAC,IAAI,CAAC,oBAAoB,KAAK,IAAI,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;mBAClI,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACrF,CAAC,CAEF,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;YAC7B,sBAAsB;YACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC1B;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC;YAChC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YACrC,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;aAC1C;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,aAAa,EAAE;gBAEtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aACzC;YACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;SAE5B;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;YAChC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;aAC1C;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,IAAI,CAAC,aAAa;oBACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;YAED,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IAED,IAAI,CAAC,KAA4B,EAAE,QAAgB;QACjD,IAAI,KAAK,CAAC,iBAAiB,KAAK,KAAK,CAAC,SAAS,EAAE;YAC/C,8EAAe,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;SAEhF;aAAM;YACL,gFAAiB,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAC5C,KAAK,CAAC,SAAS,CAAC,IAAI,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,YAAY,CAAC,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;SAElD;QACD,kBAAkB;IACpB,CAAC;IAED,WAAW,CAAC,QAAa,EAAE,QAAgB;QACzC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,EAAE,EAAE;YACvE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC;SAE7B;QACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAEvB,MAAM,WAAW,GAAG;gBAClB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;gBAChC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU;gBAClC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC/B,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU;gBAClC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa;gBACxC,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,kBAAkB;gBAClD,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY;gBACtC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM;gBAC1B,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU;gBAClC,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO;gBAC5B,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW;gBACpC,SAAS,EAAE,IAAI,CAAC,WAAW;gBAC3B,SAAS,EAAE,IAAI,CAAC,WAAW;gBAC3B,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;aACjC,CAAC;YAEF,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACjE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;oBACvC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;oBAChB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;oBACrB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;oBACjB,IAAI,CAAC,OAAO,EAAE,CAAC;iBAChB;YACH,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,EAAE,CAAC;SAEhB;IACH,CAAC;IACD,UAAU;QACR,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAEhE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,WAAW;QACT,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAEjE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,kBAAkB;QAChB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAE7E,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;IACD,aAAa;QACX,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACrD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IACD,WAAW;QACT,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACjE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAE7B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,cAAc;QACZ,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACtD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IACD,SAAS;QACP,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACjD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,WAAW;QACT,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACnD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC7D,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YACxB,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,UAAU,EAAE;oBAC9E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;iBACnG;qBACI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,IAAI,EAAE;oBAC7E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;oBAC/I,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;iBAC3C;qBACI;oBACH,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;iBACzB;aACF;QAEH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,WAAW;QACT,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACjE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,UAAU;QACR,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAChE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;YAC3B,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACnC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;YAE3D,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;gBAE/E,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;gBACtE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;aAC9B;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,UAAU,CAAC,GAAW;QAEpB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE;YACtD,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,GAAG,GAAG,KAAK,GAAG,KAAK;SAC1B,CAAC,CAAC;QACH,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACzD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC3E,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAEvD,IAAI,GAAG,KAAK,MAAM,EAAE;YAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7E,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,eAAe,CAAC;YAC1D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACzD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvD,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACzD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACjD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrD,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACzD,SAAS,CAAC,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YACnD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC3D,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACjD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAErD,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACvE,SAAS,CAAC,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YAC/D,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvD,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACvE,SAAS,CAAC,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YAC/D,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAE3D,6DAA6D;YAC7D,4EAA4E;SAG7E;QAED,IAAI,GAAG,KAAK,QAAQ,EAAE;YACpB,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC3D,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;SAE5D;QACD,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;QACD,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;YAC/B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;YAC9B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;gBAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;iBACI;gBACH,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;gBACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;gBACrB,IAAI,CAAC,OAAO,EAAE,CAAC;aAChB;YAED,IAAI,GAAG,IAAI,uBAAuB,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;gBAE5D,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;YAED,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;gBAEhC,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,IAAI,GAAG,KAAK,KAAK,EAAE;oBACjB,SAAS,GAAG,oBAAoB,CAAC;iBAElC;qBACI;oBAEH,SAAS,GAAG,sBAAsB,CAAC;oBAEnC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;iBAC1B;gBACD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBACxB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;gBACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;gBACrB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE;oBACzD,UAAU,EAAE,yBAAyB;oBACrC,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,KAAK;iBAEhC,CAAC,CAAC;gBAGH,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,UAAU,EAAE,CAAC;oBAClB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,CAAC,EAAE,GAAG,CAAC,CAAC;gBAER,YAAY,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBAC7C,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;oBAC/B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;oBACvB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;oBACnB,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;oBAC9B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;oBAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;oBACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;oBAErB,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;wBAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;qBACnB;yBACI;wBAEH,IAAI,CAAC,UAAU,EAAE,CAAC;wBAClB,IAAI,CAAC,OAAO,EAAE,CAAC;qBAChB;oBAED,oBAAoB;oBACpB,sBAAsB;oBACtB,kBAAkB;gBACpB,CAAC,CAAC,CAAC;aAIJ;QAEH,CAAC,CAAC,CAAC;IACL,CAAC;IAID,eAAe,CAAC,SAAiB;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,EAAE;gBACtF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9C;SACF;IACH,CAAC;IAGD,mBAAmB,CAAC,aAAqB;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxD,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,aAAa,KAAK,aAAa,EAAE;gBAC/D,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5D;SACF;IACH,CAAC;IAED,WAAW,CAAC,SAAiB;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,EAAE;gBAC5C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;aACtC;SACF;IACH,CAAC;IAED,QAAQ,CAAC,OAAO,EAAE,IAAI;QACpB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,SAAS,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5G,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,EAAE,EAAE;gBACvF,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC;aACrC;YACD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;YAChE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YACnD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YACrD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACzC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAE/C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YACvD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YACjD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/C,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,EAAE;gBACxC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC;aACtC;YACD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;SAClD;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE;gBAC1D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;aAE/C;SAEF;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;YACtD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;YACrC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;SAChC;aAAM;YACL,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;YACxC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;SACjC;QAED,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,CAAC,KAAK;QACX,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;IAC/B,CAAC;IAGD,UAAU,CAAC,GAAW;QACpB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IACD,aAAa,CAAC,GAAW;QACvB,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;QACxE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;SACzC;QAGD,IAAI,GAAG,KAAK,QAAQ,EAAE;YACpB;gBACE,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,GAAG,EAAE;oBAC5C,IAAI,CAAC,YAAY,GAAG,uBAAuB,CAAC;oBAC5C,OAAO;iBACR;qBACI;oBACH,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;oBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;iBAC5B;gBAGD,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;oBACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;iBAC/C;gBAGD,MAAM,IAAI,GAAG;oBACX,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,WAAW,EAAE,IAAI,CAAC,YAAY;oBAC9B,SAAS,EAAE,IAAI,CAAC,WAAW;iBAE5B,CAAC;gBACF,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBAClF,IAAI,IAAI,CAAC,EAAE,EAAE;wBACX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;wBACtB,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;wBACzC,IAAI,CAAC,SAAS,EAAE,CAAC;wBACjB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;wBAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;wBACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;wBACrB,IAAI,CAAC,OAAO,EAAE,CAAC;wBACf,IAAI,CAAC,WAAW,EAAE,CAAC;wBACnB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;wBACtB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;wBACvB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;qBACrB;gBAGH,CAAC,CAAC,CAAC;aACJ;SAEF;IACH,CAAC;IAGD,QAAQ;QAEN,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SACvC;IACH,CAAC;IAED,UAAU,CAAC,OAAO;QAChB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE;YACtD,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,+CAA+C,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI;SAExF,CAAC,CAAC;QACH,2BAA2B;QAE3B,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,MAAM,EAAE;gBACV,0BAA0B;gBAC1B,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBAE1E,IAAI,IAAI,CAAC,EAAE,EAAE;wBACX,IAAI,CAAC,QAAQ,EAAE,CAAC;wBAChB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;wBACvB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;qBACzC;oBACD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;oBACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;oBACxB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB,CAAC,UAAU;QAC3B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,iCAAiC;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,EAAE;gBAChD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;aACjD;SACF;IACH,CAAC;CAEF;;YAv5B2B,kDAAI;YAAyB,6DAAa;YAAiB,kEAAS;YAAmB,kEAAmB;YAAoB,wDAAQ;;AANxH;IAAvC,+DAAS,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;6CAAoB;AA1GhD,aAAa;IANzB,+DAAS,CAAC;QACT,QAAQ,EAAE,aAAa;QACvB,8IAAoC;QACpC,uCAAuC;QACvC,SAAS,EAAE,CAAC,6DAAa,EAAE,wDAAQ,CAAC;KACrC,CAAC;GACW,aAAa,CAugCzB;AAvgCyB;AA8gC1B,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;IAoD9B,YACS,SAA4C,EACnB,IAAS,EAAS,aAA4B,EAAU,QAAkB;QADnG,cAAS,GAAT,SAAS,CAAmC;QACnB,SAAI,GAAJ,IAAI,CAAK;QAAS,kBAAa,GAAb,aAAa,CAAe;QAAU,aAAQ,GAAR,QAAQ,CAAU;QAnD5G,cAAS,GAAG,KAAK,CAAC;QAClB,WAAM,GAAG,KAAK,CAAC;QAWf,aAAQ,GAAG,EAAE,CAAC;QAad,iBAAY,GAAG,EAAE,CAAC;QAClB,aAAQ,GAAG,EAAE,CAAC;QACd,wBAAmB,GAAG,EAAE,CAAC;QAEzB,gBAAW,GAAG,IAAI,0DAAW,EAAE,CAAC;QAIhC,cAAS,GAAG,EAAE,CAAC;QACf,iBAAY,GAAG,EAAE,CAAC;QAClB,gBAAW,GAAG,KAAK,CAAC;QACpB,aAAQ,GAAG,KAAK,CAAC;QAKjB,sBAAiB,GAAG,KAAK,CAAC;QAE1B,oBAAe,GAAG,EAAE,CAAC;QACrB,sBAAiB,GAAG,EAAE,CAAC;QAEvB,gBAAW,GAAG,IAAI,IAAI,EAAE,CAAC;QACzB,gBAAW,GAAG,KAAK,CAAC;QAKlB,gCAAgC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;YACnC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;aACI;YACH,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;gBACvB,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;aACpC;iBAAM;gBACL,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC;aACrC;SAEF;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC1C;IACH,CAAC;IAED,UAAU;QACR,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,OAAO;QACL,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,SAAS,GAAG,CAAC,CAAC;QAEpB,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,IAAI,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YAC3F,IAAI,CAAC,UAAU,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,KAAK,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC9E,IAAI,CAAC,QAAQ,GAAG,kCAAkC,CAAC;YACnD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;aAExB;YACD,KAAK,EAAE,CAAC;SACT;QAED,IAAI,KAAK,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,EAAE;YAClC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;gBAEvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACxB;iBAAM;gBACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACxB;SACF;aAAM;SAEN;IAIH,CAAC;IAID,UAAU;QACR,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAEhE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,MAAM,CAAC,GAAW;QAEhB,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC;SACtC;QACD,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,IAAI,IAAI,CAAC,aAAa,KAAK,EAAE,EAAE;gBACvD,IAAI,CAAC,QAAQ,GAAG,kCAAkC,CAAC;gBACnD,OAAO;aACR;SAEF;QAED,MAAM,IAAI,GAAG;YACX,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,SAAS,EAAE,IAAI,CAAC,WAAW;SAC5B,CAAC;QAEF,IAAI,GAAG,KAAK,MAAM,EAAE;YAClB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACjD,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;oBACvC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC3B,MAAM,WAAW,GAAG;wBAClB,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,UAAU,EAAE,GAAG;wBACf,QAAQ,EAAE,IAAI,CAAC,SAAS;wBACxB,UAAU,EAAE,IAAI,CAAC,UAAU;wBAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;wBACjC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB;wBAC1C,YAAY,EAAE,GAAG;wBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,UAAU,EAAE,IAAI,CAAC,UAAU;wBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,SAAS,EAAE,IAAI,CAAC,WAAW;wBAC3B,SAAS,EAAE,IAAI,CAAC,WAAW;qBAC5B,CAAC;oBAGF,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;wBACjE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;4BAEvC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;yBAC5B;6BAAM;4BACL,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;yBAC/B;oBACH,CAAC,CAAC,CAAC;iBACJ;YACH,CAAC,CAAC,CAAC;SACJ;IAEH,CAAC;IAGD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IACD,QAAQ,CAAC,KAAK;QACZ,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;IAChC,CAAC;IACD,OAAO,CAAC,KAAK;QACX,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAChD,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE;gBACpD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;aAC1C;SACF;QACD,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QAErB,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;SACtB;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,qBAAqB;IACvB,CAAC;IACD,eAAe;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAEjD,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE;gBAC5F,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9C;SACF;IACH,CAAC;IACD,QAAQ,CAAC,KAAK;QACZ,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IACD,eAAe,CAAC,KAAK;QACnB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,KAAK;IACtC,CAAC;IACD,mBAAmB;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxD,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa,EAAE;gBACpE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5D;SACF;IACH,CAAC;IAED,UAAU,CAAC,KAAK;QACd,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;IAClC,CAAC;IAED,IAAI,CAAC,KAAK;QACR,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,QAAQ,CAAC,KAAK;QACZ,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;IAChC,CAAC;IAED,YAAY,CAAC,KAAK;QAChB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;IAC9B,CAAC;IAED,WAAW,CAAC,KAAK;QACf,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;IACnC,CAAC;IAED,kBAAkB,CAAC,UAAU;QAC3B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,EAAE;gBAChD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;aACjD;SACF;IACH,CAAC;CAEF;;YAzNqB,qEAAY;4CAC7B,oDAAM,SAAC,wEAAe;YAA0C,6DAAa;YAAoB,wDAAQ;;AAtDjG,mBAAmB;IAN/B,+DAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,8HAA0B;QAC1B,6BAA6B;QAC7B,SAAS,EAAE,CAAC,6DAAa,EAAE,wDAAQ,CAAC;KACrC,CAAC;IAuDG,6GAAM,CAAC,wEAAe,CAAC;GAtDf,mBAAmB,CA8Q/B;AA9Q+B;;;;;;;;;;;;;;;;;;AC/hCU;AAM1C,IAAa,sBAAsB,GAAnC,MAAa,sBAAsB;CAClC;AADY,sBAAsB;IAJlC,+DAAS,CAAC;QACP,QAAQ,EAAE,gBAAgB;QAC1B,gIAA0B;KAC7B,CAAC;GACW,sBAAsB,CAClC;AADkC;;;;;;;;;;;;;;;;;;ACNwC;AAM3E,IAAa,eAAe,GAA5B,MAAa,eAAe;IAExB,YAAoB,GAAe;QAAf,QAAG,GAAH,GAAG,CAAY;IAAI,CAAC;IAEL,aAAa,CAAC,KAAU;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC;QACjD,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACnE,IAAI,WAAW,KAAK,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,EAAE;YAC9C,KAAK,CAAC,eAAe,EAAE,CAAC;SAC3B;IACL,CAAC;CACJ;;YAT4B,wDAAU;;AAEA;IAAlC,kEAAY,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;oDAMjC;AAVQ,eAAe;IAH3B,+DAAS,CAAC;QACP,QAAQ,EAAE,oBAAoB;KACjC,CAAC;GACW,eAAe,CAW3B;AAX2B;;;;;;;;;;;;;ACN5B;AAAA;AAAA,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC1B,yCAAmB;IACnB,+CAAyB;IACzB,mCAAa;AACjB,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,QAI7B;;;;;;;;;;;;ACJD,0BAA0B,qBAAqB,GAAG,iBAAiB,oBAAoB,qBAAqB,GAAG,kBAAkB,yCAAyC,iBAAiB,GAAG,iBAAiB,gBAAgB,kBAAkB,iBAAiB,wBAAwB,GAAG,gBAAgB,gCAAgC,GAAG,aAAa,sBAAsB,GAAG,WAAW,gBAAgB,uBAAuB,GAAG,YAAY,uBAAuB,uBAAuB,GAAG,QAAQ,iBAAiB,8BAA8B,iBAAiB,oBAAoB,GAAG,QAAQ,iBAAiB,oBAAoB,GAAG,WAAW,8BAA8B,GAAG,mBAAmB,8BAA8B,qBAAqB,0BAA0B,GAAG,iBAAiB,wBAAwB,GAAG,oBAAoB,qBAAqB,GAAG,mBAAmB,wBAAwB,GAAG,iBAAiB,mBAAmB,GAAG,gBAAgB,oBAAoB,GAAG,iBAAiB,uBAAuB,eAAe,GAAG,kCAAkC,oBAAoB,GAAG,eAAe,8BAA8B,+BAA+B,GAAG,kBAAkB,2BAA2B,4BAA4B,GAAG,6CAA6C,2vJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAhtC;AACnB;AACkC;AACzB;AACE;AACR;AACK;AACY;AAET;AAEmB;AAC7B;AACJ;AAU/C,IAAa,gBAAgB,GAA7B,MAAa,gBAAgB;IAoE3B,YAAoB,aAA4B,EACvC,MAAiB,EAChB,QAA0B,EAC1B,OAA4B,EAC5B,KAAqB,EACrB,mBAAwC,EACxC,cAA8B;QANpB,kBAAa,GAAb,aAAa,CAAe;QACvC,WAAM,GAAN,MAAM,CAAW;QAChB,aAAQ,GAAR,QAAQ,CAAkB;QAC1B,YAAO,GAAP,OAAO,CAAqB;QAC5B,UAAK,GAAL,KAAK,CAAgB;QACrB,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,mBAAc,GAAd,cAAc,CAAgB;QAxExC,uBAAkB,GAAY,KAAK,CAAC;QAEpC,oBAAe,GAAY,KAAK,CAAC;QAEjC,mBAAc,GAAW,EAAE,CAAC;QAE5B,gBAAW,GAA0B,EAAE,CAAC;QACxC,gBAAW,GAAW,EAAE,CAAC;QACzB,aAAQ,GAAG,EAAE,CAAC;QAGd,eAAU,GAAW,EAAE,CAAC;QACxB,iBAAiB;QACjB,mBAAmB;QACnB,sBAAsB;QACtB,iBAAiB;QACjB,oBAAoB;QACpB,WAAM,GAAY,KAAK,CAAC;QACxB,WAAM,GAAG,EAAE,CAAC;QAEZ,UAAK,GAAG,IAAI,CAAC;QACb,gBAAW,GAAG,KAAK,CAAC;QACpB,yBAAyB;QACzB,qBAAgB,GAAa,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAClD,eAAU,GAAG,IAAI,0EAAkB,EAAE,CAAC;QACtC,eAAU,GAA0B,EAAE,CAAC;QAGvC,cAAS,GAAG,KAAK,CAAC;QAClB,oBAAe,GAAG,KAAK,CAAC;QAYxB,eAAU,GAAG,EAAE,CAAC;QAChB,aAAQ,GAAG,EAAE,CAAC;QAKd,kBAAa,GAAG,EAAE,CAAC;QAInB,oBAAe,GAAY,KAAK,CAAC;QAIjC,iBAAY,GAAY,KAAK,CAAC;QAC9B,mBAAc,GAAW,CAAC,CAAC;QAE3B,kBAAa,GAAa,EAAE,CAAC;QAE7B,UAAK,GAAiB,SAAS,CAAC;QAa9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACzD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC5D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QAC9D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;QACxE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC;QAC9D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QACpE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC;QAE1D,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE;YAC5B,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,iCAAiC,EAAE,CAAC;QACzC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,CAAC;YACtF,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;aACvC;SACF;QACD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3C,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;SAC3D;aACI,IAAI,IAAI,CAAC,cAAc,EAAE;YAC5B,IAAI,CAAC,iCAAiC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAC7D;IAEH,CAAC;IAED,OAAO;QACL,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;gBAC7D,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;gBACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YAE1B,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,aAAa;QACX,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACrD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,4BAA4B,CAAC,SAAiB;QAC5C,IAAI,CAAC,mBAAmB,CAAC,4BAA4B,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACrG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;YAC7B,2BAA2B;YAC3B,yBAAyB;YACzB,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;gBACjC,8BAA8B;gBAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;aAC7B;iBACI;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC/D,gCAAgC;gBAChC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;gBAC7B,2CAA2C;gBAC3C,8DAA8D;gBAC9D,6CAA6C;gBAC7C,+CAA+C;gBAC/C,8CAA8C;gBAC9C,IAAI;gBACJ,mDAAmD;gBACnD,4CAA4C;gBAC5C,yCAAyC;gBACzC,qCAAqC;gBACrC,+CAA+C;gBAC/C,IAAI;aACL;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iCAAiC,CAAC,cAAsB;QACtD,IAAI,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC1F,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;YAC7B,2BAA2B;YAC3B,yBAAyB;YACzB,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;gBACjC,8BAA8B;gBAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;aAC7B;iBACI;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC/D,6BAA6B;gBAC7B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;gBAC7B,2CAA2C;gBAC3C,8DAA8D;gBAC9D,6CAA6C;gBAC7C,+CAA+C;gBAC/C,8CAA8C;gBAC9C,IAAI;gBACJ,mDAAmD;gBACnD,4CAA4C;gBAC5C,yCAAyC;gBACzC,qCAAqC;gBACrC,+CAA+C;gBAC/C,IAAI;aACL;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB;QACnB,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YAC/D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CACvC,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CACL,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChH,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpG,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CACvG,CAAC;QACJ,CAAC,CAEF,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;YAChC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;YACnC,yBAAyB;YACzB,2BAA2B;YAC3B,2CAA2C;YAC3C,6CAA6C;YAC7C,+CAA+C;YAC/C,8CAA8C;YAC9C,IAAI;YACJ,mDAAmD;YACnD,4CAA4C;YAC5C,4BAA4B;YAE5B,6CAA6C;YAC7C,IAAI;YACJ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,QAAQ;QAER,sCAAsC;QACtC,yBAAyB;QACzB,2BAA2B;QAC3B,6CAA6C;QAC7C,+CAA+C;QAC/C,8CAA8C;QAC9C,IAAI;QACJ,qDAAqD;QACrD,4CAA4C;QAC5C,4BAA4B;QAC5B,+CAA+C;QAC/C,IAAI;QAEJ,yCAAyC;QACzC,qCAAqC;QACrC,+CAA+C;QAC/C,IAAI;QACJ,GAAG;IACL,CAAC;IAED,YAAY;QACV,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAC5C,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACxC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACrC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC9B;QACD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,EAAE,gBAAgB,EAAE,2DAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAC9P,CAAC;IAED,qBAAqB,CAAC,KAA2B,EAAE,GAAG;QACpD,IAAI,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;YACzD,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,2BAA2B,GAAG,GAAG,GAAG,+BAA+B,GAAG,GAAG,CAAC,WAAW,GAAG,MAAM,GAAG,IAAI;SAC5G,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;YACzB,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC;gBACnD,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBAC7E,IAAI,IAAI,CAAC,IAAI,EAAE;wBACb,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;wBACvB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;qBACzC;gBACH,CAAC,CAAC,CAAC;aACJ;iBACI;gBACH,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;aAC1E;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iCAAiC;QAC/B,IAAI,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC/F,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;YACjF,IAAI,CAAC,mBAAmB,CAAC,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;QAClG,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW;QACT,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC/F,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAEnC,IAAI,IAAI,CAAC,cAAc,CAAC,eAAe,IAAI,CAAC,EAAE;gBAC5C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;gBAC7E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4FAAyB,EAAE;oBAC1C,IAAI,EAAE;wBACJ,aAAa,EAAE,IAAI,CAAC,aAAa;qBAClC;iBACF,CAAC,CAAC;gBACH,OAAO;aACR;YACD,IAAI,CAAC,cAAc,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,GAAG,CAAC,CAAC;YAC9E,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;YACjF,IAAI,CAAC,mBAAmB,CAAC,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;YAChG,IAAI,CAAC,aAAa,GAAG;gBACnB,SAAS,EAAE,CAAC;gBACZ,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE,EAAE;gBACZ,OAAO,EAAE,EAAE;gBACX,KAAK,EAAE,EAAE;gBACT,IAAI,EAAE,EAAE;gBACR,OAAO,EAAE,EAAE;gBACX,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,EAAE;gBACV,eAAe,EAAE,KAAK;gBACtB,kBAAkB,EAAE,KAAK;gBACzB,gBAAgB,EAAE,CAAC;gBACnB,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,MAAM,EAAE,CAAC;gBACT,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE,EAAE;gBACZ,SAAS,EAAE,EAAE;gBACb,QAAQ,EAAE,EAAE;gBACZ,UAAU,EAAE,CAAC;gBACb,SAAS,EAAE,IAAI,CAAC,WAAW;gBAC3B,SAAS,EAAE,IAAI,CAAC,WAAW;gBAC3B,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;aACV;YACD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IAEL,CAAC;IAED,IAAI,CAAC,QAAQ;QACX,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,sBAAsB;QAClD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,+BAA+B,CAAC,SAAiB;QAC/C,IAAI,SAAS,EAAE;SAEd;IACH,CAAC;IAKD,eAAe,CAAC,OAAO;QACrB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;QACpC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,cAAc,CAAC,+BAA+B,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACtF,IAAI,CAAC,cAAc,CAAC,+BAA+B,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;gBACvF,IAAI,0BAA0B,GAAG,CAAC,CAAC;gBACnC,IAAI,KAAK,CAAC,IAAI,EAAE;oBACd,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;wBACvB,0BAA0B,GAAG,0BAA0B,GAAG,GAAG,CAAC,gBAAgB,CAAC;oBACjF,CAAC,CAAC,CAAC;iBACJ;gBACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;gBAC9D,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC;gBAC/C,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;gBAC1E,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE;oBAC3B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;oBAC7B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;oBACrB,UAAU,CAAC,GAAG,EAAE;wBACd,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;wBAC5B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;oBACxC,CAAC,EAAE,GAAG,CAAC,CAAC;iBACT;qBAAM;oBACL,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;oBAC5B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;iBACvC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,OAAO;QACd,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3C,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC;YACrI,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAClD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACxD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACxD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;YAC5C,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YACrD,IAAI,UAAU,EAAE;gBACd,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;aAC9C;YACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvB,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;aAC/E;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,GAAW;QACpB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;YACzD,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,GAAG,GAAG,KAAK,GAAG,KAAK;SAC1B,CAAC,CAAC;QACH,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC;QAChE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;QACzD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjE,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAEjE,IAAI,GAAG,IAAI,KAAK,EAAE;YAChB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,iCAAiC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAC7D;QACD,IAAI,GAAG,KAAK,MAAM,EAAE;YAClB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;SACtB;QACD,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;gBAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;aAEnB;iBACI;gBACH,IAAI,CAAC,iCAAiC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aAC7D;YACD,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;gBAC1C,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,IAAI,GAAG,KAAK,KAAK,EAAE;oBACjB,SAAS,GAAG,oBAAoB,CAAC;iBAClC;qBACI;oBACH,SAAS,GAAG,sBAAsB,CAAC;iBACpC;gBACD,yBAAyB;gBACzB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;oBAC5D,UAAU,EAAE,yBAAyB;oBACrC,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,KAAK;iBAChC,CAAC,CAAC;gBACH,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,iCAAiC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBAC5D,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,CAAC,EAAE,GAAG,CAAC,CAAC;gBAGR,YAAY,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBAE7C,IAAI,CAAC,iCAAiC,EAAE,CAAC;oBACzC,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;wBAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;qBACnB;yBACI;wBACH,IAAI,CAAC,iCAAiC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;wBAC5D,IAAI,CAAC,QAAQ,EAAE,CAAC;qBACjB;gBACH,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,CAAC,iCAAiC,EAAE,CAAC;aAC1C;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,UAAU;QACpB,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;QAChC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC;QAC1D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,eAAe;IACf,sDAAsD;IACtD,6CAA6C;IAC7C,MAAM;IACN,IAAI;IAEJ,aAAa,CAAC,OAAO;QACnB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,cAAc,CAAC,+BAA+B,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACtF,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE;gBACjB,IAAI,CAAC,UAAU,CAAC,6CAA6C,CAAC,CAAC;gBAC/D,OAAO;aACR;iBAAM;gBACL,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;oBACzD,UAAU,EAAE,yBAAyB;oBACrC,IAAI,EAAE,0CAA0C,GAAG,OAAO,CAAC,WAAW,GAAG,MAAM,GAAG,IAAI;iBACvF,CAAC,CAAC;gBACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oBACzC,IAAI,MAAM,EAAE;wBACV,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;4BACzE,IAAI,IAAI,CAAC,IAAI,EAAE;gCACb,mBAAmB;gCACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gCACvB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;gCACxC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;6BAC9B;4BACD,yBAAyB;4BACzB,2BAA2B;4BAC3B,IAAI,CAAC,iCAAiC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;wBAC9D,CAAC,CAAC,CAAC;qBACJ;gBACH,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;;YAleoC,6DAAa;YAC/B,kEAAS;YACN,iEAAgB;YACjB,kEAAmB;YACrB,qEAAc;YACA,kFAAmB;YACxB,wEAAc;;AAnBG;IAA1C,+DAAS,CAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;mDAAyB;AAvDxD,gBAAgB;IAR5B,+DAAS,CAAC;QACT,QAAQ,EAAE,aAAa;QACvB,uJAAuC;QAEvC,SAAS,EAAE,CAAC,6DAAa,CAAC;;KAE3B,CAAC;GAEW,gBAAgB,CAsiB5B;AAtiB4B;AA6iB7B,IAAa,sBAAsB,GAAnC,MAAa,sBAAsB;IA0BjC,YACS,SAA+C,EACtB,IAAS,EAClC,aAA4B,EAC3B,OAA4B,EAC5B,mBAAwC,EACxC,cAA8B,EAC/B,MAAiB;QANjB,cAAS,GAAT,SAAS,CAAsC;QACtB,SAAI,GAAJ,IAAI,CAAK;QAClC,kBAAa,GAAb,aAAa,CAAe;QAC3B,YAAO,GAAP,OAAO,CAAqB;QAC5B,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,mBAAc,GAAd,cAAc,CAAgB;QAC/B,WAAM,GAAN,MAAM,CAAW;QA/B1B,cAAS,GAAG,KAAK,CAAC;QAElB,aAAQ,GAAG,EAAE,CAAC;QAGd,gBAAW,GAA0B,EAAE,CAAC;QAMxC,gBAAW,GAAG,KAAK,CAAC;QAOpB,kBAAa,GAAa,EAAE,CAAC;QAK7B,oBAAe,GAAW,CAAC,CAAC;QAS1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IAC1E,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAChE,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;YACvB,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;SAC/C;QACD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACpD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;YACvB,IAAI,CAAC,+BAA+B,EAAE,CAAC;YACvC,IAAI,CAAC,iCAAiC,EAAE,CAAC;SAC1C;IACH,CAAC;IAED,iCAAiC;QAC/B,IAAI,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACnH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;YACjF,IAAI,CAAC,mBAAmB,CAAC,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;QAClG,CAAC,CAAC,CAAC;IACL,CAAC;IAED,+BAA+B;QAC7B,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,cAAc,CAAC,+BAA+B,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAClG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC;YACnC,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,cAAc;QAGZ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,EAAE;YACvC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE;YACpC,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE;YACvC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE;YACpC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE;YACpC,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE;YACnC,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE;YACjC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE;YAChC,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO;YAC5B,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM;YAC3B,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ;YAC7B,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK;YAC1B,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB;gBACrC,IAAI,CAAC,cAAc,CAAC,gBAAgB,KAAK,CAAC,CAC3C,EAAE;YACH,IAAI,CAAC,QAAQ,GAAG,kCAAkC,CAAC;YACnD,OAAO;SACR;aACI;YACH,IAAI,UAAU,GAAG,+CAA+C,CAAC;YACjE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;gBAChD,IAAI,CAAC,QAAQ,GAAG,0BAA0B,CAAC;gBAC3C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,OAAO;aACR;SACF;QACD,oCAAoC;QACpC,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,KAAK,CAAC,CAAC,EAAE;YAChG,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;gBACvB,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE;oBAC9E,IAAI,CAAC,QAAQ,GAAG,sDAAsD,CAAC;oBACvE,OAAO;iBACR;gBACD,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;oBAClD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC/C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9B,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,+BAA+B,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBAClG,IAAI,0BAA0B,GAAG,CAAC,CAAC;oBACnC,IAAI,IAAI,CAAC,IAAI,EAAE;wBACb,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;4BACtB,0BAA0B,GAAG,0BAA0B,GAAG,GAAG,CAAC,gBAAgB,CAAC;wBACjF,CAAC,CAAC,CAAC;qBACJ;oBACD,IAAI,MAAM,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC;oBACvE,IAAI,IAAI,CAAC,eAAe,GAAG,0BAA0B,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE;wBAC5F,IAAI,CAAC,QAAQ,GAAG,sEAAsE,CAAC;wBACvF,OAAO;qBACR;yBACI,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,MAAM,EAAE;wBACtD,IAAI,CAAC,QAAQ,GAAG,sDAAsD,CAAC;wBACvE,OAAO;qBACR;oBACD,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;wBAClD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wBAC/C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC9B,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;aACJ;SACF;aAAM,EAAE,mCAAmC;YAE1C,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;gBACvB,IAAI,CAAC,cAAc,CAAC,+BAA+B,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBAClG,IAAI,0BAA0B,GAAG,CAAC,CAAC;oBACnC,IAAI,IAAI,CAAC,IAAI,EAAE;wBACb,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;4BACtB,0BAA0B,GAAG,0BAA0B,GAAG,GAAG,CAAC,gBAAgB,CAAC;wBACjF,CAAC,CAAC,CAAC;qBACJ;oBAED,IAAI,IAAI,CAAC,eAAe,GAAG,0BAA0B,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE;wBAC5F,IAAI,CAAC,QAAQ,GAAG,sEAAsE,CAAC;wBACvF,OAAO;qBACR;yBAAM,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,EAAE;wBAC9E,IAAI,CAAC,QAAQ,GAAG,sDAAsD,CAAC;wBACvE,OAAO;qBACR;oBACD,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;wBAClD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wBAC/C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC9B,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,EAAE;oBACvE,IAAI,CAAC,QAAQ,GAAG,sDAAsD,CAAC;oBACvE,OAAO;iBACR;gBACD,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;oBAClD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC/C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9B,CAAC,CAAC,CAAC;aACJ;SACF;IACH,CAAC;IAED,kBAAkB,CAAC,KAA2B,EAAE,OAAuB;QAErE,yEAAyE;QACzE,2IAA2I;QAC3I,IAAI;QACJ,wCAAwC;QACxC,kDAAkD;QAClD,cAAc;QACd,0CAA0C;QAC1C,QAAQ;QACR,QAAQ;QACR,iDAAiD;QACjD,6DAA6D;QAC7D,qCAAqC;QACrC,YAAY;QACZ,WAAW;QACX,0FAA0F;QAC1F,IAAI;QAEJ,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,WAAW,CAAC,GAAW;QACrB,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1C,IAAI,CAAC,QAAQ,GAAG,6BAA6B,CAAC;YAC9C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACrB,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,OAAO;SACR;QACD,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE;YACjC,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;SAClD;QACD,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE;gBAClJ,IAAI,CAAC,QAAQ,GAAG,2BAA2B,CAAC;gBAC5C,OAAO;aACR;YACD,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE;gBAC9I,IAAI,CAAC,QAAQ,GAAG,wBAAwB,CAAC;gBACzC,OAAO;aACR;YACD,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACpE,IAAI,IAAI,CAAC,IAAI,EAAE;oBACb,IAAI,CAAC,QAAQ,GAAG,oBAAoB,CAAC;oBACrC,UAAU,CAAC,GAAG,EAAE;wBACd,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;wBACnB,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;4BAClD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wBACjD,CAAC,CAAC,CAAC;oBACL,CAAC,EAAE,IAAI,CAAC,CAAC;oBACT,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBAC5B;qBAAM;oBACL,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;iBAC/B;YACH,CAAC,CAAC;SACH;aAAM;YACL,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE;gBAChH,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;gBACvI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE;oBAClH,IAAI,CAAC,QAAQ,GAAG,2BAA2B,CAAC;oBAC5C,OAAO;iBACR;aACF;YAED,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;gBACnE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBAC/F,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE;oBAC9I,IAAI,CAAC,QAAQ,GAAG,wBAAwB,CAAC;oBACzC,OAAO;iBACR;aACF;YACD,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACpE,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;oBACtB,IAAI,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;wBACnH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBACnC,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;wBACjF,IAAI,CAAC,mBAAmB,CAAC,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;oBAClG,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBAC5B;qBAAM;oBACL,IAAI,CAAC,QAAQ,GAAG,sBAAsB,CAAC;iBACxC;gBACD,IAAI,CAAC,iCAAiC,EAAE,CAAC;YAC3C,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,QAAQ,CAAC,KAAK;QACZ,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IACD,UAAU;QACR,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,QAAQ,CAAC,KAAU;QACjB,MAAM,OAAO,GAAG,aAAa,CAAC;QAE9B,IAAI,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAClD,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;IACH,CAAC;IAED,OAAO,CAAC,GAAG;QACT,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO;QACnD,IAAI,CAAC,OAAO,GAAG,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,IAAI,OAAO,GAAG,GAAG,CAAC,IAAI,OAAO,IAAI,EAAE;YACpF,OAAO,KAAK,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,KAAU;QACtB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,WAAW,IAAI,KAAK,CAAC,GAAG,IAAI,WAAW,IAAI,KAAK,CAAC,GAAG,IAAI,YAAY,EAAE;YACvF,OAAO;SACR;aAAM;YACL,MAAM,YAAY,GAAG,YAAY,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;gBAClC,KAAK,CAAC,cAAc,EAAE,CAAC;aACxB;SACF;IAEH,CAAC;IAED,aAAa,CAAC,KAAU;QACtB,IAAI,EAAE,GAAG,yJAAyJ,CAAC;QACnK,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;YAC9B,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE;gBACvB,KAAK,CAAC,cAAc,EAAE,CAAC;aACxB;SACF;IACH,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;YAChC,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE;gBAChH,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;gBACvI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE;oBAClH,IAAI,CAAC,QAAQ,GAAG,2BAA2B,CAAC;oBAC5C,OAAO;iBACR;aACF;IACL,CAAC;IAED,OAAO;QACL,IAAI,EAAE,GAAG,8BAA8B,CAAC;QACxC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,EAAE,EAAE;YACrC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;gBACzC,IAAI,CAAC,QAAQ,GAAG,sBAAsB,CAAC;gBACvC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,EAAE,CAAC;gBAEhC,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;gBACrB,CAAC,EAAE,IAAI,CAAC,CAAC;aACV;SACF;QACD,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,EAAE,EAAE;YACrC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;gBACzC,IAAI,CAAC,QAAQ,GAAG,sBAAsB,CAAC;gBACvC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,EAAE,CAAC;gBAChC,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;gBACrB,CAAC,EAAE,IAAI,CAAC,CAAC;aACV;SACF;IACH,CAAC;CACF;;YArUqB,qEAAY;4CAC7B,oDAAM,SAAC,wEAAe;YACD,6DAAa;YAClB,kEAAmB;YACP,kFAAmB;YACxB,wEAAc;YACvB,kEAAS;;AAjCf,sBAAsB;IALlC,+DAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,iIAA0B;QAC1B,SAAS,EAAE,CAAC,6DAAa,CAAC;KAC3B,CAAC;IA6BG,6GAAM,CAAC,wEAAe,CAAC;GA5Bf,sBAAsB,CAgWlC;AAhWkC;;;;;;;;;;;;;ACpkBnC;AAAA;AAAO,MAAM,SAAS,GAAG,+CAA+C,CAAC;;;;;;;;;;;;ACAzE,2BAA2B,kBAAkB,mCAAmC,wBAAwB,GAAG,gBAAgB,oBAAoB,GAAG,qBAAqB,iBAAiB,8BAA8B,sBAAsB,uBAAuB,oBAAoB,4BAA4B,uBAAuB,oBAAoB,2BAA2B,qBAAqB,iBAAiB,kCAAkC,uBAAuB,oBAAoB,GAAG,aAAa,kCAAkC,4BAA4B,GAAG,oGAAoG,aAAa,oBAAoB,6BAA6B,KAAK,kBAAkB,eAAe,kBAAkB,KAAK,yBAAyB,iBAAiB,yBAAyB,KAAK,eAAe,eAAe,kBAAkB,KAAK,GAAG,sHAAsH,2xI;;;;;;;;;;;;;;;;;;;;ACAh+B;AACA;AACG;AACI;AAOzD,IAAa,kBAAkB,GAA/B,MAAa,kBAAkB;IA2B7B,YAAoB,MAAqB,EAAU,OAA4B,EAAU,KAAqB,EACpG,MAAc;QADJ,WAAM,GAAN,MAAM,CAAe;QAAU,YAAO,GAAP,OAAO,CAAqB;QAAU,UAAK,GAAL,KAAK,CAAgB;QACpG,WAAM,GAAN,MAAM,CAAQ;QA3BxB,qBAAgB,GAAG,EAAE,CAAC;QAEtB,gBAAW,GAAG,EAAE,CAAC;QACjB,kBAAa,GAAG,EAAE,CAAC;QACnB,cAAS,GAAG,KAAK,CAAC;QAClB,oBAAe,GAAG,KAAK,CAAC;QACxB,qBAAgB,GAAG,KAAK,CAAC;QACzB,qBAAgB,GAAG,KAAK,CAAC;QAEzB,iBAAY,GAAG,KAAK,CAAC;QACrB,gBAAW,GAAG,KAAK,CAAC;QACpB,gBAAW,GAAG,KAAK,CAAC;QACpB,iBAAY,GAAG,KAAK,CAAC;QAGrB,sBAAiB,GAAG,KAAK,CAAC;QAU1B,iBAAY,GAAG,KAAK,CAAC;QAGnB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC;QAChC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC;QAC/B,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC;QAGhC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAEpC,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;aACnC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;YACrB,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACvD,IAAI,YAAY,CAAC;YACjB,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE;gBACjB,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;aAEvH;iBACI;gBACH,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC;aACxE;YAED,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;gBAEzD,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAClD,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC/B,WAAW;iBACZ;gBACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAChD,IAAI,YAAY,GAAG,CAAC,CAAC;oBAAC,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;oBAC3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAE5C,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE;4BACrE,YAAY,EAAE,CAAC;yBAEhB;qBAEF;oBACD,IAAI,IAAI,GAAG;wBACT,OAAO,EAAE,WAAW;wBACpB,MAAM,EAAE,YAAY;qBACrB,CAAC;oBACF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC9B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,IAAI;wBAE1C,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;oBACnC,CAAC,CAAC,CAAC;iBACJ;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,UAAU;QACR,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACzD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC;CAGF;;YAlE6B,6DAAa;YAAmB,kEAAmB;YAAiB,8DAAc;YAC5F,sDAAM;;AA5Bb,kBAAkB;IAL9B,+DAAS,CAAC;QACT,QAAQ,EAAE,eAAe;QACzB,6JAAyC;;KAE1C,CAAC;GACW,kBAAkB,CA6F9B;AA7F8B;;;;;;;;;;;;ACV/B,+DAA+D,2J;;;;;;;;;;;;;;;;;;;;;;;;ACAL;AACmB;AACxB;AACH;AACiB;AAEK;AACzB;AAO/C,IAAa,oBAAoB,GAAjC,MAAa,oBAAoB;IAiC/B,YAAmB,MAAiB,EAC3B,iBAAoC,EACnC,aAA4B,EAC5B,OAA4B;QAHnB,WAAM,GAAN,MAAM,CAAW;QAC3B,sBAAiB,GAAjB,iBAAiB,CAAmB;QACnC,kBAAa,GAAb,aAAa,CAAe;QAC5B,YAAO,GAAP,OAAO,CAAqB;QAjCtC,MAAC,GAAW,CAAC,CAAC;QACd,eAAU,GAAG,EAAE,CAAC;QAChB,kBAAa,GAAG,EAAE,CAAC;QAEnB,gBAAW,GAAG,EAAE,CAAC;QAYjB,cAAS,GAAG,KAAK,CAAC;QAClB,kBAAa,GAAG,KAAK,CAAC;QACtB,qBAAgB,GAAG,KAAK,CAAC;QAEzB,eAAU,GAAG,EAAE,CAAC;QAChB,WAAM,GAAG,EAAE,CAAC;QAEZ,UAAK,GAAG,IAAI,CAAC;QACb,WAAM,GAAY,KAAK,CAAC;QAIxB,uBAAkB,GAAG,mFAAkB,CAAC;QAMtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAClE,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAElE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC,CAAC;QACjG,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC1C;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACxE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,cAAc;QACZ,4BAA4B;QAC5B,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACrE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC;YAChC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;gBACpC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;gBAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;iBACI;gBACH,IAAI,IAAI,CAAC,eAAe,EAAE;oBACxB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE;wBACpK,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;qBACjH;yBACI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,KAAK,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;wBACtF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;qBAC3C;iBACF;gBACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;gBAClE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;gBAC3C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC7B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC1C;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,mCAAmC;IAEnC,oBAAoB,CAAC,QAAQ;QAC3B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;YACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;SAC1C;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IACD;;MAEE;IACF,UAAU;QACR,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC;QACtC,IAAI,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAClD,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CACL,CAAC,IAAI,CAAC,cAAc,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzI,CAAC,IAAI,CAAC,qBAAqB,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CACxJ,CAAC;QACJ,CAAC,CACF,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC;QAC1C,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,EAAE;YACnC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC;YACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;YAC3C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC1C;aACI;YACH,IAAI,CAAC,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;YAC3C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IAED,IAAI,CAAC,QAAQ;QACX,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,sBAAsB;QAClD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,aAAa;QACX,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED;;MAEE;IACF,UAAU,CAAC,GAAW;QACpB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;YAC5D,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,GAAG,GAAG,KAAK,GAAG,KAAK;SAC1B,CAAC,CAAC;QAEH,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjE,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,cAAc,EAAE,CAAC;SACvB;QACD,IAAI,GAAG,KAAK,MAAM,EAAE;YAClB,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YACjE,SAAS,CAAC,iBAAiB,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;YAC/E,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;YACzE,iDAAiD;SAClD;QACD,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;gBAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;iBACI;gBACH,IAAI,CAAC,cAAc,EAAE,CAAC;aACvB;YACD,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;gBAChC,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,IAAI,GAAG,KAAK,KAAK,EAAE;oBACjB,SAAS,GAAG,oBAAoB,CAAC;iBAClC;qBACI;oBACH,SAAS,GAAG,sBAAsB,CAAC;iBACpC;gBACD,IAAI,CAAC,cAAc,EAAE,CAAC;gBAEtB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;oBAC/D,UAAU,EAAE,yBAAyB;oBACrC,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,KAAK;iBAEhC,CAAC,CAAC;gBACH,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,CAAC,EAAE,GAAG,CAAC,CAAC;gBACR,YAAY,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBAC7C,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;oBACtB,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;wBAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;qBACnB;yBACI;wBACH,IAAI,CAAC,cAAc,EAAE,CAAC;qBACvB;gBACH,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;MAEE;IACF,cAAc,CAAC,aAAa;QAC1B,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC;QAC/C,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC,cAAc,CAAC;QACnD,IAAI,CAAC,kBAAkB,GAAG,aAAa,CAAC,cAAc,CAAC;QACvD,IAAI,CAAC,qBAAqB,GAAG,aAAa,CAAC,qBAAqB,CAAC;QACjE,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;QACzC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;YACjD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SACvC;IACH,CAAC;IAED;;MAEE;IACF,gBAAgB,CAAC,aAAkB;QACjC,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;YAC5D,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,8CAA8C,GAAG,aAAa,CAAC,cAAc,GAAG,MAAM,GAAG,IAAI;SAEpG,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;oBACrE,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;wBAC1E,IAAI,IAAI,CAAC,IAAI,EAAE;4BACb,IAAI,CAAC,QAAQ,EAAE,CAAC;4BAChB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;4BACtB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;4BACxC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;4BACzB,IAAI,CAAC,cAAc,EAAE,CAAC;yBACvB;6BAAM;4BACL,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;yBAClC;wBACD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;wBACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;oBAC1B,CAAC,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,CAAC,UAAU,CAAC,yDAAyD,CAAC,CAAC;iBAC5E;aAEF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QAC9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,OAAO,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;YAC1D,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC;YAC7D,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YACnC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;YAC1C,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;SAC/B;QACD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,GAAG,cAAc,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,EAAE,oBAAoB,EAAE,0DAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IACvS,CAAC;CACF;;YA3P4B,2DAAS;YACR,8EAAiB;YACpB,6DAAa;YACnB,kEAAmB;;AApC3B,oBAAoB;IALhC,+DAAS,CAAC;QACT,QAAQ,EAAE,iBAAiB;QAC3B,mKAA2C;;KAE5C,CAAC;GACW,oBAAoB,CA4RhC;AA5RgC;AAkSjC,IAAa,yBAAyB,GAAtC,MAAa,yBAAyB;IAWpC,YACS,SAAkD,EACzB,IAAS,EAAS,iBAAoC;QAD/E,cAAS,GAAT,SAAS,CAAyC;QACzB,SAAI,GAAJ,IAAI,CAAK;QAAS,sBAAiB,GAAjB,iBAAiB,CAAmB;QAZxF,cAAS,GAAG,KAAK,CAAC;QAOlB,gBAAW,GAAG,KAAK,CAAC;QAMlB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,QAAQ;IACR,CAAC;IAED,UAAU;QACR,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE;YAC/B,IAAI,CAAC,QAAQ,GAAG,kCAAkC,CAAC;YACnD,OAAO;SACR;QACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,cAAc,CAAC,GAAW;QACxB,MAAM,MAAM,GAAG;YACb,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;SAClD,CAAC;QACF,IAAI,GAAG,KAAK,KAAK,EAAE;YAEjB,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE;gBACxH,IAAI,CAAC,QAAQ,GAAG,gCAAgC,CAAC;gBACjD,OAAO;aACR;YACD,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAC7D,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;oBACtB,IAAI,CAAC,QAAQ,GAAG,oBAAoB,CAAC;oBACrC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;oBACzB,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;oBAChC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACjC,UAAU,CAAC,GAAG,EAAE;wBACd,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;oBACrB,CAAC,EAAE,IAAI,CAAC,CAAC;iBACV;qBAAM;oBACL,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;iBAC/B;YACH,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,cAAc;gBAChD,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE;oBACxH,IAAI,CAAC,QAAQ,GAAG,gCAAgC,CAAC;oBACjD,OAAO;iBACR;YACH,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAC7D,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;oBACtB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBAC5B;qBAAM;oBACL,IAAI,CAAC,QAAQ,GAAG,sBAAsB,CAAC;iBACxC;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAGD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;CAEF;;YAhFqB,8DAAY;4CAC7B,oDAAM,SAAC,iEAAe;YAA8C,8EAAiB;;AAb7E,yBAAyB;IAJrC,+DAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,qIAA0B;KAC3B,CAAC;IAcG,6GAAM,CAAC,iEAAe,CAAC;GAbf,yBAAyB,CA4FrC;AA5FqC;;;;;;;;;;;;;;;;;;;;;;;;;;AChTK;AACoB;AACvB;AACX;AACM;AACF;AAC0B;AAC3D,MAAM,UAAU,GAAG,iFAAiF,CAAC;AACrG,MAAM,eAAe,GAAG,SAAS,CAAC;AAIlC,IAAa,aAAa,GAA1B,MAAa,aAAa;IAKxB,sDAAsD;IACtD,4CAA4C;IAC5C,2CAA2C;IAC3C,2CAA2C;IAC3C,4CAA4C;IAE5C,YAAoB,IAAU;QAAV,SAAI,GAAJ,IAAI,CAAM;QAPtB,YAAO,GAAW,wEAAW,CAAC,OAAO,CAAC;IAS9C,CAAC;IAEM,yBAAyB,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,eAAgB,EAAE,aAAc;QAC/H,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,IAAI,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC3B,KAAK,IAAI,GAAG,IAAI,SAAS,EAAE;gBACzB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAClB;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACvC,IAAI,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC3B,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,KAAK,IAAI,GAAG,IAAI,SAAS,EAAE;oBACzB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;iBACrE;gBACD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACtB;SACF;QACD,IAAI,QAAQ,GAAG,IAAI,gDAAQ,EAAE,CAAC;QAC9B,IAAI,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,KAAK,IAAI,EAAE,EAAE;YACf,IAAI,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACzC,IAAI,MAAM,IAAI,EAAE,EAAE;gBAChB,IAAI,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC3C,SAAS,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;aAC3F;YACD,IAAI,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3C,QAAQ,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;YACzF,SAAS,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;YAC1F,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACrB,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SACtB;QACD,IAAI,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAClC,IAAI,CAAC,IAAI,GAAG;gBACV,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;gBAClC,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;aACjC;YACD,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACxH,CAAC,CAAC;QACF,6CAA6C;QAC7C,yCAAyC;QACzC,qCAAqC;QACrC,6HAA6H;QAC7H,+DAA+D;QAC/D,sDAAsD;QACtD,sDAAsD;QACtD,oBAAoB;QACpB,yBAAyB;QACzB,0BAA0B;QAC1B,oCAAoC;QACpC,2DAA2D;QAC3D,QAAQ;QACR,OAAO;QACP,+CAA+C;QAC/C,yCAAyC;QACzC,MAAM;QACN,IAAI;QAEJ,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACf,IAAI,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC9B,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;gBAC5B,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACtH,IAAI,CAAC,SAAS,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBACxD,IAAI,CAAC,IAAI,GAAG;oBACV,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,OAAO;oBAChB,OAAO,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;oBAClC,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;iBACjC;YACH,CAAC,CAAC;YACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;gBACvC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;aACnC;QACH,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,IAAI,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;QAEnE,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACxC,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,mEAAmE,EAAE,CAAC,CAAC;YAC3G,iDAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC;QACtC,CAAC,CAAC;IAEJ,CAAC;IAGM,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,eAAgB,EAAE,aAAc;QACnH,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,IAAI,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC3B,KAAK,IAAI,GAAG,IAAI,SAAS,EAAE;gBACzB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAClB;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACvC,IAAI,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC3B,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,KAAK,IAAI,GAAG,IAAI,SAAS,EAAE;oBACzB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;iBACrE;gBACD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACtB;SACF;QAED,IAAI,QAAQ,GAAG,IAAI,gDAAQ,EAAE,CAAC;QAC9B,IAAI,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,KAAK,IAAI,EAAE,EAAE;YACf,IAAI,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACzC,IAAI,MAAM,IAAI,EAAE,EAAE;gBAChB,IAAI,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC3C,SAAS,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;aAC3F;YAED,IAAI,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3C,QAAQ,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;YAEzF,SAAS,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;YAG1F,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACrB,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SAEtB;QAED,IAAI,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEzC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAClC,IAAI,CAAC,IAAI,GAAG;gBACV,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;gBAClC,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;gBAChC,iCAAiC;gBACjC,gCAAgC;aACjC;YACD,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACxH,CAAC,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACf,IAAI,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC9B,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;gBAC5B,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACtH,IAAI,CAAC,SAAS,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC1D,CAAC,CAAC;YACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;gBACvC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;aACnC;QACH,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,IAAI,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;QAEnE,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACxC,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,mEAAmE,EAAE,CAAC,CAAC;YAC3G,iDAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC;QACtC,CAAC,CAAC;IAEJ,CAAC;IAGM,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,eAAgB,EAAE,aAAc;QAC1I,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,IAAI,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC3B,KAAK,IAAI,GAAG,IAAI,SAAS,EAAE;gBACzB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAClB;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACvC,IAAI,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC3B,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,KAAK,IAAI,GAAG,IAAI,SAAS,EAAE;oBACzB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;iBACrE;gBACD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACtB;SACF;QAED,MAAM,OAAO,GAAG,EAAE,CAAC;QAEnB,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,+BAA+B;YAC/B,0BAA0B;YAC1B,+BAA+B;YAC/B,iCAAiC;YACjC,uBAAuB;YACvB,IAAI;YACJ,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACxC,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;aACnC;YACD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACxC,IAAI,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAE5B,IAAI,UAAU,GAAG,EAAE,CAAC;gBACpB,+BAA+B;gBAE/B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAChC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACnC,2EAA2E;gBAC3E,8EAA8E;gBAC9E,IAAI;gBACJ,0BAA0B;gBAC1B,0BAA0B;aAC3B;SAEF;QAED,IAAI,QAAQ,GAAG,IAAI,gDAAQ,EAAE,CAAC;QAC9B,IAAI,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,KAAK,IAAI,EAAE,EAAE;YACf,IAAI,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACzC,IAAI,MAAM,IAAI,EAAE,EAAE;gBAChB,IAAI,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC3C,SAAS,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;aAC3F;YAED,IAAI,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3C,QAAQ,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;YAEzF,SAAS,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;YAG1F,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACrB,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SAEtB;QAID,IAAI,cAAc,GAAG,QAAQ,CAAC;QAG9B,IAAI,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC9C,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,IAAI,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC;YAC3B,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QAEH,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACpC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAEhC,IAAI,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEzC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,CAAC,IAAI,GAAG;gBACV,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;gBAClC,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;aAIjC;YACD,IAAI,CAAC,SAAS,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC9E,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACxH,CAAC,CAAC;QAEF,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,CAAC,IAAI,GAAG;gBACV,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;gBAClC,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;gBAChC,iCAAiC;gBACjC,gCAAgC;aACjC;YACD,IAAI,CAAC,SAAS,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;YAC9D,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACxH,CAAC,CAAC;QAGF,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAClC,IAAI,CAAC,IAAI,GAAG;gBACV,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;gBAClC,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;gBAChC,iCAAiC;gBACjC,gCAAgC;aACjC;YACD,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACxH,CAAC,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACf,IAAI,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC9B,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;gBAE5B,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACtH,uCAAuC;gBACvC,IAAI,CAAC,SAAS,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAE1D,CAAC,CAAC;YACF,IAAI,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,EAAE;gBACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;oBACvC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;iBACnC;aACF;iBAAM;gBACL,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACzC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;iBACnC;aACF;QAEH,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAChB,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;gBAC7B,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACtH,IAAI,CAAC,SAAS,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAEtC,CAAC,CAAC;YACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;gBACxC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;aACnC;QACH,CAAC,CAAC,CAAC;QAGH,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,IAAI,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;QAEnE,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACxC,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,mEAAmE,EAAE,CAAC,CAAC;YAC3G,iDAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC;QACtC,CAAC,CAAC;IAEJ,CAAC;IAEM,iBAAiB,CAAC,IAAW,EAAE,aAAqB;QACzD,MAAM,KAAK,GAAG,iBAAiB,CAAC;QAEhC,MAAM,SAAS,GAAmB,0CAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACjE,yCAAyC;QACzC,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,SAAS,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;QACrC,MAAM,MAAM,GAAG,QAAQ,CAAC;QACxB,MAAM,QAAQ,GAAkB,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC;QAEnF,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAErC,+CAA+C;QAC/C,sFAAsF;QACtF,kEAAkE;QAClE,0BAA0B;QAC1B,2CAA2C;QAC3C,8CAA8C;QAC9C,8CAA8C;QAC9C,kCAAkC;QAClC,yCAAyC;QACzC,kBAAkB;QAClB,uBAAuB;QACvB,wBAAwB;QACxB,qCAAqC;QACrC,oCAAoC;QACpC,MAAM;QACN,2HAA2H;QAC3H,KAAK;QACL,oCAAoC;QACpC,MAAM,WAAW,GAAQ,0CAAU,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACnF,uFAAuF;QACvF,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACnD,CAAC;IAEO,iBAAiB,CAAC,IAAqB;QAC7C,MAAM,sBAAsB,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;QACxD,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;IAClD,CAAC;IAEO,YAAY,CAAC,IAAI,EAAE,KAAS;QAClC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;IAGjB,CAAC;IAED,qDAAqD;IACrD,4HAA4H;IAC5H,qDAAqD;IACrD,IAAI;IAEJ,2DAA2D;IAC3D,oBAAoB;IAEpB,wBAAwB;IACxB,IAAI;IAEI,eAAe,CAAC,MAAW,EAAE,QAAgB;QACnD,MAAM,IAAI,GAAS,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;YACpC,IAAI,EAAE,UAAU;SACjB,CAAC,CAAC;QACH,iDAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG,eAAe,CAAC,CAAC;IACvJ,CAAC;IAEM,cAAc;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,0BAA0B,CAAC;QACzD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,SAAS,CAAC,MAAc;QACtB,MAAM,MAAM,GAAG,IAAI,6DAAe,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,2CAA2C;IAC3C,6BAA6B;IAC7B,qCAAqC;IACrC,2EAA2E;IAC3E,+DAA+D;IAC/D,IAAI;IACJ,QAAQ,CAAC,MAAc,EAAE,IAAS;QAChC,MAAM,OAAO,GAAG,IAAI,qDAAO,EAAE,CAAC;QAC9B,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,mCAAmC,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,WAAW,CAAC,IAAS;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,oBAAoB,CAAC;QACnD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,IAAS,EAAE,QAAgB,EAAE,WAAmB,EAAE,QAAgB;QACvE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,gCAAgC,GAAG,QAAQ,GAAG,eAAe,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,CAAC;QACpI,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,eAAe,CAAC,QAAgB,EAAE,QAAgB;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,kCAAkC,GAAG,QAAQ,GAAG,YAAY,GAAG,QAAQ,CAAC;QACtG,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAIM,aAAa,CAAC,SAAiB;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,iCAAiC,GAAG,SAAS,CAAC;QAC5E,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,WAAW,CAAC,IAAS,EAAE,YAAoB;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,kCAAkC,GAAG,YAAY,CAAC;QAChF,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IACD,8CAA8C;IACvC,UAAU,CAAC,SAAiB;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,8BAA8B,GAAG,SAAS,CAAC;QACzE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEM,aAAa,CAAC,SAAiB,EAAE,SAAiB,EAAE,MAAc,EAAE,OAAe;QACxF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,iCAAiC,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC;QACtJ,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,4CAA4C;IAC5C,iFAAiF;IACjF,mCAAmC;IACnC,IAAI;IACJ,YAAY,CAAC,IAAS;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,qBAAqB,CAAC;QACpD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAEM,WAAW,CAAC,SAAiB;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,+BAA+B,GAAG,SAAS,CAAC;QAC1E,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACM,gBAAgB,CAAC,SAAiB;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,kCAAkC,GAAG,SAAS,CAAC;QAC7E,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEM,cAAc,CAAC,UAAkB;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,mCAAmC,GAAG,UAAU,CAAC;QAC/E,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEM,QAAQ,CAAC,SAAS;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,4BAA4B,GAAG,SAAS,CAAC;QACvE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEM,cAAc;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,uBAAuB,CAAC;QACtD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEM,aAAa;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,sBAAsB,CAAC;QACrD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,YAAY,CAAC,IAAS,EAAE,YAAoB;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,mCAAmC,GAAG,YAAY,CAAC;QACjF,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAEM,WAAW,CAAC,SAAiB;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,+BAA+B,GAAG,SAAS,CAAC;QAC1E,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACM,cAAc,CAAC,UAAkB,EAAE,SAAiB,EAAE,MAAc,EAAE,OAAe,EAAE,SAAiB,EAAE,QAAgB;QAC/H,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,mCAAmC,GAAG,UAAU,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,GAAG,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,QAAQ,CAAC;QAC/M,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEM,eAAe;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,wBAAwB,CAAC;QACvD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,QAAQ,CAAC,IAAS;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC;QAChD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAEM,OAAO,CAAC,SAAiB;QAC9B,IAAI,SAAS,EAAE;YACb,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,2BAA2B,GAAG,SAAS,CAAC;YACtE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;SAC/B;IACH,CAAC;IACM,UAAU,CAAC,MAAc;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,2BAA2B,GAAG,MAAM,CAAC;QACnE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACM,cAAc;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,uBAAuB,CAAC;QACtD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACM,kBAAkB,CAAC,aAAa,EAAE,SAAS;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,0CAA0C,GAAG,aAAa,GAAG,aAAa,GAAG,SAAS,CAAC;QACrH,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACM,SAAS;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,kBAAkB,CAAC;QACjD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACM,gBAAgB;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,yBAAyB,CAAC;QACxD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACM,WAAW;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,oBAAoB,CAAC;QACnD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACM,cAAc,CAAC,SAAS,EAAE,SAAS;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,kCAAkC,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,CAAC;QACzG,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAGD,WAAW,CAAC,IAAS,EAAE,YAAoB;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,kCAAkC,GAAG,YAAY,CAAC;QAChF,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAEM,UAAU,CAAC,SAAiB;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,8BAA8B,GAAG,SAAS,CAAC;QACzE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACM,aAAa,CAAC,SAAiB;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,iCAAiC,GAAG,SAAS,CAAC;QAC5E,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACD,QAAQ,CAAC,IAAS;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC;QAChD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IACM,OAAO,CAAC,SAAiB;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,2BAA2B,GAAG,SAAS,CAAC;QACtE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACM,WAAW,CAAC,SAAiB,EAAE,UAAkB,EAAE,aAAqB,EAAE,SAAiB,EAAE,SAAS,EAAE,SAAS;QACtH,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,+BAA+B,GAAG,SAAS,GAAG,cAAc;YACxF,UAAU,GAAG,iBAAiB,GAAG,aAAa,GAAG,aAAa,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,CAAC;QACrI,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEM,WAAW,CAAC,SAAiB,EAAE,MAAc;QAClD,UAAU;QACV,uBAAuB;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,+BAA+B,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;QAChG,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEM,sBAAsB,CAAC,SAAiB,EAAE,SAAiB,EAAE,MAAM,EAAE,QAAgB;QAC1F,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,0CAA0C,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,gBAAgB,GAAG,QAAQ,CAAC;QACrK,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACM,6BAA6B,CAAC,SAAiB,EAAE,SAAiB,EAAE,MAAM,EAAE,SAAiB;QAClG,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,iDAAiD,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;QAC1K,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEM,8BAA8B,CAAC,SAAiB,EAAE,SAAiB,EAAE,MAAM,EAAE,SAAiB;QACnG,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,kDAAkD,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;QAC3K,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACD,YAAY,CAAC,IAAS;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,oBAAoB,CAAC;QACnD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IACM,WAAW,CAAC,SAAiB;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,+BAA+B,GAAG,SAAS,CAAC;QAC1E,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACM,cAAc,CAAC,SAAiB;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,kCAAkC,GAAG,SAAS,CAAC;QAC7E,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACD,oBAAoB,CAAC,IAAS,EAAE,YAAoB,EAAE,QAAgB;QACpE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,2CAA2C,GAAG,YAAY,GAAG,YAAY,GAAG,QAAQ,CAAC;QACnH,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAEM,iBAAiB,CAAC,SAAiB;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,oCAAoC,GAAG,SAAS,CAAC;QAC/E,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEM,mBAAmB,CAAC,SAAiB;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,mCAAmC,GAAG,SAAS,CAAC;QAC9E,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEM,uBAAuB,CAAC,SAAiB;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,2CAA2C,GAAG,SAAS,CAAC;QACtF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEM,wBAAwB,CAAC,SAAiB;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,4CAA4C,GAAG,SAAS,CAAC;QACvF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEM,kBAAkB,CAAC,SAAiB;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,qCAAqC,GAAG,SAAS,CAAC;QAChF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEM,YAAY;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC;QAChD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACM,SAAS;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,kBAAkB,CAAC;QACjD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACM,qBAAqB;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,8BAA8B,CAAC;QAC7D,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACM,iBAAiB;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,0BAA0B,CAAC;QACzD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACM,iBAAiB;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,0BAA0B,CAAC;QACzD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACD,QAAQ,CAAC,IAAS;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC;QAChD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IACD,cAAc,CAAC,IAAS;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,uBAAuB,CAAC;QACtD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IACD,QAAQ,CAAC,IAAS;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC;QAChD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IACM,oBAAoB,CAAC,SAAiB,EAAE,MAAc,EAAE,YAAoB;QACjF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,wCAAwC,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,gBAAgB,GAAG,YAAY,CAAC;QAC3I,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEM,4BAA4B,CAAC,SAAiB,EAAE,MAAc,EAAE,YAAoB;QACzF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,gDAAgD,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,aAAa,GAAG,YAAY,CAAC;QAChJ,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACM,aAAa;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,sBAAsB,CAAC;QACrD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEM,UAAU,CAAC,KAAa;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,0BAA0B,GAAG,KAAK,CAAC;QACjE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACD,SAAS,CAAC,IAAS,EAAE,YAAoB;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,gCAAgC,GAAG,YAAY,CAAC;QAC9E,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAEM,UAAU,CAAC,iBAAyB;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,uCAAuC,GAAG,iBAAiB,CAAC;QAC1F,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEM,iBAAiB,CAAC,SAAiB;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,qCAAqC,GAAG,SAAS,CAAC;QAChF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEM,UAAU,CAAC,OAAe,EAAE,SAAiB;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,4BAA4B,GAAG,OAAO,GAAG,aAAa,GAAG,SAAS,CAAC;QACjG,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,cAAc,CAAC,IAAS;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,wBAAwB,CAAC;QACvD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAEM,aAAa,CAAC,SAAiB,EAAE,SAAiB;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,iCAAiC,GAAG,SAAS,GAAG,iBAAiB,GAAG,SAAS,CAAC;QAC5G,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEM,UAAU,CAAC,SAAS;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,8BAA8B,GAAG,SAAS,CAAC;QACzE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEM,SAAS,CAAC,SAAS;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,6BAA6B,GAAG,SAAS,CAAC;QACxE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACD,cAAc,CAAC,IAAS,EAAE,YAAoB;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,qCAAqC,GAAG,YAAY,CAAC;QACnF,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IACM,gBAAgB,CAAC,cAAsB,EAAE,KAAa;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,yCAAyC,GAAG,cAAc,GAAG,SAAS,GAAG,KAAK,CAAC;QAC7G,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEM,qBAAqB,CAAC,IAAS;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,wCAAwC,GAAG,IAAI,CAAC;QAC9E,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,qBAAqB,CAAC,IAAS;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,8BAA8B,CAAC;QAC7D,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;CACF;;YAnwB2B,kDAAI;;AAXnB,aAAa;IAHzB,gEAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GACW,aAAa,CA8wBzB;AA9wByB;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZgC;AACR;AACkC;AAEvC;AACF;AACU;AACmB;AACL;AAEpB;AAO/C,IAAa,iBAAiB,GAA9B,MAAa,iBAAiB;IAsE5B,YAAoB,aAA4B,EACvC,MAAiB,EAChB,iBAAoC,EACpC,OAA4B;QAHlB,kBAAa,GAAb,aAAa,CAAe;QACvC,WAAM,GAAN,MAAM,CAAW;QAChB,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,YAAO,GAAP,OAAO,CAAqB;QArEtC,cAAS,GAAG,KAAK,CAAC;QAelB,WAAM,GAAG,KAAK,CAAC;QACf,uBAAkB,GAAW,IAAI,CAAC;QAElC,SAAI,GAAG,IAAI,0DAAW,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACnC,mBAAc,GAAG,IAAI,0DAAW,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7D,oBAAe,GAAG,IAAI,0DAAW,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9D,MAAC,GAAW,CAAC,CAAC;QACd,eAAU,GAAG,EAAE,CAAC;QAChB,kBAAa,GAAG,EAAE,CAAC;QAEnB,gBAAW,GAAG,EAAE,CAAC;QACjB,WAAM,GAAY,KAAK,CAAC;QACxB,WAAM,GAAG,EAAE,CAAC;QAEZ,UAAK,GAAG,IAAI,CAAC;QAEb,mBAAc,GAAG,KAAK,CAAC;QACvB,eAAU,GAAG,EAAE,CAAC;QAEhB,gBAAW,GAAG,KAAK,CAAC;QAGpB,cAAS,GAAG,KAAK,CAAC;QAClB,kBAAa,GAAG,KAAK,CAAC;QA0BtB,mBAAc,GAAY,KAAK,CAAC;QAM9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC3D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAClE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAClE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QACtE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACtD,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;YAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC;SACxC;aACI;YACH,wBAAwB;YACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;SAC9C;QACD,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,CAAC;QACzF,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC1C;QACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC5B,CAAC;IAED,YAAY;QACV,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACtD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB;QACnB,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YAC/D,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7D,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;gBAC5D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAChD,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;oBAC3C,IAAI,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;oBACjF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;wBACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;wBACjC,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;wBAC3E,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;4BACvB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;yBACzD;qBAEF;iBACF;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC7D,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YACxB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;YACvE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;gBACrB,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAE1C,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;gBAC5E,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;gBACnE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC7B,2GAA2G;gBAC3G,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,GAAG,KAAK;aACvE;iBAAM;gBACL,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;gBAClB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;aACzB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;QACpC,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CACzC,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CACL,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnI,CAAC,IAAI,CAAC,oBAAoB,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACrJ,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACrI,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3H,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC7H,CAAC,IAAI,CAAC,cAAc,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzI,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAC9H,CAAC;QACJ,CAAC,CAEF,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE;YACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;YACpC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;YACzC,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;aAC1C;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,aAAa,EAAE;gBAEtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aACzC;YACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC;YACpC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;aAC1C;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACxC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IAED,WAAW;QACT,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACjE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;YAC5B,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;gBAC7D,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;aACvB;YACD,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;gBAClC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;iBACI;gBACH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,4GAA4G;gBAC5G,IAAI,IAAI,CAAC,eAAe,EAAE;oBACxB,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,UAAU,EAAE;wBAC9E,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC;qBAC9G;yBACI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,IAAI,EAAE;wBAC7E,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;qBAClG;iBACF;gBACD,4GAA4G;gBAC5G,4BAA4B;gBAC5B,GAAG;gBACH,SAAS;gBACT,8EAA8E;gBAC9E,8BAA8B;gBAC9B,IAAI;gBACJ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;gBAChE,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBACxB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;gBACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;gBACzC,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;oBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;iBAC1C;gBACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACxF,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;oBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;wBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;iBAC3C;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YAC9C,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC3C,OAAO,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;YAC/D,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;YACrD,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACtC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAEtC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YACnC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;YACzC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;YACpC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YACnC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;YACpC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YAClC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YAClC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YAClC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;YACpC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YAClC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;YACrC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;YACrC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;YACtC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YACnC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YAClC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YACnC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YAClC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACxB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;SAC/B;QAED,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,GAAG,WAAW,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,EAAE,iBAAiB,EAAE,0DAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAC9R,CAAC;IAED,IAAI,CAAC,QAAQ;QACX,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,0BAA0B;QACtD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC9D,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;YACzB,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/B,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAClF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC1B,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;oBACnB,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;wBAC7D,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;wBACvC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;wBAC9B,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;wBAC9E,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;4BACzB,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;4BACpE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;4BACvB,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,OAAO,CAAC,EAAE;gCAChJ,IAAI,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,eAAe,CAAC,CAAC;gCACrE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;gCAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;6BACrE;yBACF;oBACH,CAAC,CAAC,CAAC;iBACJ;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB;QACnB,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC7D,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB;IACrB,+DAA+D;IAC/D,8CAA8C;IAC9C,sCAAsC;IACtC,QAAQ;IACR,IAAI;IAEJ,oBAAoB;IACpB,8DAA8D;IAC9D,8CAA8C;IAC9C,qCAAqC;IACrC,QAAQ;IACR,IAAI;IAEJ,UAAU,CAAC,GAAW;QACpB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;YAC1D,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,GAAG,GAAG,KAAK,GAAG,KAAK;SAC1B,CAAC,CAAC;QAEH,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC;QAC9D,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QACnE,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACjD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrD,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjE,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACzE,IAAI,GAAG,KAAK,MAAM,EAAE;YAClB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAC/C,SAAS,CAAC,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAC/C,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrD,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;SAC1D;QACD,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;QACD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,qEAAqE;QACrE,mEAAmE;QACnE,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACjD,SAAS,CAAC,iBAAiB,CAAC,GAAG,GAAG,IAAI,CAAC;QACvC,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjE,SAAS,CAAC,iBAAiB,CAAC,GAAG,GAAG,IAAI,CAAC;QACvC,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrD,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAEzE,IAAI,GAAG,KAAK,MAAM,EAAE;YAClB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACjD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrD,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACjD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC3D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAC/C,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACjD,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACjD,SAAS,CAAC,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YAC/D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAC/C,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;YACzE,+GAA+G;YAC/G,sDAAsD;YACtD,MAAM;YAEN,IAAI,IAAI,CAAC,GAAG;gBACV,SAAS,CAAC,iBAAiB,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;gBAClD,SAAS,CAAC,iBAAiB,CAAC,GAAG,GAAG,IAAI,CAAC;YAC5C,IAAI,IAAI,CAAC,GAAG;gBACV,SAAS,CAAC,iBAAiB,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;gBAClD,SAAS,CAAC,iBAAiB,CAAC,GAAG,GAAG,IAAI,CAAC;YAC5C,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACzD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;SACxD;QAED,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;gBAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;iBACI;gBAEH,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;YACD,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;gBAC1C,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,IAAI,GAAG,KAAK,KAAK,EAAE;oBACjB,SAAS,GAAG,oBAAoB,CAAC;iBAClC;qBAAM;oBACL,SAAS,GAAG,sBAAsB,CAAC;iBACpC;gBAED,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBACxB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;oBAC7D,UAAU,EAAE,yBAAyB;oBACrC,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,KAAK;iBAChC,CAAC,CAAC;gBAEH,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,CAAC,EAAE,GAAG,CAAC,CAAC;gBACR,YAAY,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBAC7C,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;oBACvB,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;wBAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;qBACnB;yBACI;wBACH,IAAI,CAAC,WAAW,EAAE,CAAC;wBACnB,IAAI,CAAC,QAAQ,EAAE,CAAC;qBACjB;gBACH,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAClF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,OAAO;QACb,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7E,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YACpD,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACnC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACvC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;SACxC;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACpB;QACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAE1B,CAAC;IACD,YAAY,CAAC,IAAI;QACf,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC;QACtC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACpD,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;QACxI,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YAClD,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACtC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACxC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACtC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACtC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;SACnC;aACI;YACH,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;SAClB;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YAC/C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SACvC;IACH,CAAC;IAED,cAAc,CAAC,OAAO;QACpB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;YAC1D,IAAI,EAAE,4CAA4C,GAAG,OAAO,CAAC,WAAW,GAAG,MAAM,GAAG,IAAI;SACzF,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBAClE,IAAI,IAAI,CAAC,EAAE,EAAE;wBACX,IAAI,CAAC,QAAQ,EAAE,CAAC;wBAChB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;wBACvB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;qBACzC;oBACD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;oBACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;oBACxB,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;;YA3jBoC,6DAAa;YAC/B,kEAAS;YACG,8EAAiB;YAC3B,kEAAmB;;AAzE3B,iBAAiB;IAL7B,+DAAS,CAAC;QACT,QAAQ,EAAE,cAAc;QACxB,0JAAwC;QACxC,SAAS,EAAE,CAAC,6DAAa,CAAC;KAC3B,CAAC;GACW,iBAAiB,CAioB7B;AAjoB6B;AAyoB9B,IAAa,uBAAuB,GAApC,MAAa,uBAAuB;IA+ClC,YACS,SAAgD,EACvB,IAAS,EAClC,aAA4B,EAC3B,iBAAoC,EACpC,QAAkB,EAClB,OAA4B;QAL7B,cAAS,GAAT,SAAS,CAAuC;QACvB,SAAI,GAAJ,IAAI,CAAK;QAClC,kBAAa,GAAb,aAAa,CAAe;QAC3B,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,aAAQ,GAAR,QAAQ,CAAU;QAClB,YAAO,GAAP,OAAO,CAAqB;QAhDtC,gBAAW,GAAG,KAAK,CAAC;QAQpB,QAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACjB,QAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QAMjB,aAAQ,GAAG,EAAE,CAAC;QAKd,uBAAuB;QACvB,sBAAsB;QACtB,cAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,cAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,YAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QASrB,gBAAW,GAAG,KAAK,CAAC;QACpB,2BAAsB,GAAa,CAAC,mFAAkB,CAAC,OAAO,EAAE,mFAAkB,CAAC,UAAU,EAAE,mFAAkB,CAAC,IAAI,CAAC,CAAC;QACxH,uBAAkB,GAAW,IAAI,CAAC;QAClC,mBAAc,GAAsB,EAAE,CAAC;QACvC,iBAAY,GAAW,CAAC,CAAC;QACzB,uBAAkB,GAAG,mFAAkB,CAAC;QACxC,aAAQ,GAAe,EAAE,CAAC;QAUxB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,EAAE;YACtB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;YAChB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;SACjB;IACH,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAC7E,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;oBACxB,IAAI,CAAC,sBAAsB,EAAE,CAAC;oBAC9B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC;oBAChC,IAAI,IAAI,CAAC,eAAe,EAAE;wBACxB,2GAA2G;wBAC3G,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,UAAU,EAAE;4BAC9E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;4BAC5G,IAAI,CAAC,sBAAsB,GAAG,CAAC,mFAAkB,CAAC,IAAI,CAAC,CAAC;yBACzD;6BACI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,IAAI,EAAE;4BAC7E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;4BACpF,IAAI,CAAC,sBAAsB,GAAG,CAAC,mFAAkB,CAAC,IAAI,CAAC,CAAC;yBACzD;6BACI;4BACH,IAAI,CAAC,sBAAsB,GAAG,CAAC,mFAAkB,CAAC,UAAU,EAAE,mFAAkB,CAAC,IAAI,CAAC,CAAC;yBAGxF;qBACF;iBACF;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;YACvB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;YAClB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;SACvB;QACD,IAAI,IAAI,CAAC,kBAAkB,IAAI,mFAAkB,CAAC,OAAO,EAAE;YACzD,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;SACnB;aACI,IAAI,IAAI,CAAC,kBAAkB,IAAI,mFAAkB,CAAC,UAAU,EAAE;YACjE,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;SACnB;IACH,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAChC,CAAC;IAED,sBAAsB;QACpB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,SAAS,EAAE;YACvC,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACxG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;oBACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;iBAC3B;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,UAAU;QACR,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,QAAQ;QACN,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,SAAS,GAAG,CAAC,CAAC;QACpB,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC5H,IAAI,CAAC,QAAQ,GAAG,kCAAkC,CAAC;YACnD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;aAExB;YACD,KAAK,EAAE,CAAC;SACT;QAED,IAAI,KAAK,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,EAAE;YAClC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;gBAGvB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACnC;iBAAM;gBACL,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACnC;SACF;IACH,CAAC;IAGD,iBAAiB,CAAC,GAAW;QAC3B,MAAM,IAAI,GAAG;YACX,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,aAAa,EAAE,IAAI,CAAC,WAAW;YAC/B,IAAI,EAAE,IAAI,CAAC,YAAY;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,KAAK;YAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,aAAa,EAAE,IAAI,CAAC,WAAW;YAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB;QAGD,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAEjD,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;oBAEpC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBAC5B;qBAAM;oBACL,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;iBAC/B;YAEH,CAAC,CAAC,CAAC;SACJ;aAAM;YAEL,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAEjD,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;oBAEpC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBAC5B;qBAAM;oBACL,IAAI,CAAC,QAAQ,GAAG,sBAAsB,CAAC;iBACxC;YACH,CAAC,CAAC,CAAC;SACJ;IAEH,CAAC;IAED,WAAW;QACT,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,SAAS,GAAG,CAAC,CAAC;QACpB,IAAI,IAAI,CAAC,SAAS,IAAI,SAAS;YAC7B,IAAI,CAAC,QAAQ,KAAK,SAAS;YAC3B,IAAI,CAAC,QAAQ,KAAK,SAAS;YAC3B,IAAI,CAAC,MAAM,KAAK,SAAS;YACzB,CAAC,IAAI,CAAC,kBAAkB;YACxB,IAAI,CAAC,KAAK,KAAK,SAAS;YACxB,IAAI,CAAC,QAAQ,KAAK,SAAS;YAC3B,IAAI,CAAC,MAAM,KAAK,EAAE;YAClB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE;YAC5B,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE;YAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE;YAC3B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;YACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC7B,IAAI,CAAC,QAAQ,GAAG,kCAAkC,CAAC;YACnD,KAAK,EAAE,CAAC;SACT;QACD,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,CAAC,kBAAkB,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACxF,IAAI,CAAC,QAAQ,GAAG,kCAAkC,CAAC;YACnD,OAAO;SACR;QAED,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACrG,IAAI,CAAC,QAAQ,GAAG,kCAAkC,CAAC;YACnD,OAAO;SACR;QACD,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,UAAU,GAAG,+CAA+C,CAAC;YACjE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;gBACjC,IAAI,CAAC,QAAQ,GAAG,0BAA0B,CAAC;gBAC3C,OAAO;aACR;SACF;QAED,IAAI,KAAK,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,EAAE;YAClC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;gBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACxB;iBAAM;gBACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACxB;SACF;IACH,CAAC;IAED,eAAe;QACb,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACpD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;SACnB;QACD,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;SACtB;QACD,MAAM,IAAI,GAAG;YACX,YAAY,EAAE,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ;YAClD,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,KAAK;YACnB,aAAa,EAAE,IAAI,CAAC,WAAW;YAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,aAAa,EAAE,IAAI,CAAC,WAAW;YAC/B,aAAa,EAAE,IAAI,CAAC,WAAW;YAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;SAC5C,CAAC;QAGF,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5I,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxB,IAAI,CAAC,QAAQ,GAAG,wBAAwB,CAAC;gBACzC,OAAO;aACR;YACD,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACrD,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;oBACvC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBAC5B;qBAAM;oBACL,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;iBAC/B;YACH,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;gBACpD,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC5I,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;oBACxB,IAAI,CAAC,QAAQ,GAAG,wBAAwB,CAAC;oBACzC,OAAO;iBACR;aACF;YACD,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACrD,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;oBACvC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBAC5B;qBAAM;oBACL,IAAI,CAAC,QAAQ,GAAG,sBAAsB,CAAC;iBAExC;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,CAAC,KAAK;QACX,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC,KAAK;QACR,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,WAAW,CAAC,KAAK;QACf,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;IACnC,CAAC;IAED,GAAG,CAAC,IAAY,EAAE,KAAoC;QACpD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;QAChB,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAED,GAAG,CAAC,IAAY,EAAE,KAAoC;QACpD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;QAChB,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;QACjC,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAClC,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAChC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,GAAG;QACT,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;QACpD,IAAI,CAAC,OAAO,GAAG,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,IAAI,OAAO,GAAG,GAAG,CAAC,IAAI,OAAO,IAAI,EAAE;YACpF,OAAO,KAAK,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU,CAAC,KAAU;QACnB;QACE,+CAA+C;QAC/C,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAChD,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,gBAAgB;YACpE,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,gBAAgB;YACpE,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,gBAAgB;YACpE,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,gBAAgB;YACpE,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,cAAc;YAClE,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,cAAc;YAClE,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,cAAc;YAClE,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,cAAc;YAClE,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAE,yBAAyB;UACvE;YACA,OAAO;SACR;QAED,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,IAAI,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,IAAI,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,EAAE;YACjH,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;IACH,CAAC;IAED,aAAa,CAAC,KAAU;QACtB,IAAI,EAAE,GAAG,yJAAyJ,CAAC;QACnK,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,EAAE;YACjD,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE;gBACvB,KAAK,CAAC,cAAc,EAAE,CAAC;aACxB;SACF;IACH,CAAC;IAED,QAAQ,CAAC,QAAwB;QAC/B,IAAI,QAAQ,GAAmB,QAAQ,CAAC,MAAM,CAAC;IACjD,CAAC;IAGD,IAAI,CAAC,KAAK;QACR,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,WAAW,CAAC,KAAU;QACpB,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACpD,6CAA6C;YAC7C,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5I,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,IAAI,CAAC,QAAQ,GAAG,wBAAwB,CAAC;YACzC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACrB,CAAC,EAAE,IAAI,CAAC,CAAC;SACV;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,GAAG,8BAA8B,CAAC;QACxC,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;gBACzB,IAAI,CAAC,QAAQ,GAAG,sBAAsB,CAAC;gBACvC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBAChB,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;gBACrB,CAAC,EAAE,IAAI,CAAC,CAAC;aACV;SACF;IACH,CAAC;CACF;;YA5XqB,qEAAY;4CAC7B,oDAAM,SAAC,wEAAe;YACD,6DAAa;YACR,8EAAiB;YAC1B,wDAAQ;YACT,kEAAmB;;AArD3B,uBAAuB;IANnC,+DAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,kIAA0B;QAC1B,6BAA6B;QAC7B,SAAS,EAAE,CAAC,6DAAa,EAAE,wDAAQ,CAAC;KACrC,CAAC;IAkDG,6GAAM,CAAC,wEAAe,CAAC;GAjDf,uBAAuB,CA4anC;AA5amC;;;;;;;;;;;;;;;;;;;;;;AC1pBc;AACA;AAEG;AACmB;AACzB;AAM/C,IAAa,4BAA4B,GAAzC,MAAa,4BAA4B;IAiCvC,YAAoB,aAA4B,EAAU,OAA4B;QAAlE,kBAAa,GAAb,aAAa,CAAe;QAAU,YAAO,GAAP,OAAO,CAAqB;QAhCtF,cAAS,GAAW,0DAAS,CAAC;QAI9B,WAAM,GAAY,KAAK,CAAC;QACxB,WAAM,GAAG,EAAE,CAAC;QAEZ,UAAK,GAAG,IAAI,CAAC;QACb,MAAC,GAAW,CAAC,CAAC;QACd,eAAU,GAAG,EAAE,CAAC;QAChB,kBAAa,GAAG,EAAE,CAAC;QAEnB,gBAAW,GAAG,EAAE,CAAC;QACjB,kBAAa,GAAG,KAAK,CAAC;QACtB,gBAAW,GAAG,EAAE,CAAC;QACjB,oBAAe,GAAG,EAAE,CAAC;QACrB,aAAQ,GAAG,EAAE,CAAC;QACd,eAAU,GAAG,EAAE,CAAC;QAEhB,cAAS,GAAG,KAAK,CAAC;QAClB,kBAAa,GAAG,KAAK,CAAC;QAMtB,eAAU,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,aAAQ,GAAG,EAAE,CAAC;IAK4E,CAAC;IAE3F,QAAQ;QACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAC7D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACtD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;YAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;SAC3C;aACI;YACH,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SACjB;QACD,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IAED,iBAAiB,CAAC,KAAK;QACrB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC;QAC/D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;SACnC;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC7D,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;gBAC9E,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;gBACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;gBAC3B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;gBACxB,IAAI,IAAI,CAAC,eAAe,EAAE;oBACxB,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,UAAU,EAAE;wBAC9E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;qBACrG;yBACI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,IAAI,EAAE;wBAC7E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;wBACjJ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;wBACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;qBAC3C;iBACF;gBACD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;oBACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;iBACrH;gBACD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;oBAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;iBAAE;gBAC1H,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe;QACb,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;YAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;aACnH;YACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;SACrF;QACD,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC/C,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;gBACtB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;gBAC1B,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,EAAE;oBAEvC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACzD,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;wBAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BAEhD,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gCAChD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;6BAChD;yBACF;qBACF;iBACF;gBACD,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;oBAE1C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;wBACjB,SAAS,EAAE,IAAI,CAAC,eAAe;wBAC/B,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,oBAAoB;wBAC/C,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM;wBACnC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ;qBACxC,CAAC,CAAC;iBACJ;aACF;SACF;aACI;YACH,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;YAChC,OAAO;SACR;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;QAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;SACjC;aACI;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YACrC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;aAC1C;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxF,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IAED,wBAAwB;QACtB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC9E,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,UAAU;QACR,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAC5D,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CACpC,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CACL,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACjG,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzG,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAC3C,CAAC,EAAE,EAAE,EAAE;oBACL,OAAO,CACL,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAClF;gBACH,CAAC,CACF,CACA,CACA,CAAC,MAAM,CACT;QACH,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;QAC5B,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;YAC7B,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;YAChC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,OAAO;SACR;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC;YAChC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YACrC,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;aAC1C;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,aAAa,EAAE;gBAEtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aACzC;YACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC;YACnC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;aAC1C;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,IAAI,CAAC,aAAa;oBACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;YAED,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IAGD,IAAI,CAAC,QAAQ;QACX,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,0BAA0B;QACtD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,YAAY;QACV,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACtC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACzC,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,IAAI,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpC,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;aACpC;YACD,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC;YAC7B,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACvB,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC1B,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC3B,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;SAC1B;QACD,IAAI,IAAS,CAAC;QACd,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;SACtB;aACI;YACH,IAAI,GAAG,kBAAkB,CAAC;SAC3B;QACD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,GAAG,2BAA2B,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,0BAA0B,EAAE,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,IAAI,EAAE,iCAAiC,EAAE,0DAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IACjV,CAAC;CACF;;YAvOoC,6DAAa;YAAmB,kEAAmB;;AAjC3E,4BAA4B;IAJxC,+DAAS,CAAC;QACT,QAAQ,EAAE,0BAA0B;QACpC,8LAAoD;KACrD,CAAC;GACW,4BAA4B,CAwQxC;AAxQwC;;;;;;;;;;;;;;;;;;;;;;ACXS;AACA;AACG;AACmB;AACzB;AAO/C,IAAa,2BAA2B,GAAxC,MAAa,2BAA2B;IA+BtC,YAAmB,aAA4B,EAAU,OAA4B;QAAlE,kBAAa,GAAb,aAAa,CAAe;QAAU,YAAO,GAAP,OAAO,CAAqB;QA9BrF,cAAS,GAAW,0DAAS,CAAC;QAG9B,WAAM,GAAY,KAAK,CAAC;QACxB,WAAM,GAAG,EAAE,CAAC;QAEZ,UAAK,GAAG,IAAI,CAAC;QACb,MAAC,GAAW,CAAC,CAAC;QACd,eAAU,GAAG,EAAE,CAAC;QAChB,kBAAa,GAAG,EAAE,CAAC;QAEnB,gBAAW,GAAG,EAAE,CAAC;QACjB,kBAAa,GAAG,KAAK,CAAC;QACtB,eAAU,GAAG,EAAE,CAAC;QAEhB,cAAS,GAAG,KAAK,CAAC;QAClB,kBAAa,GAAG,KAAK,CAAC;QAItB,eAAU,GAAG,EAAE,CAAC;QAGhB,aAAQ,GAAG,EAAE,CAAC;QAGd,eAAU,GAAG,IAAI,IAAI,EAAE,CAAC;QAKtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAC7D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;SAEvC;aACI;YACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SAC/C;IACH,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;YAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;SAC3C;aACI;YACH,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SACjB;IACH,CAAC;IAED,iBAAiB,CAAC,KAAK;QACrB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC;QAC/D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;SACnC;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,OAAO;QAEL,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC7D,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAEvC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;gBACvE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;gBACvC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC;gBAClC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;gBAExB,IAAI,IAAI,CAAC,eAAe,EAAE;oBACxB,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,UAAU,EAAE;wBAC9E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;qBAErG;yBACI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,IAAI,EAAE;wBAC7E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;wBACjJ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;wBACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;qBAC3C;iBACF;gBACD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;oBACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;iBAC5H;gBACD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;oBAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;iBAAE;gBAC1H,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IACD,eAAe;QAEb,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACvE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC;YAClC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;gBAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;iBAC1H;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;aAC5F;YAED,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;gBAChC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;iBACI;gBACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;gBAE9D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;gBACvC,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;oBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;iBAC1C;gBACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;oBACjC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;wBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;iBAC3C;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,iBAAiB;QAEf,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACvE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC;QAEpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,sBAAsB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CACjD,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CACL,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChH,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChH,CAAC,IAAI,CAAC,kBAAkB,KAAK,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC9H,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAC3G,CAAC;QACJ,CAAC,CAEF,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,sBAAsB,CAAC;QACzC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE;YAC/B,sBAAsB;YACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YAC1B,2BAA2B;YAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YAClC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YACvC,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;aAC1C;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,aAAa,EAAE;gBAEtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aACzC;YACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;aAAM;YAEL,IAAI,CAAC,QAAQ,GAAG,sBAAsB,CAAC,MAAM,CAAC;YAC9C,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;aAC1C;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,IAAI,CAAC,aAAa;oBACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;YAED,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IAGD,YAAY;QACV,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAE1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAC5C,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACtC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAC5C,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;YAEvD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;YACvC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;SAG5B;QACD,IAAI,IAAS,CAAC;QACd,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;SACtB;aACI;YACH,IAAI,GAAG,kBAAkB,CAAC;SAC3B;QAGD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,GAAG,+BAA+B,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,8BAA8B,EAAE,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,IAAI,EAAE,qCAAqC,EAAE,0DAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAC7V,CAAC;IAED,IAAI,CAAC,QAAQ;QACX,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,0BAA0B;QACtD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;CAGF;;YAxNmC,6DAAa;YAAmB,kEAAmB;;AA/B1E,2BAA2B;IALvC,+DAAS,CAAC;QACT,QAAQ,EAAE,yBAAyB;QACnC,2LAAmD;KAEpD,CAAC;GACW,2BAA2B,CAuPvC;AAvPuC;;;;;;;;;;;;;;;;;;;;;;;ACXkB;AAC0B;AAClC;AACG;AACN;AAM/C,IAAa,yBAAyB,GAAtC,MAAa,yBAAyB;IAsCpC,YAAoB,aAA4B,EAAS,MAAiB,EAAS,OAA4B;QAA3F,kBAAa,GAAb,aAAa,CAAe;QAAS,WAAM,GAAN,MAAM,CAAW;QAAS,YAAO,GAAP,OAAO,CAAqB;QAnC/G,cAAS,GAAG,KAAK,CAAC;QAClB,kBAAa,GAAG,KAAK,CAAC;QACtB,gBAAW,GAAG,KAAK,CAAC;QACpB,MAAC,GAAW,CAAC,CAAC;QACd,eAAU,GAAG,EAAE,CAAC;QAChB,kBAAa,GAAG,EAAE,CAAC;QAEnB,gBAAW,GAAG,EAAE,CAAC;QACjB,WAAM,GAAY,KAAK,CAAC;QACxB,eAAU,GAAW,EAAE,CAAC;QACxB,eAAU,GAAG,EAAE,CAAC;QAGhB,cAAS,GAAG,KAAK,CAAC;QAKlB,WAAM,GAAG,EAAE,CAAC;QAEZ,UAAK,GAAG,IAAI,CAAC;QAcb,UAAK,GAAG,KAAK,CAAC;QAEZ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAClE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAEtD,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,kBAAkB,CAAC,CAAC;QACnF,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC1C;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;IAEjB,CAAC;IACD,qBAAqB;QACnB,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YAC/D,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7D,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;gBAC5D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC5C,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;oBACjC,IAAI,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC9E,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;wBACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;wBACjC,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;wBACvE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;4BACvB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;yBACzD;qBAEF;iBACF;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,QAAQ;QACX,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,sBAAsB;QAClD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC7E,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;YAC1C,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;gBACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;iBACI;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;gBACjE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAE3B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBAExB,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;oBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;iBAC1C;gBACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;oBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;wBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;iBAC3C;aACF;QACH,CAAC,CAAC,CAAC;IAGL,CAAC;IAED,UAAU;QACR,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC;QACrC,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAC3C,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CACL,CAAC,IAAI,CAAC,oBAAoB,KAAK,IAAI,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClI,CAAC,IAAI,CAAC,uBAAuB,KAAK,IAAI,IAAI,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAEzI,CAAC;QACJ,CAAC,CACF,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;YAClC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC;YACrC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;YAC1C,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;aAC1C;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,aAAa,EAAE;gBAEtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aACzC;YACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;aAAM;YAEL,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC;YACrC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;aAC1C;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,IAAI,CAAC,aAAa;oBACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;YAED,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IAID,YAAY;QACV,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QAC7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,OAAO,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;YAClE,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC;YAC/D,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;YACvC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CACtC,CAAC;YACF,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC;YAC5C,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAEhC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAE7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YAClC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;SAC/B;QAED,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,GAAG,oBAAoB,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,mBAAmB,EAAE,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,EAAE,0BAA0B,EAAE,0DAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IACzT,CAAC;IAED,OAAO;QACL,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC7D,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YACxB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;YACvE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;aACtC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa;QACX,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,UAAU,CAAC,GAAW;QACpB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE;YAC3D,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,GAAG,GAAG,KAAK,GAAG,KAAK;SAC1B,CAAC,CAAC;QACH,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/D,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC3B;QACD,IAAI,GAAG,KAAK,MAAM,EAAE;YAElB,SAAS,CAAC,iBAAiB,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;YAC7E,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;YACzE,SAAS,CAAC,iBAAiB,CAAC,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC;YACnF,SAAS,CAAC,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;SAEhD;QAED,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAEzC,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;gBAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;iBACI;gBACH,IAAI,CAAC,kBAAkB,EAAE,CAAC;aAC3B;YAED,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;gBAEhC,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,IAAI,GAAG,KAAK,KAAK,EAAE;oBACjB,SAAS,GAAG,oBAAoB,CAAC;iBAClC;qBACI;oBAEH,SAAS,GAAG,sBAAsB,CAAC;iBACpC;gBACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAE1B,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE;oBAC9D,UAAU,EAAE,yBAAyB;oBACrC,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,KAAK;iBAEhC,CAAC,CAAC;gBAEH,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC5B,CAAC,EAAE,GAAG,CAAC,CAAC;gBACR,YAAY,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBAC7C,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;oBACtB,0BAA0B;oBAE1B,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;wBAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;qBACnB;yBACI;wBACH,IAAI,CAAC,kBAAkB,EAAE,CAAC;qBAC3B;gBAGH,CAAC,CAAC,CAAC;aAIJ;QAEH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,OAAO;QAEnB,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;QAErD,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;QACzD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACxD,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC;QAE/D,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,UAAU,CAAC,GAAG,EAAE;YAEd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAEhD,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE;oBACrE,UAAU,EAAE,CAAC;iBACd;aACF;YACD,IAAI,CAAC,UAAU,EAAE;gBACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;aAEzB;iBAAM;gBACL,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAClB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;aACzB;QACH,CAAC,EAAE,GAAG,CAAC,CAAC;QACR,0BAA0B;IAC5B,CAAC;IAED,UAAU;QACR,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAChE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QAEN,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;YAChD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SACvC;IACH,CAAC;IAED,eAAe,CAAC,OAAO;QACrB,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;QACrD,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,UAAU,CAAC,GAAG,EAAE;YAEd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAEhD,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE;oBACrE,UAAU,EAAE,CAAC;iBACd;aACF;YAED,IAAI,UAAU,EAAE;gBACd,IAAI,CAAC,UAAU,CAAC,iCAAiC,CAAC,CAAC;aACpD;iBACI;gBAGH,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE;oBAC3D,UAAU,EAAE,yBAAyB;oBACrC,IAAI,EAAE,oDAAoD,GAAG,OAAO,CAAC,oBAAoB,GAAG,MAAM,GAAG,IAAI;iBAE1G,CAAC,CAAC;gBACH,2BAA2B;gBAE3B,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oBACzC,IAAI,MAAM,EAAE;wBAEV,0BAA0B;wBAE1B,IAAI,CAAC,UAAU,EAAE;4BACf,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gCAEtE,IAAI,IAAI,CAAC,EAAE,EAAE;oCACX,IAAI,CAAC,QAAQ,EAAE,CAAC;oCAChB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oCACtB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;oCACxC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;oCACxB,IAAI,CAAC,kBAAkB,EAAE,CAAC;iCAC3B;gCACD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;gCACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;4BAG1B,CAAC,CAAC,CAAC;yBACJ;6BAAM;4BACL,qDAAqD;yBACtD;qBAIF;gBACH,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,EAAE,IAAI,CAAC,CAAC;IAEX,CAAC;CAEF;;YA1WoC,6DAAa;YAAiB,kEAAS;YAAkB,kEAAmB;;AAtCpG,yBAAyB;IAJrC,+DAAS,CAAC;QACT,QAAQ,EAAE,sBAAsB;QAChC,kLAAgD;KACjD,CAAC;GACW,yBAAyB,CAgZrC;AAhZqC;AAyZtC,IAAa,wBAAwB,GAArC,MAAa,wBAAwB;IAanC,YACS,SAAiD,EACxB,IAAS,EAAS,aAA4B,EAAU,OAA4B;QAD7G,cAAS,GAAT,SAAS,CAAwC;QACxB,SAAI,GAAJ,IAAI,CAAK;QAAS,kBAAa,GAAb,aAAa,CAAe;QAAU,YAAO,GAAP,OAAO,CAAqB;QAbtH,cAAS,GAAG,KAAK,CAAC;QAQlB,eAAU,GAAG,EAAE,CAAC;QAEhB,gBAAW,GAAG,KAAK,CAAC;QAIlB,gCAAgC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,QAAQ;IAIR,CAAC;IACD,UAAU;QACR,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,OAAO,CAAC,KAAK;QACX,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;IAChC,CAAC;IACD,YAAY;QACV,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,SAAS,GAAG,CAAC,CAAC;QAEpB,IAAI,IAAI,CAAC,oBAAoB,IAAI,SAAS;YACxC,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACzC,IAAI,CAAC,QAAQ,GAAG,kCAAkC,CAAC;YACnD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;aACxB;YACD,KAAK,EAAE,CAAC;SACT;QAED,IAAI,KAAK,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,EAAE;YAClC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;gBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACxB;iBAAM;gBACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACxB;SACF;aAAM;SACN;IACH,CAAC;IAGD,kBAAkB;QAChB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC7E,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAE/B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,MAAM,CAAC,GAAW;QAIhB,MAAM,IAAI,GAAG;YAEX,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,aAAa,EAAE,CAAC;YAChB,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;SAEtD,CAAC;QACF,IAAI,GAAG,KAAK,KAAK,EAAE;YAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAClD,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE;oBAEtH,IAAI,CAAC,QAAQ,GAAG,iCAAiC,CAAC;oBAClD,OAAO;oBACP,UAAU,CAAC,GAAG,EAAE;wBACd,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;wBACnB,OAAO;oBACT,CAAC,EAAE,IAAI,CAAC,CAAC;oBACT,wBAAwB;iBACzB;aACF;YAED,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAIxD,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;oBACvC,IAAI,CAAC,QAAQ,GAAG,oBAAoB,CAAC;oBACrC,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAC1B,6BAA6B;oBAC7B,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;oBAC/B,UAAU,CAAC,GAAG,EAAE;wBACd,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;oBACrB,CAAC,EAAE,IAAI,CAAC,CAAC;iBACV;qBAAM;oBACL,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;iBAC/B;YAEH,CAAC,CAAC,CAAC;SACJ;aAAM;YAEL,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAClD,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE;oBAEjO,IAAI,CAAC,QAAQ,GAAG,iCAAiC,CAAC;oBAClD,OAAO;oBACP,UAAU,CAAC,GAAG,EAAE;wBACd,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;wBACnB,OAAO;oBACT,CAAC,EAAE,IAAI,CAAC,CAAC;oBACT,wBAAwB;iBACzB;aACF;YAED,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACxD,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;oBACvC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBAC5B;qBAAM;oBACL,IAAI,CAAC,QAAQ,GAAG,sBAAsB,CAAC;iBACxC;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IACD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;CACF;;YAvIqB,qEAAY;4CAC7B,oDAAM,SAAC,wEAAe;YAA0C,6DAAa;YAAmB,kEAAmB;;AAf3G,wBAAwB;IANpC,+DAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,0IAA0B;QAC1B,6BAA6B;QAC7B,SAAS,EAAE,CAAC,6DAAa,CAAC;KAC3B,CAAC;IAgBG,6GAAM,CAAC,wEAAe,CAAC;GAff,wBAAwB,CAqJpC;AArJoC;;;;;;;;;;;;ACnarC,+DAA+D,2I;;;;;;;;;;;;;;;;;;;;;;;ACAL;AAC0B;AAC7B;AACL;AACG;AACN;AAO/C,IAAa,cAAc,GAA3B,MAAa,cAAc;IAyCzB,YAAoB,aAA4B,EACvC,MAAiB,EACjB,OAA4B,EAC3B,WAAwB;QAHd,kBAAa,GAAb,aAAa,CAAe;QACvC,WAAM,GAAN,MAAM,CAAW;QACjB,YAAO,GAAP,OAAO,CAAqB;QAC3B,gBAAW,GAAX,WAAW,CAAa;QArClC,cAAS,GAAG,KAAK,CAAC;QAClB,kBAAa,GAAG,KAAK,CAAC;QACtB,eAAU,GAAG,KAAK,CAAC;QACnB,MAAC,GAAW,CAAC,CAAC;QACd,eAAU,GAAG,EAAE,CAAC;QAChB,kBAAa,GAAG,EAAE,CAAC;QAEnB,gBAAW,GAAG,EAAE,CAAC;QACjB,WAAM,GAAY,KAAK,CAAC;QAExB,eAAU,GAAG,EAAE,CAAC;QAChB,cAAS,GAAG,KAAK,CAAC;QAIlB,WAAM,GAAG,EAAE,CAAC;QAEZ,UAAK,GAAG,IAAI,CAAC;QAeb,UAAK,GAAG,KAAK,CAAC;QAMZ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAClE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACtD,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,CAAC;QAC7E,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC1C;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,UAAU;QACR,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAChE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;YAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,IAAI,IAAI,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC;QAC/G,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,QAAQ;QACX,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,sBAAsB;QAClD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IACD;;MAEE;IACF,OAAO;QACL,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IACD;;IAEA;IACA,QAAQ;QACN,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACnE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;YAC3B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;YACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YACtC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC/B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;iBACI;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;gBACjC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACpC;QACH,CAAC,CAAC,CAAC;IAGL,CAAC;IACD,6BAA6B;IAE7B,cAAc,CAAC,QAAQ;QACrB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;YACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;SAC1C;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IACD;;MAEE;IAEF,UAAU;QACR,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QACjC,IAAI,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CACvC,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CACL,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1G,CAAC,IAAI,CAAC,eAAe,KAAK,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAEzH,CAAC;QACJ,CAAC,CACF,CAAC;QACF,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC;QAC/B,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;YAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;YACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YACtC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACpC;aACI;YACH,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC;YACrC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;oBAE7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IAED;;MAEE;IACF,UAAU,CAAC,GAAW;QACpB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE;YACtD,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,GAAG,GAAG,KAAK,GAAG,KAAK;SAE1B,CAAC,CAAC;QACH,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;SACrC;QACD,IAAI,GAAG,KAAK,MAAM,EAAE;YAClB,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrD,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YACnE,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACjD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;SAC9D;QAED,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;gBAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;iBACI;gBACH,IAAI,CAAC,QAAQ,EAAE,CAAC;aACjB;YACD,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;gBAChC,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,IAAI,GAAG,KAAK,KAAK,EAAE;oBACjB,SAAS,GAAG,oBAAoB,CAAC;iBAClC;qBACI;oBACH,SAAS,GAAG,sBAAsB,CAAC;iBACpC;gBACD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE;oBACzD,UAAU,EAAE,yBAAyB;oBACrC,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,KAAK;iBAEhC,CAAC,CAAC;gBAEH,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,CAAC,EAAE,GAAG,CAAC,CAAC;gBACR,YAAY,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBAC7C,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;oBACtB,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;wBAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;qBACnB;yBACI;wBACH,IAAI,CAAC,QAAQ,EAAE,CAAC;qBACjB;gBACH,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;MAEE;IACF,QAAQ,CAAC,OAAO;QACd,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SACvC;IACH,CAAC;IAED;;MAEE;IACF,UAAU,CAAC,OAAY;QACrB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE;YACtD,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,wCAAwC,GAAG,OAAO,CAAC,QAAQ,GAAG,MAAM,GAAG,IAAI;SAElF,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,MAAM,EAAE;gBACV,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE;oBAC9E,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;wBACxD,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;4BACrB,IAAI,CAAC,QAAQ,EAAE,CAAC;4BAChB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;4BACtB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;4BACxC,IAAI,CAAC,QAAQ,EAAE,CAAC;yBACjB;oBACH,CAAC,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,CAAC,UAAU,CAAC,qDAAqD,CAAC,CAAC;iBACxE;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC9C,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;YACvD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;YACpC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;SAC/B;QAGD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,GAAG,QAAQ,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,EAAE,cAAc,EAAE,0DAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAErR,CAAC;CACF;;YA/PoC,6DAAa;YAC/B,kEAAS;YACR,kEAAmB;YACd,kEAAW;;AA5CvB,cAAc;IAL1B,+DAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,iJAAqC;;KAEtC,CAAC;GACW,cAAc,CAwS1B;AAxS0B;AA8S3B,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;IAW9B,YACS,SAA4C,EACnB,IAAS,EAAU,WAAwB,EAAU,OAA4B;QAD1G,cAAS,GAAT,SAAS,CAAmC;QACnB,SAAI,GAAJ,IAAI,CAAK;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAU,YAAO,GAAP,OAAO,CAAqB;QAXnH,cAAS,GAAG,KAAK,CAAC;QAIlB,cAAS,GAAQ,EAAE,CAAC;QAQlB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,QAAQ;IACR,CAAC;IAED,UAAU;QACR,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,YAAY;QACV,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,CAAC,QAAQ,GAAG,kCAAkC,CAAC;YACnD,OAAO;SACR;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,QAAQ,CAAC,GAAW;QAClB,MAAM,MAAM,GAAG;YACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC;QACF,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE;gBACxG,IAAI,CAAC,QAAQ,GAAG,0BAA0B,CAAC;gBAC3C,OAAO;aACR;YACD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACjD,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;oBACtB,IAAI,CAAC,QAAQ,GAAG,oBAAoB,CAAC;oBACrC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;oBACnB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;oBAC1B,UAAU,CAAC,GAAG,EAAE;wBACd,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;oBACrB,CAAC,EAAE,IAAI,CAAC,CAAC;iBACV;qBAAM;oBACL,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;iBAC/B;YACH,CAAC,CAAC,CAAC;SACJ;aACI;YACH,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ;gBACpC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE;oBACxG,IAAI,CAAC,QAAQ,GAAG,0BAA0B,CAAC;oBAC3C,OAAO;iBACR;YACH,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACjD,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;oBACtB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBAC5B;qBAAM;oBACL,IAAI,CAAC,QAAQ,GAAG,sBAAsB,CAAC;iBACxC;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;CACF;;YA7EqB,qEAAY;4CAC7B,oDAAM,SAAC,wEAAe;YAAyC,kEAAW;YAAmB,kEAAmB;;AAbxG,mBAAmB;IAJ/B,+DAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,+HAA0B;KAC3B,CAAC;IAcG,6GAAM,CAAC,wEAAe,CAAC;GAbf,mBAAmB,CAyF/B;AAzF+B;;;;;;;;;;;;;;;;;;;;;AC1TkB;AACA;AACG;AACN;AAO/C,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;IAwB9B,YAAoB,MAAqB,EAAU,OAA4B;QAA3D,WAAM,GAAN,MAAM,CAAe;QAAU,YAAO,GAAP,OAAO,CAAqB;QAvB/E,cAAS,GAAW,0DAAS,CAAC;QAG9B,cAAS,GAAG,KAAK,CAAC;QAClB,kBAAa,GAAG,KAAK,CAAC;QACtB,eAAU,GAAG,EAAE,CAAC;QAEhB,kBAAa,GAAG,KAAK,CAAC;QAEtB,MAAC,GAAW,CAAC,CAAC;QACd,eAAU,GAAG,EAAE,CAAC;QAChB,kBAAa,GAAG,EAAE,CAAC;QACnB,gBAAW,GAAG,EAAE,CAAC;QAEjB,eAAU,GAAG,IAAI,IAAI,EAAE,CAAC;QAGxB,WAAM,GAAY,KAAK,CAAC;QACxB,WAAM,GAAG,EAAE,CAAC;QAEZ,UAAK,GAAG,IAAI,CAAC;QAIX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;SAEvC;aACI;YACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SAC/C;IAEH,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IACD,WAAW;QACT,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACvD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7C,IAAI,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC;YACxC,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC;YAClE,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;gBACjC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;iBACI;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC/D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBACxC,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;oBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;iBAC1C;gBACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;oBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;wBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;iBAC3C;aAEF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,QAAQ;QACX,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,sBAAsB;QAClD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,UAAU;QACR,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CACxC,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CACL,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChH,CAAC,IAAI,CAAC,kBAAkB,KAAK,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC9H,CAAC,IAAI,CAAC,iBAAiB,KAAK,IAAI,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC5H,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;mBACvG,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CACtH,CAAC;QACJ,CAAC,CACF,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC;QAChC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;YAChC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;YACnC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACxC,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;aAC1C;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,aAAa,EAAE;gBAEtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aACzC;YACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC;YACpC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;aAC1C;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,IAAI,CAAC,aAAa;oBACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;YAED,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IAGD,YAAY;QAEV,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACtC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAC5C,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;YACvD,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;YACjD,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YAEtD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;YACtC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;YACvC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAE7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;YAEpC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAEhC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAE9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YAEjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;YACvC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YAEnC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;YACpC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;SAC/B;QACD,IAAI,IAAS,CAAC;QACd,IAAI,GAAG,EAAE,CAAC;QACV;;;;;;;;SAQC;QACD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,GAAG,uBAAuB,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,sBAAsB,EAAE,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,6BAA6B,EAAE,0DAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IACnT,CAAC;CAEF;;YApL6B,6DAAa;YAAmB,kEAAmB;;AAxBpE,mBAAmB;IAL/B,+DAAS,CAAC;QACT,QAAQ,EAAE,gBAAgB;QAC1B,gKAA0C;KAE3C,CAAC;GACW,mBAAmB,CA4M/B;AA5M+B;;;;;;;;;;;;;ACVhC;AAAA;AAAO,MAAM,YAAY,GAAG;IACxB,OAAO,EAAE,oCAAoC;IAC7C,QAAQ,EAAE,sCAAsC;IAChD,QAAQ,EAAE,sCAAsC;IAChD,WAAW,EAAE,+BAA+B;IAC5C,QAAQ,EAAE,CAAC,qCAAqC,EAAC,CAAC,WAAW,CAAC,CAAC;CAChE,CAAC;;;;;;;;;;;;ACNJ,iEAAiE,wBAAwB,wBAAwB,SAAS,OAAO,oCAAoC,mBAAmB,uBAAuB,qBAAqB,wBAAwB,0BAA0B,wBAAwB,0BAA0B,0BAA0B,eAAe,iBAAiB,KAAK,KAAK,qBAAqB,uBAAuB,qBAAqB,wBAAwB,0BAA0B,wBAAwB,0BAA0B,0BAA0B,eAAe,iBAAiB,KAAK,mDAAmD,20C;;;;;;;;;;;ACAnqB,6BAA6B,eAAe,GAAG,eAAe,wBAAwB,GAAG,YAAY,wBAAwB,GAAG,gBAAgB,0BAA0B,GAAG,eAAe,wBAAwB,GAAG,eAAe,uBAAuB,GAAG,+BAA+B,mBAAmB,wBAAwB,sBAAsB,GAAG,6BAA6B,mBAAmB,wBAAwB,sBAAsB,GAAG,6BAA6B,mBAAmB,8BAA8B,oDAAoD,oBAAoB,oBAAoB,GAAG,cAAc,mBAAmB,8BAA8B,oDAAoD,sBAAsB,oBAAoB,GAAG,mEAAmE,8BAA8B,uCAAuC,GAAG,uCAAuC,8BAA8B,uCAAuC,GAAG,qEAAqE,8BAA8B,8BAA8B,GAAG,wCAAwC,sBAAsB,GAAG,YAAY,wBAAwB,GAAG,kBAAkB,wBAAwB,GAAG,WAAW,iBAAiB,uBAAuB,2BAA2B,GAAG,0DAA0D,iBAAiB,gBAAgB,GAAG,gBAAgB,eAAe,GAAG,iBAAiB,+BAA+B,GAAG,sDAAsD,gCAAgC,GAAG,eAAe,gBAAgB,qBAAqB,0BAA0B,GAAG,kCAAkC,eAAe,GAAG,uDAAuD,sBAAsB,uBAAuB,cAAc,GAAG,wDAAwD,qBAAqB,iBAAiB,yBAAyB,GAAG,uEAAuE,sBAAsB,GAAG,qBAAqB,kBAAkB,GAAG,yCAAyC,uBAAuB,GAAG,wBAAwB,eAAe,GAAG,4CAA4C,6CAA6C,GAAG,6BAA6B,uBAAuB,eAAe,GAAG,gCAAgC,2BAA2B,oBAAoB,KAAK,GAAG,oBAAoB,kBAAkB,iBAAiB,wBAAwB,mCAAmC,GAAG,cAAc,YAAY,GAAG,0BAA0B,eAAe,GAAG,kBAAkB,kBAAkB,gBAAgB,2BAA2B,GAAG,mBAAmB,kBAAkB,GAAG,gBAAgB,YAAY,kBAAkB,GAAG,iBAAiB,YAAY,GAAG,eAAe,oBAAoB,iBAAiB,GAAG,kBAAkB,YAAY,uBAAuB,qBAAqB,GAAG,gBAAgB,YAAY,kBAAkB,8BAA8B,GAAG,4FAA4F,oBAAoB,kBAAkB,KAAK,GAAG,4IAA4I,oBAAoB,oBAAoB,6BAA6B,kBAAkB,kBAAkB,0BAA0B,qCAAqC,KAAK,gBAAgB,kBAAkB,KAAK,qBAAqB,kBAAkB,oBAAoB,KAAK,kBAAkB,cAAc,oBAAoB,KAAK,mBAAmB,gBAAgB,KAAK,iBAAiB,sBAAsB,mBAAmB,KAAK,oBAAoB,kBAAkB,oBAAoB,yBAAyB,4BAA4B,KAAK,kBAAkB,kBAAkB,KAAK,GAAG,sDAAsD,iBAAiB,GAAG,0BAA0B,uCAAuC,kBAAkB,4BAA4B,oBAAoB,6BAA6B,KAAK,GAAG,oBAAoB,iBAAiB,iDAAiD,kBAAkB,wBAAwB,iCAAiC,mBAAmB,KAAK,GAAG,iBAAiB,mBAAmB,GAAG,iCAAiC,mBAAmB,sBAAsB,aAAa,cAAc,iBAAiB,6BAA6B,KAAK,2CAA2C,qBAAqB,KAAK,GAAG,0DAA0D,mBAAmB,GAAG,mBAAmB,mBAAmB,iBAAiB,yBAAyB,GAAG,QAAQ,gBAAgB,mCAAmC,qBAAqB,eAAe,GAAG,gBAAgB,gBAAgB,mBAAmB,mCAAmC,iBAAiB,uBAAuB,eAAe,GAAG,qCAAqC,kBAAkB,uBAAuB,iBAAiB,GAAG,wBAAwB,mBAAmB,GAAG,8BAA8B,qBAAqB,2BAA2B,oBAAoB,mBAAmB,qBAAqB,sBAAsB,uBAAuB,uBAAuB,iBAAiB,iBAAiB,GAAG,gCAAgC,kBAAkB,gBAAgB,qBAAqB,wBAAwB,uBAAuB,WAAW,GAAG,sCAAsC,2BAA2B,cAAc,kBAAkB,mBAAmB,iBAAiB,uBAAuB,WAAW,iBAAiB,eAAe,GAAG,qDAAqD,oBAAoB,GAAG,uDAAuD,mBAAmB,oBAAoB,qBAAqB,gBAAgB,GAAG,+BAA+B,QAAQ,kBAAkB,KAAK,kBAAkB,kBAAkB,KAAK,gCAAgC,qBAAqB,mBAAmB,KAAK,kCAAkC,kBAAkB,uBAAuB,KAAK,wCAAwC,6BAA6B,gBAAgB,oBAAoB,qBAAqB,mBAAmB,yBAAyB,aAAa,mBAAmB,KAAK,GAAG,kBAAkB,qBAAqB,oBAAoB,KAAK,GAAG,kBAAkB,WAAW,iBAAiB,kBAAkB,KAAK,mBAAmB,+BAA+B,KAAK,GAAG,kBAAkB,sBAAsB,+BAA+B,KAAK,GAAG,mBAAmB,qBAAqB,qBAAqB,KAAK,GAAG,aAAa,oCAAoC,GAAG,OAAO,mBAAmB,GAAG,QAAQ,qBAAqB,GAAG,qCAAqC,mBAAmB,8BAA8B,GAAG,kCAAkC,oBAAoB,GAAG,kBAAkB,qBAAqB,GAAG,qBAAqB,8BAA8B,GAAG,gBAAgB,uBAAuB,GAAG,mBAAmB,gBAAgB,GAAG,sBAAsB,qBAAqB,GAAG,wBAAwB,mBAAmB,8BAA8B,0BAA0B,GAAG,qCAAqC,8BAA8B,8BAA8B,GAAG,eAAe,8BAA8B,uCAAuC,GAAG,iBAAiB,8BAA8B,8BAA8B,GAAG,iKAAiK,0BAA0B,mBAAmB,GAAG,wHAAwH,mBAAmB,GAAG,+BAA+B,+BAA+B,gCAAgC,8BAA8B,wBAAwB,mCAAmC,wBAAwB,KAAK,GAAG,+BAA+B,gBAAgB,oBAAoB,KAAK,GAAG,gDAAgD,mBAAmB,8BAA8B,GAAG,oHAAoH,2BAA2B,GAAG,oBAAoB,uBAAuB,oBAAoB,uBAAuB,uBAAuB,8BAA8B,GAAG,mBAAmB,kBAAkB,cAAc,sBAAsB,yBAAyB,eAAe,mCAAmC,GAAG,iBAAiB,YAAY,GAAG,iBAAiB,YAAY,GAAG,sBAAsB,kBAAkB,4BAA4B,GAAG,yBAAyB,eAAe,GAAG,6CAA6C,u9hC;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAv2R;AACR;AACT;AACY;AAC+B;AAE3B;AACc;AACxB;AACO;AACO;AAO7D,IAAa,cAAc,GAA3B,MAAa,cAAc;IAqDzB,YAAoB,MAAqB,EAC/B,MAAc,EACd,OAA4B,EAC5B,mBAAwC,EACxC,MAAiB,EACzB,kBAAsC,EAC9B,cAA8B,EAC9B,WAA4B;QAPlB,WAAM,GAAN,MAAM,CAAe;QAC/B,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAqB;QAC5B,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,WAAM,GAAN,MAAM,CAAW;QAEjB,mBAAc,GAAd,cAAc,CAAgB;QAC9B,gBAAW,GAAX,WAAW,CAAiB;QA3DtC,cAAS,GAAW,0DAAS,CAAC;QAC9B,aAAQ,GAAG,EAAE,CAAC;QACd,aAAQ,GAAG,EAAE,CAAC;QACd,eAAU,GAAG,EAAE,CAAC;QAGhB,kBAAa,GAAG,EAAE,CAAC;QACnB,mBAAc,GAAG,EAAE,CAAC;QACpB,sBAAsB;QACtB,iBAAY,GAAG,EAAE,CAAC;QAClB,UAAK,GAAG,KAAK,CAAC;QAOd,mBAAc,GAAG,IAAI,CAAC;QACtB,UAAK,GAAG,CAAC,CAAC;QACV,aAAQ,GAAG,KAAK,CAAC;QAGjB,eAAU,GAAG,CAAC,CAAC;QAGf,gBAAW,GAAW,EAAE,CAAC;QAGzB,qBAAgB,GAAG,KAAK,CAAC;QAGzB,mBAAc,GAAG,KAAK,CAAC;QACvB,SAAI,GAAG,CAAC,CAAC;QACT,gBAAW,GAAG,KAAK,CAAC;QACpB,cAAS,GAAG,KAAK,CAAC;QAClB,gBAAW,GAAG,KAAK,CAAC;QACpB,aAAQ,GAAG,KAAK,CAAC;QACjB,YAAO,GAAG,KAAK,CAAC;QAChB,iBAAY,GAAG,KAAK,CAAC;QACrB,SAAI,GAAG,KAAK,CAAC;QACb,qBAAgB,GAAW,EAAE,CAAC;QAI9B,aAAQ,GAAG,KAAK,CAAC;QACjB,cAAS,GAAG,KAAK,CAAC;QAClB,iBAAY,GAAY,KAAK,CAAC;QAG9B,sBAAiB,GAAY,KAAK,CAAC;QACnC,iBAAY,GAAY,KAAK,CAAC;QAU5B,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC;YAC5C,qBAAqB;SACtB,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACpB,IAAI,MAAM,CAAC,OAAO,EAAE;gBAClB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;gBAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;aACvB;iBAAM;gBACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;gBAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;aACxB;QACH,CAAC,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;YACrF,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACpB;IAEH,CAAC;IACD,OAAO,CAAC,KAAa;QACnB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,eAAe;QACb,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE;YACjC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;SAC5B;IACH,CAAC;IAED,SAAS,CAAC,GAAG,EAAE,GAAG;QAChB,IAAI,aAAa,GAAG,QAAQ,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YACpD,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;SACrE;QACD,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACjD,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC9D,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,QAAQ;QAEN,IAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAC;YACjD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;SAC1B;QACD,IAAG,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC,EAAC;YACxC,IAAI,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7F,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,oBAAoB;YACpB,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAC9E,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;oBACzB,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC;oBAClC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;oBACrB,OAAO;iBACR;gBACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACtC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAClC,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,CAAC,CAAC;SACH;aAAI;YACJ,IAAI,CAAC,YAAY,EAAE,CAAC;SACpB;QACD,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IAED,YAAY;QACV,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAClC,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;YAChE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;YAChE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAClD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;YAC5D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACpD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;YAClE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YACxD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YAC9D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;YACpE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YACxD,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACzB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC7B,IAAI,IAAI,CAAC,SAAS,IAAI,GAAG,EAAE;oBACzB,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;wBAC5C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;wBAC7C,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;wBAC/E,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;4BAC1B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;yBAC/C;oBACH,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;iBACrD;aACF;YACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACnB;aAAM;YACL,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;IACH,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,aAAa;QACX,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC9C,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC;IACD,qBAAqB;QACnB,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YACxD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;gBACtD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;gBACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YAE1B,CAAC,CAAC,CAAC;SACJ;IAEH,CAAC;IAED,OAAO,CAAC,SAAS;QACf,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;gBACjD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;gBACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YAC1B,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,QAAQ,CAAC,SAAS;QAChB,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;gBAChD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,WAAW,CAAC,SAAiB;QAC3B,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAClD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG;QACtC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,GAAG,IAAI,CAAC,EAAE;YACZ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SACzB;aACI;YACH,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC1B;QACD,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACjD,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,EAAE,CAAC;IAEf,CAAC;IACD,kBAAkB;QAChB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,0CAA0C;IAC5C,CAAC;IAED,WAAW;QACT,4BAA4B;QAC5B,gCAAgC;QAChC,mBAAmB;QACnB,gCAAgC;QAChC,uBAAuB;QACvB,2BAA2B;QAC3B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,UAAU,IAAI,YAAY,EAAE;YACnC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;SACrD;aAAM,IAAI,IAAI,CAAC,UAAU,IAAI,cAAc,EAAE;YAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SACnD;aAAM,IAAI,IAAI,CAAC,UAAU,IAAI,QAAQ,EAAE;YACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;SACtD;QAED,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC7C,cAAc,CAAC,KAAK,EAAE,CAAC;QACvB,cAAc,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;QAC9C,cAAc,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAID,KAAK;QACH,IAAI,QAAgB,CAAC;QACrB,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SACpD;QACD,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAC5C,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAE3C,IAAI,IAAI,KAAK,EAAE,EAAE;gBACf,IAAI,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;gBAC/D,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;oBACzB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;oBAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;iBACrD;aACF;YACD,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACpC,IAAI,CAAC,UAAU,GAAG,oCAAoC,CAAC;gBACvD,OAAO;aACR;iBAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACzB,IAAI,CAAC,UAAU,GAAG,uBAAuB,CAAC;gBAC1C,OAAO;aACR;iBAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACzB,IAAI,CAAC,UAAU,GAAG,uBAAuB,CAAC;gBAC1C,OAAO;aACR;iBAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE;gBAErD,IAAI,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC5M,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC3B,IAAI,CAAC,UAAU,GAAG,gCAAgC,CAAC;oBACnD,OAAO;iBACR;gBACD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;gBAC9B,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;oBACzE,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;oBAC1D,YAAY,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAClD,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;oBAChE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;gBACnD,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBACpD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;oBACzB,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;oBACvC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;oBAEnD,IAAI,IAAI,CAAC,gBAAgB,EAAE;wBACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;wBAC5D,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;wBACzC,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;wBACtD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;qBACtC;yBACI;wBACH,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;wBAC5C,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;wBACzC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;qBACpD;oBACD,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;oBACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;wBACrD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wBAC5C,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;4BACnD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;4BACxD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;4BACjH,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC;4BACzK,oIAAoI;4BACpI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC;4BAClI,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;gCAChC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;oCACxC,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC;oCAC/B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;oCAChD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;iCACnD;gCACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gCACxB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;gCAC5C,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;gCACxB,IAAI,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC;gCACrH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gCAChE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gCAE9C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gCAC3C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;gCAC1D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gCACzD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;gCAC9D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;gCAC5D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gCAC9C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gCACzD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;gCACxD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gCAClC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;gCAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAE,CAAC;gCACzC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gCAClB,OAAO;6BACR;iCACI,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE;gCAC5C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;oCACxC,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC;oCACjC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;oCAC9C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;iCACnD;gCACD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;gCAC7B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;gCAC5D,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gCAC1B,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;gCACnD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;gCAC1D,IAAI,UAAU,CAAC;gCACf,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oCAC3D,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC;oCACrF,UAAU,GAAG;wCACX,cAAc,EAAE,YAAY,CAAC,cAAc;wCAC3C,YAAY,EAAE,IAAI,CAAC,YAAY;wCAC/B,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;wCAC/C,YAAY,EAAE,YAAY,CAAC,YAAY;qCACxC;oCACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;oCACxB,IAAI,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;oCAC7F,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;oCAEhE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;oCAC9C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;oCAC3C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;oCACzD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;oCAC9D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;oCAC5D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;oCAC9C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oCACzD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;oCACxD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oCAClC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;oCAC/B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAC;oCACtD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oCAClC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gCACpB,CAAC,CAAC,CAAC;gCACH,OAAO;6BACR;iCACI,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gCACtC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;oCACxC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;oCAC3B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;oCACjD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;iCACnD;gCAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;gCAChE,IAAI,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gCAC7F,IAAI,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gCAC/E,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gCAChE,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;gCACnD,IAAI,UAAU,CAAC;gCACf,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oCAC3D,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC;oCACrF,UAAU,GAAG;wCACX,cAAc,EAAE,YAAY,CAAC,cAAc;wCAC3C,YAAY,EAAE,IAAI,CAAC,YAAY;wCAC/B,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;wCAC/C,YAAY,EAAE,YAAY,CAAC,YAAY;qCACxC;oCACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oCAC7B,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;wCAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4CAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,iBAAiB,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE;gDAC7G,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;6CAC7D;yCACF;qCACF;oCACD,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oCACzC,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,CAAC;oCACtH,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;wCACvB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;qCAC1D;oCACD,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,CAAC;oCACxH,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;wCACxB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;qCAC5D;oCAED,IAAI,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC,CAAC;oCAC1H,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;wCACzB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;qCAC9D;oCACD,IAAI,IAAI,CAAC,SAAS,IAAI,GAAG,EAAE;wCACzB,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;4CAC5C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;4CAC7C,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;4CAC/E,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gDAC1B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;gDAC9C,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gDACnC,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;6CACzD;4CACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;4CACpD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;4CAEhE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;4CACzD,cAAc,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;wCAE/D,CAAC,CAAC,CAAC;qCACJ;oCACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;oCAC9D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;oCAC9C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;oCAC3C,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oCACzC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;oCAC1C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;oCACxD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;oCAE7C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oCACzD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;oCAC3D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;oCAClB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oCAClC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;oCAC5D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;oCAC9C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;oCAE3C,IAAI,CAAC,QAAQ,EAAE;wCACb,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;qCAC/C;oCAED,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAC;oCACtD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;wCACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;wCACxB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;wCAC7B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;wCAC5D,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;qCACtC;yCAAM;wCACL,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;wCACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;wCAC5B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;wCAC5D,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;qCAC1C;gCACH,CAAC,CAAC,CAAC;6BACJ;iCACI;gCACH,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;gCACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;gCAC5B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gCACpD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;gCAC5D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC;gCACnI,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;oCAClC,IAAI,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;oCAC9F,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;oCAChE,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oCACzC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;wCAChE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;wCAC9C,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;wCACtI,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;wCAC3C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;4CACvB,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;gDAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oDAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE;wDAC5G,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;qDAC7D;yDACI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,iBAAiB,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE;wDAClH,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;qDAC7D;iDACF;6CACF;4CACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;yCAClD;wCACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;wCACnD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;wCACjC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;wCAC9D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;wCAC9C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;wCAC3C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;wCACxD,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,CAAC;wCACtH,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;4CACvB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;yCAC1D;wCACD,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,CAAC;wCACxH,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;4CACxB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;4CAC3D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;yCACjE;wCACD,IAAI,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC,CAAC;wCAC1H,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;4CACzB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;yCAC9D;wCACD,IAAI,IAAI,CAAC,SAAS,IAAI,GAAG,EAAE;4CACzB,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gDAC5C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;gDAC7C,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;gDAC/E,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;oDAC1B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;oDAC9C,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;oDACnC,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;iDACzD;gDACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;gDAChE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gDACpD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gDACzD,cAAc,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;4CAC/D,CAAC,CAAC,CAAC;yCACJ;wCACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;wCAClC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;wCAC7C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;wCACzD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;wCACnD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;wCAC3D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;wCAClB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;wCAClC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;wCAC5D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;wCAC9C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;wCACzB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;oCAC3C,CAAC,CAAC,CAAC;iCACJ;6BACF;wBACH,CAAC,CAAC;oBACJ,CAAC,CAAC,CAAC;iBACJ;qBACI;oBACH,IAAI,CAAC,UAAU,GAAG,gCAAgC,CAAC;iBACpD;aACF;iBACI;gBACH,IAAI,CAAC,UAAU,GAAG,gCAAgC,CAAC;gBACnD,OAAO;aACR;QACH,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,SAAS,IAAI,GAAG,EAAE;YACzB,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAC5C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;gBAE7C,kFAAkF;gBAClF,gCAAgC;gBAChC,mDAAmD;gBACnD,IAAI;gBAEJ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBACpD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBACzD,cAAc,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAE/D,CAAC,CAAC,CAAC;SACJ;IAEH,CAAC;IAED,UAAU;IAEV,CAAC;IACD,MAAM;QACJ,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,EAAE;QACnB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAChC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAChC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACpC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACpC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,cAAc,CAAC,KAAK,EAAE,CAAC;QACvB,cAAc,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;QAC9C,cAAc,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,UAAU,CAAC,KAAK;QACd,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE,EAAE;YACxB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;SAC1C;IACH,CAAC;IAED,OAAO,CAAC,KAAK;QACX,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;YACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;SAChB;IAEH,CAAC;IACD,cAAc;QACZ,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;YAC7D,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,WAAW,GAAG,KAAK,GAAG,KAAK;SAClC,CAAC,CAAC;QAEH,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAEvD,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YACtC,IAAI,GAAG,EAAE;gBACP,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;oBACjE,IAAI,EAAE,qBAAqB,GAAG,KAAK,GAAG,KAAK;iBAC5C,CAAC,CAAC;gBACH,aAAa,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBAC3C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;;YAlpB6B,6DAAa;YACvB,sDAAM;YACL,kEAAmB;YACP,kFAAmB;YAChC,kEAAS;YACL,sEAAkB;YACd,yEAAc;YACjB,kEAAe;;AA5D3B,cAAc;IAL1B,+DAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,iJAAqC;;KAEtC,CAAC;GACW,cAAc,CAusB1B;AAvsB0B;AA+sB3B,IAAa,0BAA0B,GAAvC,MAAa,0BAA0B;IASrC,YACS,SAAmD,EAC1B,IAAS,EAAS,aAA4B,EAAU,OAA4B;QAD7G,cAAS,GAAT,SAAS,CAA0C;QAC1B,SAAI,GAAJ,IAAI,CAAK;QAAS,kBAAa,GAAb,aAAa,CAAe;QAAU,YAAO,GAAP,OAAO,CAAqB;QACpH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,QAAQ;QACN,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IACD,cAAc;QAEZ,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACnE,IAAI,CAAC,QAAQ,GAAG,kCAAkC,CAAC;YACnD,OAAO;SACR;aAAM,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YAC5D,IAAI,CAAC,QAAQ,GAAG,2CAA2C,CAAC;YAC5D,OAAO;SACR;aAAM,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,eAAe,EAAE;YACpD,IAAI,CAAC,QAAQ,GAAG,4CAA4C,CAAC;YAC7D,OAAO;SACR;aAAM,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,eAAe,EAAE;YACpD,IAAI,CAAC,QAAQ,GAAG,oDAAoD,CAAC;YACrE,OAAO;SACR;aACI;YACH,MAAM,IAAI,GAAG;gBACX,QAAQ,EAAE,IAAI,CAAC,eAAe;gBAC9B,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM;aACnC,CAAC;YACF,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAEvD,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,OAAO,EAAE;oBAExC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBAE5B;qBAAM;oBACL,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;iBAC/B;YAEH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;CACF;;YA9CqB,qEAAY;4CAC7B,oDAAM,SAAC,wEAAe;YAA0C,6DAAa;YAAmB,kEAAmB;;AAX3G,0BAA0B;IANtC,+DAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,+HAA0B;QAE1B,SAAS,EAAE,CAAC,6DAAa,CAAC;;KAC3B,CAAC;IAYG,6GAAM,CAAC,wEAAe,CAAC;GAXf,0BAA0B,CAwDtC;AAxDsC;;;;;;;;;;;;;AC/tBvC;AAAA;AAAA;AAAA;AAAA;AAA6B;AAEwB;AACrD,gBAAgB;AAChB,wBAAwB;AACxB,KAAK;AACE,MAAM,eAAe;IAG1B;QADO,sBAAiB,GAA8B,IAAI,CAAC;QAEzD,IAAI,CAAC,iBAAiB,GAAG,IAAI,yDAAyB,CACpD,iEAAY,CAAC,QAAQ,EACrB,oCAAoC,GAAG,iEAAY,CAAC,QAAQ,EAC5D,IAAI,CAAC,YAAY,EACjB;YACE,sBAAsB,EAAE,IAAI;SAE7B,CACF,CAAC;IACJ,CAAC;IACM,cAAc;QACnB,IACE,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,SAAS;YACpD,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,IAAI,EAC9C;YACA,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;SAC3D;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAEM,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS;QACpD,IAAI,KAAK,EAAE;YACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACtB;aAAM;YACL,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC;SACtC;IACH,CAAC;IAEM,kBAAkB;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAEM,MAAM;QACX,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;IAClC,CAAC;IAEM,KAAK;QACX,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IACxC,CAAC;CACF;;;;;;;;;;;;;;;;;;AC7CwB;AAKvB,IAAa,SAAS,GAAtB,MAAa,SAAS;IAHtB;QAUE,gBAAW,GAAG,IAAI,0DAAY,EAAE,CAAC;QAGjC,mBAAc,GAAG,IAAI,0DAAY,EAAE,CAAC;IA+BtC,CAAC;IA5BC,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAGrC,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAI7C,WAAW,CAAC,KAAK;QACf,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC7B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;gBAC/B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClC,CAAC,EAAE,EAAE,CAAC,CAAC;QACT,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC;IAKD,QAAQ;QACN,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;CACF;AAlCC;IADC,4DAAM,EAAE;8CACwB;AAGjC;IADC,4DAAM,EAAE;iDAC2B;AAGpC;IADC,iEAAW,CAAC,aAAa,CAAC;sCACU;AAGrC;IADC,iEAAW,CAAC,iBAAiB,CAAC;0CACc;AAI7C;IAFC,kEAAY,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAC;IACtC,kEAAY,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC;4CAWrC;AAKD;IAHC,kEAAY,CAAC,UAAU,CAAC;IACxB,kEAAY,CAAC,SAAS,CAAC;IACvB,kEAAY,CAAC,YAAY,CAAC;yCAM1B;AAxCU,SAAS;IAHrB,+DAAS,CAAC;QACT,QAAQ,EAAE,cAAc;KACzB,CAAC;GACW,SAAS,CAyCrB;AAzCqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXkC;AACR;AACb;AAC+C;AACvC;AACH;AAEW;AACE;AACiB;AAC+B;AACxD;AAO/C,IAAa,eAAe,GAA5B,MAAa,eAAe;IA2E1B,YAAoB,IAAU,EAAU,aAA4B,EAC3D,MAAiB,EAAU,OAA4B,EACvD,WAAwB,EACvB,gBAA6C;QAHnC,SAAI,GAAJ,IAAI,CAAM;QAAU,kBAAa,GAAb,aAAa,CAAe;QAC3D,WAAM,GAAN,MAAM,CAAW;QAAU,YAAO,GAAP,OAAO,CAAqB;QACvD,gBAAW,GAAX,WAAW,CAAa;QACvB,qBAAgB,GAAhB,gBAAgB,CAA6B;QA7EvD,uBAAkB,GAAG,mFAAkB,CAAC;QASxC,cAAS,GAAG,KAAK,CAAC;QAClB,WAAM,GAAG,KAAK,CAAC;QAcf,kBAAa,GAAG,GAAG,CAAC;QAUpB,iBAAY,GAAG,EAAE,CAAC;QAClB,wBAAmB,GAAG,EAAE,CAAC;QAGzB,MAAC,GAAW,CAAC,CAAC;QACd,eAAU,GAAG,EAAE,CAAC;QAChB,kBAAa,GAAG,EAAE,CAAC;QAEnB,gBAAW,GAAG,EAAE,CAAC;QACjB,WAAM,GAAY,KAAK,CAAC;QACxB,WAAM,GAAG,EAAE,CAAC;QAEZ,UAAK,GAAG,IAAI,CAAC;QACb,iBAAY,GAAG,KAAK,CAAC;QACrB,eAAU,GAAG,EAAE,CAAC;QAEhB,cAAS,GAAG,KAAK,CAAC;QAClB,kBAAa,GAAG,KAAK,CAAC;QACtB,gBAAW,GAAG,EAAE,CAAC;QASjB,sBAAiB,GAAG,KAAK,CAAC;QAE1B,oBAAe,GAAG,EAAE,CAAC;QAenB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAElE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,QAAQ;QAEN,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,CAAC;QAC5F,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;YAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;SAC3C;aACI;YACH,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SACrB;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC1C;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,IAAI,CAAC,UAAU,EAAE,CAAC;IAEpB,CAAC;IAGD,QAAQ;QACN,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAEnE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW;QACT,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IACD,UAAU;QACR,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CACrC,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CACL,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChH,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClH,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1G,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChH,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAE1G,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAEvG,CAAC;QACJ,CAAC,CAEF,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE;YAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QAED,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;YACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YACtC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACzC;aACI;YACH,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC;YAClC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;oBAE7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IAED,UAAU;QACR,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAChE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;YAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,IAAI,IAAI,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC;YAC9G,IAAI,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC;YAErC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;gBAChC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;iBACI;gBAEH,IAAI,IAAI,CAAC,eAAe,EAAE;oBACxB,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;wBACnF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;qBACtH;yBACI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE;wBAClF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;qBAC3F;yBACI;wBACH,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;wBACvE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;qBACxB;iBACF;aAEF;YAED,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YAExB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;gBAChC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;iBACI;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC9D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;gBACvC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAEvC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;aAE5B;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB,CAAC,QAAQ;QAC1B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;YACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;SAC1C;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IACD,YAAY;QACV,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACtC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAC5C,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YAC9C,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACzC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAC9C,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC1C,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YACnC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YAEjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAEhC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAE/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YAClC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAE7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;YACzC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YAEhC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAE7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;YACvC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAExB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;SAC9B;QAED,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,GAAG,SAAS,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,EAAE,eAAe,EAAE,2DAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAExR,CAAC;IACD,IAAI,CAAC,QAAQ;QACX,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,0BAA0B;QACtD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,cAAc;QACZ,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACtD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO;QACL,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC7D,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YAExB,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;oBACnF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;iBACnG;qBACI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE;oBAClF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;oBAC/I,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;iBAC3C;qBACI;oBACH,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;iBACzB;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,WAAW;QACT,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACjE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,UAAU;QACR,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAChE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;YAC3B,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;oBACnF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;iBACxH;qBACI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE;oBAClF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;iBAC7F;qBACI;oBACH,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;iBAC5B;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,GAAW;QACpB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;YACxD,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,GAAG,GAAG,KAAK,GAAG,KAAK;SAC1B,CAAC,CAAC;QACH,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;QACD,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACzD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAE3D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjE,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QACnE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACzD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC3E,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC3E,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QACnE,SAAS,CAAC,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACzD,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACjD,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,GAAG,KAAK,MAAM,EAAE;YAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7E,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,eAAe,CAAC;YAC1D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACzD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvD,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACzD,SAAS,CAAC,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YAC/D,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACvE,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACjD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrD,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACzD,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;YAChD,SAAS,CAAC,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YACnD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC3D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;YAE3E,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAEjD,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACvE,SAAS,CAAC,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;SAChE;QAED,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAEzC,0BAA0B;YAC1B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;gBAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;iBACI;gBAEH,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;YAED,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;gBAChC,CAAC;gBACD,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,IAAI,GAAG,KAAK,KAAK,EAAE;oBACjB,SAAS,GAAG,oBAAoB,CAAC;iBAClC;qBAAM;oBAEL,SAAS,GAAG,sBAAsB,CAAC;iBACpC;gBAGD,0BAA0B;gBAC1B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;gBAEtB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAElB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;oBAC3D,UAAU,EAAE,yBAAyB;oBACrC,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,KAAK;iBAEhC,CAAC,CAAC;gBAEH,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,CAAC,EAAE,GAAG,CAAC,CAAC;gBACR,YAAY,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBAE7C,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;wBAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;qBACnB;yBACI;wBACH,IAAI,CAAC,UAAU,EAAE,CAAC;qBACnB;gBACH,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,eAAe,CAAC,SAAiB;QAC/B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,EAAE;gBACtF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9C;SACF;IAEH,CAAC;IAED,kBAAkB,CAAC,UAAU;QAC3B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,EAAE;gBAChD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;aACjD;SACF;IACH,CAAC;IAED,iBAAiB,CAAC,MAAM;QACtB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAChD,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,MAAM,CAAC,QAAQ,EAAE,EAAE;gBAC/D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;aACtB;SACF;IACH,CAAC;IAED,WAAW,CAAC,OAAO,EAAE,IAAI;QACvB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACnD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAE7B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE;gBAC1D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;aAC/C;SACF;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;YACtD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;YACrC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;SAChC;aAAM;YACL,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;YACxC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;SACjC;QACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YAC7C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SACvC;IACH,CAAC;IACD,aAAa,CAAC,OAAO;QACnB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC,gBAAgB,CAAC,4BAA4B,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACrF,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;QACrB,CAAC,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;YACxD,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,0CAA0C,GAAG,OAAO,CAAC,WAAW,GAAG,MAAM,GAAG,IAAI;YACtF,KAAK,EAAE,OAAO;SACf,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,MAAM,EAAE;oBACX,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;wBAChE,IAAI,IAAI,CAAC,EAAE,EAAE;4BACX,IAAI,CAAC,QAAQ,EAAE,CAAC;4BAChB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;4BACtB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;yBACzC;wBACD,IAAI,CAAC,UAAU,EAAE,CAAC;oBACpB,CAAC,CAAC,CAAC;iBACJ;qBACI;oBACH,IAAI,CAAC,UAAU,CAAC,0DAA0D,CAAC,CAAC;iBAC7E;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;;YA9d2B,kDAAI;YAAyB,6DAAa;YACnD,kEAAS;YAAmB,kEAAmB;YAC1C,kEAAW;YACL,mHAA2B;;AA9E5C,eAAe;IAL3B,+DAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,oJAAsC;QACtC,SAAS,EAAE,CAAC,6DAAa,CAAC;KAC3B,CAAC;GACW,eAAe,CAyiB3B;AAziB2B;AAgjB5B,IAAa,qBAAqB,GAAlC,MAAa,qBAAqB;IAgDhC,YACS,SAA8C,EACrB,IAAS,EAAS,aAA4B,EAAU,QAAkB;QADnG,cAAS,GAAT,SAAS,CAAqC;QACrB,SAAI,GAAJ,IAAI,CAAK;QAAS,kBAAa,GAAb,aAAa,CAAe;QAAU,aAAQ,GAAR,QAAQ,CAAU;QA7C5G,cAAS,GAAG,KAAK,CAAC;QAClB,WAAM,GAAG,KAAK,CAAC;QAUf,aAAQ,GAAG,EAAE,CAAC;QAId,kBAAa,GAAG,GAAG,CAAC;QASpB,iBAAY,GAAG,EAAE,CAAC;QAClB,wBAAmB,GAAG,EAAE,CAAC;QACzB,sBAAiB,GAAG,EAAE,CAAC;QACvB,gBAAW,GAAG,IAAI,0DAAW,EAAE,CAAC;QAQhC,sBAAiB,GAAG,KAAK,CAAC;QAE1B,oBAAe,GAAG,EAAE,CAAC;QACrB,eAAU,GAAG,KAAK,CAAC;QAInB,gBAAW,GAAG,KAAK,CAAC;QAIlB,+BAA+B;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;YACnC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;aACI;YACH,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;gBACvB,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;aACpC;iBAAM;gBACL,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC;aACrC;SAEF;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC1C;IACH,CAAC;IAED,QAAQ,CAAC,KAAK;QACZ,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAGD,UAAU,CAAC,KAAU;QACnB;QACE,+CAA+C;QAC/C,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAChD,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,gBAAgB;YACpE,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,gBAAgB;YACpE,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,gBAAgB;YACpE,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,gBAAgB;YACpE,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,cAAc;YAClE,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,cAAc;YAClE,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,cAAc;YAClE,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,cAAc;YAClE,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAE,yBAAyB;UACvE;YACA,OAAO;SACR;QAED,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,IAAI,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,IAAI,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,EAAE;YACjH,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;IACH,CAAC;IAED,WAAW,CAAC,KAAK;QACf,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;IACnC,CAAC;IACD,UAAU;QACR,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,iBAAiB;QACf,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC;IACnD,CAAC;IACD,UAAU;QACR,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,SAAS,GAAG,CAAC,CAAC;QACpB,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,kCAAkC;YACpE,qJAAqJ;YAErJ,IAAI,CAAC,MAAM,KAAK,SAAS;YACzB,8DAA8D;eAC3D,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS;YAC7D,gCAAgC;eAC7B,IAAI,CAAC,SAAS,KAAK,EAAE,IAAK,mOAAmO;YAChQ,IAAI,CAAC,MAAM,KAAK,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE;YAC3E,IAAI,CAAC,QAAQ,GAAG,kCAAkC,CAAC;YACnD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;aAExB;YACD,KAAK,EAAE,CAAC;SACT;QAED,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS;gBACnE,IAAI,CAAC,UAAU,KAAK,EAAE,IAAI,IAAI,CAAC,aAAa,KAAK,EAAE,EAAE;gBACrD,IAAI,CAAC,QAAQ,GAAG,kCAAkC,CAAC;gBACnD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;iBAExB;gBACD,KAAK,EAAE,CAAC;aAET;SAEF;QACD,IAAI,KAAK,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,EAAE;YAClC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;gBAEvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACxB;iBAAM;gBACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACxB;SACF;IAEH,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QAEpB,uBAAuB;QACvB,yBAAyB;QACzB,IAAI;QAEJ,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;SACvB;QAED,gCAAgC;QAChC,0CAA0C;QAC1C,IAAI;QAIJ,IAAI,UAAkB,CAAC;QACvB,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,UAAU,GAAG,IAAI,CAAC,aAAa;SAChC;aACI;YACH,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;SAC9B;QACD,MAAM,IAAI,GAAG;YACX,kBAAkB;YAClB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,8BAA8B;YAC9B,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,UAAU,EAAE,UAAU;YACtB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB;YAC1C,YAAY,EAAE,GAAG;YACjB,UAAU,EAAE,IAAI,CAAC,UAAU;YAE3B,mCAAmC;YACnC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAE7B,MAAM,EAAE,GAAG;YACX,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;QAEF,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAE1D,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;oBAEpC,8BAA8B;oBAC9B,IAAI,CAAC,QAAQ,GAAG,mBAAmB,CAAC;oBACpC,uBAAuB;oBACvB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;oBACvB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;oBACtB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;oBAEpB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;oBACjB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;oBACjB,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,SAAS,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,UAAU,EAAE;wBACtG,OAAO;qBAER;yBAEI,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,iBAAiB,KAAK,EAAE,EAAE;wBAC5D,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;wBACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;wBACxB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;wBAC1B,wBAAwB;qBACzB;yBACI;wBACH,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;qBACtB;iBACF;qBACI;oBACH,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;iBAC/B;YACH,CAAC,CAAC,CAAC;SAEJ;aACI;YAEH,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAE1D,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE;oBAEnC,IAAI,CAAC,QAAQ,GAAG,sBAAsB,CAAC;oBACvC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBAG5B;qBAAM;oBACL,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC;iBAClC;YACH,CAAC,CAAC,CAAC;SACJ;IAEH,CAAC;IAGD,KAAK;QAGH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IACD,QAAQ,CAAC,KAAK;QACZ,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;QAE9B,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;QAE9E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YAC9F,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;SAErD;IACH,CAAC;IACD,UAAU,CAAC,KAAK;QACd,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,OAAO,CAAC,KAAK;QACX,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAChD,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE;gBACpD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;aAE7C;SACF;IACH,CAAC;IACD,eAAe,CAAC,SAAS;QACvB,IAAI,CAAC,YAAY,GAAG,EAAE;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE;gBACvF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9C;SACF;IAEH,CAAC;IACD,kBAAkB,CAAC,UAAU;QAC3B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,EAAE;gBAChD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;aACjD;SACF;IACH,CAAC;IAED,QAAQ,CAAC,KAAK;QACZ,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,WAAW,CAAC,KAAK;QACf,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED,mBAAmB;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxD,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa,EAAE;gBACpE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5D;SACF;IACH,CAAC;IAED,eAAe,CAAC,KAAK;QACnB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC;IACvC,CAAC;IAED,UAAU,CAAC,KAAK;QACd,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;IAClC,CAAC;IAED,IAAI,CAAC,KAAK;QACR,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,iBAAiB,CAAC,MAAM;QACtB,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACzD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;YAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpD,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,EAAE;oBAC7C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;iBAChD;aACF;QAEH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,KAAK;QACZ,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;IAChC,CAAC;IAED,YAAY,CAAC,KAAK;QAChB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;IAC9B,CAAC;CAEF;;YA1UqB,qEAAY;4CAC7B,oDAAM,SAAC,wEAAe;YAA0C,6DAAa;YAAoB,wDAAQ;;AAlDjG,qBAAqB;IALjC,+DAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,gIAA0B;QAC1B,SAAS,EAAE,CAAC,6DAAa,EAAE,wDAAQ,CAAC;KACrC,CAAC;IAmDG,6GAAM,CAAC,wEAAe,CAAC;GAlDf,qBAAqB,CA2XjC;AA3XiC;;;;;;;;;;;;;;;;;;;;;;;AClkBwB;AAC0B;AAClC;AACG;AACN;AAM/C,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;IAmC9B,YAAoB,aAA4B,EAAS,MAAiB,EAAS,OAA4B;QAA3F,kBAAa,GAAb,aAAa,CAAe;QAAS,WAAM,GAAN,MAAM,CAAW;QAAS,YAAO,GAAP,OAAO,CAAqB;QAhC/G,MAAC,GAAW,CAAC,CAAC;QACd,eAAU,GAAG,CAAC,CAAC;QACf,kBAAa,GAAG,EAAE,CAAC;QAEnB,gBAAW,GAAG,CAAC,CAAC;QAChB,eAAU,GAAG,EAAE,CAAC;QAChB,cAAS,GAAG,KAAK,CAAC;QAClB,kBAAa,GAAG,KAAK,CAAC;QACtB,cAAS,GAAG,KAAK,CAAC;QAElB,aAAQ,GAAG,EAAE,CAAC;QACd,eAAU,GAAG,EAAE,CAAC;QAchB,cAAS,GAAG,KAAK,CAAC;QAElB,WAAM,GAAY,KAAK,CAAC;QACxB,WAAM,GAAG,EAAE,CAAC;QAEZ,UAAK,GAAG,IAAI,CAAC;QAGX,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAClE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAEpD,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,cAAc,CAAC,CAAC;QAC/E,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC1C;IACH,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAChE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa;QACX,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC/D,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;YAC/B,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACrD,IAAI,QAAQ,GAAG,EAAE,CAAC;gBAClB,IAAI,MAAM,GAAG,EAAE,CAAC;gBAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACpD,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,cAAc,KAAK,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE;wBAEtF,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;wBACnD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;qBAE5C;iBACF;gBACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC5C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;wBACjB,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,YAAY;wBACrD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,cAAc;wBACzD,OAAO,EAAE,MAAM;wBACf,aAAa,EAAE,QAAQ;qBACxB,CAAC,CAAC;iBACJ;aAEF;YACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YACrC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;iBACI;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC5D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAE3B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;gBACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBAExB,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;oBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;iBACzC;gBACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;oBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;wBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;iBAC3C;aACF;QACH,CAAC,CAAC,CAAC;IAKL,CAAC;IAGD,UAAU;QACR,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC;QAChC,IAAI,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CACrC,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CACL,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACjH,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CACnD,CAAC,EAAE,EAAE,EAAE;oBACL,OAAO,CACL,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAClF;gBAEH,CAAC,CACF,CACA,CACA,CAAC,MAAM,CAGT;QAIH,CAAC,CAEF,CAAC;QAGF,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC;QAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;YAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;IACH,CAAC;IAED,OAAO;QACL,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM;QAClC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QACpB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC;QAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,wCAAwC;IACxC,+CAA+C;IAC/C,gCAAgC;IAChC,KAAK;IAEL,QAAQ;QAEN,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SACvC;IACH,CAAC;IAED,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM;QACpC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,MAAM;QAGnB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;YAC5D,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,4CAA4C,GAAG,OAAO,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI;SAEvG,CAAC,CAAC;QACH,2BAA2B;QAE3B,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,MAAM,EAAE;gBAGV,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBAEpF,IAAI,IAAI,CAAC,EAAE,EAAE;wBACX,IAAI,CAAC,QAAQ,EAAE,CAAC;wBAChB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;wBACtB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;qBACzC;oBACD,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;oBACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;oBACxB,IAAI,CAAC,cAAc,EAAE,CAAC;oBACtB,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,CAAC,CAAC,CAAC;aAEJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,GAAW;QACpB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;YAC5D,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,GAAG,GAAG,KAAK,GAAG,KAAK;SAE1B,CAAC,CAAC;QACH,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACrE,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAEnE,IAAI,GAAG,KAAK,KAAK,EAAE;YAEjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,wBAAwB;YACxB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;QACD,IAAI,GAAG,KAAK,MAAM,EAAE;YAElB,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAC/C,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC3D,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;SAClE;QAED,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;gBAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;iBACI;gBACH,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;YAED,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;gBAEhC,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,IAAI,GAAG,KAAK,KAAK,EAAE;oBACjB,SAAS,GAAG,oBAAoB,CAAC;iBAClC;qBACI;oBAEH,SAAS,GAAG,sBAAsB,CAAC;iBACpC;gBACD,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;gBACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBACxB,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,IAAI,CAAC,aAAa,EAAE,CAAC;gBAErB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;oBAC/D,UAAU,EAAE,yBAAyB;oBACrC,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,KAAK;iBAEhC,CAAC,CAAC;gBAEH,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;oBACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;oBACxB,IAAI,CAAC,cAAc,EAAE,CAAC;oBACtB,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,CAAC,EAAE,GAAG,CAAC,CAAC;gBACR,YAAY,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBAC7C,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;oBACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;oBAExB,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;wBAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;qBACnB;yBACI;wBACH,IAAI,CAAC,cAAc,EAAE,CAAC;wBACtB,IAAI,CAAC,aAAa,EAAE,CAAC;qBACtB;oBAGD,8BAA8B;gBAChC,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IAGL,CAAC;IAED,IAAI,CAAC,QAAQ;QACX,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,0BAA0B;QACtD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,YAAY;QACV,IAAI,OAAY,CAAC;QACjB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACtD,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;aACpD;YACD,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,MAAM,CAAC;YAEhC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;YACjC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;SACzB;QAGD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,GAAG,SAAS,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,EAAE,qBAAqB,EAAE,0DAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QAC5R,iBAAiB;QACjB,iBAAiB;QACjB,UAAU;QACV,yHAAyH;QAEzH,YAAY;IACd,CAAC;CAEF;;YAzToC,6DAAa;YAAiB,kEAAS;YAAkB,kEAAmB;;AAnCpG,mBAAmB;IAJ/B,+DAAS,CAAC;QACT,QAAQ,EAAE,gBAAgB;QAC1B,gKAA0C;KAC3C,CAAC;GACW,mBAAmB,CA4V/B;AA5V+B;AAoWhC,IAAa,yBAAyB,GAAtC,MAAa,yBAAyB;IAcpC,YACS,SAAkD,EACzB,IAAS,EAAS,aAA4B,EAAU,OAA4B;QAD7G,cAAS,GAAT,SAAS,CAAyC;QACzB,SAAI,GAAJ,IAAI,CAAK;QAAS,kBAAa,GAAb,aAAa,CAAe;QAAU,YAAO,GAAP,OAAO,CAAqB;QAdtH,cAAS,GAAG,KAAK,CAAC;QAWlB,gBAAW,GAAG,KAAK,CAAC;QAIlB,gCAAgC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,QAAQ;IACR,CAAC;IACD,UAAU;QACR,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAGD,cAAc;QACZ,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAChE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa;QACX,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC/D,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IACD,cAAc;QACZ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,SAAS,GAAG,CAAC,CAAC;QAEpB,IAAI,IAAI,CAAC,YAAY,IAAI,SAAS;YAChC,IAAI,CAAC,YAAY,KAAK,EAAE,IAAI,IAAI,CAAC,WAAW,IAAI,SAAS;YACzD,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAChC,IAAI,CAAC,QAAQ,GAAG,kCAAkC,CAAC;YACnD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;aACxB;YACD,KAAK,EAAE,CAAC;SACT;QAED,IAAI,KAAK,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,EAAE;YAClC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;gBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACxB;iBAAM;gBACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACxB;SACF;aAAM;SACN;IACH,CAAC;IACD,MAAM,CAAC,GAAW;QAChB,MAAM,IAAI,GAAG;YACX,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,IAAI,CAAC,WAAW;SAC5B,CAAC;QACF,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC;YACzF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACvC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE;oBACzF,IAAI,CAAC,QAAQ,GAAG,4BAA4B,CAAC;oBAC7C,OAAO;iBACR;aACF;YAED,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAC7D,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;oBACvC,IAAI,CAAC,QAAQ,GAAG,oBAAoB,CAAC;oBACrC,IAAI,CAAC,aAAa,EAAE,CAAC;oBACrB,IAAI,CAAC,cAAc,EAAE,CAAC;oBACtB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;oBACvB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;oBACtB,UAAU,CAAC,GAAG,EAAE;wBACd,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;oBACrB,CAAC,EAAE,IAAI,CAAC,CAAC;iBACV;qBAAM;oBACL,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;iBAC/B;YAEH,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC;YAC9F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAChD,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;oBACzD,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE;wBACnN,IAAI,CAAC,QAAQ,GAAG,4BAA4B,CAAC;wBAC7C,OAAO;qBACR;iBACF;qBAAM;oBACL,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE;wBAClG,IAAI,CAAC,QAAQ,GAAG,4BAA4B,CAAC;wBAC7C,OAAO;qBACR;iBACF;aAEF;YACD,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAC7D,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;oBACvC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBAC5B;qBAAM;oBACL,IAAI,CAAC,QAAQ,GAAG,sBAAsB,CAAC;oBACvC,IAAI,CAAC,aAAa,EAAE,CAAC;oBACrB,IAAI,CAAC,cAAc,EAAE,CAAC;iBACvB;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IACD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IACD,UAAU,CAAC,KAAK;QACd,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC;IACpC,CAAC;CACF;;YAlIqB,qEAAY;4CAC7B,oDAAM,SAAC,wEAAe;YAA0C,6DAAa;YAAmB,kEAAmB;;AAhB3G,yBAAyB;IANrC,+DAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,oIAA0B;QAC1B,6BAA6B;QAC7B,SAAS,EAAE,CAAC,6DAAa,EAAE,mBAAmB,CAAC;KAChD,CAAC;IAiBG,6GAAM,CAAC,wEAAe,CAAC;GAhBf,yBAAyB,CAiJrC;AAjJqC;;;;;;;;;;;;;;;;;;;;;;;;AC9WY;AACA;AACG;AAEsC;AACxB;AACK;AACzB;AAO/C,IAAa,wBAAwB,GAArC,MAAa,wBAAwB;IAoCnC,YAAmB,aAA4B,EACrC,iBAAoC,EAAU,OAA4B;QADjE,kBAAa,GAAb,aAAa,CAAe;QACrC,sBAAiB,GAAjB,iBAAiB,CAAmB;QAAU,YAAO,GAAP,OAAO,CAAqB;QApCpF,cAAS,GAAW,0DAAS,CAAC;QAI9B,WAAM,GAAY,KAAK,CAAC;QACxB,WAAM,GAAG,EAAE,CAAC;QAEZ,UAAK,GAAG,IAAI,CAAC;QACb,MAAC,GAAW,CAAC,CAAC;QACd,eAAU,GAAG,EAAE,CAAC;QAChB,mBAAc,GAAsB,EAAE,CAAC;QAEvC,eAAU,GAAY,KAAK,CAAC;QAC5B,mBAAc,GAAa,CAAC,sGAAiB,CAAC,UAAU,EAAE,sGAAiB,CAAC,IAAI,CAAC,CAAC;QAClF,kBAAa,GAAG,EAAE,CAAC;QAInB,gBAAW,GAAG,EAAE,CAAC;QACjB,kBAAa,GAAG,KAAK,CAAC;QACtB,eAAU,GAAG,EAAE,CAAC;QAEhB,cAAS,GAAG,KAAK,CAAC;QAClB,kBAAa,GAAG,KAAK,CAAC;QAKtB,aAAQ,GAAG,EAAE,CAAC;QAEd,eAAU,GAAG,IAAI,IAAI,EAAE,CAAC;QAQtB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAClE,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAC7D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;SACvC;aACI;YACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SAC/C;IAEH,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,IAAI,CAAC,EAAE;gBAC1J,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;aAC/D;iBACI;gBACH,IAAI,CAAC,gBAAgB,CAAC,sGAAiB,CAAC,UAAU,CAAC;aACpD;SACF;aACI;YACH,IAAI,CAAC,gBAAgB,CAAC,sGAAiB,CAAC,UAAU,CAAC;SACpD;QACD,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IAED,UAAU,CAAC,KAAK;QACd,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC;QAC/D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;SACnC;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IACD,gBAAgB,CAAC,aAAqB;QACpC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,kBAAkB,GAAG,aAAa,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,aAAa,KAAK,sGAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAChF,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACzD,CAAC;IAED,gBAAgB,CAAC,oBAAoB;QACnC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;QAClD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,oBAAoB,CAAC,CAAC,cAAc,CAAC;IAClH,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC7E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC;YAChC,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,UAAU,EAAE;oBAC9E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;iBACjH;qBACI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,IAAI,EAAE;oBAC7E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;oBAChH,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;iBAChE;aACF;YACD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACzL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,sBAAsB,CAAC,oBAAoB;QACjD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACrE,IAAI,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;YAChC,IAAI,IAAI,CAAC,eAAe,IAAI,eAAe,EAAE;gBAC3C,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,UAAU,EAAE;oBAC9E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;iBACpG;qBACI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,IAAI,EAAE;oBAC7E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;oBACjJ,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;oBAC1D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oBACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;iBAC3C;qBACI;oBACH,IAAI,CAAC,oBAAoB,EAAE;wBACzB,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;wBAC9B,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;qBACjC;yBACI,IAAI,oBAAoB,IAAI,CAAC,EAAE;wBAClC,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;qBACjC;yBACI;wBACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,oBAAoB,CAAC,CAAC;qBACxF;iBACF;aACF;iBACI;gBACH,IAAI,oBAAoB,IAAI,CAAC;oBAC3B,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;;oBAEhC,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,oBAAoB,CAAC,CAAC;aAC5F;YACD,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;gBACxE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;gBAEjD,IAAI,CAAC,IAAI,CAAC,MAAM;oBACd,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBAClB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;oBACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;oBACrH,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;wBAC1B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;iBAC3E;gBAED,IAAI,CAAC,eAAe,EAAE,CAAC;YAEzB,CAAC,CAAC,CAAC;QAEL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe;QACb,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACxE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,MAAM;gBACd,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;iBAEpH;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;aACtF;YAED,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;gBAChC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;iBACI;gBACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;gBAE9D,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;gBAEvC,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;oBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;iBAC1C;gBACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;oBACjC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;wBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;iBAC3C;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAElC,IAAI,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CACvC,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CACL,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChH,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChH,CAAC,IAAI,CAAC,cAAc,KAAK,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtH,CAAC,IAAI,CAAC,kBAAkB,KAAK,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;mBAC3H,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAC9G,CAAC;QACJ,CAAC,CAEF,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC;QAC/B,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE;YAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;IACH,CAAC;IAED,IAAI,CAAC,QAAQ;QACX,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,0BAA0B;QACtD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,YAAY;QACV,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/C,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAE1B,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YACpD,IAAI,IAAI,CAAC,kBAAkB,KAAK,sGAAiB,CAAC,UAAU,EAAE;gBAC5D,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;aAC9D;YACD,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC9C,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YACpD,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;YAE/D,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YACnC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;YACvC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;SAC5B;QAGD,IAAI,IAAS,CAAC;QACd,IAAI,IAAI,CAAC,kBAAkB,IAAI,sGAAiB,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,EAAE;YAClF,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC;SAC5B;aAAM,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,IAAI,sGAAiB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC3G,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;SACtB;aAAM;YACL,IAAI,GAAG,kBAAkB,CAAC;SAC3B;QACD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,EACtC,IAAI,CAAC,gBAAgB,GAAG,0BAA0B,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EACpJ,yBAAyB,EACzB,WAAW,GAAG,IAAI,CAAC,gBAAgB,EACnC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,EACtF,gCAAgC,EAChC,0DAAS,EACT,UAAU,EACV,UAAU,CAAC,CAAC;IAChB,CAAC;CACF;;YArPmC,6DAAa;YAClB,8EAAiB;YAAmB,kEAAmB;;AArCzE,wBAAwB;IALpC,+DAAS,CAAC;QACT,QAAQ,EAAE,sBAAsB;QAChC,kLAAgD;KAEjD,CAAC;GACW,wBAAwB,CAyRpC;AAzRoC;;;;;;;;;;;;ACdrC,+DAA+D,+J;;;;;;;;;;;;;;;;;;;;;;;;;ACAL;AAEY;AACjB;AACwB;AAC3B;AACT;AAEU;AACJ;AAO/C,IAAa,qBAAqB,GAAlC,MAAa,qBAAqB;IAqChC,YACU,MAAc,EACd,OAA4B,EAC7B,MAAiB,EACjB,mBAAwC,EACvC,QAA0B,EAC1B,aAA4B;QAL5B,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAqB;QAC7B,WAAM,GAAN,MAAM,CAAW;QACjB,wBAAmB,GAAnB,mBAAmB,CAAqB;QACvC,aAAQ,GAAR,QAAQ,CAAkB;QAC1B,kBAAa,GAAb,aAAa,CAAe;QAxCtC,oBAAe,GAAG,KAAK,CAAC;QACxB,eAAU,GAA+B,EAAE,CAAC;QAC5C,cAAS,GAAG,KAAK,CAAC;QAElB,eAAU,GAAW,EAAE,CAAC;QACxB,MAAC,GAAW,CAAC,CAAC;QACd,eAAU,GAAG,EAAE,CAAC;QAChB,kBAAa,GAAG,EAAE,CAAC;QAEnB,gBAAW,GAAG,EAAE,CAAC;QACjB,WAAM,GAAY,KAAK,CAAC;QACxB,WAAM,GAAG,EAAE,CAAC;QAEZ,UAAK,GAAG,IAAI,CAAC;QAEb,kBAAa,GAAG,KAAK,CAAC;QAStB,iBAAY,GAA+B,EAAE,CAAC;QAQ9C,iBAAY,GAAY,IAAI,CAAC;QAS3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACzD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAEtD,wBAAwB;QACxB,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE;YAC5B,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,CAAC;YAChG,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;aACvC;SACF;QACD,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED,QAAQ,CAAC,SAAS;QAChB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YACvD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IAEL,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB;QACnB,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YAC/D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC3D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;YAC9B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;YACzC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;gBAClC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;aAC7B;iBACI;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;gBAChE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;gBAC7B,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC5C;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,mBAAmB,GAAG;YACzB,cAAc,EAAE,CAAC;YACjB,gBAAgB,EAAE,EAAE;YACpB,uBAAuB,EAAE,EAAE;YAC3B,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,EAAE;YACR,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,YAAY,EAAE,CAAC;YACf,MAAM,EAAE,CAAC;YACT,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,CAAC;YACb,SAAS,EAAE,CAAC;YACZ,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;SACV;QACD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,CAAC,QAAQ;QACX,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,sBAAsB;QAClD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,gBAAgB,CAAC,YAAY;QAC3B,IAAI,CAAC,mBAAmB,GAAG,YAAY,CAAC;QACxC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;QACvE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC/D,IAAI,CAAC,iCAAiC,EAAE,CAAC;IAC3C,CAAC;IAED,iCAAiC;QAC/B,IAAI,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACnH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB,CAAC,eAAoB;QACrC,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC,cAAc,CAAC;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;YAC9D,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,gDAAgD,GAAG,eAAe,CAAC,gBAAgB,GAAG,MAAM,GAAG,IAAI;SAC1G,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBAChF,IAAI,IAAI,CAAC,IAAI,EAAE;wBACb,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;wBACtB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;wBACxC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;wBACvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;qBACzB;yBAAM;wBACL,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;qBAClC;oBACD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;oBACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBAC1B,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IAEL,CAAC;IAGD,YAAY;QACV,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;YACzD,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACxC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACxC,OAAO,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YAEvD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YACnC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YACnC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;YACrC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC;YAC5C,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC9B;QAED,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,cAAc,EAAE,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,EAAE,qBAAqB,EAAE,0DAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAEnR,CAAC;IACD,UAAU;QACR,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;QACpC,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CACpC,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CACL,CAAC,IAAI,CAAC,gBAAgB,KAAK,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1H,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpG,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAErG,CAAC;QACJ,CAAC,CACF,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC5B,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE;YACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;YACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;YACzC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC5C;aACI;YACH,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;YAC/B,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3C,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;oBAE7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IAED,sBAAsB,CAAC,QAAQ;QAC7B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;YACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;SAC1C;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IAED,aAAa,CAAC,OAAO;QACnB,IAAI,UAAU,GAAG;YACf,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,UAAU,CAAC,GAAW;QACpB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;YAC9D,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,GAAG,GAAG,KAAK,GAAG,KAAK;SAC1B,CAAC,CAAC;QACH,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC3E,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjE,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACzD,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;QAEzD,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,KAAK,EAAE;YACjC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;SACtB;QACD,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;gBAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;iBACI;gBACH,IAAI,CAAC,gBAAgB,EAAE,CAAC;aACzB;YAGD,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;gBAC1C,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,IAAI,GAAG,KAAK,KAAK,EAAE;oBACjB,SAAS,GAAG,oBAAoB,CAAC;iBAClC;qBACI;oBACH,SAAS,GAAG,sBAAsB,CAAC;iBACpC;gBACD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;oBACjE,UAAU,EAAE,yBAAyB;oBACrC,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,KAAK;iBAEhC,CAAC,CAAC;gBACH,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,CAAC,EAAE,GAAG,CAAC,CAAC;gBACR,YAAY,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBAC7C,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;oBACtB,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;wBAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;qBACnB;yBACI;wBACH,IAAI,CAAC,gBAAgB,EAAE,CAAC;qBACzB;gBACH,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,CAAC,gBAAgB,EAAE,CAAC;aACzB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;;YArTmB,sDAAM;YACL,kEAAmB;YACrB,2DAAS;YACI,kFAAmB;YAC7B,gEAAgB;YACX,6DAAa;;AA3C3B,qBAAqB;IALjC,+DAAS,CAAC;QACT,QAAQ,EAAE,kBAAkB;QAC5B,sKAA4C;;KAE7C,CAAC;GACW,qBAAqB,CA2VjC;AA3ViC;AAiWlC,IAAa,2BAA2B,GAAxC,MAAa,2BAA2B;IActC,YACS,SAAoD,EAC3B,IAAS,EAAS,aAA4B,EAAU,OAA4B,EAAU,UAA+B;QADtJ,cAAS,GAAT,SAAS,CAA2C;QAC3B,SAAI,GAAJ,IAAI,CAAK;QAAS,kBAAa,GAAb,aAAa,CAAe;QAAU,YAAO,GAAP,OAAO,CAAqB;QAAU,eAAU,GAAV,UAAU,CAAqB;QAX/J,aAAQ,GAAG,EAAE,CAAC;QAGd,iBAAY,GAA+B,EAAE,CAAC;QAC9C,eAAU,GAA+B,EAAE,CAAC;QAC5C,gBAAW,GAAG,KAAK,CAAC;QAOlB,gCAAgC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEnC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SAEvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE3B,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,QAAQ,CAAC,KAAK;QACZ,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IACD,UAAU;QACR,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,IAAI,EAAE;eAChD,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,EAAE;eAC1C,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE;eACzC,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE;eACzC,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE;eACxC,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE;eACtC,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE;eACrC,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO;eACjC,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK;eAC/B,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK;eAC/B,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE;eACzC,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EACrC;YACA,IAAI,CAAC,QAAQ,GAAG,kCAAkC,CAAC;YACnD,OAAO;SACR;aACI;YACH,IAAI,UAAU,GAAG,+CAA+C,CAAC;YACjE,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;gBACrD,IAAI,CAAC,QAAQ,GAAG,0BAA0B,CAAC;gBAE3C,OAAO;aACR;SACF;QACD,IAAI,IAAI,CAAC,mBAAmB,CAAC,YAAY,IAAI,CAAC,EAAE;YAC9C,IAAI,CAAC,QAAQ,GAAG,8BAA8B,CAAC;YAC/C,OAAO;SACR;QACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEnC,CAAC;IAGD,gBAAgB,CAAC,GAAW;QAC1B,IAAI,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE;YAC3C,IAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;SACvD;QACD,IAAI,GAAG,IAAI,KAAK,EAAE;YAChB,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE;gBAC/I,IAAI,CAAC,QAAQ,GAAG,kCAAkC,CAAC;gBACnD,OAAO;aACR;YAED,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE;gBAC/H,IAAI,CAAC,QAAQ,GAAG,yBAAyB,CAAC;gBAC1C,OAAO;aACR;YACD,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAC1E,IAAI,IAAI,CAAC,IAAI,EAAE;oBACb,IAAI,CAAC,QAAQ,GAAG,oBAAoB,CAAC;oBACrC,UAAU,CAAC,GAAG,EAAE;wBACd,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;oBACrB,CAAC,EAAE,IAAI,CAAC,CAAC;oBAGT,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBAE5B;qBAAM;oBACL,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;iBAC/B;YACH,CAAC,CAAC,CAAC;SACJ;aACI;YACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,KAAK,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;YACpH,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE;gBAC9I,IAAI,CAAC,QAAQ,GAAG,kCAAkC,CAAC;gBACnD,OAAO;aACR;YAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YACpG,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE;gBAC9H,IAAI,CAAC,QAAQ,GAAG,wBAAwB,CAAC;gBACzC,OAAO;aACR;YACD,IAAI,IAAI,CAAC,mBAAmB,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE;gBACpF,IAAI,CAAC,QAAQ,GAAG,gEAAgE,CAAC;gBACjF,OAAO;aACR;YACD,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAC1E,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;oBACtB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBAC5B;qBAAM;oBACL,IAAI,CAAC,QAAQ,GAAG,sBAAsB,CAAC;iBACxC;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IACD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IACD,QAAQ,CAAC,KAAU;QACjB,MAAM,OAAO,GAAG,aAAa,CAAC;QAE9B,IAAI,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAClD,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;IACH,CAAC;IAED,OAAO,CAAC,GAAQ;QACd,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO;QACnD,IAAI,CAAC,OAAO,GAAG,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,IAAI,OAAO,GAAG,GAAG,CAAC,IAAI,OAAO,IAAI,EAAE;YACpF,OAAO,KAAK,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,KAAU;QACtB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,WAAW,IAAI,KAAK,CAAC,GAAG,IAAI,WAAW,IAAI,KAAK,CAAC,GAAG,IAAI,YAAY,EAAE;YACvF,OAAO;SACR;aAAM;YACL,MAAM,YAAY,GAAG,YAAY,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;gBAClC,KAAK,CAAC,cAAc,EAAE,CAAC;aACxB;SACF;IAEH,CAAC;IAED,aAAa,CAAC,KAAU;QACtB,IAAI,EAAE,GAAG,yJAAyJ,CAAC;QAEnK,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE;YACnC,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE;gBACvB,KAAK,CAAC,cAAc,EAAE,CAAC;aACxB;SACF;IACH,CAAC;IAGD,OAAO;QACL,IAAI,EAAE,GAAG,8BAA8B,CAAC;QACxC,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,KAAK,EAAE,EAAE;YACzC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;gBAC7C,IAAI,CAAC,QAAQ,GAAG,sBAAsB,CAAC;gBAEvC,IAAI,CAAC,mBAAmB,CAAC,KAAK,GAAG,EAAE,CAAC;gBAEpC,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;gBACrB,CAAC,EAAE,IAAI,CAAC,CAAC;aACV;SACF;IAEH,CAAC;IAED,QAAQ;IAER,CAAC;CAEF;;YApLqB,8DAAY;4CAC7B,oDAAM,SAAC,iEAAe;YAA0C,6DAAa;YAAmB,kEAAmB;YAAsB,kFAAmB;;AAhBpJ,2BAA2B;IALvC,+DAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,sIAA0B;QAC1B,SAAS,EAAE,CAAC,6DAAa,CAAC;KAC3B,CAAC;IAiBG,6GAAM,CAAC,iEAAe,CAAC;GAhBf,2BAA2B,CAmMvC;AAnMuC;;;;;;;;;;;;;;;;;;;;;;;;ACjXU;AACA;AACG;AAEsC;AACnB;AACL;AACpB;AAO/C,IAAa,yBAAyB,GAAtC,MAAa,yBAAyB;IAmCpC,YAAmB,aAA4B,EACrC,iBAAoC,EAAU,OAA4B;QADjE,kBAAa,GAAb,aAAa,CAAe;QACrC,sBAAiB,GAAjB,iBAAiB,CAAmB;QAAU,YAAO,GAAP,OAAO,CAAqB;QAnCpF,cAAS,GAAW,0DAAS,CAAC;QAG9B,WAAM,GAAY,KAAK,CAAC;QACxB,WAAM,GAAG,EAAE,CAAC;QAEZ,UAAK,GAAG,IAAI,CAAC;QACb,MAAC,GAAW,CAAC,CAAC;QACd,eAAU,GAAG,EAAE,CAAC;QAChB,kBAAa,GAAG,EAAE,CAAC;QAEnB,gBAAW,GAAG,EAAE,CAAC;QACjB,kBAAa,GAAG,KAAK,CAAC;QACtB,eAAU,GAAG,EAAE,CAAC;QAGhB,cAAS,GAAG,KAAK,CAAC;QAElB,kBAAa,GAAG,KAAK,CAAC;QAKtB,aAAQ,GAAG,EAAE,CAAC;QAEd,eAAU,GAAG,IAAI,IAAI,EAAE,CAAC;QAKxB,mBAAc,GAAsB,EAAE,CAAC;QAEvC,eAAU,GAAY,KAAK,CAAC;QAC5B,mBAAc,GAAa,CAAC,sGAAiB,CAAC,UAAU,EAAE,sGAAiB,CAAC,IAAI,CAAC,CAAC;QAGhF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACtD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAE7D,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;SAEvC;aACI;YACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SAC/C;IACH,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAEpD,IAAI,IAAI,CAAC,eAAe,EAAE;YAExB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,IAAI,CAAC,EAAE;gBAC1J,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBAEvB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;aAC/D;iBACI;gBACH,IAAI,CAAC,gBAAgB,CAAC,sGAAiB,CAAC,UAAU,CAAC;aACpD;SACF;aACI;YACH,IAAI,CAAC,gBAAgB,CAAC,sGAAiB,CAAC,UAAU,CAAC;SACpD;QAED,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAE7C,CAAC;IAEO,sBAAsB,CAAC,oBAAoB;QAEjD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACrE,IAAI,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;YAEhC,IAAI,IAAI,CAAC,eAAe,IAAI,eAAe,EAAE;gBAC3C,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,UAAU,EAAE;oBAC9E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;iBACrG;qBACI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,IAAI,EAAE;oBAC7E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;oBACjJ,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;oBAC1D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oBACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;iBAC3C;qBACI;oBACH,IAAI,CAAC,oBAAoB,EAAE;wBACzB,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;wBAC9B,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;qBACjC;yBACI,IAAI,oBAAoB,IAAI,CAAC,EAAE;wBAClC,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;qBACjC;yBACI;wBACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,oBAAoB,CAAC,CAAC;qBACxF;iBAEF;aACF;iBACI;gBACH,IAAI,oBAAoB,IAAI,CAAC;oBAC3B,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;;oBAEhC,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,oBAAoB,CAAC,CAAC;aAC5F;YACD,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;gBAC7E,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;gBAEzD,IAAI,CAAC,IAAI,CAAC,MAAM;oBACd,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBAElB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;oBACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC7H,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;wBAC1B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;iBAC3E;gBACD,IAAI,CAAC,eAAe,EAAE,CAAC;YAEzB,CAAC,CAAC,CAAC;QAEL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,KAAK;QACd,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC;QAC/D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;SACnC;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IACD,gBAAgB,CAAC,aAAqB;QACpC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QAErB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,kBAAkB,GAAG,aAAa,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,aAAa,KAAK,sGAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAChF,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACvD,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,gBAAgB,CAAC,oBAAoB;QACnC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,sBAAsB,CAAC,oBAAoB,CAAC;QACjD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,oBAAoB,CAAC,CAAC,cAAc,CAAC;IAClH,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC7E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC;YAChC,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,UAAU,EAAE;oBAC9E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;iBACjH;qBACI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,IAAI,EAAE;oBAC7E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;oBAChH,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;iBAChE;aAEF;YACD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACzL,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,eAAe;QACb,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;SAChI;aACI;YACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9F;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YAChC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC3B;aACI;YACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAE3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YACvC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;SACvC;IAIH,CAAC;IAED,UAAU;QACR,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CACzC,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CACL,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChH,CAAC,IAAI,CAAC,cAAc,KAAK,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtH,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClH,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxG,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChH,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;mBAC7G,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;mBAC1G,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACjH,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CACnH,CAAC;QACJ,CAAC,CAEF,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC;QACjC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE;YAE/B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QAED,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YACvC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACxC;aACI;YACH,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC;YACtC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IACD,kBAAkB,CAAC,QAAQ;QACzB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;YACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;SAC1C;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IACD,IAAI,CAAC,QAAQ;QACX,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,0BAA0B;QACtD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,YAAY;QACV,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,kBAAkB,KAAK,sGAAiB,CAAC,UAAU,EAAE;gBAC5D,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;aAC9D;YACD,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC9C,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YACpD,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YACtD,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;YAC/D,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACzD,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAC7D,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAC7D,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YAClD,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YAE3D,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YACnC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YAEjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YAClC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;YACvC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;YACzC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAE9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;SAE/B;QAGD,IAAI,IAAS,CAAC;QACd,IAAI,IAAI,CAAC,kBAAkB,IAAI,sGAAiB,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,EAAE;YAClF,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC;SAC5B;aAAM,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,IAAI,sGAAiB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC3G,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;SACtB;aAAM;YACL,IAAI,GAAG,kBAAkB,CAAC;SAC3B;QACD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,GAAG,8BAA8B,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,6BAA6B,EAAE,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,EAAE,oCAAoC,EAAE,0DAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IACja,CAAC;CACF;;YAzSmC,6DAAa;YAClB,8EAAiB;YAAmB,kEAAmB;;AApCzE,yBAAyB;IALrC,+DAAS,CAAC;QACT,QAAQ,EAAE,uBAAuB;QACjC,qLAAiD;KAElD,CAAC;GACW,yBAAyB,CA4UrC;AA5UqC;;;;;;;;;;;;ACdtC,0BAA0B,oBAAoB,GAAG,mBAAmB,2CAA2C,GAAG,WAAW,gBAAgB,uBAAuB,8BAA8B,GAAG,YAAY,uBAAuB,uBAAuB,GAAG,QAAQ,iBAAiB,8BAA8B,iBAAiB,oBAAoB,GAAG,QAAQ,iBAAiB,oBAAoB,GAAG,mBAAmB,8BAA8B,qBAAqB,0BAA0B,GAAG,iBAAiB,wBAAwB,GAAG,oBAAoB,qBAAqB,GAAG,mBAAmB,wBAAwB,GAAG,iBAAiB,uBAAuB,eAAe,GAAG,kCAAkC,oBAAoB,GAAG,eAAe,gBAAgB,GAAG,qBAAqB,+BAA+B,GAAG,wBAAwB,uCAAuC,GAAG,sBAAsB,8BAA8B,GAAG,6CAA6C,2xH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAl7B;AACmB;AACpC;AACY;AAC2B;AAE9B;AACiB;AACW;AACC;AAGH;AACf;AAC7D,MAAM,MAAM,GAAG,mBAAO,CAAC,+CAAQ,CAAC,CAAC;AACW;AAC5C,MAAM,MAAM,GAAG,kEAAY,CAAC,MAAM,CAAC,CAAC;AACoC;AAMxE,IAAa,6BAA6B,GAA1C,MAAa,6BAA6B;IAsCxC,YAAoB,iBAAoC,EAC9C,aAA4B,EAC5B,OAA4B,EAC5B,gBAA6C,EAC7C,cAA8B,EAC9B,MAAc,EACf,MAAiB;QANN,sBAAiB,GAAjB,iBAAiB,CAAmB;QAC9C,kBAAa,GAAb,aAAa,CAAe;QAC5B,YAAO,GAAP,OAAO,CAAqB;QAC5B,qBAAgB,GAAhB,gBAAgB,CAA6B;QAC7C,mBAAc,GAAd,cAAc,CAAgB;QAC9B,WAAM,GAAN,MAAM,CAAQ;QACf,WAAM,GAAN,MAAM,CAAW;QAzC1B,oBAAe,GAAY,KAAK,CAAC;QAEjC,oBAAe,GAA4B,EAAE,CAAC;QAC9C,mBAAc,GAAsB,EAAE,CAAC;QAIvC,aAAQ,GAAQ,EAAE,CAAC;QACnB,mBAAc,GAAa,CAAC,+EAAiB,CAAC,UAAU,EAAE,+EAAiB,CAAC,IAAI,CAAC,CAAC;QAClF,eAAU,GAAY,KAAK,CAAC;QAI5B,qBAAgB,GAA2B,EAAE,CAAC;QAM9C,WAAM,GAAG,EAAE,CAAC;QAEZ,UAAK,GAAG,IAAI,CAAC;QACb,WAAM,GAAY,KAAK,CAAC;QACxB,cAAS,GAAG,KAAK,CAAC;QAClB,kBAAa,GAAG,KAAK,CAAC;QACtB,MAAC,GAAW,CAAC,CAAC;QACd,eAAU,GAAG,EAAE,CAAC;QAChB,kBAAa,GAAG,EAAE,CAAC;QAEnB,gBAAW,GAAG,EAAE,CAAC;QAGjB,iBAAY,GAAG,EAAE,CAAC;QAElB,sBAAiB,GAAY,KAAK,CAAC;QAQjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QAEpE,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EACtC,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,CAAC;QAChG,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC1C;QACD,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,oFAAkB,CAAC,IAAI,EAAE;gBACxE,IAAI,CAAC,qBAAqB,GAAG,oFAAkB,CAAC,IAAI,CAAC;gBACrD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;aACtD;SACF;IACH,CAAC;IAED,mCAAmC;IAEnC,mBAAmB,CAAC,QAAQ;QAC1B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;YACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;SAC1C;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IAED,mBAAmB,CAAC,aAAqB;QACvC,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,aAAa,KAAK,+EAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAChF,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACzD,CAAC;IAED,gBAAgB,CAAC,oBAAoB;QACnC,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,qBAAqB,KAAK,+EAAiB,CAAC,IAAI,EAAE;YACzD,IAAI,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;SACnD;IACH,CAAC;IAED,UAAU,CAAC,MAAc;QACvB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC7B,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE;YAC1B,OAAO;SACR;QACD,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,gCAAgC,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACjH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC;YAClC,IAAI,IAAI,CAAC,qBAAqB,KAAK,+EAAiB,CAAC,IAAI,EAAE;gBACzD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC;aACjG;iBAAM;gBACL,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;aAC/E;YAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;YAC7C,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;gBACtC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;iBACI;gBACH,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACzC;YACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACtD,OAAO;oBACL,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,SAAS,EAAE,GAAG,CAAC,SAAS;oBACxB,aAAa,EAAE,GAAG,CAAC,aAAa;oBAChC,YAAY,EAAE,GAAG,CAAC,YAAY;oBAC9B,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,SAAS,EAAE,GAAG,CAAC,SAAS;oBACxB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,aAAa,EAAE,GAAG,CAAC,aAAa;oBAChC,SAAS,EAAE,GAAG,CAAC,SAAS;oBACxB,SAAS,EAAE,GAAG,CAAC,SAAS;oBACxB,WAAW,EAAE,UAAU,GAAG,GAAG,CAAC,SAAS;oBACvC,WAAW,EAAE,GAAG,CAAC,WAAW;oBAC5B,cAAc,EAAE,GAAG,CAAC,cAAc;oBAClC,QAAQ,EAAE,GAAG,CAAC,QAAQ;iBACvB;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa;QACX,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE;YAC1B,OAAO;SACR;QACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,aAAa,CAAC,SAAS;QACrB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,eAAe,CAAC,SAAS;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE;YACtE,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,+CAA+C,GAAG,SAAS,CAAC,aAAa,GAAG,MAAM,GAAG,IAAI;SAChG,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBACzE,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;wBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wFAAuB,EAAE;4BACxC,IAAI,EAAE;gCACJ,OAAO,EAAE,mBAAmB;6BAC7B;yBACF,CAAC,CAAC;wBACH,IAAI,CAAC,oBAAoB,EAAE,CAAC;qBAC7B;gBACH,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;IACV,cAAc;QACpB,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;YAC/B,aAAa,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;SAC1C;QACD,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC9B,aAAa,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;SAChD;QACD,IAAI,IAAI,CAAC,qBAAqB,KAAK,+EAAiB,CAAC,IAAI,EAAE;YACzD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBACxB,aAAa,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;aAC1C;SACF;QAED,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;YAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2FAAyB,EAAE;gBAC1C,IAAI,EAAE;oBACJ,aAAa,EAAE,aAAa;iBAC7B;aACF,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACrE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC;YAChC,IAAI,IAAI,CAAC,eAAe,EAAE;gBAExB,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,oFAAkB,CAAC,UAAU,EAAE;oBAC9E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;iBACjH;qBACI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,oFAAkB,CAAC,IAAI,EAAE;oBAC7E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;oBAChH,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;iBAEhE;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,sBAAsB,CAAC,oBAAoB;QACjD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACrE,IAAI,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;YAChC,IAAI,IAAI,CAAC,eAAe,IAAI,eAAe,EAAE;gBAC3C,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,oFAAkB,CAAC,UAAU,EAAE;oBAC9E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;iBACrG;qBACI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,oFAAkB,CAAC,IAAI,EAAE;oBAC7E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;oBACjJ,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;oBAC1D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;iBAC/C;aACF;iBACI;gBACH,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,oBAAoB,CAAC,CAAC;aAC1F;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,qBAAqB;QAC3B,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACjG,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC;QACzE,IAAI,CAAC,SAAS,GAAG;YACf,aAAa,EAAE,IAAI,CAAC,qBAAqB;YACzC,YAAY,EAAE,IAAI,CAAC,oBAAoB;YACvC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;YAC3D,MAAM,EAAE,CAAC,IAAI,CAAC,qBAAqB,IAAI,+EAAiB,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YAC/G,QAAQ,EAAE,CAAC,IAAI,CAAC,qBAAqB,IAAI,+EAAiB,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;SAC9F,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;IAED,aAAa,CAAC,SAAS;QACrB,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,gBAAgB,CAAC,8BAA8B,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACjJ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC;YACvD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC;YACpF,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC;YACjD,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC;YACzE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;gBACnB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;YAC/I,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,WAAW;QACjB,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACxD,OAAO,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACT,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;YACrE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;YAC5B,yBAAY,CAAC,IAAE,QAAQ,IAAG;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,2BAA2B,CAAC,KAAc;QACxC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,8BAA8B,CAAC,KAAK;QAClC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,CAAC,QAAQ;QACX,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,sBAAsB;QAClD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;CAEF;;YA5QwC,8EAAiB;YAC/B,6DAAa;YACnB,kEAAmB;YACV,2FAA2B;YAC7B,yEAAc;YACtB,sDAAM;YACP,2DAAS;;AA5Cf,6BAA6B;IALzC,+DAAS,CAAC;QACT,QAAQ,EAAE,4BAA4B;QACtC,oMAAsD;;KAEvD,CAAC;GACW,6BAA6B,CAkTzC;AAlTyC;AAyT1C,IAAa,mCAAmC,GAAhD,MAAa,mCAAmC;IAI9C,YACS,SAA4D,EACnC,IAAS;QADlC,cAAS,GAAT,SAAS,CAAmD;QACnC,SAAI,GAAJ,IAAI,CAAK;QAJ3C,cAAS,GAAG,KAAK,CAAC;QAKhB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,QAAQ,KAAW,CAAC;IAEpB,UAAU;QACR,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACF;;YApBqB,8DAAY;4CAC7B,oDAAM,SAAC,iEAAe;;AANd,mCAAmC;IAJ/C,+DAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,gJAA0B;KAC3B,CAAC;IAOG,6GAAM,CAAC,iEAAe,CAAC;GANf,mCAAmC,CAyB/C;AAzB+C;;;;;;;;;;;;;AChVhD;AAAA;AAAA,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IACzB,8CAAyB;IACzB,kCAAa;AACjB,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,QAG5B;;;;;;;;;;;;;;;;;;;;;;ACHoE;AAC1B;AACoB;AACnB;AACe;AAQ3D,IAAa,2BAA2B,GAAxC,MAAa,2BAA2B;IAKpC,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAHpC,YAAO,GAAG,wEAAW,CAAC,OAAO,CAAC;QACvB,cAAS,GAA+B,IAAI,oDAAe,CAAY,IAAI,CAAC,CAAC;IAE5C,CAAC;IAEzC,gCAAgC,CAAC,YAAoB,EAAE,SAAiB;QACpE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,GAAG,IAAI,CAAC,OAAO,wDAAwD,YAAY,cAAc,SAAS,EAAE,CAAC;aAC/I,IAAI,CACD,iEAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAC/B,CAAC;IACV,CAAC;IAED,8BAA8B,CAAC,SAAiB,EAAE,YAAoB,EAAE,MAAc,EAAE,iBAAyB;QAC7G,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,GAAG,IAAI,CAAC,OAAO,sDAAsD,YAAY,WAAW,MAAM,cAAc,SAAS,gBAAgB,iBAAiB,EAAE,CAAC;aAC/L,IAAI,CACD,iEAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAC/B,CAAC;IACV,CAAC;IAED,+BAA+B,CAAC,MAA4B;QACxD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,wCAAwC,EAAE,MAAM,CAAC,CAAC,IAAI,CACvF,iEAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAC/B,CAAC;IACN,CAAC;IAED,4BAA4B,CAAC,iBAAyB;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,GAAG,IAAI,CAAC,OAAO,mDAAmD,iBAAiB,EAAE,CAAC;aACxH,IAAI,CACD,iEAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAC/B,CAAC;IACV,CAAC;IAED,qBAAqB,CAAC,WAAmB;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,4CAA4C,WAAW,EAAE,CAAC,CAAC,IAAI,CAC/F,iEAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAC/B,CAAC;IACN,CAAC;IACD,4BAA4B,CAAC,SAAiB;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,iDAAiD,SAAS,EAAE,CAAC,CAAC,IAAI,CAClG,iEAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAC/B,CAAC;IACN,CAAC;IAEO,WAAW,CAAC,GAAsB;QACtC,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,GAAG,CAAC,KAAK,YAAY,UAAU,EAAE;YACjC,YAAY,GAAG,qBAAqB,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;SAC3D;aACI;YACD,YAAY,GAAG,yBAAyB,GAAG,CAAC,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE;SACxF;QACD,OAAO,uDAAU,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;CAEJ;;YAnD6B,+DAAU;;AAL3B,2BAA2B;IAHvC,gEAAU,CAAC;QACR,UAAU,EAAE,MAAM;KACrB,CAAC;GACW,2BAA2B,CAwDvC;AAxDuC;;;;;;;;;;;;ACZxC,yBAAyB,+BAA+B,qBAAqB,KAAK,gBAAgB,kCAAkC,uBAAuB,qBAAqB,cAAc,SAAS,oBAAoB,oBAAoB,wBAAwB,oBAAoB,6BAA6B,SAAS,eAAe,uBAAuB,iCAAiC,qBAAqB,qBAAqB,KAAK,aAAa,qBAAqB,KAAK,YAAY,gCAAgC,WAAW,aAAa,2BAA2B,2BAA2B,6BAA6B,OAAO,mBAAmB,2BAA2B,WAAW,UAAU,2BAA2B,uBAAuB,2BAA2B,KAAK,eAAe,4BAA4B,sBAAsB,KAAK,eAAe,sBAAsB,uBAAuB,KAAK,eAAe,yBAAyB,0BAA0B,KAAK,eAAe,2BAA2B,KAAK,wCAAwC,gCAAgC,KAAK,iBAAiB,wBAAwB,wBAAwB,KAAK,wBAAwB,uBAAuB,uBAAuB,KAAK,gBAAgB,mBAAmB,uBAAuB,KAAK,gBAAgB,qBAAqB,2BAA2B,wBAAwB,0BAA0B,wBAAwB,KAAK,mBAAmB,gCAAgC,qBAAqB,+BAA+B,uBAAuB,aAAa,KAAK,aAAa,kBAAkB,yBAAyB,cAAc,qBAAqB,0BAA0B,wBAAwB,yBAAyB,yBAAyB,qBAAqB,KAAK,cAAc,8BAA8B,8CAA8C,8BAA8B,0BAA0B,6BAA6B,0BAA0B,KAAK,YAAY,uBAAuB,qBAAqB,wBAAwB,0BAA0B,wBAAwB,6BAA6B,0BAA0B,eAAe,iBAAiB,KAAK,UAAU,yBAAyB,wBAAwB,0BAA0B,uBAAuB,KAAK,kBAAkB,6BAA6B,KAAK,UAAU,uBAAuB,KAAK,eAAe,6BAA6B,QAAQ,kBAAkB,2BAA2B,2BAA2B,KAAK,gBAAgB,iBAAiB,uBAAuB,KAAK,aAAa,qBAAqB,sBAAsB,OAAO,+BAA+B,0BAA0B,KAAK,0BAA0B,6CAA6C,8BAA8B,6BAA6B,KAAK,0BAA0B,yCAAyC,8BAA8B,+BAA+B,OAAO,yBAAyB,yCAAyC,8BAA8B,+BAA+B,OAAO,sBAAsB,yCAAyC,8BAA8B,6BAA6B,yBAAyB,KAAK,sBAAsB,2CAA2C,gCAAgC,6BAA6B,KAAK,kBAAkB,6BAA6B,8BAA8B,SAAS,eAAe,+BAA+B,SAAS,eAAe,uCAAuC,wCAAwC,YAAY,kBAAkB,oCAAoC,qCAAqC,UAAU,mDAAmD,+0O;;;;;;;;;;;;;;;;;;;;;;;;;;ACAztH;AACR;AACH;AACqC;AAIvC;AACH;AAIW;AACN;AAQ/C,IAAa,gBAAgB,GAA7B,MAAa,gBAAgB;IAkE3B,YAAoB,IAAU,EAAU,aAA4B,EAC3D,MAAiB,EAAU,OAA4B;QAD5C,SAAI,GAAJ,IAAI,CAAM;QAAU,kBAAa,GAAb,aAAa,CAAe;QAC3D,WAAM,GAAN,MAAM,CAAW;QAAU,YAAO,GAAP,OAAO,CAAqB;QAhEhE,cAAS,GAAG,KAAK,CAAC;QAClB,WAAM,GAAG,KAAK,CAAC;QAcf,kBAAa,GAAG,GAAG,CAAC;QAUpB,iBAAY,GAAG,EAAE,CAAC;QAClB,wBAAmB,GAAG,EAAE,CAAC;QAEzB,uBAAkB,GAAG,EAAE,CAAC;QACxB,eAAU,GAAG,KAAK,CAAC;QAInB,MAAC,GAAW,CAAC,CAAC;QACd,eAAU,GAAG,EAAE,CAAC;QAChB,kBAAa,GAAG,EAAE,CAAC;QAEnB,gBAAW,GAAG,EAAE,CAAC;QACjB,WAAM,GAAY,KAAK,CAAC;QACxB,WAAM,GAAG,EAAE,CAAC;QAEZ,UAAK,GAAG,IAAI,CAAC;QACb,gBAAW,GAAG,KAAK,CAAC;QACpB,eAAU,GAAG,EAAE,CAAC;QAEhB,cAAS,GAAG,KAAK,CAAC;QAClB,kBAAa,GAAG,KAAK,CAAC;QAOtB,sBAAiB,GAAG,KAAK,CAAC;QAE1B,oBAAe,GAAG,EAAE,CAAC;QAGrB,0BAAqB,GAAG,KAAK,CAAC;QAG9B,gBAAW,GAAG,IAAI,IAAI,EAAE,CAAC;QAIvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAElE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACnD,CAAC;IAED,QAAQ;QAEN,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7B,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;YACjC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;SAC9B;aACI;YACH,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;SACvB;QACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC,CAAC;QAC5F,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC1C;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,WAAW,EAAE,CAAC;IAErB,CAAC;IACD,WAAW;QACT,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAGD,UAAU;QACR,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC;QAE1C,IAAI,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAC5C,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CACL,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChH,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClH,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1G,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxG,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;gBAChH,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CACjH,CAAC;QACJ,CAAC,CAEF,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACpC,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,CAAC,EAAE;YACvC,sBAAsB;YACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;IACH,CAAC;IAED,UAAU;QACR,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAChE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;YAC3B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,IAAI,IAAI,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC;YACrH,IAAI,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACtE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;YAE/C,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE;gBACxC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;gBACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;iBACI;gBACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,GAAG,EAAE;oBAChF,IAAI,CAAC,kBAAkB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;iBAC3I;qBACI;oBACH,IAAI,CAAC,kBAAkB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;iBACrF;gBAGD,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;oBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;iBAC1C;gBACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACxF,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;oBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;wBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;iBAC3C;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,QAAQ;QACX,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,0BAA0B;QACtD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,WAAW;QACT,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACjE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAE7B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,WAAW;QACT,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAEjE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;YAC5B,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAErC,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE;gBACtB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;aACzG;iBAAM;gBACL,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;aAC9E;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,YAAY;QACV,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,YAAY;QACV,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAClE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAEvC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAC5C,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YAC9C,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACtC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9C,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;YAClD,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAC5C,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YAC7C,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YAEjD,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACxC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAChD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;YACzC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YAClC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;YACvC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAExB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;SAC9B;QAED,iBAAiB;QACjB,iBAAiB;QACjB,UAAU;QACV,mIAAmI;QAEnI,YAAY;QAEZ,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,GAAG,cAAc,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,gBAAgB,GAAG,qBAAqB,EAAE,0DAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QAGjS,uFAAuF;IACzF,CAAC;IAGD,kBAAkB;QAChB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC7E,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAEvC,IAAI,QAAa,CAAC;YAClB,QAAQ,GAAG,OAAO,CAAC;YACnB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBACzB,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;gBACnC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBAClE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;oBACvC,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC;gBACrC,CAAC,CAAC,CAAC;aACJ;iBACI;gBACH,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC;gBACpC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;aACnC;QAEH,CAAC,CAAC,CAAC;IAGL,CAAC;IACD,aAAa;QACX,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACrD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACtD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IACD,SAAS;QACP,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACjD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;YAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC;IACD,WAAW;QACT,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACnD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC7D,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,WAAW;QACT,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACjE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,UAAU;QACR,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAChE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;YAC3B,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACnC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,UAAU,CAAC,GAAW;QACpB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;YACzD,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,GAAG,GAAG,KAAK,GAAG,KAAK;SAC1B,CAAC,CAAC;QACH,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;QACD,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAEzD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjE,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QACnE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACzD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC3E,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC3E,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QACnE,SAAS,CAAC,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/D,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW;QAC1D,IAAI,GAAG,KAAK,MAAM,EAAE;YAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACzD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvD,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACzD,SAAS,CAAC,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YAC/D,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;YACzE,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACjD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrD,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACzD,SAAS,CAAC,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YACnD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC3D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;YAC3E,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvD,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACvE,SAAS,CAAC,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YAC/D,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;YACtD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW;SAC3D;QAED,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAGzC,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;gBAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;iBACI;gBACH,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;YAED,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;gBAChC,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI,QAAQ,EAAE;oBACpC,SAAS,GAAG,oBAAoB,CAAC;oBACjC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;oBACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;oBACxB,IAAI,CAAC,UAAU,EAAE,CAAC;iBACnB;qBACI;oBACH,SAAS,GAAG,sBAAsB,CAAC;iBAEpC;gBACD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;oBAC5D,UAAU,EAAE,yBAAyB;oBACrC,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,KAAK;iBAEhC,CAAC,CAAC;gBACH,YAAY,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;oBAClB,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAC1B,sBAAsB;gBACxB,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,eAAe,CAAC,SAAiB;QAC/B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,EAAE;gBAChD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9C;SACF;IACH,CAAC;IACD,yCAAyC;IACzC,wDAAwD;IACxD,qEAAqE;IACrE,oEAAoE;IACpE,QAAQ;IACR,MAAM;IAEN,IAAI;IACJ,kBAAkB,CAAC,UAAU;QAC3B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,EAAE;gBAChD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;aACjD;SACF;IACH,CAAC;IACD,WAAW,CAAC,OAAO,EAAE,IAAI;QAEvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAGxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAChD,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,EAAE;gBACvD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;aAE7C;SACF;QAED,8CAA8C;QAC9C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS;QAClC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAEzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE;gBAC1D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;aAC/C;SAEF;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;YACpC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;YACrC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;SAChC;aAAM;YACL,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;YACxC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;SACjC;QAED,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAGD,QAAQ;QAEN,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SACvC;IACH,CAAC;IAED,aAAa,CAAC,OAAO;QAEnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAGnC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;YACzD,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,8CAA8C,GAAG,OAAO,CAAC,SAAS,GAAG,MAAM,GAAG,IAAI;SAEzF,CAAC,CAAC;QACH,2BAA2B;QAE3B,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,MAAM,EAAE;gBAEV,0BAA0B;gBAC1B,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBAEhE,IAAI,IAAI,CAAC,EAAE,EAAE;wBACX,IAAI,CAAC,QAAQ,EAAE,CAAC;wBAChB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;wBACtB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;qBACzC;oBACD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;oBACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;oBACxB,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CAIF;;YA1d2B,kDAAI;YAAyB,6DAAa;YACnD,kEAAS;YAAmB,kEAAmB;;AAnErD,gBAAgB;IAN5B,+DAAS,CAAC;QACT,QAAQ,EAAE,aAAa;QACvB,uJAAuC;QACvC,2CAA2C;QAC3C,SAAS,EAAE,CAAC,6DAAa,CAAC;KAC3B,CAAC;GACW,gBAAgB,CA4hB5B;AA5hB4B;AAsiB7B,IAAa,sBAAsB,GAAnC,MAAa,sBAAsB;IAwDjC,YAAmB,MAAiB,EAC3B,SAA+C,EACtB,IAAS,EAAS,aAA4B,EAAU,QAAkB;QAFzF,WAAM,GAAN,MAAM,CAAW;QAC3B,cAAS,GAAT,SAAS,CAAsC;QACtB,SAAI,GAAJ,IAAI,CAAK;QAAS,kBAAa,GAAb,aAAa,CAAe;QAAU,aAAQ,GAAR,QAAQ,CAAU;QAzD5G,0BAAqB,GAAG,KAAK,CAAC;QAG9B,cAAS,GAAG,KAAK,CAAC;QAClB,WAAM,GAAG,KAAK,CAAC;QAUf,aAAQ,GAAG,EAAE,CAAC;QAKd,kBAAa,GAAG,GAAG,CAAC;QASpB,iBAAY,GAAG,EAAE,CAAC;QAClB,wBAAmB,GAAG,EAAE,CAAC;QACzB,gBAAW,GAAG,IAAI,0DAAW,EAAE,CAAC;QAChC,sBAAiB,GAAG,EAAE,CAAC;QAMvB,sBAAiB,GAAG,KAAK,CAAC;QAC1B,oBAAe,GAAG,EAAE,CAAC;QAErB,aAAQ,GAAG,KAAK,CAAC;QAGjB,uBAAkB,GAAG,EAAE,CAAC;QACxB,aAAQ,GAAG,KAAK,CAAC;QACjB,WAAM,GAAG,KAAK,CAAC;QAIf,cAAS,GAAG,KAAK,CAAC;QAClB,YAAO,GAAG,IAAI,CAAC;QACf,eAAU,GAAG,IAAI,CAAC;QAClB,qBAAgB,GAAG,KAAK,CAAC;QAEzB,gBAAW,GAAG,IAAI,IAAI,EAAE,CAAC;QAIvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;YACnC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;aACI;YACH,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;gBACvB,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;aACpC;iBAAM;gBACL,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC;aACrC;YACD,8BAA8B;YAC9B,yCAAyC;YACzC,YAAY;YACZ,0CAA0C;YAC1C,KAAK;YACL,IAAI;YAEJ,SAAS;YACT,8BAA8B;YAC9B,MAAM;YACN,mCAAmC;YACnC,MAAM;SACP;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE;YAC1B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;SAC/B;aAAM;YACL,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;SAC9B;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtG,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;YACpB,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;SACnC;aACI;YACH,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;SACpC;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC1C;IACH,CAAC;IACD,SAAS;QACP,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACjD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,UAAU;QACR,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,iBAAiB;QACf,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC;IACnD,CAAC;IAED,UAAU;QACR,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,SAAS,GAAG,CAAC,CAAC;QAEpB,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,6HAA6H;YAC/J,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS;YACxE,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,IAAI,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YAEtH,IAAI,CAAC,SAAS,KAAK,EAAE,IAAI,sDAAsD;YAC/E,IAAI,CAAC,aAAa,KAAK,EAAE;YACzB,2CAA2C;YAC3C,IAAI,CAAC,MAAM,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,KAAK,EAAE,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;YAE3I,IAAI,CAAC,QAAQ,GAAG,kCAAkC,CAAC;YACnD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;aAExB;YACD,KAAK,EAAE,CAAC;SACT;QAED,IAAI,KAAK,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,EAAE;YAClC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;gBAEvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACxB;iBAAM;gBACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACxB;SACF;IACH,CAAC;IACD,kBAAkB,CAAC,KAAK;QACtB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC;IACvC,CAAC;IACD,MAAM,CAAC,GAAW;QAChB,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;YAC3D,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;SACvB;QAED,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;YACpF,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;SACtB;QACD,IAAI,UAAkB,CAAC;QACvB,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,UAAU,GAAG,IAAI,CAAC,aAAa;SAChC;aACI;YACH,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;SAC9B;QACD,MAAM,IAAI,GAAG;YACX,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,GAAG;YACf,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,UAAU,EAAE,UAAU;YACtB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB;YAC1C,YAAY,EAAE,GAAG;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B;QACD,IAAI,GAAG,KAAK,KAAK,EAAE;YAEjB,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAE1D,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;oBAEpC,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;wBACzC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;wBAC1C,MAAM,QAAQ,GAAG;4BACf,SAAS,EAAE,IAAI,CAAC,SAAS;4BACzB,SAAS,EAAE,IAAI,CAAC,WAAW;4BAC3B,SAAS,EAAE,IAAI,CAAC,WAAW;yBAC5B,CAAC;wBACF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;4BACrD,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;gCACpC;iCAEC;6BACF;wBACH,CAAC,CAAC,CAAC;wBAEH,8BAA8B;wBAC9B,IAAI,CAAC,QAAQ,GAAG,mBAAmB,CAAC;wBACpC,8BAA8B;wBAC9B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;wBACrB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;wBACvB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;wBAC5B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;wBAClB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;wBACtB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;wBACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;wBAC5C,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;wBACpB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;wBACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;wBACnB,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;qBAE9B;yBACI;wBACH,IAAI,CAAC,QAAQ,GAAG,sBAAsB,CAAC;qBACxC;iBACF;YAEH,CAAC,CAAC,CAAC;SACJ;aAAM;YAEL,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAE1D,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;oBACpC,IAAI,CAAC,QAAQ,GAAG,sBAAsB,CAAC;oBACvC,UAAU,CAAC,GAAG,EAAE;wBACd,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC7B,CAAC,EAAE,IAAI,CAAC,CAAC;iBACV;qBAAM;oBACL,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC;iBAClC;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAGD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IACD,QAAQ,CAAC,KAAK;QACZ,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;QAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;QAE9E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YAC9F,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;SAErD;IACH,CAAC;IACD,OAAO,CAAC,KAAK;QACX,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAGrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAChD,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE;gBACpD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;aAE7C;SACF;IAEH,CAAC;IACD,eAAe,CAAC,SAAS;QACvB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,EAAE;gBAChD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9C;SACF;IACH,CAAC;IACD,QAAQ,CAAC,KAAK;QACZ,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,kBAAkB,CAAC,UAAU;QAC3B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAEjD,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,EAAE;gBAChD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;aACjD;SACF;IACH,CAAC;IACD,WAAW,CAAC,KAAK;QACf,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED,mBAAmB;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxD,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa,EAAE;gBACpE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5D;SACF;IACH,CAAC;IAED,eAAe,CAAC,KAAK;QACnB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,KAAK,CAAC;QAEtC,IAAI,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,KAAK,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAClG,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACnB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;SACnC;QAED,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACtB;IACH,CAAC;IACD,gBAAgB,CAAC,KAAK;QACpB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,KAAK,CAAC;IACxC,CAAC;IACD,UAAU,CAAC,KAAK;QACd,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;IAClC,CAAC;IAED,IAAI,CAAC,KAAK;QACR,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;IAE5B,CAAC;IAED,iBAAiB,CAAC,MAAM;QACtB,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACzD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;YAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpD,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,EAAE;oBAC7C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;iBAChD;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,KAAK;QACZ,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;IAChC,CAAC;IAED,YAAY,CAAC,KAAK;QAChB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;IAC9B,CAAC;IAED,OAAO;QACL,0BAA0B;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IACD,UAAU;QACR,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,oCAAoC;QACpC,6BAA6B;QAC7B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,uBAAuB;QACvB,wBAAwB;IAC1B,CAAC;IACD,QAAQ;QACN,mCAAmC;QACnC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,SAAS,GAAG,CAAC,CAAC;QAEpB,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAEtE,IAAI,CAAC,QAAQ,GAAG,kCAAkC,CAAC;YACnD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;aAExB;YACD,KAAK,EAAE,CAAC;SACT;QAED,IAAI,KAAK,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,EAAE;YAClC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;gBAEvB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACjC;iBAAM;gBACL,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACjC;SACF;aAAM;SAEN;IAEH,CAAC;IAED,eAAe,CAAC,GAAW;QACzB,wCAAwC;QACxC,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,EAAE,EAAE;YAC/D,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;YAC7B,IAAI,GAAG,KAAK,KAAK,EAAE;gBACjB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAChD,wCAAwC;gBACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB;aACvC;YAED,IAAI,GAAG,KAAK,MAAM,EAAE;gBAClB,yCAAyC;gBACzC,mCAAmC;gBACnC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;gBACtE,wCAAwC;gBACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;aAChE;SACF;QAED,MAAM,IAAI,GAAG;YACX,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,kBAAkB;YACjE,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,aAAa,EAAE,CAAC;SACjB;QACD,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,qBAAqB;YACrB,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACxD,0CAA0C;gBAC1C,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;oBACvC,8BAA8B;oBAC9B,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAC1B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;oBACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;oBACvB,IAAI,CAAC,QAAQ,GAAG,qCAAqC,CAAC;oBACtD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;oBACtB,oCAAoC;oBACpC,8BAA8B;iBAE/B;qBAAM;oBACL,IAAI,CAAC,QAAQ,GAAG,+BAA+B,CAAC;iBACjD;YAEH,CAAC,CAAC,CAAC;SACJ;aACI;YACH,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACxD,8BAA8B;gBAC9B,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;oBAGvC,IAAI,CAAC,QAAQ,GAAG,uCAAuC,CAAC;oBACxD,UAAU,CAAC,GAAG,EAAE;wBACd,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;oBACrB,CAAC,EAAE,IAAI,CAAC,CAAC;oBACT,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;oBACtB,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAC1B,wBAAwB;iBAEzB;qBAAM;oBACL,IAAI,CAAC,QAAQ,GAAG,iCAAiC,CAAC;iBACnD;YACH,CAAC,CAAC,CAAC;SACJ;IAEH,CAAC;IAED,YAAY;QACV,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAGrB,qEAAqE;QACrE,2DAA2D;QAC3D,uBAAuB;QACvB,wBAAwB;QACxB,cAAc;QACd,SAAS;QACT,0BAA0B;QAC1B,yBAAyB;QACzB,uBAAuB;QACvB,sBAAsB;QACtB,IAAI;IACN,CAAC;IAED,QAAQ;QAEN,IAAI,IAAI,CAAC,aAAa,CAAC,oBAAoB,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,oBAAoB,KAAK,EAAE,EAAE;YAC3G,IAAI,CAAC,QAAQ,GAAG,kCAAkC;SACnD;aAAM;YACL,uBAAuB;YACvB,wCAAwC;YACxC,mBAAmB;YACnB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAC7B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,wBAAwB;SACzB;IAGH,CAAC;IAED,UAAU;QACR,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAChE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,UAAU,CAAC,OAAO,EAAE,IAAI;QAEtB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;YAE1D,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,kDAAkD,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI;SAEhF,CAAC,CAAC;QACH,2BAA2B;QAE3B,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,MAAM,EAAE;gBACV,wCAAwC;gBACxC,wBAAwB;gBACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACvD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;oBACvE,uCAAuC;iBACxC;gBACD,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,UAAU,CAAC,GAAG,EAAE;oBACd,iCAAiC;oBACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAChD,iEAAiE;wBACjE,IAAI,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE;4BACrD,UAAU,EAAE,CAAC;yBACd;qBAGF;oBAED,0BAA0B;oBAC1B,4BAA4B;oBAC5B,IAAI,CAAC,UAAU,EAAE;wBACf,uBAAuB;wBACvB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;4BACtD,yBAAyB;4BACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;4BACpB,IAAI,CAAC,QAAQ,GAAG,sBAAsB,CAAC;4BACvC,IAAI,IAAI,CAAC,EAAE,EAAE;gCACX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gCACtB,2CAA2C;6BAC5C;4BACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;4BAC1B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;wBACzB,CAAC,CAAC,CAAC;qBAEJ;yBAAM;wBACL,IAAI,CAAC,QAAQ,GAAG,iCAAiC,CAAC;qBACnD;gBAEH,CAAC,EAAE,GAAG,CAAC,CAAC;aAGT;QACH,CAAC,CAAC,CAAC;QAMH,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IACD,OAAO;QAEL,MAAM,IAAI,GAAG;YACX,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC;YAChD,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,aAAa,EAAE,CAAC;SACjB;QAED,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACxD,yCAAyC;YACzC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;gBAGvC,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC1B,8BAA8B;gBAC9B,IAAI,CAAC,QAAQ,GAAG,qCAAqC,CAAC;gBACtD,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;gBACrB,CAAC,EAAE,IAAI,CAAC,CAAC;aACV;iBAAM;gBACL,IAAI,CAAC,QAAQ,GAAG,+BAA+B,CAAC;gBAChD,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;gBACrB,CAAC,EAAE,IAAI,CAAC,CAAC;aACV;QAEH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,kBAAkB;QAChB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC7E,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAEvC,IAAI,QAAa,CAAC;YAClB,QAAQ,GAAG,OAAO,CAAC;YACnB,0BAA0B;YAC1B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBACzB,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;gBAClC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBAClE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;oBACvC,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC;oBACnC,yCAAyC;gBAC3C,CAAC,CAAC,CAAC;aACJ;iBACI;gBACH,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC;gBACpC,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;aACpC;QAEH,CAAC,CAAC,CAAC;IAGL,CAAC;CAEF;;YAxjB4B,kEAAS;YAChB,qEAAY;4CAC7B,oDAAM,SAAC,wEAAe;YAA0C,6DAAa;YAAoB,wDAAQ;;AA1DjG,sBAAsB;IANlC,+DAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,iIAA0B;QAC1B,6BAA6B;QAC7B,SAAS,EAAE,CAAC,6DAAa,EAAE,wDAAQ,CAAC;KACrC,CAAC;IA2DG,6GAAM,CAAC,wEAAe,CAAC;GA1Df,sBAAsB,CAgnBlC;AAhnBkC;AAynBnC,IAAa,uBAAuB,GAApC,MAAa,uBAAuB;IAclC,YACS,SAAgD,EACvB,IAAS,EAAS,aAA4B;QADvE,cAAS,GAAT,SAAS,CAAuC;QACvB,SAAI,GAAJ,IAAI,CAAK;QAAS,kBAAa,GAAb,aAAa,CAAe;QAfhF,cAAS,GAAG,KAAK,CAAC;QAUlB,eAAU,GAAG,EAAE,CAAC;QAEhB,gBAAW,GAAG,IAAI,IAAI,EAAE,CAAC;QAIvB,+BAA+B;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,QAAQ;IAER,CAAC;IACD,UAAU;QACR,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;CAEF;;YAzBqB,qEAAY;4CAC7B,oDAAM,SAAC,wEAAe;YAA0C,6DAAa;;AAhBrE,uBAAuB;IANnC,+DAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,iIAA0B;QAE1B,SAAS,EAAE,CAAC,6DAAa,CAAC;;KAC3B,CAAC;IAiBG,6GAAM,CAAC,wEAAe,CAAC;GAhBf,uBAAuB,CAwCnC;AAxCmC;;;;;;;;;;;;ACprCpC,8BAA8B,oBAAoB,kBAAkB,gBAAgB,iBAAiB,qCAAqC,KAAK,kBAAkB,WAAW,iBAAiB,KAAK,qBAAqB,YAAY,KAAK,kBAAkB,cAAc,OAAO,kBAAkB,2BAA2B,OAAO,sBAAsB,cAAc,oBAAoB,gCAAgC,KAAK,0BAA0B,iBAAiB,KAAK,cAAc,oBAAoB,gCAAgC,yBAAyB,iBAAiB,wBAAwB,sBAAsB,KAAK,qBAAqB,+BAA+B,KAAK,iCAAiC,gBAAgB,6BAA6B,KAAK,kBAAkB,cAAc,oBAAoB,8BAA8B,KAAK,SAAS,iCAAiC,kBAAkB,+BAA+B,OAAO,oBAAoB,gBAAgB,sBAAsB,gCAAgC,OAAO,aAAa,iCAAiC,kDAAkD,+BAA+B,OAAO,oBAAoB,wBAAwB,OAAO,yBAAyB,yBAAyB,OAAO,4BAA4B,kBAAkB,SAAS,WAAW,+BAA+B,sBAAsB,uBAAuB,KAAK,sBAAsB,mBAAmB,2BAA2B,KAAK,qBAAqB,4BAA4B,yBAAyB,2BAA2B,KAAK,kBAAkB,0CAA0C,KAAK,iBAAiB,wBAAwB,KAAK,mBAAmB,oBAAoB,qBAAqB,2BAA2B,wBAAwB,0BAA0B,qBAAqB,gCAAgC,2BAA2B,WAAW,wBAAwB,gCAAgC,KAAK,oBAAoB,gCAAgC,KAAK,mBAAmB,iBAAiB,qCAAqC,iBAAiB,qBAAqB,KAAK,mBAAmB,qBAAqB,yBAAyB,KAAK,sBAAsB,kCAAkC,aAAa,8BAA8B,kCAAkC,wBAAwB,6BAA6B,KAAK,4BAA4B,oBAAoB,EAAE,+BAA+B,kBAAkB,EAAE,uBAAuB,iBAAiB,yBAAyB,KAAK,sBAAsB,0BAA0B,uBAAuB,yBAAyB,KAAK,oBAAoB,gBAAgB,qCAAqC,iBAAiB,oBAAoB,KAAK,oBAAoB,mBAAmB,uBAAuB,KAAK,uBAAuB,gCAAgC,WAAW,+BAA+B,gCAAgC,sBAAsB,2BAA2B,KAAK,6BAA6B,oBAAoB,EAAE,gCAAgC,kBAAkB,EAAE,uBAAuB,qBAAqB,YAAY,yBAAyB,MAAM,qBAAqB,yBAAyB,iBAAiB,oBAAoB,KAAK,eAAe,wBAAwB,KAAK,eAAe,kBAAkB,KAAK,iBAAiB,mBAAmB,gCAAgC,mBAAmB,yBAAyB,sBAAsB,yBAAyB,gCAAgC,sBAAsB,wBAAwB,0CAA0C,yBAAyB,KAAK,uBAAuB,qBAAqB,kCAAkC,qBAAqB,2BAA2B,wBAAwB,kCAAkC,2BAA2B,+BAA+B,qBAAqB,sCAAsC,qBAAqB,wBAAwB,0BAA0B,OAAO,yBAAyB,qBAAqB,kCAAkC,qBAAqB,yBAAyB,wBAAwB,kCAAkC,2BAA2B,wBAAwB,+BAA+B,2BAA2B,cAAc,yBAAyB,qBAAqB,kCAAkC,qBAAqB,yBAAyB,wBAAwB,kCAAkC,2BAA2B,wBAAwB,+BAA+B,cAAc,oBAAoB,uBAAuB,yBAAyB,gCAAgC,mBAAmB,yBAAyB,yBAAyB,sBAAsB,kBAAkB,sBAAsB,OAAO,qBAAqB,kCAAkC,qBAAqB,2BAA2B,2BAA2B,wBAAwB,2BAA2B,wBAAwB,OAAO,qBAAqB,gCAAgC,qBAAqB,oBAAoB,kCAAkC,2BAA2B,8BAA8B,2BAA2B,qBAAqB,wBAAwB,yBAAyB,yBAAyB,4BAA4B,4BAA4B,OAAO,sBAAsB,kCAAkC,qBAAqB,2BAA2B,wBAAwB,oBAAoB,8BAA8B,8BAA8B,2BAA2B,wBAAwB,OAAO,uBAAuB,gCAAgC,qBAAqB,oBAAoB,kCAAkC,2BAA2B,8BAA8B,2BAA2B,qBAAqB,wBAAwB,yBAAyB,yBAAyB,4BAA4B,UAAU,kBAAkB,oBAAoB,mBAAmB,kCAAkC,2BAA2B,2BAA2B,qBAAqB,yBAAyB,OAAO,kBAAkB,oBAAoB,kBAAkB,qCAAqC,8BAA8B,2BAA2B,yBAAyB,wBAAwB,yBAAyB,OAAO,wBAAwB,0BAA0B,OAAO,2BAA2B,wBAAwB,OAAO,uBAAuB,mCAAmC,kCAAkC,qBAAqB,2BAA2B,wBAAwB,2BAA2B,wBAAwB,+BAA+B,0CAA0C,qBAAqB,OAAO,kBAAkB,kCAAkC,kCAAkC,qBAAqB,2BAA2B,wBAAwB,2BAA2B,wBAAwB,+BAA+B,4CAA4C,uBAAuB,wBAAwB,OAAO,kBAAkB,kCAAkC,4BAA4B,2BAA2B,qBAAqB,yBAAyB,oBAAoB,qBAAqB,gCAAgC,wBAAwB,OAAO,oBAAoB,iBAAiB,yBAAyB,KAAK,mBAAmB,iCAAiC,kCAAkC,OAAO,sBAAsB,8BAA8B,+BAA+B,KAAK,sBAAsB,oBAAoB,gBAAgB,wBAAwB,2BAA2B,iBAAiB,qCAAqC,cAAc,kBAAkB,qBAAqB,uBAAuB,KAAK,qBAAqB,yBAAyB,KAAK,qBAAqB,kCAAkC,sBAAsB,KAAK,sCAAsC,iBAAiB,KAAK,kBAAkB,sBAAsB,KAAK,oBAAoB,cAAc,yBAAyB,sBAAsB,KAAK,oBAAoB,YAAY,KAAK,yBAAyB,kBAAkB,gCAAgC,SAAS,4BAA4B,iBAAiB,WAAW,wBAAwB,cAAc,yBAAyB,sBAAsB,sBAAsB,uBAAuB,KAAK,wBAAwB,uBAAuB,WAAW,wBAAwB,kBAAkB,KAAK,8EAA8E,QAAQ,iCAAiC,OAAO,gBAAgB,qBAAqB,OAAO,uBAAuB,uBAAuB,mBAAmB,oBAAoB,gCAAgC,+BAA+B,4BAA4B,WAAW,qBAAqB,qBAAqB,MAAM,2BAA2B,mBAAmB,iBAAiB,4BAA4B,6BAA6B,WAAW,kBAAkB,uBAAuB,kBAAkB,qBAAqB,eAAe,gBAAgB,uBAAuB,uBAAuB,MAAM,aAAa,kBAAkB,MAAM,WAAW,mDAAmD,2rkB;;;;;;;;;;;ACAt6S,kIAAkI,gBAAgB,cAAc,eAAe,GAAG,gBAAgB,uBAAuB,2BAA2B,mBAAmB,sBAAsB,GAAG,kBAAkB,kBAAkB,GAAG,oBAAoB,eAAe,GAAG,eAAe,eAAe,GAAG,+BAA+B,kBAAkB,GAAG,kBAAkB,eAAe,eAAe,GAAG,eAAe,eAAe,eAAe,GAAG,kBAAkB,eAAe,eAAe,GAAG,sBAAsB,yBAAyB,GAAG,kQAAkQ,mBAAmB,kBAAkB,gBAAgB,iBAAiB,KAAK,sBAAsB,oBAAoB,6BAA6B,sCAAsC,KAAK,wBAAwB,kBAAkB,KAAK,mBAAmB,kBAAkB,KAAK,mCAAmC,oBAAoB,6BAA6B,KAAK,mDAAmD,kBAAkB,oBAAoB,iBAAiB,KAAK,gGAAgG,kBAAkB,mBAAmB,KAAK,0BAA0B,2BAA2B,KAAK,iBAAiB,sBAAsB,KAAK,GAAG,6LAA6L,2BAA2B,0BAA0B,GAAG,kBAAkB,qBAAqB,GAAG,gBAAgB,qBAAqB,oBAAoB,KAAK,GAAG,gBAAgB,WAAW,iBAAiB,6BAA6B,KAAK,mBAAmB,+BAA+B,KAAK,GAAG,gBAAgB,sBAAsB,+BAA+B,6BAA6B,KAAK,GAAG,iBAAiB,qBAAqB,qBAAqB,KAAK,GAAG,aAAa,+BAA+B,GAAG,gBAAgB,+BAA+B,GAAG,iBAAiB,2BAA2B,+BAA+B,GAAG,SAAS,oBAAoB,GAAG,eAAe,uBAAuB,GAAG,SAAS,gBAAgB,GAAG,WAAW,iBAAiB,8BAA8B,iBAAiB,uBAAuB,oBAAoB,uBAAuB,8BAA8B,oBAAoB,sBAAsB,oCAAoC,uBAAuB,GAAG,iBAAiB,iBAAiB,8BAA8B,iBAAiB,uBAAuB,oBAAoB,8BAA8B,uBAAuB,sBAAsB,6BAA6B,mBAAmB,mBAAmB,4BAA4B,GAAG,eAAe,kBAAkB,KAAK,iBAAiB,oBAAoB,sBAAsB,GAAG,mBAAmB,iBAAiB,8BAA8B,iBAAiB,uBAAuB,oBAAoB,8BAA8B,uBAAuB,oBAAoB,2BAA2B,qBAAqB,iBAAiB,uBAAuB,GAAG,mBAAmB,iBAAiB,8BAA8B,iBAAiB,uBAAuB,oBAAoB,8BAA8B,uBAAuB,oBAAoB,2BAA2B,qBAAqB,iBAAiB,GAAG,cAAc,gCAAgC,gCAAgC,iBAAiB,uBAAuB,uBAAuB,gCAAgC,sBAAsB,yBAAyB,mBAAmB,oBAAoB,uBAAuB,uCAAuC,2BAA2B,sBAAsB,MAAM,eAAe,gCAAgC,gCAAgC,iBAAiB,uBAAuB,uBAAuB,gCAAgC,sBAAsB,yBAAyB,mBAAmB,mBAAmB,yBAAyB,oBAAoB,sCAAsC,KAAK,gBAAgB,gCAAgC,gCAAgC,iBAAiB,uBAAuB,oBAAoB,gBAAgB,oBAAoB,sBAAsB,yBAAyB,oBAAoB,uCAAuC,4BAA4B,MAAM,iBAAiB,gCAAgC,gCAAgC,iBAAiB,uBAAuB,oBAAoB,gBAAgB,oBAAoB,sBAAsB,yBAAyB,oBAAoB,uCAAuC,4BAA4B,MAAM,YAAY,gBAAgB,eAAe,8BAA8B,uBAAuB,uBAAuB,iBAAiB,qBAAqB,GAAG,YAAY,gBAAgB,eAAe,uBAAuB,uBAAuB,iBAAiB,qBAAqB,GAAG,iBAAiB,oBAAoB,GAAG,gBAAgB,qBAAqB,oBAAoB,KAAK,GAAG,gBAAgB,WAAW,iBAAiB,kBAAkB,KAAK,mBAAmB,+BAA+B,KAAK,GAAG,gBAAgB,uBAAuB,+BAA+B,KAAK,GAAG,iBAAiB,qBAAqB,qBAAqB,KAAK,GAAG,6BAA6B,aAAa,uBAAuB,KAAK,kBAAkB,yBAAyB,KAAK,mBAAmB,0BAA0B,KAAK,GAAG,6CAA6C,m7sB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACA30L;AACnB;AACK;AAC6B;AACd;AACH;AACd;AACiB;AACG;AACQ;AACT;AACA;AAC+B;AAGrD;AACH;AAmG/C,IAAa,mBAAmB,2BAAhC,MAAa,mBAAmB;IA8H9B,YAAoB,aAA4B,EAAU,QAA0B,EAC1E,MAAiB,EAAU,OAA4B,EACvD,WAAwB;QAFd,kBAAa,GAAb,aAAa,CAAe;QAAU,aAAQ,GAAR,QAAQ,CAAkB;QAC1E,WAAM,GAAN,MAAM,CAAW;QAAU,YAAO,GAAP,OAAO,CAAqB;QACvD,gBAAW,GAAX,WAAW,CAAa;QA/HlC,cAAS,GAAW,2DAAS,CAAC;QAC9B,qBAAgB,GAAY,KAAK;QACjC,eAAU,GAAG,KAAK,CAAC;QACnB,kBAAa,GAAG,KAAK,CAAC;QACtB,oBAAe,GAAG,KAAK,CAAC;QAExB,oBAAe,GAAG,KAAK,CAAC;QACxB,oBAAe,GAAG,KAAK,CAAC;QAExB,aAAQ,GAAG,KAAK,CAAC;QAGjB,oBAAe,GAAG,EAAE,CAAC;QACrB,mBAAc,GAAG,EAAE,CAAC;QACpB,gBAAW,GAAG,EAAE,CAAC;QACjB,aAAQ,GAAG,EAAE,CAAC;QACd,mBAAc,GAAG,EAAE,CAAC;QACpB,kBAAa,GAAY,KAAK,CAAC;QAO/B,iBAAY,GAAG,EAAE,CAAC;QAClB,gBAAW,GAAG,EAAE,CAAC;QAEjB,qBAAgB,GAAG,EAAE,CAAC;QACtB,gBAAW,GAAG,EAAE,CAAC;QACjB,qBAAgB,GAAG,EAAE,CAAC;QACtB,gBAAW,GAAG,EAEb,CAAC;QAEF,uBAAkB,GAAG,EAEpB,CAAC;QAEF,uBAAkB,GAAG,EAAE,CAAC;QAGxB,gBAAW,GAAG,EAAE,CAAC;QAsBjB,iBAAY,GAAG,EAAE,CAAC;QAClB,wBAAmB,GAAG,EAAE,CAAC;QACzB,aAAQ,GAAG,EAAE,CAAC;QACd,eAAU,GAAG,EAAE,CAAC;QAChB,cAAS,GAAG,KAAK,CAAC;QAElB,cAAS,GAAG,KAAK,CAAC;QAClB,cAAS,GAAG,KAAK,CAAC;QAClB,2BAAsB,GAAG,EAAE,CAAC;QAC5B,kBAAa,GAAG,EAAE,CAAC;QACnB,eAAU,GAAG,IAAI,IAAI,EAAE,CAAC;QAExB,kBAAa,GAAG,KAAK,CAAC;QACtB,qBAAgB,GAAG,EAAE,CAAC;QAGtB,YAAO,GAAG,IAAI,CAAC;QAGf,YAAO,GAAG,KAAK,CAAC;QAUhB,yBAAoB,GAAG,IAAI,CAAC;QAG5B,eAAU,GAAG,IAAI,CAAC;QAUlB,kBAAa,GAAG,KAAK,CAAC;QACtB,wBAAwB;QACxB,oBAAe,GAAG,EAAE,CAAC;QAQrB,UAAK,GAAG,GAAG,CAAC;QACZ,WAAM,GAAG,GAAG,CAAC;QACb,iBAAY,GAAG,SAAS,CAAC;QACzB,eAAU,GAAG,KAAK,CAAC;QAEnB,iBAAY,GAAG,EAAE,CAAC;QAIlB,uBAAkB,GAAG,oFAAkB,CAAC;QAKtC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE;YAC5B,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACtD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE;YACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SAC5C;aACI,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;YAC3C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;SAC7D;aACI;YACH,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;SACjD;QACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,WAAW;IAEX,CAAC;IAED,+CAA+C;IAC/C,sBAAsB;IACtB,wCAAwC;IACxC,0DAA0D;IAC1D,mGAAmG;IACnG,gCAAgC;IAChC,MAAM;IACN,IAAI;IAEJ,QAAQ;QACN,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,CAAC;QAC3F,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC1C;QAED,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;YAC5V,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;SACvB;aACI;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACtB;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7B,CAAC,EAAE,GAAG,CAAC,CAAC;QAER,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IAGD,QAAQ;QACN,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAEnE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,WAAW;QACT,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5E,CAAC;IACD,UAAU;QACR,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACtD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAChD,IAAI,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;YACrF,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;gBAClC,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;aAErD;QACH,CAAC,CAAC,CAAC;IAEL,CAAC;IACD,WAAW,CAAC,OAAO;QACjB,OAAO,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAClG,CAAC;IAED,OAAO;QACL,IAAI,EAAE,GAAG,QAAQ,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;QAE3D,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE;YAC9C,IAAI,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;SAGrB;IACH,CAAC;IACD,WAAW;QAET,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QAEvB,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YACvF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAC9C,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5B,IAAI,IAAI,CAAC,MAAM,EAAE;oBACf,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAC9D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;iBAC1E;gBACD,IAAI,CAAC,YAAY,EAAE,CAAC;aACrB;iBACI;gBACH,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;gBAC3B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;gBAC1B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;gBACzB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;gBAEtB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;gBACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;aAC3B;QAEH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,kBAAkB,CAAC,KAAK;QACtB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,KAAK,EAAE;gBAC9C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACvC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;oBACxD,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACvE,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;iBACnC;qBACI;oBACH,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;oBAC7B,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;iBACnC;aACF;SACF;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IACD,qBAAqB,CAAC,KAAK;QAEzB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAE1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAE7C,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,EAAE;aAE5C;SACF;IACH,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAE3D,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAEzB,IAAI,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;YACjE,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;gBAExB,OAAO;aACR;iBAEI;gBACH,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE;oBAC/B,OAAO;iBACR;qBACI;oBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;iBAC1D;aACF;QAEH,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,YAAY;QACV,IAAI,CAAC,IAAI,CAAC,MAAM;YACd,OAAO;QACT,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAE3B,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YACvF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAC9C,IAAI,oBAAoB,CAAC;YACzB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAEvB,IAAI,SAAS,CAAC;YACd,IAAI,QAAQ,CAAC;YACb,IAAI,aAAa,CAAC;YAClB,IAAI,mBAAmB,CAAC;YACxB,IAAI,mBAAmB,CAAC;YACxB,IAAI,oBAAoB,CAAC;YACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAChC,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE;gBACvB,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC/D,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;oBACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;iBAClC;aAGF;YACD,oBAAoB,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YACxD,IAAI,CAAC,aAAa,GAAG,oBAAoB,CAAC;YAE1C,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,SAAS;gBACjD,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC9D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;iBACxB;YAGH,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,SAAS;gBACjD,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;oBAEjE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,SAAS,GAAG,gBAAgB,CAAC;oBAC7B,QAAQ,GAAG,gBAAgB,CAAC;oBAC5B,aAAa,GAAG,cAAc,CAAC;oBAC/B,oBAAoB,GAAG,sBAAsB,CAAC;iBAE/C;qBACI;oBACH,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;oBACvB,SAAS,GAAG,YAAY,CAAC;oBACzB,QAAQ,GAAG,YAAY,CAAC;oBACxB,aAAa,GAAG,UAAU,CAAC;oBAE3B,oBAAoB,GAAG,kBAAkB,CAAC;iBAC3C;YACH,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;YACpC,IAAI,CAAC,kBAAkB,GAAG,aAAa,CAAC;YACxC,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;gBAElJ,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;gBAEvC,IAAI,QAAQ,GAAQ,OAAO,CAAC;gBAE5B,IAAI,CAAC,aAAa,CAAC,6BAA6B,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBACrJ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;oBAEhD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAExC,IAAI,OAAO,GAAG,CAAC,CAAC;wBAAC,IAAI,OAAO,GAAG,CAAC,CAAC;wBACjC,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC;wBAE7B,IAAI,YAAY,GAAG,CAAC,CAAC;wBACrB,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE;4BAGzG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BAGpC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gCACpB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC;6BAEzC;iCACI;gCAGH,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE;oCAC5C,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;oCAE5C,IAAI,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oCAE1C,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;oCAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wCAE3C,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;wCAElG,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;4CACtB,IAAI,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4CAE5D,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gDACjC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;;gDAElD,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;4CAG1B,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gDACjC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;;gDAElD,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;4CAG1B,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gDACjC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;;gDAElD,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;4CAG1B,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gDACjC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;;gDAElD,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;4CAE1B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;yCACtC;6CACI;yCAEJ;qCAIF;oCAED,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;wCACpC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC;qCACzC;iCACF;qCACI;oCAEH,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,IAAI,GAAG,EAAE;wCAC/C,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;wCACrG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;wCACzB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC;qCAEzC;yCACI;wCACH,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;wCACzE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;wCACzB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC;qCACzC;iCAGF;6BACF;4BAGD,IAAI,CAAC,aAAa,CAAC,8BAA8B,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;gCAElJ,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;gCAEzC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;gCAM9B,4FAA4F;gCAC5F,uBAAuB;gCACvB,8BAA8B;gCAC9B,IAAI;gCAEJ,QAAQ;gCACR,0BAA0B;gCAC1B,IAAI;gCAIJ,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;oCACpB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC;iCAE3C;qCACI;oCAEH,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE;wCAG7C,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;wCAEzC,IAAI,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wCAEvC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;wCAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4CAG5C,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;4CACrG,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gDACtB,IAAI,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gDAEzD,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oDACjC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;;oDAE/C,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gDAG1B,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oDACjC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;;oDAE/C,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gDAG1B,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oDACjC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;;oDAE/C,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gDAG1B,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oDACjC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;;oDAE/C,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gDAE1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;6CACvC;yCAEF;wCACD,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;4CACrC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC;yCAC3C;qCAEF;yCACI;wCAEH,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,IAAI,GAAG,EAAE;4CAC/C,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;4CACtG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;4CAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC;yCAE3C;6CACI;4CACH,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;4CAC1E,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;4CAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC;yCAC3C;qCAEF;iCACF;gCAED,MAAM,YAAY,GAAG,EAAE,CAAC;gCACxB,IAAI,UAAU,GAAG,EAAE,CAAC;gCAAC,MAAM,UAAU,GAAG,EAAE,CAAC;gCAAC,IAAI,WAAW,GAAG,EAAE,CAAC;gCACjE,IAAI,UAAU,GAAG,EAAE,CAAC;gCAAC,IAAI,WAAW,GAAG,EAAE,CAAC;gCAC1C,IAAI,YAAY,GAAG,EAAE,CAAC;gCAAC,IAAI,aAAa,GAAG,EAAE,CAAC;gCAC9C,IAAI,mBAAmB,GAAG,EAAE,CAAC;gCAC7B,IAAI,YAAY,GAAG,EAAE,CAAC;gCACtB,IAAI,aAAa,GAAG,EAAE,CAAC;gCAEvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oCACpD,IAAI,eAAe,GAAG,EAAE,CAAC;oCAAC,IAAI,MAAM,GAAG,CAAC,CAAC;oCACzC,IAAI,WAAW,GAAG,EAAE,CAAC;oCAAC,IAAI,MAAM,GAAG,CAAC,CAAC;oCAGrC,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE;wCAG7I,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,IAAI,IAAI,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC;wCAC9G,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;4CAGjC,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE;gDAChI,IAAI,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;oDAClC,MAAM,EAAE,CAAC;oDACT,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;oDAC3B,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oDACjJ,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;iDAC7D;qDAAM;oDAEL,MAAM,EAAE,CAAC;oDACT,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;oDAC3B,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,oBAAoB,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;wDAC5L,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wDACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;wDACnB,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;oDACjE,CAAC,CAAC,CAAC;iDACJ;6CACF;iDACI;gDACH,IAAI,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;oDAClC,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oDAEjJ,mBAAmB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;iDAC5E;6CACF;wCACH,CAAC,CAAC,CAAC;wCAGH,IAAI,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC;wCAExH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4CAE1C,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE;gDAEzF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oDAChD,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,EAAE;wDAE1G,OAAO,EAAE,CAAC;qDACX;yDAAM,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,EAAE;wDAEjH,OAAO,EAAE,CAAC;qDACX;iDACF;6CAEF;yCACF;wCAED,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,OAAO,CAAC;wCAChD,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,OAAO,CAAC;wCAE/C,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;4CACtC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,MAAM,CAAC;yCACnF;6CACI;4CAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,MAAM,CAAC;yCAAE;wCACrD,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE;4CACrC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,MAAM,CAAC;yCACjF;6CACI;4CAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,MAAM,CAAC;yCAAE;wCAEpD,IAAI,MAAM,KAAK,CAAC,EAAE;4CAChB,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;yCAC5D;wCAGD,IAAI,MAAM,KAAK,CAAC,EAAE;4CAChB,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;yCAC5D;wCAED,IAAI,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;wCAEhD,WAAW,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC;wCACnC,WAAW,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;wCAChE,WAAW,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC;wCAClC,WAAW,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;wCAE9D,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;wCAC3C,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;4CAC9B,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;wCAC/B,CAAC,CAAC,CAAC;wCAEH,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC;wCAEvE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;qCAG3C;oCAAC,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE;wCAE/I,YAAY,EAAE,CAAC;qCAChB;oCACD,WAAW,CAAC,aAAa,CAAC,GAAG,YAAY,CAAC;iCAE3C;gCAED,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oCACjC,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;wCAC5F,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE;yCACnE;6CAAM;4CACL,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;gDAC1D,IAAI,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;oDAClC,OAAO,EAAE,CAAC;oDACV,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,IAAI,IAAI,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC;oDAC9G,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC;oDACjH,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,OAAO,CAAC;oDAClD,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;oDAC/C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;iDAE3B;qDAAM;oDACL,OAAO,EAAE,CAAC;oDACV,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,oBAAoB,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;wDAC3J,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wDAEnC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,KAAK,CAAC;wDAC/C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;wDAC1B,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;oDAEhD,CAAC,CAAC,CAAC;iDACJ;6CACF;yCACF;qCACF;gCACH,CAAC,CAAC,CAAC;gCAEH,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;oCAC3C,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;oCAC7B,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;oCAC7B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;wCAG7C,IAAI,cAAc,CAAC,SAAS,IAAI,eAAe,CAAC,SAAS,IAAI,eAAe,CAAC,QAAQ,IAAI,CAAC,EAAE;4CAC1F,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;yCAC/C;oCAEH,CAAC,CAAC,CAAC;oCAGH,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;wCACzC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;oCAC/B,CAAC,CAAC,CAAC;oCACH,iEAAiE;oCACjE,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;wCAC9D,OAAO;qCACR;yCACI;wCACH,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;4CACzB,WAAW,EAAE,cAAc,CAAC,WAAW;4CACvC,cAAc,EAAE,IAAI,CAAC,kBAAkB;4CACvC,SAAS,EAAE,cAAc;yCAC1B,CAAC,CAAC;wCAEH,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;qCACnD;gCACH,CAAC,CAAC;gCAEF,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG;qCAClE;oCAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;iCAAE;gCAChE,WAAW,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC;gCAC3C,WAAW,CAAC,eAAe,CAAC,GAAG,aAAa,CAAC;gCAC7C,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,OAAO,CAAC;gCACnC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,OAAO,CAAC;gCAClC,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,OAAO,CAAC;gCACrC,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,OAAO,CAAC;gCACpC,WAAW,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC;gCACtC,WAAW,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC;gCACrC,WAAW,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC;gCACxC,WAAW,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC;gCACvC,WAAW,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC;gCACtC,WAAW,CAAC,YAAY,CAAC,GAAG,WAAW,CAAC;gCACxC,WAAW,CAAC,gBAAgB,CAAC,GAAG,mBAAmB,CAAC;gCACpD,WAAW,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gCAC3C,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;oCACvC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC;iCAClE;gCAGD,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gCAC/C,IAAI,CAAC,mBAAmB,EAAE,CAAC;4BAG7B,CAAC,CAAC,CAAC;yBACJ;qBACF;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IACD,KAAK,CAAC,GAAG,EAAE,IAAI;QACb,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,EAAE;YACzC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;SACrC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM;QACJ,IAAI,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAC9C,8BAA8B;QAC9B,0CAA0C;QAC1C,IAAI,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC;QAClE,IAAI,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;QAC/C,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC;QACxC,MAAM,CAAC,KAAK,EAAE,CAAC;QAEf,4BAA4B;QAC5B,8CAA8C;IAChD,CAAC;IAED,KAAK;QACH,4CAA4C;QAC5C,kDAAkD;QAClD,+BAA+B;QAC/B,wCAAwC;QACxC,IAAI,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC;QAClE,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC;QACxC,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,4BAA4B;QAC5B,8CAA8C;IAChD,CAAC;IAGD,UAAU,CAAC,OAAO;QAChB,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;SACR;QACD,MAAM,IAAI,GAAG;YACX,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,WAAW;SAC5B,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;YAC5D,IAAI,EAAE,sCAAsC,GAAG,MAAM,GAAG,IAAI;SAC7D,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBAC3D,IAAI,IAAI,CAAC,EAAE,EAAE;wBACX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;wBACtB,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC;qBAC/C;oBACD,qBAAqB;oBACrB,yBAAyB;oBACzB,sBAAsB;oBACtB,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS;QACP,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,YAAY,EAAE;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAExB,CAAC;IACD,OAAO;QACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,UAAU;QACR,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAEhE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;YAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,IAAI,IAAI,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC;QAEhH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,WAAW;QACT,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACjE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;YAC5B,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAErC,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE;gBACtB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;aACzG;iBAAM;gBACL,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;aAC9E;YAID,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;gBACjC,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC3E,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;oBACxB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,GAAG,EAAE;wBAC/B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;qBACnC;iBAEF;aAGF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,aAAa;QACX,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACrD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACtD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IACD,SAAS;QACP,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACjD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,WAAW;QACT,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACnD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAAC,EAAE;QAC9B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAExB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC7D,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBAEpB,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;oBACtC,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE;wBACnF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;qBACpG;yBACI,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE;wBAClF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;qBACjJ;yBACI;wBACH,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;qBACzB;oBACD,6EAA6E;oBAC7E,sGAAsG;oBAEtG,0BAA0B;oBAC1B,2CAA2C;oBAC3C,IAAI;oBACJ,SAAS;oBACT,0EAA0E;oBAC1E,0BAA0B;oBAC1B,IAAI;iBACL;qBACI;oBACH,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;iBACzB;aAEF;iBACI,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;gBAE9C,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBACtC,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACpC,IAAI,QAAQ,GAAG,QAAQ,CAAC;gBAExB,IAAI,CAAC,QAAQ,EAAE;oBACb,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;iBACzB;qBACI;oBAEH,IAAI,QAAQ,GAAG,EAAE,CAAC;oBAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACxC,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;wBACrF,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;4BACnB,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;yBACzB;qBACF;oBACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;iBAC1B;aACF;iBACI;gBACH,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE;oBACnF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;iBACpG;qBACI,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE;oBAClF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;iBACjJ;qBACI;oBACH,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;iBACzB;gBACD,6EAA6E;gBAC7E,sGAAsG;gBAEtG,0BAA0B;gBAC1B,IAAI;gBACJ,SAAS;gBACT,0EAA0E;gBAC1E,0BAA0B;gBAC1B,2CAA2C;gBAC3C,IAAI;aACL;YAED,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;gBAClC,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;oBAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,iBAAiB,EAAE;4BACnD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;yBACvC;qBACF;iBACF;aACF;YACD,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;IAEL,CAAC;IAED,oBAAoB;IACpB,YAAY,CAAC,KAA4B,EAAE,WAAgB;QACzD,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAE7B,IAAI,KAAK,CAAC,iBAAiB,KAAK,KAAK,CAAC,SAAS,EAAE;YAC/C,kFAAkF;YAElF,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;YAC/C,IAAI,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;YAEpG,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,IAAI,mBAAmB,CAAC,MAAM,IAAI,CAAC,EAAE;gBACrE,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;aAC1G;SACF;aACI;YAEH,iFAAiB,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAC5C,KAAK,CAAC,SAAS,CAAC,IAAI,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,YAAY,CAAC,CAAC;YAGtB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;YAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAEvD,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,WAAW,CAAC,SAAS,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;oBACpK,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;iBAC5D;aAGF;YAED,IAAI,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,WAAW,CAAC,SAAS,CAAC,CAAC;YAE7I,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;SACnG;IAGH,CAAC;IACD,mBAAmB;IACnB,WAAW,CAAC,KAA4B;QAEtC,IAAI,KAAK,CAAC,iBAAiB,KAAK,KAAK,CAAC,SAAS,EAAE;YAC/C,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;YAC9C,IAAI,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;YAE7G,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,kBAAkB,CAAC,MAAM,IAAI,CAAC,EAAE;gBACnE,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;aAC5E;SACF;QACD,kFAAkF;IACpF,CAAC;IACD,WAAW,CAAC,WAAgB,EAAE,YAAY;QAExC,MAAM,IAAI,GAAG;YACX,SAAS,EAAE,WAAW,CAAC,SAAS;YAEhC,WAAW,EAAE,WAAW,CAAC,WAAW;YACpC,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,kBAAkB,EAAE,WAAW,CAAC,kBAAkB;YAElD,YAAY,EAAE,GAAG;YACjB,UAAU,EAAE,WAAW,CAAC,UAAU;YAElC,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,OAAO,EAAE,YAAY;YACrB,YAAY,EAAE,WAAW,CAAC,OAAO;SAClC,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC1D,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;aAExC;iBAAM;aAEN;YACD,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IAGL,CAAC;IAED,YAAY,CAAC,UAAe,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM;QAC3D,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QAGvB,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,UAAU,EAAE;YACnC,IAAI,SAAS,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE;gBACxC,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;gBAEvC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;oBAClC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBAC7B;;oBACI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAChC;YAED,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE;gBAChC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC/D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;aAC9C;SACF;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAE1C,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,MAAM,EAAE;gBAC/B,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;aAE3C;YACD,MAAM,IAAI,GAAG;gBACX,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU;gBACpC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ;gBAChC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY;gBACxC,SAAS,EAAE,SAAS;gBACpB,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,cAAc;gBAC5C,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY;gBACxC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU;gBACpC,SAAS,EAAE,IAAI,CAAC,WAAW;gBAC3B,SAAS,EAAE,IAAI,CAAC,WAAW;gBAC3B,OAAO,EAAE,IAAI,CAAC,MAAM;gBACpB,OAAO,EAAE,YAAY;gBACrB,IAAI,EAAE,MAAM;gBACZ,YAAY,EAAE,IAAI,CAAC,YAAY;aAChC,CAAC;YAEF,UAAU;YACV,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAC3D,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;oBACvC,IAAI,CAAC,YAAY,EAAE,CAAC;iBAErB;qBAAM;iBAEN;gBACD,IAAI,CAAC,aAAa,EAAE,CAAC;YAEvB,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAGD,aAAa;QACX,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACjE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAE9B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,UAAU;QACR,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAChE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACjD,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;gBAClC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;aAErB;QAEH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,WAAW;QAET,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YAClE,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;YAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW;QAET,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAChE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAElD,CAAC,CAAC,CAAC;IAEL,CAAC;IACD,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU;QAE9D,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;QAClC,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;QAElC,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;QAED,IAAI,YAAY,GAAG,EAAE,CAAC;QAEtB,IAAI,UAAU,KAAK,CAAC,EAAE;YACpB,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;YACvC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;SAEpC;QAED,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAC3K,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAEnC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;gBAC5D,UAAU,EAAE,yBAAyB;gBACrC,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,SAAS;gBAC9C,KAAK,EAAE,OAAO;aACf,CAAC,CAAC;YAEH,IAAI,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,WAAW,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;YAEtG,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACtB;iBACI;gBACH,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;aAEvB;YAMD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAEvD,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YACnE,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAEnE,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;YACzE,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YACjE,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YACzE,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;YACzE,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,KAAK,CAAC;YAC7C,SAAS,CAAC,iBAAiB,CAAC,OAAO,GAAG,SAAS,CAAC,WAAW,CAAC;YAC5D,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,YAAY,CAAC;YACpD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC3D,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAE3D,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YAEjE,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;YAC5D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YACjE,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YACnE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,6DAA6D;YAC7D,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;YAC3E,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;YAC3E,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACzD,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,UAAU,CAAC;YACpD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,SAAS,CAAC;YAClD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC3D,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACrE,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;gBACzC,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,CAAC,CAAC;QAGJ,CAAC,CAAC,CAAC;IAGL,CAAC;IAED,WAAW,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS;QACrD,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAC/J,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAErB,CAAC,CAAC,CAAC;IAGL,CAAC;IAGD,kBAAkB;QAChB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC7E,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC;QAErC,CAAC,CAAC,CAAC;IAGL,CAAC;IACD,mBAAmB,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU;QAErF,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAK7B,cAAc;QACd,uHAAuH;QACvH,yBAAyB;QACzB,gCAAgC;QAChC,MAAM;QAEN,UAAU;QACV,4BAA4B;QAC5B,MAAM;QAEN,KAAK;QACL,QAAQ;QAER,IAAI;QAIJ,IAAI,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;QACzE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;SAC5B;aAEI;YACH,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;SACxB;QAMD,IAAI,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,WAAW,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;QAEtG,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACtB;aACI;YACH,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;SAEvB;QAGD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,OAAO;SACR;QAGD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAE1B,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;QAElC,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;QAClC,wBAAwB;QACxB,sBAAsB;QACtB,MAAM;QACN,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;QAG/B,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,aAAa,EAAE;YAC9C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC5C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC5C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;SAC7C;aACI,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,aAAa,EAAE;YACnD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC5C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;SAE7C;aACI,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,aAAa,EAAE;YACnD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC5C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;SAC7C;aACI,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,aAAa,EAAE;YACpD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC;SACtC;QAGD,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE;YAC3E,OAAO;SACR;QAID,2EAA2E;QAC3E,QAAQ;QACR,UAAU;QACV,QAAQ;QAER,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAExB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;YAC5D,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,IAAI;SAE9B,CAAC,CAAC;QACH,SAAS,CAAC,iBAAiB,CAAC,KAAK,GAAG,UAAU,CAAC;QAC/C,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,UAAU,CAAC;QACpD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,SAAS,CAAC;QAClD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,SAAS,CAAC;QAClD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,KAAK,CAAC;QAC9C,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrD,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QACnE,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QACnE,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QACnE,SAAS,CAAC,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACzD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAE7D,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAEvD,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;YAE9C,SAAS,CAAC,iBAAiB,CAAC,KAAK,GAAG,UAAU,CAAC;YAC/C,IAAI,WAAW,KAAK,OAAO,EAAE;gBAE3B,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;aACtC;iBAAM,IAAI,WAAW,KAAK,QAAQ,EAAE;gBACnC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;aACvC;iBAAM,IAAI,WAAW,KAAK,aAAa,EAAE;gBAExC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;aAE/B;iBACI,IAAI,WAAW,KAAK,UAAU,EAAE;gBACnC,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,UAAU,CAAC;gBACpD,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;aACzC;iBACI,IAAI,WAAW,KAAK,aAAa,EAAE;gBACtC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;aACzC;iBAEI,IAAI,WAAW,KAAK,QAAQ,EAAE;gBAEjC,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;aAGnD;iBACI,IAAI,WAAW,KAAK,cAAc,IAAI,UAAU,IAAI,CAAC,EAAE;gBAE1D,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oFAAuB,EAAE;oBAC7D,UAAU,EAAE,yBAAyB;oBACrC,IAAI,EAAE,WAAW,GAAG,KAAK,GAAG,IAAI;iBACjC,CAAC,CAAC;gBAEH,IAAI,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAChD,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,CACnG,CAAC;gBACF,YAAY,CAAC,iBAAiB,CAAC,SAAS,GAAG,SAAS,CAAC;gBACrD,YAAY,CAAC,iBAAiB,CAAC,UAAU,GAAG,UAAU,CAAC;gBACvD,YAAY,CAAC,iBAAiB,CAAC,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;gBAC7E,YAAY,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAC7E,YAAY,CAAC,iBAAiB,CAAC,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;gBAC7E,YAAY,CAAC,iBAAiB,CAAC,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;gBACzE,YAAY,CAAC,iBAAiB,CAAC,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;gBACjF,YAAY,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;gBAChE,YAAY,CAAC,iBAAiB,CAAC,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBACnE,YAAY,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;gBAC/D,YAAY,CAAC,iBAAiB,CAAC,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBAEjE,YAAY,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACxD,YAAY,CAAC,iBAAiB,CAAC,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;gBACjF,YAAY,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBACxE,YAAY,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAC7E,YAAY,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;gBAChE,YAAY,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC1D,YAAY,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oBAC5C,sBAAsB;oBACtB,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;wBACjE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;wBAEjD,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;wBACvB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;wBACtB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;wBACrB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;wBACtB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;wBACzB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;wBAE3B,IAAI,CAAC,aAAa,EAAE,CAAC;wBACrB,oBAAoB;wBACpB,2CAA2C;wBAC3C,IAAI,CAAC,YAAY,EAAE,CAAC;wBAEpB,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAE7B,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;aACJ;iBAAM,IAAI,WAAW,KAAK,cAAc,IAAI,SAAS,IAAI,CAAC,EAAE;gBAE3D,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBAChE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;oBAChD,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iFAAsB,EAAE;wBAChE,UAAU,EAAE,yBAAyB;wBACrC,IAAI,EAAE,WAAW,GAAG,KAAK,GAAG,IAAI;qBACjC,CAAC,CAAC;oBAEH,IAAI,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC9C,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,SAAS,CAAC,QAAQ,EAAE,CAC/C,CAAC;oBACF,gBAAgB,CAAC,iBAAiB,CAAC,SAAS,GAAG,SAAS,CAAC;oBACzD,gBAAgB,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;oBACxD,gBAAgB,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;oBAC5D,gBAAgB,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;oBAC9D,gBAAgB,CAAC,iBAAiB,CAAC,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;oBAC9E,gBAAgB,CAAC,iBAAiB,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oBACpE,gBAAgB,CAAC,iBAAiB,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oBAC5E,gBAAgB,CAAC,iBAAiB,CAAC,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;oBAChF,gBAAgB,CAAC,iBAAiB,CAAC,kBAAkB,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;oBAC5F,gBAAgB,CAAC,iBAAiB,CAAC,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;oBACtE,gBAAgB,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;oBAElE,gBAAgB,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;wBAC7C,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBACvB,IAAI,CAAC,YAAY,EAAE,CAAC;oBACtB,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;aAEJ;iBAEI,IAAI,WAAW,KAAK,MAAM,IAAI,UAAU,IAAI,CAAC,EAAE;gBAElD,IAAI,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;gBAC7G,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oFAAuB,EAAE;wBAC1D,UAAU,EAAE,yBAAyB;wBACrC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;qBAC5B,CAAC,CAAC;oBAEH,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,EAAE;wBACtC,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,CAAC,CAAC;qBAClD;yBACI;wBACH,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;qBAC7E;oBAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;wBACnC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;oBAC/B,CAAC,CAAC,CAAC;oBAGH,IAAI,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;oBAE3F,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,eAAe,CAAC;oBAE1D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oBAEtE,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;oBAC1E,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;oBAC1E,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oBACtE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAE7D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAEvE,SAAS,CAAC,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC;oBAE1D,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;oBAC9E,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;oBAC1E,SAAS,CAAC,iBAAiB,CAAC,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;oBAChE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAC7D,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;oBAC5D,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oBAC9D,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;oBACjE,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;oBACrD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAE7D,SAAS,CAAC,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;oBAExD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACpE,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACpE,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;oBAErE,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;oBAC3D,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;wBACzC,IAAI,MAAM,EAAE;4BACV,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;4BACxC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;4BACvB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;4BACtB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;4BACrB,sBAAsB;4BAEtB,IAAI,CAAC,aAAa,EAAE,CAAC;4BACrB,oBAAoB;4BACpB,IAAI,CAAC,YAAY,EAAE;yBACpB;oBAGH,CAAC,CAAC,CAAC;iBACJ;aAEF;iBAEI,IAAI,WAAW,KAAK,MAAM,IAAI,SAAS,IAAI,CAAC,EAAE;gBAGjD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iFAAsB,EAAE;oBACzD,UAAU,EAAE,yBAAyB;oBACrC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;iBAC5B,CAAC,CAAC;gBAEH,IAAI,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;gBAC7E,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC5B,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oBACrE,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oBAC7D,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;oBACrD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACnE,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;oBAC5D,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC;oBAEzD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACnE,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;oBACvE,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;oBACrF,SAAS,CAAC,iBAAiB,CAAC,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;oBAC/D,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;wBAEzC,IAAI,MAAM;4BACR,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;wBAE1C,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;wBACvB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;wBACtB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;wBACrB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;wBACtB,IAAI,CAAC,OAAO,EAAE,CAAC;oBAEjB,CAAC,CAAC,CAAC;iBACJ;aAEF;iBACI,IAAI,WAAW,KAAK,QAAQ,IAAI,UAAU,IAAI,CAAC,EAAE;gBACpD,IAAI,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;gBAC7G,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;oBAE7B,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oBAC/C,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC7C,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oBACvC,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;oBACzC,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC7C,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;oBAE3C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oFAAuB,EAAE;wBAC1D,UAAU,EAAE,yBAAyB;wBACrC,IAAI,EAAE,4CAA4C,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,MAAM,GAAG,IAAI;qBAEpG,CAAC,CAAC;oBAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;wBACzC,IAAI,MAAM,EAAE;4BAGV,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gCAE5I,IAAI,IAAI,CAAC,EAAE,EAAE;oCACX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oCACtB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;iCACzC;gCACD,IAAI,CAAC,aAAa,EAAE,CAAC;gCACrB,IAAI,CAAC,YAAY,EAAE,CAAC;4BACtB,CAAC,CAAC,CAAC;yBAEJ;oBACH,CAAC,CAAC,CAAC;iBAEJ;aACF;iBAEI,IAAI,WAAW,KAAK,QAAQ,IAAI,SAAS,IAAI,CAAC,EAAE;gBACnD,IAAI,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;gBAC7E,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;oBAE5B,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC5C,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC5C,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oBACtC,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;oBAExC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iFAAsB,EAAE;wBACzD,UAAU,EAAE,yBAAyB;wBACrC,IAAI,EAAE,2CAA2C,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,MAAM,GAAG,IAAI;qBACjG,CAAC,CAAC;oBAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;wBACzC,IAAI,MAAM,EAAE;4BAGV,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gCAC3G,IAAI,IAAI,CAAC,EAAE,EAAE;oCACX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oCACtB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;oCAExC,IAAI,CAAC,UAAU,EAAE,CAAC;oCAClB,UAAU,CAAC,GAAG,EAAE;wCACd,IAAI,CAAC,YAAY,EAAE,CAAC;oCACtB,CAAC,EAAE,GAAG,CAAC,CAAC;iCACT;4BACH,CAAC,CAAC,CAAC;yBAEJ;oBACH,CAAC,CAAC,CAAC;iBACJ;aACF;QACH,CAAC,CAAC,CAAC;IAEL,CAAC;IAED,QAAQ,CAAC,KAAK;QACZ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAEtC,IAAI,IAAI,CAAC,OAAO,KAAK,GAAG,EAAE;YACxB,IAAI,CAAC,QAAQ,GAAG,mBAAmB,CAAC;SACrC;aAAM,IAAI,IAAI,CAAC,OAAO,KAAK,GAAG,EAAE;YAC/B,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC;SAChC;aAAM,IAAI,IAAI,CAAC,OAAO,KAAK,GAAG,EAAE;YAC/B,IAAI,CAAC,QAAQ,GAAG,2BAA2B,CAAC;SAC7C;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;SACxB;IACH,CAAC;IACD,qBAAqB,CAAC,SAAS,EAAE,UAAU;QAEzC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,oBAAoB,CAAC;QACzB,oBAAoB,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACxD,IAAI,CAAC,aAAa,CAAC,8BAA8B,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YAEjK,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;YAC9B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC;YAE1C,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,IAAI,SAAS,GAAG,EAAE,CAAC;YACnB,IAAI,aAAa,GAAG,EAAE,CAAC;YACvB,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACpD,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE;wBAC7F,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;qBACzC;iBACF;aACF;iBACI;gBACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACpD,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE;wBAC/I,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;qBACzC;iBACF;aACF;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAEjD,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,EAAE;oBAChD,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;iBAE/C;aACF;YACD,IAAI,OAAO,CAAC;YAGZ,IAAI,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;YAC/D,aAAa,GAAG,EAAE,CAAC;YACnB,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;gBAC7B,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,UAAU,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC/I,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;oBACtB,aAAa,GAAG,OAAO,CAAC;oBACxB,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,GAAG,aAAa,CAAC;iBACtD;gBACD,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC/B,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;gBAC/B,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC;gBAG1C,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBACvB,IAAI,CAAC,aAAa,CAAC,6BAA6B,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;wBAC3J,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;wBAChD,IAAI,OAAO,GAAG,CAAC,CAAC;wBAChB,IAAI,OAAO,GAAG,CAAC,CAAC;wBAChB,IAAI,WAAW,GAAG,EAAE,CAAC;wBACrB,IAAI,UAAU,GAAG,EAAE,CAAC;wBAAC,MAAM,UAAU,GAAG,EAAE,CAAC;wBAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,IAAI,IAAI,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC;wBAC9G,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;4BAEjC,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC,KAAK,MAAM,CAAC,YAAY,CAAC,EAAE;gCAExF,IAAI,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;oCAClC,OAAO,EAAE,CAAC;oCACV,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;oCAC3B,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;oCAC7G,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;iCAE5C;qCAAM;oCACL,OAAO,EAAE,CAAC;oCACV,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;oCAC3B,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,oBAAoB,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;wCACxJ,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wCACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;wCACnB,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;oCAChD,CAAC,CAAC,CAAC;iCACJ;6BACF;wBACH,CAAC,CAAC,CAAC;wBACH,IAAI,OAAO,KAAK,CAAC,EAAE;4BACjB,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,OAAO,CAAC;yBAC5C;wBACD,IAAI,OAAO,KAAK,CAAC,EAAE;4BACjB,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,OAAO,CAAC;yBAC5C;wBACD,WAAW,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC;wBACtC,WAAW,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;wBACrC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,WAAW,CAAC;oBAClD,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YAEL,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC;YACvD,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,MAAM,YAAY,GAAG,EAAE,CAAC;YACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACzC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE;oBAC/B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;iBACzB;aACF;YACD,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3B,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;YAC/B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;YACpD,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC;YACxD,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,GAAG,WAAW,CAAC;YAC/D,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,GAAG,UAAU,CAAC;YAE9D,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;gBAC5D,UAAU,EAAE,CAAC,4BAA4B,CAAC;gBAC1C,IAAI,EAAE,QAAQ,GAAG,KAAK;gBACtB,QAAQ,EAAE,MAAM;aACjB,CAAC,CAAC;YACH,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvD,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YACjE,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvD,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YACnE,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YACnE,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YACnE,SAAS,CAAC,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YAC/D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACzD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YACnD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,SAAS,CAAC;YAClD,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,UAAU,CAAC;YACpD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,UAAU,CAAC;YACrD,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;YAChD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;YAC5D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YACjE,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YACnE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACzD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;YAC3E,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;YAC3E,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,SAAS,CAAC;YAClD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvD,SAAS,CAAC,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YAC/D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC;YACrE,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC3D,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC3D,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrD,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACzD,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACrE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;YACzE,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;YAChD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;YAC5D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YACjE,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YACnE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACzD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;YAC3E,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;YAC3E,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,SAAS,CAAC;YAClD,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,UAAU,CAAC;YACpD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC5C,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC3D,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;YACzE,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YACjE,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACrE,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvD,SAAS,CAAC,iBAAiB,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;YACxE,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;YACzE,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;YACzE,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBACtC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IAEL,CAAC;IACD,aAAa,CAAC,SAAS;QACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpD,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE;oBAC7F,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;iBACzC;aACF;SACF;aACI;YACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpD,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE;oBAC/I,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;iBACzC;aACF;SACF;QACD,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAEjD,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,EAAE;gBAChD,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC5C,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;aAC5C;SACF;QACD,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAEzC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE;gBAC/B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;aACzB;SACF;QACD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;QACrD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;YAC5D,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,QAAQ,GAAG,KAAK;YACtB,KAAK,EAAE,OAAO;SACf,CAAC,CAAC;QACH,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjE,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACnD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,OAAO,CAAC;QAClD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrD,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACzD,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACrE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACzE,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YACtC,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,QAAQ,CAAC,SAAS,EAAE,UAAU;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iFAAsB,EAAE;YACzD,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,UAAU;SACjC,CAAC,CAAC;QACH,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;QAChD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;QAC5D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjE,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QACnE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACzD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC3E,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC3E,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,SAAS,CAAC;QAClD,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,UAAU,CAAC;QACpD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC5C,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,YAAY,EAAE;QACrB,CAAC,CAAC,CAAC;IAEL,CAAC;IACD,UAAU,CAAC,OAAO,EAAE,IAAI;QACtB,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;YACpB,OAAO;SACR;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iFAAsB,EAAE;YACzD,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS;SAChC,CAAC,CAAC;QACH,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QACpD,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACjD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;QAC5D,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,eAAe;QACb,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACvD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,SAAS,EAAE,UAAU;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oFAAuB,EAAE;YAC1D,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS;SAChC,CAAC,CAAC;QAEH,IAAI,UAAU,KAAK,CAAC,EAAE;YACpB,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,CAAC,CAAC;SAClD;aACI;YACH,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,UAAU,CAAC;SAC3D;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;QAC5D,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACjD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjE,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,SAAS,CAAC;QAClD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAErE,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,YAAY,EAAE;QAErB,CAAC,CAAC,CAAC;IAEL,CAAC;IAED,SAAS,CAAC,SAAS,EAAE,UAAU;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8EAAqB,EAAE;YACxD,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,UAAU;SACjC,CAAC,CAAC;QAEH,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;QAC5D,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACjD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjE,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QACnE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACzD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC3E,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC3E,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,SAAS,CAAC;QAClD,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,UAAU,CAAC;QACpD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAE1B,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;IAEL,CAAC;IACD,UAAU,CAAC,GAAW;QAEpB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;YAC5D,IAAI,EAAE,GAAG,GAAG,KAAK,GAAG,KAAK;SAC1B,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAEzC,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;gBAEhC,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,IAAI,GAAG,KAAK,KAAK,EAAE;oBACjB,SAAS,GAAG,oBAAoB,CAAC;iBAClC;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACtE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;YAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAE9C,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,EAAE;oBAC1C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;oBACpD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;iBAChD;aACF;QACH,CAAC,CAAC,CAAC;IAEL,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACtE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;YAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAE9C,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,EAAE;oBAC1C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;oBAC1D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oBACrD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;oBACvD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;iBAErD;aAEF;QACH,CAAC,CAAC,CAAC;IAEL,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAEnD,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE;oBACzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACvF,IAAI,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;wBAE/E,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;wBAEjC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,IAAI,SAAS,EAAE;4BAEnK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;yBAEjE;6BAAM;4BAEL,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,IAAI,CAAC,EAAE;gCACxC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;6BAEjC;iCAAM;gCAEL,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;6BAElC;yBACF;qBAEF;iBACF;aAIF;SACF;IACH,CAAC;CAEF;;YAniEoC,6DAAa;YAAoB,iEAAgB;YAClE,kEAAS;YAAmB,kEAAmB;YAC1C,kEAAW;;AAhIvB,mBAAmB;IAjG/B,+DAAS,CAAC;QACT,QAAQ,EAAE,iBAAiB;QAC3B,mKAA2C;QAE3C,SAAS,EAAE,CAAC,6DAAa,EAAE,qBAAmB,CAAC;QAC/C,UAAU,EAAE;YACV,oEAAO,CAAC,eAAe,EAAE;gBACvB,kEAAK,CAAC,SAAS,EAAE,kEAAK,CAAC;oBACrB,KAAK,EAAE,MAAM;oBACb,MAAM,EAAE,MAAM;iBACf,CAAC,CAAC;gBACH,kEAAK,CAAC,OAAO,EAAE,kEAAK,CAAC;oBACnB,gBAAgB;oBAChB,MAAM,EAAE,MAAM;iBACf,CAAC,CAAC;gBACH,uEAAU,CAAC,gBAAgB,EAAE,oEAAO,CAAC,QAAQ,CAAC,CAAC;gBAC/C,uEAAU,CAAC,gBAAgB,EAAE,oEAAO,CAAC,QAAQ,CAAC,CAAC;aAChD,CAAC;YAEF,oEAAO,CAAC,gBAAgB,EAAE;gBACxB,kEAAK,CAAC,SAAS,EAAE,kEAAK,CAAC;oBACrB,QAAQ,EAAE,MAAM;iBACjB,CAAC,CAAC;gBACH,kEAAK,CAAC,OAAO,EAAE,kEAAK,CAAC;oBACnB,QAAQ,EAAE,KAAK;iBAChB,CAAC,CAAC;gBACH,uEAAU,CAAC,gBAAgB,EAAE,oEAAO,CAAC,QAAQ,CAAC,CAAC;gBAC/C,uEAAU,CAAC,gBAAgB,EAAE,oEAAO,CAAC,QAAQ,CAAC,CAAC;aAChD,CAAC;YACF,oEAAO,CAAC,eAAe,EAAE;gBACvB,kEAAK,CAAC,SAAS,EAAE,kEAAK,CAAC;oBACrB,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,iBAAiB;iBAC3B,CAAC,CAAC;gBACH,kEAAK,CAAC,OAAO,EAAE,kEAAK,CAAC;oBACnB,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,iBAAiB;iBAC3B,CAAC,CAAC;gBACH,uEAAU,CAAC,gBAAgB,EAAE,oEAAO,CAAC,QAAQ,CAAC,CAAC;gBAC/C,uEAAU,CAAC,gBAAgB,EAAE,oEAAO,CAAC,QAAQ,CAAC,CAAC;aAChD,CAAC;YACF,oEAAO,CAAC,kBAAkB,EAAE;gBAC1B,kEAAK,CAAC,SAAS,EAAE,kEAAK,CAAC;oBACrB,QAAQ,EAAE,MAAM;oBAChB,MAAM,EAAE,MAAM;oBACd,KAAK,EAAE,MAAM;iBACd,CAAC,CAAC;gBACH,kEAAK,CAAC,OAAO,EAAE,kEAAK,CAAC;oBACnB,QAAQ,EAAE,KAAK;oBACf,MAAM,EAAE,MAAM;oBACd,KAAK,EAAE,MAAM;iBACd,CAAC,CAAC;gBACH,uEAAU,CAAC,gBAAgB,EAAE,oEAAO,CAAC,QAAQ,CAAC,CAAC;gBAC/C,uEAAU,CAAC,gBAAgB,EAAE,oEAAO,CAAC,QAAQ,CAAC,CAAC;aAChD,CAAC;YACF,oEAAO,CAAC,mBAAmB,EAAE;gBAC3B,kEAAK,CAAC,SAAS,EAAE,kEAAK,CAAC;oBACrB,QAAQ,EAAE,MAAM;oBAChB,MAAM,EAAE,MAAM;oBACd,KAAK,EAAE,MAAM;iBACd,CAAC,CAAC;gBACH,kEAAK,CAAC,OAAO,EAAE,kEAAK,CAAC;oBACnB,QAAQ,EAAE,KAAK;oBACf,MAAM,EAAE,MAAM;oBACd,KAAK,EAAE,MAAM;iBACd,CAAC,CAAC;gBACH,uEAAU,CAAC,gBAAgB,EAAE,oEAAO,CAAC,QAAQ,CAAC,CAAC;gBAC/C,uEAAU,CAAC,gBAAgB,EAAE,oEAAO,CAAC,QAAQ,CAAC,CAAC;aAChD,CAAC;YACF,oEAAO,CAAC,iBAAiB,EAAE;gBACzB,kEAAK,CAAC,SAAS,EAAE,kEAAK,CAAC;gBACrB,iBAAiB;gBACjB,kBAAkB;iBACnB,CAAC,CAAC;gBACH,kEAAK,CAAC,OAAO,EAAE,kEAAK,CAAC;gBACnB,gBAAgB;gBAChB,gBAAgB;iBACjB,CAAC,CAAC;gBACH,uEAAU,CAAC,gBAAgB,EAAE,oEAAO,CAAC,QAAQ,CAAC,CAAC;gBAC/C,uEAAU,CAAC,gBAAgB,EAAE,oEAAO,CAAC,QAAQ,CAAC,CAAC;aAChD,CAAC;YACF,oEAAO,CAAC,oBAAoB,EAAE;gBAC5B,kEAAK,CAAC,SAAS,EAAE,kEAAK,CAAC;oBACrB,mBAAmB;oBACnB,kBAAkB;oBAClB,KAAK,EAAE,MAAM;iBACd,CAAC,CAAC;gBACH,kEAAK,CAAC,OAAO,EAAE,kEAAK,CAAC;oBACnB,mBAAmB;oBACnB,iBAAiB;oBACjB,KAAK,EAAE,MAAM;iBACd,CAAC,CAAC;gBACH,uEAAU,CAAC,gBAAgB,EAAE,oEAAO,CAAC,QAAQ,CAAC,CAAC;gBAC/C,uEAAU,CAAC,gBAAgB,EAAE,oEAAO,CAAC,QAAQ,CAAC,CAAC;aAChD,CAAC;SACH;;KACF,CAAC;GACW,mBAAmB,CAiqE/B;AAjqE+B;AAwqEhC,IAAa,yBAAyB,iCAAtC,MAAa,yBAAyB;IAiGpC,YAAoB,MAA2B,EACtC,SAAkD,EACzB,IAAS,EAAS,aAA4B,EACtE,MAAiB,EAAU,OAA4B,EACvD,gBAA6C;QACrD,kCAAkC;QALhB,WAAM,GAAN,MAAM,CAAqB;QACtC,cAAS,GAAT,SAAS,CAAyC;QACzB,SAAI,GAAJ,IAAI,CAAK;QAAS,kBAAa,GAAb,aAAa,CAAe;QACtE,WAAM,GAAN,MAAM,CAAW;QAAU,YAAO,GAAP,OAAO,CAAqB;QACvD,qBAAgB,GAAhB,gBAAgB,CAA6B;QApGvD,aAAQ,GAAG,KAAK,CAAC;QAEjB,cAAS,GAAG,KAAK,CAAC;QAElB,cAAS,GAAG,KAAK,CAAC;QAOlB,YAAO,GAAG,EAAE,CAAC;QACb,aAAQ,GAAG,EAAE,CAAC;QACd,WAAM,GAAG,EAAE,CAAC;QACZ,gBAAW,GAAG,EAAE,CAAC;QACjB,qBAAgB,GAAG,EAAE,CAAC;QACtB,WAAM,GAAG,EAAE,CAAC;QAGZ,gBAAW,GAAG,EAAE,CAAC;QAgBjB,oBAAe,GAAG,EAAE,CAAC;QACrB,sBAAiB,GAAG,KAAK,CAAC;QAC1B,gBAAW,GAAG,EAAE,CAAC;QAMjB,gBAAW,GAAG,EAAE,CAAC;QAOjB,cAAS,GAAG,KAAK,CAAC;QAIlB,eAAU,GAAG,IAAI,IAAI,EAAE,CAAC;QAGxB,mBAAc,GAAG,EAAE,CAAC;QAMpB,oBAAe,GAAG,EAAE,CAAC;QAerB,cAAc;QACd,qBAAgB,GAAG,KAAK,CAAC;QAwBvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEnC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE3B,CAAC;IACD,QAAQ;QAEN,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAEpD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAE7C,CAAC;IAED,SAAS;QACP,IAAI,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK;SAC7B;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAExB,CAAC;IACD,OAAO;QACL,IAAI,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;SAC/B;QAED,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,KAAK;QACH,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,IAAI,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;QAC7D,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,sBAAsB,CAAC,CAAC;QACjE,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzB,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAEvC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACxB,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IAEd,CAAC;IACD,WAAW;QACT,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IACD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IACD,UAAU;QAER,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,QAAQ;QACN,IAAI,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACxC,EAAE,CAAC,SAAS,GAAG,gBAAgB,CAAC;QAChC,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,kBAAkB;IACpB,CAAC;IACD,cAAc;IAEd,CAAC;IACD,eAAe;QACb,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACvD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;QAClC,CAAC,CAAC,CAAC;IAEL,CAAC;IAGD,UAAU,CAAC,GAAW;QAEpB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAAyB,EAAE;YAC5D,IAAI,EAAE,GAAG,GAAG,KAAK,GAAG,KAAK;SAC1B,CAAC,CAAC;QAqBH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAEzC,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;gBAEhC,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,IAAI,GAAG,KAAK,KAAK,EAAE;oBACjB,SAAS,GAAG,oBAAoB,CAAC;iBAClC;gBACD,SAAS;gBAET,wCAAwC;gBACxC,IAAI;aAEL;QAEH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,gBAAgB,CAAC,UAAU,EAAE,QAAQ;QAEnC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE;YACnC,OAAO;SACR;aACI,IAAI,IAAI,CAAC,QAAQ,EAAE;YACtB,OAAO;SACR;aACI,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACzC,OAAO;SACR;aACI,IAAI,IAAI,CAAC,UAAU,EAAE;YACxB,OAAO;SACR;QAGD,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;YAC7D,IAAI,EAAE,aAAa,GAAG,KAAK,GAAG,IAAI;SACnC,CAAC,CAAC;QAGH,IAAI,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;QAC7E,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAE1C,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YAChD,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;SAC7C;QAED,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,CAAC,CAAC;QAC1C,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAGrD,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QACnE,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAEnE,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QACnE,SAAS,CAAC,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QAE/D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAEzD,IAAI,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACjD,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE7G,SAAS,CAAC,iBAAiB,CAAC,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAChE,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC1E,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;QAE/E,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAEhE,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;YAE9C,IAAI,WAAW,KAAK,OAAO,EAAE;gBAC3B,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;aAC3B;iBACI,IAAI,WAAW,KAAK,aAAa,EAAE;gBAEtC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;aAEjD;iBACI,IAAI,WAAW,KAAK,QAAQ,EAAE;gBAEjC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;aAE5B;iBAAM,IAAI,WAAW,KAAK,cAAc,EAAE;gBAEzC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oFAAuB,EAAE;oBAC7D,UAAU,EAAE,yBAAyB;oBACrC,IAAI,EAAE,WAAW,GAAG,KAAK,GAAG,IAAI;iBACjC,CAAC,CAAC;gBAEH,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;gBAC7B,IAAI,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;gBAC7E,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC1B,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC1C,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;iBACjD;gBACD,IAAI,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAChD,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,UAAU,CAAC,QAAQ,EAAE,CAC1G,CAAC;gBAEF,YAAY,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC1D,YAAY,CAAC,iBAAiB,CAAC,UAAU,GAAG,UAAU,CAAC;gBACvD,YAAY,CAAC,iBAAiB,CAAC,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;gBAC7E,YAAY,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAC7E,YAAY,CAAC,iBAAiB,CAAC,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;gBAC7E,YAAY,CAAC,iBAAiB,CAAC,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;gBACzE,YAAY,CAAC,iBAAiB,CAAC,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;gBACjF,YAAY,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;gBAChE,YAAY,CAAC,iBAAiB,CAAC,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBACnE,YAAY,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC9D,YAAY,CAAC,iBAAiB,CAAC,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACjE,YAAY,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACxD,YAAY,CAAC,iBAAiB,CAAC,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;gBACjF,YAAY,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBACxE,YAAY,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAC7E,YAAY,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;gBAChE,YAAY,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC1D,YAAY,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oBAE5C,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;wBACjE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;wBAEjD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;wBAEvC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;wBAE/B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;wBACrI,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;wBAE1E,IAAI,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;wBAC5F,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;4BACtC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;wBAC/B,CAAC,CAAC,CAAC;wBAEH,IAAI,UAAU,CAAC,MAAM;4BACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;;4BAC9F,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;oBAE3E,CAAC,CAAC,CAAC;gBAGL,CAAC,CAAC,CAAC;aACJ;iBAEI,IAAI,WAAW,KAAK,MAAM,IAAI,QAAQ,KAAK,CAAC,EAAE;gBACjD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC7B,IAAI,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;gBAEhF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;oBAE7B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oFAAuB,EAAE;wBAC1D,UAAU,EAAE,yBAAyB;wBACrC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;qBAC5B,CAAC,CAAC;oBAEH,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,EAAE;wBACtC,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,CAAC,CAAC;qBAClD;yBACI;wBACH,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;qBAC7E;oBAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;wBACnC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;oBAC/B,CAAC,CAAC,CAAC;oBAEH,IAAI,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;oBAE1F,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,eAAe,CAAC;oBAE1D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oBAEtE,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACpE,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;oBAC1E,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;oBAC1E,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oBAEtE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAG7D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAEvE,SAAS,CAAC,iBAAiB,CAAC,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;oBAEvE,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oBACtE,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;oBAC9E,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;oBAC1E,SAAS,CAAC,iBAAiB,CAAC,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;oBAChE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAC7D,+DAA+D;oBAC/D,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oBAC9D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAC7D,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;oBACjE,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;oBACrD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAE7D,SAAS,CAAC,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;oBACxD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAE7D,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACpE,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACpE,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;oBAErE,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;oBAC3D,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;wBACzC,IAAI,MAAM;4BACR,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;wBAE1C,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;wBACtB,uBAAuB;wBACvB,4BAA4B;wBAE5B,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;wBAC/B,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;4BACjE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;4BAEjD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;4BAEvC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;4BAI/B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;4BAClJ,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;4BAG5F,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;4BACtF,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gCACtC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;4BAC/B,CAAC,CAAC,CAAC;4BAGH,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;4BAE3F,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;4BAIlF,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;4BACjF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;4BAAA,CAAC;4BAErC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gCAE/H,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;gCAC3F,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;gCACzD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;gCACrD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gCAEnD,yBAAyB;6BAE1B;iCAEI;gCACH,IAAI,CAAC,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;gCACnD,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;gCAC/C,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gCAC7C,2BAA2B;6BAC5B;4BAED,sBAAsB;wBACxB,CAAC,CAAC,CAAC;oBAGL,CAAC,CAAC,CAAC;iBACJ;aACF;iBACI,IAAI,WAAW,KAAK,MAAM,IAAI,QAAQ,IAAI,CAAC,EAAE;gBAChD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC7B,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;gBAEtG,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;oBAGxB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oFAAuB,EAAE;wBAC1D,UAAU,EAAE,yBAAyB;wBACrC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;qBAC5B,CAAC,CAAC;oBAEH,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;wBACnC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;oBAC/B,CAAC,CAAC,CAAC;oBAGH,IAAI,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;oBAE7E,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,eAAe,CAAC;oBAG1D,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;oBACrE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;oBACrE,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oBAGjE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAI7D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;oBAE1D,SAAS,CAAC,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC;oBAE1D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oBACjE,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;oBACzE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;oBAErE,SAAS,CAAC,iBAAiB,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;oBAC3D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAC7D,+DAA+D;oBAC/D,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oBACzD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAC7D,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;oBACjE,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;oBACrD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAE7D,SAAS,CAAC,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;oBACxD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAE7D,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC/D,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC/D,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;oBAErE,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;oBAC3D,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;wBACzC,IAAI,MAAM;4BAER,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;wBAC1C,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;wBACtB,IAAI,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAChD,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAC/H,CAAC;wBAEF,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;4BACjE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;4BACjD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;4BACvC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;4BAC/B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;4BAC7I,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;4BACvF,IAAI,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;4BAC5F,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gCACtC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;4BAC/B,CAAC,CAAC,CAAC;4BACH,IAAI,UAAU,CAAC,MAAM;gCACnB,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;;gCACtG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;wBACnF,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;iBACJ;aACF;iBACI,IAAI,WAAW,KAAK,QAAQ,IAAI,QAAQ,KAAK,CAAC,EAAE;gBACnD,IAAI,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;gBAClH,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC7B,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oBAC/C,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC7C,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oBACvC,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oFAAuB,EAAE;wBAC1D,UAAU,EAAE,yBAAyB;wBACrC,IAAI,EAAE,4CAA4C,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,MAAM,GAAG,IAAI;qBACpG,CAAC,CAAC;oBACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;wBACzC,IAAI,MAAM,EAAE;4BACV,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gCACnL,IAAI,IAAI,CAAC,EAAE,EAAE;oCACX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oCACtB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;iCACzC;gCACD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;gCACtB,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;gCAC/B,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oCACjE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;oCACjD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;oCACvC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;oCAC/B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oCAClJ,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;oCAC5F,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;oCACtF,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;wCACtC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;oCAC/B,CAAC,CAAC,CAAC;oCACH,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;oCAC3F,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;oCAClF,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;oCACjF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;oCAAA,CAAC;oCACrC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;wCAC/H,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;wCAC3F,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;wCACzD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;wCACrD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;qCACpD;yCACI;wCACH,IAAI,CAAC,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;wCACnD,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;wCAC/C,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;qCAC9C;gCACH,CAAC,CAAC,CAAC;4BACL,CAAC,CAAC,CAAC;yBACJ;oBACH,CAAC,CAAC,CAAC;iBACJ;aACF;iBAEI,IAAI,WAAW,KAAK,QAAQ,IAAI,QAAQ,KAAK,CAAC,EAAE;gBACnD,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;gBACtG,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;oBACxB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oBAC1C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACxC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oBAClC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACxC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oFAAuB,EAAE;wBAC1D,UAAU,EAAE,yBAAyB;wBACrC,IAAI,EAAE,4CAA4C,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,MAAM,GAAG,IAAI;qBAC/F,CAAC,CAAC;oBACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;wBACzC,IAAI,MAAM,EAAE;4BACV,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gCACpK,IAAI,IAAI,CAAC,EAAE,EAAE;oCACX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oCACtB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;iCACzC;gCACD,IAAI,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC5C,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAC/H,CAAC;gCACF,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oCACjE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;oCACjD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;oCACvC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;oCAC/B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oCACxI,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;oCACvF,IAAI,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;oCACvF,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;wCACtC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;oCAC/B,CAAC,CAAC,CAAC;oCACH,IAAI,UAAU,CAAC,MAAM;wCACnB,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;;wCACtG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;gCACnF,CAAC,CAAC,CAAC;4BACL,CAAC,CAAC,CAAC;yBACJ;oBACH,CAAC,CAAC,CAAC;iBACJ;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,OAAO;QACjB,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5E,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;SAC/B;QAED,IAAI,CAAC,aAAa,CAAC,6BAA6B,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACzJ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAEhD,IAAI,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;YACpF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5B,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,EAAE;oBACxC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iFAAsB,EAAE;wBACzD,UAAU,EAAE,yBAAyB;wBACrC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;qBACjC,CAAC,CAAC;oBAKH,sDAAsD;oBACtD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;oBAC3D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAC7D,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;oBACjE,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;oBACnE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAC7D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;oBAGzD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;oBACrD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;oBAC3E,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;oBAC3E,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oBACrE,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACnE,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oBACrE,SAAS,CAAC,iBAAiB,CAAC,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;oBAC3E,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACnE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;oBACzE,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;oBACrF,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;oBACpF,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oBAC7D,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;oBACjE,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oBACrE,SAAS,CAAC,iBAAiB,CAAC,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;oBAC/D,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;oBACvE,kFAAkF;oBAElF,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACnE,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACnE,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACnE,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;oBACvE,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;oBAC3D,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;oBACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACjD,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,EAAE;4BACvG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;yBAC9C;qBACF;oBACD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAE7D,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;wBACzC,IAAI,MAAM;4BACR,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;wBAC1C,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;4BACtM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;4BACnC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;wBACxB,CAAC,CAAC;oBACJ,CAAC,CAAC,CAAC;iBACJ;qBAAM;oBACL,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8EAAqB,EAAE;wBACxD,UAAU,EAAE,yBAAyB;wBACrC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;qBACjC,CAAC,CAAC;oBAGH,IAAI,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;oBAEzF,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,eAAe,CAAC;oBAC1D,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;oBAEvD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAC7D,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;oBACjE,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;oBACnE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAC7D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;oBACzD,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM;oBAE5D,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;oBACrD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;oBAE3E,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;oBAC3E,+DAA+D;oBAC/D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oBACrE,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAGnE,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oBACrE,SAAS,CAAC,iBAAiB,CAAC,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;oBAC3E,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACnE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;oBACzE,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;oBACnF,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oBAC7D,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;oBACjE,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oBACrE,SAAS,CAAC,iBAAiB,CAAC,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;oBAC/D,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;oBAEvE,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;oBAE3E,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;oBACpD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACnE,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;oBACvE,SAAS,CAAC,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;oBAE/D,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;oBACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACjD,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,EAAE;4BACvG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;yBAC9C;qBACF;oBACD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAE7D,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;wBACzC,IAAI,MAAM;4BACR,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;wBAE1C,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;4BACtM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;4BACnC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;4BAEtB,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;wBAG5E,CAAC,CAAC;oBAEJ,CAAC,CAAC,CAAC;iBAEJ;aAGF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,OAAO;QACnB,IAAI,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;QACpF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,EAAE;gBACxC,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC5C,IAAI,MAAe,CAAC;gBACpB,IAAI,CAAC,gBAAgB,CAAC,4BAA4B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBAClF,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;gBACrB,CAAC,CAAC;gBACF,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8EAAqB,EAAE;oBACxD,UAAU,EAAE,yBAAyB;oBACrC,IAAI,EAAE,0CAA0C,GAAG,OAAO,CAAC,WAAW,GAAG,MAAM,GAAG,IAAI;oBACtF,KAAK,EAAE,OAAO;iBACf,CAAC,CAAC;gBACH,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;gBAC1D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;gBAC3E,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oBACzC,IAAI,MAAM,EAAE;wBACV,IAAI,CAAC,MAAM,EAAE;4BACX,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gCAChE,IAAI,IAAI,CAAC,EAAE,EAAE;oCACX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oCACtB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8EAAqB,EAAE;wCACxD,UAAU,EAAE,yBAAyB;wCACrC,IAAI,EAAE,uBAAuB;qCAC9B,CAAC,CAAC;oCACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;wCACzC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;4CACtM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;4CACnC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;wCACxB,CAAC,CAAC;oCACJ,CAAC,CAAC,CAAC;iCACJ;4BACH,CAAC,CAAC,CAAC;yBACJ;6BACI;4BACH,IAAI,CAAC,UAAU,CAAC,yDAAyD,CAAC,CAAC;yBAC5E;qBACF;gBACH,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAE5C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iFAAsB,EAAE;oBACzD,UAAU,EAAE,yBAAyB;oBACrC,IAAI,EAAE,+CAA+C,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI;oBACvF,KAAK,EAAE,OAAO;iBAGf,CAAC,CAAC;gBAEH,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;gBAC1D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;gBAC3E,2BAA2B;gBAE3B,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oBACzC,IAAI,MAAM,EAAE;wBAEV,0BAA0B;wBAC1B,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;4BAEhE,IAAI,IAAI,CAAC,EAAE,EAAE;gCACX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gCACtB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iFAAsB,EAAE;oCACzD,UAAU,EAAE,yBAAyB;oCACrC,IAAI,EAAE,uBAAuB;oCAG7B,eAAe;iCAChB,CAAC,CAAC;gCACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oCAGzC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;wCACtM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wCACnC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;oCAExB,CAAC,CAAC;gCAEJ,CAAC,CAAC,CAAC;6BACJ;wBAEH,CAAC,CAAC,CAAC;qBACJ;gBACH,CAAC,CAAC,CAAC;aACJ;SACF;IACH,CAAC;IACD,gBAAgB,CAAC,UAAU;QACzB,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACjE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAEvC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;YAE/B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC;QAErF,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAChE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAElD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,cAAc,CAAC,UAAU,EAAE,SAAS;QAElC,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;QAC7E,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1C,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YAChD,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;SAC7C;QACD,IAAI,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAChD,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,UAAU,CAAC,QAAQ,EAAE,CAC1G,CAAC;QAEF,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;QAEhC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;QAC/B,CAAC,CAAC,CAAC;QAGH,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oFAAuB,EAAE;YAC1D,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS;SAChC,CAAC,CAAC;QAEH,IAAI,UAAU,KAAK,CAAC,EAAE;YACpB,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,CAAC,CAAC;SAClD;aACI;YACH,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,UAAU,CAAC;SAC3D;QACD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACjD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjE,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAE7D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,wDAAwD;QACxD,iFAAiF;QACjF,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAErE,6DAA6D;QAC7D,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAEzC,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC;YAAA,CAAC;YAEvE,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;gBACjE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;gBAEjD,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC;gBAEvE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE;oBACxD,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACnD,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;4BACzH,IAAI,EAAE,GAAG,EAAE,CAAC;4BACZ,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;4BACtC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;4BAElD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;4BAEjH,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;4BAC1E,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;4BACvF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;4BAC1E,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE;yBACtF;6BACI;4BACH,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC/F,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;4BAC1E,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;4BACvF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;4BAC1E,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE;yBAEtF;qBACF;iBAEF;gBAED,IAAI,CAAC,eAAe,EAAE,CAAC;YAEzB,CAAC,CAAC,CAAC;QAEL,CAAC,CAAC,CAAC;IAEL,CAAC;IAGD,kBAAkB;QAChB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC7E,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAEvC,IAAI,QAAa,CAAC;YAClB,QAAQ,GAAG,OAAO,CAAC;YAEnB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBAEzB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBAClE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;oBACvC,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC;gBAErC,CAAC,CAAC,CAAC;aACJ;iBACI;gBACH,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC;aACrC;QAEH,CAAC,CAAC,CAAC;IAGL,CAAC;IAKD,eAAe;QACb,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;QAEhH,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QAEzC,IAAI,CAAC,aAAa,CAAC,6BAA6B,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACrJ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAEhD,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,UAAU,EAAE;gBAE1C,OAAO;aACR;YAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;YAEpH,IAAI,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC;YACvE,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC;YAGtE,IAAI,eAAe,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;YAEjF,IAAI,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;YAE/E,IAAI,OAAO,CAAC;YACZ,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE;gBAC5E,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC9D,OAAO,GAAG;wBACR,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;wBACxC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW;wBAC5C,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY;wBAC9C,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ;wBACtC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU;wBAC1C,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW;wBAC5C,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO;qBACrC,CAAC;oBAEF,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,EAAE;wBAC3C,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG,EAAE;4BAEzB,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gCAClH,IAAI,EAAE,GAAG,EAAE,CAAC;gCACZ,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;gCACzB,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gCAElC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;oCACnE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;iCAErE;gCACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,EAAE;oCAChF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;iCAClF;gCACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;oCAEjG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;iCAClG;gCAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;gCAExM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;6BAC9F;iCACI;gCACH,IAAI,IAAI,CAAC,gBAAgB,EAAE;oCACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC;oCACtH,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,eAAe,CAAC;iCAC1F;;gCAED,qDAAqD;gCACrD;oCACE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;oCAExM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iCACtF;6BAEF;yBAEF;6BAAM;4BAEL,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gCAC3G,IAAI,EAAE,GAAG,EAAE,CAAC;gCACZ,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;gCACzB,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gCAElC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;oCAEhE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;iCACjE;gCACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;gCACtI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;6BACvF;iCACI;gCAEH,IAAI,IAAI,CAAC,gBAAgB,EAAE;oCACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC;oCAClF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC;iCAEhF;qCACI;oCACH,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oCAC9E,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;iCAEvI;6BAEF;yBAEF;qBACF;yBACI;wBAEH,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG,EAAE;4BAGzB,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gCAC1G,IAAI,EAAE,GAAG,EAAE,CAAC;gCACZ,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;gCACzB,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gCAElC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;oCAE/D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;iCAChE;gCAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;gCAEpI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;6BACtF;iCACI;gCACH,IAAI,IAAI,CAAC,gBAAgB,EAAE;oCACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC;oCAChF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;iCAC9E;qCACI;oCACH,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;oCACpI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iCAC9E;6BAGF;yBAEF;6BACI;4BAEH,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gCAElH,IAAI,EAAE,GAAG,EAAE,CAAC;gCACZ,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;gCACzB,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gCAElC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;oCAChG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;iCACjG;gCAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;gCAGtM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;6BAC9F;iCACI;gCACH,IAAI,IAAI,CAAC,gBAAgB,EAAE;oCACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC;oCACxF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;iCACrH;;gCAED,kDAAkD;gCAClD;oCACE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;oCAEtM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iCACtF;6BACF;yBAEF;qBACF;iBACF;aACF;YACD,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBACjC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,EAAE;oBAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACzE,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;wBACjE,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;wBACjC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,IAAI,SAAS,EAAE;4BAChI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;yBACjE;6BAAM;4BACL,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,IAAI,CAAC,EAAE;gCACxC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;6BACjC;iCAAM;gCACL,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;6BAClC;yBACF;qBACF;iBACF;aAEF;QAEH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,QAAQ,CAAC,UAAU;QACjB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QAEpB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iFAAsB,EAAE;YACzD,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,UAAU;SACjC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;QAC7E,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1C,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YAChD,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;SAC7C;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAE5C,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;QAChD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjE,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QACnE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACzD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC3E,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC3E,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAEvE,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAEvD,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,UAAU,CAAC;QACpD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAGvD,IAAI,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,IAAI,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;QAEzD,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;QAE9D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAE9C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;SACrC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;YAEpC,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,KAAK,CAAC;YACtD,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,UAAU,CAAC;SAErD;aAAM;YAEL,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,IAAI,CAAC;YACrD,SAAS,CAAC,iBAAiB,CAAC,aAAa,GAAG,UAAU,CAAC;YACvD,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;SAExD;QAED,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,8BAA8B;YAC9B,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAE1B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QAExB,CAAC,CAAC,CAAC;IAEL,CAAC;IAGD,SAAS,CAAC,UAAU;QAElB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QAEpB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8EAAqB,EAAE;YACxD,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,UAAU;SACjC,CAAC,CAAC;QAEH,IAAI,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;QAC7E,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1C,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YAChD,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;SAC7C;QACD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACjD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjE,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QACnE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACzD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC3E,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC3E,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,yDAAyD;QACzD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAEvD,IAAI,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,IAAI,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;QAEzD,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;QAE9D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAE9C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACpC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY;SAElD;QAGD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;YACpC,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,UAAU,CAAC;YACpD,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,KAAK,CAAC;SACvD;aAAM;YAEL,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,IAAI,CAAC;YACrD,SAAS,CAAC,iBAAiB,CAAC,aAAa,GAAG,UAAU,CAAC;YACvD,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;YACvD,4EAA4E;SAG7E;QAED,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,6BAA6B;YAC7B,qGAAqG;YACrG,IAAI;YAGJ,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAI1B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE7B,CAAC,CAAC,CAAC;IAEL,CAAC;IAGD,OAAO,CAAC,UAAU,EAAE,SAAS;QAE3B,IAAI,YAAY,GAAG,EAAE,CAAC;QAEtB,IAAI,UAAU,KAAK,CAAC,EAAE;YACpB,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;YAEvC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;SACrC;QAED,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAC3J,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAEnC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;gBAC7D,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,SAAS;gBAC/C,KAAK,EAAE,OAAO;aACf,CAAC,CAAC;YAEH,IAAI,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,WAAW,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;YAEtG,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACtB;iBACI;gBACH,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;aAEvB;YAED,IAAI,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,UAAU,CAAC,CAAC;YAE3F,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAGrD,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YACnE,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAEnE,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvD,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YACnE,SAAS,CAAC,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YAE/D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACzD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,KAAK,CAAC;YAC7C,SAAS,CAAC,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;YACjE,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,YAAY,CAAC;YACpD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC3D,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC3D,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;YAC3D,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YACjE,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAGzE,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;YAChD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC3D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YACjE,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YACnE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACzD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;YAC3E,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;YAC3E,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvD,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;YAC/D,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC5C,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC3D,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAEzE,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;gBACzC,2BAA2B;gBAC3B,IAAI,CAAC,aAAa,CAAC,6BAA6B,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBACpK,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;oBAIhD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;oBAIxC,IAAI,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,UAAU,CAAC,CAAC;oBACpH,IAAI,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,UAAU,CAAC,CAAC;oBAGnH,IAAI,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;oBACxH,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;oBAGvH,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAE7C,IAAI,SAAS,KAAK,CAAC,EAAE;wBACnB,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE;4BACpC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC;4BAE/F,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;gCAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC;6BAC7F;iCACI;gCAEH,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;6BACrF;yBAEF;6BACI,IAAI,IAAI,CAAC,UAAU,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE;4BAEzD,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;gCAC9B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC;gCACtH,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,eAAe,CAAC;6BAC1F;iCACI;gCACH,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;gCACjF,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;6BAE/E;yBAEF;qBAEF;yBACI;wBACH,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE;4BACpC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC;4BAC7F,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gCAC1B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;6BAC3F;iCACI;gCAEH,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;6BACpF;yBACF;6BACI,IAAI,IAAI,CAAC,UAAU,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE;4BACzD;gCAEE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;oCAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;oCACpH,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC;iCAEzF;qCAEI;oCACH,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;oCAChF,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iCAC/E;6BAEF;yBAEF;qBAEF;oBAED,IAAI,CAAC,eAAe,EAAE,CAAC;oBAEvB,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC7B,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IACD,mBAAmB;QACjB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACjC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,EAAE;gBAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACzE,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oBACjE,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;oBACjC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,IAAI,SAAS,EAAE;wBAEhI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;qBACjE;yBAAM;wBACL,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,IAAI,CAAC,EAAE;4BACxC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;yBACjC;6BAAM;4BACL,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;yBAClC;qBACF;iBAEF;aACF;SAEF;IACH,CAAC;CAEF;;YAv7C6B,mBAAmB;YAC3B,qEAAY;4CAC7B,oDAAM,SAAC,wEAAe;YAA0C,6DAAa;YAC9D,kEAAS;YAAmB,kEAAmB;YACrC,mHAA2B;;AArG5C,yBAAyB;IANrC,+DAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,qIAA0B;QAE1B,SAAS,EAAE,CAAC,6DAAa,EAAE,mBAAmB,CAAC;;KAChD,CAAC;IAoGG,6GAAM,CAAC,wEAAe,CAAC;GAnGf,yBAAyB,CAwhDrC;AAxhDqC;AAgiDtC,IAAa,0BAA0B,GAAvC,MAAa,0BAA0B;IAoErC,YACS,SAAmD,EAC1B,IAAS,EAAS,aAA4B,EACtE,MAAiB,EAAU,gBAA6C;QAFzE,cAAS,GAAT,SAAS,CAA0C;QAC1B,SAAI,GAAJ,IAAI,CAAK;QAAS,kBAAa,GAAb,aAAa,CAAe;QACtE,WAAM,GAAN,MAAM,CAAW;QAAU,qBAAgB,GAAhB,gBAAgB,CAA6B;QAtElF,aAAQ,GAAG,KAAK,CAAC;QACjB,cAAS,GAAG,KAAK,CAAC;QAIlB,cAAS,GAAG,KAAK,CAAC;QAQlB,YAAO,GAAG,EAAE,CAAC;QACb,aAAQ,GAAG,EAAE,CAAC;QACd,WAAM,GAAG,EAAE,CAAC;QACZ,gBAAW,GAAG,EAAE,CAAC;QACjB,WAAM,GAAG,EAAE,CAAC;QAEZ,SAAI,GAAG,IAAI,CAAC;QAoDV,kCAAkC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEnC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE3B,CAAC;IACD,QAAQ;QACN,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,WAAW;QACT,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAED,UAAU,CAAC,GAAW;QACpB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;YAC5D,IAAI,EAAE,GAAG,GAAG,KAAK,GAAG,KAAK;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IACD,UAAU;QACR,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAGD,WAAW,CAAC,OAAO;QAEjB,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YAClD,OAAO;SACR;QAED,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5E,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;SAC/B;QAED,IAAI,CAAC,aAAa,CAAC,6BAA6B,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACzJ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAEhD,IAAI,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;YACpF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5B,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,EAAE;oBACxC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iFAAsB,EAAE;wBACzD,UAAU,EAAE,yBAAyB;wBACrC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;qBACjC,CAAC,CAAC;oBAEH,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;oBAC3D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAC7D,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;oBACjE,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;oBACnE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAC7D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;oBACzD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;oBACrD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;oBAC3E,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;oBAC3E,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oBACrE,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACnE,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oBACrE,SAAS,CAAC,iBAAiB,CAAC,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;oBAC3E,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACnE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;oBACzE,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;oBACrF,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;oBACpF,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oBAC7D,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;oBACjE,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oBACrE,SAAS,CAAC,iBAAiB,CAAC,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;oBAC/D,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;oBACvE,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACnE,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACnE,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACnE,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;oBACvE,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;oBAE3D,IAAI,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC;oBACvC,IAAI,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;oBAEzD,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;oBAE/E,IAAI,QAAgB,CAAC;oBACrB,IAAI,kBAA0B,CAAC;oBAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;wBAE9C,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;wBAC/B,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY;qBAC7C;oBACD,IAAI,QAAQ,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;wBAC/B,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;wBACrE,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,KAAK,CAAC;qBACvD;yBAAM;wBACL,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,IAAI,CAAC;wBACrD,SAAS,CAAC,iBAAiB,CAAC,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;wBACxE,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,QAAQ,CAAC;qBACnD;oBACD,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;wBACzC,IAAI,MAAM;4BACR,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;wBAC1C,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;4BACtM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;4BACnC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;wBACxB,CAAC,CAAC;oBACJ,CAAC,CAAC,CAAC;iBACJ;qBAAM;oBACL,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8EAAqB,EAAE;wBACxD,UAAU,EAAE,yBAAyB;wBACrC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;qBACjC,CAAC,CAAC;oBAEH,IAAI,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;oBACzF,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,eAAe,CAAC;oBAC1D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAC7D,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;oBACjE,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;oBACnE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAC7D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;oBACzD,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oBAC7D,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;oBACvD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;oBACrD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;oBAC3E,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;oBAC3E,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oBACrE,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACnE,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oBACrE,SAAS,CAAC,iBAAiB,CAAC,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;oBAC3E,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACnE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;oBACzE,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;oBACnF,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oBAC7D,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;oBACjE,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oBACrE,SAAS,CAAC,iBAAiB,CAAC,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;oBAC/D,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;oBACvE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;oBAC3E,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;oBACpD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACnE,IAAI,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC;oBACvC,IAAI,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;oBACzD,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;oBAE/E,IAAI,QAAgB,CAAC;oBACrB,IAAI,kBAA0B,CAAC;oBAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;wBAE9C,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;wBAC/B,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY;qBAC7C;oBACD,IAAI,QAAQ,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;wBAC/B,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;wBACrE,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,KAAK,CAAC;qBACvD;yBAAM;wBAEL,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,IAAI,CAAC;wBACrD,SAAS,CAAC,iBAAiB,CAAC,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;wBACxE,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,QAAQ,CAAC;qBACnD;oBACD,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;wBACzC,IAAI,MAAM;4BACR,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;wBAE1C,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;4BACtM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;4BACnC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;4BACtB,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;wBAC5E,CAAC,CAAC;oBACJ,CAAC,CAAC,CAAC;iBACJ;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,OAAO;QAEnB,IAAI,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;QACpF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,EAAE;gBACxC,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAE5C,IAAI,MAAe,CAAC;gBACpB,IAAI,CAAC,gBAAgB,CAAC,4BAA4B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBAClF,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;gBACrB,CAAC,CAAC;gBACF,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8EAAqB,EAAE;oBACxD,UAAU,EAAE,yBAAyB;oBACrC,IAAI,EAAE,0CAA0C,GAAG,OAAO,CAAC,WAAW,GAAG,MAAM,GAAG,IAAI;oBACtF,KAAK,EAAE,OAAO;iBACf,CAAC,CAAC;gBAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oBACzC,IAAI,MAAM,EAAE;wBACV,IAAI,CAAC,MAAM,EAAE;4BACX,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gCAChE,IAAI,IAAI,CAAC,EAAE,EAAE;oCACX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oCACtB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8EAAqB,EAAE;wCACxD,UAAU,EAAE,yBAAyB;wCACrC,IAAI,EAAE,uBAAuB;qCAC9B,CAAC,CAAC;oCACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;wCACzC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;4CACtM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;4CACnC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;wCACxB,CAAC,CAAC;oCACJ,CAAC,CAAC,CAAC;iCACJ;4BACH,CAAC,CAAC,CAAC;yBACJ;6BACI;4BACH,IAAI,CAAC,UAAU,CAAC,yDAAyD,CAAC,CAAC;yBAC5E;qBACF;gBACH,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAE5C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iFAAsB,EAAE;oBACzD,UAAU,EAAE,yBAAyB;oBACrC,IAAI,EAAE,+CAA+C,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI;oBACvF,KAAK,EAAE,OAAO;iBAGf,CAAC,CAAC;gBACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oBACzC,IAAI,MAAM,EAAE;wBACV,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;4BAEhE,IAAI,IAAI,CAAC,EAAE,EAAE;gCACX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gCACtB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iFAAsB,EAAE;oCACzD,UAAU,EAAE,yBAAyB;oCACrC,IAAI,EAAE,uBAAuB;iCAC9B,CAAC,CAAC;gCACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oCAGzC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;wCACtM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wCACnC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;oCAExB,CAAC,CAAC;gCAEJ,CAAC,CAAC,CAAC;6BACJ;wBACH,CAAC,CAAC,CAAC;qBACJ;gBACH,CAAC,CAAC,CAAC;aACJ;SACF;IAEH,CAAC;CAEF;;YA/QqB,qEAAY;4CAC7B,oDAAM,SAAC,wEAAe;YAA0C,6DAAa;YAC9D,kEAAS;YAA4B,mHAA2B;;AAvEvE,0BAA0B;IANtC,+DAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,qIAA0B;QAE1B,SAAS,EAAE,CAAC,6DAAa,CAAC;;KAC3B,CAAC;IAuEG,6GAAM,CAAC,wEAAe,CAAC;GAtEf,0BAA0B,CAoVtC;AApVsC;;;;;;;;;;;;;;;;;;;;;;;;AC3zHmB;AAC0B;AAClC;AACG;AACmB;AACzB;AAO/C,IAAa,gBAAgB,GAA7B,MAAa,gBAAgB;IAgD3B,YAAmB,MAAiB,EAAS,aAA4B,EAAU,OAA4B;QAA5F,WAAM,GAAN,MAAM,CAAW;QAAS,kBAAa,GAAb,aAAa,CAAe;QAAU,YAAO,GAAP,OAAO,CAAqB;QA/C/G,uBAAkB,GAAG,mFAAkB,CAAC;QACxC,WAAM,GAAG,KAAK,CAAC;QAEf,mBAAc,GAAG,EAAE,CAAC;QAEpB,eAAU,GAAG,EAAE,CAAC;QAWhB,cAAS,GAAG,KAAK,CAAC;QAGlB,MAAC,GAAW,CAAC,CAAC;QACd,eAAU,GAAG,EAAE,CAAC;QAChB,kBAAa,GAAG,EAAE,CAAC;QAEnB,gBAAW,GAAG,EAAE,CAAC;QACjB,WAAM,GAAY,KAAK,CAAC;QACxB,WAAM,GAAG,EAAE,CAAC;QAEZ,UAAK,GAAG,IAAI,CAAC;QACb,kBAAa,GAAG,KAAK,CAAC;QACtB,cAAS,GAAG,KAAK,CAAC;QAClB,kBAAa,GAAG,KAAK,CAAC;QAStB,iBAAY,GAAG,EAAE,CAAC;QAClB,YAAO,GAAG,IAAI,CAAC;QAQb,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;YAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;SAC3C;aACI;YACH,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SACrB;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,CAAC;QAC7F,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC1C;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;IAEpB,CAAC;IACD,WAAW;QACT,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IACD,OAAO;QACL,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC7D,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YACxB,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;oBACnF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;iBACnG;qBACI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE;oBAClF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;oBAC/I,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;iBAC3C;qBACI;oBACH,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;iBACzB;aACF;QAEH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,UAAU;QACR,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CACvC,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CACL,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChH,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChH,CAAC,IAAI,CAAC,kBAAkB,KAAK,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC9H,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAC3G,CAAC;QACJ,CAAC,CAEF,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;YAChC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QAGD,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;YACnC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACxC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC1C;aACI;YACH,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC;YACnC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IAGH,CAAC;IACD,UAAU;QAER,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAChE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACxC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;gBACjC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;iBACI;gBAEH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAChD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;iBAC7D;gBACD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBACxB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;gBACtB,IAAI,IAAI,CAAC,eAAe,EAAE;oBACxB,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;wBACnF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;qBACxH;yBACI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE;wBAClF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;qBAC7F;yBACI;wBACH,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;wBACxE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;qBACzB;oBAED,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE;wBACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;wBACxC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;wBAC/D,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC;wBACxC,OAAO;qBACR;oBACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;oBAClE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;oBAC7C,IAAI,IAAI,CAAC,UAAU,IAAI,SAAS,EAAE;wBAChC,IAAI,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBAE/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BAC3C,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;4BAEjG,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gCACtB,IAAI,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gCAEjE,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oCACjC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;;oCAEvD,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gCAG1B,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oCACjC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;;oCAEvD,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gCAG1B,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oCACjC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;;oCAEvD,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gCAG1B,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oCACjC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;;oCAEvD,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gCAE1B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;6BACtC;yBACF;wBACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC;qBACxC;iBACF;qBACI;oBACH,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;oBACxE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;iBACzB;gBACD,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;oBACxC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;oBAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;oBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;oBAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;oBAE/D,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC;iBACzC;qBACI,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;oBACtC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;oBAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;iBAC3B;aAEF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB,CAAC,QAAQ;QAC3B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;YACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;SAC1C;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IAID,IAAI,CAAC,QAAQ;QACX,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,0BAA0B;QACtD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAGD,YAAY;QACV,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAE3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,6CAA6C;YAC7C,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACtC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAC5C,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;YACvD,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACzC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;YACvC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YACnC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;YACvC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAEvB;QAED,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,GAAG,UAAU,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,EAAE,gBAAgB,EAAE,0DAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAC3R,CAAC;IACD,UAAU,CAAC,GAAW;QAEpB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;YACzD,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,GAAG,GAAG,KAAK,GAAG,KAAK;SAC1B,CAAC,CAAC;QAEH,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACzD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAE3D,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;SAClD;QAED,IAAI,GAAG,KAAK,MAAM,EAAE;YAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC;YAEjC,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC3D,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvD,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACjD,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACzD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;YACzE,SAAS,CAAC,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YACnD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;SAErD;QAED,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;gBAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;iBACI;gBACH,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;YAED,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;gBAEhC,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,IAAI,GAAG,KAAK,KAAK,EAAE;oBACjB,SAAS,GAAG,oBAAoB,CAAC;iBAClC;qBACI;oBACH,SAAS,GAAG,sBAAsB,CAAC;iBACpC;gBAED,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;oBAC5D,UAAU,EAAE,yBAAyB;oBACrC,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,KAAK;iBAEhC,CAAC,CAAC;gBACH,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,CAAC,EAAE,GAAG,CAAC,CAAC;gBACR,YAAY,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBAC7C,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;oBACtB,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;wBAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;qBACnB;yBACI;wBACH,IAAI,CAAC,UAAU,EAAE,CAAC;qBACnB;gBACH,CAAC,CAAC,CAAC;aACJ;QAEH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,OAAO;QACjB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;QACrD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAE7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;gBAC3C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;aAC1D;SACF;QACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,MAAM,EAAE,MAAM;QACnB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YAClE,OAAO,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC;SAChC;IACH,CAAC;IAKD,QAAQ;QAEN,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SACvC;IACH,CAAC;IAED,aAAa,CAAC,OAAO;QACnB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAE/B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;YACzD,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,2CAA2C,GAAG,OAAO,CAAC,WAAW,GAAG,MAAM,GAAG,IAAI;SAExF,CAAC,CAAC;QACH,2BAA2B;QAE3B,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBAE3G,IAAI,IAAI,CAAC,EAAE,EAAE;wBACX,IAAI,CAAC,QAAQ,EAAE,CAAC;wBAChB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;wBACtB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;qBAEzC;oBACD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;oBACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;oBACxB,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IAIL,CAAC;CAGF;;YA1Z4B,kEAAS;YAAwB,6DAAa;YAAmB,kEAAmB;;AAhDpG,gBAAgB;IAL5B,+DAAS,CAAC;QACT,QAAQ,EAAE,aAAa;QACvB,uJAAuC;QACvC,SAAS,EAAE,CAAC,6DAAa,CAAC;KAC3B,CAAC;GACW,gBAAgB,CA0c5B;AA1c4B;AAkd7B,IAAa,sBAAsB,GAAnC,MAAa,sBAAsB;IAyBjC,YACS,SAA+C,EACtB,IAAS,EAAS,aAA4B;QADvE,cAAS,GAAT,SAAS,CAAsC;QACtB,SAAI,GAAJ,IAAI,CAAK;QAAS,kBAAa,GAAb,aAAa,CAAe;QAzBhF,cAAS,GAAG,KAAK,CAAC;QAelB,YAAO,GAAG,IAAI,CAAC;QACf,iBAAY,GAAa,EAAE,CAAC;QAC5B,sBAAiB,GAAG,EAAE,CAAC;QAEvB,gBAAW,GAAG,KAAK,CAAC;QAGpB,gBAAW,GAAG,KAAK,CAAC;QAIlB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEnC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;YACnC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;aACI;YACH,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;gBACvB,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;aACpC;iBAAM;gBACL,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;aACpC;SACF;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,QAAQ;QAEN,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;YAC5C,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAChD,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;wBAC9C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;qBAC7D;iBACF;aACF;YACD,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YACvC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;gBAClC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAC7B;iBACI;gBACH,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC3B;YAED,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;gBAClC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;aAChE;YACD,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACzC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,EAAE;YAC7D,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAChD,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;wBAE9C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;qBAC7D;iBACF;aACF;YAED,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YAEvC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;gBAElC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAC7B;;gBACI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAC3D;YAEH,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACzC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;SACxB;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE;YACrD,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;gBACxB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;aAClC;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAChD,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;oBAC9C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;iBACrD;aACF;SACF;QAED,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;YACxB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;aACzB;SACF;IAEH,CAAC;IAED,UAAU,CAAC,CAAC,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAED,UAAU;QACR,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAChE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAE7B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,UAAU;QACR,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE;YAC5B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,kCAAkC,CAAC;YACnD,OAAO;SACR;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEzB,CAAC;IACD,UAAU,CAAC,KAAK;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAElB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAChD,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE;oBACpE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;iBAC7D;aACF;SACF;QAED,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE;YACjC,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YAEvC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;gBAClC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAC7B;;gBACI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAChC;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;IAE/C,CAAC;IACD,UAAU;QACR,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,MAAM,CAAC,GAAW;QAEhB,MAAM,IAAI,GAAG;YACX,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,YAAY,EAAE,GAAG;YACjB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;QAEF,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAC1D,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;oBACvC,IAAI,CAAC,QAAQ,GAAG,oBAAoB,CAAC;oBACrC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;oBACvB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;oBACpB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;oBACtB,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;oBAE7B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;wBAChB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;wBAClB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;qBACxB;yBACI;wBACH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;wBACnE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;qBACtC;oBACD,IAAI,CAAC,UAAU,EAAE,CAAC;iBACnB;qBAAM;oBACL,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;iBAC/B;YAEH,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAC1D,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;oBACvC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBAC5B;qBAAM;oBACL,IAAI,CAAC,QAAQ,GAAG,sBAAsB,CAAC;iBACxC;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IACD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;CACF;;YAlNqB,qEAAY;4CAC7B,oDAAM,SAAC,wEAAe;YAA0C,6DAAa;;AA3BrE,sBAAsB;IANlC,+DAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,iIAA0B;QAC1B,8BAA8B;QAC9B,SAAS,EAAE,CAAC,6DAAa,CAAC;KAC3B,CAAC;IA4BG,6GAAM,CAAC,wEAAe,CAAC;GA3Bf,sBAAsB,CA4OlC;AA5OkC;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9d8C;AACG;AAElC;AACoB;AACmB;AACpC;AACV;AAC6B;AACzB;AAQ/C,IAAa,gBAAgB,GAA7B,MAAa,gBAAgB;IAsF3B,YAAoB,aAA4B,EAAS,MAAiB,EAAU,OAA4B,EAAU,QAAkB;QAAxH,kBAAa,GAAb,aAAa,CAAe;QAAS,WAAM,GAAN,MAAM,CAAW;QAAU,YAAO,GAAP,OAAO,CAAqB;QAAU,aAAQ,GAAR,QAAQ,CAAU;QArF5I,cAAS,GAAG,0DAAS,CAAC;QAOtB,cAAS,GAAG,KAAK,CAAC;QAClB,YAAO,GAAG,KAAK,CAAC;QAUhB,MAAC,GAAW,CAAC,CAAC;QACd,eAAU,GAAG,EAAE,CAAC;QAChB,kBAAa,GAAG,EAAE,CAAC;QAEnB,gBAAW,GAAG,EAAE,CAAC;QACjB,WAAM,GAAY,KAAK,CAAC;QACxB,WAAM,GAAG,EAAE,CAAC;QAEZ,UAAK,GAAG,IAAI,CAAC;QACb,kBAAa,GAAG,EAAE,CAAC;QAYnB,iBAAY,GAAG,EAAE,CAAC;QAIlB,gBAAW,GAAG,KAAK,CAAC;QACpB,iBAAY,GAAG,KAAK,CAAC;QAErB,eAAU,GAAG,EAAE,CAAC;QAChB,WAAM,GAAG,EAAE,CAAC;QACZ,UAAK,GAAG,EAAE,CAAC;QACX,gBAAW,GAAG,EAAE,CAAC;QACjB,aAAQ,GAAG,IAAI,CAAC;QAChB,iBAAY,GAAG,EAAE,CAAC;QAClB,cAAS,GAAG,EAAE,CAAC;QACf,eAAU,GAAG,EAAE,CAAC;QAChB,kBAAa,GAAG,KAAK,CAAC;QACtB,eAAU,GAAG,EAAE,CAAC;QAEhB,cAAS,GAAG,KAAK,CAAC;QAClB,kBAAa,GAAG,KAAK,CAAC;QACtB,kBAAa,GAAG,KAAK,CAAC;QAQtB,SAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAQlB,gBAAW,GAAG,IAAI,IAAI,EAAE,CAAC;QAIzB,kBAAa,GAAG,KAAK,CAAC;QAEtB,cAAS,GAAG,aAAa,CAAC;QAC1B,iBAAY,GAAG,CAAC,CAAC;QACjB,kBAAa,GAAG,KAAK,CAAC;QACtB,gBAAW,GAAG,IAAI,CAAC;QAEjB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAClE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACjD,uDAAuD;QAEvD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,SAAS,EAAE,CAAC;IAEnB,CAAC;IACD,QAAQ;QAGN,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,CAAC;QAC9F,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC1C;QAGD,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,qBAAqB;QACrB,UAAU,CAAC,GAAG,EAAE;YAGd,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC,EAAE,GAAG,CAAC,CAAC;QACR,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,EAAE,CAAC;QAGnB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAG5B,CAAC;IAED,WAAW;QACT,4BAA4B;QAC5B,qFAAqF;QACrF,mEAAmE;QACnE,4CAA4C;QAC5C,wEAAwE;IAC1E,CAAC;IAED,cAAc;QACZ,mDAAmD;QAEnD,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;QACvB,kCAAkC;QAClC,IAAI,IAAI,CAAC,YAAY,GAAG,EAAE,EAAE;YAC1B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,kCAAkC;SACnC;aAAM;YACL,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,iCAAiC;SAClC;IACH,CAAC;IACD,SAAS;QACP,0BAA0B;QAC1B,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,UAAU;QACR,+BAA+B;QAC/B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAGD,UAAU;QACR,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAEhE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;YAC3B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,IAAI,IAAI,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC;QAEvH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAC3D,mBAAmB;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACjD,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAC5C,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;YACvD,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;YACjD,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YAGtD,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,KAAK,IAAI,EAAE;gBACtC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;aAC7F;iBAAM;gBACL,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;aACjC;YAGD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;YACpC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAE9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;YACtC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;YACvC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YACnC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;YACpC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAEhC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAE9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YAEjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;SACxC;QAED,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,GAAG,UAAU,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,EAAE,gBAAgB,EAAE,0DAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QAEzR,kFAAkF;IACpF,CAAC;IACD,KAAK;QACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC;IAChC,CAAC;IACD,MAAM;QACJ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC;QAC/B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,WAAW;QACT,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACjE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACtD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW;QACT,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACnD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC7D,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YACxB,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,UAAU,EAAE;oBAC9E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;iBACnG;qBACI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,IAAI,EAAE;oBAC7E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;oBAC/I,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;iBAC3C;qBACI;oBACH,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;iBACzB;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAEhE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,WAAW;QAET,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YAClE,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;QAE/B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW;QACT,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAChE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CACxC,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CACL,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChH,CAAC,IAAI,CAAC,kBAAkB,KAAK,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC9H,CAAC,IAAI,CAAC,iBAAiB,KAAK,IAAI,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC5H,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1G,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CACnH,CAAC;QACJ,CAAC,CACF,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC;QAChC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;YAChC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;SAC5B;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;YACnC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACxC,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;aAC1C;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,aAAa,EAAE;gBAEtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aACzC;YACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC3B;aAAM;YACL,oCAAoC;YACpC,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC;YACpC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;aAC1C;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,IAAI,CAAC,aAAa;oBACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;YAED,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IACD,WAAW;QACT,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,WAAW;QACT,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QAErB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAGxB,sBAAsB;QACtB,uBAAuB;QACvB,2BAA2B;QAE3B,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACjE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;YAC3B,IAAI,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC;YACvC,4DAA4D;YAC5D,IAAI;YACJ,uBAAuB;YACvB,IAAI;YAEJ,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;gBACjC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;iBAEI;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC/D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAE3B,6GAA6G;gBAC7G,6GAA6G;gBAC7G,6BAA6B;gBAC7B,IAAI;gBACJ,SAAS;gBACT,6EAA6E;gBAC7E,6BAA6B;gBAC7B,IAAI;gBACJ,kEAAkE;gBAClE,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBACxB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;gBACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBACxC,IAAI,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE;oBAC1B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;iBACvB;gBAED,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;oBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;iBAC1C;gBACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;oBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;wBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;iBAC3C;aAEF;YACD,4BAA4B;YAC5B,IAAI,CAAC,IAAI,CAAC,WAAW;gBACnB,OAAO;YACT,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC/C,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;gBAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAEhD,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;wBAEhE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC3C;iBACF;gBACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;gBACzD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;gBAE1C,gCAAgC;gBAChC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,iBAAiB;oBAC1C,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,eAAe;oBAE9C,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;iBAChC,CAAC,CAAC;aACJ;YACD,sBAAsB;YAEtB,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;gBAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aAChC;YAAA,CAAC;QAIJ,CAAC,CAAC,CAAC;QACH,2BAA2B;IAC7B,CAAC;IAGD,IAAI,CAAC,KAA4B,EAAE,QAAgB;QACjD,oBAAoB;QACpB,IAAI,KAAK,CAAC,iBAAiB,KAAK,KAAK,CAAC,SAAS,EAAE;YAC/C,8EAAe,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;SAEhF;aAAM;YACL,gFAAiB,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAC5C,KAAK,CAAC,SAAS,CAAC,IAAI,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,YAAY,CAAC,CAAC;YACtB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;SAEnD;QACD,kBAAkB;IACpB,CAAC;IAGD,YAAY,CAAC,QAAa,EAAE,QAAgB;QAC1C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvC,MAAM,IAAI,GAAG;YACX,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;YAChC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW;YACpC,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,kBAAkB;YAClD,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,QAAQ,EAAE,QAAQ;YAClB,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;YAChC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc;YAC1C,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM;YAC1B,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY;SACvC,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACrD,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBACpF,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;oBACvC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;oBACzB,MAAM,IAAI,GAAG;wBACX,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,WAAW,EAAE,IAAI,CAAC,SAAS;wBAC3B,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,kBAAkB;wBAClD,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW;wBACpC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc;wBAC1C,SAAS,EAAE,IAAI,CAAC,WAAW;qBAC5B;oBACD,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;wBAC7E,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;wBAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;wBACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;wBACrB,IAAI,CAAC,WAAW,EAAE,CAAC;oBACrB,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;aACJ;iBACI;aAEJ;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IACD,IAAI,CAAC,QAAQ;QACX,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,0BAA0B;QACtD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,SAAS;QACP,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QAErB,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACxD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;YAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;YACnD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;gBAEhE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;gBACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;gBAE3B,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBACjE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;oBACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;oBAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAC/C,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;wBAC/C,IAAI,SAAS,GAAG,EAAE,CAAC;wBACnB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;wBAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gCAChD,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE;oCACjC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE;wCAClE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;wCACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4CACzC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE;gDAChD,MAAM,IAAI,GAAG;oDACX,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;oDACxC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW;oDAC5C,kBAAkB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,kBAAkB;oDAC1D,SAAS,EAAE,IAAI,CAAC,WAAW;oDAC3B,SAAS,EAAE,IAAI,CAAC,WAAW;oDAC3B,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,eAAe;oDAC5C,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,cAAc;oDAClD,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM;oDAClC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY;iDAC/C,CAAC;gDACF,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gDACvD,CAAC,CAAC,CAAC;gDACH,MAAM;6CACP;yCACF;qCACF;iCACF;6BACF;yBACF;qBACF;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IACD,UAAU,CAAC,GAAW;QACpB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;YACzD,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,GAAG,GAAG,KAAK,GAAG,KAAK;SAC1B,CAAC,CAAC;QACH,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACzD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrD,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC;QAElD,IAAI,GAAG,KAAK,MAAM,EAAE;YAElB,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC;YACjC,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC3D,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;YACzE,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC3D,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACjD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAE7D,IAAI,IAAI,CAAC,cAAc;gBACrB,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;;gBAC9D,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC;SAExD;QACD,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;gBACnD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;aACtD;YACD,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;QAED,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;gBAC1B,uBAAuB;aACxB;iBACI;gBACH,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;gBACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;gBACrB,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;YAED,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;gBAChC,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,IAAI,GAAG,KAAK,KAAK,EAAE;oBACjB,SAAS,GAAG,oBAAoB,CAAC;iBAClC;qBACI;oBACH,SAAS,GAAG,sBAAsB,CAAC;iBACpC;gBACD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;oBAC5D,UAAU,EAAE,yBAAyB;oBACrC,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,KAAK;iBAChC,CAAC,CAAC;gBACH,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,CAAC,EAAE,GAAG,CAAC,CAAC;gBACR,YAAY,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBAC7C,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;oBACtB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;oBAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;oBACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;oBACrB,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;wBAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;qBACnB;yBACI;wBACH,IAAI,CAAC,WAAW,EAAE,CAAC;qBACpB;gBACH,CAAC,CAAC,CAAC;aACJ;QAEH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,WAAW,CAAC,OAAO;QAEjB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;QACrD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IACD,aAAa,CAAC,GAAW;QACvB,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACpF,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;YACzB,MAAM,IAAI,GAAG;gBACX,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,WAAW,EAAE,IAAI,CAAC,SAAS;gBAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,SAAS,EAAE,IAAI,CAAC,WAAW;aAC5B;YACD,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACpF,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC7E,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;IACD,QAAQ,CAAC,OAAO;QACd,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iFAAsB,EAAE;YACzD,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO;SAC/B,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACxC,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QACnE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrD,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC3E,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC3E,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QAC5D,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAC1D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QAC5D,SAAS,CAAC,iBAAiB,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAClE,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAC1D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QAChE,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;QAC5E,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;QAC3E,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QACpD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACxD,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QAC5D,SAAS,CAAC,iBAAiB,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QACtD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QAC9D,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;QAC9E,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAC1D,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAC1D,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAC1D,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QAC9D,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;gBACpF,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;gBACvC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;YAC3B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IACD,eAAe,CAAC,SAAS;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,SAAS,CAAC,QAAQ,EAAE,EAAE;gBACtE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9C;SACF;IACH,CAAC;IAED,UAAU,CAAC,OAAO;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;YACzD,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,gDAAgD,GAAG,OAAO,CAAC,WAAW,GAAG,MAAM,GAAG,IAAI;SAC7F,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBACvF,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;oBACvC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;oBACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAC9C,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE;4BAChG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;yBAC5C;qBACF;oBACD,MAAM,IAAI,GAAG;wBACX,SAAS,EAAE,OAAO,CAAC,SAAS;wBAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;wBAC5B,WAAW,EAAE,IAAI,CAAC,aAAa;wBAC/B,WAAW,EAAE,OAAO,CAAC,WAAW;wBAChC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;wBAC9C,SAAS,EAAE,IAAI,CAAC,WAAW;wBAC3B,SAAS,EAAE,IAAI,CAAC,WAAW;wBAC3B,QAAQ,EAAE,GAAG;wBACb,cAAc,EAAE,OAAO,CAAC,cAAc;qBACvC;oBAED,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;wBACxE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;wBAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;wBACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;wBACrB,IAAI,CAAC,WAAW,EAAE,CAAC;wBACnB,IAAI,IAAI,CAAC,EAAE,EAAE;4BACX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;4BACtB,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;yBACtC;wBACD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;wBAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;wBACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;wBACrB,IAAI,CAAC,WAAW,EAAE,CAAC;wBAEnB,MAAM,KAAK,GAAG;4BACZ,SAAS,EAAE,OAAO,CAAC,SAAS;4BAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;4BAChC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;4BAC9C,SAAS,EAAE,IAAI,CAAC,WAAW;4BAC3B,SAAS,EAAE,IAAI,CAAC,WAAW;4BAC3B,QAAQ,EAAE,GAAG;4BACb,SAAS,EAAE,IAAI,CAAC,SAAS;4BACzB,cAAc,EAAE,OAAO,CAAC,cAAc;4BACtC,MAAM,EAAE,OAAO,CAAC,MAAM;4BACtB,YAAY,EAAE,OAAO,CAAC,YAAY;yBACnC,CAAC;wBAEF,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;4BACtD,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;gCACvC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gCAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;gCACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;gCACrB,IAAI,CAAC,WAAW,EAAE,CAAC;6BACpB;iCAAM;6BACN;wBACH,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QAEN,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SACvC;IACH,CAAC;IACD,aAAa,CAAC,OAAO;QACnB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;YACzD,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,2CAA2C,GAAG,OAAO,CAAC,WAAW,GAAG,MAAM,GAAG,IAAI;SACxF,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBACjE,IAAI,IAAI,CAAC,EAAE,EAAE;wBACX,IAAI,CAAC,QAAQ,EAAE,CAAC;wBAChB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;wBACtB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;qBACzC;oBACD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;oBAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;oBACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;oBACrB,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,SAAS,CAAC,OAAO;QACf,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC,EAAE;YAC3B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;SACtC;aACI;YACH,IAAI,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,SAAS,EAAE;gBACzC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;aACtB;iBACI;gBACH,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;aACtC;SACF;QACD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACpF,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;YACzB,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,UAAU,EAAE;oBAC9E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;iBACpH;qBACI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,IAAI,EAAE;oBAC7E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;iBACzF;qBACI;oBACH,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;oBACtE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;iBACvB;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;;YAvzBoC,6DAAa;YAAiB,kEAAS;YAAmB,kEAAmB;YAAoB,wDAAQ;;AALpG;IAAvC,+DAAS,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;gDAAoB;AAjFhD,gBAAgB;IAN5B,+DAAS,CAAC;QACT,QAAQ,EAAE,aAAa;QACvB,uJAAuC;QACvC,0CAA0C;QAC1C,SAAS,EAAE,CAAC,6DAAa,EAAE,wDAAQ,CAAC;KACrC,CAAC;GACW,gBAAgB,CA64B5B;AA74B4B;AAo5B7B,IAAa,sBAAsB,GAAnC,MAAa,sBAAsB;IAuBjC,YACS,SAA+C,EACtB,IAAS,EAAS,aAA4B,EAAU,QAAkB;QADnG,cAAS,GAAT,SAAS,CAAsC;QACtB,SAAI,GAAJ,IAAI,CAAK;QAAS,kBAAa,GAAb,aAAa,CAAe;QAAU,aAAQ,GAAR,QAAQ,CAAU;QAxB5G,SAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,cAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,cAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,YAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QAKrB,cAAS,GAAG,KAAK,CAAC;QAOlB,mBAAc,GAAG,IAAI,IAAI,EAAE,CAAC;QAC5B,gBAAW,GAAG,IAAI,IAAI,EAAE,CAAC;QAKzB,gBAAW,GAAG,KAAK,CAAC;QAIlB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,QAAQ;IACR,CAAC;IACD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IACD,GAAG,CAAC,IAAY,EAAE,KAAoC;QACpD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,UAAU,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC;QAC3K,IAAI,CAAC,cAAc,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;IAED,WAAW;QACT,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,SAAS,GAAG,CAAC,CAAC;QACpB,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YAC/D,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;YACzJ,IAAI,CAAC,QAAQ,GAAG,kCAAkC,CAAC;YACnD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;aACxB;YACD,KAAK,EAAE,CAAC;SACT;QACD,IAAI,KAAK,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,EAAE;YAClC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;gBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACxB;iBAAM;gBACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACxB;SACF;aAAM;SACN;IACH,CAAC;IACD,UAAU;QACR,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,MAAM,CAAC,GAAW;QAChB,MAAM,IAAI,GAAG;YACX,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;QAEF,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAClG,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC;QAC1B,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE;YAChC,IAAI,IAAI,CAAC,cAAc,GAAG,KAAK,EAAE;gBAC/B,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC;gBAC/B,OAAO;aACR;SACF;QACD,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACrD,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;oBACvC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;oBACxB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBAC5B;qBAAM;oBACL,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;iBAC/B;YACH,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACrD,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;oBACvC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;oBACxB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBAC5B;qBAAM;oBACL,IAAI,CAAC,QAAQ,GAAG,sBAAsB,CAAC;iBACxC;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IACD,aAAa,CAAC,GAAW;QACvB,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjF,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAEtC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACpF,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;YACzB,MAAM,IAAI,GAAG;gBACX,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,WAAW,EAAE,IAAI,CAAC,SAAS;gBAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,SAAS,EAAE,IAAI,CAAC,WAAW;aAC5B;YACD,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAClF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IACD,SAAS,CAAC,EAAU;QAClB,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACxE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,YAAY,CAAC,KAAK;QAChB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;IAC9B,CAAC;CACF;;YA7HqB,qEAAY;4CAC7B,oDAAM,SAAC,wEAAe;YAA0C,6DAAa;YAAoB,wDAAQ;;AAzBjG,sBAAsB;IANlC,+DAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,iIAA0B;QAC1B,6BAA6B;QAC7B,SAAS,EAAE,CAAC,6DAAa,EAAE,wDAAQ,CAAC;KACrC,CAAC;IA0BG,6GAAM,CAAC,wEAAe,CAAC;GAzBf,sBAAsB,CAqJlC;AArJkC;;;;;;;;;;;;;;;;;;;;;ACr6Be;AACA;AACG;AACN;AAO/C,IAAa,0BAA0B,GAAvC,MAAa,0BAA0B;IAyBrC,YAAmB,aAA4B,EAAU,OAA4B;QAAlE,kBAAa,GAAb,aAAa,CAAe;QAAU,YAAO,GAAP,OAAO,CAAqB;QArBrF,WAAM,GAAY,KAAK,CAAC;QACxB,WAAM,GAAG,EAAE,CAAC;QAEZ,UAAK,GAAG,IAAI,CAAC;QACb,MAAC,GAAW,CAAC,CAAC;QACd,eAAU,GAAG,EAAE,CAAC;QAChB,kBAAa,GAAG,EAAE,CAAC;QAEnB,gBAAW,GAAG,EAAE,CAAC;QACjB,kBAAa,GAAG,KAAK,CAAC;QACtB,eAAU,GAAG,EAAE,CAAC;QAEhB,cAAS,GAAG,KAAK,CAAC;QAClB,kBAAa,GAAG,KAAK,CAAC;QAEtB,eAAU,GAAG,IAAI,IAAI,EAAE,CAAC;QAOtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;SAEvC;aACI;YACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SAC/C;IACH,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAC7D,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACzE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC;YACnC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;YACvE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;YAChD,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE;gBACzC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;iBACI;gBACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAE3B,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;oBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;iBAC1C;gBACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACxF,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;oBACjC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;wBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;iBAC3C;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,UAAU;QACR,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC;QAC3C,IAAI,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CACvD,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CACL,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChH,CAAC,IAAI,CAAC,kBAAkB,KAAK,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC9H,CAAC,IAAI,CAAC,iBAAiB,KAAK,IAAI,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC5H,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1G,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CACnH,CAAC;QACJ,CAAC,CAEF,CAAC;QACF,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,IAAI,CAAC,EAAE;YACxC,sBAAsB;YACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC;YAC3C,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;YAChD,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;aAC1C;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,aAAa,EAAE;gBAEtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aACzC;YACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;YAC3C,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;aAC1C;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,IAAI,CAAC,aAAa;oBACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;YAED,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IAGD,IAAI,CAAC,QAAQ;QACX,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,0BAA0B;QACtD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,YAAY;QACV,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAGnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxD,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACvD,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAE7D,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;YACxE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;YAClE,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YAGvE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;YAEvC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;YACtC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAEhC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YAEnC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;YACpC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAE/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;YAEvC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;YACpC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;SAC/B;QACD,IAAI,IAAS,CAAC;QACd,IAAI,GAAG,EAAE,CAAC;QACV;;;;;;;;SAQC;QACD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,GAAG,sBAAsB,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,qBAAqB,EAAE,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,4BAA4B,EAAE,0DAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IACvT,CAAC;CAEF;;YAvLmC,6DAAa;YAAmB,kEAAmB;;AAzB1E,0BAA0B;IALtC,+DAAS,CAAC;QACT,QAAQ,EAAE,wBAAwB;QAClC,wLAAkD;KAEnD,CAAC;GACW,0BAA0B,CAgNtC;AAhNsC;;;;;;;;;;;;ACVvC,gCAAgC,uBAAuB,GAAG,aAAa,wBAAwB,GAAG,oBAAoB,kBAAkB,sBAAsB,GAAG,YAAY,oBAAoB,GAAG,mBAAmB,2CAA2C,GAAG,WAAW,gBAAgB,uBAAuB,8BAA8B,GAAG,YAAY,uBAAuB,uBAAuB,GAAG,QAAQ,iBAAiB,8BAA8B,iBAAiB,oBAAoB,GAAG,QAAQ,iBAAiB,oBAAoB,GAAG,mBAAmB,8BAA8B,qBAAqB,0BAA0B,GAAG,iBAAiB,wBAAwB,GAAG,oBAAoB,qBAAqB,GAAG,mBAAmB,wBAAwB,GAAG,iBAAiB,uBAAuB,eAAe,GAAG,kCAAkC,oBAAoB,GAAG,eAAe,gBAAgB,GAAG,qBAAqB,+BAA+B,GAAG,wBAAwB,uCAAuC,GAAG,6CAA6C,++H;;;;;;;;;;;;;;;;;;;;;;ACAthC;AACJ;AACO;AACK;AAEG;AACK;AAOlE,IAAa,gBAAgB,GAA7B,MAAa,gBAAgB;IAkB3B,YAAoB,OAA4B,EACtC,cAA8B,EAC/B,MAAiB;QAFN,YAAO,GAAP,OAAO,CAAqB;QACtC,mBAAc,GAAd,cAAc,CAAgB;QAC/B,WAAM,GAAN,MAAM,CAAW;QAnB1B,aAAQ,GAAW,EAAE,CAAC;QAStB,sBAAiB,GAAY,KAAK;QAElC,yBAAoB,GAAa,CAAC,8DAAe,CAAC,SAAS,EAAE,8DAAe,CAAC,OAAO,CAAC,CAAC;QASpF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAClE,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,CAAC;QAChG,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC1C;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;QAC9C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAC;QAEhE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACxF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,YAAY,CAAC,CAAC;QACnF,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC/D,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;gBAChG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC;gBAClH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;gBACnG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;aAChK;YACD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC;QACxE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,QAAQ,GAAG,kCAAkC,CAAC;YACnD,OAAO;SACR;QACD,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC/J,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAClE,IAAI,IAAI,CAAC,IAAI,EAAE;gBACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qEAAsB,CAAC,CAAC;aAC1C;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,eAAe;QACzB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC5J,CAAC;IAED,aAAa,CAAC,iBAAiB;QAC7B,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC7C,CAAC;IAED,cAAc,CAAC,eAAe;QAC5B,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;IAC1C,CAAC;CACF;;YA3D8B,kEAAmB;YACtB,wEAAc;YACvB,2DAAS;;AApBf,gBAAgB;IAL5B,+DAAS,CAAC;QACT,QAAQ,EAAE,aAAa;QACvB,uJAAuC;;KAExC,CAAC;GACW,gBAAgB,CA6E5B;AA7E4B;;;;;;;;;;;;;ACG7B;AAAA;AAAA,IAAY,eAIX;AAJD,WAAY,eAAe;IACvB,gEAA6C;IAC7C,2CAAwB;IACxB,uCAAoB;AACxB,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B;;;;;;;;;;;;ACpBD,yBAAyB,gBAAgB,uBAAuB,GAAG,YAAY,uBAAuB,uBAAuB,GAAG,QAAQ,iBAAiB,8BAA8B,iBAAiB,oBAAoB,GAAG,QAAQ,iBAAiB,oBAAoB,GAAG,WAAW,8BAA8B,GAAG,mBAAmB,8BAA8B,qBAAqB,0BAA0B,GAAG,iBAAiB,wBAAwB,GAAG,oBAAoB,qBAAqB,GAAG,mBAAmB,wBAAwB,GAAG,SAAS,oBAAoB,GAAG,iBAAiB,eAAe,GAAG,iBAAiB,uBAAuB,eAAe,GAAG,kCAAkC,oBAAoB,GAAG,6CAA6C,2/F;;;;;;;;;;;;;;;;;;;ACCrtB;AACA;AACG;AAQrD,IAAa,6BAA6B,GAA1C,MAAa,6BAA6B;IA2BxC,YAAoB,aAA4B,EAAU,OAA4B;QAAlE,kBAAa,GAAb,aAAa,CAAe;QAAU,YAAO,GAAP,OAAO,CAAqB;QArBtF,cAAS,GAAG,EAAE,CAAC;QACf,UAAK,GAAG,EAAE,CAAC;QACX,WAAM,GAAY,KAAK,CAAC;QACxB,WAAM,GAAG,EAAE,CAAC;QAEZ,UAAK,GAAG,IAAI,CAAC;QACb,MAAC,GAAW,CAAC,CAAC;QACd,eAAU,GAAG,EAAE,CAAC;QAChB,kBAAa,GAAG,EAAE,CAAC;QAEnB,gBAAW,GAAG,EAAE,CAAC;QACjB,kBAAa,GAAG,KAAK,CAAC;QAEtB,eAAU,GAAG,EAAE,CAAC;QAEhB,cAAS,GAAG,KAAK,CAAC;QAClB,kBAAa,GAAG,KAAK,CAAC;QAEtB,eAAU,GAAG,IAAI,IAAI,EAAE,CAAC;QAKtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAEpE,CAAC;IAED,QAAQ;QACN,sBAAsB;QACtB,uBAAuB;QACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAE3B,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACvE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACjD,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;gBAClC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;aAC5B;iBACI;gBACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;gBAChE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;gBACzC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;oBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;iBAC1C;gBACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;oBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;wBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;iBAC3C;aACF;QACH,CAAC,CAAC,CAAC;IAGL,CAAC;IAED,IAAI,CAAC,QAAQ;QACX,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,0BAA0B;QACtD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,UAAU;QACR,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;QAEpC,IAAI,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAC7C,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CACL,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzG,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAC5G,CAAC;QACJ,CAAC,CAEF,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC;QACrC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE;YACjC,sBAAsB;YACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;IACH,CAAC;CAGF;;YA9EoC,6DAAa;YAAmB,kEAAmB;;AA3B3E,6BAA6B;IALzC,+DAAS,CAAC;QACT,QAAQ,EAAE,4BAA4B;QACtC,oMAAsD;;KAEvD,CAAC;GACW,6BAA6B,CAyGzC;AAzGyC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACX+B;AACvB;AAC2B;AAGpD;AACA;AAC4B;AACb;AAEmD;AACxB;AACK;AACzB;AAS/C,IAAa,uBAAuB,GAApC,MAAa,uBAAuB;IA0DlC,YAAoB,aAA4B,EACtC,iBAAoC,EAAU,MAAiB,EAAU,OAA4B;QAD3F,kBAAa,GAAb,aAAa,CAAe;QACtC,sBAAiB,GAAjB,iBAAiB,CAAmB;QAAU,WAAM,GAAN,MAAM,CAAW;QAAU,YAAO,GAAP,OAAO,CAAqB;QAzD/G,mBAAc,GAAsB,EAAE,CAAC;QAEvC,mBAAc,GAAa,CAAC,sGAAiB,CAAC,UAAU,EAAE,sGAAiB,CAAC,IAAI,CAAC,CAAC;QAElF,eAAU,GAAY,KAAK,CAAC;QAK5B,cAAS,GAAG,EAAE,CAAC;QACf,UAAK,GAAG,EAAE,CAAC;QACX,SAAI,GAAG,EAAE,CAAC;QACV,gBAAW,GAAG,EAAE,CAAC;QACjB,iBAAY,GAAG,EAAE,CAAC;QAClB,eAAU,GAAG,EAAE,CAAC;QAChB,eAAU,GAAG,CAAC,CAAC;QACf,cAAS,GAAG,IAAI,CAAC;QAEjB,kBAAa,GAAG,KAAK,CAAC;QAItB,eAAU,GAAG,EAAE,CAAC;QAEhB,eAAU,GAAG,EAAE,CAAC;QAGhB,iBAAY,GAAG,IAAI,CAAC;QACpB,MAAC,GAAW,CAAC,CAAC;QACd,eAAU,GAAG,CAAC,CAAC;QACf,kBAAa,GAAG,EAAE,CAAC;QAEnB,gBAAW,GAAG,CAAC,CAAC;QAChB,mBAAc,GAAG,KAAK,CAAC;QACvB,eAAU,GAAG,EAAE,CAAC;QAEhB,cAAS,GAAG,KAAK,CAAC;QAClB,eAAU,GAAG,EAAE,CAAC;QAOhB,aAAQ,GAAG,EAAE,CAAC;QAGd,eAAU,GAAG,IAAI,IAAI,EAAE,CAAC;QAGxB,WAAM,GAAY,KAAK,CAAC;QACxB,WAAM,GAAG,EAAE,CAAC;QAEZ,UAAK,GAAG,IAAI,CAAC;QAEb,cAAS,GAAW,2DAAS,CAAC;QAG5B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC9D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAEhE,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;SAEvC;aACI;YACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SAC/C;IAEH,CAAC;IAID,QAAQ;QAGN,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;YACvC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC;SACrC;aACI;YACH,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SACjB;QAED,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,oFAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,oFAAkB,CAAC,IAAI,CAAC,EAAE;gBAC1J,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;aAC/D;iBACI;gBACH,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;oBAE1B,IAAI,CAAC,gBAAgB,CAAC,sGAAiB,CAAC,UAAU,CAAC;iBACpD;;oBAEC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;aAEjC;SAEF;aACI;YACH,IAAI,CAAC,IAAI,CAAC,gBAAgB;gBAExB,IAAI,CAAC,gBAAgB,CAAC,sGAAiB,CAAC,UAAU,CAAC;;gBAGnD,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;SACjC;QAED,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAE7C,CAAC;IAED,UAAU,CAAC,KAAK;QACd,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC;QAC/D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;SACnC;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IACD,gBAAgB,CAAC,aAAqB;QACpC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,kBAAkB,GAAG,aAAa,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,aAAa,KAAK,sGAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAEhF,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAEzD,CAAC;IAED,gBAAgB,CAAC,oBAAoB;QACnC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;QAClD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,oBAAoB,CAAC,CAAC,cAAc,CAAC;IAClH,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC7E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC;YAChC,IAAI,IAAI,CAAC,eAAe,EAAE;gBAExB,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,oFAAkB,CAAC,UAAU,EAAE;oBAC9E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;iBACjH;qBACI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,oFAAkB,CAAC,IAAI,EAAE;oBAC7E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;oBAChH,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;iBAChE;aAEF;YACD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACzL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,sBAAsB,CAAC,oBAAoB;QACjD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACrE,IAAI,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;YAEhC,IAAI,IAAI,CAAC,eAAe,IAAI,eAAe,EAAE;gBAC3C,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,oFAAkB,CAAC,UAAU,EAAE;oBAC9E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;iBACrG;qBACI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,oFAAkB,CAAC,IAAI,EAAE;oBAC7E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;oBACjJ,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;oBAC1D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;iBACvC;qBACI;oBACH,IAAI,CAAC,oBAAoB,EAAE;wBACzB,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;wBAC9B,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;qBACjC;yBACI,IAAI,oBAAoB,IAAI,CAAC,EAAE;wBAClC,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;qBACjC;yBACI;wBACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,oBAAoB,CAAC,CAAC;qBACxF;iBAEF;aACF;iBACI;gBACH,IAAI,oBAAoB,IAAI,CAAC;oBAC3B,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;;oBAEhC,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,oBAAoB,CAAC,CAAC;aAC5F;YAED,IAAI,IAAI,CAAC,gBAAgB,IAAI,SAAS,EAAE;gBACtC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC;aACrC;iBACI,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,KAAK,oFAAkB,CAAC,IAAI,EAAE;gBACtG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;aAC3B;iBACI;gBACH,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;aACjB;YAED,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;gBAChE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;gBAChD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;oBACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClJ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;iBACzE;gBACD,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,CAAC,CAAC,CAAC;QAEL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,QAAQ;QACX,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,sBAAsB;QAClD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAGD,eAAe;QACb,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QAErB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,qBAAqB;QACrB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAChE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAEhD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;gBAClB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;iBAClJ;gBACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;aACpH;YAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YAE1C,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;gBACjF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;gBACxD,IAAI,IAAI,CAAC,UAAU,EAAE;oBACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACpD,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,CAAC,kBAAkB,KAAK,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;wBAEtI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;4BACnB,mCAAmC;4BAEnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BAC1B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;4BACzE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;4BAC5E,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;gCACvC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;6BAChC;4BACD,4BAA4B;4BAC5B,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;4BAExB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gCACd,IAAI,EAAE,IAAI;gCACV,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,oBAAoB;gCACnD,KAAK,EAAE,IAAI,CAAC,MAAM;6BACnB,CAAC,CAAC;4BAEH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,IAAI;gCAElC,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;4BACjC,CAAC,CAAC,CAAC;yBACJ;qBAGF;iBACF;qBAAM;oBACL,IAAI,CAAC,UAAU,GAAG,mBAAmB,CAAC;oBACtC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;wBAC3B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;wBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;qBAC5B;yBACI;wBACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;wBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;qBAC3B;oBACD,OAAO;iBACR;gBACD,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;oBAChC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;oBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;oBAC3B,OAAO;iBACR;qBACI;oBACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;iBAE3B;gBACD,IAAI,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAClD,IAAI,MAAM,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;gBAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAEzC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAE7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrC,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAClC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;iBAC7B;gBAED,IAAI,GAAG,GAAG;oBACR,mBAAmB,EAAE,MAAM;oBAC3B,uBAAuB,EAAE,MAAM;iBAChC,CAAC;gBAEF,IAAI,KAAK,GAAG,2CAAW,CAAC;oBACtB,MAAM,EAAE,gBAAgB;oBACxB,IAAI,EAAE;wBACJ,IAAI,EAAE,GAAG;wBACT,IAAI,EAAE;4BAEJ,uBAAuB,EAAE,IAAI;yBAC9B;wBACD,IAAI,EAAE,KAAK;wBACX,KAAK,EAAE;4BAEL,uBAAuB,EAAE,MAAM;yBAEhC,EAAE,MAAM,EAAE;4BACT,CAAC,oBAAoB,EAAE,uBAAuB,CAAC;yBAChD;qBAGF;oBAED,KAAK,EAAE;wBACL,IAAI,EAAE,wBAAwB;wBAC9B,OAAO,EAAE;4BACP,GAAG,EAAE,EAAE;4BACP,KAAK,EAAE,EAAE;4BACT,MAAM,EAAE,EAAE;4BACV,IAAI,EAAE,EAAE;yBACT;qBACF;oBACD,KAAK,EAAE;wBACL,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;qBAChC;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,IAAI;wBACV,QAAQ,EAAE,OAAO;qBAElB;oBAED,IAAI,EAAE;wBACJ,CAAC,EAAE;4BACD,IAAI,EAAE,UAAU;4BAChB,qCAAqC;4BACrC,WAAW;4BACX,oCAAoC;4BACpC,6BAA6B;4BAC7B,KAAK;4BACL,UAAU,EAAE,IAAI,CAAC,UAAU;4BAC3B,IAAI,EAAE;gCACJ,MAAM,EAAE,EAAE;gCACV,SAAS,EAAE,KAAK;6BAEjB;4BAGD,MAAM,EAAE,GAAG;yBAEZ;wBACD,CAAC,EAAE;4BACD,UAAU;4BACV,KAAK,EAAE,oBAAoB;4BAC3B,IAAI,EAAE;gCACJ,MAAM,EAAE,yCAAS,CAAC,GAAG,CAAC;gCACtB,MAAM,EAAE,wCAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gCACrD,2CAA2C;6BAC5C;yBACF;wBACD,EAAE,EAAE;4BACF,IAAI,EAAE,IAAI;4BACV,KAAK,EAAE,uBAAuB;4BAC9B,GAAG,EAAE,CAAC;4BACN,GAAG,EAAE,CAAC;4BACN,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;4BAC9B,IAAI,EAAE;gCACJ,MAAM,EAAE,yCAAS,CAAC,MAAM,CAAC;6BAC1B;yBAEF;qBAEF;iBAEF,CAAC,CAAC;gBACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;gBACvC,IAAI,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC;gBACrC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;oBAChC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;iBAC7B;qBACI;oBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;oBAE9D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;oBAC3B,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;wBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;wBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;qBAC1C;oBACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;wBAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACxF,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;wBACjC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;4BAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;qBAC3C;iBACF;YAEH,CAAC,CAAC,CAAC;QAEL,CAAC,CAAC,CAAC;IACL,CAAC;IACD,kBAAkB;QAEhB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAChE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAElD,CAAC,CAAC,CAAC;IACL,CAAC;IACD,UAAU;QACR,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC;QAE7C,IAAI,yBAAyB,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAC/D,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CACL,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChH,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClH,CAAC,IAAI,CAAC,oBAAoB,KAAK,IAAI,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClI,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxG,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChH,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC/G,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClH,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;mBAE7G,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAClH,CAAC,CAEF,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,yBAAyB,CAAC;QAC5C,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE;YAC/B,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;YAClC,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SAExB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC;YAC7C,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC;YAClD,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;aACzC;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,aAAa,EAAE;gBAEtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aACzC;YACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YAEL,IAAI,CAAC,QAAQ,GAAG,yBAAyB,CAAC,MAAM,CAAC;YACjD,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;aACzC;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,IAAI,CAAC,aAAa;oBACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;YAED,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IAGD,YAAY;QACV,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAE1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,kBAAkB,KAAK,sGAAiB,CAAC,UAAU,EAAE;gBAC5D,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;aAC9D;YACD,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC9C,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YACpD,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YAEtD,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;YAC/D,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACzD,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAC7D,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YAElD,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YACtD,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAEpD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YACnC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAE7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAG3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YAEjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;YAEzC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAEhC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAGhC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YAClC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACxB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAE7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAG3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;YACvC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAEhC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;SAG/B;QAED,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAEtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,6CAA6C;YAC7C,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACxC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACxC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SAC3B;QAED,IAAI,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,kCAAkC,CAAC,CAAC;QACpI,IAAI,gBAAgB,GAAG,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAEpH,IAAI,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC1C,MAAM,CAAC,OAAO,CAAC,UAAU,OAAO;YAC9B,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC;QAC/C,CAAC,CAAC;QAEF,IAAI,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;QAC5C,eAAe,CAAC,OAAO,CAAC,UAAU,OAAO;YACvC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC;QAC5C,CAAC,CAAC;QAEF,IAAI,KAAK,GAAG,EAAE,CAAC;QAEf,oDAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,CAAE;aACzD,IAAI,CAAC,UAAU,OAAO;YACrB,IAAI,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;YACtB,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC;YAElB,KAAK,GAAG,OAAO,CAAC;QAGlB,CAAC,CAAC,CAAC;QACL,UAAU,CAAC,GAAG,EAAE;QAEhB,CAAC,EAAE,GAAG,CAAC,CAAC;QAGR,IAAI,IAAS,CAAC;QACd,IAAI,IAAI,CAAC,kBAAkB,IAAI,sGAAiB,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,EAAE;YAClF,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC;SAC5B;aAAM,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,IAAI,sGAAiB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC3G,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;SACtB;aAAM;YACL,IAAI,GAAG,kBAAkB,CAAC;SAC3B;QACD,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,GAAG,8BAA8B,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,6BAA6B,EAAE,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,EAAE,oCAAoC,EAAE,2DAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QACxb,CAAC,EAAE,IAAI,CAAC,CAAC;IAEX,CAAC;IAED,WAAW,CAAC,KAAK;QACf,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG;YAC9C,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,6CAA6C;QAC7C,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,EAAE,MAAM;YAChC,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IAEf,CAAC;IACD,OAAO,CAAC,IAAI;QAEV,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE;YAClD,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;SACrB,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;QAE3C,CAAC,CAAC,CAAC;IAEL,CAAC;CACF;;YAxlBoC,6DAAa;YACnB,8EAAiB;YAAkB,2DAAS;YAAmB,kEAAmB;;AA3DpG,uBAAuB;IAPnC,+DAAS,CAAC;QACT,QAAQ,EAAE,qBAAqB;QAC/B,+KAA+C;QAC/C,mDAAmD;QACnD,SAAS,EAAE,CAAC,6DAAa,CAAC;QAC1B,MAAM,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,kBAAkB,CAAC;KAC1D,CAAC;GACW,uBAAuB,CAkpBnC;AAlpBmC;AA0pBpC,IAAa,eAAe,GAA5B,MAAa,eAAe;IAG1B,YACS,SAAwC,EACf,UAAe;QADxC,cAAS,GAAT,SAAS,CAA+B;QACf,eAAU,GAAV,UAAU,CAAK;IAAI,CAAC;IAEtD,QAAQ;QACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IACnC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CAEF;;YAXqB,8DAAY;4CAC7B,oDAAM,SAAC,iEAAe;;AALd,eAAe;IAL3B,+DAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,yIAA4B;KAE7B,CAAC;IAMG,6GAAM,CAAC,iEAAe,CAAC;GALf,eAAe,CAe3B;AAf2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChrB8B;AACR;AAEG;AACwB;AACpD;AAEe;AACgC;AACzB;AAU/C,IAAa,yBAAyB,GAAtC,MAAa,yBAAyB;IA2CpC,YAAoB,MAAqB,EAAU,OAA4B,EAAU,MAAiB;QAAtF,WAAM,GAAN,MAAM,CAAe;QAAU,YAAO,GAAP,OAAO,CAAqB;QAAU,WAAM,GAAN,MAAM,CAAW;QA1C1G,cAAS,GAAW,0DAAS,CAAC;QAG9B,eAAU,GAAW,EAAE,CAAC;QAIxB,eAAU,GAAG,CAAC,CAAC;QACf,cAAS,GAAG,EAAE,CAAC;QACf,UAAK,GAAG,EAAE,CAAC;QACX,SAAI,GAAG,EAAE,CAAC;QACV,eAAU,GAAG,EAAE,CAAC;QAChB,eAAU,GAAG,EAAE,CAAC;QAChB,eAAU,GAAG,EAAE,CAAC;QAChB,cAAS,GAAG,KAAK,CAAC;QAClB,kBAAa,GAAG,KAAK,CAAC;QACtB,MAAC,GAAW,CAAC,CAAC;QACd,eAAU,GAAG,CAAC,CAAC;QACf,kBAAa,GAAG,EAAE,CAAC;QAEnB,gBAAW,GAAG,CAAC,CAAC;QAChB,mBAAc,GAAG,KAAK,CAAC;QACvB,eAAU,GAAG,EAAE,CAAC;QAChB,sBAAiB,GAAG,IAAI,CAAC;QACzB,iBAAY,GAAG,IAAI,CAAC;QACpB,uBAAkB,GAAG,EAAE,CAAC;QAMxB,aAAQ,GAAG,EAAE,CAAC;QAEd,eAAU,GAAG,IAAI,IAAI,EAAE,CAAC;QAIxB,WAAM,GAAY,KAAK,CAAC;QACxB,WAAM,GAAG,EAAE,CAAC;QAEZ,UAAK,GAAG,IAAI,CAAC;QAGX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAC7D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;SAEvC;aACI;YACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SAC/C;IACH,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;YAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;SAC3C;aACI;YACH,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SACjB;QACD,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IAED,WAAW;QACT,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YAC7C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC;IACD,WAAW,CAAC,KAAK;QACf,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG;YAC9C,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,6CAA6C;QAC7C,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,EAAE,MAAM;YAChC,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,QAAQ;QACX,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,sBAAsB;QAClD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,iBAAiB,CAAC,KAAK;QACrB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC;QAC/D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;SACnC;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACnD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;gBAC9D,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;gBACjD,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC;gBAChC,IAAI,IAAI,CAAC,eAAe,EAAE;oBACxB,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,UAAU,EAAE;wBAC9E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;qBAErG;yBACI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,IAAI,EAAE;wBAC7E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;wBACjJ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;qBACvC;iBACF;gBACD,IAAI,IAAI,CAAC,qBAAqB,IAAI,SAAS,EAAE;oBAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC;iBAC1C;qBACI,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,KAAK,mFAAkB,CAAC,IAAI,EAAE;oBACtG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;iBAC3B;qBACI;oBACH,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;iBACjB;gBACD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;oBACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC;iBACnJ;gBACD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;oBAC5C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;iBACzE;gBACD,IAAI,CAAC,eAAe,EAAE,CAAC;YAEzB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IACD,eAAe;QACb,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACzD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAChD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;gBAClB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;iBAClJ;gBACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;aACpH;YACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YAC1C,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACjD,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;oBAC1F,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;wBACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC1B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;wBAC9D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;wBACjE,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;4BACvC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;yBAChC;wBACD,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;wBACxB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;4BACd,IAAI,EAAE,IAAI;4BACV,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY;4BACxC,KAAK,EAAE,IAAI,CAAC,MAAM;yBACnB,CAAC,CAAC;wBACH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,IAAI;4BAClC,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;wBACjC,CAAC,CAAC,CAAC;qBACJ;iBACF;aACF;iBACI;gBACH,IAAI,CAAC,UAAU,GAAG,mBAAmB,CAAC;gBACtC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;oBAC3B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;oBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;iBAC5B;qBACI;oBACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;iBAC3B;gBACD,OAAO;aACR;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;gBAChC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,OAAO;aACR;iBACI;gBACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;YACD,IAAI,SAAS,GAAG,EAAE,CAAC;YACnB,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAE9C,IAAI,KAAK,GAAG,2CAAW,CAAC;gBACtB,MAAM,EAAE,eAAe;gBAEvB,IAAI,EAAE;oBACJ,IAAI,EAAE,IAAI,CAAC,UAAU;oBACrB,IAAI,EAAE,KAAK;iBAEZ;gBACD,KAAK,EAAE;oBACL,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;iBACtD;gBACD,GAAG,EAAE;oBACH,KAAK,EAAE;wBACL,MAAM,EAAE,UAAU,KAAK,EAAE,KAAK,EAAE,EAAE;4BAChC,OAAO,KAAK,CAAC;wBACf,CAAC;qBACF;iBACF;aACF,CAAC,CAAC;YAEH,UAAU,CAAC;gBACT,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;YACjG,CAAC,EAAE,CAAC,CAAC,CAAC;YAEN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YACvC,IAAI,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC;YACrC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;gBAChC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;aAC7B;iBACI;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC9D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;oBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;iBAC1C;gBACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACxF,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;oBACjC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;wBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;iBAC3C;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,UAAU;QACR,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC;QAC1C,IAAI,sBAAsB,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CACzD,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CACL,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChH,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClH,CAAC,IAAI,CAAC,oBAAoB,KAAK,IAAI,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClI,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxG,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChH,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC9G,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClH,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChH,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC/G,CAAC,CACF,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,sBAAsB,CAAC;QACzC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE;YAC/B,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;YAClC,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,OAAO;SACR;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC;YAC1C,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;YAC/C,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;aACzC;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,aAAa,EAAE;gBACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aACzC;YACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,sBAAsB,CAAC,MAAM,CAAC;YAC9C,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;aACzC;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,IAAI,CAAC,aAAa;oBACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;YACD,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IACD,YAAY;QACV,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC9C,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YACpD,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YACtD,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;YAC/D,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACzD,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAC7D,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YAClD,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YACtD,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAEpD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YACnC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAE7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;YACzC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YAClC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACxB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;YACvC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAEhC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;SAC/B;QAED,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACxC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACxC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SAC3B;QACD,IAAI,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QACnD,IAAI,KAAK;QACT,oDAAW,CAAC,KAAK,CAAC,IAAI,CAAC;aACpB,IAAI,CAAC,UAAU,OAAO;YACrB,IAAI,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;YACtB,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC;YAClB,KAAK,GAAG,OAAO,CAAC;QAClB,CAAC,CAAC,CAAC;QACL,UAAU,CAAC,GAAG,EAAE;QAEhB,CAAC,EAAE,GAAG,CAAC,CAAC;QACR,IAAI,IAAS,CAAC;QACd,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;SACtB;aACI;YACH,IAAI,GAAG,kBAAkB,CAAC;SAC3B;QACD,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,GAAG,wBAAwB,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,uBAAuB,EAAE,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,IAAI,EAAE,8BAA8B,EAAE,0DAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QACxV,CAAC,EAAE,IAAI,CAAC,CAAC;IAEX,CAAC;IAED,OAAO,CAAC,IAAI;QACV,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE;YAChE,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;SACrB,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;CACF;;YA1W6B,6DAAa;YAAmB,kEAAmB;YAAkB,2DAAS;;AA3C/F,yBAAyB;IARrC,+DAAS,CAAC;QACT,QAAQ,EAAE,uBAAuB;QACjC,qLAAiD;QACjD,qDAAqD;QACrD,SAAS,EAAE,CAAC,6DAAa,CAAC;QAC1B,MAAM,EAAE,CAAC,mBAAmB,EAAE,cAAc,EAAE,uBAAuB,CAAC;KACvE,CAAC;GAEW,yBAAyB,CAqZrC;AArZqC;AA4ZtC,IAAa,6BAA6B,GAA1C,MAAa,6BAA6B;IAGxC,YACS,SAAsD,EAC7B,UAAe;QADxC,cAAS,GAAT,SAAS,CAA6C;QAC7B,eAAU,GAAV,UAAU,CAAK;IAAI,CAAC;IACtD,QAAQ;QACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IACnC,CAAC;IACD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACF;;YARqB,8DAAY;4CAC7B,oDAAM,SAAC,iEAAe;;AALd,6BAA6B;IALzC,+DAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,2IAA4B;KAE7B,CAAC;IAMG,6GAAM,CAAC,iEAAe,CAAC;GALf,6BAA6B,CAYzC;AAZyC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/auC;AAC/B;AAC2B;AACpD;AACA;AAC4B;AACb;AAE+B;AACoB;AAExB;AACpB;AAS/C,IAAa,4BAA4B,GAAzC,MAAa,4BAA4B;IAuDvC,YACU,aAA4B,EAC5B,MAAiB,EACjB,OAA4B,EAC5B,iBAAoC;QAHpC,kBAAa,GAAb,aAAa,CAAe;QAC5B,WAAM,GAAN,MAAM,CAAW;QACjB,YAAO,GAAP,OAAO,CAAqB;QAC5B,sBAAiB,GAAjB,iBAAiB,CAAmB;QA1D9C,cAAS,GAAW,2DAAS,CAAC;QAC9B,cAAS,GAAG,KAAK,CAAC;QAClB,kBAAa,GAAG,KAAK,CAAC;QAItB,cAAS,GAAG,EAAE,CAAC;QACf,UAAK,GAAG,EAAE,CAAC;QACX,SAAI,GAAG,EAAE,CAAC;QAEV,eAAU,GAAW,EAAE,CAAC;QACxB,eAAU,GAAG,CAAC,CAAC;QACf,oBAAe,GAAG,IAAI,CAAC;QACvB,gBAAW,GAAG,IAAI,CAAC;QACnB,eAAU,GAAG,EAAE,CAAC;QAChB,eAAU,GAAG,EAAE,CAAC;QAChB,MAAC,GAAW,CAAC,CAAC;QACd,eAAU,GAAG,CAAC,CAAC;QACf,kBAAa,GAAG,EAAE,CAAC;QAEnB,gBAAW,GAAG,CAAC,CAAC;QAChB,mBAAc,GAAG,KAAK,CAAC;QAEvB,eAAU,GAAG,EAAE,CAAC;QAWhB,aAAQ,GAAG,EAAE,CAAC;QAGd,eAAU,GAAG,IAAI,IAAI,EAAE,CAAC;QAGxB,WAAM,GAAY,KAAK,CAAC;QACxB,WAAM,GAAG,EAAE,CAAC;QAEZ,UAAK,GAAG,IAAI,CAAC;QAMb,mBAAc,GAAsB,EAAE,CAAC;QAEvC,mBAAc,GAAa,CAAC,sGAAiB,CAAC,UAAU,EAAE,sGAAiB,CAAC,IAAI,CAAC,CAAC;QAElF,eAAU,GAAY,KAAK,CAAC;QAO1B,IAAI,CAAC,gBAAgB,GAAG,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACnE,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAC7D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;YACjC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;SACvB;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;SAEvC;aACI;YACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SAC/C;IACH,CAAC;IAGD,QAAQ;QACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,IAAI,CAAC,EAAE;gBAC1J,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;aAC/D;iBACI;gBACH,IAAI,CAAC,IAAI,CAAC,aAAa;oBACrB,IAAI,CAAC,gBAAgB,CAAC,sGAAiB,CAAC,UAAU,CAAC;;oBAEnD,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;aACjC;SACF;aAEI;YACH,IAAI,CAAC,IAAI,CAAC,aAAa;gBACrB,IAAI,CAAC,gBAAgB,CAAC,sGAAiB,CAAC,UAAU,CAAC;;gBAEnD,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;SACjC;QACD,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IACO,cAAc;QACpB,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC7E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC;YAChC,IAAI,IAAI,CAAC,eAAe,EAAE;gBAExB,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,UAAU,EAAE;oBAC9E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;iBACjH;qBACI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,IAAI,EAAE;oBAC7E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;oBAChH,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;iBAChE;aACF;YACD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACzL,CAAC,CAAC,CAAC;IACL,CAAC;IACO,sBAAsB,CAAC,oBAAoB;QACjD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACrE,IAAI,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;YAChC,IAAI,IAAI,CAAC,eAAe,IAAI,eAAe,EAAE;gBAC3C,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,UAAU,EAAE;oBAC9E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;iBACrG;qBACI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,IAAI,EAAE;oBAC7E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;oBACjJ,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;oBAC1D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oBACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;iBAC3C;qBACI;oBACH,IAAI,CAAC,oBAAoB,EAAE;wBACzB,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;wBAC9B,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;qBACjC;yBACI,IAAI,oBAAoB,IAAI,CAAC,EAAE;wBAClC,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;qBACjC;yBACI;wBACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,oBAAoB,CAAC,CAAC;qBACxF;iBACF;aACF;iBACI;gBACH,IAAI,oBAAoB,IAAI,CAAC;oBAC3B,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;;oBAEhC,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,oBAAoB,CAAC,CAAC;aAC5F;YAED,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;gBACpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;aAClC;iBACI,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,KAAK,mFAAkB,CAAC,IAAI,EAAE;gBACtG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;aAC3B;iBACI;gBACH,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;aACjB;YAED,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;gBAChE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;gBAChD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;oBACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClJ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;iBACzE;gBACD,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,QAAQ;QACX,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,sBAAsB;QAClD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,eAAe;QACb,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAChE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAChD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;gBAClB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;iBAClJ;gBACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;aACpH;YACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YAC1C,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;gBAChE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC/C,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;oBAClB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;qBACpH;oBACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;iBACtF;gBACD,IAAI,IAAI,CAAC,UAAU,EAAE;oBACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAChD,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;wBACvF,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;4BACnB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE;gCAC9E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;6BAC9D;iCACI;gCACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;6BAChE;4BACD,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;gCACvC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;6BAChC;4BACD,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;4BACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BAC1B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;4BAC5D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gCACd,MAAM,EAAE,IAAI;gCACZ,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW;gCACxC,OAAO,EAAE,IAAI,CAAC,MAAM;6BACrB,CAAC,CAAC;4BACH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,IAAI;gCAElC,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;4BACjC,CAAC,CAAC,CAAC;yBACJ;qBACF;iBACF;qBAAM;oBACL,IAAI,CAAC,UAAU,GAAG,mBAAmB,CAAC;oBACtC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE;wBAC1D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;wBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;qBAC5B;yBACI;wBACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;wBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;qBAC3B;oBACD,OAAO;iBACR;gBAED,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;oBAChC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;oBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;oBAC3B,OAAO;iBACR;qBACI;oBACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;iBAC3B;gBAED,IAAI,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAClD,IAAI,MAAM,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;gBACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACzC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAE7B,IAAI,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAExG,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;qBACpD;yBACI;wBACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBACvC;oBACD,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAClC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;iBAC7B;gBACD,IAAI,GAAG,GAAG;oBACR,cAAc,EAAE,MAAM;oBACtB,uBAAuB,EAAE,MAAM;iBAChC,CAAC;gBAIF,IAAI,KAAK,GAAG,2CAAW,CAAC;oBACtB,MAAM,EAAE,cAAc;oBACtB,IAAI,EAAE;wBACJ,IAAI,EAAE,GAAG;wBACT,IAAI,EAAE;4BAEJ,uBAAuB,EAAE,IAAI;yBAC9B;wBACD,IAAI,EAAE,KAAK;wBACX,KAAK,EAAE;4BAEL,uBAAuB,EAAE,MAAM;yBAEhC,EAAE,MAAM,EAAE;4BACT,CAAC,cAAc,EAAE,uBAAuB,CAAC;yBAC1C;qBACF;oBAED,KAAK,EAAE;wBACL,IAAI,EAAE,aAAa;wBACnB,OAAO,EAAE;4BACP,GAAG,EAAE,EAAE;4BACP,KAAK,EAAE,EAAE;4BACT,MAAM,EAAE,EAAE;4BACV,IAAI,EAAE,EAAE;yBACT;qBACF;oBACD,KAAK,EAAE;wBACL,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;qBAChC;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,IAAI;wBACV,QAAQ,EAAE,OAAO;qBAElB;oBACD,IAAI,EAAE;wBACJ,CAAC,EAAE;4BACD,IAAI,EAAE,UAAU;4BAChB,UAAU,EAAE,IAAI,CAAC,UAAU;4BAC3B,IAAI,EAAE;gCACJ,MAAM,EAAE,EAAE;gCACV,SAAS,EAAE,KAAK;6BACjB;4BACD,MAAM,EAAE,GAAG;yBACZ;wBACD,CAAC,EAAE;4BACD,KAAK,EAAE,cAAc;4BACrB,IAAI,EAAE;gCACJ,MAAM,EAAE,yCAAS,CAAC,GAAG,CAAC;gCACtB,MAAM,EAAE,wCAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;6BACtD;yBACF;wBACD,EAAE,EAAE;4BACF,IAAI,EAAE,IAAI;4BACV,KAAK,EAAE,uBAAuB;4BAC9B,GAAG,EAAE,CAAC;4BACN,GAAG,EAAE,CAAC;4BACN,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;4BAC9B,IAAI,EAAE;gCACJ,MAAM,EAAE,yCAAS,CAAC,MAAM,CAAC;6BAC1B;yBACF;qBACF;iBACF,CAAC,CAAC;gBACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;gBACvC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;oBAChC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;iBAC7B;qBACI;oBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;oBAC9D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;oBAC3B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;oBACxB,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;wBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;wBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;qBAC1C;oBACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;wBAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACxF,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;wBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;4BAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;qBAC3C;iBACF;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IAEL,CAAC;IAED,UAAU;QACR,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC;QAC1C,IAAI,sBAAsB,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CACzD,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CACL,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1G,CAAC,IAAI,CAAC,cAAc,KAAK,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtH,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChH,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClH,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC3G,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5G,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,UAAU,GAAG,sBAAsB,CAAC;QACzC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE;YAC/B,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;YAClC,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,OAAO;SACR;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC;YAC1C,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;YAC/C,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;aACzC;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,aAAa,EAAE;gBAEtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aACzC;YACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,sBAAsB,CAAC,MAAM,CAAC;YAC9C,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;aACzC;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,IAAI,CAAC,aAAa;oBACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;YACD,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IAED,YAAY;QACV,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,kBAAkB,KAAK,sGAAiB,CAAC,UAAU,EAAE;gBAC5D,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;aAC9D;YACD,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC9C,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YACpD,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YACtD,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACnD,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAExD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YACnC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;YACzC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACxB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YAClC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;YACvC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;SAC/B;QACD,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACxC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACxC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SAC3B;QACD,IAAI,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,kCAAkC,CAAC,CAAC;QAClI,IAAI,gBAAgB,GAAG,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAClH,IAAI,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC1C,MAAM,CAAC,OAAO,CAAC,UAAU,OAAO;YAC9B,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC;QAC/C,CAAC,CAAC;QACF,IAAI,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;QAC5C,eAAe,CAAC,OAAO,CAAC,UAAU,OAAO;YACvC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC;QAC5C,CAAC,CAAC;QAEF,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,oDAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAE;aACvD,IAAI,CAAC,UAAU,OAAO;YACrB,IAAI,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;YACtB,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC;YAElB,KAAK,GAAG,OAAO,CAAC;QAClB,CAAC,CAAC,CAAC;QAGL,IAAI,IAAS,CAAC;QACd,IAAI,IAAI,CAAC,kBAAkB,IAAI,sGAAiB,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,EAAE;YAClF,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC;SAC5B;aAAM,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,IAAI,sGAAiB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC3G,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;SACtB;aAAM;YACL,IAAI,GAAG,kBAAkB,CAAC;SAC3B;QACD,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,QAAQ,EAC7C,OAAO,EACP,KAAK,EACL,IAAI,CAAC,gBAAgB,GAAG,oBAAoB,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAC9I,mBAAmB,EACnB,WAAW,GAAG,IAAI,CAAC,gBAAgB,EACnC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,EACtF,0BAA0B,EAC1B,2DAAS,EACT,UAAU,EACV,UAAU,CAAC,CAAC;QAChB,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IACD,UAAU,CAAC,KAAK;QACd,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC;QAC/D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;SACnC;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IACD,gBAAgB,CAAC,aAAqB;QACpC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,kBAAkB,GAAG,aAAa,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,aAAa,KAAK,sGAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAChF,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACzD,CAAC;IAED,gBAAgB,CAAC,oBAAoB;QACnC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;QAElD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,oBAAoB,CAAC,CAAC,cAAc,CAAC;IAClH,CAAC;IAED,WAAW,CAAC,KAAK;QACf,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG;YAC9C,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,6CAA6C;QAC7C,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,EAAE,MAAM;YAChC,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CAAC,IAAI;QACV,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;YAC9D,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;SACrB,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;QAE3C,CAAC,CAAC,CAAC;IACL,CAAC;CACF;;YAxgB0B,6DAAa;YACpB,2DAAS;YACR,kEAAmB;YACT,+EAAiB;;AA3DnC,4BAA4B;IARxC,+DAAS,CAAC;QACT,QAAQ,EAAE,2BAA2B;QACrC,iMAAqD;QACrD,yDAAyD;QACzD,SAAS,EAAE,CAAC,6DAAa,CAAC;QAC1B,MAAM,EAAE,CAAC,iBAAiB,EAAE,aAAa,EAAE,eAAe,CAAC;KAE5D,CAAC;GACW,4BAA4B,CAgkBxC;AAhkBwC;AAukBzC,IAAa,2BAA2B,GAAxC,MAAa,2BAA2B;IAEtC,YACS,SAAoD,EAC3B,UAAe;QADxC,cAAS,GAAT,SAAS,CAA2C;QAC3B,eAAU,GAAV,UAAU,CAAK;IAAI,CAAC;IAEtD,QAAQ;QACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IACnC,CAAC;IACD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACF;;YATqB,8DAAY;4CAC7B,oDAAM,SAAC,iEAAe;;AAJd,2BAA2B;IALvC,+DAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,+IAA4B;KAE7B,CAAC;IAKG,6GAAM,CAAC,iEAAe,CAAC;GAJf,2BAA2B,CAYvC;AAZuC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5lBkB;AACR;AAC2B;AACpD;AACA;AAC4B;AAEb;AACgC;AAEmB;AACxB;AACpB;AAS/C,IAAa,sBAAsB,GAAnC,MAAa,sBAAsB;IAsDjC,YAAoB,aAA4B,EACtC,iBAAoC,EAAU,MAAiB,EAAU,OAA4B;QAD3F,kBAAa,GAAb,aAAa,CAAe;QACtC,sBAAiB,GAAjB,iBAAiB,CAAmB;QAAU,WAAM,GAAN,MAAM,CAAW;QAAU,YAAO,GAAP,OAAO,CAAqB;QAtD/G,cAAS,GAAW,2DAAS,CAAC;QAC9B,mBAAc,GAAsB,EAAE,CAAC;QAEvC,mBAAc,GAAa,CAAC,sGAAiB,CAAC,UAAU,EAAE,sGAAiB,CAAC,IAAI,CAAC,CAAC;QAOlF,cAAS,GAAG,EAAE,CAAC;QACf,UAAK,GAAG,EAAE,CAAC;QACX,SAAI,GAAG,EAAE,CAAC;QAEV,eAAU,GAAG,CAAC,CAAC;QACf,qBAAgB,GAAG,IAAI,CAAC;QACxB,cAAS,GAAG,IAAI,CAAC;QACjB,eAAU,GAAG,EAAE,CAAC;QAChB,eAAU,GAAG,EAAE,CAAC;QAChB,gBAAW,GAAG,IAAI,CAAC;QAEnB,MAAC,GAAW,CAAC,CAAC;QACd,eAAU,GAAG,CAAC,CAAC;QACf,kBAAa,GAAG,EAAE,CAAC;QAEnB,gBAAW,GAAG,CAAC,CAAC;QAChB,mBAAc,GAAG,KAAK,CAAC;QACvB,eAAU,GAAG,EAAE,CAAC;QAGhB,cAAS,GAAG,KAAK,CAAC;QAClB,eAAU,GAAG,EAAE,CAAC;QAChB,eAAU,GAAW,EAAE,CAAC;QAGxB,kBAAa,GAAG,KAAK,CAAC;QACtB,eAAU,GAAY,KAAK,CAAC;QAO5B,aAAQ,GAAG,EAAE,CAAC;QAEd,eAAU,GAAG,IAAI,IAAI,EAAE,CAAC;QAIxB,WAAM,GAAY,KAAK,CAAC;QACxB,WAAM,GAAG,EAAE,CAAC;QAEZ,UAAK,GAAG,IAAI,CAAC;QAIX,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC9D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACtD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAEhE,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;SAEvC;aACI;YACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SAC/C;IAEH,CAAC;IAGD,QAAQ;QAEN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QAErB,IAAI,IAAI,CAAC,eAAe,EAAE;YAExB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,IAAI,CAAC,EAAE;gBAC1J,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBAEvB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;aAC/D;iBACI;gBACH,IAAI,CAAC,IAAI,CAAC,eAAe;oBAEvB,IAAI,CAAC,gBAAgB,CAAC,sGAAiB,CAAC,UAAU,CAAC;;oBAGnD,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;aAGjC;SACF;aACI;YACH,IAAI,CAAC,IAAI,CAAC,eAAe;gBAEvB,IAAI,CAAC,gBAAgB,CAAC,sGAAiB,CAAC,UAAU,CAAC;;gBAGnD,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;SAEjC;QAGD,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAE7C,CAAC;IACD,UAAU,CAAC,KAAK;QACd,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAE9B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAE1B,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC;QAE/D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;SACnC;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IACD,gBAAgB,CAAC,aAAqB;QACpC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,kBAAkB,GAAG,aAAa,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,aAAa,KAAK,sGAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAChF,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAEzD,CAAC;IAED,gBAAgB,CAAC,oBAAoB;QACnC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;QAElD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,oBAAoB,CAAC,CAAC,cAAc,CAAC;IAClH,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC7E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC;YAChC,IAAI,IAAI,CAAC,eAAe,EAAE;gBAExB,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,UAAU,EAAE;oBAC9E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;iBACjH;qBACI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,IAAI,EAAE;oBAC7E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;oBAChH,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;iBAChE;aAEF;YACD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACzL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,sBAAsB,CAAC,oBAAoB;QAEjD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACrE,IAAI,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;YAEhC,IAAI,IAAI,CAAC,eAAe,IAAI,eAAe,EAAE;gBAC3C,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,UAAU,EAAE;oBAC9E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;iBACrG;qBACI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,mFAAkB,CAAC,IAAI,EAAE;oBAC7E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;oBACjJ,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;oBAC1D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;iBACvC;qBACI;oBAEH,IAAI,CAAC,oBAAoB,EAAE;wBACzB,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;wBAC9B,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;qBACjC;yBACI,IAAI,oBAAoB,IAAI,CAAC,EAAE;wBAClC,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;qBACjC;yBACI;wBACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,oBAAoB,CAAC,CAAC;qBACxF;iBAEF;aACF;iBACI;gBACH,IAAI,oBAAoB,IAAI,CAAC;oBAC3B,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;;oBAGhC,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,oBAAoB,CAAC,CAAC;aAC5F;YAED,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE;gBACtC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;aACpC;iBACI,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,KAAK,mFAAkB,CAAC,IAAI,EAAE;gBACtG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;aAC3B;iBACI;gBACH,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;aAEjB;YAED,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;gBAChE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;gBAEhD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;oBACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC;oBAElJ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;iBACzE;gBAED,IAAI,CAAC,eAAe,EAAE,CAAC;YAEzB,CAAC,CAAC,CAAC;QAEL,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,IAAI,CAAC,QAAQ;QACX,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,sBAAsB;QAClD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAGD,UAAU;QACR,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC;QAE5C,IAAI,wBAAwB,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAC7D,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CACL,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChH,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClH,CAAC,IAAI,CAAC,oBAAoB,KAAK,IAAI,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClI,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxG,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChH,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC9G,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClH,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;mBAC9G,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAGjH,CAAC,CAEF,CAAC;QAEF,IAAI,CAAC,UAAU,GAAG,wBAAwB,CAAC;QAC3C,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE;YAC/B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;YAClC,CAAC,EAAE,GAAG,CAAC,CAAC;SAET;aACI;YACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC;YAC5C,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;YACjD,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;aACzC;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,aAAa,EAAE;gBAEtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aACzC;YACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,wBAAwB,CAAC,MAAM,CAAC;YAChD,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;aACzC;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,IAAI,CAAC,aAAa;oBACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;YAED,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IACD,YAAY;QACV,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAE1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAEvC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,kBAAkB,KAAK,sGAAiB,CAAC,UAAU,EAAE;gBAC5D,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;aAC9D;YAED,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC9C,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YACpD,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YACtD,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC9C,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;YAC/D,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACzD,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAC7D,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YAElD,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YACtD,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAGpD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YACnC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAE7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAEhC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;YAEzC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAEhC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAGhC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YAClC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACxB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAE7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAG3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;YACvC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAEhC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;SAG/B;QAED,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAEtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,6CAA6C;YAC7C,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACxC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACxC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SAC3B;QAED,IAAI,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,kCAAkC,CAAC,CAAC;QACnI,IAAI,gBAAgB,GAAG,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QACnH,IAAI,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC1C,MAAM,CAAC,OAAO,CAAC,UAAU,OAAO;YAC9B,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC;QAC/C,CAAC,CAAC;QAEF,IAAI,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;QAC5C,eAAe,CAAC,OAAO,CAAC,UAAU,OAAO;YACvC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC;QAC5C,CAAC,CAAC;QAEF,IAAI,KAAK,GAAG,EAAE,CAAC;QAEf,oDAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAE;aACxD,IAAI,CAAC,UAAU,OAAO;YACrB,IAAI,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;YACtB,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC;YAElB,KAAK,GAAG,OAAO,CAAC;QAClB,CAAC,CAAC,CAAC;QACL,UAAU,CAAC,GAAG,EAAE;QAEhB,CAAC,EAAE,GAAG,CAAC,CAAC;QAER,IAAI,IAAS,CAAC;QACd,IAAI,IAAI,CAAC,kBAAkB,IAAI,sGAAiB,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,EAAE;YAClF,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC;SAC5B;aAAM,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,IAAI,sGAAiB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC3G,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;SACtB;aAAM;YACL,IAAI,GAAG,kBAAkB,CAAC;SAC3B;QAED,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,GAAG,iCAAiC,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,gCAAgC,EAAE,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,EAAE,uCAAuC,EAAE,2DAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QACjc,CAAC,EAAE,IAAI,CAAC,CAAC;IAEX,CAAC;IAED,eAAe;QACb,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,IAAI,QAAa,CAAC;QAClB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAChE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAEhD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;gBAClB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;iBAClJ;gBACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;aACpH;YAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YAE1C,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;gBAChE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC/C,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;oBAClB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;qBACpH;oBACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;iBACtF;gBAED,IAAI,IAAI,CAAC,UAAU,EAAE;oBAEnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAChD,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;wBACvF,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;4BAEnB,IAAI,IAAI,CAAC,UAAU,EAAE;gCACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCAC1B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;gCAC5D,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE;oCAC9E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;iCAC9D;qCACI;oCACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;iCAChE;gCAED,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;oCACvC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;iCAChC;gCACD,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;gCACxB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;oCACd,IAAI,EAAE,IAAI;oCACV,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW;oCACtC,KAAK,EAAE,IAAI,CAAC,MAAM;iCACnB,CAAC,CAAC;gCAEH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,IAAI;oCAElC,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gCACjC,CAAC,CAAC,CAAC;6BAEJ;yBAEF;qBACF;iBACF;qBAAM;oBACL,IAAI,CAAC,UAAU,GAAG,mBAAmB,CAAC;oBAEtC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;wBAC3B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;wBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;qBAC5B;yBACI;wBACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;wBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;qBAC3B;oBACD,OAAO;iBACR;gBAED,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;oBAChC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;oBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;oBAC3B,OAAO;iBACR;qBACI;oBACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;iBAC3B;gBAED,IAAI,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAElD,IAAI,MAAM,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;gBAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACzC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAE7B,IAAI,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACxG,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;qBACpD;yBACI;wBACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBACvC;oBACD,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAClC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;iBAC7B;gBAGD,IAAI,GAAG,GAAG;oBACR,mBAAmB,EAAE,MAAM;oBAC3B,uBAAuB,EAAE,MAAM;iBAChC,CAAC;gBAEF,IAAI,KAAK,GAAG,2CAAW,CAAC;oBACtB,MAAM,EAAE,eAAe;oBACvB,IAAI,EAAE;wBACJ,IAAI,EAAE,GAAG;wBACT,IAAI,EAAE;4BACJ,uBAAuB,EAAE,IAAI;yBAC9B;wBACD,IAAI,EAAE,KAAK;wBACX,KAAK,EAAE;4BAEL,uBAAuB,EAAE,MAAM;yBAEhC,EAAE,MAAM,EAAE;4BACT,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;yBAC/C;qBAGF;oBAED,KAAK,EAAE;wBACL,IAAI,EAAE,WAAW;wBACjB,OAAO,EAAE;4BACP,GAAG,EAAE,EAAE;4BACP,KAAK,EAAE,EAAE;4BACT,MAAM,EAAE,EAAE;4BACV,IAAI,EAAE,EAAE;yBACT;qBACF;oBACD,KAAK,EAAE;wBACL,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;qBAChC;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,IAAI;wBACV,QAAQ,EAAE,OAAO;qBAElB;oBAED,IAAI,EAAE;wBACJ,CAAC,EAAE;4BACD,IAAI,EAAE,UAAU;4BAChB,sBAAsB;4BAEtB,YAAY;4BACZ,uBAAuB;4BACvB,6BAA6B;4BAC7B,KAAK;4BACL,UAAU,EAAE,IAAI,CAAC,UAAU;4BAC3B,IAAI,EAAE;gCACJ,MAAM,EAAE,EAAE;gCACV,SAAS,EAAE,KAAK;gCAChB,mBAAmB;gCACnB,iBAAiB;6BAClB;4BAED,MAAM,EAAE,GAAG;yBACZ;wBAED,CAAC,EAAE;4BACD,UAAU;4BACV,KAAK,EAAE,mBAAmB;4BAC1B,IAAI,EAAE;gCAGJ,MAAM,EAAE,yCAAS,CAAC,GAAG,CAAC;gCACtB,2CAA2C;gCAC3C,MAAM,EAAE,wCAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;6BACtD;yBACF;wBACD,EAAE,EAAE;4BACF,IAAI,EAAE,IAAI;4BACV,KAAK,EAAE,uBAAuB;4BAC9B,GAAG,EAAE,CAAC;4BACN,GAAG,EAAE,CAAC;4BACN,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;4BAC9B,IAAI,EAAE;gCACJ,MAAM,EAAE,yCAAS,CAAC,MAAM,CAAC;6BAC1B;yBAEF;qBAEF;iBAEF,CAAC,CAAC;gBACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;gBACvC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;oBAChC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;iBAC7B;qBACI;oBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;oBAE9D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;oBAE3B,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;wBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;wBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;qBAC1C;oBACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;wBAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACxF,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;wBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;4BAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;qBAC3C;iBAEF;YAEH,CAAC,CAAC,CAAC;QAGL,CAAC,CAAC,CAAC;IAEL,CAAC;IAGD,WAAW,CAAC,KAAK;QACf,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG;YAC9C,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,EAAE,MAAM;YAChC,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IAEf,CAAC;IACD,OAAO,CAAC,IAAI;QAEV,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE;YAC/D,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;SACrB,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;QAE3C,CAAC,CAAC,CAAC;IAEL,CAAC;CACF;;YA/mBoC,6DAAa;YACnB,+EAAiB;YAAkB,2DAAS;YAAmB,kEAAmB;;AAvDpG,sBAAsB;IAPlC,+DAAS,CAAC;QACT,QAAQ,EAAE,oBAAoB;QAC9B,4KAA8C;QAC9C,kDAAkD;QAClD,SAAS,EAAE,CAAC,6DAAa,CAAC;QAC1B,MAAM,EAAE,CAAC,kBAAkB,EAAE,aAAa,EAAE,iBAAiB,CAAC;KAC/D,CAAC;GACW,sBAAsB,CAqqBlC;AArqBkC;AA6qBnC,IAAa,4BAA4B,GAAzC,MAAa,4BAA4B;IAGvC,YACS,SAAqD,EAC5B,UAAe;QADxC,cAAS,GAAT,SAAS,CAA4C;QAC5B,eAAU,GAAV,UAAU,CAAK;IAAI,CAAC;IAEtD,QAAQ;QACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IAEnC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CAEF;;YAZqB,8DAAY;4CAC7B,oDAAM,SAAC,iEAAe;;AALd,4BAA4B;IALxC,+DAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,wIAA4B;KAE7B,CAAC;IAMG,6GAAM,CAAC,iEAAe,CAAC;GALf,4BAA4B,CAgBxC;AAhBwC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClsBiB;AACR;AAC2B;AACpD;AACA;AAC4B;AACb;AACO;AAS/C,IAAa,sBAAsB,GAAnC,MAAa,sBAAsB;IA2CjC,YAAoB,aAA4B,EAAU,MAAiB,EAAU,OAA4B;QAA7F,kBAAa,GAAb,aAAa,CAAe;QAAU,WAAM,GAAN,MAAM,CAAW;QAAU,YAAO,GAAP,OAAO,CAAqB;QA1CjH,cAAS,GAAW,0DAAS,CAAC;QAK9B,cAAS,GAAG,EAAE,CAAC;QACf,UAAK,GAAG,EAAE,CAAC;QACX,SAAI,GAAG,EAAE,CAAC;QAEV,sBAAiB,GAAG,EAAE,CAAC;QACvB,eAAU,GAAW,EAAE,CAAC;QAExB,cAAS,GAAG,EAAE,CAAC;QACf,cAAS,GAAG,EAAE,CAAC;QACf,eAAU,GAAG,EAAE,CAAC;QAChB,eAAU,GAAG,CAAC,CAAC;QACf,qBAAgB,GAAG,IAAI,CAAC;QACxB,iBAAY,GAAG,IAAI,CAAC;QACpB,eAAU,GAAG,EAAE,CAAC;QAChB,MAAC,GAAW,CAAC,CAAC;QACd,eAAU,GAAG,EAAE,CAAC;QAChB,kBAAa,GAAG,EAAE,CAAC;QAEnB,gBAAW,GAAG,EAAE,CAAC;QACjB,mBAAc,GAAG,KAAK,CAAC;QAGvB,cAAS,GAAG,KAAK,CAAC;QAGlB,kBAAa,GAAG,KAAK,CAAC;QAGtB,eAAU,GAAG,IAAI,IAAI,EAAE,CAAC;QAExB,WAAM,GAAY,KAAK,CAAC;QACxB,WAAM,GAAG,EAAE,CAAC;QAEZ,UAAK,GAAG,IAAI,CAAC;QAKX,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC9D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACxD,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IACD,UAAU;QACR,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAChE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAChD,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC;aACtE;YAED,IAAI,IAAI,CAAC,WAAW,EAAE;gBACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAChD,IAAI,IAAI,CAAC,SAAS,IAAI,SAAS,EAAE;wBAC/B,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;wBAC5G,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;4BACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gCAClB,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;gCACnC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW;gCACvC,MAAM,EAAE,IAAI;gCACZ,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,iBAAiB;gCAC/C,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ;gCACpC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY;6BAC1C,CAAC,CAAC;yBACJ;6BAAM;4BACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gCAClB,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;gCACnC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW;gCACvC,MAAM,EAAE,IAAI;gCACZ,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,iBAAiB;gCAC/C,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ;gCACpC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY;6BAC1C,CAAC,CAAC;yBACJ;qBACF;yBACI;wBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;4BAClB,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;4BACnC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW;4BACvC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,iBAAiB;4BAC/C,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ;4BACpC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY;yBAC1C,CAAC,CAAC;qBACJ;iBACF;aACF;YACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YACtC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC/B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;aAC7B;iBACI;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC7D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAE3B,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;oBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;iBAC1C;gBACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACxF,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;oBAClC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;wBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;iBAC3C;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,QAAQ;QACX,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,sBAAsB;QAClD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,WAAW,CAAC,KAAK;QACf,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG;YAC9C,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,6CAA6C;QAC7C,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,EAAE,MAAM;YAChC,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;IACD,WAAW;QACT,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACjE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAElD,CAAC,CAAC,CAAC;IACL,CAAC;IACD,gBAAgB;QAEd,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACvD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACrD,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;gBACjE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;gBAChD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBAC1C,IAAI,MAAM,GAAG,EAAE,CAAC;gBAChB,IAAI,MAAM,GAAG,EAAE,CAAC;gBAChB,IAAI,GAAG,GAAG,CAAC,CAAC;gBAEZ,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;oBAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAEtD,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;wBACzG,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;4BACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BAC1B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;4BACxE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;4BAC3E,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;4BACxB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gCACd,MAAM,EAAE,IAAI;gCACZ,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB;gCACpD,OAAO,EAAE,IAAI,CAAC,MAAM;6BACrB,CAAC,CAAC;4BACH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,IAAI;gCAElC,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;4BACjC,CAAC,CAAC,CAAC;yBACJ;qBACF;iBACF;qBAAM;oBACL,IAAI,CAAC,UAAU,GAAG,mBAAmB,CAAC;oBACtC,OAAO;iBACR;gBACD,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC/B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;oBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;iBAC5B;qBACI;oBACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;iBAC3B;gBACD,IAAI,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAElD,IAAI,MAAM,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;gBACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACzC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrC,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAClC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;iBAE7B;gBACD,IAAI,GAAG,GAAG;oBACR,gBAAgB,EAAE,MAAM;oBACxB,uBAAuB,EAAE,MAAM;iBAChC,CAAC;gBACF,IAAI,KAAK,GAAG,2CAAW,CAAC;oBACtB,MAAM,EAAE,QAAQ;oBAChB,IAAI,EAAE;wBACJ,IAAI,EAAE,GAAG;wBACT,IAAI,EAAE;4BAEJ,uBAAuB,EAAE,IAAI;yBAC9B;wBACD,IAAI,EAAE,KAAK;wBACX,KAAK,EAAE;4BAEL,uBAAuB,EAAE,MAAM;yBAEhC,EAAE,MAAM,EAAE;4BACT,CAAC,gBAAgB,EAAE,uBAAuB,CAAC;yBAC5C;qBACF;oBAED,KAAK,EAAE;wBACL,IAAI,EAAE,gBAAgB;wBACtB,OAAO,EAAE;4BACP,GAAG,EAAE,EAAE;4BACP,KAAK,EAAE,EAAE;4BACT,MAAM,EAAE,EAAE;4BACV,IAAI,EAAE,EAAE;yBACT;qBACF;oBACD,KAAK,EAAE;wBACL,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;qBAChC;oBAED,MAAM,EAAE;wBACN,IAAI,EAAE,IAAI;wBACV,QAAQ,EAAE,OAAO;qBAElB;oBACD,IAAI,EAAE;wBACJ,CAAC,EAAE;4BACD,IAAI,EAAE,UAAU;4BAEhB,UAAU,EAAE,IAAI,CAAC,UAAU;4BAC3B,IAAI,EAAE;gCACJ,MAAM,EAAE,EAAE;gCACV,SAAS,EAAE,KAAK;6BACjB;4BACD,MAAM,EAAE,GAAG;yBACZ;wBACD,CAAC,EAAE;4BAED,KAAK,EAAE,gBAAgB;4BACvB,IAAI,EAAE;gCACJ,MAAM,EAAE,yCAAS,CAAC,GAAG,CAAC;gCACtB,MAAM,EAAE,wCAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;6BACtD;yBACF;wBACD,EAAE,EAAE;4BACF,IAAI,EAAE,IAAI;4BACV,KAAK,EAAE,uBAAuB;4BAC9B,GAAG,EAAE,CAAC;4BACN,GAAG,EAAE,CAAC;4BACN,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;4BAC9B,IAAI,EAAE;gCACJ,MAAM,EAAE,yCAAS,CAAC,MAAM,CAAC;6BAC1B;yBAEF;qBAEF;iBAEF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QAEL,CAAC,CAAC,CAAC;IAEL,CAAC;IAED,UAAU;QACR,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC;QACvC,IAAI,mBAAmB,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CACnD,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CACL,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACjG,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACjG,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACrG,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnG,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CACrC,CAAC,EAAE,EAAE,EAAE;oBACL,OAAO,CACL,EAAE,CAAC,WAAW,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;2BACtG,EAAE,CAAC,YAAY,IAAI,IAAI,IAAI,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;2BAC3G,EAAE,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;2BACvG,EAAE,CAAC,WAAW,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;2BACzG,EAAE,CAAC,OAAO,IAAI,IAAI,IAAI,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;2BACjG,EAAE,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CACjF;gBAEH,CAAC,CACF,CACA,CACA,CAAC,MAAM,CACT;QACH,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC;QACrC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;YAC9B,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;YAClC,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;YAC5C,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;aAC1C;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,aAAa,EAAE;gBAEtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aACzC;YACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;YAC3C,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;aAC1C;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,IAAI,CAAC,aAAa;oBACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;YAED,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IAED,YAAY;QACV,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACvB,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7C,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACrC,OAAO,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACjD,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC/C,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACzB,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACvB,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACxB,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACvB,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,SAAS,GAAG,EAAE,CAAC;YACnB,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;gBACnB,IAAI,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACpC,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;oBAC9C,WAAW,GAAG,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;oBACvD,WAAW,GAAG,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;oBACtD,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;oBAC3C,WAAW,GAAG,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;iBACxD;gBACD,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,QAAQ,CAAC;gBAC1C,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,WAAW,CAAC;gBACjC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,OAAO,CAAC;gBACjC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC;gBACrC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,WAAW,CAAC;gBAChC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACvB,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;aAC3B;SAEF;QACD,IAAI,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAClE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpD,oBAAoB,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACpD,oBAAoB,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACpD,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SACvC;QACD,IAAI,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,kCAAkC,CAAC,CAAC;QAC5H,IAAI,gBAAgB,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAE5G,IAAI,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC1C,MAAM,CAAC,OAAO,CAAC,UAAU,OAAO;YAC9B,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC;QAC/C,CAAC,CAAC;QAEF,IAAI,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;QAC5C,eAAe,CAAC,OAAO,CAAC,UAAU,OAAO;YACvC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC;QAC5C,CAAC,CAAC;QACF,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,oDAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAE;aACjD,IAAI,CAAC,UAAU,OAAO;YACrB,IAAI,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;YACtB,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC;YAClB,KAAK,GAAG,OAAO,CAAC;QAClB,CAAC,CAAC,CAAC;QACL,IAAI,IAAS,CAAC;QACd,IAAI,GAAG,EAAE,CAAC;QAEV,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,GAAG,2BAA2B,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,0BAA0B,EAAE,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,iCAAiC,EAAE,0DAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QACzW,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAED,OAAO,CAAC,IAAI;QACV,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE;YAC/D,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE;SACtC,CAAC,CAAC;QACH,SAAS,CAAC,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QACnD,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;CACF;;YAtYoC,6DAAa;YAAkB,2DAAS;YAAmB,kEAAmB;;AA3CtG,sBAAsB;IAPlC,+DAAS,CAAC;QACT,QAAQ,EAAE,oBAAoB;QAC9B,4KAA8C;QAC9C,kDAAkD;QAClD,SAAS,EAAE,CAAC,6DAAa,CAAC;QAC1B,MAAM,EAAE,CAAC,kBAAkB,EAAE,cAAc,CAAC;KAC7C,CAAC;GACW,sBAAsB,CAiblC;AAjbkC;AAybnC,IAAa,4BAA4B,GAAzC,MAAa,4BAA4B;IAMvC,YACS,SAAqD,EAC5B,UAAe;QADxC,cAAS,GAAT,SAAS,CAA4C;QAC5B,eAAU,GAAV,UAAU,CAAK;QAJjD,UAAK,GAAG,EAAE,CAAC;QACX,iBAAY,GAAG,EAAE,CAAC;IAGmC,CAAC;IAEtD,QAAQ;QACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzB,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBAC1E,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;wBACd,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM;wBAC/B,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI;wBAC3B,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI;qBAC5B,CAAC,CAAC;iBACJ;qBACI;oBACH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;wBACd,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB;wBACxC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW;qBACjC,CAAC,CAAC;iBACJ;aACF;iBACI;gBACH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;oBACd,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB;oBACxC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW;iBAEjC,CAAC,CAAC;aACJ;SACF;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACF;;YAnCqB,8DAAY;4CAC7B,oDAAM,SAAC,iEAAe;;AARd,4BAA4B;IALxC,+DAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,wIAA4B;KAE7B,CAAC;IASG,6GAAM,CAAC,iEAAe,CAAC;GARf,4BAA4B,CA0CxC;AA1CwC;;;;;;;;;;;;;;;;;;;;ACzcS;AACT;AACS;AAQlD,IAAa,gBAAgB,GAA7B,MAAa,gBAAgB;IAI3B,YAAoB,MAAc,EAAU,aAA4B;QAApD,WAAM,GAAN,MAAM,CAAQ;QAAU,kBAAa,GAAb,aAAa,CAAe;QAHxE,UAAK,GAAG,CAAC,CAAC;IAGkE,CAAC;IAE7E,QAAQ;QACN,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACpB,CAAC;IACD,WAAW,CAAC,KAAK;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC3B,CAAC;IACD,SAAS;QACP,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAChD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAEhD,CAAC,CAAC,CAAC;IAEL,CAAC;IACD,MAAM,CAAC,KAAK;QACV,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;IAC9B,CAAC;CACF;;YAnB6B,sDAAM;YAAyB,6DAAa;;AAJ7D,gBAAgB;IAN5B,+DAAS,CAAC;QACT,QAAQ,EAAE,aAAa;QACvB,uJAAuC;QACvC,2CAA2C;QAC3C,SAAS,EAAE,CAAC,6DAAa,CAAC;KAC3B,CAAC;GACW,gBAAgB,CAuB5B;AAvB4B;;;;;;;;;;;;ACV7B,0BAA0B,mBAAmB,iBAAiB,oBAAoB,sBAAsB,oBAAoB,uBAAuB,sBAAsB,WAAW,aAAa,GAAG,YAAY,2BAA2B,iBAAiB,GAAG,oCAAoC,iBAAiB,GAAG,gBAAgB,kBAAkB,cAAc,sBAAsB,yBAAyB,eAAe,mCAAmC,GAAG,cAAc,YAAY,GAAG,cAAc,YAAY,GAAG,mBAAmB,kBAAkB,4BAA4B,GAAG,yBAAyB,eAAe,GAAG,oBAAoB,kBAAkB,GAAG,qBAAqB,uBAAuB,GAAG,qEAAqE,OAAO,6BAA6B,KAAK,aAAa,iBAAiB,KAAK,kBAAkB,oBAAoB,gBAAgB,iBAAiB,6BAA6B,8BAA8B,8BAA8B,oBAAoB,KAAK,gBAAgB,kBAAkB,KAAK,qBAAqB,oBAAoB,kBAAkB,6BAA6B,8BAA8B,KAAK,oBAAoB,kBAAkB,KAAK,YAAY,kBAAkB,KAAK,iBAAiB,uBAAuB,uBAAuB,KAAK,oBAAoB,oBAAoB,OAAO,MAAM,6CAA6C,u2K;;;;;;;;;;;;;;;;;;;;;;ACAl3C;AACR;AACkC;AAC/B;AACN;AAM/C,IAAa,cAAc,GAA3B,MAAa,cAAc;IA0DzB,YAAoB,MAAqB,EAAU,MAAiB,EAAU,OAA4B;QAAtF,WAAM,GAAN,MAAM,CAAe;QAAU,WAAM,GAAN,MAAM,CAAW;QAAU,YAAO,GAAP,OAAO,CAAqB;QAvD1G,aAAQ,GAAG,EAAE,CAAC;QACd,UAAK,GAAG,CAAC,CAAC;QAEV,MAAC,GAAW,CAAC,CAAC;QACd,eAAU,GAAG,EAAE,CAAC;QAChB,kBAAa,GAAG,EAAE,CAAC;QAEnB,gBAAW,GAAG,EAAE,CAAC;QACjB,WAAM,GAAY,KAAK,CAAC;QACxB,WAAM,GAAG,EAAE,CAAC;QAEZ,UAAK,GAAG,IAAI,CAAC;QACb,kBAAa,GAAG,IAAI,CAAC;QACrB,eAAU,GAAG,EAAE,CAAC;QAEhB,UAAK,GAAG,EAAE,CAAC;QACX,WAAM,GAAG,KAAK,CAAC;QAIf,eAAU,GAAG,EAAE,CAAC;QAKhB,uBAAkB,GAAG,EAAE,CAAC;QACxB,cAAS,GAAG,KAAK,CAAC;QAClB,kBAAa,GAAG,KAAK,CAAC;QACtB,cAAS,GAAG,KAAK,CAAC;QA0BlB,sBAAiB,GAAY,KAAK,CAAC;QAEjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACxD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAEjD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QAC9D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAClE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE9C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAEpE,CAAC;IAED,QAAQ;QAEN,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,CAAC;QAE3F,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC1C;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YACrD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAGD,UAAU;QACR,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACtF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB;QACnB,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACtD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IACD,aAAa;QACX,IAAI,CAAC,MAAM,CAAC,4BAA4B,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YAC/F,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,UAAU,CAAC,GAAW;QACpB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE;YAClE,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,GAAG,GAAG,KAAK,GAAG,KAAK;SAE1B,CAAC,CAAC;QAGH,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAE3D,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACzD,SAAS,CAAC,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAC/C,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC;QAClE,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrD,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACzD,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACjD,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAEvE,IAAI,GAAG,KAAK,MAAM,EAAE;YAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC;YAE9B,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;YAC5D,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrD,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YACnE,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;SAClD;QAED,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;QAGD,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAEzC,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;gBAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;iBACI;gBACH,IAAI,CAAC,QAAQ,EAAE,CAAC;aACjB;YAED,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;gBAC1C,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,IAAI,GAAG,KAAK,KAAK,EAAE;oBAEjB,SAAS,GAAG,oBAAoB,CAAC;iBAClC;qBAAM;oBAEL,SAAS,GAAG,sBAAsB,CAAC;iBACpC;gBAED,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE;oBACtE,UAAU,EAAE,yBAAyB;oBACrC,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,KAAK;iBAEhC,CAAC,CAAC;gBAEH,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,CAAC,EAAE,GAAG,CAAC,CAAC;gBACR,aAAa,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBAC9C,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;oBACtB,yBAAyB;oBAEzB,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;wBAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;qBACnB;yBACI;wBACH,IAAI,CAAC,QAAQ,EAAE,CAAC;qBACjB;gBACH,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,UAAU;QACR,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC;QAChC,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAClC,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CACL,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;mBACvG,CAAC,IAAI,CAAC,eAAe,KAAK,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACjI,CAAC,CAEF,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAE1B,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;YAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC;YAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YACrC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACvC;aACI;YACH,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC;YACjC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IAEH,CAAC;IAED,iBAAiB,CAAC,QAAQ;QACxB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;YACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;SAC1C;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IACD,qBAAqB;QACnB,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YACxD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;gBACrD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC5C,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;oBACjC,IAAI,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC9E,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;wBACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;wBACjC,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;wBACvE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;4BACvB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;yBACzD;qBAEF;iBACF;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IACD,WAAW;QACT,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAE1D,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;YAE5B,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;gBACjC,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC3E,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;oBACxB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;iBACvC;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,YAAY;QACV,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACtC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;YACpD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YACnC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;SACrC;QAGD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,GAAG,QAAQ,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,EAAE,cAAc,EAAE,0DAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAC9Q,CAAC;IACD,OAAO;QACL,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACtD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YACxB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;YACvE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;aACtC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACvD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;gBAC3C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC3C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;gBACxB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;gBAC5B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC9B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;oBAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;iBAC3B;qBACI;oBACH,IAAI,IAAI,CAAC,UAAU,KAAK,GAAG,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;wBAC5F,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;wBACrE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;wBACxB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;4BACnB,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;4BAC9E,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gCACzB,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gCACxE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gCACtB,IAAI,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,YAAY,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;gCACvG,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;iCAC1B;qCACI;oCACH,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,eAAe,CAAC,CAAC;oCAC7E,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;oCAC1B,IAAI,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,aAAa,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC;oCACnG,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;qCAC1B;yCACI;wCACH,IAAI,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;wCAClE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;4CACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ;yCACzB;6CACI;4CACH,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;yCAC3B;qCACF;iCACF;6BAEF;yBACF;wBACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;wBACrC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;wBAC5D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;wBAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;wBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;wBAE3B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qBAEvC;yBACI;wBACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;wBACrC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;wBAC5D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;wBAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;wBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;wBAC3B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qBAEvC;iBACF;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,QAAQ;QACX,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,0BAA0B;QACtD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,QAAQ,CAAC,OAAO;QACd,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;QAC/C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,cAAc;QACZ,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SACvC;IACH,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SACvC;IACH,CAAC;IAED,UAAU,CAAC,OAAO;QAChB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE;YAClE,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,wCAAwC,GAAG,OAAO,CAAC,QAAQ,GAAG,MAAM,GAAG,IAAI;SAClF,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,MAAM,EAAE;gBACV,IAAI,UAAU,GAAG,CAAC;gBAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACjD,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;wBACjD,UAAU,EAAE,CAAC;qBACd;iBACF;gBACD,IAAI,CAAC,UAAU,EAAE;oBACf,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;wBAClD,IAAI,IAAI,CAAC,EAAE,EAAE;4BACX,IAAI,CAAC,cAAc,EAAE,CAAC;4BACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;4BACtB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;yBACzC;wBACD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;wBACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;wBACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAElB,CAAC,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;iBACxC;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;;YA9Y6B,6DAAa;YAAkB,kEAAS;YAAmB,kEAAmB;;AA1D/F,cAAc;IAJ1B,+DAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,iJAAqC;KACtC,CAAC;GACW,cAAc,CAwc1B;AAxc0B;AAgd3B,IAAa,+BAA+B,GAA5C,MAAa,+BAA+B;IA0G1C,YAAmB,SAAwD,EACzC,IAAS,EAAS,aAA4B,EAAU,MAAiB;QADxF,cAAS,GAAT,SAAS,CAA+C;QACzC,SAAI,GAAJ,IAAI,CAAK;QAAS,kBAAa,GAAb,aAAa,CAAe;QAAU,WAAM,GAAN,MAAM,CAAW;QAvG3G,cAAS,GAAG,KAAK,CAAC;QAClB,UAAK,GAAG,EAAE,CAAC;QACX,cAAS,GAAG,EAAE,CAAC;QACf,eAAU,GAAG,EAAE,CAAC;QAChB,aAAQ,GAAG,EAAE,CAAC;QACd,gBAAW,GAAG,EAAE,CAAC;QACjB,kBAAa,GAAG,EAAE,CAAC;QACnB,qBAAgB,GAAG,EAAE,CAAC;QACtB,sBAAiB,GAAG,EAAE,CAAC;QACvB,aAAQ,GAAG,KAAK,CAAC;QACjB,gBAAW,GAAG,KAAK,CAAC;QAKpB,oBAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACvC,aAAQ,GAAG,EAAE,CAAC;QACd,gBAAW,GAAG,EAAE,CAAC;QACjB,iBAAY,GAAG,EAAE,CAAC;QAClB,YAAO,GAAG,EAAE,CAAC;QAEb,iBAAY,GAAG,EAAE,CAAC;QAElB,YAAO,GAAG,EAAE,CAAC;QACb,iBAAY,GAAG,EAAE,CAAC;QAClB,kBAAa,GAAG,EAAE,CAAC;QAEnB,YAAO,GAAG,EAAE,CAAC;QAGb,kBAAa,GAAG,EAAE,CAAC;QACnB,kBAAa,GAAG,EAAE,CAAC;QACnB,sBAAiB,GAAG,EAAE,CAAC;QACvB,wBAAmB,GAAG,EAAE,CAAC;QACzB,oBAAe,GAAG,EAAE,CAAC;QACrB,aAAQ,GAAG,EAAE,CAAC;QACd,YAAO,GAAG,EAAE,CAAC;QACb,aAAQ,GAAG,EAAE,CAAC;QACd,gBAAW,GAAG,EAAE,CAAC;QACjB,iBAAY,GAAG,EAAE,CAAC;QAElB,oBAAe,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QAC7D,iBAAY,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QAC1D,qBAAgB,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QAC9D,uBAAkB,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QAChE,oBAAe,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QAC7D,qBAAgB,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QAC9D,mBAAc,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QAC5D,wBAAmB,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QACjE,qBAAgB,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QAC9D,kBAAa,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QAC3D,oBAAe,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QAC7D,kBAAa,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QAC3D,6BAAwB,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QACtE,sBAAiB,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QAC/D,wBAAmB,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QACjE,uBAAkB,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QAEhE,uBAAkB,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QAChE,iBAAY,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QAC1D,sBAAiB,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QAC/D,oBAAe,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QAE7D,mBAAc,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QAC5D,uBAAkB,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QAChE,0BAAqB,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QACnE,oBAAe,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QAE7D,2BAAsB,GAAG,EAAE,CAAC;QAC5B,wBAAmB,GAAG,EAAE,CAAC;QACzB,4BAAuB,GAAG,EAAE,CAAC;QAC7B,8BAAyB,GAAG,EAAE,CAAC;QAC/B,2BAAsB,GAAG,EAAE,CAAC;QAC5B,4BAAuB,GAAG,EAAE,CAAC;QAC7B,0BAAqB,GAAG,EAAE,CAAC;QAC3B,+BAA0B,GAAG,EAAE,CAAC;QAChC,4BAAuB,GAAG,EAAE,CAAC;QAC7B,yBAAoB,GAAG,EAAE,CAAC;QAC1B,2BAAsB,GAAG,EAAE,CAAC;QAC5B,yBAAoB,GAAG,EAAE,CAAC;QAC1B,oCAA+B,GAAG,EAAE,CAAC;QACrC,6BAAwB,GAAG,EAAE,CAAC;QAC9B,+BAA0B,GAAG,EAAE,CAAC;QAChC,mCAA8B,GAAG,EAAE,CAAC;QACpC,mCAA8B,GAAG,EAAE,CAAC;QACpC,6BAAwB,GAAG,EAAE,CAAC;QAC9B,kCAA6B,GAAG,EAAE,CAAC;QACnC,gCAA2B,GAAG,EAAE,CAAC;QAEjC,uBAAkB,GAAG,EAAE,CAAC;QACxB,kBAAa,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC;QAEtD,UAAK,GAAG,EAAE,CAAC;QACX,WAAM,GAAG,EAAE,CAAC;QACZ,aAAQ,GAAG,EAAE,CAAC;QAEd,mBAAc,GAAG,EAAE,CAAC;QACpB,0BAAqB,GAAG,EAAE,CAAC;QAC3B,YAAO,GAAG,KAAK,CAAC;QAChB,cAAS,GAAG,EAAE,CAAC;QACf,gBAAW,GAAG,KAAK,CAAC;QACpB,sBAAiB,GAAY,KAAK,CAAC;QAGjC,gCAAgC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEnC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE3B,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,eAAe,GAAG,EAAE,CAAC;QAEzB,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;YACjG,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC;YAClC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;SAC3E;QACD,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,EAAE;YACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACvD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC;YAC5D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;YACxD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC;YAC9D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC;YAC5D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;YACtD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC;YAClE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC;YAC9D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC;YACpE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC;YAC9D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC;YAC/D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC;YAC5D,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,CAAC;YAC9E,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;YAC7D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC;YACrE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC;YACnE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;YACvD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC;YACjE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC;YAC5D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC7C,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC;SACtC;aACI;YACH,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,eAAe,GAAG,EAAE,CAAC;YACrB,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAChE,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,cAAc,KAAK,EAAE,EAAE;iBAC/C;qBACI;oBACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;iBAC3E;aACF;iBACI;gBACH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAChE,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,cAAc,KAAK,EAAE,EAAE;iBAC/C;qBACI;oBACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;iBAC3E;aACF;YACD,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC;YACtC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;YACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC;YACxC,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,GAAG;gBACf,GAAG,EAAE,IAAI;gBACT,GAAG,EAAE,IAAI;gBACT,GAAG,EAAE,IAAI;gBACT,GAAG,EAAE,IAAI;aACV;YACD,IAAI,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACzC,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7D,IAAI,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACvC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oBAC3D,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oBAC3D,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oBAC3D,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;iBAC5D;aACF;SACF;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;YACvB,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YACrD,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;SACtD;IACH,CAAC;IACD,aAAa;QACX,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACrD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,YAAY,CAAC,CAAC;aAE3E;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,UAAU,CAAC,eAAe;QACxB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAC3D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAExC,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;iBACxD;gBACD,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE;oBAC1B,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;oBAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACvC;4BACE,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC9D,IAAI,UAAU,GAAG,EAAE,CAAC;4BACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gCACvC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;6BACzE;4BACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC;yBAClC;qBACF;iBACF;aACF;YAED,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;aAC1B;iBACI;gBAEH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;aACzB;YAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACzB,IAAI,OAAO,GAAG,EAAE,CAAC;gBACjB,IAAI,WAAW,GAAG,EAAE,CAAC;gBAErB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;gBAClE,CAAC,EAAE,CAAC;gBAEJ,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;oBAChC,MAAM,YAAY,GAAG,EAAE,CAAC;oBACxB,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;wBACpC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,GAAG,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;wBACjF,CAAC,EAAE,CAAC;wBACJ;4BACE,MAAM,WAAW,GAAG,EAAE,CAAC;4BACvB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gCAClC,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,CAAC,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;oCACvH,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;oCACzE,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;oCACvC,IAAI,IAAI,CAAC,KAAK,EAAE;wCACd,IAAI,eAAe,CAAC,UAAU,CAAC,EAAE;4CAC/B,IAAI,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;4CAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gDAC5C,IAAI,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;oDAC5D,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oDACxE,IAAI,UAAU,GAAG,EAAE,CAAC;oDACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wDACvC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;qDACnF;oDACD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;iDACtD;qDAAM;oDACL,IAAI,gBAAgB,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE;oDACjE,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,gBAAgB,CAAC;iDAC5D;6CAEF;yCACF;qCACF;iCACF;4BACH,CAAC,CAAC,CAAC;4BAEH,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC;4BAE9C,IAAI,IAAI,CAAC,KAAK,EAAE;gCACd,IAAI,eAAe,CAAC,SAAS,CAAC,EAAE;oCAC9B,IAAI,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;oCAC1D,IAAI,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE;qCACjD;yCACI;wCACH,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;qCAC3C;oCACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wCAC3C,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;4CACzD,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4CACtE,IAAI,UAAU,GAAG,EAAE,CAAC;4CACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gDACvC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;6CACjF;4CACD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC;yCACnD;6CACI;4CACH,IAAI,gBAAgB,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE;4CACjE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,gBAAgB,CAAC;yCACzD;qCACF;iCACF;6BACF;yBACF;wBACD,OAAO,CAAC,QAAQ,CAAC,WAAW,GAAG,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC;qBAC3E;gBACH,CAAC,CAAC,CAAC;gBAGH,IAAI,IAAI,CAAC,KAAK,EAAE;oBACd,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;wBACxD,4BAA4B;wBAC5B,UAAU;qBACX;oBACD,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE;wBAC3B,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;wBAGnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BAEvC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;gCAC/C,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gCAC/D,IAAI,UAAU,GAAG,EAAE,CAAC;gCACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oCAEvC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;iCAE1E;gCAED,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC;6BAC1C;iCAAM;gCACL,IAAI,aAAa,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE;gCAC9D,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC;6BAC7C;yBACF;qBACF;iBACF;gBACD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC;gBAC7C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;YACjE,CAAC,CAAC,CAAC;QAEL,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI;QACvD,IAAI,OAAO,KAAK,KAAK,EAAE;YACrB,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;YACnD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;YAC9C,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,EAAE;gBAExE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;aACjC;YACD,IAAI,aAAa,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC1C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACjC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACjC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aAClC;YAED,IAAI,IAAI,IAAI,MAAM,EAAE;gBAClB,IAAI,UAAU,GAAG,EAAE,CAAC;gBACpB,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC;gBAChD,UAAU,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;gBAC1C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;aACjD;iBAAM;gBACL,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;aAC5C;SAEF;aAEI,IAAI,OAAO,KAAK,MAAM,EAAE;YAC3B,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;YACpD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;YAC/C,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,EAAE;gBACxE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;aAClC;YACD,IAAI,aAAa,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC1C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAClC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAClC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aACnC;YAED,IAAI,IAAI,IAAI,MAAM,EAAE;gBAClB,IAAI,UAAU,GAAG,EAAE,CAAC;gBACpB,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBAClD,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;oBAC9B,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;iBACzC;qBAAM;oBACL,UAAU,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;oBACxD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;iBACzC;gBACD,UAAU,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;gBAC1C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;aACzC;iBAAM;gBACL,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;aAC5C;SAEF;aAEI,IAAI,OAAO,KAAK,SAAS,EAAE;YAC9B,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;YACvD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;YACtD,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,EAAE;gBAExE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;aACrC;YACD,IAAI,aAAa,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC1C,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACrC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACrC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aACtC;YACD,IAAI,IAAI,IAAI,MAAM,EAAE;gBAClB,IAAI,UAAU,GAAG,EAAE,CAAC;gBACpB,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;gBACrD,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;oBAC9B,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;iBAC5C;qBAAM;oBACL,UAAU,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;oBACxD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;iBAC5C;gBACD,UAAU,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;gBAC1C,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;aAC5C;iBAAM;gBAEL,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC;aAChD;SAEF;aAEI,IAAI,OAAO,KAAK,UAAU,EAAE;YAC/B,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;YAC1D,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC;YAC3D,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,EAAE;gBAExE,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;aACxC;YACD,IAAI,aAAa,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC1C,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACxC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACxC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aACzC;YACD,IAAI,IAAI,IAAI,MAAM,EAAE;gBAClB,IAAI,UAAU,GAAG,EAAE,CAAC;gBACpB,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;gBACtD,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;oBAC9B,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;iBAC7C;qBAAM;oBACL,UAAU,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;oBACxD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;iBAC7C;gBACD,UAAU,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;gBAC1C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;aAC7C;iBAAM;gBAEL,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC;aAClD;SAEF;IACH,CAAC;IAED,oBAAoB,CAAC,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI;QAC3D,IAAI,aAAa,IAAI,GAAG,EAAE;YACxB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;SAC7B;QACD,IAAI,aAAa,IAAI,GAAG,EAAE;YACxB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;SAC7B;QACD,IAAI,aAAa,IAAI,GAAG,EAAE;YACxB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;SAC7B;QACD,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;YACpD,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;YACxD,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,EAAE;gBACxE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;aAClC;YACD,IAAI,aAAa,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC1C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAClC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAClC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAClC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aAC7B;YACD,IAAI,IAAI,IAAI,MAAM,EAAE;gBAClB,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC;aAC7D;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC;aAC5D;SACF;aAAM,IAAI,OAAO,KAAK,MAAM,EAAE;YAC7B,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;YACjD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;YAClD,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,EAAE;gBACxE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;aAC/B;YACD,IAAI,aAAa,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC1C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC/B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC/B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC/B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aAC7B;YACD,IAAI,IAAI,IAAI,MAAM,EAAE;gBAClB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC;aACvD;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC;aACzD;SACF;aAAM,IAAI,OAAO,KAAK,UAAU,EAAE;YACjC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;YACrD,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAC1D,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,EAAE;gBACxE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;aACnC;YACD,IAAI,aAAa,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC1C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACnC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACnC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACnC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aAC7B;YACD,IAAI,IAAI,IAAI,MAAM,EAAE;gBAClB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC;aAC/D;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC;aAC7D;SACF;aAAM,IAAI,OAAO,KAAK,YAAY,EAAE;YACnC,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;YACvD,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAC9D,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,EAAE;gBACxE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;aACrC;YACD,IAAI,aAAa,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC1C,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACrC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACrC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACrC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aAC7B;YACD,IAAI,IAAI,IAAI,MAAM,EAAE;gBAClB,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,yBAAyB,CAAC;aACnE;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,yBAAyB,CAAC;aAC/D;SACF;aAAM,IAAI,OAAO,KAAK,SAAS,EAAE;YAChC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;YACpD,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;YACxD,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,EAAE;gBAExE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;aAClC;YACD,IAAI,aAAa,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC1C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAClC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAClC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAClC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aAC7B;YACD,IAAI,IAAI,IAAI,MAAM,EAAE;gBAClB,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC;aAC7D;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC;aAC5D;SACF;aAAM,IAAI,OAAO,KAAK,UAAU,EAAE;YACjC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;YACrD,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAC1D,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,EAAE;gBACxE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;aACnC;YACD,IAAI,aAAa,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC1C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACnC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACnC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACnC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aAC7B;YACD,IAAI,IAAI,IAAI,MAAM,EAAE;gBAClB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC;aAC/D;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC;aAC7D;SACF;aAAM,IAAI,OAAO,KAAK,QAAQ,EAAE;YAC/B,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;YACnD,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;YACtD,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,EAAE;gBACxE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;aACjC;YACD,IAAI,aAAa,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC1C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACjC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACjC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACjC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aAC7B;YACD,IAAI,IAAI,IAAI,MAAM,EAAE;gBAClB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC;aAC3D;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC;aAC3D;SACF;aACI,IAAI,OAAO,KAAK,aAAa,EAAE;YAClC,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;YACxD,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC;YAChE,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,EAAE;gBAExE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;aACtC;YACD,IAAI,aAAa,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC1C,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACtC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACtC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACtC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aAC7B;YACD,IAAI,IAAI,IAAI,MAAM,EAAE;gBAClB,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,0BAA0B,CAAC;aACrE;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,0BAA0B,CAAC;aAChE;SACF;aAAM,IAAI,OAAO,KAAK,UAAU,EAAE;YACjC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;YACrD,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAC1D,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,EAAE;gBAExE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;aACnC;YACD,IAAI,aAAa,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC1C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACnC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACnC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACnC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aAC7B;YAED,IAAI,IAAI,IAAI,MAAM,EAAE;gBAClB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC;aAC/D;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC;aAC7D;SACF;aAAM,IAAI,OAAO,KAAK,cAAc,EAAE;YACrC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;YAClD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;YACpD,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,EAAE;gBAExE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;aAChC;YACD,IAAI,aAAa,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC1C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAChC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAChC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAChC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aAC7B;YACD,IAAI,IAAI,IAAI,MAAM,EAAE;gBAClB,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC;aAChE;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC;aAC1D;SACF;aACI,IAAI,OAAO,KAAK,SAAS,EAAE;YAC9B,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;YACpD,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;YACxD,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,EAAE;gBACxE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;aAClC;YACD,IAAI,aAAa,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC1C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAClC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAClC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAClC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aAC7B;YACD,IAAI,IAAI,IAAI,MAAM,EAAE;gBAClB,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC;aAC7D;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC;aAC5D;SACF;aAAM,IAAI,OAAO,KAAK,OAAO,EAAE;YAC9B,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;YAClD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;YACpD,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,EAAE;gBACxE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;aAChC;YACD,IAAI,aAAa,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC1C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAChC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAChC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAChC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aAC7B;YACD,IAAI,IAAI,IAAI,MAAM,EAAE;gBAClB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC;aACzD;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC;aAC1D;SACF;aAAM,IAAI,OAAO,KAAK,kBAAkB,EAAE;YACzC,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;YAC7D,IAAI,CAAC,+BAA+B,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC;YAC1E,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,EAAE;gBACxE,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;aAC3C;YACD,IAAI,aAAa,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC1C,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC3C,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC3C,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC3C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aAC7B;YACD,IAAI,IAAI,IAAI,MAAM,EAAE;gBAClB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,+BAA+B,CAAC;aAC/E;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,+BAA+B,CAAC;aACrE;SACF;aACI,IAAI,OAAO,KAAK,QAAQ,EAAE;YAC7B,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;YACtD,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC;YAC5D,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,EAAE;gBAExE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;aACpC;YACD,IAAI,aAAa,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC1C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACpC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACpC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACpC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aAC7B;YACD,IAAI,IAAI,IAAI,MAAM,EAAE;gBAClB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC;aAC9D;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC;aAC9D;SACF;aACI,IAAI,OAAO,KAAK,cAAc,EAAE;YACnC,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;YACxD,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC;YAChE,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,EAAE;gBACxE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;aACtC;YACD,IAAI,aAAa,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC1C,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACtC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACtC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACtC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aAC7B;YACD,IAAI,IAAI,IAAI,MAAM,EAAE;gBAClB,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,0BAA0B,CAAC;aACtE;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,0BAA0B,CAAC;aAChE;SACF;aACI,IAAI,OAAO,KAAK,aAAa,EAAE;YAClC,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;YACvD,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;YACnE,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,EAAE;gBAExE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;aACrC;YACD,IAAI,aAAa,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC1C,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACrC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACrC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACrC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aAC7B;YACD,IAAI,IAAI,IAAI,MAAM,EAAE;gBAClB,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,8BAA8B,CAAC;aACzE;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,8BAA8B,CAAC;aACpE;SACF;aACI,IAAI,OAAO,KAAK,OAAO,EAAE;YAC5B,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;YACjD,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;YACvD,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,EAAE;gBAExE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;aAC/B;YACD,IAAI,aAAa,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC1C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC/B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC/B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC/B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aAC7B;YACD,IAAI,IAAI,IAAI,MAAM,EAAE;gBAClB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC;aAC7D;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC;aAC9D;SACF;aACI,IAAI,OAAO,KAAK,YAAY,EAAE;YACjC,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;YACtD,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACjE,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,EAAE;gBAExE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;aACpC;YACD,IAAI,aAAa,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC1C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACpC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACpC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACpC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aAC7B;YACD,IAAI,IAAI,IAAI,MAAM,EAAE;gBAClB,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,6BAA6B,CAAC;aACvE;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,6BAA6B,CAAC;aACnE;SACF;aACI,IAAI,OAAO,KAAK,SAAS,EAAE;YAC9B,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;YACpD,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;YAC7D,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,EAAE;gBAExE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;aAClC;YACD,IAAI,aAAa,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC1C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAClC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAClC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAClC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aAC7B;YACD,IAAI,IAAI,IAAI,MAAM,EAAE;gBAClB,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,2BAA2B,CAAC;aAClE;iBAAM;gBAGL,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,2BAA2B,CAAC;aACjE;SACF;IACH,CAAC;IACD,OAAO,CAAC,IAAI,EAAE,IAAI;QAChB,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;SACjC;QACD,IAAI,IAAI,IAAI,GAAG,EAAE;YACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,YAAY;oBAC3C,+DAA+D;oBAC/D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS;2BACvC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,YAAY;2BAC1C,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,YAAY,CAAC;2BAC3C,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,IAAI,GAAG,CAAC;2BACxD,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC;2BACrE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,kBAAkB,IAAI,IAAI,IAAI,GAAG,CAAC;2BACjE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,IAAI,GAAG,CAAC;2BACvD,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,cAAc,IAAI,IAAI,IAAI,GAAG,CAAC;2BAC7D,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,aAAa,IAAI,IAAI,IAAI,GAAG,CAAC;2BAC5D,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,IAAI,IAAI,IAAI,GAAG,CAAC;2BAErD,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,IAAI,GAAG,CAAC;wBAE3D,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;4BAClD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;yBACpF;6BAAM,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;4BAExD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;yBACrF;6BAAM,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE;4BACzD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;4BAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;4BAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;4BAC5B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;4BACrF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;4BACrF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;4BACrF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;yBACtF;6BAAM,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE;4BAC1D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;4BAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;4BAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;4BAC5B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;4BACpF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;4BACpF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;4BACpF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;yBACrF;aAEN;SACF;QACD,IAAI,IAAI,KAAK,GAAG,EAAE;YAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,YAAY;oBAC3C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS;wBAC1C,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,EAE5B;wBACA,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;4BAClD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;4BAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC;mCACxC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC;mCACzC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;mCACvC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,kBAAkB,CAAC;mCAClD,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;mCACxC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,cAAc,CAAC;mCAC9C,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;mCACvC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE;gCAC9C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;6BACpF;4BACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;yBACpF;6BAAM,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;4BACxD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;4BAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC;mCACxC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC;mCACzC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;mCACvC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,kBAAkB,CAAC;mCAClD,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;mCACxC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,cAAc,CAAC;mCAC9C,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;mCACvC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE;gCAC9C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;6BACrF;4BACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;yBACrF;6BAAM,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE;4BACzD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;4BAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC;mCACxC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC;mCACzC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;mCACvC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,kBAAkB,CAAC;mCAClD,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;mCACxC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,cAAc,CAAC;mCAC9C,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;mCACvC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE;gCAC9C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;6BACtF;yBACF;6BAAM,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE;4BAC1D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;4BAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC;mCACxC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC;mCACzC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;mCACvC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,kBAAkB,CAAC;mCAClD,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;mCACxC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,cAAc,CAAC;mCAC9C,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;mCACvC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE;gCAC9C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;6BACrF;yBACF;qBAEF;aACJ;SACF;QACD,IAAI,IAAI,KAAK,GAAG,EAAE;YAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC7C,8DAA8D;gBAC9D,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,YAAY;oBAC3C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS;2BACvC,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC;wBAC/B,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;4BAClD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;4BAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC;mCACxC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC;mCACzC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;mCACvC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,kBAAkB,CAAC;mCAClD,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;mCACxC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,cAAc,CAAC;mCAC9C,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;mCACvC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE;gCAC9C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;6BACpF;4BACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;yBACpF;6BAAM,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;4BACxD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;4BAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC;mCACxC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC;mCACzC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;mCACvC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,kBAAkB,CAAC;mCAClD,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;mCACxC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,cAAc,CAAC;mCAC9C,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;mCACvC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE;gCAC9C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;6BACrF;4BACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;yBACrF;6BAAM,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE;4BACzD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;4BAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC;mCACxC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC;mCACzC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;mCACvC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,kBAAkB,CAAC;mCAClD,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;mCACxC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,cAAc,CAAC;mCAC9C,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;mCACvC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE;gCAC9C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;6BACtF;yBAEF;6BAAM,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE;4BAC1D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;4BAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC;mCACxC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC;mCACzC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;mCACvC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,kBAAkB,CAAC;mCAClD,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;mCACxC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,cAAc,CAAC;mCAC9C,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;mCACvC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE;gCAC9C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;6BACrF;yBAEF;aACN;SACF;QACD,IAAI,IAAI,KAAK,GAAG,EAAE;YAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,YAAY;oBAC3C,+DAA+D;oBAC/D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC;wBAE1E,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;4BAClD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;4BAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC;mCACxC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC;mCACzC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;mCACvC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,kBAAkB,CAAC;mCAClD,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;mCACxC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,cAAc,CAAC;mCAC9C,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;mCACvC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE;gCAC9C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;6BACpF;4BACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;yBACpF;6BAAM,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;4BACxD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;4BAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC;mCACxC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC;mCACzC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;mCACvC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,kBAAkB,CAAC;mCAClD,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;mCACxC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,cAAc,CAAC;mCAC9C,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;mCACvC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE;gCAC9C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;6BACrF;4BACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;yBACrF;6BAAM,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE;4BACzD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;4BAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC;mCACxC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC;mCACzC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;mCACvC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,kBAAkB,CAAC;mCAClD,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;mCACxC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,cAAc,CAAC;mCAC9C,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;mCACvC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE;gCAC9C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;6BACtF;yBAEF;6BAAM,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE;4BAC1D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;4BAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC;mCACxC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC;mCACzC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;mCACvC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,kBAAkB,CAAC;mCAClD,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;mCACxC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,cAAc,CAAC;mCAC9C,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;mCACvC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE;gCAC9C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;6BACrF;yBAEF;aACN;SACF;IACH,CAAC;IACD,OAAO;QACL,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC9D,IAAI,CAAC,YAAY,GAAG,kCAAkC,CAAC;YACvD,OAAO;SACR;aAAM;YACL,IAAI,eAAe,GAAG,EAAE,CAAC;YACzB,IAAI,iBAAiB,GAAG,EAAE,CAAC;YAC3B,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;gBACf,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC;gBACtC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC;gBACjC,MAAM,GAAG,EAAE,CAAC;aACb;iBAAM;gBACL,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC;gBACrC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAClC,MAAM,GAAG,IAAI,CAAC,MAAM;aACrB;YACD,IAAI,IAAI,GAAG;gBACT,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW,EAAE,iBAAiB;gBAC9B,QAAQ,EAAE,eAAe;gBACzB,SAAS,EAAE,IAAI,CAAC,WAAW;gBAC3B,MAAM,EAAE,MAAM;gBACd,SAAS,EAAE,IAAI,CAAC,SAAS;aAC1B;YACD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;gBAEpD,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;oBAE1C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBAC5B;qBAAM;oBACL,IAAI,CAAC,QAAQ,GAAG,sBAAsB,CAAC;iBACxC;YACH,CAAC,CAAC,CAAC;SACJ;IAGH,CAAC;CAEF;;YA1iC+B,qEAAY;4CACvC,oDAAM,SAAC,wEAAe;YAA0C,6DAAa;YAAkB,kEAAS;;AA3GhG,+BAA+B;IAN3C,+DAAS,CAAC;QACT,QAAQ,EAAE,iBAAiB;QAC3B,+HAA4B;;KAE7B,CAAC;IA6GG,6GAAM,CAAC,wEAAe,CAAC;GA3Gf,+BAA+B,CAopC3C;AAppC2C;;;;;;;;;;;;;;;;;;;;;;AC1dD;AAC0B;AACvB;AACF;AAEe;AAM3D,IAAa,cAAc,GAA3B,MAAa,cAAc;IAGvB,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAD5B,YAAO,GAAW,wEAAW,CAAC,OAAO,CAAC;IACN,CAAC;IAGzC,+BAA+B,CAAC,SAAiB;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,GAAG,IAAI,CAAC,OAAO,oDAAoD,SAAS,EAAE,CAAC;aACjH,IAAI,CACD,iEAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAC/B,CAAC;IACV,CAAC;IAED,+BAA+B,CAAC,SAAiB;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,GAAG,IAAI,CAAC,OAAO,oDAAoD,SAAS,EAAE,CAAC;aACjH,IAAI,CACD,iEAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAC/B,CAAC;IACV,CAAC;IAED,WAAW,CAAC,MAAsB;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,oBAAoB,EAAE,MAAM,CAAC,CAAC,IAAI,CACnE,iEAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAC/B,CAAC;IACN,CAAC;IAED,aAAa,CAAC,SAAiB;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,kCAAkC,SAAS,EAAE,CAAC,CAAC,IAAI,CACnF,iEAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAC/B,CAAC;IACN,CAAC;IAED,qBAAqB,CAAC,MAAsB;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,8BAA8B,EAAE,MAAM,CAAC,CAAC,IAAI,CAC7E,iEAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAC/B,CAAC;IACN,CAAC;IAED,uBAAuB,CAAC,OAAe;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,GAAG,IAAI,CAAC,OAAO,0CAA0C,OAAO,EAAE,CAAC;aACrG,IAAI,CACD,iEAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAC/B,CAAC;IACV,CAAC;IAEO,WAAW,CAAC,GAAsB;QACtC,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,GAAG,CAAC,KAAK,YAAY,UAAU,EAAE;YACjC,YAAY,GAAG,qBAAqB,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;SAC3D;aACI;YACD,YAAY,GAAG,yBAAyB,GAAG,CAAC,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE;SACxF;QACD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1B,OAAO,uDAAU,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;CACJ;;YArD6B,+DAAU;;AAH3B,cAAc;IAH1B,gEAAU,CAAC;QACR,UAAU,EAAE,MAAM;KACrB,CAAC;GACW,cAAc,CAwD1B;AAxD0B;;;;;;;;;;;;;;;;;;;;;;ACX0C;AAC1B;AACG;AACG;AACU;AAM3D,IAAa,iBAAiB,GAA9B,MAAa,iBAAiB;IAE1B,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QADpC,YAAO,GAAG,wEAAW,CAAC,OAAO,CAAC;IACU,CAAC;IAEzC,cAAc,CAAC,SAAiB;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,GAAG,IAAI,CAAC,OAAO,8CAA8C,SAAS,EAAE,CAAC;aAC3G,IAAI,CACD,iEAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAC/B,CAAC;IACV,CAAC;IAED,cAAc,CAAC,MAAW;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,uBAAuB,EAAE,MAAM,CAAC,CAAC,IAAI,CACtE,iEAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAC/B,CAAC;IACN,CAAC;IAED,gBAAgB,CAAC,YAAoB;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,wCAAwC,YAAY,EAAE,CAAC,CAAC,IAAI,CAC5F,iEAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAC/B,CAAC;IACN,CAAC;IAED,sBAAsB,CAAC,SAAiB,EAAE,YAAoB;QAC1D,IAAI,YAAY,EAAE;YACd,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,GAAG,IAAI,CAAC,OAAO,2CAA2C,SAAS,iBAAiB,YAAY,EAAE,CAAC;iBACrI,IAAI,CACD,iEAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAC/B,CAAC;SACT;IACL,CAAC;IAED,mBAAmB,CAAC,SAAiB;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,GAAG,IAAI,CAAC,OAAO,wCAAwC,SAAS,EAAE,CAAC;aACrG,IAAI,CACD,iEAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAC/B,CAAC;IACV,CAAC;IAEO,WAAW,CAAC,GAAsB;QACtC,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,GAAG,CAAC,KAAK,YAAY,UAAU,EAAE;YACjC,YAAY,GAAG,qBAAqB,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;SAC3D;aACI;YACD,YAAY,GAAG,yBAAyB,GAAG,CAAC,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE;SACxF;QACD,OAAO,uDAAU,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;CAEJ;;YAhD6B,+DAAU;;AAF3B,iBAAiB;IAH7B,gEAAU,CAAC;QACR,UAAU,EAAE,MAAM;KACrB,CAAC;GACW,iBAAiB,CAkD7B;AAlD6B;;;;;;;;;;;;;;;;;;;;;;ACVa;AAC0B;AACvB;AACF;AAEe;AAK3D,IAAa,WAAW,GAAxB,MAAa,WAAW;IAGpB,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAD5B,YAAO,GAAW,wEAAW,CAAC,OAAO,CAAC;IACN,CAAC;IAEzC,QAAQ,CAAC,SAAiB;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,GAAG,IAAI,CAAC,OAAO,wCAAwC,SAAS,EAAE,CAAC;aACrG,IAAI,CACD,iEAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAC/B,CAAC;IACV,CAAC;IAED,QAAQ,CAAC,MAAW;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,iBAAiB,EAAE,MAAM,CAAC,CAAC,IAAI,CAChE,iEAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAC/B,CAAC;IACN,CAAC;IAED,UAAU,CAAC,MAAc;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,4BAA4B,MAAM,EAAE,CAAC,CAAC,IAAI,CAC1E,iEAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAC/B,CAAC;IACN,CAAC;IAEO,WAAW,CAAC,GAAsB;QACtC,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,GAAG,CAAC,KAAK,YAAY,UAAU,EAAE;YACjC,YAAY,GAAG,qBAAqB,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;SAC3D;aACI;YACD,YAAY,GAAG,yBAAyB,GAAG,CAAC,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE;SACxF;QACD,OAAO,uDAAU,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;CAEJ;;YAhC6B,+DAAU;;AAH3B,WAAW;IAHvB,gEAAU,CAAC;QACR,UAAU,EAAE,MAAM;KACrB,CAAC;GACW,WAAW,CAmCvB;AAnCuB;;;;;;;;;;;;;;;;;;;;;;ACVmB;AAC0B;AACN;AACnB;AAEe;AAM3D,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;IAK5B,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAH5B,YAAO,GAAW,wEAAW,CAAC,OAAO,CAAC;QACvC,kBAAa,GAAG,IAAI,oDAAe,CAAM,CAAC,CAAC,CAAC;QAC5C,mBAAc,GAAuB,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;QAE1E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;IAC5D,CAAC;IAED,gBAAgB;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,GAAG,IAAI,CAAC,OAAO,yBAAyB,CAAC;aAC3E,IAAI,CACD,iEAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAC/B,CAAC;IACV,CAAC;IAED,gBAAgB,CAAC,MAA2B;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,yBAAyB,EAAE,MAAM,CAAC,CAAC,IAAI,CACxE,iEAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAC/B,CAAC;IACN,CAAC;IAED,kBAAkB,CAAC,cAAsB;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,4CAA4C,cAAc,EAAE,CAAC,CAAC,IAAI,CAClG,iEAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAC/B,CAAC;IACN,CAAC;IAED,iCAAiC,CAAC,cAAsB;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,GAAG,IAAI,CAAC,OAAO,2DAA2D,cAAc,EAAE,CAAC;aAC7H,IAAI,CACD,iEAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAC/B,CAAC;IACV,CAAC;IAED,4BAA4B,CAAC,SAAiB,EAAE,cAAsB;QAClE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,GAAG,IAAI,CAAC,OAAO,iDAAiD,SAAS,mBAAmB,cAAc,EAAE,CAAC;aAC/I,IAAI,CACD,iEAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAC/B,CAAC;IACV,CAAC;IAED,iCAAiC,CAAC,cAAsB;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,GAAG,IAAI,CAAC,OAAO,2DAA2D,cAAc,EAAE,CAAC;aAC7H,IAAI,CACD,iEAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAC/B,CAAC;IACV,CAAC;IAGO,WAAW,CAAC,GAAsB;QACtC,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,GAAG,CAAC,KAAK,YAAY,UAAU,EAAE;YACjC,YAAY,GAAG,qBAAqB,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;SAC3D;aACI;YACD,YAAY,GAAG,yBAAyB,GAAG,CAAC,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE;SACxF;QACD,OAAO,uDAAU,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;CACJ;;YAvD6B,+DAAU;;AAL3B,mBAAmB;IAH/B,gEAAU,CAAC;QACR,UAAU,EAAE,MAAM;KACrB,CAAC;GACW,mBAAmB,CA4D/B;AA5D+B;;;;;;;;;;;;;;;;;;;;;;;;ACXqC;AAC1B;AACoB;AACnB;AACe;AAI3D,MAAM,MAAM,GAAG,mBAAO,CAAC,+CAAQ,CAAC,CAAC;AACW;AAE5C,MAAM,MAAM,GAAG,iEAAY,CAAC,MAAM,CAAC,CAAC;AAIpC,IAAa,cAAc,GAA3B,MAAa,cAAc;IAIvB,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAF5B,YAAO,GAAW,wEAAW,CAAC,OAAO,CAAC;IAG9C,CAAC;IAED,SAAS;QACL,OAAO;YACH,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE;YACpC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE;YACrC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE;YAClC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE;YAClC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE;YAChC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE;YACjC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE;YACjC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE;YACnC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE;YACtC,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE;YACrC,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE;YACtC,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE;SACzC,CAAC;IACN,CAAC;IAED,WAAW,CAAC,SAAiB;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,GAAG,IAAI,CAAC,OAAO,2CAA2C,SAAS,EAAE,CAAC,CAAC,IAAI,CAC9G,iEAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAC/B,CAAC;IACN,CAAC;IAED,YAAY,CAAC,MAAW;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,oBAAoB,EAAE,MAAM,CAAC,CAAC,IAAI,CACnE,iEAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAC/B,CAAC;IACN,CAAC;IAED,gBAAgB,CAAC,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe;QACrF,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC9B,IAAI,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;QACrD,IAAI,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC7D,OAAO;gBACH,OAAO,EAAE,KAAK,GAAG,CAAC;gBAClB,SAAS,EAAE,GAAG,CAAC,SAAS;aAC3B;QACL,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACnE,OAAO;gBACH,SAAS,EAAE,KAAK,GAAG,CAAC;gBACpB,WAAW,EAAE,UAAU,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;gBACrC,aAAa,EAAE,GAAG;gBAClB,SAAS,EAAE,SAAS;gBACpB,SAAS,EAAE,WAAW;gBACtB,cAAc,EAAE,cAAc;gBAC9B,eAAe,EAAE,eAAe;aACnC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,sBAAsB,CAAC,MAAM,EAAE,UAAU;QACrC,IAAI,QAAQ,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,EAAE;YACV,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;SACnD;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEO,WAAW,CAAC,GAAsB;QACtC,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,GAAG,CAAC,KAAK,YAAY,UAAU,EAAE;YACjC,YAAY,GAAG,qBAAqB,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;SAC3D;aACI;YACD,YAAY,GAAG,yBAAyB,GAAG,CAAC,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE;SACxF;QACD,OAAO,uDAAU,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;IAED,kBAAkB;QACd,OAAO;YAEH,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE;YACnC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE;YACnC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE;YACpC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE;YACvC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE;YACrC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE;YACnC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE;SAGxC,CAAC;IACN,CAAC;IAED,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO;QAEpC,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,KAAK,GAAG,EAAE;QACd,IAAI,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;QACzB,IAAI,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAElD,KAAK,IAAI,IAAI,IAAI,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;YAEpC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE;gBACnC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;aAC3B;SACJ;QAED,OAAO,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;YACtC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrB,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;gBAExD,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;aAC5B;YAED,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAChE,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBAEzB,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAE;oBACjC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;iBAE3D;aACJ;SACJ;QAGD,IAAI,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5C,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;YAC9C,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;SAC3D;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,oBAAoB,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO;QAC7C,IAAI,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5C,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvD,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,QAAQ,CAAC,MAAM,GAAG;QAC9C,IAAI,OAAO,IAAI,YAAY,EAAE;YACzB,OAAO,CAAC,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,SAAS,EAAE;SAC5C;aACI;YACD,OAAO,CAAC,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,EAAE;SAC1C;IACL,CAAC;IACD,aAAa,CAAC,MAAW,EAAE,IAAI,EAAE,cAAc,EAAE,eAAe;QAC5D,IAAI,YAAY,GAAG,EAAE,CAAC;QAEtB,IAAI,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;QAAC,IAAI,SAAS,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC;QAEtJ,IAAI,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAElD,IAAI,aAAa,GAAG,MAAM,CAAC,cAAc,CAAC;QAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,CAAC;QAE/C,IAAI,cAAc,CAAC;QACnB,IAAI,CAAC,QAAQ,IAAI,aAAa,CAAC;YAC3B,cAAc,GAAG,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;;YAEnJ,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5F,IAAI,MAAM,CAAC;QACX,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAChE,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;QAC1E,OAAO,YAAY,CAAC;IACxB,CAAC;CACJ;;YAjK6B,+DAAU;;AAJ3B,cAAc;IAH1B,gEAAU,CAAC;QACR,UAAU,EAAE,MAAM;KACrB,CAAC;GACW,cAAc,CAqK1B;AArK0B;;;;;;;;;;;;;;;;;;ACfyB;AAKpD,IAAa,QAAQ,GAArB,MAAa,QAAQ;IAEnB,SAAS,CAAC,WAAuB,EAAE,IAAU;QAC3C,sBAAsB;QACtB,IAAI,WAAW,EAAE;YACf,OAAO,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;oBACvC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;iBAC5B;qBACI,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;oBAC5C,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;iBAC3B;qBACI;oBACH,OAAO,CAAC,CAAC;iBACV;YACH,CAAC,CAAC,CAAC;SACJ;QAED,kBAAkB;IACpB,CAAC;IAAA,CAAC;CAEH;AArBY,QAAQ;IAHpB,0DAAI,CAAC;QACJ,IAAI,EAAE,MAAM;KACb,CAAC;GACW,QAAQ,CAqBpB;AArBoB;;;;;;;;;;;;ACLrB,8BAA8B,gCAAgC,GAAG,6CAA6C,mmB;;;;;;;;;;;;;;;;;;;;;;;;;ACArD;AACI;AAES;AACkB;AACnC;AACH;AAC8B;AACJ;AAClB;AAM1D,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;IA2C9B,YACU,cAA8B,EAC9B,MAAiB,EACjB,OAA4B,EAC5B,KAAqB,EACrB,aAA4B;QAJ5B,mBAAc,GAAd,cAAc,CAAgB;QAC9B,WAAM,GAAN,MAAM,CAAW;QACjB,YAAO,GAAP,OAAO,CAAqB;QAC5B,UAAK,GAAL,KAAK,CAAgB;QACrB,kBAAa,GAAb,aAAa,CAAe;QAvCtC,kBAAa,GAAa,EAAE,CAAC;QAE7B,sBAAiB,GAA0B,EAAE,CAAC;QAG9C,oBAAe,GAAY,KAAK,CAAC;QAEjC,mBAAc,GAAW,CAAC,CAAC;QAM3B,eAAU,GAAW,EAAE,CAAC;QACxB,iBAAiB;QACjB,mBAAmB;QACnB,sBAAsB;QACtB,iBAAiB;QACjB,oBAAoB;QACpB,WAAM,GAAY,KAAK,CAAC;QACxB,WAAM,GAAG,EAAE,CAAC;QAEZ,UAAK,GAAG,IAAI,CAAC;QACb,eAAU,GAA0B,EAAE,CAAC;QAGvC,cAAS,GAAG,KAAK,CAAC;QAClB,oBAAe,GAAG,KAAK,CAAC;QAGxB,yBAAyB;QACzB,eAAU,GAAG,IAAI,oEAAkB,EAAE,CAAC;QASpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACzD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC5D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;QACxE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC;QAC9D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC;QAC1D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAChE,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAKD,eAAe,CAAC,SAAiB;QAC/B,IAAI,CAAC,cAAc,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC9E,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC;YACnC,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;YAChE,IAAI,CAAC,mCAAmC,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;YAC9H,2BAA2B;YAC3B,yBAAyB;YACzB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;gBACvC,8BAA8B;gBAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;aAC7B;iBACI;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBACrE,6BAA6B;gBAC7B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;gBAC7B,iDAAiD;gBACjD,oEAAoE;gBACpE,6CAA6C;gBAC7C,+CAA+C;gBAC/C,8CAA8C;gBAC9C,IAAI;gBACJ,mDAAmD;gBACnD,4CAA4C;gBAC5C,yCAAyC;gBACzC,qCAAqC;gBACrC,+CAA+C;gBAC/C,IAAI;aACL;QACH,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,QAAQ;QACX,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,sBAAsB;QAClD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,eAAe,CAAC,OAAO;QACrB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;QACpC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QAE9C,IAAI,CAAC,cAAc,CAAC,+BAA+B,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACtF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC;YACjC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC;YAAA,CAAC;YAC1D,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE;gBAC3B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;gBAC7B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;gBACrB,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;oBAC5B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;gBACxC,CAAC,EAAE,GAAG,CAAC,CAAC;aACT;iBAAM;gBACL,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC5B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;aACvC;QACH,CAAC,CAAC,CAAC;IAEL,CAAC;IAED,qBAAqB,CAAC,KAA2B,EAAE,GAAG;QACpD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iFAAsB,EAAE;YACzD,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,8DAA8D,GAAG,GAAG,CAAC,WAAW,GAAG,MAAM,GAAG,IAAI;SACvG,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;gBACtB,IAAI,CAAC,UAAU,CAAC,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC;gBAChD,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBAC1E,IAAI,IAAI,CAAC,IAAI,EAAE;wBACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uFAAuB,EAAE;4BACxC,IAAI,EAAE;gCACJ,OAAO,EAAE,sBAAsB;6BAChC;yBACF,CAAC,CAAC;qBACJ;gBACH,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,eAAe,GAAG,KAAK,CAAC;aAC7F;QAEH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa;QACX,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC;QACjC,IAAI,0BAA0B,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,IAAI,CAAC,cAAc,CAAC,+BAA+B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACnF,IAAI,CAAC,cAAc,CAAC,+BAA+B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;gBAEpF,IAAI,KAAK,CAAC,IAAI,EAAE;oBACd,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;wBACvB,0BAA0B,GAAG,0BAA0B,GAAG,GAAG,CAAC,gBAAgB,CAAC;oBACjF,CAAC,CAAC,CAAC;iBACJ;gBACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC;gBACzD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;gBAC9D,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;gBAC1E,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,eAAe,EAAE;oBAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;oBACjF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2FAAyB,EAAE;wBAC1C,IAAI,EAAE;4BACJ,aAAa,EAAE,IAAI,CAAC,aAAa;yBAClC;qBACF,CAAC,CAAC;oBACH,OAAO;iBACR;gBACD,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC;gBAChE,IAAI,CAAC,UAAU,GAAG;oBAChB,SAAS,EAAE,CAAC;oBACZ,WAAW,EAAE,EAAE;oBACf,QAAQ,EAAE,IAAI,CAAC,SAAS;oBACxB,QAAQ,EAAE,EAAE;oBACZ,QAAQ,EAAE,EAAE;oBACZ,OAAO,EAAE,EAAE;oBACX,KAAK,EAAE,EAAE;oBACT,IAAI,EAAE,EAAE;oBACR,OAAO,EAAE,EAAE;oBACX,KAAK,EAAE,EAAE;oBACT,MAAM,EAAE,EAAE;oBACV,MAAM,EAAE,EAAE;oBACV,eAAe,EAAE,KAAK;oBACtB,kBAAkB,EAAE,KAAK;oBACzB,gBAAgB,EAAE,CAAC;oBACnB,cAAc,EAAE,IAAI,CAAC,cAAc;oBACnC,MAAM,EAAE,CAAC;oBACT,QAAQ,EAAE,EAAE;oBACZ,QAAQ,EAAE,EAAE;oBACZ,SAAS,EAAE,EAAE;oBACb,QAAQ,EAAE,EAAE;oBACZ,UAAU,EAAE,CAAC;oBACb,SAAS,EAAE,IAAI,CAAC,WAAW;oBAC3B,SAAS,EAAE,IAAI,CAAC,WAAW;oBAC3B,KAAK,EAAE,CAAC;oBACR,MAAM,EAAE,CAAC;iBAEV;gBACD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iFAAsB,EAAE;oBAC5D,UAAU,EAAE,yBAAyB;oBACrC,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI;iBAC3B,CAAC,CAAC;gBACH,YAAY,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC;gBAChE,YAAY,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC5D,YAAY,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC;gBACpE,YAAY,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC1D,YAAY,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;gBACpE,YAAY,CAAC,iBAAiB,CAAC,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC;gBACtF,YAAY,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oBAC5C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IAQL,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,WAAW,CAAC,UAAU;QACpB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC;QAC1D,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,cAAc,CAAC,+BAA+B,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC7F,IAAI,CAAC,cAAc,CAAC,+BAA+B,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;gBAC9F,IAAI,0BAA0B,GAAG,CAAC,CAAC;gBACnC,IAAI,KAAK,CAAC,IAAI,EAAE;oBACd,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;wBACvB,0BAA0B,GAAG,0BAA0B,GAAG,GAAG,CAAC,gBAAgB,CAAC;oBACjF,CAAC,CAAC,CAAC;iBACJ;gBACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC;gBACzD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;gBAC9D,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;gBAC1E,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,uBAAuB,CAAC;gBACrF,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe;IACf,4DAA4D;IAC5D,6CAA6C;IAC7C,MAAM;IACN,IAAI;IAEJ,aAAa,CAAC,OAAO;QACnB,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,cAAc,CAAC,+BAA+B,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACtF,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC;YAC5B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC;YACzD,IAAI,eAAe,GAAG,CAAC,EAAE;gBACvB,IAAI,CAAC,UAAU,CAAC,6CAA6C,CAAC,CAAC;gBAC/D,OAAO;aACR;iBACI;gBACH,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iFAAsB,EAAE;oBACzD,UAAU,EAAE,yBAAyB;oBACrC,IAAI,EAAE,0CAA0C,GAAG,OAAO,CAAC,WAAW,GAAG,MAAM,GAAG,IAAI;iBACvF,CAAC,CAAC;gBACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oBACzC,IAAI,MAAM,EAAE;wBACV,0BAA0B;wBAC1B,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;4BACpE,IAAI,IAAI,CAAC,IAAI,EAAE;gCACb,mBAAmB;gCACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gCACvB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;gCACxC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;6BAC9B;4BACD,yBAAyB;4BACzB,2BAA2B;4BAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBACvC,CAAC,CAAC,CAAC;qBACJ;gBACH,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IAEL,CAAC;IAED,QAAQ,CAAC,OAAO;QACd,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3C,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC;YACrI,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAClD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACxD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACxD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;YAC5C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvB,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;aAC5F;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,uCAAuC;QACvC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC;QACzC,IAAI,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAC7C,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CACL,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChH,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpG,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CACvG,CAAC;QACJ,CAAC,CACF,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC;QACrC,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,EAAE;YACtC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC;YACzC,yBAAyB;YACzB,2BAA2B;YAC3B,iDAAiD;YACjD,6CAA6C;YAC7C,+CAA+C;YAC/C,8CAA8C;YAC9C,IAAI;YACJ,mDAAmD;YACnD,4CAA4C;YAC5C,4BAA4B;YAE5B,6CAA6C;YAC7C,IAAI;YACJ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,SAAS;QAET,wCAAwC;QACxC,2BAA2B;QAC3B,6BAA6B;QAC7B,+CAA+C;QAC/C,iDAAiD;QACjD,gDAAgD;QAChD,MAAM;QACN,uDAAuD;QACvD,8CAA8C;QAC9C,8BAA8B;QAC9B,iDAAiD;QACjD,MAAM;QAEN,2CAA2C;QAC3C,uCAAuC;QACvC,iDAAiD;QACjD,MAAM;QACN,GAAG;IACL,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,GAAW;QACpB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iFAAsB,EAAE;YACzD,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,GAAG,GAAG,KAAK,GAAG,KAAK;SAC1B,CAAC,CAAC;QACH,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACjE,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;QACzD,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjE,SAAS,CAAC,iBAAiB,CAAC,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC;QACnF,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACvE,IAAI,GAAG,IAAI,KAAK,EAAE;YAChB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACtC;QACD,IAAI,GAAG,IAAI,MAAM,EAAE;YACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;SACtB;QACD,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;gBAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;aAEnB;iBACI;gBACH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACtC;YAED,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;gBAC1C,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,IAAI,GAAG,KAAK,KAAK,EAAE;oBACjB,SAAS,GAAG,oBAAoB,CAAC;iBAClC;qBACI;oBACH,SAAS,GAAG,sBAAsB,CAAC;iBACpC;gBACD,yBAAyB;gBACzB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iFAAsB,EAAE;oBAC5D,UAAU,EAAE,yBAAyB;oBACrC,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,KAAK;iBAChC,CAAC,CAAC;gBAEH,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,CAAC,EAAE,GAAG,CAAC,CAAC;gBAER,YAAY,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBAC7C,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;wBAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;qBACnB;yBACI;wBACH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;qBACjB;gBACH,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CAGF;;YAxZ2B,wEAAc;YACtB,2DAAS;YACR,kEAAmB;YACrB,qEAAc;YACN,6DAAa;;AA/C7B;IAAR,2DAAK,EAAE;2DAAwB;AACvB;IAAR,2DAAK,EAAE;sDAAmB;AAClB;IAAR,2DAAK,EAAE;yDAAuB;AACtB;IAAR,2DAAK,EAAE;uDAAoB;AACnB;IAAR,2DAAK,EAAE;2DAAwB;AACvB;IAAR,2DAAK,EAAE;4DAAyB;AACxB;IAAR,2DAAK,EAAE;8DAA2B;AAC1B;IAAR,2DAAK,EAAE;oEAAiC;AAR9B,mBAAmB;IAL/B,+DAAS,CAAC;QACT,QAAQ,EAAE,iBAAiB;QAC3B,mKAA2C;;KAE5C,CAAC;GACW,mBAAmB,CAoc/B;AApc+B;;;;;;;;;;;;;;;;;;;;;;;;;ACf0B;AAC0B;AAClC;AACG;AACc;AACK;AACzB;AAM/C,IAAa,cAAc,GAA3B,MAAa,cAAc;IA6CzB,YAAmB,MAAiB,EAC3B,aAA4B,EAC3B,OAA4B,EAC5B,iBAAoC;QAH3B,WAAM,GAAN,MAAM,CAAW;QAC3B,kBAAa,GAAb,aAAa,CAAe;QAC3B,YAAO,GAAP,OAAO,CAAqB;QAC5B,sBAAiB,GAAjB,iBAAiB,CAAmB;QA/C9C,uBAAkB,GAAG,mFAAkB,CAAC;QAGxC,WAAM,GAAG,KAAK,CAAC;QAGf,cAAS,GAAG,KAAK,CAAC;QAElB,MAAC,GAAW,CAAC,CAAC;QACd,eAAU,GAAG,EAAE,CAAC;QAChB,kBAAa,GAAG,EAAE,CAAC;QAEnB,gBAAW,GAAG,EAAE,CAAC;QACjB,WAAM,GAAY,KAAK,CAAC;QACxB,WAAM,GAAG,EAAE,CAAC;QAGZ,eAAU,GAAG,KAAK,CAAC;QACnB,eAAU,GAAG,EAAE,CAAC;QAEhB,cAAS,GAAG,KAAK,CAAC;QAClB,kBAAa,GAAG,KAAK,CAAC;QAMtB,eAAU,GAAG,EAAE,CAAC;QAIhB,oBAAe,GAAG,EAAE,CAAC;QAErB,UAAK,GAAG,IAAI,CAAC;QAMb,gBAAW,GAAG,EAAE,CAAC;QAGjB,uBAAkB,GAAG,mFAAkB,CAAC;QAMtC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAEhE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAEjD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAClE,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC;QAC1F,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC1C;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,cAAc,EAAE,CAAC;IAExB,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC/E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC;YAChC,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;oBACnF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;iBAChH;gBACD,wFAAwF;gBACxF,uGAAuG;gBACvG,IAAI;aACL;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,OAAO,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;YAC1D,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC5C,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;YAC1D,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YACnC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;YACpC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;SAEjC;QACD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,GAAG,OAAO,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,EAAE,aAAa,EAAE,0DAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAClR,CAAC;IAED,UAAU;QACR,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC;QAChC,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CACjC,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CACL,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1G,CAAC,IAAI,CAAC,cAAc,KAAK,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtH,CAAC,IAAI,CAAC,eAAe,KAAK,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAEzH,CAAC;QACJ,CAAC,CACF,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;YAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC;YAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YACrC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACvC;aACI;YACH,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;YAChC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IAED,OAAO;QACL,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YAC/D,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3C,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;YAC1B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;iBACI;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,IAAI,CAAC,eAAe,EAAE;oBACxB,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;wBACnF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;qBACnG;yBACI,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE;wBAClF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;qBACvF;yBACI;wBACH,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;wBACrE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;qBACtB;oBACD,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;oBAC7B,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE;wBACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;wBACrC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;wBAC5D,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;wBACrC,OAAO;qBACR;oBAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;oBAClE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAC1C,IAAI,IAAI,CAAC,UAAU,IAAI,SAAS,EAAE;wBAChC,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBAC5C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;wBACrE,IAAI,QAAQ,IAAI,SAAS,EAAE;4BACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gCACxC,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;gCACxF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;oCACtB,IAAI,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oCAC9D,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wCACjC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;;wCAEpD,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oCAC1B,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wCACjC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;;wCAEpD,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oCAC1B,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wCACjC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;;wCAEpD,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oCAC1B,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wCACjC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;;wCAEpD,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oCAE1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;iCACvC;6BACF;4BACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;4BACrC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gCAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gCACrC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gCACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gCACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gCAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gCAC5D,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;6BACtC;iCACI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gCACnC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gCACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gCACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;6BAC3B;yBACF;qBACF;yBAAM;wBACL,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;4BAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;4BACrC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;4BACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;4BACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;4BAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;4BAC5D,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;yBACtC;6BACI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;4BACnC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;4BACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;4BACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;yBAC3B;qBACF;iBACF;qBACI;oBACH,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;oBAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAC5D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACrC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;iBACtC;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,iBAAiB,CAAC,QAAQ;QACxB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;YACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;SAC1C;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IAED,IAAI,CAAC,QAAQ;QACX,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,0BAA0B;QACtD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,UAAU,CAAC,GAAW;QACpB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE;YACvD,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,GAAG,GAAG,KAAK,GAAG,KAAK;SAC1B,CAAC,CAAC;QACH,SAAS,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrD,SAAS,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QACnE,SAAS,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,SAAS,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjE,SAAS,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;QACD,IAAI,GAAG,KAAK,MAAM,EAAE;YAClB,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrD,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;SAClD;QACD,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAEzC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACjB,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;gBAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;iBACI;gBACH,IAAI,CAAC,OAAO,EAAE,CAAC;aAChB;YACD,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;gBAChC,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,IAAI,GAAG,KAAK,KAAK,EAAE;oBACjB,SAAS,GAAG,oBAAoB,CAAC;iBAClC;qBACI;oBACH,SAAS,GAAG,sBAAsB,CAAC;iBACpC;gBACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE;oBAC1D,UAAU,EAAE,yBAAyB;oBACrC,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,KAAK;iBAChC,CAAC,CAAC;gBACH,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,CAAC,EAAE,GAAG,CAAC,CAAC;gBACR,YAAY,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBAC7C,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;oBACtB,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;wBAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;qBACnB;yBACI;wBACH,IAAI,CAAC,OAAO,EAAE,CAAC;qBAChB;gBACH,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YAClE,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3C,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;YAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAClC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;YAC/B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IAEL,CAAC;IAED,WAAW;QACT,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACjE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,QAAQ,CAAC,OAAO;QACd,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SACvC;IACH,CAAC;IAED,UAAU,CAAC,OAAO;QAChB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE;YACvD,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,wCAAwC,GAAG,OAAO,CAAC,QAAQ,GAAG,MAAM,GAAG,IAAI;SAClF,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,IAAI,WAAW,GAAG,CAAC,CAAC;gBACpB,UAAU,CAAC,GAAG,EAAE;oBACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACjD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;4BAC9C,UAAU,EAAE,CAAC;yBACd;qBACF;oBAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAChD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;4BAC7C,WAAW,EAAE,CAAC;yBACf;qBACF;oBACD,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW,EAAE;wBAC/B,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;4BAC1D,IAAI,IAAI,CAAC,EAAE,EAAE;gCACX,IAAI,CAAC,QAAQ,EAAE,CAAC;gCAChB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gCACtB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;6BACzC;4BACD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;4BACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;4BACxB,IAAI,CAAC,OAAO,EAAE,CAAC;wBACjB,CAAC,CAAC,CAAC;qBACJ;yBAAM;wBACL,IAAI,CAAC,UAAU,CAAC,uCAAuC,CAAC,CAAC;qBAC1D;gBACH,CAAC,EAAE,GAAG,CAAC,CAAC;aACT;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;;YA/W4B,kEAAS;YACZ,6DAAa;YAClB,kEAAmB;YACT,8EAAiB;;AAhDnC,cAAc;IAJ1B,+DAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,iJAAqC;KACtC,CAAC;GACW,cAAc,CA4Z1B;AA5Z0B;AAoa3B,IAAa,oBAAoB,GAAjC,MAAa,oBAAoB;IAe/B,YACS,SAA6C,EACpB,IAAS,EAAS,aAA4B,EAAU,OAA4B;QAD7G,cAAS,GAAT,SAAS,CAAoC;QACpB,SAAI,GAAJ,IAAI,CAAK;QAAS,kBAAa,GAAb,aAAa,CAAe;QAAU,YAAO,GAAP,OAAO,CAAqB;QAhBtH,cAAS,GAAG,KAAK,CAAC;QASlB,eAAU,GAAG,EAAE,CAAC;QAEhB,gBAAW,GAAG,KAAK,CAAC;QAMlB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,QAAQ;IACR,CAAC;IAED,UAAU;QACR,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,KAAK;QACX,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;IAChC,CAAC;IAED,gBAAgB,CAAC,KAAK;QACpB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;IAClC,CAAC;IAED,OAAO;QACL,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QAEnB,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE;YACpD,IAAI,CAAC,QAAQ,GAAG,kCAAkC,CAAC;YACnD,OAAO;SACR;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,QAAQ,CAAC,GAAW;QAClB,MAAM,IAAI,GAAG;YACX,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;YAC1C,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;QACF,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE;oBACzF,IAAI,CAAC,QAAQ,GAAG,0BAA0B,CAAC;oBAC3C,OAAO;iBACR;aACF;YACD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACjD,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;oBACvC,IAAI,CAAC,QAAQ,GAAG,oBAAoB,CAAC;oBACrC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBAC5B;qBAAM;oBACL,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;iBAC/B;YACH,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE;oBACvL,IAAI,CAAC,QAAQ,GAAG,0BAA0B,CAAC;oBAC3C,OAAO;iBACR;aACF;YACD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACjD,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;oBACvC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBAC5B;qBAAM;oBACL,IAAI,CAAC,QAAQ,GAAG,sBAAsB,CAAC;iBACxC;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,CAAC,GAAG;QACT,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO;QACnD,IAAI,CAAC,OAAO,GAAG,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,IAAI,OAAO,GAAG,GAAG,CAAC,IAAI,OAAO,IAAI,EAAE;YACpF,OAAO,KAAK,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ;QACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC1G,IAAI,CAAC,QAAQ,GAAG,0BAA0B,CAAC;gBAC3C,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;gBACrB,CAAC,EAAE,IAAI,CAAC,CAAC;aAEV;SACF;IACH,CAAC;CACF;;YA7GqB,qEAAY;4CAC7B,oDAAM,SAAC,wEAAe;YAA0C,6DAAa;YAAmB,kEAAmB;;AAjB3G,oBAAoB;IALhC,+DAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,+HAA0B;QAC1B,SAAS,EAAE,CAAC,6DAAa,CAAC;KAC3B,CAAC;IAkBG,6GAAM,CAAC,wEAAe,CAAC;GAjBf,oBAAoB,CA6HhC;AA7HgC;;;;;;;;;;;;AChbjC,yBAAyB,gBAAgB,uBAAuB,GAAG,YAAY,uBAAuB,uBAAuB,GAAG,QAAQ,iBAAiB,8BAA8B,iBAAiB,oBAAoB,GAAG,QAAQ,iBAAiB,oBAAoB,GAAG,WAAW,8BAA8B,GAAG,mBAAmB,8BAA8B,qBAAqB,0BAA0B,GAAG,iBAAiB,wBAAwB,GAAG,oBAAoB,qBAAqB,GAAG,mBAAmB,wBAAwB,GAAG,SAAS,oBAAoB,GAAG,iBAAiB,eAAe,GAAG,iBAAiB,uBAAuB,eAAe,GAAG,kCAAkC,oBAAoB,GAAG,6CAA6C,u7F;;;;;;;;;;;;;;;;;;ACArtB;AACA;AAOlD,IAAa,uBAAuB,GAApC,MAAa,uBAAuB;IAclC,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;QAbhD,UAAK,GAAG,CAAC,CAAC;QAEV,MAAC,GAAW,CAAC,CAAC;QACd,eAAU,GAAG,EAAE,CAAC;QAChB,kBAAa,GAAG,EAAE,CAAC;QAEnB,gBAAW,GAAG,EAAE,CAAC;QACjB,WAAM,GAAY,KAAK,CAAC;QACxB,WAAM,GAAG,EAAE,CAAC;QAEZ,UAAK,GAAG,IAAI,CAAC;QACb,kBAAa,GAAG,KAAK,CAAC;QACtB,eAAU,GAAG,EAAE,CAAC;IACoC,CAAC;IAErD,QAAQ;QACN,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IACD,WAAW,CAAC,KAAK;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACpD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YACrC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;aAC5B;iBACI;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC5D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAE1B,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;oBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;iBAC1C;gBACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACxF,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;oBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;wBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;iBAC3C;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,IAAI,CAAC,QAAQ;QACX,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,0BAA0B;QACtD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;CAEF;;YA1CoC,6DAAa;;AAdrC,uBAAuB;IALnC,+DAAS,CAAC;QACT,QAAQ,EAAE,qBAAqB;QAC/B,+KAA+C;;KAEhD,CAAC;GACW,uBAAuB,CAwDnC;AAxDmC;;;;;;;;;;;;ACRpC,+DAA+D,uJ;;;;;;;;;;;;;;;;;ACAb;AAQlD,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;IAE9B,YAAY;IACZ,+DAA+D;IAC/D,KAAK;IAEL;IACA,CAAC;IACD,QAAQ;QACN,QAAQ,CAAC,gBAAgB,CAAC,aAAa,EAAE,UAAU,CAAC;YACjD,CAAC,CAAC,cAAc,EAAE,CAAC;QACvB,CAAC,EAAE,KAAK,CAAC,CAAC;QACX,QAAQ,CAAC,SAAS,GAAG,UAAS,CAAC;YAC3B,gBAAgB;YACnB,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,KAAK,EAAE,EAAE;gBACjC,OAAO,KAAK,CAAC;aACd,WAAU;YACV,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,KAAK,EAAE,EAAE;gBAClC,OAAO,KAAK,CAAC;aACd,WAAU;YACV,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,KAAK,EAAE,EAAE;gBAClC,OAAO,KAAK,CAAC;aACd;YACD,QAAQ;YACR,IAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,IAAI,EAAE,EAAC;gBAC9B,OAAO,KAAK,CAAC;aACb;YACD,sBAAsB;YACrB,IAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,IAAI,EAAE,EAAC;gBAChC,OAAO,KAAK,CAAC;aAEZ;QACF,CAAC;IACH,CAAC;CAEF;AAnCY,mBAAmB;IAN/B,+DAAS,CAAC;QACT,QAAQ,EAAE,gBAAgB;QAC1B,gKAA0C;;KAG3C,CAAC;GACW,mBAAmB,CAmC/B;AAnC+B;;;;;;;;;;;;ACRhC,mCAAmC,+BAA+B,GAAG,YAAY,oBAAoB,GAAG,mBAAmB,2CAA2C,GAAG,iBAAiB,2BAA2B,GAAG,+HAA+H,kBAAkB,GAAG,oEAAoE,mCAAmC,wBAAwB,GAAG,8DAA8D,qBAAqB,GAAG,qBAAqB,4BAA4B,GAAG,gCAAgC,4BAA4B,yBAAyB,uCAAuC,GAAG,aAAa,iCAAiC,GAAG,qBAAqB,qBAAqB,GAAG,QAAQ,iBAAiB,8BAA8B,GAAG,mBAAmB,gBAAgB,GAAG,UAAU,sBAAsB,GAAG,UAAU,4BAA4B,GAAG,UAAU,2BAA2B,GAAG,oBAAoB,gCAAgC,4BAA4B,gCAAgC,0BAA0B,GAAG,gBAAgB,gCAAgC,4BAA4B,gCAAgC,GAAG,WAAW,uBAAuB,+BAA+B,2BAA2B,+BAA+B,GAAG,YAAY,gBAAgB,GAAG,UAAU,eAAe,GAAG,kBAAkB,yCAAyC,GAAG,aAAa,0BAA0B,iBAAiB,uBAAuB,sBAAsB,GAAG,gBAAgB,6BAA6B,iBAAiB,uBAAuB,sBAAsB,GAAG,eAAe,4BAA4B,iBAAiB,uBAAuB,sBAAsB,GAAG,WAAW,oBAAoB,gBAAgB,oBAAoB,0BAA0B,GAAG,YAAY,qBAAqB,iBAAiB,qBAAqB,GAAG,iBAAiB,uBAAuB,eAAe,GAAG,aAAa,mBAAmB,sBAAsB,uBAAuB,eAAe,GAAG,UAAU,eAAe,GAAG,cAAc,6BAA6B,qBAAqB,cAAc,oBAAoB,kBAAkB,GAAG,eAAe,6BAA6B,qBAAqB,gBAAgB,oBAAoB,kBAAkB,GAAG,cAAc,6BAA6B,qBAAqB,cAAc,oBAAoB,kBAAkB,gCAAgC,uBAAuB,2BAA2B,GAAG,eAAe,6BAA6B,qBAAqB,gBAAgB,oBAAoB,kBAAkB,gCAAgC,uBAAuB,2BAA2B,GAAG,mBAAmB,qBAAqB,4BAA4B,KAAK,GAAG,kBAAkB,qBAAqB,oBAAoB,KAAK,GAAG,kBAAkB,WAAW,sBAAsB,KAAK,GAAG,kBAAkB,WAAW,gBAAgB,KAAK,UAAU,oBAAoB,KAAK,GAAG,WAAW,eAAe,mDAAmD,4DAA4D,6CAA6C,unZ;;;;;;;;;;;;;;;;;;;;;;;;;ACA5sG;AACzC;AACZ;AAC2B;AAGxB;AACqB;AACH;AAO/C,IAAa,sBAAsB,GAAnC,MAAa,sBAAsB;IAmBjC,YAAoB,OAA4B,EACtC,aAA4B;QADlB,YAAO,GAAP,OAAO,CAAqB;QACtC,kBAAa,GAAb,aAAa,CAAe;QAnB7B,oBAAe,GAA4B,EAAE,CAAC;QAM7C,yBAAoB,GAA0B,IAAI,0DAAY,EAAE,CAAC;QACjE,4BAAuB,GAAG,IAAI,0DAAY,EAAE,CAAC;QAC9C,gBAAW,GAAY,KAAK,CAAC;QACtC,oBAAe,GAA4B,EAAE,CAAC;QAC9C,aAAQ,GAAY,KAAK,CAAC;QAUxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAClE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAClE,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,CAAC;QAChG,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC1C;QACD,IAAI,MAAM,GAAG,0CAA0C,CAAC;QACxD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,6BAA4B;QACpG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACjC,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,IAAI,QAAQ,GAAG,IAAI,CAAC,gBAAgB,GAAG,WAAW,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC;QAC/J,kCAAkC;QAClC,IAAI,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,EAAE,GAAmB,0CAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAE9D,6CAA6C;QAC7C,MAAM,EAAE,GAAkB,0CAAU,CAAC,QAAQ,EAAE,CAAC;QAChD,0CAAU,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC;QAEnD,kBAAkB;QAClB,8CAAc,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAE/B,CAAC;IAED,eAAe;QACb,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACvD,CAAC;IAED,gBAAgB;QACd,iEAAiE;QACjE,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,KAAK,MAAM,CAAC,KAAK,EAAE,EAAC,CAAC;IAC3B,KAAK,CAAC,CAAC;QACL,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;QACpD,IAAI,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzD,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,wBAAwB,CAAC,CAAC;QACnE,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzB,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACvC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,aAAa;QACX,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;QAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC1C,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAC/C,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YAClF,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YACrF,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC5E,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5C,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAChC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACrC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACrC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACrC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACrC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACrC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACrC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACrC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACrC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACrC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACvC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACvC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACvC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACvC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACvC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACxB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YAClC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YAClC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACvB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;YACrC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;YACtC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;YACnC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;SAC5B;QACD,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,GAAG,WAAW,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,YAAY,EAAE,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,EAAE,mBAAmB,EAAE,0DAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAC9S,CAAC;IAED,WAAW,CAAC,MAAM,EAAE,CAAC;QACnB,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,YAAY,KAAK,IAAI,EAAE;YAC/D,IAAI,CAAC,MAAM,CAAC,iBAAiB;gBAC3B,CACE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;oBAC1H,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAC3H,EAAE;gBACH,KAAK,GAAG,SAAS,CAAC;aACnB;iBAAM,IAAI,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;gBAClE,IAAI,MAAM,CAAC,iBAAiB,KAAK,KAAK,IAAI,MAAM,CAAC,iBAAiB,KAAK,IAAI,EAAE;oBAC3E,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE;wBAC7E,KAAK,GAAG,SAAS,CAAC;qBACnB;iBACF;qBAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,KAAK,IAAI,MAAM,CAAC,iBAAiB,IAAI,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,YAAY,EAAE;oBAC/H,KAAK,GAAG,SAAS,CAAC;iBACnB;aACF;SACF;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,aAAa,KAAK,IAAI,EAAE;YAChE,IAAI,CAAC,MAAM,CAAC,kBAAkB;gBAC5B,CACE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;oBAC1H,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAC3H,EAAE;gBACH,KAAK,GAAG,QAAQ,CAAC;aAClB;iBAAM,IAAI,MAAM,CAAC,kBAAkB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;gBACnE,IAAI,MAAM,CAAC,kBAAkB,KAAK,KAAK,IAAI,MAAM,CAAC,kBAAkB,KAAK,IAAI,EAAE;oBAC7E,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,kBAAkB,GAAG,MAAM,CAAC,aAAa,CAAC,EAAE;wBAC/E,KAAK,GAAG,QAAQ,CAAC;qBAClB;iBACF;qBACI,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,KAAK,IAAI,MAAM,CAAC,kBAAkB,IAAI,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;oBAChJ,KAAK,GAAG,QAAQ,CAAC;iBAClB;aACF;SACF;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,EAAE;YAC7D,IAAI,CAAC,MAAM,CAAC,eAAe;gBACzB,CACE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBACpH,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CACrH,EAAE;gBACH,KAAK,GAAG,SAAS,CAAC;aACnB;iBAAM,IAAI,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;gBAChE,IAAI,MAAM,CAAC,eAAe,KAAK,KAAK,IAAI,MAAM,CAAC,eAAe,KAAK,IAAI,EAAE;oBACvE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC,EAAE;wBACzE,KAAK,GAAG,SAAS,CAAC;qBACnB;iBACF;qBACI,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,KAAK,IAAI,MAAM,CAAC,eAAe,IAAI,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;oBACvI,KAAK,GAAG,SAAS,CAAC;iBACnB;aACF;SACF;QACD,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;QAC5D,GAAG;IACL,CAAC;IAEM,WAAW;QAChB,uBAAuB;QACvB,IAAI,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;QACpC,kDAAW,CAAC,IAAI,CAAC;aACd,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC9C,MAAM,GAAG,GAAG,IAAI,6CAAK,CAAC;gBACpB,WAAW,EAAE,WAAW;aACzB,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,GAAG,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACjD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAClD,MAAM,SAAS,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;YAChE,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YACxD,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACxB,CAAC,CAAC,CAAC;QACL,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IACvC,CAAC;IAED,cAAc,CAAC,YAAY;QACzB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;QACpC,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IACvC,CAAC;CAEF;;YAhN8B,kEAAmB;YACvB,6DAAa;;AAnB7B;IAAR,2DAAK,EAAE;+DAA+C;AAC9C;IAAR,2DAAK,EAAE;yDAAgB;AACf;IAAR,2DAAK,EAAE;+DAA0B;AACzB;IAAR,2DAAK,EAAE;4DAAkB;AACjB;IAAR,2DAAK,EAAE;iEAA4B;AAE1B;IAAT,4DAAM,EAAE;oEAAkE;AACjE;IAAT,4DAAM,EAAE;uEAA8C;AAC9C;IAAR,2DAAK,EAAE;2DAA8B;AAT3B,sBAAsB;IALlC,+DAAS,CAAC;QACT,QAAQ,EAAE,qBAAqB;QAC/B,+KAA+C;;KAEhD,CAAC;GACW,sBAAsB,CAmOlC;AAnOkC;;;;;;;;;;;;;ACfnC;AAAA;AAAA,gFAAgF;AAChF,0EAA0E;AAC1E,gEAAgE;AAEzD,MAAM,WAAW,GAAG;IACzB,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE,sCAAsC,CAAE,OAAO;IACxD,kDAAkD;IAClD,kDAAkD;IAClD,wCAAwC;CACzC,CAAC;AAEF;;;;;;GAMG;AACH,mEAAmE;;;;;;;;;;;;;ACnBnE;AAAA;AAAA;AAAA;AAAA;AAA+C;AAC4B;AAE9B;AACY;AAEzD,IAAI,qEAAW,CAAC,UAAU,EAAE;IAC1B,oEAAc,EAAE,CAAC;CAClB;AAED,gGAAsB,EAAE,CAAC,eAAe,CAAC,yDAAS,CAAC;KAChD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACXpC,e;;;;;;;;;;;ACAA,e;;;;;;;;;;;ACAA,e;;;;;;;;;;;ACAA,e;;;;;;;;;;;ACAA,e;;;;;;;;;;;ACAA,e;;;;;;;;;;;ACAA,e;;;;;;;;;;;ACAA,e","file":"main-es2015.a7e7f7a5f15929749a87.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn-bd\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn-bd.js\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-in\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-in.js\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-sg\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./en-sg.js\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-mx\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-mx.js\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fil\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fil.js\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-deva\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-deva.js\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./oc-lnc\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./oc-lnc.js\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tk\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tk.js\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-mo\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-mo.js\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<div class=\\\"row\\\" id=\\\"container\\\">\\r\\n  <div class=\\\"\\\" id=\\\"heading\\\">\\r\\n    <h4>Activity</h4>\\r\\n  </div>\\r\\n  <div id=\\\"wrapper\\\">\\r\\n    <div id=\\\"tableActions\\\">\\r\\n      <div class=\\\"\\\" id=\\\"search\\\" *ngIf=\\\"!disableSearch\\\">\\r\\n        <mat-form-field style=\\\"margin-top: -5px;\\\" id=\\\"searchField\\\">\\r\\n          <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\r\\n          <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\"\\r\\n            [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\r\\n        </mat-form-field>\\r\\n      </div>\\r\\n      <div class=\\\"\\\" id=\\\"excelBtn\\\" *ngIf=\\\"!isDisable\\\">\\r\\n        <button class=\\\"darkbtnbg btn btn-info\\\" [disabled]=\\\"isDisable\\\" matTooltip=\\\"Export as excel\\\"\\r\\n          style=\\\"margin-top:11px;cursor: pointer;\\\" (click)=\\\"exportAsXLSX()\\\">\\r\\n\\r\\n          Excel\\r\\n        </button>\\r\\n      </div>\\r\\n      <div class=\\\"\\\" id=\\\"createBtn\\\">\\r\\n        <button mat-accent class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top: 11px;\\\"\\r\\n          [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\" (click)='OpenActivity(\\\"new\\\")'\\r\\n          matTooltip=\\\"New activity\\\">New</button>\\r\\n      </div>\\r\\n      <div class=\\\"\\\" id=\\\"createBtn\\\">\\r\\n        <button mat-accent class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top: 11px;white-space: nowrap;\\\"\\r\\n          [disabled]=\\\"!MenuPermissions[menuName][menuID]['C'] || activityData.length===0\\\" (click)='OpenActivity(\\\"sub\\\")'\\r\\n          matTooltip=\\\"New sub activity\\\">New Sub Activity</button>\\r\\n      </div>\\r\\n\\r\\n    </div>\\r\\n  </div>\\r\\n</div>\\r\\n<div>\\r\\n  <div class=\\\"tableDiv\\\">\\r\\n    <table>\\r\\n      <thead>\\r\\n        <tr>\\r\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\r\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n          </th>\\r\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('ProcessName')\\\"> Process\\r\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n          </th>\\r\\n\\r\\n\\r\\n          <th cName class=\\\"pointer\\\" (click)=\\\"sort('ActivityName')\\\"> Activity\\r\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n          </th>\\r\\n          <th cName class=\\\"pointer\\\" (click)=\\\"sort('Parentname')\\\"> Parent\\r\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n\\r\\n          </th>\\r\\n\\r\\n          <th cName class=\\\"pointer\\\" (click)=\\\"sort('ActivityTypeName')\\\"> Activity Type\\r\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n\\r\\n          </th>\\r\\n\\r\\n          <th cName class=\\\"pointer\\\" (click)=\\\"sort('squence')\\\"> Sequence\\r\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n\\r\\n          </th>\\r\\n\\r\\n          <th action>Action</th>\\r\\n        </tr>\\r\\n      </thead>\\r\\n      <tbody *ngIf=\\\"empID===0\\\">\\r\\n        <tr\\r\\n          *ngFor=\\\"let element of activityData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\r\\n\\r\\n          <td> {{element.TeamName}}</td>\\r\\n\\r\\n          <td> {{element.ProcessName}}</td>\\r\\n\\r\\n          <td> {{element.ActivityName}}</td>\\r\\n          <td>{{element.Parentname}}</td>\\r\\n          <td>{{element.ActivityTypeName}}</td>\\r\\n          <td>{{element.squence}}</td>\\r\\n\\r\\n          <td>\\r\\n            <span> <a matTooltip=\\\"Edit activity\\\" (click)=\\\"EditActivity(element)\\\"\\r\\n                [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\r\\n                [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['U']),'AddColor':(MenuPermissions[menuName][menuID]['U'] )}\\\"><i\\r\\n                  style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n              &nbsp; <a matTooltip=\\\"Delete activity\\\" (click)=\\\"DeleteActivity(element)\\\"\\r\\n                [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['D'])?'none':'auto'\\\"\\r\\n                [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['D']),'AddColor':(MenuPermissions[menuName][menuID]['D'] )}\\\"><i\\r\\n                  style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a> </span>\\r\\n          </td>\\r\\n\\r\\n        </tr>\\r\\n      </tbody>\\r\\n      <tbody\\r\\n        *ngFor=\\\"let element of activityData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\r\\n        <tr *ngIf=\\\"empID!==0 && element.R\\\">\\r\\n\\r\\n\\r\\n          <td> {{element.TeamName}}</td>\\r\\n          <td> {{element.ProcessName}}</td>\\r\\n\\r\\n          <td> {{element.ActivityName}}</td>\\r\\n          <td>{{element.Parentname}}</td>\\r\\n          <td>{{element.ActivityTypeName}}</td>\\r\\n          <td>{{element.squence}}</td>\\r\\n          <td style=\\\" cursor:pointer;\\\">\\r\\n\\r\\n            <span>\\r\\n\\r\\n              <a matTooltip=\\\"Edit activity\\\" (click)=\\\"EditActivity(element)\\\"\\r\\n                [style.pointer-events]=\\\"!(element.U)?'none':'auto'\\\"\\r\\n                [ngClass]=\\\"{'removeColor':!(element.U),'AddColor':(element.U)}\\\"><i style=\\\"cursor: pointer;\\\"\\r\\n                  class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n              &nbsp;&nbsp;&nbsp; <a matTooltip=\\\"Delete activity\\\" (click)=\\\"DeleteActivity(element)\\\"\\r\\n                [style.pointer-events]=\\\"!(element.D )?'none':'auto'\\\"\\r\\n                [ngClass]=\\\"{'removeColor':!(element.D),'AddColor':(element.D)}\\\"><i style=\\\"cursor: pointer;\\\"\\r\\n                  class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n            </span>\\r\\n          </td>\\r\\n\\r\\n        </tr>\\r\\n\\r\\n\\r\\n\\r\\n        <tr *ngIf=\\\"empID!==0\\\">\\r\\n\\r\\n\\r\\n          <td> {{element.TeamName}}</td>\\r\\n          <td> {{element.ProcessName}}</td>\\r\\n\\r\\n          <td> {{element.ActivityName}}</td>\\r\\n\\r\\n          <td>{{element.Parentname}}</td>\\r\\n\\r\\n          <td>{{element.ActivityTypeName}}</td>\\r\\n          <td>{{element.squence}}</td>\\r\\n\\r\\n          <td>\\r\\n\\r\\n            <span>\\r\\n\\r\\n              <a matTooltip=\\\"Edit activity\\\" (click)=\\\"EditActivity(element)\\\"\\r\\n                [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\r\\n                [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['U']),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\"><i\\r\\n                  style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n              &nbsp;&nbsp;&nbsp; <a matTooltip=\\\"Delete activity\\\" (click)=\\\"DeleteActivity(element)\\\"\\r\\n                [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['D'] )?'none':'auto'\\\"\\r\\n                [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['D']),'AddColor':(MenuPermissions[menuName][menuID]['D'])}\\\"><i\\r\\n                  style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n            </span>\\r\\n          </td>\\r\\n\\r\\n        </tr>\\r\\n\\r\\n      </tbody>\\r\\n    </table><br>\\r\\n\\r\\n\\r\\n\\r\\n    <div class=\\\"warningMsg\\\" *ngIf=\\\"(activityData === null||activityData===undefined || activityData.length === 0)\\\">\\r\\n\\r\\n      <span>No data available</span>\\r\\n\\r\\n\\r\\n    </div>\\r\\n  </div>\\r\\n\\r\\n  <div class=\\\"pageContainer\\\" *ngIf=\\\"activityPaging && activityData.length>0\\\">\\r\\n\\r\\n    <div class=\\\"rowsSelection\\\">\\r\\n      <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\r\\n        <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\r\\n          <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\r\\n            {{row}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n\\r\\n\\r\\n    <div class=\\\"pageSelection\\\">\\r\\n\\r\\n      <!-- style=\\\"margin-top: -50px\\\" -->\\r\\n      <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\r\\n    </div>\\r\\n  </div>\\r\\n</div>\\r\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n<div\\r\\n  *ngIf=\\\"data !== 'new' && data !== 'sub' &&data !== 'edit' && data!== 'rearrange' && data!='log'&& data !== 'progress' &&  data !== 'status'\\\">\\r\\n  <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n  <mat-dialog-actions align=\\\"center\\\">\\r\\n    <div *ngIf=\\\"condition\\\">\\r\\n      <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n      <!-- Can optionally provide a result for the closing dialog. -->\\r\\n      <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n    </div>\\r\\n\\r\\n    <div *ngIf=\\\"!condition &&  data !== 'progress' &&  data !== 'status'\\\">\\r\\n      <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n        <div class=\\\"item item-3 \\\">\\r\\n          <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n\\r\\n<div *ngIf=\\\"data === 'new' ||data === 'sub' || data === 'edit' || data === 'rearrange'\\\"><br>\\r\\n  <div class=\\\"XBtn\\\">\\r\\n    <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">&times;</span>\\r\\n  </div>\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowheading\\\">\\r\\n\\r\\n      <h4 class=\\\"alignheader\\\">\\r\\n        <b *ngIf=\\\"data!=='sub' && ParentActivityID==0\\\"> {{data | titlecase}} Activity</b>\\r\\n        <b *ngIf=\\\"data==='sub' || ParentActivityID!==0\\\"><span *ngIf=\\\"data==='sub'\\\">New </span>{{data | titlecase}}<span\\r\\n            *ngIf=\\\"data!=='sub'|| data==='edit'\\\"> Sub </span> Activity</b>\\r\\n        <!-- <b *ngIf=\\\"data==='sub'\\\"> New Sub Activity</b> -->\\r\\n      </h4>\\r\\n    </div>\\r\\n  </div>\\r\\n\\r\\n  <div class=\\\"inputFields\\\">\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n        <mat-placeholder *ngIf=\\\"data!=='sub' && ParentActivityID==0\\\">Activity <span\\r\\n            style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n        <mat-placeholder *ngIf=\\\"data==='sub' || ParentActivityID!==0\\\"> Sub Activity <span\\r\\n            style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n        <input matInput autocomplete=\\\"off\\\" [disabled]='data === \\\"rearrange\\\"' maxlength=\\\"40\\\" id=\\\"lblActivityName\\\"\\r\\n          [(ngModel)]=\\\"ActivityName\\\" value=\\\"\\\">\\r\\n      </mat-form-field>\\r\\n\\r\\n    </div>\\r\\n    <div>\\r\\n\\r\\n      <mat-form-field>\\r\\n        <mat-label *ngIf=\\\"processData.length === 0;else template\\\" style=\\\"color: red;\\\"> Key Process<span\\r\\n            style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-label>\\r\\n        <ng-template #template>\\r\\n          <mat-label>Key Process<span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-label>\\r\\n        </ng-template>\\r\\n        <!-- <mat-placeholder>Key Process <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder> -->\\r\\n        <mat-select (selectionChange)=\\\"process($event)\\\" [(ngModel)]=\\\"ProcessID\\\"\\r\\n          [disabled]=\\\"conditionActivity!='' ||data === 'rearrange' \\\">\\r\\n          <!-- || data==='edit' -->\\r\\n          <mat-option *ngFor=\\\"let data of processData;let i=index;\\\" [value]=\\\"processData[i].ProcessID\\\">\\r\\n            {{processData[i].ProcessName}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div *ngIf=\\\"data==='sub' || data==='process' ||ParentActivityID!==0 || data=='activity'\\\">\\r\\n      <mat-form-field>\\r\\n        <mat-placeholder>Activity <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n        <mat-select\\r\\n          [disabled]=\\\"!ProcessID || data === 'rearrange' || data==='process' || data=='activity' || conditionActivity!==''\\\"\\r\\n          (selectionChange)=\\\"bindSequence($event)\\\" [(ngModel)]=\\\"ParentActivityID\\\">\\r\\n          <mat-option *ngFor=\\\"let data of tempActivity;let i=index;\\\" [value]=\\\"data.ActivityID\\\">\\r\\n            {{data.ActivityName}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n        <mat-label> Team</mat-label>\\r\\n        <mat-select (change)=\\\"setSelected($event.target)\\\" [(ngModel)]=\\\"TeamID\\\" #select class=\\\"\\\" [disabled]=true>\\r\\n          <mat-option *ngFor=\\\"let data of teamData;let i=index;\\\" [value]=\\\"teamData[i].TeamID\\\">\\r\\n            {{teamData[i].TeamName}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n\\r\\n        <mat-placeholder>Sequence <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n        <mat-select [(ngModel)]=\\\"squence\\\">\\r\\n          <mat-option *ngFor=\\\"let data of sequenceList;let i=index;\\\" [value]=\\\"data\\\">\\r\\n            {{data}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div>\\r\\n\\r\\n      <mat-form-field>\\r\\n\\r\\n        <mat-placeholder>Activity Type <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n        <mat-select (selectionChange)=\\\"activityType($event)\\\" [(ngModel)]=\\\"ActivityTypeID\\\"\\r\\n          [disabled]=\\\"data === 'rearrange'\\\">\\r\\n          <mat-option *ngFor=\\\"let activityType of activityTypeData;let i=index;\\\"\\r\\n            [value]=\\\"activityTypeData[i].ActivityTypeID\\\">\\r\\n            {{activityTypeData[i].ActivityTypeName}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n\\r\\n    </div>\\r\\n\\r\\n  </div>\\r\\n\\r\\n  <!-- <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n      <div id=\\\"Rowwrapper\\\">\\r\\n        <div id=\\\"RowtableAction\\\">\\r\\n          <div id=\\\"field\\\">\\r\\n           <mat-form-field >\\r\\n              <mat-placeholder *ngIf=\\\"data!=='sub' && ParentActivityID==0\\\">Activity  <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n              <mat-placeholder *ngIf=\\\"data==='sub' || ParentActivityID!==0\\\"> Sub Activity <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n              <input matInput autocomplete=\\\"off\\\" [disabled]='data === \\\"rearrange\\\"' maxlength=\\\"40\\\"  id=\\\"lblActivityName\\\" [(ngModel)]=\\\"ActivityName\\\" \\r\\n            value=\\\"\\\">\\r\\n           </mat-form-field>\\r\\n\\r\\n      </div>\\r\\n      <div >\\r\\n        </div>\\r\\n        <div  id=\\\"field\\\">\\r\\n\\r\\n            <mat-form-field >\\r\\n              <mat-label *ngIf=\\\"processData.length === 0;else template\\\" style=\\\"color: red;\\\"> Key Process<span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-label>\\r\\n              <ng-template #template><mat-label>Key Process<span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-label></ng-template>\\r\\n            \\r\\n               <mat-select (selectionChange)=\\\"process($event)\\\" [(ngModel)]=\\\"ProcessID\\\" [disabled]=\\\"conditionActivity!='' ||data === 'rearrange' \\\">\\r\\n               \\r\\n                 <mat-option *ngFor=\\\"let data of processData;let i=index;\\\" [value]=\\\"processData[i].ProcessID\\\" >\\r\\n                   {{processData[i].ProcessName}}\\r\\n                 </mat-option>\\r\\n               </mat-select>\\r\\n             </mat-form-field> \\r\\n       </div>\\r\\n       \\r\\n        \\r\\n        <div >\\r\\n        </div>\\r\\n        <div  id=\\\"field\\\" >\\r\\n            <mat-form-field *ngIf=\\\"data==='sub' || data==='process' ||ParentActivityID!==0 || data=='activity'\\\" >\\r\\n               <mat-placeholder>Activity <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n               <mat-select [disabled]=\\\"!ProcessID || data === 'rearrange' || data==='process' || data=='activity' || conditionActivity!==''\\\" (selectionChange)=\\\"bindSequence($event)\\\"   [(ngModel)]=\\\"ParentActivityID\\\">\\r\\n                <mat-option *ngFor=\\\"let data of tempActivity;let i=index;\\\" [value]=\\\"data.ActivityID\\\" >\\r\\n                  {{data.ActivityName}}\\r\\n                </mat-option>\\r\\n              </mat-select>\\r\\n            </mat-form-field> \\r\\n            </div> \\r\\n       </div>\\r\\n      </div>\\r\\n    </div>\\r\\n            \\r\\n    <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n       <div id=\\\"Rowwrapper\\\">\\r\\n           <div id=\\\"RowtableAction\\\">\\r\\n              <div id=\\\"field\\\">\\r\\n               <mat-form-field>\\r\\n                 <mat-label> Team</mat-label>\\r\\n                 <mat-select (change)=\\\"setSelected($event.target)\\\"\\r\\n           \\r\\n              [(ngModel)]=\\\"TeamID\\\"  #select  class=\\\"\\\" [disabled]=true>\\r\\n                <mat-option *ngFor=\\\"let data of teamData;let i=index;\\\" [value]=\\\"teamData[i].TeamID\\\" >\\r\\n                  {{teamData[i].TeamName}}\\r\\n                </mat-option>\\r\\n              </mat-select>\\r\\n            </mat-form-field>\\r\\n            \\r\\n   \\r\\n        </div>\\r\\n       \\r\\n          <div>\\r\\n            </div>\\r\\n            <div id=\\\"field\\\">\\r\\n                <mat-form-field >\\r\\n                    \\r\\n                    <mat-placeholder>Sequence <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n                    <mat-select  [(ngModel)]=\\\"squence\\\" >\\r\\n                      <mat-option *ngFor=\\\"let data of sequenceList;let i=index;\\\" [value]=\\\"data\\\" >\\r\\n                        {{data}}\\r\\n                      </mat-option>\\r\\n                    </mat-select>\\r\\n                  </mat-form-field> \\r\\n            </div>\\r\\n              \\r\\n            <div >\\r\\n            </div>\\r\\n          <div >\\r\\n            </div>\\r\\n           \\r\\n      <br>\\r\\n    </div>\\r\\n       </div></div>\\r\\n\\r\\n\\r\\n       <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n        <div id=\\\"Rowwrapper\\\">\\r\\n          <div id=\\\"RowtableAction\\\">\\r\\n            <div id=\\\"field\\\">\\r\\n    \\r\\n            <mat-form-field>\\r\\n                \\r\\n                <mat-placeholder>Activity Type <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n                <mat-select (selectionChange)=\\\"activityType($event)\\\" [(ngModel)]=\\\"ActivityTypeID\\\" [disabled]=\\\"data === 'rearrange'\\\">\\r\\n                  <mat-option *ngFor=\\\"let activityType of activityTypeData;let i=index;\\\" [value]=\\\"activityTypeData[i].ActivityTypeID\\\" >\\r\\n                    {{activityTypeData[i].ActivityTypeName}}\\r\\n                  </mat-option>\\r\\n                </mat-select>\\r\\n              </mat-form-field>\\r\\n\\r\\n        <br>\\r\\n       \\r\\n      </div>\\r\\n    \\r\\n\\r\\n    <div  >\\r\\n    </div>\\r\\n  </div>\\r\\n  </div>\\r\\n       </div> -->\\r\\n\\r\\n\\r\\n  <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n    <div class=\\\"item item-1\\\" fxFlex=\\\"35%\\\" style=\\\"display: none;\\\">\\r\\n\\r\\n      <mat-form-field>\\r\\n\\r\\n        <mat-placeholder>Employee <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n        <mat-select (selectionChange)=\\\"employee($event)\\\" [disabled]='data === \\\"rearrange\\\"' [(ngModel)]=\\\"EmployeeID\\\">\\r\\n          <mat-option *ngFor=\\\"let data of employeeData;let i=index;\\\" [value]=\\\"employeeData[i].EmployeeID\\\">\\r\\n            {{employeeData[i].EmployeeName}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n\\r\\n\\r\\n    <div class=\\\"item item-1\\\" fxFlex=\\\"3%\\\">\\r\\n    </div>\\r\\n    <div class=\\\"item item-1\\\" fxFlex=\\\"35%\\\" style=\\\"display: none;\\\">\\r\\n\\r\\n      <mat-form-field>\\r\\n\\r\\n        <mat-placeholder>Department <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n        <mat-select (selectionChange)=\\\"department($event)\\\" [disabled]='data === \\\"rearrange\\\"' [(ngModel)]=\\\"DepartmentID\\\">\\r\\n          <mat-option *ngFor=\\\"let data of departmentData;let i=index;\\\" [value]=\\\"departmentData[i].DepartmentID\\\">\\r\\n            {{departmentData[i].DepartmentName}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div class=\\\"item item-1\\\" fxFlex=\\\"25%\\\">\\r\\n    </div>\\r\\n  </div>\\r\\n  <br>\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowwrapper\\\">\\r\\n      <div id=\\\"RowtableActions\\\">\\r\\n        <div id=\\\"buttonview\\\">\\r\\n          <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"AddActivity()\\\" [disabled]=\\\"btnDisabled\\\"><span\\r\\n              *ngIf=\\\"data === 'new' ||data === 'sub' || data==='rearrange'\\\">Save</span><span\\r\\n              *ngIf=\\\"data === 'edit'\\\">Update</span></button>\\r\\n\\r\\n        </div>\\r\\n\\r\\n        <div id=\\\"buttonview\\\">\\r\\n          <button mat-accent class=\\\"addButtons btn\\\" (click)='Clear()'>Cancel</button>\\r\\n        </div>\\r\\n\\r\\n      </div>\\r\\n    </div>\\r\\n  </div>\\r\\n\\r\\n  <br>\\r\\n  <mat-dialog-content class=\\\"warningMsg\\\">{{dataSelf}}</mat-dialog-content>\\r\\n  <mat-dialog-content class=\\\"successMsg\\\"></mat-dialog-content>\\r\\n\"","module.exports = \"<div class=\\\"m-2\\\">\\r\\n    <div class=\\\"row form-group\\\">\\r\\n        <div class=\\\"col-sm-1 col-md-1 col-lg-1\\\">\\r\\n            <button class=\\\"btn btn-default\\\" [routerLink]=\\\"['/performance-score-card']\\\"\\r\\n                matTooltip=\\\"Back to Score Card List\\\">Back\\r\\n            </button>\\r\\n        </div>\\r\\n        <div class=\\\"col-sm-11 col-md-11 col-lg-11 text-center\\\">\\r\\n            <h5 class=\\\"text-underline\\\">Performance Score Card</h5>\\r\\n        </div>\\r\\n    </div>\\r\\n    <mat-card>\\r\\n        <div class=\\\"row form-group\\\">\\r\\n            <div class=\\\"col-sm-3 col-md-3 col-lg-3\\\">\\r\\n                <span><b>Score Card Type:</b> </span> {{scoreCard.ScoreCardType}}\\r\\n            </div>\\r\\n            <div class=\\\"col-sm-4  col-md-4 col-lg-4\\\">\\r\\n                <span><b>Department Name:</b> </span> {{scoreCard.DepartmentName}}\\r\\n            </div>\\r\\n            <div class=\\\"col-sm-3  col-md-3 col-lg-3\\\" *ngIf=\\\"teamName\\\">\\r\\n                <span><b>Team Name:</b></span> {{teamName}}\\r\\n            </div>\\r\\n        </div>\\r\\n    </mat-card>\\r\\n    <br>\\r\\n    <mat-accordion class=\\\"example-headers-align\\\" style=\\\"width: 100%;\\\">\\r\\n        <!-- <mat-expansion-panel [expanded]=\\\"step === 0\\\" (opened)=\\\"setStep(0)\\\" hideToggle>\\r\\n            <mat-expansion-panel-header>\\r\\n                <mat-panel-title>\\r\\n                    Score Card Details\\r\\n                </mat-panel-title>\\r\\n            </mat-expansion-panel-header>\\r\\n            <div class=\\\"row form-group\\\">\\r\\n                <div class=\\\"col-sm-3 col-md-3 col-lg-3\\\">\\r\\n                    <label>Score Card Type : </label> {{scoreCard.ScoreCardType}}\\r\\n                </div>\\r\\n                <div class=\\\"col-sm-3  col-md-3 col-lg-3\\\">\\r\\n                    <label>Department Name : </label> {{scoreCard.DepartmentName}}\\r\\n                </div>\\r\\n                <div class=\\\"col-sm-3  col-md-3 col-lg-3\\\" *ngIf=\\\"teamName\\\">\\r\\n                    <label>Team Name :</label> {{teamName}}\\r\\n                </div>\\r\\n            </div>\\r\\n            <mat-action-row>\\r\\n                <button mat-button color=\\\"primary\\\" (click)=\\\"nextStep()\\\">Next</button>\\r\\n            </mat-action-row>\\r\\n        </mat-expansion-panel> -->\\r\\n\\r\\n        <mat-expansion-panel [expanded]=\\\"step === 0\\\" (opened)=\\\"setStep(0)\\\" hideToggle>\\r\\n            <mat-expansion-panel-header>\\r\\n                <mat-panel-title>\\r\\n                    <div class=\\\"row w-100\\\">\\r\\n                        <div class=\\\"col-sm-3 col-md-3 col-lg-3\\\">\\r\\n                            <span>Quarter Details</span>\\r\\n                        </div>\\r\\n                        <div class=\\\"col-sm-5 col-md-5 col-lg-5\\\" style=\\\"font-weight: 100;font-size: small;\\\"\\r\\n                            *ngIf=\\\"quarterName\\\">\\r\\n                            <span>Selected Quarter - {{quarterName}}</span>\\r\\n                        </div>\\r\\n                        <div class=\\\"col-sm-4 col-md-4 col-lg-4\\\" style=\\\"font-weight: 100;font-size: small;\\\"\\r\\n                            *ngIf=\\\"selectedYearName\\\">\\r\\n                            <span>Selected Year - {{selectedYearName}}</span>\\r\\n                        </div>\\r\\n                    </div>\\r\\n                </mat-panel-title>\\r\\n            </mat-expansion-panel-header>\\r\\n            <div class=\\\"p-t-20\\\">\\r\\n                <mat-form-field>\\r\\n                    <mat-label> Select Quarter <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\r\\n                    <mat-select [disabled]=\\\"scoreCardMasterId != 0 ? true : false\\\" [(ngModel)]=\\\"selectedQuarterId\\\">\\r\\n                        <mat-option *ngFor=\\\"let quarter of quarterList;\\\" [value]=\\\"quarter.QuarterId\\\">\\r\\n                            {{quarter.QuarterName}}\\r\\n                        </mat-option>\\r\\n                    </mat-select>\\r\\n                </mat-form-field>\\r\\n                <mat-form-field>\\r\\n                    <input matInput autocomplete=\\\"off\\\" readonly='true'\\r\\n                        [disabled]=\\\"scoreCardMasterId != 0 ? true : false\\\" [(ngModel)]=\\\"selectedYear\\\" minMode=\\\"year\\\"\\r\\n                        [minDate]=\\\"minDate\\\" [maxDate]=\\\"maxDate\\\" placeholder=\\\"YYYY\\\" bsDatepicker\\r\\n                        [bsConfig]=\\\"YearPickerConfig\\\" [outsideClick]=\\\"true\\\">\\r\\n                    <mat-label>Select Year<span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\r\\n                </mat-form-field>\\r\\n                <div *ngIf=\\\"quarterDetails.length === 0\\\" class=\\\"quarter-message\\\">\\r\\n                    No Quarters generated for this company\\r\\n                </div>\\r\\n            </div>\\r\\n            <mat-action-row>\\r\\n                <!-- <button mat-button color=\\\"warn\\\" (click)=\\\"prevStep()\\\">Previous</button> -->\\r\\n                <button mat-button color=\\\"primary\\\" (click)=\\\"getMetrics()\\\">Next</button>\\r\\n            </mat-action-row>\\r\\n        </mat-expansion-panel>\\r\\n\\r\\n        <mat-expansion-panel [expanded]=\\\"step === 1\\\" (opened)=\\\"setStep(1)\\\" hideToggle>\\r\\n            <mat-expansion-panel-header>\\r\\n                <mat-panel-title>Metric List</mat-panel-title>\\r\\n            </mat-expansion-panel-header>\\r\\n            <div class=\\\"warningMsg\\\" style=\\\"margin-top: 10px;\\\" *ngIf=\\\"pscMetricDetails.length === 0 \\\">\\r\\n                <span>No metrics available</span>\\r\\n            </div>\\r\\n            <div class=\\\"p-t-20\\\" *ngIf=\\\"pscMetricDetails.length != 0 \\\">\\r\\n                <div class=\\\"row\\\">\\r\\n                    <ng-container *ngFor=\\\"let metric of pscMetricDetails\\\">\\r\\n                        <div class=\\\"col-sm-3\\\">\\r\\n                            <mat-checkbox [(ngModel)]=\\\"metric.IsSelected\\\" (change)=\\\"metricChange(metric)\\\">\\r\\n                                {{metric.Description}}\\r\\n                            </mat-checkbox>\\r\\n                        </div>\\r\\n                    </ng-container>\\r\\n\\r\\n                </div>\\r\\n            </div>\\r\\n            <mat-action-row>\\r\\n                <button mat-button color=\\\"warn\\\" (click)=\\\"goToQuarterSelection()\\\">Previous</button>\\r\\n                <button mat-button color=\\\"primary\\\" (click)=\\\"getSelectedMetrics()\\\">Next</button>\\r\\n            </mat-action-row>\\r\\n        </mat-expansion-panel>\\r\\n        <mat-expansion-panel [expanded]=\\\"step === 2\\\" (opened)=\\\"setStep(2)\\\" hideToggle>\\r\\n            <mat-expansion-panel-header>\\r\\n                <mat-panel-title>\\r\\n                    Selected Metrics\\r\\n                </mat-panel-title>\\r\\n            </mat-expansion-panel-header>\\r\\n            <div class=\\\"p-t-20\\\">\\r\\n                <div class=\\\"table-responsive\\\" style=\\\"font-size: small;\\\">\\r\\n                    <table class=\\\"table table-bordered\\\" id=\\\"table1\\\">\\r\\n                        <thead>\\r\\n                            <tr>\\r\\n                                <th class=\\\"min-width-100 text-center v-m\\\" rowspan=\\\"2\\\">Goal</th>\\r\\n                                <th class=\\\"min-width-100\\\" rowspan=\\\"2\\\">Metric</th>\\r\\n                                <th class=\\\"min-width-500\\\" style=\\\"padding: 0px;border: 0px;\\\">\\r\\n                                    <div class=\\\"\\\" style=\\\"text-align: center;\\\">Target</div>\\r\\n                                    <hr style=\\\"margin: 0;background-color: white;\\\">\\r\\n                                    <div class=\\\"row text-center p-0 m-0 min-width-500\\\">\\r\\n                                        <div class=\\\"col\\\"> Green</div>\\r\\n                                        <div class=\\\"col\\\">Yellow</div>\\r\\n                                        <div class=\\\"col\\\">Red</div>\\r\\n                                    </div>\\r\\n                                </th>\\r\\n                                <th>Frequency</th>\\r\\n                                <th>UOM</th>\\r\\n                            </tr>\\r\\n                        </thead>\\r\\n                        <tbody id=\\\"databody\\\">\\r\\n                            <tr *ngFor=\\\"let metric of selectedMetrics\\\">\\r\\n                                <td class=\\\"min-width-100 text-center v-m\\\" [attr.rowspan]=\\\"metric.goalSpan\\\"\\r\\n                                    *ngIf=\\\"metric.goalSpan\\\">\\r\\n                                    {{metric.GoalName}}</td>\\r\\n                                <td class=\\\"min-width-100\\\">{{metric.Description}}</td>\\r\\n                                <td class=\\\"min-width-500\\\">\\r\\n                                    <div class=\\\"row\\\">\\r\\n                                        <div class=\\\"col p-r-0\\\" style=\\\"display: flex;\\\">\\r\\n                                            <select [(ngModel)]=\\\"metric.GreenTargetSymbol\\\"\\r\\n                                                (change)=\\\"targetChange(metric)\\\">\\r\\n                                                <option [value]=\\\"null\\\">Select</option>\\r\\n                                                <option *ngFor=\\\"let symbol of targetSymbolsList;\\\" [value]=\\\"symbol\\\">\\r\\n                                                    {{symbol == '==' ? '=' : symbol}}\\r\\n                                                </option>\\r\\n                                            </select>&nbsp;\\r\\n                                            <input class=\\\"target-width\\\" numbersOnly\\r\\n                                                [disabled]=\\\"metric.GreenTargetSymbol == 'Yes' || metric.GreenTargetSymbol == 'No' ? true : false\\\"\\r\\n                                                [(ngModel)]=\\\"metric.GreenMinimum\\\" (change)=\\\"setTargets(metric)\\\">\\r\\n                                            <span class=\\\"f-b\\\" *ngIf=\\\"!metric.GreenTargetSymbol\\\">&nbsp;-&nbsp;</span>\\r\\n                                            <input *ngIf=\\\"!metric.GreenTargetSymbol\\\" class=\\\"target-width\\\" numbersOnly\\r\\n                                                [(ngModel)]=\\\"metric.GreenMaximum\\\" (change)=\\\"setTargets(metric)\\\">\\r\\n                                        </div>\\r\\n                                        <div class=\\\"col p-r-0\\\" style=\\\"display: flex;\\\">\\r\\n                                            <select (change)=\\\"targetChange(metric)\\\"\\r\\n                                                [(ngModel)]=\\\"metric.YellowTargetSymbol\\\">\\r\\n                                                <option [value]=\\\"null\\\">Select</option>\\r\\n                                                <option *ngFor=\\\"let symbol of targetSymbolsList;\\\" [value]=\\\"symbol\\\">\\r\\n                                                    {{symbol == '==' ? '=' : symbol}}\\r\\n                                                </option>\\r\\n                                            </select>&nbsp;\\r\\n                                            <input class=\\\"target-width\\\" numbersOnly\\r\\n                                                [disabled]=\\\"metric.YellowTargetSymbol == 'Yes' || metric.YellowTargetSymbol == 'No' ? true : false\\\"\\r\\n                                                [(ngModel)]=\\\"metric.YellowMinimum\\\" (change)=\\\"setTargets(metric)\\\">\\r\\n                                            <span *ngIf=\\\"!metric.YellowTargetSymbol\\\" class=\\\"f-b\\\">&nbsp;-&nbsp;</span>\\r\\n                                            <input *ngIf=\\\"!metric.YellowTargetSymbol\\\" class=\\\"target-width\\\" numbersOnly\\r\\n                                                [(ngModel)]=\\\"metric.YellowMaximum\\\" (change)=\\\"setTargets(metric)\\\">\\r\\n                                        </div>\\r\\n                                        <div class=\\\"col p-r-0\\\" style=\\\"display: flex;\\\">\\r\\n                                            <select (change)=\\\"targetChange(metric)\\\"\\r\\n                                                [(ngModel)]=\\\"metric.RedTargetSymbol\\\">\\r\\n                                                <option [value]=\\\"null\\\">Select</option>\\r\\n                                                <option *ngFor=\\\"let symbol of targetSymbolsList;\\\" [value]=\\\"symbol\\\">\\r\\n                                                    {{symbol == '==' ? '=' : symbol}}\\r\\n                                                </option>\\r\\n                                            </select>&nbsp;\\r\\n                                            <input class=\\\"target-width\\\" numbersOnly\\r\\n                                                [disabled]=\\\"metric.RedTargetSymbol == 'Yes' || metric.RedTargetSymbol == 'No' ? true : false\\\"\\r\\n                                                [(ngModel)]=\\\"metric.RedMinimum\\\" (change)=\\\"setTargets(metric)\\\">\\r\\n                                            <span *ngIf=\\\"!metric.RedTargetSymbol\\\" class=\\\"f-b\\\">&nbsp;-&nbsp;</span>\\r\\n                                            <input *ngIf=\\\"!metric.RedTargetSymbol\\\" class=\\\"target-width\\\" numbersOnly\\r\\n                                                [(ngModel)]=\\\"metric.RedMaximum\\\" (change)=\\\"setTargets(metric)\\\">\\r\\n                                        </div>\\r\\n                                    </div>\\r\\n                                </td>\\r\\n                                <td>\\r\\n                                    <select [(ngModel)]=\\\"metric.Frequency\\\">\\r\\n                                        <option [value]=\\\"null\\\">Select Frequency</option>\\r\\n                                        <option *ngFor=\\\"let frequency of frequencies;\\\" [value]=\\\"frequency\\\">\\r\\n                                            {{frequency}}\\r\\n                                        </option>\\r\\n                                    </select>\\r\\n                                </td>\\r\\n                                <td><input [(ngModel)]=\\\"metric.UOM\\\" /></td>\\r\\n                            </tr>\\r\\n                        </tbody>\\r\\n                    </table>\\r\\n                </div>\\r\\n            </div>\\r\\n\\r\\n            <mat-action-row>\\r\\n                <button mat-button color=\\\"warn\\\" (click)=\\\"goToMetricList()\\\">Previous</button>\\r\\n                <button mat-button color=\\\"primary\\\" (click)=\\\"generateWeeks()\\\">Next</button>\\r\\n            </mat-action-row>\\r\\n        </mat-expansion-panel>\\r\\n        <mat-expansion-panel [expanded]=\\\"step === 3\\\" (opened)=\\\"setStep(3)\\\" hideToggle>\\r\\n            <mat-expansion-panel-header>\\r\\n                <mat-panel-title>\\r\\n                    Generated Weeks\\r\\n                </mat-panel-title>\\r\\n            </mat-expansion-panel-header>\\r\\n            <div class=\\\"p-t-20\\\">\\r\\n                <div class=\\\"table-responsive\\\" style=\\\"font-size: small;\\\">\\r\\n                    <table class=\\\"table table-bordered\\\" id=\\\"table1\\\" *ngIf=\\\"WeekDateList.length > 0\\\">\\r\\n                        <thead>\\r\\n                            <tr>\\r\\n                                <th rowspan=\\\"2\\\" class=\\\"min-width headcol text-center\\\">Goal</th>\\r\\n                                <th rowspan=\\\"2\\\" class=\\\"min-width headcol1 text-center\\\">Metric</th>\\r\\n                                <th style=\\\"padding: 0px;border: 0px;\\\">\\r\\n                                    <div class=\\\"\\\" style=\\\"text-align: center;\\\">\\r\\n                                        Target\\r\\n                                    </div>\\r\\n                                    <hr style=\\\"margin: 0;background-color: white;\\\">\\r\\n                                    <div class=\\\"row text-center m-0\\\">\\r\\n                                        <div class=\\\"col\\\">\\r\\n                                            Green\\r\\n                                        </div>\\r\\n                                        <div class=\\\"col\\\">\\r\\n                                            Yellow\\r\\n                                        </div>\\r\\n                                        <div class=\\\"col\\\">\\r\\n                                            Red\\r\\n                                        </div>\\r\\n                                    </div>\\r\\n                                </th>\\r\\n                                <th>Frequency</th>\\r\\n                                <th>UOM</th>\\r\\n                                <th class=\\\"w-50\\\">\\r\\n                                    <div>Wk 1</div>\\r\\n                                    <div>({{WeekDateList[0].label}})</div>\\r\\n                                </th>\\r\\n                                <th class=\\\"w-50\\\">\\r\\n                                    <div>Wk 2</div>\\r\\n                                    <div>({{WeekDateList[1].label}})</div>\\r\\n                                </th>\\r\\n                                <th class=\\\"w-50\\\">\\r\\n                                    <div>Wk 3</div>\\r\\n                                    <div>({{WeekDateList[2].label}})</div>\\r\\n                                </th>\\r\\n                                <th class=\\\"w-50\\\">\\r\\n                                    <div>Wk 4 </div>\\r\\n                                    <div>({{WeekDateList[3].label}})</div>\\r\\n                                </th>\\r\\n                                <th class=\\\"w-50\\\">\\r\\n                                    <div>Wk 5</div>\\r\\n                                    <div>({{WeekDateList[4].label}})</div>\\r\\n                                </th>\\r\\n                                <th class=\\\"w-50\\\">\\r\\n                                    <div>Wk 6</div>\\r\\n                                    <div>({{WeekDateList[5].label}})</div>\\r\\n                                </th>\\r\\n                                <th class=\\\"w-50\\\">\\r\\n                                    <div>Wk 7</div>\\r\\n                                    <div> ({{WeekDateList[6].label}})</div>\\r\\n                                </th>\\r\\n                                <th class=\\\"w-50\\\">\\r\\n                                    <div>Wk 8</div>\\r\\n                                    <div> ({{WeekDateList[7].label}})</div>\\r\\n                                </th>\\r\\n                                <th class=\\\"w-50\\\">\\r\\n                                    <div>Wk 9</div>\\r\\n                                    <div> ({{WeekDateList[8].label}})</div>\\r\\n                                </th>\\r\\n                                <th class=\\\"w-50\\\">\\r\\n                                    <div>Wk 10</div>\\r\\n                                    <div> ({{WeekDateList[9].label}})</div>\\r\\n                                </th>\\r\\n                                <th class=\\\"w-50\\\">\\r\\n                                    <div>Wk 11</div>\\r\\n                                    <div> ({{WeekDateList[10].label}})</div>\\r\\n                                </th>\\r\\n                                <th class=\\\"w-50\\\">\\r\\n                                    <div>Wk 12</div>\\r\\n                                    <div>({{WeekDateList[11].label}})</div>\\r\\n                                </th>\\r\\n                                <th class=\\\"w-50\\\" *ngIf=\\\"WeekDateList[12]\\\">\\r\\n                                    <div>Wk 13</div>\\r\\n                                    <div>({{WeekDateList[12].label}})</div>\\r\\n                                </th>\\r\\n                                <th class=\\\"w-50\\\" *ngIf=\\\"WeekDateList[13]\\\">\\r\\n                                    <div>Wk 14</div>\\r\\n                                    <div>({{WeekDateList[13].label}})</div>\\r\\n                                </th>\\r\\n                            </tr>\\r\\n                        </thead>\\r\\n                        <tbody id=\\\"databody\\\">\\r\\n                            <tr *ngFor=\\\"let metric of selectedMetrics\\\">\\r\\n                                <td class=\\\"min-width bodycol\\\" [attr.rowspan]=\\\"metric.goalSpan\\\" *ngIf=\\\"metric.goalSpan\\\">\\r\\n                                    {{metric.GoalName}}</td>\\r\\n                                <td class=\\\"min-width bodycol1\\\">{{metric.Description}}</td>\\r\\n                                <td class=\\\"min-width-300\\\">\\r\\n                                    <div class=\\\"row text-center\\\">\\r\\n                                        <div class=\\\"col\\\" style=\\\"width:100px;flex-wrap: inherit;\\\">\\r\\n                                            <span\\r\\n                                                *ngIf=\\\"(metric.GreenTargetSymbol) && (metric.GreenTargetSymbol != '==')\\\">{{metric.GreenTargetSymbol}}</span>&nbsp;\\r\\n                                            <span\\r\\n                                                *ngIf=\\\"(metric.GreenTargetSymbol) && (metric.GreenTargetSymbol == '==')\\\">=</span>&nbsp;\\r\\n                                            <span\\r\\n                                                *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && metric.GreenTargetSymbol != 'No'\\\">{{metric.GreenMinimum}}</span>\\r\\n                                            <span *ngIf=\\\"!metric.GreenTargetSymbol\\\" class=\\\"f-b\\\">&nbsp;-&nbsp;</span>\\r\\n                                            <span *ngIf=\\\"!metric.GreenTargetSymbol\\\">{{metric.GreenMaximum}}</span>\\r\\n                                        </div>\\r\\n                                        <div class=\\\"col\\\" style=\\\"width:100px;flex-wrap: inherit;\\\">\\r\\n                                            <span\\r\\n                                                *ngIf=\\\"metric.YellowTargetSymbol && metric.YellowTargetSymbol != '=='\\\">{{metric.YellowTargetSymbol}}</span>&nbsp;\\r\\n                                            <span\\r\\n                                                *ngIf=\\\"metric.YellowTargetSymbol && metric.YellowTargetSymbol == '=='\\\">=</span>&nbsp;\\r\\n                                            <span\\r\\n                                                *ngIf=\\\"metric.YellowTargetSymbol != 'Yes' && metric.YellowTargetSymbol != 'No'\\\">{{metric.YellowMinimum}}</span>\\r\\n                                            <span *ngIf=\\\"!metric.YellowTargetSymbol\\\" class=\\\"f-b\\\">&nbsp;-&nbsp;</span>\\r\\n                                            <span *ngIf=\\\"!metric.YellowTargetSymbol\\\">{{metric.YellowMaximum}}</span>\\r\\n                                        </div>\\r\\n                                        <div class=\\\"col\\\" style=\\\"width:100px;flex-wrap: inherit;\\\">\\r\\n                                            <span\\r\\n                                                *ngIf=\\\"metric.RedTargetSymbol && metric.RedTargetSymbol != '=='\\\">{{metric.RedTargetSymbol}}</span>&nbsp;\\r\\n                                            <span\\r\\n                                                *ngIf=\\\"metric.RedTargetSymbol && metric.RedTargetSymbol == '=='\\\">=</span>&nbsp;\\r\\n                                            <span\\r\\n                                                *ngIf=\\\"metric.RedTargetSymbol != 'Yes' && metric.RedTargetSymbol != 'No'\\\">{{metric.RedMinimum}}</span>\\r\\n                                            <span *ngIf=\\\"!metric.RedTargetSymbol\\\" class=\\\"f-b\\\">&nbsp;-&nbsp;</span>\\r\\n                                            <span *ngIf=\\\"!metric.RedTargetSymbol\\\">{{metric.RedMaximum}}</span>\\r\\n                                        </div>\\r\\n                                    </div>\\r\\n                                </td>\\r\\n                                <td><span>{{metric.Frequency}}</span></td>\\r\\n                                <td><span>{{metric.UOM}}</span></td>\\r\\n                                <td class=\\\"w-80\\\" [attr.colspan]=\\\"metric.Frequency == 'Weekly' ? '1' : '4'\\\">\\r\\n                                    <!-- <input class=\\\"w-50\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\"\\r\\n                                        [(ngModel)]=\\\"metric.Week1\\\" /> -->\\r\\n\\r\\n                                    <select class=\\\"w-100\\\" [(ngModel)]=\\\"metric.Week1\\\" *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                                                    metric.YellowTargetSymbol == 'Yes' ||\\r\\n                                                    metric.RedTargetSymbol == 'Yes' ||\\r\\n                                                    metric.GreenTargetSymbol == 'No' ||\\r\\n                                                    metric.YellowTargetSymbol == 'No' ||\\r\\n                                                    metric.RedTargetSymbol == 'No'\\\">\\r\\n                                        <option value=\\\"0\\\">Select</option>\\r\\n                                        <option value=\\\"2\\\">Yes</option>\\r\\n                                        <option value=\\\"1\\\">No</option>\\r\\n                                    </select>\\r\\n                                    <input class=\\\"w-100\\\" numbersOnly [(ngModel)]=\\\"metric.Week1\\\" *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                                                    metric.GreenTargetSymbol != 'No' &&\\r\\n                                                    metric.YellowTargetSymbol != 'Yes' &&\\r\\n                                                    metric.YellowTargetSymbol != 'No' &&\\r\\n                                                    metric.RedTargetSymbol != 'Yes' &&\\r\\n                                                    metric.RedTargetSymbol != 'No'\\\" />\\r\\n                                </td>\\r\\n                                <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\">\\r\\n                                    <!-- <input class=\\\"w-50\\\" [(ngModel)]=\\\"metric.Week2\\\" /> -->\\r\\n                                    <select class=\\\"w-100\\\" [(ngModel)]=\\\"metric.Week2\\\" *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                                                    metric.YellowTargetSymbol == 'Yes' ||\\r\\n                                                    metric.RedTargetSymbol == 'Yes' ||\\r\\n                                                    metric.GreenTargetSymbol == 'No' ||\\r\\n                                                    metric.YellowTargetSymbol == 'No' ||\\r\\n                                                    metric.RedTargetSymbol == 'No'\\\">\\r\\n                                        <option value=\\\"0\\\">Select</option>\\r\\n                                        <option value=\\\"2\\\">Yes</option>\\r\\n                                        <option value=\\\"1\\\">No</option>\\r\\n                                    </select>\\r\\n                                    <input class=\\\"w-100\\\" numbersOnly [(ngModel)]=\\\"metric.Week2\\\" *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                                                    metric.GreenTargetSymbol != 'No' &&\\r\\n                                                    metric.YellowTargetSymbol != 'Yes' &&\\r\\n                                                    metric.YellowTargetSymbol != 'No' &&\\r\\n                                                    metric.RedTargetSymbol != 'Yes' &&\\r\\n                                                    metric.RedTargetSymbol != 'No'\\\" />\\r\\n                                </td>\\r\\n                                <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\">\\r\\n                                    <!-- <input class=\\\"w-50\\\" [(ngModel)]=\\\"metric.Week3\\\" /> -->\\r\\n                                    <select class=\\\"w-100\\\" [(ngModel)]=\\\"metric.Week3\\\" *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                                                    metric.YellowTargetSymbol == 'Yes' ||\\r\\n                                                    metric.RedTargetSymbol == 'Yes' ||\\r\\n                                                    metric.GreenTargetSymbol == 'No' ||\\r\\n                                                    metric.YellowTargetSymbol == 'No' ||\\r\\n                                                    metric.RedTargetSymbol == 'No'\\\">\\r\\n                                        <option value=\\\"0\\\">Select</option>\\r\\n                                        <option value=\\\"2\\\">Yes</option>\\r\\n                                        <option value=\\\"1\\\">No</option>\\r\\n                                    </select>\\r\\n                                    <input class=\\\"w-100\\\" numbersOnly [(ngModel)]=\\\"metric.Week3\\\" *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                                                    metric.GreenTargetSymbol != 'No' &&\\r\\n                                                    metric.YellowTargetSymbol != 'Yes' &&\\r\\n                                                    metric.YellowTargetSymbol != 'No' &&\\r\\n                                                    metric.RedTargetSymbol != 'Yes' &&\\r\\n                                                    metric.RedTargetSymbol != 'No'\\\" />\\r\\n                                </td>\\r\\n                                <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\">\\r\\n                                    <!-- <input class=\\\"w-50\\\" [(ngModel)]=\\\"metric.Week4\\\" /> -->\\r\\n                                    <select class=\\\"w-100\\\" [(ngModel)]=\\\"metric.Week4\\\" *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                                                    metric.YellowTargetSymbol == 'Yes' ||\\r\\n                                                    metric.RedTargetSymbol == 'Yes' ||\\r\\n                                                    metric.GreenTargetSymbol == 'No' ||\\r\\n                                                    metric.YellowTargetSymbol == 'No' ||\\r\\n                                                    metric.RedTargetSymbol == 'No'\\\">\\r\\n                                        <option value=\\\"0\\\">Select</option>\\r\\n                                        <option value=\\\"2\\\">Yes</option>\\r\\n                                        <option value=\\\"1\\\">No</option>\\r\\n                                    </select>\\r\\n                                    <input class=\\\"w-100\\\" numbersOnly [(ngModel)]=\\\"metric.Week4\\\" *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                                                    metric.GreenTargetSymbol != 'No' &&\\r\\n                                                    metric.YellowTargetSymbol != 'Yes' &&\\r\\n                                                    metric.YellowTargetSymbol != 'No' &&\\r\\n                                                    metric.RedTargetSymbol != 'Yes' &&\\r\\n                                                    metric.RedTargetSymbol != 'No'\\\" />\\r\\n                                </td>\\r\\n                                <td class=\\\"w-80\\\" [attr.colspan]=\\\"metric.Frequency == 'Weekly' ? '1' : '4'\\\">\\r\\n\\r\\n                                    <!-- <input class=\\\"w-100\\\" [(ngModel)]=\\\"metric.Week5\\\" /> -->\\r\\n                                    <select class=\\\"w-100\\\" [(ngModel)]=\\\"metric.Week5\\\" *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                                                    metric.YellowTargetSymbol == 'Yes' ||\\r\\n                                                    metric.RedTargetSymbol == 'Yes' ||\\r\\n                                                    metric.GreenTargetSymbol == 'No' ||\\r\\n                                                    metric.YellowTargetSymbol == 'No' ||\\r\\n                                                    metric.RedTargetSymbol == 'No'\\\">\\r\\n                                        <option value=\\\"0\\\">Select</option>\\r\\n                                        <option value=\\\"2\\\">Yes</option>\\r\\n                                        <option value=\\\"1\\\">No</option>\\r\\n                                    </select>\\r\\n                                    <input class=\\\"w-100\\\" numbersOnly [(ngModel)]=\\\"metric.Week5\\\" *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                                                    metric.GreenTargetSymbol != 'No' &&\\r\\n                                                    metric.YellowTargetSymbol != 'Yes' &&\\r\\n                                                    metric.YellowTargetSymbol != 'No' &&\\r\\n                                                    metric.RedTargetSymbol != 'Yes' &&\\r\\n                                                    metric.RedTargetSymbol != 'No'\\\" />\\r\\n                                </td>\\r\\n                                <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\">\\r\\n                                    <!-- <input class=\\\"w-50\\\" [(ngModel)]=\\\"metric.Week6\\\" /> -->\\r\\n                                    <select class=\\\"w-100\\\" [(ngModel)]=\\\"metric.Week6\\\" *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                                                    metric.YellowTargetSymbol == 'Yes' ||\\r\\n                                                    metric.RedTargetSymbol == 'Yes' ||\\r\\n                                                    metric.GreenTargetSymbol == 'No' ||\\r\\n                                                    metric.YellowTargetSymbol == 'No' ||\\r\\n                                                    metric.RedTargetSymbol == 'No'\\\">\\r\\n                                        <option value=\\\"0\\\">Select</option>\\r\\n                                        <option value=\\\"2\\\">Yes</option>\\r\\n                                        <option value=\\\"1\\\">No</option>\\r\\n                                    </select>\\r\\n                                    <input class=\\\"w-100\\\" numbersOnly [(ngModel)]=\\\"metric.Week6\\\" *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                                                    metric.GreenTargetSymbol != 'No' &&\\r\\n                                                    metric.YellowTargetSymbol != 'Yes' &&\\r\\n                                                    metric.YellowTargetSymbol != 'No' &&\\r\\n                                                    metric.RedTargetSymbol != 'Yes' &&\\r\\n                                                    metric.RedTargetSymbol != 'No'\\\" />\\r\\n                                </td>\\r\\n                                <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\">\\r\\n                                    <!-- <input class=\\\"w-50\\\" [(ngModel)]=\\\"metric.Week7\\\" /> -->\\r\\n                                    <select class=\\\"w-100\\\" [(ngModel)]=\\\"metric.Week7\\\" *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                                                    metric.YellowTargetSymbol == 'Yes' ||\\r\\n                                                    metric.RedTargetSymbol == 'Yes' ||\\r\\n                                                    metric.GreenTargetSymbol == 'No' ||\\r\\n                                                    metric.YellowTargetSymbol == 'No' ||\\r\\n                                                    metric.RedTargetSymbol == 'No'\\\">\\r\\n                                        <option value=\\\"0\\\">Select</option>\\r\\n                                        <option value=\\\"2\\\">Yes</option>\\r\\n                                        <option value=\\\"1\\\">No</option>\\r\\n                                    </select>\\r\\n                                    <input class=\\\"w-100\\\" numbersOnly [(ngModel)]=\\\"metric.Week7\\\" *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                                                    metric.GreenTargetSymbol != 'No' &&\\r\\n                                                    metric.YellowTargetSymbol != 'Yes' &&\\r\\n                                                    metric.YellowTargetSymbol != 'No' &&\\r\\n                                                    metric.RedTargetSymbol != 'Yes' &&\\r\\n                                                    metric.RedTargetSymbol != 'No'\\\" />\\r\\n                                </td>\\r\\n                                <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\">\\r\\n                                    <!-- <input class=\\\"w-50\\\" [(ngModel)]=\\\"metric.Week8\\\" /> -->\\r\\n                                    <select class=\\\"w-100\\\" [(ngModel)]=\\\"metric.Week8\\\" *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                                                    metric.YellowTargetSymbol == 'Yes' ||\\r\\n                                                    metric.RedTargetSymbol == 'Yes' ||\\r\\n                                                    metric.GreenTargetSymbol == 'No' ||\\r\\n                                                    metric.YellowTargetSymbol == 'No' ||\\r\\n                                                    metric.RedTargetSymbol == 'No'\\\">\\r\\n                                        <option value=\\\"0\\\">Select</option>\\r\\n                                        <option value=\\\"2\\\">Yes</option>\\r\\n                                        <option value=\\\"1\\\">No</option>\\r\\n                                    </select>\\r\\n                                    <input class=\\\"w-100\\\" numbersOnly [(ngModel)]=\\\"metric.Week8\\\" *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                                                    metric.GreenTargetSymbol != 'No' &&\\r\\n                                                    metric.YellowTargetSymbol != 'Yes' &&\\r\\n                                                    metric.YellowTargetSymbol != 'No' &&\\r\\n                                                    metric.RedTargetSymbol != 'Yes' &&\\r\\n                                                    metric.RedTargetSymbol != 'No'\\\" />\\r\\n                                </td>\\r\\n                                <td class=\\\"w-80\\\" [attr.colspan]=\\\"metric.Frequency == 'Weekly' ? '1' : '6'\\\">\\r\\n                                    <!-- <input class=\\\"w-50\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\"\\r\\n                                        [(ngModel)]=\\\"metric.Week9\\\" />\\r\\n                                    <input class=\\\"w-100\\\" *ngIf=\\\"metric.Frequency == 'Monthly'\\\"\\r\\n                                        [(ngModel)]=\\\"metric.Week9\\\" /> -->\\r\\n                                    <select class=\\\"w-100\\\" [(ngModel)]=\\\"metric.Week9\\\" *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                                                    metric.YellowTargetSymbol == 'Yes' ||\\r\\n                                                    metric.RedTargetSymbol == 'Yes' ||\\r\\n                                                    metric.GreenTargetSymbol == 'No' ||\\r\\n                                                    metric.YellowTargetSymbol == 'No' ||\\r\\n                                                    metric.RedTargetSymbol == 'No'\\\">\\r\\n                                        <option value=\\\"0\\\">Select</option>\\r\\n                                        <option value=\\\"2\\\">Yes</option>\\r\\n                                        <option value=\\\"1\\\">No</option>\\r\\n                                    </select>\\r\\n                                    <input class=\\\"w-100\\\" numbersOnly [(ngModel)]=\\\"metric.Week9\\\" *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                                                    metric.GreenTargetSymbol != 'No' &&\\r\\n                                                    metric.YellowTargetSymbol != 'Yes' &&\\r\\n                                                    metric.YellowTargetSymbol != 'No' &&\\r\\n                                                    metric.RedTargetSymbol != 'Yes' &&\\r\\n                                                    metric.RedTargetSymbol != 'No'\\\" />\\r\\n                                </td>\\r\\n                                <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\">\\r\\n                                    <!-- <input class=\\\"w-50\\\" [(ngModel)]=\\\"metric.Week10\\\" /> -->\\r\\n                                    <select class=\\\"w-100\\\" [(ngModel)]=\\\"metric.Week10\\\" *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                                                    metric.YellowTargetSymbol == 'Yes' ||\\r\\n                                                    metric.RedTargetSymbol == 'Yes' ||\\r\\n                                                    metric.GreenTargetSymbol == 'No' ||\\r\\n                                                    metric.YellowTargetSymbol == 'No' ||\\r\\n                                                    metric.RedTargetSymbol == 'No'\\\">\\r\\n                                        <option value=\\\"0\\\">Select</option>\\r\\n                                        <option value=\\\"2\\\">Yes</option>\\r\\n                                        <option value=\\\"1\\\">No</option>\\r\\n                                    </select>\\r\\n                                    <input class=\\\"w-100\\\" numbersOnly [(ngModel)]=\\\"metric.Week10\\\" *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                                                    metric.GreenTargetSymbol != 'No' &&\\r\\n                                                    metric.YellowTargetSymbol != 'Yes' &&\\r\\n                                                    metric.YellowTargetSymbol != 'No' &&\\r\\n                                                    metric.RedTargetSymbol != 'Yes' &&\\r\\n                                                    metric.RedTargetSymbol != 'No'\\\" />\\r\\n                                </td>\\r\\n                                <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\">\\r\\n                                    <!-- <input class=\\\"w-50\\\" [(ngModel)]=\\\"metric.Week11\\\" /> -->\\r\\n                                    <select class=\\\"w-100\\\" [(ngModel)]=\\\"metric.Week11\\\" *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                                                    metric.YellowTargetSymbol == 'Yes' ||\\r\\n                                                    metric.RedTargetSymbol == 'Yes' ||\\r\\n                                                    metric.GreenTargetSymbol == 'No' ||\\r\\n                                                    metric.YellowTargetSymbol == 'No' ||\\r\\n                                                    metric.RedTargetSymbol == 'No'\\\">\\r\\n                                        <option value=\\\"0\\\">Select</option>\\r\\n                                        <option value=\\\"2\\\">Yes</option>\\r\\n                                        <option value=\\\"1\\\">No</option>\\r\\n                                    </select>\\r\\n                                    <input class=\\\"w-100\\\" numbersOnly [(ngModel)]=\\\"metric.Week11\\\" *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                                                    metric.GreenTargetSymbol != 'No' &&\\r\\n                                                    metric.YellowTargetSymbol != 'Yes' &&\\r\\n                                                    metric.YellowTargetSymbol != 'No' &&\\r\\n                                                    metric.RedTargetSymbol != 'Yes' &&\\r\\n                                                    metric.RedTargetSymbol != 'No'\\\" />\\r\\n                                </td>\\r\\n                                <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\">\\r\\n                                    <!-- <input class=\\\"w-50\\\" [(ngModel)]=\\\"metric.Week12\\\" /> -->\\r\\n                                    <select class=\\\"w-100\\\" [(ngModel)]=\\\"metric.Week12\\\" *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                                                    metric.YellowTargetSymbol == 'Yes' ||\\r\\n                                                    metric.RedTargetSymbol == 'Yes' ||\\r\\n                                                    metric.GreenTargetSymbol == 'No' ||\\r\\n                                                    metric.YellowTargetSymbol == 'No' ||\\r\\n                                                    metric.RedTargetSymbol == 'No'\\\">\\r\\n                                        <option value=\\\"0\\\">Select</option>\\r\\n                                        <option value=\\\"2\\\">Yes</option>\\r\\n                                        <option value=\\\"1\\\">No</option>\\r\\n                                    </select>\\r\\n                                    <input class=\\\"w-100\\\" numbersOnly [(ngModel)]=\\\"metric.Week12\\\" *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                                                    metric.GreenTargetSymbol != 'No' &&\\r\\n                                                    metric.YellowTargetSymbol != 'Yes' &&\\r\\n                                                    metric.YellowTargetSymbol != 'No' &&\\r\\n                                                    metric.RedTargetSymbol != 'Yes' &&\\r\\n                                                    metric.RedTargetSymbol != 'No'\\\" />\\r\\n                                </td>\\r\\n                                <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly' && WeekDateList[12]!=undefined\\\">\\r\\n                                    <!-- <input class=\\\"w-50\\\" [(ngModel)]=\\\"metric.Week13\\\" /> -->\\r\\n                                    <select class=\\\"w-100\\\" [(ngModel)]=\\\"metric.Week13\\\" *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                                                    metric.YellowTargetSymbol == 'Yes' ||\\r\\n                                                    metric.RedTargetSymbol == 'Yes' ||\\r\\n                                                    metric.GreenTargetSymbol == 'No' ||\\r\\n                                                    metric.YellowTargetSymbol == 'No' ||\\r\\n                                                    metric.RedTargetSymbol == 'No'\\\">\\r\\n                                        <option value=\\\"0\\\">Select</option>\\r\\n                                        <option value=\\\"2\\\">Yes</option>\\r\\n                                        <option value=\\\"1\\\">No</option>\\r\\n                                    </select>\\r\\n                                    <input class=\\\"w-100\\\" numbersOnly [(ngModel)]=\\\"metric.Week13\\\" *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                                                    metric.GreenTargetSymbol != 'No' &&\\r\\n                                                    metric.YellowTargetSymbol != 'Yes' &&\\r\\n                                                    metric.YellowTargetSymbol != 'No' &&\\r\\n                                                    metric.RedTargetSymbol != 'Yes' &&\\r\\n                                                    metric.RedTargetSymbol != 'No'\\\" />\\r\\n                                </td>\\r\\n\\r\\n                                <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly' && WeekDateList[13]!=undefined\\\">\\r\\n                                    <!-- <input class=\\\"w-50\\\" [(ngModel)]=\\\"metric.Week14\\\" /> -->\\r\\n                                    <select class=\\\"w-100\\\" [(ngModel)]=\\\"metric.Week14\\\" *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                                                    metric.YellowTargetSymbol == 'Yes' ||\\r\\n                                                    metric.RedTargetSymbol == 'Yes' ||\\r\\n                                                    metric.GreenTargetSymbol == 'No' ||\\r\\n                                                    metric.YellowTargetSymbol == 'No' ||\\r\\n                                                    metric.RedTargetSymbol == 'No'\\\">\\r\\n                                        <option value=\\\"0\\\">Select</option>\\r\\n                                        <option value=\\\"2\\\">Yes</option>\\r\\n                                        <option value=\\\"1\\\">No</option>\\r\\n                                    </select>\\r\\n                                    <input class=\\\"w-100\\\" numbersOnly [(ngModel)]=\\\"metric.Week14\\\" *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                                                    metric.GreenTargetSymbol != 'No' &&\\r\\n                                                    metric.YellowTargetSymbol != 'Yes' &&\\r\\n                                                    metric.YellowTargetSymbol != 'No' &&\\r\\n                                                    metric.RedTargetSymbol != 'Yes' &&\\r\\n                                                    metric.RedTargetSymbol != 'No'\\\" />\\r\\n                                </td>\\r\\n                            </tr>\\r\\n                        </tbody>\\r\\n                    </table>\\r\\n                </div>\\r\\n            </div>\\r\\n            <mat-action-row>\\r\\n                <button mat-button color=\\\"warn\\\" (click)=\\\"goToGeneratedWeeks()\\\">Previous</button>\\r\\n                <button mat-button color=\\\"primary\\\" (click)=\\\"generateScoreCard()\\\">Next</button>\\r\\n            </mat-action-row>\\r\\n        </mat-expansion-panel>\\r\\n        <mat-expansion-panel [expanded]=\\\"step === 4\\\" (opened)=\\\"setStep(4)\\\" hideToggle>\\r\\n            <mat-expansion-panel-header>\\r\\n                <mat-panel-title>\\r\\n                    Score Card Preview\\r\\n                </mat-panel-title>\\r\\n            </mat-expansion-panel-header>\\r\\n            <!-- <div class=\\\"p-t-20\\\"> -->\\r\\n            <app-view-score-card [selectedMetrics]=\\\"selectedMetrics\\\" [scoreCard]=\\\"scoreCard\\\"\\r\\n                [isViewScoreCard]=\\\"isViewScoreCard\\\" [WeekDateList]=\\\"WeekDateList\\\"\\r\\n                (goToAddScoreCardChanged)=\\\"goToAddScoreCardChangedHandler($event)\\\"\\r\\n                (viewScoreCardChanged)=\\\"viewScoreCardChangedHandler($event.value)\\\"></app-view-score-card>\\r\\n            <!-- <div class=\\\"table-responsive\\\" style=\\\"font-size: small;\\\">\\r\\n                    <table class=\\\"table table-bordered\\\" id=\\\"table1\\\">\\r\\n                        <thead>\\r\\n                            <tr>\\r\\n                                <th class=\\\"min-width headcol text-center\\\" rowspan=\\\"2\\\">Goal</th>\\r\\n                                <th class=\\\"min-width headcol1\\\" rowspan=\\\"2\\\">Metric</th>\\r\\n                                <th style=\\\"padding: 0px;border: 0px;\\\">\\r\\n                                    <div class=\\\"\\\" style=\\\"text-align: center;\\\">\\r\\n                                        Target\\r\\n                                    </div>\\r\\n                                    <hr style=\\\"margin: 0;background-color: white;\\\">\\r\\n                                    <div class=\\\"row text-center m-0\\\">\\r\\n                                        <div class=\\\"col\\\">\\r\\n                                            Green\\r\\n                                        </div>\\r\\n                                        <div class=\\\"col\\\">\\r\\n                                            Yellow\\r\\n                                        </div>\\r\\n                                        <div class=\\\"col\\\">\\r\\n                                            Red\\r\\n                                        </div>\\r\\n                                    </div>\\r\\n                                </th>\\r\\n                                <th>Frequency</th>\\r\\n                                <th>UOM</th>\\r\\n                                <th class=\\\"w-50\\\">\\r\\n                                    <div>Wk 1</div>\\r\\n                                    <div>({{WeekDateList[0]}})</div>\\r\\n                                </th>\\r\\n                                <th class=\\\"w-50\\\">\\r\\n                                    <div>Wk 2</div>\\r\\n                                    <div>({{WeekDateList[1]}})</div>\\r\\n                                </th>\\r\\n                                <th class=\\\"w-50\\\">\\r\\n                                    <div>Wk 3</div>\\r\\n                                    <div>({{WeekDateList[2]}})</div>\\r\\n                                </th>\\r\\n                                <th class=\\\"w-50\\\">\\r\\n                                    <div>Wk 4 </div>\\r\\n                                    <div>({{WeekDateList[3]}})</div>\\r\\n                                </th>\\r\\n                                <th class=\\\"w-50\\\">\\r\\n                                    <div>Wk 5</div>\\r\\n                                    <div>({{WeekDateList[4]}})</div>\\r\\n                                </th>\\r\\n                                <th class=\\\"w-50\\\">\\r\\n                                    <div>Wk 6</div>\\r\\n                                    <div>({{WeekDateList[5]}})</div>\\r\\n                                </th>\\r\\n                                <th class=\\\"w-50\\\">\\r\\n                                    <div>Wk 7</div>\\r\\n                                    <div> ({{WeekDateList[6]}})</div>\\r\\n                                </th>\\r\\n                                <th class=\\\"w-50\\\">\\r\\n                                    <div>Wk 8</div>\\r\\n                                    <div> ({{WeekDateList[7]}})</div>\\r\\n                                </th>\\r\\n                                <th class=\\\"w-50\\\">\\r\\n                                    <div>Wk 9</div>\\r\\n                                    <div> ({{WeekDateList[8]}})</div>\\r\\n                                </th>\\r\\n                                <th class=\\\"w-50\\\">\\r\\n                                    <div>Wk 10</div>\\r\\n                                    <div> ({{WeekDateList[9]}})</div>\\r\\n                                </th>\\r\\n                                <th class=\\\"w-50\\\">\\r\\n                                    <div>Wk 11</div>\\r\\n                                    <div> ({{WeekDateList[10]}})</div>\\r\\n                                </th>\\r\\n                                <th class=\\\"w-50\\\">\\r\\n                                    <div>Wk 12</div>\\r\\n                                    <div>({{WeekDateList[11]}})</div>\\r\\n                                </th>\\r\\n                                <th class=\\\"w-50\\\">\\r\\n                                    <div>Wk 13</div>\\r\\n                                    <div>({{WeekDateList[12]}})</div>\\r\\n                                </th>\\r\\n                            </tr>\\r\\n                        </thead>\\r\\n                        <tbody id=\\\"databody\\\">\\r\\n                            <tr *ngFor=\\\"let metric of selectedMetrics\\\">\\r\\n                                <td class=\\\"min-width bodycol\\\" [attr.rowspan]=\\\"metric.goalSpan\\\" *ngIf=\\\"metric.goalSpan\\\">\\r\\n                                    {{metric.GoalName}}</td>\\r\\n                                <td class=\\\"min-width bodycol1\\\">{{metric.Description}}</td>\\r\\n                                <td class=\\\"min-width-300\\\">\\r\\n                                    <div class=\\\"row text-center\\\">\\r\\n                                        <div class=\\\"col\\\" style=\\\"width:100px;flex-wrap: inherit;\\\">\\r\\n                                            <span\\r\\n                                                *ngIf=\\\"(metric.GreenTargetSymbol) && (metric.GreenTargetSymbol != '==') && (metric.GreenTargetSymbol != 'Yes' || metric.GreenTargetSymbol != 'No')\\\">{{metric.GreenTargetSymbol}}</span>&nbsp;\\r\\n                                            <span\\r\\n                                                *ngIf=\\\"(metric.GreenTargetSymbol) && (metric.GreenTargetSymbol == '==')\\\">=</span>&nbsp;\\r\\n                                            <span>{{metric.GreenMinimum}}</span>\\r\\n                                            <span *ngIf=\\\"!metric.GreenTargetSymbol\\\" class=\\\"f-b\\\">&nbsp;-&nbsp;</span>\\r\\n                                            <span *ngIf=\\\"!metric.GreenTargetSymbol\\\">{{metric.GreenMaximum}}</span>\\r\\n                                        </div>\\r\\n                                        <div class=\\\"col\\\" style=\\\"width:100px;flex-wrap: inherit;\\\">\\r\\n                                            <span\\r\\n                                                *ngIf=\\\"(metric.YellowTargetSymbol) && (metric.YellowTargetSymbol != '==') && (metric.YellowTargetSymbol != 'Yes' || metric.YellowTargetSymbol != 'No')\\\">{{metric.YellowTargetSymbol}}</span>&nbsp;\\r\\n                                            <span\\r\\n                                                *ngIf=\\\"(metric.YellowTargetSymbol) && (metric.YellowTargetSymbol == '==')\\\">=</span>&nbsp;\\r\\n                                            <span>{{metric.YellowMinimum}}</span>\\r\\n                                            <span *ngIf=\\\"!metric.YellowTargetSymbol\\\" class=\\\"f-b\\\">&nbsp;-&nbsp;</span>\\r\\n                                            <span *ngIf=\\\"!metric.YellowTargetSymbol\\\">{{metric.YellowMaximum}}</span>\\r\\n                                        </div>\\r\\n                                        <div class=\\\"col\\\" style=\\\"width:100px;flex-wrap: inherit;\\\">\\r\\n                                            <span\\r\\n                                                *ngIf=\\\"(metric.RedTargetSymbol) && (metric.RedTargetSymbol != '==') && (metric.RedTargetSymbol != 'Yes' || metric.RedTargetSymbol != 'No')\\\">{{metric.RedTargetSymbol}}</span>&nbsp;\\r\\n                                            <span\\r\\n                                                *ngIf=\\\"(metric.RedTargetSymbol) && (metric.RedTargetSymbol == '==')\\\">=</span>&nbsp;\\r\\n                                            <span>{{metric.RedMinimum}}</span>\\r\\n                                            <span *ngIf=\\\"!metric.RedTargetSymbol\\\" class=\\\"f-b\\\">&nbsp;-&nbsp;</span>\\r\\n                                            <span *ngIf=\\\"!metric.RedTargetSymbol\\\">{{metric.RedMaximum}}</span>\\r\\n                                        </div>\\r\\n                                    </div>\\r\\n                                </td>\\r\\n                                <td><span>{{metric.Frequency}}</span></td>\\r\\n                                <td><span>{{metric.UOM}}</span></td>\\r\\n                                <td class=\\\"w-80\\\" [ngStyle]=\\\"myStyleWeek(metric, 1)\\\"\\r\\n                                    [attr.colspan]=\\\"metric.Frequency == 'Weekly' ? '1' : '4'\\\">\\r\\n                                    <span>{{metric.Week1}}</span>\\r\\n                                </td>\\r\\n                                <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\"\\r\\n                                    [ngStyle]=\\\"myStyleWeek(metric, 2)\\\">\\r\\n                                    <span>{{metric.Week2}}</span>\\r\\n                                </td>\\r\\n                                <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\"\\r\\n                                    [ngStyle]=\\\"myStyleWeek(metric, 3)\\\">\\r\\n                                    <span>{{metric.Week3}}</span>\\r\\n                                </td>\\r\\n                                <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\"\\r\\n                                    [ngStyle]=\\\"myStyleWeek(metric, 4)\\\">\\r\\n                                    <span>{{metric.Week4}}</span>\\r\\n                                </td>\\r\\n                                <td class=\\\"w-80\\\" [ngStyle]=\\\"myStyleWeek(metric, 5)\\\"\\r\\n                                    [attr.colspan]=\\\"metric.Frequency == 'Weekly' ? '1' : '4'\\\">\\r\\n                                    <span>{{metric.Week5}}</span>\\r\\n                                </td>\\r\\n                                <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\"\\r\\n                                    [ngStyle]=\\\"myStyleWeek(metric, 6)\\\">\\r\\n                                    <span>{{metric.Week6}}</span>\\r\\n                                </td>\\r\\n                                <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\"\\r\\n                                    [ngStyle]=\\\"myStyleWeek(metric, 7)\\\">\\r\\n                                    <span>{{metric.Week7}}</span>\\r\\n                                </td>\\r\\n                                <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\"\\r\\n                                    [ngStyle]=\\\"myStyleWeek(metric, 8)\\\">\\r\\n                                    <span>{{metric.Week8}}</span>\\r\\n                                </td>\\r\\n                                <td class=\\\"w-80\\\" [ngStyle]=\\\"myStyleWeek(metric, 9)\\\"\\r\\n                                    [attr.colspan]=\\\"metric.Frequency == 'Weekly' ? '1' : '5'\\\">\\r\\n                                    <span>{{metric.Week9}}</span>\\r\\n                                </td>\\r\\n                                <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\"\\r\\n                                    [ngStyle]=\\\"myStyleWeek(metric, 10)\\\">\\r\\n                                    <span>{{metric.Week10}}</span>\\r\\n                                </td>\\r\\n                                <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\"\\r\\n                                    [ngStyle]=\\\"myStyleWeek(metric, 11)\\\">\\r\\n                                    <span>{{metric.Week11}}</span>\\r\\n                                </td>\\r\\n                                <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\"\\r\\n                                    [ngStyle]=\\\"myStyleWeek(metric, 12)\\\">\\r\\n                                    <span>{{metric.Week12}}</span>\\r\\n                                </td>\\r\\n                                <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\"\\r\\n                                    [ngStyle]=\\\"myStyleWeek(metric, 13)\\\">\\r\\n                                    <span>{{metric.Week13}}</span>\\r\\n                                </td>\\r\\n                            </tr>\\r\\n                        </tbody>\\r\\n                    </table>\\r\\n                </div> -->\\r\\n            <div class=\\\"text-center\\\">\\r\\n                <button class=\\\"darkbtnbg btn btn-info\\\" style='margin-top: 10px;' (click)='saveScoreCardDetails()'\\r\\n                    matTooltip=\\\"Save Score Card\\\">Save Score Card\\r\\n                </button>\\r\\n            </div>\\r\\n            <!-- </div> -->\\r\\n            <mat-action-row>\\r\\n                <button mat-button color=\\\"warn\\\" (click)=\\\"prevStep()\\\">Previous</button>\\r\\n                <!-- <button mat-button color=\\\"primary\\\" (click)=\\\"nextStep()\\\">Next</button> -->\\r\\n            </mat-action-row>\\r\\n        </mat-expansion-panel>\\r\\n    </mat-accordion>\\r\\n</div>\"","module.exports = \"<mat-dialog-content>\\r\\n    <div>\\r\\n        {{message}}\\r\\n    </div>\\r\\n    <!-- <ul style=\\\"margin-bottom: 15px;\\\">\\r\\n        <li *ngFor='let msg of errorMessages'>{{msg}}</li>\\r\\n    </ul> -->\\r\\n</mat-dialog-content>\\r\\n<mat-dialog-actions align=\\\"center\\\">\\r\\n    <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n        <div class=\\\"item item-3 \\\">\\r\\n            <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n        </div>\\r\\n    </div>\\r\\n</mat-dialog-actions>\"","module.exports = \"<mat-dialog-content>Please review and correct the following\\r\\n    <br>\\r\\n    <ul style=\\\"margin-bottom: 15px;\\\">\\r\\n        <li *ngFor='let msg of errorMessages'>{{msg}}</li>\\r\\n    </ul>\\r\\n</mat-dialog-content>\\r\\n<mat-dialog-actions align=\\\"center\\\">\\r\\n    <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n        <div class=\\\"item item-3 \\\">\\r\\n            <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n        </div>\\r\\n    </div>\\r\\n</mat-dialog-actions>\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n\\n<div class=\\\"row\\\" id=\\\"container\\\">\\n    <div class=\\\"\\\" id=\\\"heading\\\">\\n        <h4>Alerts</h4>\\n    </div>\\n</div>\\n<div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\n    <div id=\\\"Rowwrapper\\\">\\n        <div id=\\\"RowtableAction\\\">\\n            <div id=\\\"field\\\">\\n                <mat-slide-toggle [checked]=\\\"pointerTypeStatus\\\" [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\"\\n                    (change)=\\\"ToggleType($event)\\\">Frustration alert value</mat-slide-toggle>\\n            </div>\\n            <div id=\\\"search\\\" style=\\\"margin-top: 3px;\\\">\\n                <mat-form-field id=\\\"searchField\\\">\\n                    <mat-placeholder>Alert value <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\n                    <input type=\\\"text\\\" matInput autocomplete=\\\"off\\\"\\n                        [disabled]=\\\"saved || !MenuPermissions[menuName][menuID]['C']\\\" (keydown)=\\\"Validate($event)\\\"\\n                        (keyup)=\\\"val($event)\\\" [min]='1' maxlength=\\\"3\\\" [(ngModel)]=\\\"alertValue\\\" value=\\\"\\\">\\n                </mat-form-field>\\n            </div>\\n            <div id=\\\"printBtn\\\" style=\\\"margin-top: 18px;\\\">\\n                <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Submit\\\" style=\\\"cursor: pointer;\\\"\\n                    [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\" (click)=\\\"saveAlertValue()\\\"> Save </button>\\n\\n            </div>\\n            <div class=\\\"\\\" style=\\\"margin-top: 2%;\\\">\\n                <label style=\\\"color: red;\\\">{{dataSelf}}</label>\\n            </div>\\n        </div>\\n    </div>\\n</div>\\n\\n<div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\n    <div id=\\\"Rowwrapper\\\">\\n        <div id=\\\"RowtableAction\\\">\\n            <div id=\\\"field\\\">\\n                <mat-slide-toggle [checked]=\\\"pointerTypeStatusMetric\\\"\\n                    [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\" (change)=\\\"MetricToggleType($event)\\\">Metric\\n                    alert value</mat-slide-toggle>\\n            </div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\\n            <div id=\\\"search\\\" style=\\\" margin-top: 0%;\\\">\\n                <mat-form-field id=\\\"searchField\\\">\\n                    <mat-placeholder>Alert value <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\n                    <input type=\\\"text\\\" matInput autocomplete=\\\"off\\\" (keydown)=\\\"Validate($event)\\\" (keyup)=\\\"val($event)\\\"\\n                        [min]='1' [disabled]=\\\"metricSaved || !MenuPermissions[menuName][menuID]['C']\\\" maxlength=\\\"3\\\"\\n                        [(ngModel)]=\\\"alertMetric\\\" value=\\\"\\\">\\n                </mat-form-field>\\n            </div>\\n            <div id=\\\"printBtn\\\" style=\\\"margin-top:14px\\\">\\n                <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Submit\\\"\\n                    [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\" style=\\\"cursor: pointer;\\\"\\n                    (click)=\\\"saveMetricAlertValue()\\\"> Save </button>\\n\\n            </div>\\n            <div class=\\\"\\\" style=\\\"margin-top: 2%;\\\">\\n                <label style=\\\"color: red;\\\">{{msg}}</label>\\n            </div>\\n        </div>\\n    </div>\\n</div>\\n\"","module.exports = \"<style>\\r\\n    @media print {\\r\\n        .donotprintthis {\\r\\n\\r\\n            display: none;\\r\\n\\r\\n        }\\r\\n    }\\r\\n\\r\\n    @media print {\\r\\n        @page {\\r\\n            size: auto;\\r\\n            margin: 0mm;\\r\\n        }\\r\\n\\r\\n        a[href]:after {\\r\\n            content: none !important;\\r\\n        }\\r\\n    }\\r\\n\\r\\n    @media print {\\r\\n\\r\\n        #Header,\\r\\n        #Footer {\\r\\n            display: none !important;\\r\\n        }\\r\\n    }\\r\\n\\r\\n    @media screen {\\r\\n        .donotprintthis {\\r\\n            display: block;\\r\\n        }\\r\\n    }\\r\\n\\r\\n    .active {\\r\\n        background-color: lightseagreen;\\r\\n    }\\r\\n</style>\\r\\n\\r\\n\\r\\n<div class=\\\"wrapper\\\">\\r\\n    <!-- Sidebar  -->\\r\\n\\r\\n\\r\\n    <nav id=\\\"sidebar\\\" *ngIf=\\\"menuOpenStatus\\\" class=\\\"donotprintthis\\\">\\r\\n        <div class=\\\"sidebar-header\\\">\\r\\n            <h3>\\r\\n                <img src=\\\"./assets/images/DorseyMainLogo.png\\\" width=\\\"100%\\\" alt=\\\"dorsey Logo\\\" />\\r\\n            </h3>\\r\\n        </div>\\r\\n\\r\\n        <ul class=\\\"list-unstyled components\\\">\\r\\n            <!-- <p>Dummy Heading</p> -->\\r\\n            <li class=\\\"active\\\">\\r\\n                <!-- <a href=\\\"#homeSubmenu\\\" data-toggle=\\\"collapse\\\" aria-expanded=\\\"false\\\" class=\\\"dropdown-toggle\\\">Home</a> -->\\r\\n                <ul class=\\\"list-unstyled\\\" id=\\\"homeSubmenu\\\">\\r\\n\\r\\n                    <!--<li>\\r\\n                                <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/dashboard']\\\">Dashboard</a>\\r\\n                            </li>-->\\r\\n                    <!-- *ngIf='companyID!==\\\"0\\\"' -->\\r\\n                    <li *ngIf='companyID == \\\"0\\\"'>\\r\\n                        <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/company']\\\">Company</a>\\r\\n                    </li>\\r\\n                    <li>\\r\\n                        <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/employee']\\\">Employee</a>\\r\\n                    </li>\\r\\n                    <li>\\r\\n                        <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/process']\\\">Process</a>\\r\\n                    </li>\\r\\n                    <li>\\r\\n                        <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/team']\\\">Team</a>\\r\\n                    </li>\\r\\n\\r\\n                    <li>\\r\\n                        <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/processMap']\\\">Process Map</a>\\r\\n                    </li>\\r\\n\\r\\n\\r\\n                    <li>\\r\\n                        <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/activity']\\\">Activity</a>\\r\\n                    </li>\\r\\n                    <li>\\r\\n                        <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/metric']\\\">Metric</a>\\r\\n\\r\\n                    </li>\\r\\n                    <li>\\r\\n                        <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/pointer']\\\">Frustration</a>\\r\\n\\r\\n                    </li>\\r\\n\\r\\n                    <li>\\r\\n                        <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/project']\\\">Project</a>\\r\\n                    </li>\\r\\n                    <li>\\r\\n                        <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/case']\\\">Cases </a>\\r\\n                    </li>\\r\\n                    <li>\\r\\n                        <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/reports']\\\">Reports </a>\\r\\n                    </li>\\r\\n                    <li>\\r\\n                        <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/roles']\\\">Roles </a>\\r\\n                    </li>\\r\\n                    <!--   <li>\\r\\n                        <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/reportProcess']\\\">Report Process </a>\\r\\n                    </li>\\r\\n                    <li>\\r\\n                        <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/reportProject']\\\">Report Project </a>\\r\\n                    </li>\\r\\n                    <li>\\r\\n                        <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/reportMetric']\\\">Report Metric </a>\\r\\n                    </li>\\r\\n <li>\\r\\n                            <a routerLinkActive=\\\"active\\\"  [routerLink]=\\\"['/reportFrustration']\\\">Process(No Frustration)</a>\\r\\n                        </li>\\r\\n                        <li>\\r\\n                            <a routerLinkActive=\\\"active\\\"  [routerLink]=\\\"['/noactionProject']\\\">NoAction Projects </a>\\r\\n                        </li>\\r\\n                        <li>\\r\\n                            <a routerLinkActive=\\\"active\\\"  [routerLink]=\\\"['/otherFrustration']\\\">Frustration(Other) </a>\\r\\n                        </li>\\r\\n                        <li>\\r\\n                            <a routerLinkActive=\\\"active\\\"  [routerLink]=\\\"['/frustrationComments']\\\">Frustration Comments </a>\\r\\n                        </li>\\r\\n                        <li>\\r\\n                            <a routerLinkActive=\\\"active\\\"  [routerLink]=\\\"['/nometricProcess']\\\">Process(No Metric) </a>\\r\\n                        </li> -->\\r\\n\\r\\n                    <!-- <li>\\r\\n                            <a routerLinkActive=\\\"active\\\"  [routerLink]=\\\"['/rolepermissions']\\\">Role Permissions </a>\\r\\n                        </li>\\r\\n                        <li>\\r\\n                            <a routerLinkActive=\\\"active\\\"  [routerLink]=\\\"['/userpermisions']\\\">User Permissions </a>\\r\\n                        </li> -->\\r\\n                </ul>\\r\\n            </li>\\r\\n\\r\\n        </ul>\\r\\n\\r\\n\\r\\n    </nav>\\r\\n    <!--</div>-->\\r\\n    <!-- Page Content  -->\\r\\n    <div id=\\\"content\\\">\\r\\n\\r\\n        <nav class=\\\"navbar navbar-expand-lg navbar-light bg-light donotprintthis\\\">\\r\\n            <div class=\\\"container-fluid\\\">\\r\\n\\r\\n                <button type=\\\"button\\\" id=\\\"sidebarCollapse\\\" class=\\\"btn btn-info\\\" [class.right]=\\\"menuOpen\\\"\\r\\n                    [class.indexcity]=\\\"menuOpen\\\" (click)=\\\"onClick($event)\\\">\\r\\n                    <i class=\\\"fa fa-bars fa-align-left\\\"></i>\\r\\n                    <span></span>\\r\\n                </button>\\r\\n                <button class=\\\"btn btn-dark d-inline-block d-lg-none ml-auto\\\" type=\\\"button\\\" data-toggle=\\\"collapse\\\"\\r\\n                    data-target=\\\"#navbarSupportedContent\\\" aria-controls=\\\"navbarSupportedContent\\\" aria-expanded=\\\"false\\\"\\r\\n                    aria-label=\\\"Toggle navigation\\\">\\r\\n                    <i class=\\\"fas fa-align-justify\\\"></i>\\r\\n                </button>\\r\\n\\r\\n                <a (click)=\\\"LogOut()\\\" style=\\\"cursor:pointer;\\\">Logout</a>\\r\\n            </div>\\r\\n        </nav>\\r\\n        <!-- <router-outlet></router-outlet> -->\\r\\n    </div>\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n</div>\\r\\n\\r\\n<!--<ng-template #login>-->\\r\\n\\r\\n<!--</ng-template>-->\\r\\n\\r\\n\\r\\n<!-- <app-login *ngIf=\\\"!authenticated\\\" (authentication)=\\\"childFunction($event)\\\" style=\\\"width:100%\\\"></app-login> -->\"","module.exports = \"<style>\\n  @media screen {\\n    .donotprintthis1 {\\n      display: none;\\n    }\\n\\n    .donotprintthis {\\n\\n      display: block;\\n\\n    }\\n  }\\n\\n  @media print {\\n    /* table {\\n      width: 100%;\\n      font-size: smaller;\\n    }\\n\\n    th,\\n    td {\\n      text-align: center;\\n      font-size: smaller;\\n    }\\n\\n    th {\\n      color: white;\\n      background-color: #474747;\\n      height: 35px;\\n      font-size: 13px;\\n    }\\n\\n    td {\\n      height: 35px;\\n      font-size: 13px;\\n    }\\n\\n    table {\\n      border-collapse: collapse;\\n    }\\n\\n    table,\\n    th,\\n    td {\\n      border: 1px solid #e1e1e1;\\n      overflow: hidden;\\n      word-wrap: break-word;\\n    }\\n\\n    table.fixed {\\n      table-layout: fixed;\\n    }\\n\\n    table.fixed td {\\n      overflow: hidden;\\n    }\\n\\n    .highlight td {\\n      background: #C0C0C0;\\n    }*/\\n\\n    h5 {\\n      text-align: center;\\n    }\\n\\n    .donotprintthis1 {\\n\\n      display: block;\\n\\n    }\\n\\n    .donotprintthis {\\n\\n      display: none;\\n\\n    }\\n\\n    .footer {\\n      position: fixed;\\n      bottom: 0;\\n      font-size: 13px;\\n      margin-left: 35%;\\n    }\\n  }\\n</style>\\n<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n<div class=\\\"row\\\" id=\\\"container\\\">\\n  <div class=\\\"\\\" id=\\\"heading\\\">\\n    <h4>Frustrations</h4>\\n\\n  </div>\\n\\n\\n  <div id=\\\"wrapper\\\">\\n    <div id=\\\"tableActions\\\">\\n\\n      <div class=\\\"\\\" id=\\\"search\\\" *ngIf=\\\"tableFormat\\\">\\n        <span *ngIf=\\\"!disableSearch\\\">\\n          <mat-form-field id=\\\"searchField\\\" style=\\\"margin-top: 2px; \\\">\\n            <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n            <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\"\\n              [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n          </mat-form-field>\\n        </span>\\n      </div>\\n      <div *ngIf=\\\"!isDisable && tableFormat\\\" class=\\\"\\\" id=\\\"excelBtn\\\">\\n        <button class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top: 17px; cursor: pointer\\\" [disabled]=\\\"isDisable\\\"\\n          matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">\\n\\n          Excel\\n        </button>\\n\\n      </div>\\n\\n\\n      <div *ngIf=\\\"!tableFormat\\\" class=\\\"\\\" id=\\\"createBtn\\\">\\n        <button matTooltip=\\\"Print status view for frustrations\\\" class=\\\"darkbtnbg btn btn-info\\\"\\n          style='float:right;margin-top: 17px;' [disabled]=\\\"!caseData\\\" printSectionId=\\\"print-frustrations\\\"\\n          [useExistingCss]=\\\"true\\\" ngxPrint>Print</button>\\n\\n      </div>\\n      <div class=\\\"\\\" id=\\\"createBtn\\\">\\n        <button class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top: 17px; cursor: pointer;white-space: nowrap;\\\"\\n          [disabled]=\\\"!caseData || tableFormat\\\" (click)='table()' matTooltip=\\\"Table view\\\">Table View </button>\\n      </div>\\n      <!-- <i class=\\\"fa fa-trello\\\"></i> -->\\n      <div class=\\\"\\\" id=\\\"createBtn\\\">\\n        <button class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top: 17px; cursor: pointer;white-space: nowrap;\\\"\\n          [disabled]=\\\"!caseData || kenbanFormat\\\" (click)='kenban()' matTooltip=\\\"Status view\\\">Status\\n          View</button>\\n      </div>\\n    </div>\\n  </div>\\n</div>\\n\\n<!-- <div class=\\\"item item-5\\\"  fxFlexOrder=\\\"3\\\" *ngIf=\\\"!disableKenban\\\" >\\n    \\n      <button mat-icon-button [matMenuTriggerFor]=\\\"menu\\\" [disabled]=\\\"disableKenban\\\" aria-label=\\\"Example icon-button with a menu\\\" style=\\\"float: right;\\\" matTooltip=\\\"Display As {{displayAs}}\\\" >\\n      \\n           <mat-icon *ngIf=\\\"tableFormat\\\"><i class=\\\"fa fa-table\\\"></i></mat-icon>\\n           <mat-icon *ngIf=\\\"kenbanFormat\\\"><i class=\\\"fa fa-list-alt\\\"></i></mat-icon>\\n        </button>\\n        <mat-menu #menu=\\\"matMenu\\\">\\n          \\n          <button mat-menu-item  (click)='table()' matTooltip=\\\"Table\\\">\\n          \\n            <mat-icon ><i class=\\\"fa fa-table\\\"></i></mat-icon>\\n            \\n            <span>Table</span>\\n          </button>\\n          <button mat-menu-item (click)='kenban()' matTooltip=\\\"Status view\\\">\\n            <mat-icon ><i class=\\\"fa fa-list-alt\\\"></i></mat-icon>\\n            <span>Status view</span>\\n           \\n          </button>\\n        </mat-menu>\\n\\n        \\n    </div> -->\\n<!-- </div> -->\\n\\n\\n<div>\\n  <div class=\\\"tableDiv\\\">\\n    <table *ngIf=\\\"tableFormat\\\">\\n      <thead>\\n        <tr>\\n          <th class=\\\"checkBoxTD\\\">\\n\\n            <mat-checkbox [disabled]='caseData.length==0' class=\\\"chechAll\\\" [(ngModel)]=checkAll\\n              (change)=\\\"CheckAll($event)\\\"\\n              [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\n              [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['U']),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\">\\n            </mat-checkbox>\\n          </th>\\n          <!--<th cName class=\\\"pointer\\\"> Process</th>\\n              <th cName class=\\\"pointer\\\"> Activity</th>-->\\n          <!-- <th  class=\\\"pointer\\\" (click)=\\\"sort('CasesID')\\\"> Case ID\\n                <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n                <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th> -->\\n          <!-- <th  class=\\\"pointer\\\" (click)=\\\"sort('PointerID')\\\"> Issue ID\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th> -->\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('ProcessName')\\\"> Process\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n\\n\\n\\n\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('SeverityName')\\\"> Severity\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n\\n\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('FrustrationsTypeName')\\\"> Type\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n\\n\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('Subject')\\\"> Frustration\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n\\n\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('StatusName')\\\"> Status\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectName')\\\"> Project\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('Description')\\\"> Description\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('PointerDate')\\\"> Date Opened\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n\\n          <th>Action</th>\\n        </tr>\\n      </thead>\\n      <tbody>\\n        <!---->\\n        <tr\\n          *ngFor=\\\"let element of caseData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n\\n          <td class=\\\"checkBoxTD\\\"><span>\\n              <mat-checkbox [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\n                [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['U']),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\"\\n                [(ngModel)]=\\\"checklist[i]=element.check\\\" (change)=\\\"change(element,$event,i)\\\"> </mat-checkbox>\\n            </span></td>\\n\\n          <!-- <td>Case - {{element.CasesID}}</td> -->\\n          <!-- <td>Issue- {{element.PointerID}}</td> -->\\n          <td> {{element.TeamName}}</td>\\n          <td> {{element.ProcessName}}</td>\\n\\n          <td> {{element.SeverityName}}</td>\\n\\n          <td> {{element.FrustrationsTypeName}}</td>\\n          <td> {{element.Subject}} </td>\\n\\n\\n          <td>{{element.StatusName}}</td>\\n          <td>{{element.ProjectName}}</td>\\n          <td>{{element.Description}}</td>\\n          <td>{{element.PointerDate | date:'MM/dd/yyyy'}}</td>\\n\\n          <td style=\\\"cursor: pointer;\\\">\\n            <span> <a matTooltip=\\\"Edit frustration\\\"\\n                [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\n                [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['U']),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\"\\n                (click)=\\\"EditCase(element)\\\"><i style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\"\\n                  aria-hidden=\\\"true\\\"></i></a>\\n              &nbsp;&nbsp;&nbsp; <a matTooltip=\\\"Delete frustration\\\"\\n                [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['D'])?'none':'auto'\\\"\\n                [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['D']),'AddColor':(MenuPermissions[menuName][menuID]['D'])}\\\"\\n                (click)=\\\"DeleteCase(element)\\\"><i style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o  \\\"\\n                  aria-hidden=\\\"true\\\"></i></a>\\n            </span>\\n          </td>\\n\\n        </tr>\\n      </tbody>\\n    </table>\\n\\n\\n    <br>\\n\\n    <div class=\\\"warningMsg\\\" *ngIf=\\\"!caseData || caseData.length==0\\\">\\n      <span>No data available</span>\\n    </div>\\n  </div>\\n  <div class=\\\"warningMsg\\\" *ngIf=\\\"(projectAvailable===false)\\\">\\n    <span>{{errorMsg}}</span>\\n  </div>\\n  <br>\\n  <div class=\\\"pageContainer\\\" *ngIf=\\\"casePaging && tableFormat && caseData.length>0\\\">\\n\\n    <div class=\\\"rowsSelection\\\">\\n      <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n        <mat-select [(ngModel)]=\\\"rowsOnPage\\\" (ngModelChange)=\\\"checkAll=false\\\">\\n          <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n            {{row}}\\n          </mat-option>\\n        </mat-select>\\n      </mat-form-field>\\n    </div>\\n\\n\\n    <div class=\\\"pageSelection\\\">\\n\\n      <!-- style=\\\"margin-top: -50px\\\" -->\\n      <pagination-controls (pageChange)=\\\"p = $event\\\" (click)=\\\"getPageNum()\\\"></pagination-controls>\\n    </div>\\n  </div>\\n\\n\\n</div>\\n<div class=\\\"row\\\" *ngIf=\\\"kenbanFormat\\\">\\n  <div class=\\\"instruction\\\">\\n    <p><strong><span class=\\\"impAsterisk\\\">* </span>Instructions: Double click or long press(for touch screen devices) to\\n        activate rearrangement of the selected frustration.</strong></p>\\n  </div>\\n  <div class=\\\"col-md-2 viewforstatus\\\" *ngFor=\\\"let week of weeks\\\">\\n    <div class=\\\"drag-container\\\">\\n      <div class=\\\"stageHeader pipelineHeader\\\" matTooltip=\\\"{{week.id}}\\\"> {{week.id}} ({{week.count}})</div>\\n\\n      <div (mouseup)=\\\"onMouseUp()\\\" cdkDropList id=\\\"{{week.id}}\\\" [cdkDropListData]=\\\"week.weeklist\\\"\\n        [cdkDropListConnectedTo]=\\\"connectedTo\\\" class=\\\"example-list\\\" (cdkDropListDropped)=\\\"drop($event,week.statusID)\\\">\\n        <div #button long-press (onLongPressing)=\\\"onLongPressing()\\\" (dblclick)=\\\"onDblClick()\\\" (mouseup)=\\\"onMouseUp()\\\"\\n          class=\\\"example-box\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\n          *ngFor=\\\"let weekItem of week.weeklist\\\"\\n          [cdkDragDisabled]=\\\"!MenuPermissions[menuName][menuID]['U'] || ifLongPress\\\" cdkDrag>\\n          <!-- Case - {{weekItem.CasesID}}<br> -->\\n\\n          <span *ngIf=\\\"weekItem.UpdatedBy === null;else upby\\\">\\n            Team: {{weekItem.TeamName}}<br>\\n            Frustration: {{weekItem.Subject}}<br>\\n            <!-- {{weekItem.CreatedBy}}<br>\\n                      {{weekItem.PointerDate | date:'MM/dd/yyyy'}}<br> -->\\n          </span>\\n          <ng-template #upby>\\n            Team: {{weekItem.TeamName}}<br>\\n            Frustration: {{weekItem.Subject}}<br>\\n            <!-- {{weekItem.UpdatedBy}}<br>\\n                       {{weekItem.PointerDate | date:'MM/dd/yyyy'}}<br> -->\\n          </ng-template>\\n          <br>\\n          <!--{{weekItem.Description}}<br>-->\\n          <!-- {{weekItem.ActivityName}}<br>  -->\\n          <!-- {{weekItem.StatusName}}<br> -->\\n\\n          <!--{{weekItem.PointerCreatedBy}}-->\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n</div>\\n\\n<div id=\\\"assignBtn \\\" style=\\\"text-align: center;margin-top: 10px;cursor: default;\\\" *ngIf=\\\"tableFormat\\\">\\n  <!-- checkEnable &&  -->\\n  <mat-form-field class=\\\"btn\\\">\\n    <mat-label>* Project</mat-label>\\n    <mat-select style=\\\"cursor:pointer;\\\" (selectionChange)=\\\"project($event)\\\" [(ngModel)]=\\\"ProjectID\\\"\\n      [disabled]=\\\"!projectData|| !enableProject\\\">\\n      <mat-option label=\\\"--select Project --\\\" [value]=\\\"0\\\">-- None --</mat-option>\\n      <mat-option *ngFor=\\\"let data of projectData;let i=index;\\\" [value]=\\\"projectData[i].ProjectID\\\">\\n        {{projectData[i].ProjectName}}\\n      </mat-option>\\n    </mat-select>\\n  </mat-form-field>&nbsp;&nbsp;&nbsp;\\n\\n  <button class=\\\"darkbtnbg btn btn-info \\\" style=\\\"text-align: center;cursor:pointer;\\\"\\n    [disabled]=\\\"!projectData || !enableProject\\\" (click)=\\\"Addproject('assign')\\\" matTooltip=\\\"Assign to project\\\"\\n    *ngIf=\\\"caseData\\\">Assign Project</button>\\n\\n  <label style=\\\"color: red;\\\">&nbsp;&nbsp;{{ErrorMessage}}</label>\\n</div>\\n\\n\\n<!--************************print Kanban****************************-->\\n<div id=\\\"print-frustrations\\\" class=\\\"donotprintthis1\\\">\\n  <div style=\\\"text-align: center;\\\">\\n    <span>Company - <strong> {{loginCompanyName }} </strong></span> <br>\\n    <span>Date: {{Date| date:'MM-dd-yyyy' }}</span><br>\\n    <span>Frustrations Status View</span>\\n  </div><br>\\n\\n\\n\\n\\n  <div class=\\\"row\\\" *ngIf=\\\"kenbanFormat\\\">\\n    <div class=\\\" col-md-2\\\" *ngFor=\\\"let week of weeks\\\">\\n      <div class=\\\"drag-container\\\">\\n        <div class=\\\"stageHeader pipelineHeader\\\" matTooltip=\\\"{{week.id}}\\\"> {{week.id}} ({{week.count}})</div>\\n\\n        <div cdkDropList id=\\\"{{week.id}}\\\" [cdkDropListData]=\\\"week.weeklist\\\" [cdkDropListConnectedTo]=\\\"connectedTo\\\"\\n          class=\\\"example-list\\\" (cdkDropListDropped)=\\\"drop($event,week.statusID)\\\">\\n          <div class=\\\"example-box \\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\n            *ngFor=\\\"let weekItem of week.weeklist\\\" [cdkDragDisabled]=\\\"!MenuPermissions[menuName][menuID]['U']\\\" cdkDrag>\\n            <!-- Case - {{weekItem.CasesID}}<br> -->\\n\\n            <span *ngIf=\\\"weekItem.UpdatedBy === null;else upby\\\">\\n              Team: {{weekItem.TeamName}}<br>\\n              Frustration: {{weekItem.Subject}}<br>\\n              <!-- {{weekItem.CreatedBy}}<br>\\n             {{weekItem.PointerDate | date:'MM/dd/yyyy'}}<br> -->\\n            </span>\\n            <ng-template #upby>\\n              Team: {{weekItem.TeamName}}<br>\\n              Frustration: {{weekItem.Subject}}<br>\\n              <!-- {{weekItem.UpdatedBy}}<br>\\n              {{weekItem.PointerDate | date:'MM/dd/yyyy'}}<br> -->\\n            </ng-template>\\n            <br>\\n            <!--{{weekItem.Description}}<br>-->\\n            <!-- {{weekItem.ActivityName}}<br>  -->\\n            <!-- {{weekItem.StatusName}}<br> -->\\n\\n            <!--{{weekItem.PointerCreatedBy}}-->\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <div class=\\\"footer\\\">\\n    <label>{{copyRight}}</label>\\n  </div>\\n</div>\\n\\n\\n\\n\\n\\n<style>\\n  @media screen and (max-width: 600px) {\\n    .darkbtnbg {\\n      background-color: #3775b5 !important;\\n      font-size: 13px;\\n      width: 1;\\n      width: 100% !important;\\n    }\\n\\n    .mb_res {\\n      flex: auto !important;\\n      max-width: 100% !important;\\n    }\\n\\n    table.fixed {\\n      table-layout: fixed;\\n      overflow: auto !important;\\n    }\\n\\n    .txt_bx {\\n      width: 100% !important;\\n    }\\n\\n  }\\n</style>\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<div *ngIf=\\\"data !== 'new' && data !== 'edit' && data!='log'&& data !== 'progress' &&  data !== 'status'\\\">\\r\\n  <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n  <mat-dialog-actions align=\\\"center\\\">\\r\\n    <div *ngIf=\\\"condition\\\">\\r\\n      <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n      <!-- Can optionally provide a result for the closing dialog. -->\\r\\n      <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n    </div>\\r\\n    <div *ngIf=\\\"!condition &&  data !== 'progress' &&  data !== 'status'\\\">\\r\\n      <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n        <div class=\\\"item item-3 \\\">\\r\\n          <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n\\r\\n<div *ngIf=\\\"data === 'new' || data === 'edit'\\\"><br>\\r\\n  <div class=\\\"XBtn\\\">\\r\\n    <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">&times;</span>\\r\\n  </div>\\r\\n  <mat-slide-toggle [checked]=\\\"subActivityStatus\\\" [disabled]=\\\"conditionActivity!='' || data=='edit'\\\"\\r\\n    (change)=\\\"ToggleSubActivity()\\\">Sub Activity</mat-slide-toggle>\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowheading\\\">\\r\\n      <h4 class=\\\"alignheader\\\"><b> Assign Frustration</b></h4>\\r\\n\\r\\n    </div>\\r\\n  </div>\\r\\n\\r\\n  <div class=\\\"inputFields\\\">\\r\\n    <div>\\r\\n\\r\\n      <mat-form-field>\\r\\n        <input matInput [disabled]=\\\"true\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\" id=\\\"lblIssueID\\\" [(ngModel)]=\\\"PointerID\\\"\\r\\n          (keypress)=\\\"IsAlpha($event)\\\" value=\\\"\\\">\\r\\n        <mat-placeholder>Pointer ID <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n\\r\\n\\r\\n    <div>\\r\\n\\r\\n\\r\\n      <mat-form-field>\\r\\n\\r\\n        <mat-placeholder>Key Process <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n        <mat-select (selectionChange)=\\\"process($event)\\\" [(ngModel)]=\\\"ProcessID\\\">\\r\\n          <mat-option *ngFor=\\\"let data of processData;let i=index;\\\" [value]=\\\"processData[i].ProcessID\\\">\\r\\n            {{processData[i].ProcessName}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div>\\r\\n\\r\\n      <mat-form-field>\\r\\n\\r\\n        <mat-placeholder>Activity <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n        <mat-select (selectionChange)=\\\"activity($event)\\\" [(ngModel)]=\\\"ActivityID\\\">\\r\\n          <mat-option *ngFor=\\\"let data of tempActivity;let i=index;\\\" [value]=\\\"tempActivity[i].ActivityID\\\">\\r\\n            {{tempActivity[i].ActivityName}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n\\r\\n\\r\\n    </div>\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n\\r\\n        <mat-placeholder>Team <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n        <mat-select [(ngModel)]=\\\"TeamID\\\" [disabled]=\\\"true\\\">\\r\\n          <mat-option *ngFor=\\\"let data of teamData;let i=index;\\\" [value]=\\\"teamData[i].TeamID\\\">\\r\\n            {{teamData[i].TeamName}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n        <mat-placeholder>Sub Activity <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n\\r\\n        <mat-select [disabled]=\\\"conditionActivity!='' || !subActivityStatus  || tempSubActivity.length===0\\\"\\r\\n          [(ngModel)]=\\\"SubActivityID\\\" (selectionChange)=\\\"subactivity($event)\\\">\\r\\n          <mat-option *ngFor=\\\"let data of tempSubActivity;let i=index;\\\" [value]=\\\"tempSubActivity[i].ActivityID\\\">\\r\\n            {{tempSubActivity[i].ActivityName}}\\r\\n\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n\\r\\n    </div>\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n        <mat-placeholder>Frustrations Type <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n        <mat-select (selectionChange)=\\\"frustrationType($event)\\\" [(ngModel)]=\\\"FrustrationTypeID\\\">\\r\\n          <mat-option *ngFor=\\\"let data of tempFrustrationType;let i=index;\\\"\\r\\n            [value]=\\\"tempFrustrationType[i].FrustrationsTypeID\\\">\\r\\n            {{tempFrustrationType[i].FrustrationsTypeName}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div>\\r\\n\\r\\n\\r\\n      <mat-form-field>\\r\\n\\r\\n        <input matInput autocomplete=\\\"off\\\" maxlength=\\\"55\\\" id=\\\"lblSubject\\\" [(ngModel)]=\\\"Subject\\\" value=\\\"\\\">\\r\\n        <mat-placeholder>Frustration <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n        <input matInput placeholder=\\\" Description\\\" autocomplete=\\\"off\\\" maxlength=\\\"500\\\" id=\\\"lblDescription\\\"\\r\\n          [(ngModel)]=\\\"Description\\\" value=\\\"\\\">\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n        <mat-label>Status</mat-label>\\r\\n        <mat-select (selectionChange)=\\\"statusChange($event)\\\" [(ngModel)]=\\\"StatusID\\\">\\r\\n          <mat-option *ngFor=\\\"let data of statusData;let i=index;\\\" [value]=\\\"statusData[i].StatusID\\\">\\r\\n            {{statusData[i].StatusName}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n\\r\\n    </div>\\r\\n    <div>\\r\\n\\r\\n      <mat-form-field>\\r\\n        <mat-placeholder>Severity <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n        <mat-select (selectionChange)=\\\"severity($event)\\\" [(ngModel)]=\\\"SeverityID\\\">\\r\\n          <mat-option *ngFor=\\\"let data of severityData;let i=index;\\\" [value]=\\\"severityData[i].SeverityID\\\">\\r\\n            {{severityData[i].SeverityName}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n\\r\\n\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n        <textarea matInput placeholder=\\\" Internal Comments\\\" autocomplete=\\\"off\\\" maxlength=\\\"500\\\" id=\\\"lblComments\\\"\\r\\n          [(ngModel)]=\\\"Comments\\\" value=\\\"\\\"></textarea>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n        <input matInput placeholder=\\\" SLA Violation\\\" maxlength=\\\"100\\\" autocomplete=\\\"off\\\" id=\\\"lblSLAViolation\\\"\\r\\n          [(ngModel)]=\\\"SLAViolation\\\" value=\\\"\\\">\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n\\r\\n  </div>\\r\\n\\r\\n  <!-- <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n      <div id=\\\"Rowwrapper\\\">\\r\\n        <div id=\\\"RowtableAction\\\">\\r\\n          <div id=\\\"field\\\">\\r\\n    \\r\\n          <mat-form-field>\\r\\n              <input matInput [disabled]=\\\"true\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\"  id=\\\"lblIssueID\\\" [(ngModel)]=\\\"PointerID\\\" \\r\\n              (keypress)=\\\"IsAlpha($event)\\\"\\r\\n              value=\\\"\\\">\\r\\n              <mat-placeholder>Pointer ID <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n          </mat-form-field>\\r\\n        </div>\\r\\n        \\r\\n      \\r\\n          <div id=\\\"field\\\">\\r\\n      \\r\\n  \\r\\n               <mat-form-field >\\r\\n                 \\r\\n                  <mat-placeholder>Key Process <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n                  <mat-select (selectionChange)=\\\"process($event)\\\" [(ngModel)]=\\\"ProcessID\\\" >\\r\\n                    <mat-option *ngFor=\\\"let data of processData;let i=index;\\\" [value]=\\\"processData[i].ProcessID\\\" >\\r\\n                      {{processData[i].ProcessName}}\\r\\n                    </mat-option>\\r\\n                  </mat-select>\\r\\n                </mat-form-field> \\r\\n          </div>\\r\\n           <div id=\\\"field\\\">\\r\\n            \\r\\n          <mat-form-field>\\r\\n            \\r\\n            <mat-placeholder>Activity <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n            <mat-select (selectionChange)=\\\"activity($event)\\\" [(ngModel)]=\\\"ActivityID\\\" >\\r\\n                <mat-option *ngFor=\\\"let data of tempActivity;let i=index;\\\" [value]=\\\"tempActivity[i].ActivityID\\\" >\\r\\n                  {{tempActivity[i].ActivityName}}\\r\\n                </mat-option>\\r\\n              </mat-select>\\r\\n        </mat-form-field>\\r\\n  \\r\\n     \\r\\n      </div>\\r\\n      \\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n        \\r\\n    <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n      <div id=\\\"Rowwrapper\\\">\\r\\n        <div id=\\\"RowtableAction\\\">\\r\\n          <div id=\\\"field\\\">\\r\\n          <mat-form-field>\\r\\n              \\r\\n              <mat-placeholder>Team <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n              <mat-select  [(ngModel)]=\\\"TeamID\\\" [disabled]=\\\"true\\\" >\\r\\n                  <mat-option *ngFor=\\\"let data of teamData;let i=index;\\\" [value]=\\\"teamData[i].TeamID\\\" >\\r\\n                    {{teamData[i].TeamName}}\\r\\n                  </mat-option>\\r\\n                </mat-select>\\r\\n          </mat-form-field>\\r\\n          </div>\\r\\n          <div id=\\\"field\\\">\\r\\n              <mat-form-field >\\r\\n                  <mat-placeholder>Sub Activity <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n                 \\r\\n                  <mat-select [disabled]=\\\"conditionActivity!='' || !subActivityStatus  || tempSubActivity.length===0\\\"  [(ngModel)]=\\\"SubActivityID\\\" (selectionChange)=\\\"subactivity($event)\\\" >\\r\\n                      <mat-option *ngFor=\\\"let data of tempSubActivity;let i=index;\\\" [value]=\\\"tempSubActivity[i].ActivityID\\\" >\\r\\n                        {{tempSubActivity[i].ActivityName}}\\r\\n                         \\r\\n                      </mat-option>\\r\\n                    </mat-select>\\r\\n              </mat-form-field>\\r\\n              \\r\\n          </div>\\r\\n          <div id=\\\"field\\\">\\r\\n          <mat-form-field>\\r\\n   <mat-placeholder>Frustrations Type <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n              <mat-select (selectionChange)=\\\"frustrationType($event)\\\" [(ngModel)]=\\\"FrustrationTypeID\\\" >\\r\\n                  <mat-option *ngFor=\\\"let data of tempFrustrationType;let i=index;\\\" [value]=\\\"tempFrustrationType[i].FrustrationsTypeID\\\" >\\r\\n                    {{tempFrustrationType[i].FrustrationsTypeName}}\\r\\n                  </mat-option>\\r\\n                </mat-select>\\r\\n          </mat-form-field>\\r\\n        </div>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n      \\r\\n    <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n      <div id=\\\"Rowwrapper\\\">\\r\\n        <div id=\\\"RowtableAction\\\">\\r\\n          <div id=\\\"field\\\">\\r\\n  \\r\\n\\r\\n          <mat-form-field>\\r\\n          \\r\\n            <input matInput  autocomplete=\\\"off\\\" maxlength=\\\"55\\\"  id=\\\"lblSubject\\\" [(ngModel)]=\\\"Subject\\\" \\r\\n      value=\\\"\\\">\\r\\n<mat-placeholder>Frustration <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n\\r\\n          </mat-form-field>\\r\\n      </div>\\r\\n      <div id=\\\"field\\\">\\r\\n        <mat-form-field>\\r\\n            <input matInput placeholder=\\\" Description\\\" autocomplete=\\\"off\\\" maxlength=\\\"500\\\"  id=\\\"lblDescription\\\" [(ngModel)]=\\\"Description\\\"\\r\\n      value=\\\"\\\">\\r\\n          </mat-form-field>\\r\\n      </div>\\r\\n\\r\\n      <div id=\\\"field\\\">\\r\\n            <mat-form-field>\\r\\n                <mat-label>Status</mat-label>\\r\\n                <mat-select (selectionChange)=\\\"statusChange($event)\\\" [(ngModel)]=\\\"StatusID\\\">\\r\\n                  <mat-option *ngFor=\\\"let data of statusData;let i=index;\\\" [value]=\\\"statusData[i].StatusID\\\" >\\r\\n                    {{statusData[i].StatusName}}\\r\\n                  </mat-option>\\r\\n                </mat-select>\\r\\n              </mat-form-field>\\r\\n\\r\\n          </div>\\r\\n\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n    <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n      <div id=\\\"Rowwrapper\\\">\\r\\n        <div id=\\\"RowtableAction\\\">\\r\\n          <div id=\\\"field\\\">\\r\\n  \\r\\n        <mat-form-field>\\r\\n           <mat-placeholder>Severity <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n            <mat-select (selectionChange)=\\\"severity($event)\\\" [(ngModel)]=\\\"SeverityID\\\">\\r\\n              <mat-option *ngFor=\\\"let data of severityData;let i=index;\\\" [value]=\\\"severityData[i].SeverityID\\\" >\\r\\n                {{severityData[i].SeverityName}}\\r\\n              </mat-option>\\r\\n            </mat-select>\\r\\n          </mat-form-field>\\r\\n    </div>\\r\\n   \\r\\n\\r\\n    <div id=\\\"field\\\">\\r\\n   <mat-form-field>\\r\\n    <textarea matInput  placeholder=\\\" Internal Comments\\\" autocomplete=\\\"off\\\" maxlength=\\\"500\\\"  id=\\\"lblComments\\\" [(ngModel)]=\\\"Comments\\\"\\r\\nvalue=\\\"\\\"></textarea>\\r\\n  </mat-form-field>\\r\\n</div> \\r\\n\\r\\n<div id=\\\"field\\\">\\r\\n  <mat-form-field>\\r\\n<input matInput placeholder=\\\" SLA Violation\\\" maxlength=\\\"100\\\" autocomplete=\\\"off\\\"  id=\\\"lblSLAViolation\\\" [(ngModel)]=\\\"SLAViolation\\\"\\r\\nvalue=\\\"\\\">\\r\\n</mat-form-field>\\r\\n</div>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div> -->\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowwrapper\\\">\\r\\n      <div id=\\\"RowtableActions\\\">\\r\\n\\r\\n        <div id=\\\"buttonview\\\">\\r\\n          <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"AddCase()\\\" [disabled]=\\\"btnDisabled\\\"><span\\r\\n              *ngIf=\\\"data === 'new'\\\">Save</span><span *ngIf=\\\"data === 'edit'\\\">Update</span></button>\\r\\n        </div>\\r\\n        <div id=\\\"buttonview\\\">\\r\\n          <button mat-accent class=\\\"addButtons btn\\\" (click)='Clear()'>Cancel</button>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </div>\\r\\n\\r\\n\\r\\n  <div *ngIf=\\\"data === 'edit'\\\">\\r\\n\\r\\n    <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n      <div id=\\\"Rowwrapper\\\">\\r\\n        <div id=\\\"RowtableActions\\\">\\r\\n          <div id=\\\"field\\\">\\r\\n            <mat-label *ngIf=\\\"updatedBy !== null\\\">Updated By:<b> {{updatedBy}}</b></mat-label>\\r\\n          </div>\\r\\n          <div id=\\\"field\\\">\\r\\n            <mat-label *ngIf=\\\"updatedDate !== null\\\">Updated Date:<b> {{updatedDate | date:'MM/dd/yyyy'}}</b></mat-label>\\r\\n          </div>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </div>\\r\\n\\r\\n  <br>\\r\\n  <mat-dialog-content class=\\\"warningMsg\\\">{{dataSelf}}</mat-dialog-content>\\r\\n  <mat-dialog-content class=\\\"successMsg\\\"></mat-dialog-content>\\r\\n\"","module.exports = \"<mat-dialog-content>Saved Successfully</mat-dialog-content>\\r\\n<mat-dialog-actions align=\\\"center\\\">\\r\\n    <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n        <div class=\\\"item item-3 \\\">\\r\\n            <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n        </div>\\r\\n    </div>\\r\\n</mat-dialog-actions>\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n\\n<div class=\\\"\\\" id=\\\"container\\\">\\n  <span class=\\\"btn-margin\\\" *ngIf=\\\"isSuperAdmin\\\">\\n    <button class=\\\"btn btn-default\\\" [routerLink]=\\\"['/organization']\\\" matTooltip=\\\"Back to Organization\\\">Back\\n    </button>\\n  </span>\\n  <div class=\\\"row orgDetails\\\" *ngIf=\\\"organizationDetails\\\">\\n    <div class=\\\"col-sm-4 p-t-10\\\">\\n      <span><b>Organization Name: </b></span>&nbsp;\\n      <span> {{organizationDetails.OrganizationName}}</span>\\n    </div>\\n    <div class=\\\"col-sm-4 p-t-10\\\">\\n      <span><b>Total Licences: </b></span>&nbsp;\\n      <span> {{organizationDetails.NoOfLicenses}}</span>\\n    </div>\\n    <div class=\\\"col-sm-4 p-t-10\\\" *ngIf=\\\"licenseDetails\\\">\\n      <span><b>Remaining Licenses: </b></span>&nbsp;\\n      <span> {{organizationService.totalLicenses$ | async}}</span>\\n    </div>\\n  </div>\\n  <div id=\\\"\\\">\\n    <div id=\\\"tableActions\\\">\\n      <div class=\\\"\\\" id=\\\"search\\\" *ngIf=\\\"!isSearchDisable\\\">\\n        <mat-form-field style=\\\"margin-top: -5px;\\\" id=\\\"searchField\\\">\\n          <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n          <input matInput id=\\\"newGroup\\\" (keyup)=\\\"Searchtext()\\\" [disabled]=\\\"isSearchDisable\\\" name=\\\"search\\\"\\n            [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n        </mat-form-field>\\n      </div>\\n      <div class=\\\"\\\" id=\\\"excelBtn\\\" style=\\\"display: none;\\\" *ngIf=\\\"!isSearchDisable\\\">\\n        <button class=\\\"darkbtnbg btn btn-info\\\" [disabled]=\\\"isDisable\\\" matTooltip=\\\"Export as excel\\\"\\n          style=\\\"margin-top:11px;cursor: pointer;\\\" (click)=\\\"exportAsXLSX()\\\">\\n          Excel\\n        </button>\\n      </div>\\n      <div class=\\\"\\\" id=\\\"createBtn\\\" *ngIf=\\\"!isSuperAdmin\\\">\\n        <button mat-accent class=\\\"darkbtnbg btn btn-info\\\"\\n          [disabled]=\\\"(isCompanyLogin && CompanyID) || isSubCompanyLogin\\\" (click)='OpenCompany()'\\n          style=\\\"margin-top: 11px;\\\" matTooltip=\\\"New Entity\\\">New </button>\\n      </div>\\n    </div>\\n  </div>\\n</div>\\n\\n<div class=\\\"tableDiv mt-20\\\">\\n  <table>\\n    <thead>\\n      <tr>\\n        <th class=\\\"pointer\\\" (click)=\\\"sort('CompanyName')\\\"> Entity\\n          <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n          <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n        </th>\\n        <th class=\\\"pointer\\\" (click)=\\\"sort('Email')\\\"> Email\\n          <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n          <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n        </th>\\n        <th class=\\\"pointer\\\" (click)=\\\"sort('Phone1')\\\"> Phone\\n          <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n          <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n        </th>\\n        <th class=\\\"pointer\\\" (click)=\\\"sort('NoOfSubCompanies')\\\"> Sub Entities\\n          <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n          <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n        </th>\\n        <th>\\n          Enable Score Card\\n        </th>\\n        <th action>Action</th>\\n      </tr>\\n    </thead>\\n    <tbody>\\n      <!---->\\n      <tr\\n        *ngFor=\\\"let element of companyData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\"\\n        id=\\\"trRow\\\" [ngClass]=\\\"element.CompanyID === currentRow ? 'highlight' : ''\\\">\\n        <td> {{element.CompanyName}}</td>\\n        <td>{{element.Email}} </td>\\n        <td> {{element.Phone1}} </td>\\n        <td> {{element.NoOfSubCompanies ? element.NoOfSubCompanies : 0}} </td>\\n        <td>\\n          <span *ngIf=\\\"isSuperAdmin || !isCompanyLogin\\\">\\n            <mat-slide-toggle [color]=\\\"color\\\" [(ngModel)]=\\\"element.EnableScoreCard\\\" [checked]=\\\"element.EnableScoreCard\\\"\\n              (change)='enableScoreCardChange($event,element)'></mat-slide-toggle>\\n          </span>\\n          <span *ngIf=\\\"!isSuperAdmin && isCompanyLogin\\\">\\n            {{element.EnableScoreCard ? 'Yes' : 'No'}}\\n          </span>\\n        </td>\\n        <td style=\\\"cursor:pointer;\\\">\\n          <span>\\n            <a matTooltip=\\\"View Sub Entities\\\"\\n              [attr.disabled]=\\\"(element.NoOfSubCompanies || element.NoOfSubCompanies == 0) ? false: true\\\"\\n              (click)=\\\"viewSubEntities(element)\\\"\\n              [style.pointer-events]=\\\"element.NoOfSubCompanies == 0 ? 'none' : 'auto'\\\"\\n              [ngClass]=\\\"{'removeColor':(element.NoOfSubCompanies == 0),'AddColor':(element.NoOfSubCompanies != 0)}\\\">\\n              <i style=\\\"cursor: pointer;\\\" class=\\\"fa fa-eye \\\" aria-hidden=\\\"true\\\"></i>\\n            </a>&nbsp;&nbsp;&nbsp;\\n            <a matTooltip=\\\"Edit Entity\\\"\\n              [style.pointer-events]=\\\"(isCompanyLogin && CompanyID) || (isSubCompanyLogin) ? 'none' : 'auto'\\\"\\n              [ngClass]=\\\"{'removeColor':((isCompanyLogin && CompanyID) || (isSubCompanyLogin)),'AddColor':(!(isCompanyLogin && CompanyID) || (!isSubCompanyLogin))}\\\"\\n              class=\\\"fontLabel\\\" (click)=\\\"EditCompany(element)\\\"><i style=\\\"cursor: pointer;\\\"\\n                class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n            &nbsp;&nbsp;&nbsp; <a matTooltip=\\\"Delete Entity\\\" class=\\\"fontLabel\\\"\\n              [style.pointer-events]=\\\"(isCompanyLogin && CompanyID) || (isSubCompanyLogin) ? 'none' : 'auto'\\\"\\n              [ngClass]=\\\"{'removeColor':((isCompanyLogin && CompanyID) || (isSubCompanyLogin)),'AddColor':(!(isCompanyLogin && CompanyID) || (!isSubCompanyLogin))}\\\"\\n              (click)=\\\"DeleteCompany(element)\\\"><i style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\"\\n                aria-hidden=\\\"true\\\"></i></a>\\n            &nbsp;&nbsp;&nbsp; <a matTooltip=\\\"Add user\\\" style=\\\"display: none;\\\" (click)=\\\"AddUser(element)\\\"><i\\n                class=\\\"fa fa-user\\\" aria-hidden=\\\"true\\\"></i></a>\\n\\n            <a style=\\\"cursor: pointer; color: #3775b5; width: 20px; size: 2px;\\\" class=\\\"rightArrow\\\"\\n              matTooltip=\\\"Login with {{element.CompanyName}} entity\\\" (click)=\\\"Navigate(element)\\\"><i\\n                class=\\\"fa fa-arrow-circle-right fa-5x\\\"></i></a>\\n          </span>\\n        </td>\\n      </tr>\\n    </tbody>\\n  </table>\\n  <br>\\n  <div class=\\\"warningMsg\\\" *ngIf=\\\"(companyData === null||companyData===undefined || companyData.length === 0)\\\">\\n    <span>No data available</span>\\n  </div>\\n</div>\\n<div class=\\\"pageContainer\\\" style=\\\"display: none;\\\" *ngIf=\\\"companyPaging && companyData.length>0\\\">\\n  <div class=\\\"rowsSelection\\\">\\n    <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n      <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n        <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n          {{row}}\\n        </mat-option>\\n      </mat-select>\\n    </mat-form-field>\\n  </div>\\n  <div class=\\\"pageSelection\\\">\\n    <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n  </div>\\n</div>\\n\\n<app-sub-company *ngIf=\\\"showSubEntities\\\" [remainingEntityLicenses]=\\\"remainingEntityLicenses\\\"\\n  [entityLicenses]=\\\"entityLicenses\\\" [subCompanyCount]=\\\"subCompanyCount\\\" [entityName]=\\\"entityName\\\"\\n  [isSuperAdmin]=\\\"isSuperAdmin\\\" [companyId]=\\\"parentCompanyId\\\" [organizationId]=\\\"organizationId\\\">\\n</app-sub-company>\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<div\\r\\n  *ngIf=\\\"data !== 'new' && data !== 'edit' && data!='log'&& data !== 'progress' &&  data !== 'status' && !userVisible\\\">\\r\\n  <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n  <mat-dialog-actions align=\\\"center\\\">\\r\\n    <div *ngIf=\\\"condition\\\">\\r\\n      <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n      <!-- Can optionally provide a result for the closing dialog. -->\\r\\n      <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n    </div>\\r\\n    <div *ngIf=\\\"!condition &&  data !== 'progress' &&  data !== 'status' && !userVisible\\\">\\r\\n      <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n        <div class=\\\"item item-3 \\\">\\r\\n          <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n<div *ngIf=\\\"data === 'new' || data === 'edit' && !userVisible && data!= 'user'\\\">\\r\\n  <br>\\r\\n\\r\\n  <div class=\\\"XBtn\\\">\\r\\n    <span (click)=\\\"clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">&times;</span>\\r\\n  </div>\\r\\n\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowheading\\\">\\r\\n      <h4 class=\\\"alignheader\\\"><b><span *ngIf=\\\"data === 'new'\\\">Add </span>{{data | titlecase}} Entity</b></h4>\\r\\n      <!-- <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">&times;</span> -->\\r\\n    </div>\\r\\n  </div>\\r\\n\\r\\n  <div class=\\\"inputFields\\\">\\r\\n    <div id=\\\"field1\\\">\\r\\n      <mat-form-field>\\r\\n        <input matInput autocomplete=\\\"off\\\" (keyup)=\\\"validate()\\\" maxlength=\\\"50\\\" id=\\\"lblCompanyName\\\"\\r\\n          [(ngModel)]=\\\"companyDetails.CompanyName\\\" value=\\\"\\\">\\r\\n        <mat-placeholder>Entity name <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div id=\\\"field2\\\">\\r\\n      <mat-form-field>\\r\\n        <input matInput autocomplete=\\\"off\\\" maxlength=\\\"30\\\" id=\\\"lblFirstName\\\" [(ngModel)]=\\\"companyDetails.FirstName\\\"\\r\\n          value=\\\"\\\">\\r\\n        <mat-placeholder>User First Name <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div id=\\\"field3\\\">\\r\\n      <mat-form-field>\\r\\n        <input matInput autocomplete=\\\"off\\\" maxlength=\\\"30\\\" id=\\\"lblLastName\\\" [(ngModel)]=\\\"companyDetails.LastName\\\"\\r\\n          value=\\\"\\\">\\r\\n        <mat-placeholder>User Last Name <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div id=\\\"fiel4\\\">\\r\\n      <mat-form-field>\\r\\n        <textarea matInput autocomplete=\\\"off\\\" maxlength=\\\"200\\\" id=\\\"lblAddress1\\\" [(ngModel)]=\\\"companyDetails.Address1\\\"\\r\\n          value=\\\"\\\"></textarea>\\r\\n        <mat-placeholder>Address Line 1 <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div id=\\\"field5\\\">\\r\\n      <mat-form-field>\\r\\n        <textarea matInput placeholder=\\\"Address Line 2\\\" autocomplete=\\\"off\\\" maxlength=\\\"200\\\" id=\\\"lblAddress2\\\"\\r\\n          [(ngModel)]=\\\"companyDetails.Address2\\\" value=\\\"\\\"></textarea>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div id=\\\"field6\\\">\\r\\n      <mat-form-field>\\r\\n        <input matInput autocomplete=\\\"off\\\" maxlength=\\\"50\\\" id=\\\"lblCountry\\\" [(ngModel)]=\\\"companyDetails.Country\\\" value=\\\"\\\"\\r\\n          (keypress)=\\\"isAlpha($event)\\\">\\r\\n        <mat-placeholder>Country <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div id=\\\"field7\\\">\\r\\n      <mat-form-field>\\r\\n        <input matInput maxlength=\\\"50\\\" id=\\\"lblState\\\" [(ngModel)]=\\\"companyDetails.State\\\" value=\\\"\\\"\\r\\n          (keypress)=\\\"isAlpha($event)\\\">\\r\\n        <mat-placeholder>State <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div id=\\\"field8\\\">\\r\\n      <mat-form-field>\\r\\n        <input matInput autocomplete=\\\"off\\\" maxlength=\\\"50\\\" id=\\\"lblCity\\\" [(ngModel)]=\\\"companyDetails.City\\\" value=\\\"\\\"\\r\\n          (keypress)=\\\"isAlpha($event)\\\">\\r\\n        <mat-placeholder>City <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div id=\\\"field9\\\">\\r\\n      <mat-form-field>\\r\\n        <input matInput autocomplete=\\\"off\\\" onpaste=\\\"return false\\\" oncut=\\\"return false\\\"\\r\\n          (keypress)=\\\"validatePhone($event)\\\" minlength=\\\"5\\\" maxlength=\\\"5\\\" id=\\\"lblPincode\\\"\\r\\n          [(ngModel)]=\\\"companyDetails.Pincode\\\" value=\\\"\\\">\\r\\n        <mat-placeholder>Zipcode <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div id=\\\"field10\\\">\\r\\n      <mat-form-field>\\r\\n        <input matInput (keypress)=\\\"validatePhone($event)\\\" (blur)=\\\"valZero()\\\" onpaste=\\\"return false\\\"\\r\\n          oncut=\\\"return false\\\" autocomplete=\\\"off\\\" maxlength=\\\"16\\\" id=\\\"lblPhone1\\\" [(ngModel)]=\\\"companyDetails.Phone1\\\"\\r\\n          value=\\\"\\\">\\r\\n        <mat-placeholder>Phone1 <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div id=\\\"field11\\\">\\r\\n      <mat-form-field>\\r\\n        <input matInput (keypress)=\\\"validatePhone($event)\\\" (blur)=\\\"valZero()\\\" placeholder=\\\" Phone2\\\"\\r\\n          onpaste=\\\"return false\\\" oncut=\\\"return false\\\" autocomplete=\\\"off\\\" maxlength=\\\"16\\\" id=\\\"lblPhone2\\\"\\r\\n          [(ngModel)]=\\\"companyDetails.Phone2\\\" value=\\\"\\\">\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div id=\\\"field12\\\">\\r\\n      <mat-form-field>\\r\\n        <input matInput (keypress)=\\\"validateEmail($event)\\\" autocomplete=\\\"off\\\" maxlength=\\\"50\\\" id=\\\"lblEmail\\\"\\r\\n          [(ngModel)]=\\\"companyDetails.Email\\\" value=\\\"\\\">\\r\\n        <mat-placeholder>Email<span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div id=\\\"field14\\\">\\r\\n      <br>\\r\\n      <mat-slide-toggle [(ngModel)]=\\\"companyDetails.EnableSubCompanies\\\"\\r\\n        [disabled]=\\\"subCompanyCount > 0 || (data === 'new' && licenseDetails && licenseDetails.NotUsedLicenses == 0) || (remainingEntityLicenses == 0)\\\"\\r\\n        (change)=\\\"enableSubCompanies($event,companyDetails)\\\" [checked]=\\\"companyDetails.EnableSubCompanies\\\">\\r\\n        Enable Sub Entities\\r\\n      </mat-slide-toggle>\\r\\n\\r\\n    </div>\\r\\n    <div id=\\\"field15\\\" *ngIf=\\\"companyDetails.EnableSubCompanies\\\">\\r\\n      <mat-form-field>\\r\\n        <input matInput autocomplete=\\\"off\\\" maxlength=\\\"10\\\" id=\\\"lblNoOfSubCompanies\\\"\\r\\n          [(ngModel)]=\\\"companyDetails.NoOfSubCompanies\\\" min=\\\"0\\\"\\r\\n          oninput=\\\"this.value = this.value.replace(/[^0-9]/g, '').replace(/(\\\\..*)\\\\./g, '$1');\\\">\\r\\n        <mat-placeholder>No Of Sub Entities<span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n  </div>\\r\\n  <h4 class=\\\"alignheader\\\" id=\\\"headingAdmin\\\"><b>Admin details</b></h4>\\r\\n  <div class=\\\"loginField\\\">\\r\\n    <div id=\\\"field13\\\">\\r\\n      <mat-form-field>\\r\\n        <input matInput autocomplete=\\\"off\\\" maxlength=\\\"50\\\" id=\\\"lblUserName\\\" [(ngModel)]=\\\"companyDetails.UserName\\\"\\r\\n          value=\\\"\\\">\\r\\n        <mat-placeholder>UserName <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div id=\\\"field14\\\">\\r\\n      <mat-form-field>\\r\\n        <input matInput type=\\\"password\\\" autocomplete=\\\"off\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\"\\r\\n          [(ngModel)]=\\\"companyDetails.Password\\\" value=\\\"\\\">\\r\\n        <mat-placeholder>Password <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n  </div>\\r\\n\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowwrapper\\\">\\r\\n      <div id=\\\"RowtableActions\\\">\\r\\n        <div id=\\\"buttonview\\\">\\r\\n          <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"vaidateCompany();\\\" [disabled]=\\\"btnDisabled\\\"><span\\r\\n              *ngIf=\\\"data === 'new'\\\">Save</span><span *ngIf=\\\"data === 'edit'\\\">Update</span></button>\\r\\n        </div>\\r\\n        <div id=\\\"buttonview\\\">\\r\\n          <button mat-accent class=\\\"addButtons btn\\\" (click)='clear()'>Cancel</button>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </div>\\r\\n\\r\\n\\r\\n  <div *ngIf=\\\"data === 'user' && userVisible\\\">\\r\\n    <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n      <div id=\\\"Rowwrapper\\\">\\r\\n        <div id=\\\"RowtableAction\\\">\\r\\n          <div id=\\\"field\\\">\\r\\n            <mat-form-field style=\\\"margin-top: 10px\\\">\\r\\n              <input matInput autocomplete=\\\"off\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\" [(ngModel)]=\\\"UserName\\\" value=\\\"\\\">\\r\\n              <mat-placeholder>Username <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n            </mat-form-field>\\r\\n          </div>\\r\\n          <div id=\\\"field\\\">\\r\\n            <mat-form-field style=\\\"margin-top: 10px\\\">\\r\\n              <input matInput type=\\\"password\\\" autocomplete=\\\"off\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\"\\r\\n                [(ngModel)]=\\\"Password\\\" value=\\\"\\\">\\r\\n              <mat-placeholder>Password <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n            </mat-form-field>\\r\\n          </div>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n\\r\\n    <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n      <div id=\\\"Rowwrapper\\\">\\r\\n        <div id=\\\"RowtableActions\\\">\\r\\n          <div id=\\\"buttonview\\\">\\r\\n            <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"SaveUser()\\\">Save</button>\\r\\n          </div>\\r\\n          <div id=\\\"buttonview\\\">\\r\\n            <button mat-accent class=\\\"addButtons btn\\\" (click)='clear()'>Cancel</button>\\r\\n          </div>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </div>\\r\\n  <mat-dialog-content class=\\\"warningMsg\\\">{{dataSelf}}</mat-dialog-content>\\r\\n  <mat-dialog-content class=\\\"successMsg\\\"></mat-dialog-content>\"","module.exports = \"<style>\\n.dots {\\n  display: inline-block;\\n    width: 80px;\\n    white-space: nowrap;\\n    overflow: hidden !important;\\n    text-overflow: ellipsis;\\n  \\n }\\n</style>\\n<div class=\\\"dbHead\\\">\\n  <div class=\\\"dbName\\\">\\n    <h5>Frustrations Count</h5>\\n  </div>\\n  <div class=\\\"dbActions\\\">\\n<button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Back to process map\\\"  [routerLink]=\\\"['/processMap']\\\"  >Back To Process Map</button>\\n\\n </div>\\n</div>\\n<div style=\\\"text-align:center;\\\" *ngIf='totalFCount==0'><span style=\\\"color:red;\\\" > No Frustrations found </span></div>\\n<div style=\\\"overflow-y: hidden;overflow-x: scroll;\\\">\\n<div class=\\\"row\\\" style=\\\"flex-wrap: nowrap;max-width: 150px;\\\" > \\n   \\n<div class=\\\"squareInActvty\\\" *ngIf='totalFCount!=0' style=\\\"margin-left: 14px; width:100px\\\">\\n   <div style=\\\"margin-top:6%; width:100px;\\\" ><span style=\\\"font-size:12px;\\\">Total</span> <br> <span>{{totalFCount}}</span></div>\\n    </div>&nbsp;\\n    <div *ngFor=\\\"let json of dashBoardJson\\\">\\n     <div class=\\\"squareInActvty col-sm\\\" *ngIf=\\\"json.Issues\\\" >\\n   <div style=\\\"margin-top:6%;\\\" ><span class=\\\"dots\\\" style=\\\"font-size:12px;\\\" matTooltip={{json.process}} > {{json.process}}</span> <br> <span>{{json.Issues}}</span></div>\\n    </div>\\n    </div>\\n</div>\\n</div>\\n\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-lg-8\\\"></div>\\n  <div class=\\\"col-lg-4\\\">\\n   \\n  </div></div>\\n\\n\\n  <div class=\\\"row\\\">\\n\\n    <div class=\\\"col-lg-12\\\"  style=\\\"padding-top:10px;\\\"> <div class=\\\"card shadow\\\">\\n        <div class=\\\"card-body\\\" >\\n  <app-report-process [dashboardProcess]='dashboardProcess'[dashboardPr]='dashboardPr' [dashboardTeamPr]='dashboardTeamPr'></app-report-process>\\n    </div>\\n    </div>\\n    </div>\\n  </div>\\n\\n<div class=\\\"row\\\">\\n\\n  <div class=\\\"col-lg-12\\\"  style=\\\"padding-top:10px; \\\">\\n      <div class=\\\"card shadow\\\">\\n          <div class=\\\"card-body\\\">\\n      <app-report-category [dashboard]=\\\"dashboard\\\" [dashboardCat]=\\\"dashboardCat\\\"   [dashboardTeamCat]='dashboardTeamCat'></app-report-category>\\n  </div>\\n</div>\\n</div>\\n</div>\\n\\n\\n\\n<div class=\\\"row\\\">\\n    <div class=\\\"col-lg-12\\\" style=\\\"padding-top:10px;\\\"> <div class=\\\"card shadow\\\">\\n        <div class=\\\"card-body\\\" >\\n      <app-report-hipriority [dashboardSeverity]='dashboardSeverity' [dashboardSev]='dashboardSev' [dashboardTeamSeverity]='dashboardTeamSeverity' ></app-report-hipriority>\\n      </div>\\n      </div>\\n  \\n      </div>\\n  </div>\\n  <div class=\\\"row\\\">\\n    <div class=\\\"col-lg-12\\\"  style=\\\"padding-top:10px; \\\">\\n        <div class=\\\"card shadow\\\">\\n            <div class=\\\"card-body\\\" >\\n      <app-report-metric-process [dashboardMetric]='dashboardMetric' [dashboardMe]='dashboardMe' [dashboardTeam]='dashboardTeam'></app-report-metric-process>\\n    </div>\\n  </div> </div>\\n  </div>\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-lg-12\\\" style=\\\"padding-top:10px;\\\"> <div class=\\\"card shadow\\\">\\n      <div class=\\\"card-body\\\" >\\n    <app-report-project [dashboardProject]='dashboardProject' [dashboardPro]='dashboardPro' ></app-report-project>\\n    </div>\\n    </div>\\n\\n    </div>\\n</div>\\n\\n\\n\\n  \\n  \\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n<div class=\\\"row\\\" id=\\\"container\\\">\\n    <div class=\\\"\\\" id=\\\"heading\\\">\\n        <h4 style=\\\"white-space: nowrap;\\\">Departments</h4>\\n    </div>\\n    <div id=\\\"wrapper\\\">\\n        <div id=\\\"tableActions\\\">\\n            <div class=\\\"\\\" id=\\\"search\\\" *ngIf=\\\"!disableSearch\\\">\\n                <mat-form-field style=\\\"margin-top: -5px;\\\" id=\\\"searchField\\\">\\n                    <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n                    <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"searchText()\\\" name=\\\"search\\\"\\n                        [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n                </mat-form-field>\\n            </div>\\n            <div class=\\\"\\\" id=\\\"excelBtn\\\" *ngIf=\\\"!disableSearch\\\">\\n                <button class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top:11px;cursor: pointer;\\\" [disabled]=\\\"isDisable\\\"\\n                    matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">\\n                    Excel\\n                </button>\\n            </div>\\n            <div class=\\\"\\\" id=\\\"createBtn\\\">\\n                <button mat-accent class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top: 11px;\\\" (click)='newDepartment()'\\n                    [disabled]=\\\"!MenuPermissions[menuName][menuID]['C'] || (employeeDetails && (employeeDetails.IsEmployeeLoginLevel == 'Department' || employeeDetails.IsEmployeeLoginLevel == 'Team'))\\\"\\n                    matTooltip=\\\"New Department\\\">New</button>\\n            </div>\\n        </div>\\n    </div>\\n</div>\\n<div class=\\\"tableDiv\\\">\\n    <table>\\n        <thead>\\n            <tr>\\n\\n                <th cName class=\\\"pointer\\\" (click)=\\\"sort('DepartmentName')\\\"> Department Name\\n                    <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n                    <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n                </th>\\n\\n                <th cName class=\\\"pointer\\\" (click)=\\\"sort('DepartmentDescription')\\\"> Description\\n                    <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n                    <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n                </th>\\n\\n                <th action>Action</th>\\n            </tr>\\n        </thead>\\n        <tbody>\\n\\n            <tr\\n                *ngFor=\\\"let dept of DepartmentList | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n                <td> {{dept.DepartmentName}}</td>\\n                <td> {{dept.DepartmentDescription}}</td>\\n                <td style=\\\" cursor:pointer;\\\">\\n                    <span>\\n                        <a matTooltip=\\\"Edit Department\\\" (click)=\\\"editDepartment(dept)\\\" [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'] || \\n                            (employeeDetails && \\n                            (employeeDetails.IsEmployeeLoginLevel == 'Department' || employeeDetails.IsEmployeeLoginLevel == 'Team'))\\n                            )?'none':'auto'\\\"\\n                            [ngClass]=\\\"{'removeColor':(!MenuPermissions[menuName][menuID]['U'] || \\n                            (employeeDetails && (employeeDetails.IsEmployeeLoginLevel == 'Team' || employeeDetails.IsEmployeeLoginLevel == 'Department'))\\n                            ),\\n                            'AddColor':(MenuPermissions[menuName][menuID]['U'] || \\n                            (employeeDetails && (employeeDetails.IsEmployeeLoginLevel == 'Department' || employeeDetails.IsEmployeeLoginLevel == 'Team')))}\\\"><i\\n                                style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a matTooltip=\\\"Delete Department\\\"\\n                            (click)=\\\"deleteDepartment(dept)\\\" [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['D'] || \\n                            (employeeDetails && (employeeDetails.IsEmployeeLoginLevel == 'Department' || employeeDetails.IsEmployeeLoginLevel == 'Team'))\\n                            ) ? 'none' : 'auto'\\\"\\n                            [ngClass]=\\\"{'removeColor':(!MenuPermissions[menuName][menuID]['D'] || \\n                            (employeeDetails && (employeeDetails.IsEmployeeLoginLevel == 'Department' || employeeDetails.IsEmployeeLoginLevel == 'Team'))\\n                            ),\\n                            'AddColor':(MenuPermissions[menuName][menuID]['D'] || \\n                            (employeeDetails && (employeeDetails.IsEmployeeLoginLevel == 'Department' || employeeDetails.IsEmployeeLoginLevel == 'Team')))}\\\"><i\\n                                style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n                    </span>\\n                </td>\\n            </tr>\\n        </tbody>\\n    </table>\\n    <br>\\n    <div class=\\\"warningMsg\\\"\\n        *ngIf=\\\"(DepartmentList === null||DepartmentList===undefined || DepartmentList.length === 0)\\\">\\n        <span>No data available</span>\\n    </div>\\n</div>\\n<div class=\\\"pageContainer\\\" *ngIf=\\\"departmentPaging && DepartmentList.length>0\\\">\\n    <div class=\\\"rowsSelection\\\">\\n        <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n            <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n                <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n                    {{row}}\\n                </mat-option>\\n            </mat-select>\\n        </mat-form-field>\\n    </div>\\n    <div class=\\\"pageSelection\\\">\\n        <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n    </div>\\n</div>\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<div *ngIf=\\\"data !== 'new' && data !== 'edit' \\\">\\r\\n    <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n    <mat-dialog-actions align=\\\"center\\\">\\r\\n        <div *ngIf=\\\"condition\\\">\\r\\n            <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n            <!-- Can optionally provide a result for the closing dialog. -->\\r\\n            <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n        </div>\\r\\n        <div *ngIf=\\\"!condition \\\">\\r\\n            <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\"\\r\\n                fxLayoutGap.xs=\\\"0\\\">\\r\\n                <div class=\\\"item item-3 \\\">\\r\\n                    <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n                </div>\\r\\n            </div>\\r\\n        </div>\\r\\n    </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n\\r\\n<div *ngIf=\\\"data === 'new' || data === 'edit'\\\">\\r\\n    <br>\\r\\n    <div class=\\\"XBtn\\\">\\r\\n        <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">&times;</span>\\r\\n    </div>\\r\\n    <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n        <div id=\\\"Rowheading\\\">\\r\\n            <h4 class=\\\"alignheader\\\" style=\\\"white-space: nowrap;\\\"><b>{{data | titlecase}} Department</b></h4>\\r\\n        </div>\\r\\n    </div>\\r\\n\\r\\n    <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n        <div id=\\\"Rowwrapper\\\">\\r\\n            <div id=\\\"RowtableActions\\\">\\r\\n                <div id=\\\"field\\\">\\r\\n                    <mat-form-field>\\r\\n                        <input matInput autocomplete=\\\"off\\\" maxlength=\\\"100\\\" [(ngModel)]=\\\"DepartmentName\\\" value=\\\"\\\">\\r\\n                        <mat-placeholder>Department Name <span style=\\\"color:red; font-size: 15px;;\\\">*</span>\\r\\n                        </mat-placeholder>\\r\\n                    </mat-form-field>\\r\\n                </div>\\r\\n                <div id=\\\"field\\\">\\r\\n                    <mat-form-field>\\r\\n                        <input matInput placeholder=\\\"Department Description\\\" autocomplete=\\\"off\\\" maxlength=\\\"500\\\"\\r\\n                            [(ngModel)]=\\\"DepartmentDescription\\\" value=\\\"\\\">\\r\\n                    </mat-form-field>\\r\\n                </div>\\r\\n            </div>\\r\\n        </div>\\r\\n    </div>\\r\\n    <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n        <div id=\\\"Rowwrapper\\\">\\r\\n            <div id=\\\"RowtableActions\\\">\\r\\n                <div id=\\\"buttonview\\\">\\r\\n                    <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"validateDepartment()\\\"><span\\r\\n                            *ngIf=\\\"data === 'new'\\\">Save</span><span *ngIf=\\\"data === 'edit'\\\">Update</span></button>\\r\\n                </div>\\r\\n                <div id=\\\"buttonview\\\">\\r\\n                    <button mat-accent class=\\\"addButtons btn\\\" (click)='Clear()'>Cancel</button>\\r\\n                </div>\\r\\n            </div>\\r\\n        </div>\\r\\n    </div>\\r\\n    <br>\\r\\n    <mat-dialog-content class=\\\"warningMsg\\\">{{dataSelf}}</mat-dialog-content>\\r\\n    <mat-dialog-content class=\\\"successMsg\\\"></mat-dialog-content>\\r\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n<div\\r\\n  *ngIf=\\\"data !== 'new' && data !== 'edit' && data!='log'&& data !== 'progress' &&  data !== 'status'&& !userVisible\\\">\\r\\n  <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n  <mat-dialog-actions align=\\\"center\\\">\\r\\n    <div *ngIf=\\\"condition\\\">\\r\\n      <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n      <!-- Can optionally provide a result for the closing dialog. -->\\r\\n      <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n    </div>\\r\\n    <div *ngIf=\\\"!condition &&  data !== 'progress' &&  data !== 'status'&& !userVisible\\\">\\r\\n      <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n        <div class=\\\"item item-3 \\\">\\r\\n          <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n<div *ngIf=\\\"data === 'new' || data === 'edit'  && data!= 'user'\\\">\\r\\n  <br>\\r\\n  <div class=\\\"XBtn\\\">\\r\\n    <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">&times;</span>\\r\\n  </div>\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowheading\\\">\\r\\n      <h4 class=\\\"alignheader\\\"><b>{{data | titlecase}} Employee</b></h4>\\r\\n\\r\\n    </div>\\r\\n  </div>\\r\\n  <div class=\\\"inputFields\\\">\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n        <input matInput autocomplete=\\\"off\\\" maxlength=\\\"50\\\" id=\\\"lblFirstName\\\" [(ngModel)]=\\\"FirstName\\\" value=\\\"\\\">\\r\\n        <mat-placeholder>User First Name <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n        <input matInput autocomplete=\\\"off\\\" maxlength=\\\"50\\\" id=\\\"lblLastName\\\" [(ngModel)]=\\\"LastName\\\" value=\\\"\\\">\\r\\n        <mat-placeholder>User Last Name <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n        <mat-label> Employee Level<span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\r\\n        <mat-select [disabled]=\\\"EmployeeID > 0  && isTeamAssigned\\\" (selectionChange)=\\\"loginLevelChange()\\\"\\r\\n          [(ngModel)]=\\\"selectedLoginLevel\\\">\\r\\n          <mat-option [value]=\\\"null\\\">Select</mat-option>\\r\\n          <mat-option *ngFor=\\\"let loginLevel of employeeLoginLevelList;\\\" [value]=\\\"loginLevel\\\">\\r\\n            {{loginLevel}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div\\r\\n      *ngIf=\\\"selectedLoginLevel && (selectedLoginLevel === employeeLoginLevel.Department || selectedLoginLevel === employeeLoginLevel.Team)\\\">\\r\\n      <mat-form-field>\\r\\n        <mat-label> Department<span style=\\\"color:red; font-size: 15px\\\">*</span></mat-label>\\r\\n        <mat-select [disabled]=\\\"EmployeeID > 0  && isTeamAssigned\\\" (selectionChange)=\\\"departmentChange()\\\"\\r\\n          [(ngModel)]=\\\"departmentId\\\">\\r\\n          <mat-option label=\\\"--select something --\\\" [value]=\\\"\\\">-- None --</mat-option>\\r\\n          <mat-option *ngFor=\\\"let dept of departmentList\\\" [value]=\\\"dept.DepartmentID\\\">\\r\\n            {{dept.DepartmentName}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div *ngIf=\\\"selectedLoginLevel && departmentId && selectedLoginLevel === employeeLoginLevel.Team\\\">\\r\\n      <mat-form-field>\\r\\n        <mat-label> Team<span style=\\\"color:red; font-size: 15px\\\">*</span></mat-label>\\r\\n        <mat-select [disabled]=\\\"EmployeeID > 0  && isTeamAssigned\\\" (selectionChange)=\\\"team($event)\\\"\\r\\n          [(ngModel)]=\\\"TeamID\\\">\\r\\n          <mat-option label=\\\"--select something --\\\" [value]=\\\"\\\">-- None --</mat-option>\\r\\n          <mat-option *ngFor=\\\"let team of teamList;\\\" [value]=\\\"team.TeamID\\\">\\r\\n            {{team.TeamName}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n        <mat-placeholder>Role<span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n        <mat-select (selectionChange)=\\\"role($event)\\\" [(ngModel)]=\\\"roleID\\\">\\r\\n          <mat-option *ngFor=\\\"let data of rolesData;let i=index;\\\" [value]=\\\"rolesData[i].RoleID\\\">\\r\\n            {{rolesData[i].RoleName}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n        <input matInput placeholder=\\\"Designation\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\" autocomplete=\\\"off\\\"\\r\\n          id=\\\"lblDesignation\\\" [(ngModel)]=\\\"Designation\\\" value=\\\"\\\">\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n        <input matInput placeholder=\\\" Phone\\\" (keydown)=\\\"ValidatePh($event)\\\" (blur)=\\\"valZero()\\\" maxlength=\\\"16\\\"\\r\\n          autocomplete=\\\"off\\\" onpaste=\\\"return false\\\" oncut=\\\"return false\\\" id=\\\"lblPhone\\\" [(ngModel)]=\\\"Phone\\\" value=\\\"\\\">\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n        <input matInput (keydown)=\\\"ValidateEmail($event)\\\" maxlength=\\\"50\\\" autocomplete=\\\"off\\\" id=\\\"lblEmail\\\"\\r\\n          [(ngModel)]=\\\"Email\\\" value=\\\"\\\">\\r\\n\\r\\n        <mat-placeholder>Email <span style=\\\"color:red; font-size: 15px;;\\\"> *</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n  </div>\\r\\n  <h4 class=\\\"alignheader\\\" id=\\\"headingAdmin\\\"><b>Login details</b></h4><br>\\r\\n  <div class=\\\"loginField\\\">\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n        <input matInput maxlength=\\\"50\\\" autocomplete=\\\"off\\\" id=\\\"lblEmail\\\" [(ngModel)]=\\\"UserName\\\" value=\\\"\\\">\\r\\n        <mat-placeholder>UserName <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n        <input matInput type=\\\"password\\\" autocomplete=\\\"off\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\" [(ngModel)]=\\\"Password\\\"\\r\\n          value=\\\"\\\">\\r\\n        <mat-placeholder>Password <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n  </div>\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowwrapper\\\">\\r\\n      <div id=\\\"RowtableActions\\\">\\r\\n        <div id=\\\"buttonview\\\">\\r\\n          <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"AddEmployee()\\\" [disabled]=\\\"btnDisabled\\\"><span\\r\\n              *ngIf=\\\"data === 'new'\\\">Save</span><span *ngIf=\\\"data === 'edit'\\\">Update</span></button>\\r\\n        </div>\\r\\n        <div id=\\\"buttonview\\\">\\r\\n          <button mat-accent class=\\\"addButtons btn\\\" (click)='Clear()'>Cancel</button>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </div>\\r\\n  <br>\\r\\n  <div *ngIf=\\\"data === 'user'\\\">\\r\\n    <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n      <div id=\\\"Rowwrapper\\\">\\r\\n        <div id=\\\"RowtableAction\\\">\\r\\n          <div id=\\\"field\\\">\\r\\n            <mat-form-field style=\\\"margin-top: 10px\\\">\\r\\n              <input matInput autocomplete=\\\"off\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\" [(ngModel)]=\\\"UserName\\\" value=\\\"\\\">\\r\\n              <mat-placeholder>Username <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n            </mat-form-field>\\r\\n          </div>\\r\\n          <div id=\\\"field\\\">\\r\\n            <mat-form-field style=\\\"margin-top: 10px\\\">\\r\\n              <input matInput type=\\\"password\\\" autocomplete=\\\"off\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\"\\r\\n                [(ngModel)]=\\\"Password\\\" value=\\\"\\\">\\r\\n              <mat-placeholder>Password <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n            </mat-form-field>\\r\\n          </div>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n    <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n      <div id=\\\"Rowwrapper\\\">\\r\\n        <div id=\\\"RowtableActions\\\">\\r\\n          <div id=\\\"buttonview\\\">\\r\\n            <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"SaveUser()\\\">Save</button>\\r\\n          </div>\\r\\n          <div id=\\\"buttonview\\\">\\r\\n            <button mat-accent class=\\\"addButtons btn\\\" (click)='Clear()'>Cancel</button>\\r\\n          </div>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </div>\\r\\n  <mat-dialog-content class=\\\"warningMsg\\\">{{dataSelf}}</mat-dialog-content>\\r\\n  <mat-dialog-content class=\\\"successMsg\\\"></mat-dialog-content>\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n<div class=\\\"row\\\" id=\\\"container\\\">\\n  <div class=\\\"\\\" id=\\\"heading\\\">\\n    <h4>Employee</h4>\\n  </div>\\n  <div id=\\\"wrapper\\\">\\n    <div id=\\\"tableActions\\\">\\n      <div class=\\\"\\\" id=\\\"search\\\" *ngIf=\\\"!disableSearch\\\">\\n        <mat-form-field style=\\\"margin-top: -5px;\\\" id=\\\"searchField\\\">\\n          <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n          <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\"\\n            [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n        </mat-form-field>\\n      </div>\\n      <div class=\\\"\\\" id=\\\"excelBtn\\\" *ngIf=\\\"!isDisable\\\">\\n        <button class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top:11px;cursor: pointer;\\\" [disabled]=\\\"isDisable\\\"\\n          matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">\\n          Excel\\n        </button>\\n      </div>\\n      <div class=\\\"\\\" id=\\\"createBtn\\\">\\n        <button mat-accent class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top: 11px;\\\" (click)='OpenEmployee()'\\n          [disabled]=\\\"!MenuPermissions[menuName][menuID]['C'] || (employeeDetails && employeeDetails.IsEmployeeLoginLevel === 'Team')\\\"\\n          matTooltip=\\\"New employee\\\">New </button>\\n      </div>\\n    </div>\\n  </div>\\n</div>\\n<div>\\n  <div class=\\\"tableDiv\\\">\\n    <table>\\n      <thead>\\n        <tr>\\n          <th cName class=\\\"pointer\\\" (click)=\\\"sort('EmployeeName')\\\"> Employee\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th cName class=\\\"pointer\\\" (click)=\\\"sort('IsEmployeeLoginLevel')\\\"> Employee Level\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th cName class=\\\"pointer\\\" (click)=\\\"sort('EmailID')\\\"> Email\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th cName class=\\\"pointer\\\" (click)=\\\"sort('DepartmentName')\\\"> Department\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th cName class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th cName class=\\\"pointer\\\" (click)=\\\"sort('RoleName')\\\"> Role\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th action>Action</th>\\n        </tr>\\n      </thead>\\n      <tbody>\\n        <tr\\n          *ngFor=\\\"let element of employeeData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n          <td> {{element.EmployeeName}}</td>\\n          <td> {{element.IsEmployeeLoginLevel}}</td>\\n          <td> {{element.EmailID}}</td>\\n          <td> {{element.DepartmentName}}</td>\\n          <td> {{element.TeamName}}</td>\\n          <td> {{element.RoleName}}</td>\\n          <td style=\\\" cursor:pointer;\\\">\\n            <span> <a matTooltip=\\\"Edit employee\\\" (click)=\\\"EditEmployee(element)\\\"\\n                [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U']) || \\n                element.EmployeeID===loginEmployeeID || \\n                (employeeDetails && employeeDetails.IsEmployeeLoginLevel === element.IsEmployeeLoginLevel) ? 'none' : 'auto'\\\"\\n                [ngClass]=\\\"{'removeColor':(!(MenuPermissions[menuName][menuID]['U']) || \\n                element.EmployeeID===loginEmployeeID || \\n                (employeeDetails && employeeDetails.IsEmployeeLoginLevel === element.IsEmployeeLoginLevel)),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\"><i\\n                  class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n\\n              &nbsp;&nbsp;&nbsp; <a matTooltip=\\\"Delete employee\\\" (click)=\\\"DeleteEmployee(element)\\\"\\n                [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['D']) || \\n                element.EmployeeID===loginEmployeeID || \\n                (employeeDetails && employeeDetails.IsEmployeeLoginLevel === element.IsEmployeeLoginLevel) ? 'none' : 'auto'\\\"\\n                [ngClass]=\\\"{'removeColor':(!(MenuPermissions[menuName][menuID]['D']) || \\n                element.EmployeeID===loginEmployeeID ||\\n                (employeeDetails && employeeDetails.IsEmployeeLoginLevel === element.IsEmployeeLoginLevel)),'AddColor':(MenuPermissions[menuName][menuID]['D'])}\\\"><i\\n                  class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n\\n              &nbsp;&nbsp;&nbsp; <a matTooltip=\\\"Add user\\\" style=\\\"display: none;\\\" (click)=\\\"AddUser(element)\\\"\\n                [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\n                [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['U']),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\"><i\\n                  class=\\\"fa fa-user\\\" aria-hidden=\\\"true\\\"></i></a>\\n            </span>\\n          </td>\\n        </tr>\\n      </tbody>\\n    </table>\\n    <br>\\n    <div class=\\\"warningMsg\\\" *ngIf=\\\"(employeeData === null||employeeData===undefined || employeeData.length === 0)\\\">\\n      <span>No data available</span>\\n    </div>\\n  </div>\\n  <div class=\\\"pageContainer\\\" *ngIf=\\\"employeePaging && employeeData.length>0\\\">\\n    <div class=\\\"rowsSelection\\\">\\n      <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n        <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n          <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n            {{row}}\\n          </mat-option>\\n        </mat-select>\\n      </mat-form-field>\\n    </div>\\n    <div class=\\\"pageSelection\\\">\\n      <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n    </div>\\n  </div>\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n\\n<style>\\n  @media screen {\\n    .donotprintthis1 {\\n      display: none;\\n    }\\n\\n    .donotprintthis {\\n\\n      display: block;\\n\\n    }\\n  }\\n\\n  @media print {\\n    h5 {\\n      text-align: center;\\n    }\\n\\n    .donotprintthis1 {\\n\\n      display: block;\\n\\n    }\\n\\n    .donotprintthis {\\n\\n      display: none;\\n\\n    }\\n  }\\n</style>\\n\\n<div class=\\\"reportHead\\\">\\n  <div class=\\\"reportName\\\">\\n    <h5>Comments on Frustrations</h5>\\n  </div>\\n  <div class=\\\"reportActions\\\">\\n    <div class=\\\"selectTeam\\\" *ngIf=\\\"teamData && teamData.length > 0\\\">\\n      <div class=\\\"item item-1\\\">\\n        <mat-form-field>\\n          <mat-label>* Select Team</mat-label>\\n          <mat-select (selectionChange)=\\\"GetSelectedReport($event)\\\" [(ngModel)]=\\\"TeamID\\\">\\n            <mat-option *ngFor=\\\"let team of teamData;let i=index;\\\" [value]=\\\"team.TeamID\\\">\\n              <span> {{team.TeamName}} </span>\\n            </mat-option>\\n          </mat-select>\\n        </mat-form-field>\\n      </div>\\n    </div>\\n    <div class=\\\"searchField\\\" *ngIf=\\\"!disableSearch\\\">\\n      <div class=\\\"item item-1\\\">\\n\\n        <mat-form-field>\\n          <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n          <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\"\\n            [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n        </mat-form-field>\\n      </div>\\n    </div>\\n    <div class=\\\"printBtn\\\" *ngIf=\\\"!isDisable\\\">\\n      <!-- <i class='fa fa-print'></i> -->\\n      <div class=\\\"item item-5\\\">\\n        <button class=\\\"darkbtnbg btn btn-info\\\" printTitle=\\\"{{companyName}}\\\" matTooltip=\\\"Print report\\\"\\n          printSectionId=\\\"printFrustComments\\\" [useExistingCss]=\\\"true\\\" ngxPrint>Print</button>\\n        <!-- <button  mat-raised-button color=\\\"primary\\\" [disabled]=\\\"isDisable\\\" matTooltip=\\\"Export As Excel\\\" style=\\\"margin-top:10px;cursor: pointer;\\\" (click)=\\\"exportAsXLSX()\\\"> -->\\n        <!-- <i class='fa fa-file-excel-o'></i> -->\\n        <!-- Excel\\n        </button>&nbsp;&nbsp; -->\\n\\n      </div>\\n    </div>\\n    <div class=\\\"excelBtn\\\" *ngIf=\\\"!isDisable\\\">\\n      <div class=\\\"item item-5\\\">\\n        <button class=\\\"darkbtnbg btn btn-info\\\" [disabled]=\\\"isDisable\\\" matTooltip=\\\"Export as excel\\\"\\n          (click)=\\\"exportAsXLSX()\\\">\\n\\n          Excel\\n        </button>\\n      </div>\\n\\n\\n    </div>\\n  </div>\\n</div>\\n\\n\\n\\n<!-- ---------------------------Printing the report------------------------- -->\\n\\n<div id=\\\"printFrustComments\\\">\\n\\n  <div class=\\\"donotprintthis1\\\">\\n    <div style=\\\"text-align:center;margin-top: 15px;\\\">\\n      <h6>\\n        <span> Company - </span> {{companyName}} <br>\\n        <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\n\\n        <span >Team: {{TeamName ? TeamName : 'Aggregate\\n          Report'}}</span><br>\\n        <span>Report Type : Comments on Frustrations</span>\\n      </h6>\\n\\n    </div>\\n  </div>\\n\\n\\n  <div class=\\\"tableDiv\\\">\\n    <table id=\\\"dtBasicExample\\\">\\n      <thead>\\n        <tr>\\n          <!--<th  class=\\\"pointer\\\"> Company </th>-->\\n          <th>No.</th>\\n          <th cName class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('name')\\\"> Frustration\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th cName class=\\\"pointer\\\" (click)=\\\"sort('comment')\\\"> Comment\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n\\n        </tr>\\n      </thead>\\n      <tbody>\\n        <!---->\\n        <ng-container\\n          *ngFor=\\\"let element of mainData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n          <tr>\\n            <!--<td > {{element.CompanyName}}</td>-->\\n            <td>{{i+1}}</td>\\n            <td>{{element.TeamName}}</td>\\n            <td>{{element.name}}</td>\\n            <td>\\n              <table>\\n                <tr *ngFor=\\\"let data of element.comment\\\">\\n                  <td>\\n                    {{data}}\\n                  </td>\\n                </tr>\\n\\n              </table>\\n            </td>\\n          </tr>\\n\\n        </ng-container>\\n      </tbody>\\n\\n    </table><br>\\n    <!-- <div class=\\\"warningMsg\\\" *ngIf=\\\"(mainData === null||mainData===undefined ||mainData.length === 0)\\\">\\n        <div class=\\\"row\\\">\\n         <div class=\\\"col-lg-5\\\"></div>\\n         <span class=\\\"col-lg-7\\\" style=\\\"color:red;\\\">{{wrng}}</span>\\n    \\n    \\n     </div> \\n    </div>  -->\\n\\n    <!-- <mat-paginator [pageSizeOptions]=\\\"[5, 10, 20]\\\" showFirstLastButtons></mat-paginator> -->\\n    <div class=\\\"warningMsg\\\"\\n      *ngIf=\\\"(filterData === null||filterData===undefined || filterData.length === 0 || mainData.length===0)\\\">\\n\\n      <span>{{wrng}}</span>\\n\\n\\n    </div>\\n  </div>\\n  <div class=\\\"donotprintthis1\\\" style=\\\" position: fixed; bottom: 0;\\n      font-size: 13px;\\n      margin-left: 35%;\\\">\\n    <label>{{copyRight}}</label>\\n  </div>\\n</div>\\n\\n<div class=\\\"pageContainer\\\" *ngIf=\\\"processPaging && mainData.length>0\\\">\\n  <div class=\\\"rowsSelection\\\">\\n    <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n      <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n        <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n          {{row}}\\n        </mat-option>\\n      </mat-select>\\n    </mat-form-field>\\n  </div>\\n  <div class=\\\"pageSelection\\\">\\n    <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n  </div>\\n</div>\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n<style>\\n  @media screen {\\n    .donotprintthis1 {\\n      display: none;\\n    }\\n\\n    .donotprintthis {\\n\\n      display: block;\\n\\n    }\\n  }\\n\\n\\n\\n  @media print {\\n    h5 {\\n      text-align: center;\\n    }\\n\\n    .donotprintthis1 {\\n\\n      display: block;\\n\\n    }\\n\\n    .donotprintthis {\\n\\n      display: none;\\n\\n    }\\n  }\\n</style>\\n\\n\\n\\n<div class=\\\"reportHead\\\">\\n\\n  <div class=\\\"reportName\\\">\\n    <h5>Process with no Frustrations</h5>\\n  </div>\\n\\n  <div class=\\\"reportActions\\\">\\n    <div class=\\\"selectTeam\\\">\\n      <div class=\\\"item item-1\\\">\\n        <mat-form-field>\\n          <mat-label>* Select Team</mat-label>\\n\\n          <mat-select (selectionChange)=\\\"GetSelectedReport($event)\\\" [(ngModel)]=\\\"TeamID\\\">\\n            <mat-option *ngFor=\\\"let team of teamData;let i=index;\\\" [value]=\\\"team.TeamID\\\">\\n\\n              <span> {{team.TeamName}} </span>\\n\\n            </mat-option>\\n          </mat-select>\\n        </mat-form-field>\\n      </div>\\n    </div>\\n    <div class=\\\"searchField\\\" *ngIf=\\\"!disableSearch\\\">\\n      <div class=\\\"item item-1\\\">\\n\\n        <mat-form-field>\\n          <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n          <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\"\\n            [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n        </mat-form-field>\\n      </div>\\n    </div>\\n    <div class=\\\"printBtn\\\" *ngIf=\\\"!isDisable\\\">\\n      <div class=\\\"item item-5\\\">\\n        <!-- <i class='fa fa-print'></i> -->\\n        <button class=\\\"darkbtnbg btn btn-info\\\" printTitle=\\\"{{companyName}}\\\" matTooltip=\\\"Print report\\\"\\n          printSectionId=\\\"printAll_Process\\\" [useExistingCss]=\\\"true\\\" ngxPrint>Print</button>\\n\\n\\n      </div>\\n    </div>\\n    <div class=\\\"excelBtn\\\" *ngIf=\\\"!isDisable\\\">\\n      <div class=\\\"item item-5\\\">\\n        <button class=\\\"darkbtnbg btn btn-info\\\" [disabled]=\\\"isDisable\\\" matTooltip=\\\"Export as excel\\\"\\n          (click)=\\\"exportAsXLSX()\\\">\\n\\n          Excel\\n        </button>\\n      </div>\\n\\n\\n    </div>\\n  </div>\\n\\n</div>\\n<!-- ---------------------------Printing the report------------------------- -->\\n<div id=\\\"printAll_Process\\\">\\n\\n  <div class=\\\"donotprintthis1\\\">\\n    <div style=\\\"text-align:center;margin-top: 15px;\\\">\\n      <h6>\\n        <span> Company - </span> {{companyName}} <br>\\n        <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\n        <span >Team: {{TeamName ? TeamName : 'Aggregate\\n          Report'}}</span><br>\\n        <span>Report Type : Process with no Frustrations</span>\\n\\n      </h6>\\n\\n    </div>\\n  </div>\\n\\n  <!-- <h5  class=\\\"donotprintthis1\\\" style=\\\"\\n      margin-block-end: 20px;\\n      \\\">Report Type : Process with no Frustrations</h5> -->\\n\\n  <div class=\\\"tableDiv\\\">\\n    <table id=\\\"dtBasicExample\\\">\\n      <thead>\\n        <tr>\\n\\n          <!--<th  class=\\\"pointer\\\"> Company </th>-->\\n          <th>No.</th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('CompanyName')\\\"> Company\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('ProcessName')\\\"> Process\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th cName class=\\\"pointer\\\" (click)=\\\"sort('ProcessDescription')\\\"> Description\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n\\n        </tr>\\n      </thead>\\n      <tbody>\\n        <!---->\\n        <tr\\n          *ngFor=\\\"let element of filterData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n          <!--<td > {{element.CompanyName}}</td>-->\\n          <td>{{i+1}}</td>\\n          <td> {{element.CompanyName}}</td>\\n          <td>{{element.TeamName}}</td>\\n          <td> {{element.ProcessName}}</td>\\n          <td> {{element.ProcessDescription}}</td>\\n\\n        </tr>\\n      </tbody>\\n\\n    </table><br>\\n\\n    <!-- <mat-paginator [pageSizeOptions]=\\\"[5, 10, 20]\\\" showFirstLastButtons></mat-paginator> -->\\n    <div class=\\\"warningMsg\\\" *ngIf=\\\"(filterData === null||filterData===undefined || filterData.length === 0)\\\">\\n\\n      <span>No data available</span>\\n\\n\\n    </div>\\n  </div>\\n  <div class=\\\"donotprintthis1\\\" style=\\\" position: fixed; bottom: 0;\\n      font-size: 13px;\\n      margin-left: 35%;\\\">\\n    <label>{{copyRight}}</label>\\n  </div>\\n</div>\\n<div class=\\\"pageContainer\\\" *ngIf=\\\"processPaging && filterData.length>0\\\">\\n  <div class=\\\"rowsSelection\\\">\\n    <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n      <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n        <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n          {{row}}\\n        </mat-option>\\n      </mat-select>\\n    </mat-form-field>\\n  </div>\\n  <div class=\\\"pageSelection\\\">\\n    <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n  </div>\\n</div>\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<div *ngIf=\\\"data !== 'new' && data !== 'edit' && data!='log'&& data !== 'progress' &&  data !== 'status'\\\">\\r\\n  <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n  <mat-dialog-actions align=\\\"center\\\">\\r\\n    <div *ngIf=\\\"condition\\\">\\r\\n      <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n      <!-- Can optionally provide a result for the closing dialog. -->\\r\\n      <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n    </div>\\r\\n    <div *ngIf=\\\"!condition &&  data !== 'progress' &&  data !== 'status'\\\">\\r\\n      <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n        <div class=\\\"item item-3 \\\">\\r\\n          <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n\\r\\n<div *ngIf=\\\"data === 'new' || data === 'edit'\\\">\\r\\n  <br>\\r\\n  <div class=\\\"XBtn\\\">\\r\\n    <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">&times;</span>\\r\\n  </div>\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowheading\\\">\\r\\n      <h4 class=\\\"alignheader\\\" style=\\\"white-space: nowrap;\\\"><b>{{data | titlecase}} Frustration Type</b></h4>\\r\\n\\r\\n    </div>\\r\\n  </div>\\r\\n\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowwrapper\\\">\\r\\n      <div id=\\\"RowtableActions\\\">\\r\\n        <div id=\\\"field\\\">\\r\\n\\r\\n          <mat-form-field>\\r\\n            <input matInput autocomplete=\\\"off\\\" maxlength=\\\"100\\\" [(ngModel)]=\\\"FrustrationsTypeName\\\" value=\\\"\\\"\\r\\n              [disabled]=\\\"inUse\\\">\\r\\n            <mat-placeholder>Frustration Type <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n          </mat-form-field>\\r\\n        </div>\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n        <div id=\\\"field\\\">\\r\\n          <mat-form-field>\\r\\n            <input matInput placeholder=\\\" Frustration Description\\\" autocomplete=\\\"off\\\" maxlength=\\\"500\\\"\\r\\n              [(ngModel)]=\\\"FrustrationsDescription\\\" value=\\\"\\\">\\r\\n          </mat-form-field>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </div>\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowwrapper\\\">\\r\\n      <div id=\\\"RowtableActions\\\">\\r\\n        <div id=\\\"buttonview\\\">\\r\\n          <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"AddFrustType()\\\" [disabled]=\\\"btnDisabled\\\"><span\\r\\n              *ngIf=\\\"data === 'new'\\\">Save</span><span *ngIf=\\\"data === 'edit'\\\">Update</span></button>\\r\\n        </div>\\r\\n        <div id=\\\"buttonview\\\">\\r\\n          <button mat-accent class=\\\"addButtons btn\\\" (click)='Clear()'>Cancel</button>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </div>\\r\\n  <br>\\r\\n  <mat-dialog-content class=\\\"warningMsg\\\">{{dataSelf}}</mat-dialog-content>\\r\\n  <mat-dialog-content class=\\\"successMsg\\\"></mat-dialog-content>\\r\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n<div class=\\\"row\\\" id=\\\"container\\\">\\n  <div class=\\\"\\\" id=\\\"heading\\\">\\n    <h4 style=\\\"white-space: nowrap;\\\">Frustration Types</h4>\\n  </div>\\n  <div id=\\\"wrapper\\\">\\n    <div id=\\\"tableActions\\\">\\n      <div class=\\\"\\\" id=\\\"search\\\" *ngIf=\\\"!disableSearch\\\">\\n        <mat-form-field style=\\\"margin-top: -5px;\\\" id=\\\"searchField\\\">\\n          <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n          <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\"\\n            [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n        </mat-form-field>\\n      </div>\\n      <div class=\\\"\\\" id=\\\"excelBtn\\\" *ngIf=\\\"!disableSearch\\\">\\n        <button class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top:11px;cursor: pointer;\\\" [disabled]=\\\"isDisable\\\"\\n          matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">\\n\\n          Excel\\n        </button>\\n      </div>\\n      <div class=\\\"\\\" id=\\\"createBtn\\\">\\n        <button mat-accent class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top: 11px;\\\" (click)='OpenFrustType()'\\n          [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\" matTooltip=\\\"New frustration type\\\">New</button>\\n      </div>\\n    </div>\\n  </div>\\n</div>\\n\\n\\n\\n\\n\\n\\n\\n\\n<!-- <div class=\\\"container\\\" style=\\\"margin-top: -10px\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\n    <div class=\\\"col-lg-8\\\">\\n      <div class=\\\"item item-5 alignLeft\\\" fxFlex=\\\"45%\\\">\\n          <h4>Frustration Types</h4>\\n      </div>\\n    </div>\\n      <div class=\\\"item item-1\\\" fxFlex=\\\"25%\\\" fxFlexOrder=\\\"1\\\">\\n      \\n      </div>\\n      <div class=\\\"item item-1\\\" fxFlex=\\\"30%\\\" fxFlexOrder=\\\"2\\\" *ngIf=\\\"!disableSearch\\\">\\n            \\n          <mat-form-field style=\\\"width: 180px\\\">\\n              <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n              <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\" [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\"> \\n            </mat-form-field>\\n      </div>\\n  \\n         \\n      <div class=\\\"item item-5\\\" fxFlex=\\\"12%\\\" fxFlexOrder=\\\"3\\\" *ngIf=\\\"!isDisable\\\">\\n        <button class=\\\"darkbtnbg btn btn-info\\\"  [disabled]=\\\"isDisable\\\" matTooltip=\\\"Export As Excel\\\" style=\\\"margin-top:10px;cursor: pointer;\\\" (click)=\\\"exportAsXLSX()\\\">\\n           <i class='fa fa-file-excel-o'></i> \\n          Excel\\n        </button>&nbsp;&nbsp;\\n    \\n    </div>\\n       <div class=\\\"item item-5\\\" fxFlex=\\\"11%\\\" fxFlexOrder=\\\"3\\\">\\n        <button mat-raised-button color=\\\"primary\\\" (click)='OpenTeam()' [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\" style=\\\"float: right;margin-top: 10px;margin-bottom: 10px;\\\" class=\\\"addButtons\\\" matTooltip=\\\"New Team\\\">NEW </button>\\n      </div> \\n       <div class=\\\"item item-5\\\" fxFlex=\\\"11%\\\" fxFlexOrder=\\\"3\\\">\\n        <button mat-accent class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top: 11px;\\\"(click)='OpenFrustType()' [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\"  matTooltip=\\\"New Frustration Type\\\">New</button>\\n      </div>\\n   \\n    </div> -->\\n\\n<div>\\n  <div class=\\\"tableDiv\\\">\\n    <table>\\n      <thead>\\n        <tr>\\n\\n          <th cName class=\\\"pointer\\\" (click)=\\\"sort('FrustrationsTypeName')\\\"> Frustration Types\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n\\n          <th cName class=\\\"pointer\\\" (click)=\\\"sort('FrustrationsDescription')\\\"> Description\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n\\n          <th action>Action</th>\\n        </tr>\\n      </thead>\\n      <tbody>\\n\\n        <tr\\n          *ngFor=\\\"let element of frustTypeData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n\\n          <td> {{element.FrustrationsTypeName}}</td>\\n          <td> {{element.FrustrationsDescription}}</td>\\n\\n          <td style=\\\" cursor:pointer;\\\">\\n            <span>\\n              <a matTooltip=\\\"Edit frustrations type\\\" (click)=\\\"EditFrustType(element)\\\"\\n                [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\n                [ngClass]=\\\"{'removeColor':(!(MenuPermissions[menuName][menuID]['U'])),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\"><i\\n                  style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a matTooltip=\\\"Delete frustrations type\\\" (click)=\\\"DeleteFrustType(element)\\\"\\n                [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['D'] )?'none':'auto'\\\"\\n                [ngClass]=\\\"{'removeColor':(!(MenuPermissions[menuName][menuID]['D']) ),'AddColor':(MenuPermissions[menuName][menuID]['D'])}\\\"><i\\n                  style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n            </span>\\n          </td>\\n        </tr>\\n      </tbody>\\n\\n    </table>\\n    <br>\\n\\n    <div class=\\\"warningMsg\\\" *ngIf=\\\"(frustTypeData === null||frustTypeData===undefined || frustTypeData.length === 0)\\\">\\n\\n      <span>No data available</span>\\n\\n    </div>\\n  </div>\\n  <div class=\\\"pageContainer\\\" *ngIf=\\\"frustPaging && frustTypeData.length>0\\\">\\n\\n    <div class=\\\"rowsSelection\\\">\\n      <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n        <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n          <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n            {{row}}\\n          </mat-option>\\n        </mat-select>\\n      </mat-form-field>\\n    </div>\\n\\n\\n    <div class=\\\"pageSelection\\\">\\n      <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n    </div>\\n  </div>\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<div *ngIf=\\\"data !== 'new' && data !== 'edit'\\\">\\r\\n  <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n  <mat-dialog-actions align=\\\"center\\\">\\r\\n    <div *ngIf=\\\"condition\\\">\\r\\n      <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n      <!-- Can optionally provide a result for the closing dialog. -->\\r\\n      <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n    </div>\\r\\n    <div *ngIf=\\\"!condition &&  data !== 'progress' &&  data !== 'status'\\\">\\r\\n      <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n        <div class=\\\"item item-3 \\\">\\r\\n          <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n\\r\\n<div *ngIf=\\\"data === 'new' || data === 'edit'\\\">\\r\\n  <br>\\r\\n  <div class=\\\"XBtn\\\">\\r\\n    <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">&times;</span>\\r\\n  </div>\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowheading\\\">\\r\\n      <h4 class=\\\"alignheader\\\" style=\\\"white-space: nowrap;\\\"><b>{{data | titlecase}} Goal</b></h4>\\r\\n\\r\\n    </div>\\r\\n  </div>\\r\\n\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowwrapper\\\">\\r\\n      <div id=\\\"RowtableActions\\\">\\r\\n        <div id=\\\"field\\\">\\r\\n\\r\\n          <mat-form-field>\\r\\n            <input matInput autocomplete=\\\"off\\\" maxlength=\\\"100\\\" [(ngModel)]=\\\"GoalName\\\" value=\\\"\\\">\\r\\n            <mat-placeholder>Goal Name <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n          </mat-form-field>\\r\\n        </div>\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n        <div id=\\\"field\\\">\\r\\n          <mat-form-field>\\r\\n            <input matInput placeholder=\\\" Goal Description\\\" autocomplete=\\\"off\\\" maxlength=\\\"500\\\"\\r\\n              [(ngModel)]=\\\"GoalDescription\\\" value=\\\"\\\">\\r\\n          </mat-form-field>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </div>\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowwrapper\\\">\\r\\n      <div id=\\\"RowtableActions\\\">\\r\\n        <div id=\\\"buttonview\\\">\\r\\n          <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"ValidateGoal()\\\"><span\\r\\n              *ngIf=\\\"data === 'new'\\\">Save</span><span *ngIf=\\\"data === 'edit'\\\">Update</span></button>\\r\\n        </div>\\r\\n        <div id=\\\"buttonview\\\">\\r\\n          <button mat-accent class=\\\"addButtons btn\\\" (click)='Clear()'>Cancel</button>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </div>\\r\\n  <br>\\r\\n  <mat-dialog-content class=\\\"warningMsg\\\">{{dataSelf}}</mat-dialog-content>\\r\\n  <mat-dialog-content class=\\\"successMsg\\\"></mat-dialog-content>\\r\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n<div class=\\\"row\\\" id=\\\"container\\\">\\n  <div class=\\\"\\\" id=\\\"heading\\\">\\n    <h4 style=\\\"white-space: nowrap;\\\">Goals</h4>\\n  </div>\\n  <div id=\\\"wrapper\\\">\\n    <div id=\\\"tableActions\\\">\\n      <div class=\\\"\\\" id=\\\"search\\\" *ngIf=\\\"!disableSearch\\\">\\n        <mat-form-field style=\\\"margin-top: -5px;\\\" id=\\\"searchField\\\">\\n          <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n          <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"searchText()\\\" name=\\\"search\\\"\\n            [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n        </mat-form-field>\\n      </div>\\n      <div class=\\\"\\\" id=\\\"excelBtn\\\" *ngIf=\\\"!disableSearch\\\">\\n        <button class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top:11px;cursor: pointer;\\\" [disabled]=\\\"isDisable\\\"\\n          matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">\\n\\n          Excel\\n        </button>\\n      </div>\\n      <div class=\\\"\\\" id=\\\"createBtn\\\">\\n        <button mat-accent class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top: 11px;\\\" (click)='NewGoal()'\\n          [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\" matTooltip=\\\"New Goal\\\">New</button>\\n      </div>\\n    </div>\\n  </div>\\n</div>\\n\\n\\n\\n\\n<div>\\n  <div class=\\\"tableDiv\\\">\\n    <table>\\n      <thead>\\n        <tr>\\n\\n          <th cName class=\\\"pointer\\\" (click)=\\\"sort('GoalName')\\\"> Goal Name\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n\\n          <th cName class=\\\"pointer\\\" (click)=\\\"sort('GoalDescription')\\\"> Description\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n\\n          <th action>Action</th>\\n        </tr>\\n      </thead>\\n      <tbody>\\n\\n        <tr\\n          *ngFor=\\\"let goal of GoalsList | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n\\n          <td> {{goal.GoalName}}</td>\\n          <td> {{goal.GoalDescription}}</td>\\n\\n          <td style=\\\" cursor:pointer;\\\">\\n            <span>\\n              <a matTooltip=\\\"Edit Goal\\\" (click)=\\\"EditGoal(goal)\\\"\\n                [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\n                [ngClass]=\\\"{'removeColor':(!(MenuPermissions[menuName][menuID]['U'])),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\"><i\\n                  style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a matTooltip=\\\"Delete Goal\\\" (click)=\\\"DeleteGoal(goal)\\\"\\n                [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['D'] )?'none':'auto'\\\"\\n                [ngClass]=\\\"{'removeColor':(!(MenuPermissions[menuName][menuID]['D']) ),'AddColor':(MenuPermissions[menuName][menuID]['D'])}\\\"><i\\n                  style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n            </span>\\n          </td>\\n        </tr>\\n      </tbody>\\n\\n    </table>\\n    <br>\\n\\n    <div class=\\\"warningMsg\\\" *ngIf=\\\"(GoalsList === null||GoalsList===undefined || GoalsList.length === 0)\\\">\\n\\n      <span>No data available</span>\\n\\n    </div>\\n  </div>\\n  <div class=\\\"pageContainer\\\" *ngIf=\\\"GoalPaging && GoalsList.length>0\\\">\\n\\n    <div class=\\\"rowsSelection\\\">\\n      <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n        <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n          <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n            {{row}}\\n          </mat-option>\\n        </mat-select>\\n      </mat-form-field>\\n    </div>\\n\\n\\n    <div class=\\\"pageSelection\\\">\\n      <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n    </div>\\n  </div>\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n<style>\\n  @media screen {\\n    .donotprintthis1 {\\n      display: none;\\n    }\\n\\n    .donotprintthis {\\n\\n      display: block;\\n\\n    }\\n  }\\n\\n  @media print {\\n    h5 {\\n      text-align: center;\\n    }\\n\\n    .donotprintthis1 {\\n\\n      display: block;\\n\\n    }\\n\\n    .donotprintthis {\\n\\n      display: none;\\n\\n    }\\n  }\\n</style>\\n\\n<div class=\\\"reportHead\\\">\\n  <div class=\\\"reportName\\\">\\n    <h5>Prioritized Projects</h5>\\n  </div>\\n  <div class=\\\"reportActions\\\">\\n    <div class=\\\"searchField\\\" *ngIf=\\\"!disableSearch\\\">\\n      <div class=\\\"item item-1\\\">\\n\\n        <mat-form-field>\\n          <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n          <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\"\\n            [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n        </mat-form-field>\\n      </div>\\n    </div>\\n    <div class=\\\"printBtn\\\" *ngIf=\\\"!isDisable\\\">\\n      <div class=\\\"item item-5\\\">\\n\\n        <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Print report\\\" printTitle=\\\"{{companyName}}\\\"\\n          printSectionId=\\\"printHiPriority\\\" [useExistingCss]=\\\"true\\\" ngxPrint>Print</button>\\n\\n\\n      </div>\\n    </div>\\n    <div class=\\\"excelBtn\\\" *ngIf=\\\"!isDisable\\\">\\n      <div class=\\\"item item-5\\\">\\n        <button class=\\\"darkbtnbg btn btn-info\\\" [disabled]=\\\"isDisable\\\" matTooltip=\\\"Export as excel\\\"\\n          (click)=\\\"exportAsXLSX()\\\">\\n\\n          Excel\\n        </button>\\n      </div>\\n\\n\\n    </div>\\n  </div>\\n</div>\\n\\n\\n\\n\\n\\n<!-- Printing this div-------------------------- -->\\n\\n<div id=\\\"printHiPriority\\\">\\n\\n\\n  <div class=\\\"donotprintthis1\\\">\\n    <div style=\\\"text-align:center;margin-top: 15px;\\\">\\n      <h6>\\n        <span> Company - </span> {{companyName}} <br>\\n        <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\n        <span>Report Type : Prioritized Projects</span>\\n\\n      </h6>\\n\\n    </div>\\n  </div>\\n  <!-- <h5 class=\\\"donotprintthis1\\\"style=\\\"\\n    margin-block-end: 30px;\\n    \\\">Report Type : Prioritized Projects</h5> -->\\n  <div class=\\\"tableDiv\\\">\\n    <table id=\\\"dtBasicExample\\\">\\n      <thead>\\n        <tr>\\n          <th>No.</th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectName')\\\"> Project\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectDescription')\\\"> Description\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('StatusName')\\\"> Status\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectOwner')\\\"> Project Owner\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n        </tr>\\n      </thead>\\n      <tbody>\\n        <!---->\\n        <tr\\n          *ngFor=\\\"let element of projectData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n          <!--<td > {{element.CompanyName}}</td>-->\\n          <td>{{i+1}}</td>\\n          <td>{{element.TeamName}}</td>\\n          <td> {{element.ProjectName}}</td>\\n          <td> {{element.ProjectDescription}}</td>\\n          <td> {{element.ProjectStatusName}}</td>\\n          <td>{{element.ProjectOwner}}</td>\\n        </tr>\\n      </tbody>\\n\\n    </table><br>\\n\\n    <!-- <mat-paginator [pageSizeOptions]=\\\"[5, 10, 20]\\\" showFirstLastButtons></mat-paginator> -->\\n    <div class=\\\"warningMsg\\\" *ngIf=\\\"(projectData === null||projectData===undefined || projectData.length === 0)\\\">\\n\\n      <span>No data available</span>\\n\\n\\n    </div>\\n\\n  </div>\\n  <div class=\\\"donotprintthis1\\\" style=\\\" position: fixed; bottom: 0;\\nfont-size: 13px;\\nmargin-left: 35%;\\\">\\n    <label>{{copyRight}}</label>\\n  </div>\\n</div>\\n<div class=\\\"pageContainer\\\" *ngIf=\\\"projectPaging &&projectData.length>0\\\">\\n  <div class=\\\"rowsSelection\\\">\\n    <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n      <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n        <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n          {{row}}\\n        </mat-option>\\n      </mat-select>\\n    </mat-form-field>\\n  </div>\\n  <div class=\\\"pageSelection\\\">\\n    <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n  </div>\\n</div>\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n<div *ngIf=\\\"data !== 'ChangePwd'\\\">\\r\\n  <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n  <mat-dialog-actions align=\\\"center\\\">\\r\\n    <div *ngIf=\\\"condition\\\">\\r\\n      <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n      <!-- Can optionally provide a result for the closing dialog. -->\\r\\n      <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n    </div>\\r\\n    <div *ngIf=\\\"!condition &&  data !== 'progress' &&  data !== 'status'&& !userVisible\\\">\\r\\n      <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n        <div class=\\\"item item-3 \\\">\\r\\n          <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </mat-dialog-actions>\\r\\n</div>\\r\\n<div class=\\\"row\\\" *ngIf=\\\"data === 'ChangePwd'\\\">\\r\\n  <div class=\\\"col-11\\\" style=\\\"text-align: center;inline-size: max-content;\\\">\\r\\n    <h5 style=\\\"text-align: center;inline-size: max-content;\\\">Change Password</h5>\\r\\n    <mat-form-field>\\r\\n      <input matInput type=\\\"password\\\" placeholder=\\\"* Current Password\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\"\\r\\n        [(ngModel)]=\\\"oldPassword\\\">\\r\\n    </mat-form-field><br>\\r\\n    <mat-form-field>\\r\\n      <input matInput type=\\\"password\\\" placeholder=\\\"* New Password\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\"\\r\\n        [(ngModel)]=\\\"newPassword\\\">\\r\\n    </mat-form-field><br>\\r\\n    <mat-form-field>\\r\\n      <input matInput type=\\\"password\\\" placeholder=\\\"* Confirm Password\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\"\\r\\n        [(ngModel)]=\\\"confirmPassword\\\">\\r\\n    </mat-form-field>\\r\\n    <div style=\\\"text-align: center;\\\">\\r\\n      <button id=\\\"changepassword\\\" mat-raised-button color=\\\"primary\\\" (click)=\\\"ChangePassword()\\\">Change</button>\\r\\n\\r\\n    </div>\\r\\n  </div>\\r\\n  <div class=\\\"col-1\\\" style=\\\"padding: 0;\\\">\\r\\n    <span style=\\\"float: right;cursor: pointer;\\\" (click)=\\\"Close()\\\" matTooltip=\\\"Close\\\" class=\\\"closechngbtn\\\">&times;</span>\\r\\n  </div>\\r\\n\\r\\n</div>\\r\\n<div class=\\\"ps_error\\\">\\r\\n  <span style=\\\"color:red\\\">{{dataSelf}}</span>\\r\\n</div>\\r\\n<style>\\r\\n  .ps_error {\\r\\n    width: 260px;\\r\\n    font-size: 12px;\\r\\n    letter-spacing: 0.4px;\\r\\n    line-height: 20px;\\r\\n  }\\r\\n</style>\\r\\n\"","module.exports = \"<style>\\r\\n\\t.menuStyle {\\r\\n\\t\\tfont-size: 18px !important;\\r\\n\\t\\tpadding-left: 0px !important;\\r\\n\\t\\tfont-weight: 500 !important;\\r\\n\\t}\\r\\n\\r\\n\\t.a {\\r\\n\\t\\tcolor: #dedede;\\r\\n\\t}\\r\\n\\r\\n\\t#sidebar {\\r\\n\\t\\tmargin-left: 0px !important;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-default>.panel-heading {\\r\\n\\t\\tcolor: #dedede;\\r\\n\\t\\tbackground-color: #404040;\\r\\n\\t\\tborder-color: #ddd;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-group .panel+.panel {\\r\\n\\t\\tmargin-top: 0px;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-group {\\r\\n\\t\\tmargin-top: 35px;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-collapse {\\r\\n\\t\\tbackground-color: #2b2b2b;\\r\\n\\t}\\r\\n\\r\\n\\ta {\\r\\n\\t\\tcolor: white;\\r\\n\\t\\ttext-decoration: none\\r\\n\\t}\\r\\n\\r\\n\\ta:hover,\\r\\n\\ta:focus {\\r\\n\\t\\tcolor: #2a6496;\\r\\n\\t\\ttext-decoration: underline\\r\\n\\t}\\r\\n\\r\\n\\ta:focus {\\r\\n\\t\\toutline: thin dotted;\\r\\n\\t\\toutline: 5px auto -webkit-focus-ring-color;\\r\\n\\t\\toutline-offset: -2px\\r\\n\\t}\\r\\n\\r\\n\\r\\n\\r\\n\\timg {\\r\\n\\t\\tvertical-align: middle\\r\\n\\t}\\r\\n\\r\\n\\r\\n\\th1,\\r\\n\\th2,\\r\\n\\th3,\\r\\n\\th4,\\r\\n\\th5,\\r\\n\\th6,\\r\\n\\t.h1,\\r\\n\\t.h2,\\r\\n\\t.h3,\\r\\n\\t.h4,\\r\\n\\t.h5,\\r\\n\\t.h6 {\\r\\n\\t\\tfont-family: inherit;\\r\\n\\t\\tfont-weight: 500;\\r\\n\\t\\tline-height: 1.1;\\r\\n\\t\\tcolor: inherit\\r\\n\\t}\\r\\n\\r\\n\\th1 small,\\r\\n\\th2 small,\\r\\n\\th3 small,\\r\\n\\th4 small,\\r\\n\\th5 small,\\r\\n\\th6 small,\\r\\n\\t.h1 small,\\r\\n\\t.h2 small,\\r\\n\\t.h3 small,\\r\\n\\t.h4 small,\\r\\n\\t.h5 small,\\r\\n\\t.h6 small,\\r\\n\\th1 .small,\\r\\n\\th2 .small,\\r\\n\\th3 .small,\\r\\n\\th4 .small,\\r\\n\\th5 .small,\\r\\n\\th6 .small,\\r\\n\\t.h1 .small,\\r\\n\\t.h2 .small,\\r\\n\\t.h3 .small,\\r\\n\\t.h4 .small,\\r\\n\\t.h5 .small,\\r\\n\\t.h6 .small {\\r\\n\\t\\tfont-weight: 400;\\r\\n\\t\\tline-height: 1;\\r\\n\\t\\tcolor: #777\\r\\n\\t}\\r\\n\\r\\n\\th1,\\r\\n\\t.h1,\\r\\n\\th2,\\r\\n\\t.h2,\\r\\n\\th3,\\r\\n\\t.h3 {\\r\\n\\t\\tmargin-top: 20px;\\r\\n\\t\\tmargin-bottom: 10px\\r\\n\\t}\\r\\n\\r\\n\\th1 small,\\r\\n\\t.h1 small,\\r\\n\\th2 small,\\r\\n\\t.h2 small,\\r\\n\\th3 small,\\r\\n\\t.h3 small,\\r\\n\\th1 .small,\\r\\n\\t.h1 .small,\\r\\n\\th2 .small,\\r\\n\\t.h2 .small,\\r\\n\\th3 .small,\\r\\n\\t.h3 .small {\\r\\n\\t\\tfont-size: 65%\\r\\n\\t}\\r\\n\\r\\n\\th4,\\r\\n\\t.h4,\\r\\n\\th5,\\r\\n\\t.h5,\\r\\n\\th6,\\r\\n\\t.h6 {\\r\\n\\t\\tmargin-top: 10px;\\r\\n\\t\\tmargin-bottom: 10px\\r\\n\\t}\\r\\n\\r\\n\\th4 small,\\r\\n\\t.h4 small,\\r\\n\\th5 small,\\r\\n\\t.h5 small,\\r\\n\\th6 small,\\r\\n\\t.h6 small,\\r\\n\\th4 .small,\\r\\n\\t.h4 .small,\\r\\n\\th5 .small,\\r\\n\\t.h5 .small,\\r\\n\\th6 .small,\\r\\n\\t.h6 .small {\\r\\n\\t\\tfont-size: 75%\\r\\n\\t}\\r\\n\\r\\n\\th1,\\r\\n\\t.h1 {\\r\\n\\t\\tfont-size: 36px\\r\\n\\t}\\r\\n\\r\\n\\th2,\\r\\n\\t.h2 {\\r\\n\\t\\tfont-size: 30px\\r\\n\\t}\\r\\n\\r\\n\\th3,\\r\\n\\t.h3 {\\r\\n\\t\\tfont-size: 24px\\r\\n\\t}\\r\\n\\r\\n\\th4,\\r\\n\\t.h4 {\\r\\n\\t\\tfont-size: 18px\\r\\n\\t}\\r\\n\\r\\n\\th5,\\r\\n\\t.h5 {\\r\\n\\t\\tfont-size: 14px\\r\\n\\t}\\r\\n\\r\\n\\th6,\\r\\n\\t.h6 {\\r\\n\\t\\tfont-size: 12px\\r\\n\\t}\\r\\n\\r\\n\\tp {\\r\\n\\t\\tmargin: 0 0 10px\\r\\n\\t}\\r\\n\\r\\n\\r\\n\\r\\n\\tsmall,\\r\\n\\t.small {\\r\\n\\t\\tfont-size: 85%\\r\\n\\t}\\r\\n\\r\\n\\tmark,\\r\\n\\t.mark {\\r\\n\\t\\tpadding: .2em;\\r\\n\\t\\tbackground-color: #fcf8e3\\r\\n\\t}\\r\\n\\r\\n\\t.text-left {\\r\\n\\t\\ttext-align: left\\r\\n\\t}\\r\\n\\r\\n\\t.text-right {\\r\\n\\t\\ttext-align: right\\r\\n\\t}\\r\\n\\r\\n\\t.text-center {\\r\\n\\t\\ttext-align: center\\r\\n\\t}\\r\\n\\r\\n\\t.text-justify {\\r\\n\\t\\ttext-align: justify\\r\\n\\t}\\r\\n\\r\\n\\t.text-nowrap {\\r\\n\\t\\twhite-space: nowrap\\r\\n\\t}\\r\\n\\r\\n\\t.text-lowercase {\\r\\n\\t\\ttext-transform: lowercase\\r\\n\\t}\\r\\n\\r\\n\\t.text-uppercase {\\r\\n\\t\\ttext-transform: uppercase\\r\\n\\t}\\r\\n\\r\\n\\t.text-capitalize {\\r\\n\\t\\ttext-transform: capitalize\\r\\n\\t}\\r\\n\\r\\n\\t.text-muted {\\r\\n\\t\\tcolor: #777\\r\\n\\t}\\r\\n\\r\\n\\t.text-primary {\\r\\n\\t\\tcolor: #428bca\\r\\n\\t}\\r\\n\\r\\n\\ta.text-primary:hover {\\r\\n\\t\\tcolor: #3071a9\\r\\n\\t}\\r\\n\\r\\n\\t.text-success {\\r\\n\\t\\tcolor: #3c763d\\r\\n\\t}\\r\\n\\r\\n\\ta.text-success:hover {\\r\\n\\t\\tcolor: #2b542c\\r\\n\\t}\\r\\n\\r\\n\\t.text-info {\\r\\n\\t\\tcolor: #31708f\\r\\n\\t}\\r\\n\\r\\n\\ta.text-info:hover {\\r\\n\\t\\tcolor: #245269\\r\\n\\t}\\r\\n\\r\\n\\t.text-warning {\\r\\n\\t\\tcolor: #8a6d3b\\r\\n\\t}\\r\\n\\r\\n\\ta.text-warning:hover {\\r\\n\\t\\tcolor: #66512c\\r\\n\\t}\\r\\n\\r\\n\\t.text-danger {\\r\\n\\t\\tcolor: #a94442\\r\\n\\t}\\r\\n\\r\\n\\ta.text-danger:hover {\\r\\n\\t\\tcolor: #843534\\r\\n\\t}\\r\\n\\r\\n\\t.bg-primary {\\r\\n\\t\\tcolor: #fff;\\r\\n\\t\\tbackground-color: #428bca\\r\\n\\t}\\r\\n\\r\\n\\ta.bg-primary:hover {\\r\\n\\t\\tbackground-color: #3071a9\\r\\n\\t}\\r\\n\\r\\n\\t.bg-success {\\r\\n\\t\\tbackground-color: #dff0d8\\r\\n\\t}\\r\\n\\r\\n\\ta.bg-success:hover {\\r\\n\\t\\tbackground-color: #c1e2b3\\r\\n\\t}\\r\\n\\r\\n\\t.bg-info {\\r\\n\\t\\tbackground-color: #d9edf7\\r\\n\\t}\\r\\n\\r\\n\\ta.bg-info:hover {\\r\\n\\t\\tbackground-color: #afd9ee\\r\\n\\t}\\r\\n\\r\\n\\t.bg-warning {\\r\\n\\t\\tbackground-color: #fcf8e3\\r\\n\\t}\\r\\n\\r\\n\\ta.bg-warning:hover {\\r\\n\\t\\tbackground-color: #f7ecb5\\r\\n\\t}\\r\\n\\r\\n\\t.bg-danger {\\r\\n\\t\\tbackground-color: #f2dede\\r\\n\\t}\\r\\n\\r\\n\\ta.bg-danger:hover {\\r\\n\\t\\tbackground-color: #e4b9b9\\r\\n\\t}\\r\\n\\r\\n\\t.page-header {\\r\\n\\t\\tpadding-bottom: 9px;\\r\\n\\t\\tmargin: 40px 0 20px;\\r\\n\\t\\tborder-bottom: 1px solid #eee\\r\\n\\t}\\r\\n\\r\\n\\tul,\\r\\n\\tol {\\r\\n\\t\\tmargin-top: 0;\\r\\n\\t\\tmargin-bottom: 10px\\r\\n\\t}\\r\\n\\r\\n\\tul ul,\\r\\n\\tol ul,\\r\\n\\tul ol,\\r\\n\\tol ol {\\r\\n\\t\\tmargin-bottom: 0\\r\\n\\t}\\r\\n\\r\\n\\t.list-unstyled {\\r\\n\\t\\tpadding-left: 0;\\r\\n\\t\\tlist-style: none\\r\\n\\t}\\r\\n\\r\\n\\t.list-inline {\\r\\n\\t\\tpadding-left: 0;\\r\\n\\t\\tmargin-left: -5px;\\r\\n\\t\\tlist-style: none\\r\\n\\t}\\r\\n\\r\\n\\t.list-inline>li {\\r\\n\\t\\tdisplay: inline-block;\\r\\n\\t\\tpadding-right: 5px;\\r\\n\\t\\tpadding-left: 5px\\r\\n\\t}\\r\\n\\r\\n\\tdl {\\r\\n\\t\\tmargin-top: 0;\\r\\n\\t\\tmargin-bottom: 20px\\r\\n\\t}\\r\\n\\r\\n\\tdt,\\r\\n\\tdd {\\r\\n\\t\\tline-height: 1.42857143\\r\\n\\t}\\r\\n\\r\\n\\tdt {\\r\\n\\t\\tfont-weight: 700\\r\\n\\t}\\r\\n\\r\\n\\tdd {\\r\\n\\t\\tmargin-left: 0\\r\\n\\t}\\r\\n\\r\\n\\t@media (min-width:768px) {\\r\\n\\t\\t.dl-horizontal dt {\\r\\n\\t\\t\\tfloat: left;\\r\\n\\t\\t\\twidth: 160px;\\r\\n\\t\\t\\toverflow: hidden;\\r\\n\\t\\t\\tclear: left;\\r\\n\\t\\t\\ttext-align: right;\\r\\n\\t\\t\\ttext-overflow: ellipsis;\\r\\n\\t\\t\\twhite-space: nowrap\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t.dl-horizontal dd {\\r\\n\\t\\t\\tmargin-left: 180px\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t.btn-link:hover,\\r\\n\\t.btn-link:focus {\\r\\n\\t\\tcolor: #2a6496;\\r\\n\\t\\ttext-decoration: underline;\\r\\n\\t\\tbackground-color: transparent\\r\\n\\t}\\r\\n\\r\\n\\t.btn-link[disabled]:hover,\\r\\n\\tfieldset[disabled] .btn-link:hover,\\r\\n\\t.btn-link[disabled]:focus,\\r\\n\\tfieldset[disabled] .btn-link:focus {\\r\\n\\t\\tcolor: #777;\\r\\n\\t\\ttext-decoration: none\\r\\n\\t}\\r\\n\\r\\n\\t.btn-lg,\\r\\n\\t.btn-group-lg>.btn {\\r\\n\\t\\tpadding: 10px 16px;\\r\\n\\t\\tfont-size: 18px;\\r\\n\\t\\tline-height: 1.33;\\r\\n\\t\\tborder-radius: 6px\\r\\n\\t}\\r\\n\\r\\n\\t.btn-sm,\\r\\n\\t.btn-group-sm>.btn {\\r\\n\\t\\tpadding: 5px 10px;\\r\\n\\t\\tfont-size: 12px;\\r\\n\\t\\tline-height: 1.5;\\r\\n\\t\\tborder-radius: 3px\\r\\n\\t}\\r\\n\\r\\n\\t.btn-xs,\\r\\n\\t.btn-group-xs>.btn {\\r\\n\\t\\tpadding: 1px 5px;\\r\\n\\t\\tfont-size: 12px;\\r\\n\\t\\tline-height: 1.5;\\r\\n\\t\\tborder-radius: 3px\\r\\n\\t}\\r\\n\\r\\n\\t.btn-block {\\r\\n\\t\\tdisplay: block;\\r\\n\\t\\twidth: 100%\\r\\n\\t}\\r\\n\\r\\n\\t.btn-block+.btn-block {\\r\\n\\t\\tmargin-top: 5px\\r\\n\\t}\\r\\n\\r\\n\\tinput[type=submit].btn-block,\\r\\n\\tinput[type=reset].btn-block,\\r\\n\\tinput[type=button].btn-block {\\r\\n\\t\\twidth: 100%\\r\\n\\t}\\r\\n\\r\\n\\t.fade {\\r\\n\\t\\topacity: 0;\\r\\n\\t\\t-webkit-transition: opacity .15s linear;\\r\\n\\t\\t-o-transition: opacity .15s linear;\\r\\n\\t\\ttransition: opacity .15s linear\\r\\n\\t}\\r\\n\\r\\n\\t.fade.in {\\r\\n\\t\\topacity: 1\\r\\n\\t}\\r\\n\\r\\n\\t.collapse {\\r\\n\\t\\tdisplay: none;\\r\\n\\t\\tvisibility: hidden\\r\\n\\t}\\r\\n\\r\\n\\t.collapse.in {\\r\\n\\t\\tdisplay: block;\\r\\n\\t\\tvisibility: visible\\r\\n\\t}\\r\\n\\r\\n\\ttr.collapse.in {\\r\\n\\t\\tdisplay: table-row\\r\\n\\t}\\r\\n\\r\\n\\ttbody.collapse.in {\\r\\n\\t\\tdisplay: table-row-group\\r\\n\\t}\\r\\n\\r\\n\\t.collapsing {\\r\\n\\t\\tposition: relative;\\r\\n\\t\\theight: 0;\\r\\n\\t\\toverflow: hidden;\\r\\n\\t\\t-webkit-transition-timing-function: ease;\\r\\n\\t\\t-o-transition-timing-function: ease;\\r\\n\\t\\ttransition-timing-function: ease;\\r\\n\\t\\t-webkit-transition-duration: .35s;\\r\\n\\t\\t-o-transition-duration: .35s;\\r\\n\\t\\ttransition-duration: .35s;\\r\\n\\t\\t-webkit-transition-property: height, visibility;\\r\\n\\t\\t-o-transition-property: height, visibility;\\r\\n\\t\\ttransition-property: height, visibility\\r\\n\\t}\\r\\n\\r\\n\\t.caret {\\r\\n\\t\\tmargin-left: 2px;\\r\\n\\t\\tvertical-align: middle;\\r\\n\\t\\tdisplay: inline-block;\\r\\n\\t\\twidth: 0;\\r\\n\\t\\theight: 0;\\r\\n\\t\\tborder-left: 4px solid;\\r\\n\\t\\tborder-bottom: 4px solid transparent;\\r\\n\\t\\tborder-top: 4px solid transparent;\\r\\n\\t}\\r\\n\\r\\n\\t.caret-down {\\r\\n\\t\\tdisplay: inline-block;\\r\\n\\t\\twidth: 0;\\r\\n\\t\\theight: 0;\\r\\n\\t\\tmargin-left: 2px;\\r\\n\\t\\tvertical-align: middle;\\r\\n\\t\\tborder-top: 4px solid;\\r\\n\\t\\tborder-right: 4px solid transparent;\\r\\n\\t\\tborder-left: 4px solid transparent\\r\\n\\t}\\r\\n\\r\\n\\t.active {\\r\\n\\t\\tbackground-color: lightseagreen;\\r\\n\\t\\tcolor: black;\\r\\n\\t}\\r\\n\\r\\n\\tli {\\r\\n\\t\\tlist-style: none;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-default>.panel-heading {\\r\\n\\t\\tcolor: #dedede;\\r\\n\\t\\tbackground-color: #7386D5;\\r\\n\\t\\tborder-color: #ddd;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-group .panel+.panel {\\r\\n\\t\\tmargin-top: 0px;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-group {\\r\\n\\t\\tmargin-top: 35px;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-collapse {\\r\\n\\t\\tbackground-color: #2b2b2b;\\r\\n\\t}\\r\\n\\r\\n\\t.glyphicon {\\r\\n\\t\\tmargin-right: 10px;\\r\\n\\t}\\r\\n\\r\\n\\tul.list-group {\\r\\n\\t\\tmargin: 0px;\\r\\n\\t}\\r\\n\\r\\n\\tul.bulletlist li {\\r\\n\\t\\tlist-style: disc;\\r\\n\\t}\\r\\n\\r\\n\\tul.list-group li a {\\r\\n\\t\\tdisplay: block;\\r\\n\\t\\tpadding: 5px 0px 5px 15px;\\r\\n\\t\\ttext-decoration: none;\\r\\n\\t}\\r\\n\\r\\n\\tul.list-group li a:hover,\\r\\n\\tul li a:focus {\\r\\n\\t\\tcolor: #2b2b2b !important;\\r\\n\\t\\tbackground-color: white;\\r\\n\\t}\\r\\n\\r\\n\\tul.list-group .has-module:hover,\\r\\n\\tul .has-module:focus {\\r\\n\\t\\tbackground-color: #3775b5 !important;\\r\\n\\t\\tcolor: #2b2b2b !important;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-title a:hover,\\r\\n\\t.panel-title a:active,\\r\\n\\t.panel-title a:focus,\\r\\n\\t.panel-title .open a:hover,\\r\\n\\t.panel-title .open a:active,\\r\\n\\t.panel-title .open a:focus {\\r\\n\\t\\ttext-decoration: none;\\r\\n\\t\\tcolor: #dedede;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-title>.small,\\r\\n\\t.panel-title>.small>a,\\r\\n\\t.panel-title>a,\\r\\n\\t.panel-title>small,\\r\\n\\t.panel-title>small>a {\\r\\n\\t\\tdisplay: block;\\r\\n\\t}\\r\\n\\r\\n\\t.card {\\r\\n\\t\\theight: 100%;\\r\\n\\t\\ttext-align: center;\\r\\n\\t\\tvertical-align: middle;\\r\\n\\t}\\r\\n\\r\\n\\t@mixin breakpoint($point) {\\r\\n\\t\\t@media (min-width: $point) {\\r\\n\\t\\t\\t@content ;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t@mixin breakpoint-max($point) {\\r\\n\\t\\t@media (max-width: $point) {\\r\\n\\t\\t\\t@content ;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t@mixin height-breakpoint($point) {\\r\\n\\t\\t@media (min-height: $point) {\\r\\n\\t\\t\\t@content ;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t@mixin height-breakpoint-max($point) {\\r\\n\\t\\t@media (min-height: $point) {\\r\\n\\t\\t\\t@content ;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t.mat-nav-list {\\r\\n\\t\\tpadding-top: 0;\\r\\n\\t}\\r\\n\\r\\n\\t@include breakpoint-max(600px) {\\r\\n\\t\\t.fixed-topnav {\\r\\n\\t\\t\\tposition: fixed;\\r\\n\\t\\t\\ttop: 0;\\r\\n\\t\\t\\tleft: 0;\\r\\n\\t\\t\\tz-index: 2;\\r\\n\\t\\t\\twidth: 100% !important;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t.mat-drawer-container,\\r\\n\\t\\t.mat-drawer {\\r\\n\\t\\t\\tpadding-top: 56px;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t.version-info {\\r\\n\\t\\tfont-size: 8pt;\\r\\n\\t\\tpadding: 8px;\\r\\n\\t\\talign-self: flex-end;\\r\\n\\t}\\r\\n\\r\\n\\th1 {\\r\\n\\t\\tcolor: #333;\\r\\n\\t\\tfont-family: arial, sans-serif;\\r\\n\\t\\tmargin: 1em auto;\\r\\n\\t\\twidth: 80%;\\r\\n\\t}\\r\\n\\r\\n\\t.tabordion {\\r\\n\\t\\tcolor: #333;\\r\\n\\t\\tdisplay: block;\\r\\n\\t\\tfont-family: arial, sans-serif;\\r\\n\\t\\tmargin: auto;\\r\\n\\t\\tposition: relative;\\r\\n\\t\\twidth: 80%;\\r\\n\\t}\\r\\n\\r\\n\\t.tabordion input[name=\\\"sections\\\"] {\\r\\n\\t\\tleft: -9999px;\\r\\n\\t\\tposition: absolute;\\r\\n\\t\\ttop: -9999px;\\r\\n\\t}\\r\\n\\r\\n\\t.tabordion section {\\r\\n\\t\\tdisplay: block;\\r\\n\\t}\\r\\n\\r\\n\\t.tabordion section label {\\r\\n\\t\\tbackground: #ccc;\\r\\n\\t\\tborder: 1px solid #fff;\\r\\n\\t\\tcursor: pointer;\\r\\n\\t\\tdisplay: block;\\r\\n\\t\\tfont-size: 1.2em;\\r\\n\\t\\tfont-weight: bold;\\r\\n\\t\\tpadding: 15px 20px;\\r\\n\\t\\tposition: relative;\\r\\n\\t\\twidth: 180px;\\r\\n\\t\\tz-index: 100;\\r\\n\\t}\\r\\n\\r\\n\\t.tabordion section article {\\r\\n\\t\\tdisplay: none;\\r\\n\\t\\tleft: 230px;\\r\\n\\t\\tmin-width: 300px;\\r\\n\\t\\tpadding: 0 0 0 21px;\\r\\n\\t\\tposition: absolute;\\r\\n\\t\\ttop: 0;\\r\\n\\t}\\r\\n\\r\\n\\t.tabordion section article:after {\\r\\n\\t\\tbackground-color: #ccc;\\r\\n\\t\\tbottom: 0;\\r\\n\\t\\tcontent: \\\"\\\";\\r\\n\\t\\tdisplay: block;\\r\\n\\t\\tleft: -229px;\\r\\n\\t\\tposition: absolute;\\r\\n\\t\\ttop: 0;\\r\\n\\t\\twidth: 220px;\\r\\n\\t\\tz-index: 1;\\r\\n\\t}\\r\\n\\r\\n\\t.tabordion input[name=\\\"sections\\\"]:checked+label {\\r\\n\\r\\n\\t\\tfont-size: 16px;\\r\\n\\t}\\r\\n\\r\\n\\t.tabordion input[name=\\\"sections\\\"]:checked~article {\\r\\n\\t\\tdisplay: block;\\r\\n\\t\\tfont-size: 16px;\\r\\n\\t\\tbackground: #eee;\\r\\n\\t\\tcolor: #000;\\r\\n\\t}\\r\\n\\r\\n\\r\\n\\t@media (max-width: 533px) {\\r\\n\\t\\th1 {\\r\\n\\t\\t\\twidth: 100%;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t.tabordion {\\r\\n\\t\\t\\twidth: 100%;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t.tabordion section label {\\r\\n\\t\\t\\tfont-size: 1em;\\r\\n\\t\\t\\twidth: 160px;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t.tabordion section article {\\r\\n\\t\\t\\tleft: 200px;\\r\\n\\t\\t\\tmin-width: 270px;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t.tabordion section article:after {\\r\\n\\t\\t\\tbackground-color: #ccc;\\r\\n\\t\\t\\tbottom: 0;\\r\\n\\t\\t\\tcontent: \\\"\\\";\\r\\n\\t\\t\\tdisplay: block;\\r\\n\\t\\t\\tleft: -199px;\\r\\n\\t\\t\\tposition: absolute;\\r\\n\\t\\t\\ttop: 0;\\r\\n\\t\\t\\twidth: 200px;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t@media print {\\r\\n\\t\\t.donotprintthis {\\r\\n\\t\\t\\tdisplay: none;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t@media print {\\r\\n\\t\\t@page {\\r\\n\\t\\t\\tsize: auto;\\r\\n\\t\\t\\tmargin: 0mm;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\ta[href]:after {\\r\\n\\t\\t\\tcontent: none !important;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t@media print {\\r\\n\\r\\n\\t\\t#Header,\\r\\n\\t\\t#Footer {\\r\\n\\t\\t\\tdisplay: none !important;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t@media screen {\\r\\n\\t\\t.donotprintthis {\\r\\n\\t\\t\\tdisplay: block;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t.active {\\r\\n\\t\\tbackground-color: lightseagreen;\\r\\n\\t}\\r\\n\\r\\n\\tli {\\r\\n\\t\\tlist-style: none;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-default>.panel-heading {\\r\\n\\t\\tcolor: #dedede;\\r\\n\\t\\tbackground-color: #404040;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-group .panel+.panel {\\r\\n\\t\\tmargin-top: 0px;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-group {\\r\\n\\t\\tmargin-top: 35px;\\r\\n\\t}\\r\\n\\r\\n\\t.glyphicon {\\r\\n\\t\\tmargin-right: 10px;\\r\\n\\t}\\r\\n\\r\\n\\r\\n\\tul.list-group {\\r\\n\\t\\tmargin: 0px;\\r\\n\\t}\\r\\n\\r\\n\\tul.bulletlist li {\\r\\n\\t\\tlist-style: disc;\\r\\n\\t}\\r\\n\\r\\n\\r\\n\\tul.list-group li a {\\r\\n\\t\\tdisplay: block;\\r\\n\\t\\tpadding: 5px 0px 5px 15px;\\r\\n\\t\\ttext-decoration: none;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-title a:hover,\\r\\n\\t.panel-title a:active,\\r\\n\\t.panel-title a:focus,\\r\\n\\t.panel-title .open a:hover,\\r\\n\\t.panel-title .open a:active,\\r\\n\\t.panel-title .open a:focus {\\r\\n\\t\\ttext-decoration: none;\\r\\n\\t\\tcolor: #dedede;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-title>.small,\\r\\n\\t.panel-title>.small>a,\\r\\n\\t.panel-title>a,\\r\\n\\t.panel-title>small,\\r\\n\\t.panel-title>small>a {\\r\\n\\t\\tdisplay: block;\\r\\n\\t}\\r\\n\\r\\n\\t@media (min-width: 768px) {\\r\\n\\t\\t.navbar-collapse.collapse {\\r\\n\\t\\t\\tdisplay: block !important;\\r\\n\\t\\t\\theight: auto !important;\\r\\n\\t\\t\\tpadding-bottom: 0;\\r\\n\\t\\t\\toverflow: visible !important;\\r\\n\\t\\t\\tpadding-left: 0px;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t@media (min-width: 992px) {\\r\\n\\t\\t.menu-hide {\\r\\n\\t\\t\\tdisplay: none;\\r\\n\\t\\t}\\r\\n\\r\\n\\t}\\r\\n\\r\\n\\r\\n\\t/********** END SIDEBAR *************/\\r\\n\\r\\n\\t/********** NAVBAR TOGGLE *************/\\r\\n</style>\\r\\n\\r\\n<div class=\\\"row\\\" *ngIf=\\\"!login\\\" style=\\\"min-height:500px;margin-top:5%;margin-left:0px;margin-right:0px\\\">\\r\\n\\t<div class=\\\"col-sm-4\\\"></div>\\r\\n\\t<div class=\\\"col-sm-4\\\">\\r\\n\\t\\t<div class=\\\"card\\\">\\r\\n\\t\\t\\t<div style=\\\"margin-top:20%;\\\">\\r\\n\\t\\t\\t\\t<img src=\\\"./assets/images/DorseyMainLogo.png\\\" width=\\\"50%\\\" alt=\\\"dorsey Logo\\\" />\\r\\n\\t\\t\\t\\t<div class=\\\"row\\\" id=\\\"Rowcontainer\\\" *ngIf=\\\"!showAzureBtn\\\">\\r\\n\\t\\t\\t\\t\\t<div id=\\\"Rowwrapper\\\">\\r\\n\\t\\t\\t\\t\\t\\t<div id=\\\"RowtableActions\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t<div id=\\\"field\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<mat-form-field style=\\\"width: 180px\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<mat-placeholder class=\\\"placeholder\\\">Username</mat-placeholder>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<input matInput id=\\\"username\\\" (keyup.enter)=\\\"CheckEnter($event)\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t[(ngModel)]=\\\"userName\\\" value=\\\"\\\" autocomplete=\\\"off\\\" autofocus>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</mat-form-field>\\r\\n\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t<div class=\\\"row\\\" id=\\\"Rowcontainer\\\" *ngIf=\\\"!showAzureBtn\\\">\\r\\n\\t\\t\\t\\t\\t<div id=\\\"Rowwrapper\\\">\\r\\n\\t\\t\\t\\t\\t\\t<div id=\\\"RowtableActions\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t<div id=\\\"field\\\">\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<mat-form-field style=\\\"width: 180px\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<mat-placeholder class=\\\"placeholder\\\">Password</mat-placeholder>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<input matInput id=\\\"passwd\\\" type=\\\"password\\\" (keyup.enter)=\\\"CheckEnter($event)\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t[(ngModel)]=\\\"password\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</mat-form-field>\\r\\n\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t<div class=\\\"row\\\" id=\\\"Rowcontainer\\\" *ngIf=\\\"!showAzureBtn\\\">\\r\\n\\t\\t\\t\\t\\t<div id=\\\"Rowwrapper\\\">\\r\\n\\t\\t\\t\\t\\t\\t<div id=\\\"RowtableActions\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t<div id=\\\"buttonview\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<button mat-raised-button id=\\\"login\\\" color=\\\"primary\\\" matTooltip=\\\"Click to login\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tstyle=\\\"cursor: pointer;width:180px;height: 35px;\\\" (click)=\\\"Login()\\\">Login</button>\\r\\n\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t<span style=\\\"color: red;\\\" *ngIf=\\\"!showAzureBtn\\\"><br>{{warningMsg}}</span>\\r\\n\\t\\t\\t\\t<!-- <hr *ngIf=\\\"showAzureBtn\\\">\\r\\n\\t\\t\\t\\t<div class=\\\"azure-btn m-2\\\" *ngIf=\\\"showAzureBtn\\\">\\r\\n\\t\\t\\t\\t\\t<button type=\\\"button\\\" (click)=\\\"loginWithAzure()\\\" class=\\\"btn btn-info btn-w\\\">Login with Azure</button>\\r\\n\\t\\t\\t\\t</div> -->\\r\\n\\t\\t\\t\\t<hr *ngIf=\\\"showAzureBtn\\\">\\r\\n\\t\\t\\t\\t<div class=\\\"azure-btn m-2\\\" *ngIf=\\\"showAzureBtn\\\" style=\\\"margin-top: 6rem !important;\\\">\\r\\n\\t\\t\\t\\t\\t<button type=\\\"button\\\" mat-raised-button  (click)=\\\"loginWithAzure()\\\" matTooltip=\\\"Click to login with Azurer AD\\\" color=\\\"primary\\\" style=\\\"cursor: pointer;width:180px;height: 35px;\\\">Login with Azure</button>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t<span style=\\\"color: red;\\\" *ngIf=\\\"showAzureBtn\\\"><br>{{warningMsg}}</span>\\r\\n\\t\\t\\t</div>\\r\\n\\t\\t</div>\\r\\n\\r\\n\\t</div>\\r\\n\\t<div class=\\\"col-sm-4\\\"></div>\\r\\n</div>\\r\\n<div class=\\\"copyright\\\" style=\\\"font-size: 13px;text-align:center\\\" *ngIf=\\\"!login\\\">\\r\\n\\t<label> {{copyRight}}</label>\\r\\n</div>\\r\\n<style>\\r\\n\\t@media print {\\r\\n\\t\\t.donotprintthis {\\r\\n\\r\\n\\t\\t\\tdisplay: none;\\r\\n\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t@media print {\\r\\n\\t\\t@page {\\r\\n\\t\\t\\tsize: auto;\\r\\n\\t\\t\\tmargin: 0mm;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\ta[href]:after {\\r\\n\\t\\t\\tcontent: none !important;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t@media print {\\r\\n\\r\\n\\t\\t#Header,\\r\\n\\t\\t#Footer {\\r\\n\\t\\t\\tdisplay: none !important;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t@media screen {\\r\\n\\t\\t.donotprintthis {\\r\\n\\t\\t\\tdisplay: block;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t.active {\\r\\n\\t\\tbackground-color: lightseagreen;\\r\\n\\t}\\r\\n\\r\\n\\t.panel {\\r\\n\\t\\tpadding-bottom: 15px;\\r\\n\\t\\tbox-shadow: 0 1px 1px rgba(0, 0, 0, .05);\\r\\n\\t\\tborder: none;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-heading {\\r\\n\\t\\tborder: none;\\r\\n\\t}\\r\\n</style>\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n<div class=\\\"wrapper\\\" *ngIf=\\\"login\\\">\\r\\n\\t<mat-sidenav-container [hasBackdrop]=\\\"backdrop\\\">\\r\\n\\t\\t<mat-sidenav [(opened)]=\\\"opened\\\" [(mode)]=\\\"sidenavMode\\\" role=\\\"navigation\\\" *ngIf=\\\"menuOpenStatus\\\"\\r\\n\\t\\t\\tclass=\\\"donotprintthis\\\" id=\\\"sidebar\\\" style=\\\"width: 15%;\\\">\\r\\n\\t\\t\\t<div class=\\\"mat-drawer-inner-container\\\">\\r\\n\\r\\n\\t\\t\\t\\t<div class=\\\"sidebar-header\\\">\\r\\n\\t\\t\\t\\t\\t&nbsp;<button type=\\\"button\\\" id=\\\"collapseBtnOnSidenav\\\" class=\\\"btn btn-info btn-md\\\"\\r\\n\\t\\t\\t\\t\\t\\tmatTooltip=\\\"Expand menu\\\" (click)=\\\"opened=!opened\\\">\\r\\n\\t\\t\\t\\t\\t\\t<i class=\\\"fa fa-bars fa-align-left\\\"></i>\\r\\n\\t\\t\\t\\t\\t</button>\\r\\n\\t\\t\\t\\t\\t<h3>\\r\\n\\t\\t\\t\\t\\t\\t<img src=\\\"./assets/images/DorseyMainLogo_1.png\\\" width=\\\"100%\\\" alt=\\\"dorsey Logo\\\" />\\r\\n\\t\\t\\t\\t\\t</h3>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\r\\n\\r\\n\\r\\n\\t\\t\\t\\t<div class=\\\"menuPane\\\">\\r\\n\\r\\n\\t\\t\\t\\t\\t<!-- ********************* Menu Items*************************** -->\\r\\n\\t\\t\\t\\t\\t<!-- Organization -->\\r\\n\\t\\t\\t\\t\\t<mat-list *ngIf=\\\"(companyID == 0 || companyID == '0') && organizationID == 0\\\">\\r\\n\\t\\t\\t\\t\\t\\t<mat-nav-list class=\\\"mainMenu\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t<div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"liactive1 menuStyle\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(click)=\\\"menuClick('/organization', $event.target)\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t&nbsp;&nbsp;<span class=\\\"fa fa-folder-open\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t&nbsp;&nbsp;Organization\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t</mat-nav-list>\\r\\n\\t\\t\\t\\t\\t</mat-list>\\r\\n\\r\\n\\t\\t\\t\\t\\t<!-- Company -->\\r\\n\\t\\t\\t\\t\\t<mat-list *ngIf=\\\"organizationID != 0 && !companyNavigate\\\">\\r\\n\\t\\t\\t\\t\\t\\t<mat-nav-list class=\\\"mainMenu\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t<div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"liactive1 menuStyle\\\" (click)=\\\"menuClick('/entity', $event.target)\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t&nbsp;&nbsp;<span class=\\\"fa fa-folder-open\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t&nbsp;&nbsp;Entity\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t</mat-nav-list>\\r\\n\\t\\t\\t\\t\\t</mat-list>\\r\\n\\r\\n\\t\\t\\t\\t\\t<!-- Set Up -->\\r\\n\\r\\n\\t\\t\\t\\t\\t<mat-list id=\\\"matSetup\\\" *ngIf=\\\"!menuVisible && companyNavigate\\\">\\r\\n\\t\\t\\t\\t\\t\\t<ng-container>\\r\\n\\t\\t\\t\\t\\t\\t\\t<mat-nav-list class=\\\"setUpMenu\\\" style=\\\"cursor: pointer;\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<h4 class=\\\"panel-title\\\" *ngIf=\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(MenuPermissions['Roles']['102']['R'] !== false) || \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(MenuPermissions['Employee']['103']['R'] !== false) ||\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(MenuPermissions['Team']['105']['R'] !== false) || \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(MenuPermissions['FrustrationsType']['113']['R'] !== false) ||\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(MenuPermissions['Alerts']['114']['R'] !== false) || \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(MenuPermissions['Metric Table']['115']['R'] !== false) ||  \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(MenuPermissions['Departments']['117']['R'] !== false) || \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(MenuPermissions['Goals']['118']['R'] !== false) || \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(MenuPermissions['Quarter']['120']['R'] !== false)\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<a data-toggle=\\\"collapse\\\" (click)=\\\"setupList=!setupList\\\" *ngIf=\\\"!setupList\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tstyle=\\\"color: #dedede;\\\" data-parent=\\\"#accordion\\\">\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<span *ngIf=\\\"!setupList\\\" class=\\\"caret\\\"></span><span *ngIf=\\\"setupList\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"caret caret-down\\\"></span>&nbsp;&nbsp;<img src=\\\"\\\"><span\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"fa fa-folder-open\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</span>&nbsp;&nbsp;Set Up</a>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<a data-toggle=\\\"collapse\\\" (click)=\\\"setupList=!setupList\\\" *ngIf=\\\"setupList\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tstyle=\\\"color: #ffffff;\\\" data-parent=\\\"#accordion\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<span *ngIf=\\\"!setupList\\\" class=\\\"caret\\\"></span><span *ngIf=\\\"setupList\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"caret caret-down\\\"></span>&nbsp;&nbsp;<img src=\\\"\\\"><span\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"fa fa-folder-open\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</span>&nbsp;&nbsp;Set Up</a>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</h4>\\r\\n\\t\\t\\t\\t\\t\\t\\t</mat-nav-list>\\r\\n\\t\\t\\t\\t\\t\\t\\t<mat-list *ngIf=\\\"setupList\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<ng-container *ngFor=\\\"let list of menuData;let i = index\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<mat-nav-list class=\\\"subMenu\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t*ngIf=\\\"list.MenuOrderID==3 || list.MenuOrderID==4 ||list.MenuOrderID==5 ||list.MenuOrderID==6 ||\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tlist.MenuOrderID==7|| list.MenuOrderID==8||list.MenuOrderID==9 ||list.MenuOrderID==10 ||list.MenuOrderID==11\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t*ngIf=\\\"MenuPermissions[list.MenuName]!==undefined && MenuPermissions[list.MenuName][list.MenuID]!=undefined\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div *ngIf=\\\"list.MenuName!='FrustrationsType'\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"liactive1 childMenu\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(click)=\\\"menuClick(list.MenuUrl, $event.target)\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t*ngIf=\\\"MenuPermissions[list.MenuName][list.MenuID]['R'] || MenuPermissions[list.MenuName][list.MenuID]['C'] || MenuPermissions[list.MenuName][list.MenuID]['U'] || MenuPermissions[list.MenuName][list.MenuID]['D']\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t&nbsp;&nbsp;{{list.MenuName}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div *ngIf=\\\"list.MenuName=='FrustrationsType'\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"liactive1 childMenu\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(click)=\\\"menuClick(list.MenuUrl, $event.target)\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t*ngIf=\\\"MenuPermissions[list.MenuName][list.MenuID]['R'] || MenuPermissions[list.MenuName][list.MenuID]['C'] || MenuPermissions[list.MenuName][list.MenuID]['U'] || MenuPermissions[list.MenuName][list.MenuID]['D']\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t&nbsp;&nbsp;Frustration\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tTypes</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</mat-nav-list>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</ng-container>\\r\\n\\t\\t\\t\\t\\t\\t\\t</mat-list>\\r\\n\\t\\t\\t\\t\\t\\t</ng-container>\\r\\n\\t\\t\\t\\t\\t</mat-list>\\r\\n\\t\\t\\t\\t\\t<!-- Process Map -->\\r\\n\\t\\t\\t\\t\\t<mat-list id=\\\"matPM\\\" *ngIf=\\\"!menuVisible && companyNavigate\\\">\\r\\n\\t\\t\\t\\t\\t\\t<ng-container>\\r\\n\\t\\t\\t\\t\\t\\t\\t<mat-nav-list class=\\\"mainMenu\\\" style=\\\"cursor: pointer;\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<h4 class=\\\"panel-title\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<a data-toggle=\\\"collapse\\\" (click)=\\\"processList=!processList\\\" *ngIf=\\\"!processList\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tstyle=\\\"color:#dedede\\\" data-parent=\\\"#accordion\\\"><span *ngIf=\\\"!processList\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"caret\\\"></span><span *ngIf=\\\"processList\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"caret caret-down\\\"></span>&nbsp;&nbsp;<span class=\\\"fa fa-folder-open\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</span>&nbsp;&nbsp;Process Map</a>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<a data-toggle=\\\"collapse\\\" (click)=\\\"processList=!processList\\\" style=\\\"color: #ffffff;\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t*ngIf=\\\"processList\\\" data-parent=\\\"#accordion\\\"><span *ngIf=\\\"!processList\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"caret\\\"></span><span *ngIf=\\\"processList\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"caret caret-down\\\"></span>&nbsp;&nbsp;<span class=\\\"fa fa-folder-open\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</span>&nbsp;&nbsp;Process Map</a>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</h4>\\r\\n\\t\\t\\t\\t\\t\\t\\t</mat-nav-list>\\r\\n\\t\\t\\t\\t\\t\\t\\t<mat-list *ngIf=\\\"processList\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<ng-container *ngFor=\\\"let list of menuData;let i = index\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<mat-nav-list class=\\\"subMenu\\\" *ngIf=\\\"list.MenuOrderID==12\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t*ngIf=\\\"MenuPermissions[list.MenuName]!==undefined && MenuPermissions[list.MenuName][list.MenuID]!=undefined\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div *ngIf=\\\"MenuPermissions[list.MenuName][list.MenuID]['R'] || MenuPermissions[list.MenuName][list.MenuID]['C'] || MenuPermissions[list.MenuName][list.MenuID]['U'] || MenuPermissions[list.MenuName][list.MenuID]['D']\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(click)=\\\"menuClick(list.MenuUrl, $event.target)\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"liactive1 childMenu\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t&nbsp;&nbsp;Process Map</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</mat-nav-list>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</ng-container>\\r\\n\\t\\t\\t\\t\\t\\t\\t</mat-list>\\r\\n\\t\\t\\t\\t\\t\\t\\t<mat-list *ngIf=\\\"processList\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<ng-container *ngFor=\\\"let list of menuData;let i = index\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<mat-nav-list class=\\\"subMenu\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t*ngIf=\\\" list.MenuOrderID==13 || list.MenuOrderID==14 || list.MenuOrderID==15 || list.MenuOrderID==16\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t*ngIf=\\\"MenuPermissions[list.MenuName]!==undefined && MenuPermissions[list.MenuName][list.MenuID]!=undefined\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"liactive1 childMenu\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t*ngIf=\\\"MenuPermissions[list.MenuName][list.MenuID]['R'] || MenuPermissions[list.MenuName][list.MenuID]['C'] || MenuPermissions[list.MenuName][list.MenuID]['U'] || MenuPermissions[list.MenuName][list.MenuID]['D']\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(click)=\\\"menuClick(list.MenuUrl, $event.target)\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t&nbsp;&nbsp;{{list.MenuName}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</mat-nav-list>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</ng-container>\\r\\n\\t\\t\\t\\t\\t\\t\\t</mat-list>\\r\\n\\t\\t\\t\\t\\t\\t</ng-container>\\r\\n\\t\\t\\t\\t\\t</mat-list>\\r\\n\\t\\t\\t\\t\\t<!-- Projects -->\\r\\n\\t\\t\\t\\t\\t<mat-list *ngIf=\\\"!menuVisible && companyNavigate\\\">\\r\\n\\t\\t\\t\\t\\t\\t<ng-container *ngFor=\\\"let list of menuData;let i = index\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t<mat-nav-list class=\\\"mainMenu\\\" *ngIf=\\\"list.MenuOrderID==17\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<div\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t*ngIf=\\\"MenuPermissions[list.MenuName]!==undefined && MenuPermissions[list.MenuName][list.MenuID]!=undefined\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"liactive1 menuStyle\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t*ngIf=\\\"MenuPermissions[list.MenuName][list.MenuID]['R'] || MenuPermissions[list.MenuName][list.MenuID]['C'] || MenuPermissions[list.MenuName][list.MenuID]['U'] || MenuPermissions[list.MenuName][list.MenuID]['D']\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(click)=\\\"menuClick(list.MenuUrl, $event.target)\\\">\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t&nbsp;&nbsp;<span class=\\\"fa fa-folder-open\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t&nbsp;&nbsp;{{list.MenuName}}</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t</mat-nav-list>\\r\\n\\t\\t\\t\\t\\t\\t</ng-container>\\r\\n\\t\\t\\t\\t\\t</mat-list>\\r\\n\\t\\t\\t\\t\\t<mat-list *ngIf=\\\"!menuVisible && companyNavigate && isScoreCardEnable\\\">\\r\\n\\t\\t\\t\\t\\t\\t<ng-container *ngFor=\\\"let list of menuData;let i = index\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t<mat-nav-list class=\\\"mainMenu\\\" *ngIf=\\\"list.MenuOrderID==18\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"liactive1 menuStyle\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(click)=\\\"menuClick(list.MenuUrl, $event.target)\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t&nbsp;&nbsp;<span class=\\\"fa fa-folder-open\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t&nbsp;&nbsp;{{list.MenuName}}</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t</mat-nav-list>\\r\\n\\t\\t\\t\\t\\t\\t</ng-container>\\r\\n\\t\\t\\t\\t\\t</mat-list>\\r\\n\\t\\t\\t\\t\\t<!-- Reports -->\\r\\n\\t\\t\\t\\t\\t<mat-list *ngIf=\\\"!menuVisible && companyNavigate\\\">\\r\\n\\t\\t\\t\\t\\t\\t<ng-container *ngFor=\\\"let list of menuData;let i = index\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t<mat-nav-list class=\\\"mainMenu\\\" *ngIf=\\\"list.MenuOrderID==19\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<div\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t*ngIf=\\\"MenuPermissions[list.MenuName]!==undefined && MenuPermissions[list.MenuName][list.MenuID]!=undefined\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"liactive1 menuStyle\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(click)=\\\"menuClick(list.MenuUrl, $event.target)\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t*ngIf=\\\"MenuPermissions[list.MenuName][list.MenuID]['R'] || MenuPermissions[list.MenuName][list.MenuID]['C'] || MenuPermissions[list.MenuName][list.MenuID]['U'] || MenuPermissions[list.MenuName][list.MenuID]['D']\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t&nbsp;&nbsp;<span class=\\\"fa fa-folder-open\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t&nbsp;&nbsp;{{list.MenuName}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t</mat-nav-list>\\r\\n\\t\\t\\t\\t\\t\\t</ng-container>\\r\\n\\t\\t\\t\\t\\t</mat-list>\\r\\n\\t\\t\\t\\t\\t<mat-list>\\r\\n\\t\\t\\t\\t\\t\\t<ng-container *ngFor=\\\"let list of menuData;let i = index\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t<mat-nav-list class=\\\"mainMenu\\\" *ngIf=\\\"list.MenuOrderID==20\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"liactive1 menuStyle\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(click)=\\\"menuClick(list.MenuUrl, $event.target)\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t&nbsp;&nbsp;<span class=\\\"fa fa-folder-open\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t&nbsp;&nbsp;User Manual\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t</mat-nav-list>\\r\\n\\t\\t\\t\\t\\t\\t</ng-container>\\r\\n\\t\\t\\t\\t\\t</mat-list>\\r\\n\\r\\n\\t\\t\\t\\t\\t<!-- *********************END Menu Items*************************** -->\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t</div>\\r\\n\\t\\t</mat-sidenav>\\r\\n\\t\\t<mat-sidenav-content role=\\\"main\\\">\\r\\n\\t\\t\\t<div id=\\\"mainContent\\\">\\r\\n\\t\\t\\t\\t<div id=\\\"content\\\">\\r\\n\\t\\t\\t\\t\\t<div class=\\\"navbar navbar-expand-lg navbar-light bg-light donotprintthis\\\">\\r\\n\\t\\t\\t\\t\\t\\t<div class=\\\"flexContainer\\\" style=\\\" cursor:pointer;\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t<div id=\\\"wrapper\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<div id=\\\"flexWrapper1\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<div id=\\\"btnGroup1\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t&nbsp;<button type=\\\"button\\\" id=\\\"sidebarCollapse\\\" class=\\\"btn btn-info btn-md\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tmatTooltip=\\\"Expand menu\\\" (click)=\\\"opened=!opened\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<i class=\\\"fa fa-bars fa-align-left\\\"></i>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</button> &nbsp; &nbsp;&nbsp;\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<!-- <button *ngIf=\\\"GlobalAdminLogin && companyID!=0\\\" (click)=\\\"BackToAdmin()\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tstyle=\\\"cursor:pointer;\\\" matTooltip='Back to admin'\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"btn btn-primary btn-circle btn-outline add-btn darkbtnbg\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\ttype=\\\"button\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<i class=\\\"fa fa-arrow-left fa-1x\\\"></i>mmm\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</button> -->\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<button *ngIf=\\\"GlobalAdminLogin\\\" (click)=\\\"BackToAdmin()\\\" style=\\\"cursor:pointer;\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tmatTooltip='Back to organization'\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"btn btn-primary btn-circle btn-outline add-btn darkbtnbg\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\ttype=\\\"button\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<i class=\\\"fa fa-arrow-left fa-1x\\\"></i>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</button>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<div id=\\\"dmapp_Logo\\\">\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<img id=\\\"logo_img\\\" src=\\\"./assets/images/dmapp_Logo.png\\\" alt=\\\"dorsey Logo\\\" />\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t<div id=\\\"companyName\\\" *ngIf=\\\"CompanyName && companyNavigate\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<b>{{CompanyName}}</b>\\r\\n\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t<div id=\\\"btnGroup2\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<button *ngIf=\\\"!GlobalAdminLogin\\\" class=\\\"darkbtnbg btn\\\" [disabled]=\\\"GlobalAdminLogin\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t(click)=\\\"changePassword()\\\" style=\\\"color: white; cursor: pointer;\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tmatTooltip=\\\"Change password\\\">Change\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tPassword</button>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<button *ngIf=\\\"GlobalAdminLogin\\\" class=\\\"darkbtnbg btn\\\" [disabled]=\\\"GlobalAdminLogin\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t(click)=\\\"changePassword()\\\" matTooltip=\\\"Change password\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tstyle=\\\"color: white; cursor: pointer;\\\">Change\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tPassword</button>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t&nbsp;&nbsp;&nbsp;<button class=\\\"btn\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tstyle=\\\"cursor:pointer;background-color: #3775b5;color: white;font-size: 13px;\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t(click)=\\\"LogOut()\\\" matTooltip=\\\"Logout\\\">Logout</button>\\r\\n\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t<div (click)=\\\"collapseSidenav()\\\">\\r\\n\\t\\t\\t\\t\\t\\t<router-outlet></router-outlet>\\r\\n\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t<br>\\r\\n\\t\\t\\t\\t<div class=\\\"copyright\\\" style=\\\"font-size: 13px;text-align:center\\\">\\r\\n\\t\\t\\t\\t\\t<label>{{copyRight}}</label>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t</div>\\r\\n\\t\\t</mat-sidenav-content>\\r\\n\\t</mat-sidenav-container>\\r\\n</div>\\r\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n<div *ngIf=\\\"data !== 'new' && data !== 'edit' && data!='log'&& data !== 'progress' &&  data !== 'status'\\\">\\r\\n  <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n  <mat-dialog-actions align=\\\"center\\\">\\r\\n    <div *ngIf=\\\"condition\\\">\\r\\n      <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n      <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n    </div>\\r\\n    <div *ngIf=\\\"!condition &&  data !== 'progress' &&  data !== 'status'\\\">\\r\\n      <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n        <div class=\\\"item item-3 \\\">\\r\\n          <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n<div *ngIf=\\\"data === 'new' || data === 'edit'\\\">\\r\\n  <br>\\r\\n  <div class=\\\"XBtn\\\">\\r\\n    <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">&times;</span>\\r\\n  </div>\\r\\n  <mat-slide-toggle [checked]=\\\"subActivityStatus\\\" [disabled]=\\\"conditionActivity!='' || data=='edit'\\\"\\r\\n    (change)=\\\"ToggleSubActivity()\\\">Sub Activity</mat-slide-toggle>\\r\\n\\r\\n\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowheading\\\">\\r\\n      <h4 class=\\\"alignheader\\\"><b>{{data | titlecase}} Metric</b></h4>\\r\\n\\r\\n    </div>\\r\\n  </div>\\r\\n\\r\\n  <div class=\\\"inputFields\\\">\\r\\n    <div>\\r\\n\\r\\n\\r\\n      <mat-form-field>\\r\\n        <mat-label *ngIf=\\\"processData.length === 0;else template\\\" style=\\\"color: red;\\\"> Key Process<span\\r\\n            style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-label>\\r\\n        <ng-template #template>\\r\\n          <mat-label>Key Process<span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-label>\\r\\n        </ng-template>\\r\\n        <!-- <mat-placeholder>Key Process <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder> -->\\r\\n        <mat-select [disabled]=\\\"conditionActivity!=''\\\" (selectionChange)=\\\"process($event)\\\" [(ngModel)]=\\\"ProcessID\\\">\\r\\n          <mat-option *ngFor=\\\"let data of processData;let i=index;\\\" [value]=\\\"processData[i].ProcessID\\\">\\r\\n            {{processData[i].ProcessName}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n\\r\\n        <mat-placeholder>Activity <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n        <mat-select [disabled]=\\\"conditionActivity!='' || tempActivity.length===0\\\" (selectionChange)=\\\"activity($event)\\\"\\r\\n          [(ngModel)]=\\\"ActivityID\\\">\\r\\n          <mat-option *ngFor=\\\"let data of tempActivity;let i=index;\\\" [value]=\\\"tempActivity[i].ActivityID\\\">\\r\\n            {{tempActivity[i].ActivityName}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n\\r\\n\\r\\n    </div>\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n\\r\\n        <mat-placeholder>Team <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n        <mat-select [disabled]=true (selectionChange)=\\\"team($event)\\\" [(ngModel)]=\\\"TeamID\\\">\\r\\n          <mat-option *ngFor=\\\"let data of teamData;let i=index;\\\" [value]=\\\"teamData[i].TeamID\\\">\\r\\n            {{teamData[i].TeamName}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n\\r\\n    </div>\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n\\r\\n        <mat-placeholder>Sub Activity <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n        <mat-select [disabled]=\\\"conditionActivity!='' || !subActivityStatus  || tempSubActivity.length===0\\\"\\r\\n          [(ngModel)]=\\\"SubActivityID\\\" (selectionChange)=\\\"subactivity($event)\\\">\\r\\n          <mat-option *ngFor=\\\"let data of tempSubActivity;let i=index;\\\" [value]=\\\"tempSubActivity[i].ActivityID\\\">\\r\\n            {{tempSubActivity[i].ActivityName}}\\r\\n\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n\\r\\n    </div>\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n        <mat-label> Goal Name<span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-label>\\r\\n\\r\\n        <mat-select (selectionChange)=\\\"GoalChange($event)\\\" [(ngModel)]=\\\"GoalID\\\">\\r\\n          <mat-option *ngFor=\\\"let goal of GoalsList;let i=index;\\\" [value]=\\\"goal.GoalID\\\">\\r\\n            {{goal.GoalName}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n        <input matInput autocomplete=\\\"off\\\" maxlength=\\\"100\\\" id=\\\"lblDescription\\\" [(ngModel)]=\\\"Description\\\" value=\\\"\\\">\\r\\n        <mat-placeholder>Metric <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n\\r\\n\\r\\n    </div>\\r\\n\\r\\n\\r\\n    <div style=\\\"display:none;\\\">\\r\\n      <mat-form-field>\\r\\n        <input matInput placeholder=\\\" Unit of measurement\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\" id=\\\"lblUOM\\\"\\r\\n          [(ngModel)]=\\\"UOM\\\" value=\\\"\\\">\\r\\n      </mat-form-field>\\r\\n\\r\\n    </div>\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n        <input matInput placeholder=\\\" Source\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\" id=\\\"lblSource\\\" [(ngModel)]=\\\"Source\\\"\\r\\n          value=\\\"\\\">\\r\\n      </mat-form-field>\\r\\n\\r\\n    </div>\\r\\n\\r\\n  </div>\\r\\n\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowwrapper\\\">\\r\\n      <div id=\\\"RowtableActions\\\">\\r\\n        <div id=\\\"buttonview\\\">\\r\\n          <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"AddPointer()\\\" [disabled]=\\\"btnDisabled\\\">\\r\\n            <span *ngIf=\\\"data === 'new'\\\">Save</span><span *ngIf=\\\"data === 'edit'\\\">Update</span></button>\\r\\n\\r\\n        </div>\\r\\n        <div id=\\\"buttonview\\\">\\r\\n          <button mat-accent class=\\\"addButtons btn\\\" (click)='Clear()'>Cancel</button>\\r\\n        </div>\\r\\n\\r\\n      </div>\\r\\n    </div>\\r\\n\\r\\n\\r\\n  </div>\\r\\n  <br>\\r\\n  <mat-dialog-content class=\\\"warningMsg\\\">{{dataSelf}}</mat-dialog-content>\\r\\n  <mat-dialog-content class=\\\"successMsg\\\"></mat-dialog-content>\\r\\n\"","module.exports = \"<p></p>\\n<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n<div class=\\\"row\\\" id=\\\"container\\\">\\n\\n  <div class=\\\" \\\" id=\\\"heading\\\">\\n    <h4>Metric</h4>\\n  </div>\\n  <div id=\\\"wrapper\\\">\\n    <div id=\\\"tableActions\\\">\\n      <div class=\\\"\\\" id=\\\"search\\\" *ngIf=\\\"!disableSearch\\\">\\n        <mat-form-field style=\\\"margin: -5px;\\\" id=\\\"searchField\\\">\\n          <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n          <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\"\\n            [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n        </mat-form-field>\\n      </div>\\n      <div class=\\\"\\\" id=\\\"excelBtn\\\" *ngIf=\\\"!isDisable\\\">\\n        <button class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top:11px;cursor: pointer;\\\" [disabled]=\\\"isDisable\\\"\\n          matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">\\n\\n          Excel\\n        </button>\\n      </div>\\n      <div class=\\\"\\\" id=\\\"createBtn\\\">\\n        <button mat-accent class=\\\"darkbtnbg btn btn-info \\\" style=\\\"margin-top: 11px\\\" (click)='OpenPointer()'\\n          [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\" matTooltip=\\\"New metric\\\">New</button>\\n      </div>\\n    </div>\\n\\n  </div>\\n</div>\\n\\n\\n<div>\\n  <div class=\\\"tableDiv\\\">\\n    <table>\\n      <thead>\\n        <tr>\\n\\n          <th cName class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th cName class=\\\"pointer\\\" (click)=\\\"sort('ProcessName')\\\"> Process\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n\\n          <th cName class=\\\"pointer\\\" (click)=\\\"sort('ActivityName')\\\"> Activity\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n\\n          <th cName class=\\\"pointer\\\" (click)=\\\"sort('GoalName')\\\"> Goal\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th cName class=\\\"pointer\\\" (click)=\\\"sort('Description')\\\"> Metric\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <!-- <th cName class=\\\"pointer\\\" (click)=\\\"sort('UOM')\\\"> UOM \\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n           </th>\\n    -->\\n\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('Source')\\\"> Source\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n\\n          <th action>Action</th>\\n        </tr>\\n\\n      </thead>\\n      <tbody>\\n\\n        <tr\\n          *ngFor=\\\"let element of metricData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n\\n          <td>{{element.TeamName}}</td>\\n          <td> {{element.ProcessName}}</td>\\n          <td> {{element.ActivityName}}</td>\\n          <td> {{element.GoalName}}</td>\\n\\n\\n\\n          <td> {{element.Description}}</td>\\n          <!-- <td> {{element.UOM}}</td> -->\\n\\n\\n\\n\\n          <td> {{element.Source}}</td>\\n\\n          <td style=\\\" cursor:pointer;\\\">\\n            <span> <a matTooltip=\\\"Edit metric\\\" (click)=\\\"EditPointer(element)\\\"\\n                [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\n                [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['U']),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\"><i\\n                  style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n              &nbsp;&nbsp;&nbsp;\\n              <a matTooltip=\\\"Delete metric\\\" (click)=\\\"DeletePointer(element)\\\"\\n                [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['D'])?'none':'auto'\\\"\\n                [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['D']),'AddColor':(MenuPermissions[menuName][menuID]['D'])}\\\"><i\\n                  style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a> </span>\\n          </td>\\n\\n        </tr>\\n      </tbody>\\n\\n    </table>\\n\\n\\n    <br>\\n\\n\\n    <div class=\\\"warningMsg\\\" *ngIf=\\\"(metricData === null||metricData===undefined || metricData.length === 0)\\\">\\n\\n      <span>No data avilable</span>\\n\\n\\n    </div>\\n  </div>\\n  <div class=\\\"pageContainer\\\" *ngIf=\\\"metricPaging && metricData.length>0\\\">\\n    <div class=\\\"\\\">\\n      <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n        <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n          <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n            {{row}}\\n          </mat-option>\\n        </mat-select>\\n      </mat-form-field>\\n    </div>\\n\\n\\n    <div class=\\\"\\\">\\n\\n      <!-- style=\\\"margin-top: -50px\\\" -->\\n      <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n    </div>\\n  </div>\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<div *ngIf=\\\"data !== 'new' && data !== 'edit' && data!='log'&& data !== 'progress' &&  data !== 'status'\\\">\\r\\n  <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n  <mat-dialog-actions align=\\\"center\\\">\\r\\n    <div *ngIf=\\\"condition\\\">\\r\\n      <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n      <!-- Can optionally provide a result for the closing dialog. -->\\r\\n      <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n    </div>\\r\\n    <div *ngIf=\\\"!condition &&  data !== 'progress' &&  data !== 'status'\\\">\\r\\n      <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n        <div class=\\\"item item-3 \\\">\\r\\n          <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n\\r\\n<div *ngIf=\\\"data === 'new' || data === 'edit'\\\">\\r\\n  <br>\\r\\n  <div class=\\\"XBtn\\\">\\r\\n    <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">&times;</span>\\r\\n  </div>\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowheading\\\">\\r\\n      <h4 class=\\\"alignheader\\\"><b>{{data | titlecase}} Category</b></h4>\\r\\n\\r\\n    </div>\\r\\n  </div>\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowwrapper\\\">\\r\\n      <div id=\\\"RowtableActions\\\">\\r\\n        <div id=\\\"field\\\">\\r\\n\\r\\n          <mat-form-field>\\r\\n\\r\\n\\r\\n            <mat-placeholder>Main Category <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n            <mat-select [(ngModel)]=\\\"MainCategory\\\" (selectionChange)=\\\"mainChange($event)\\\">\\r\\n              <mat-option *ngFor=\\\"let data of mainCategoryData;let i=index;\\\" [value]=\\\"data.MainCategoryID\\\">\\r\\n                {{data.MainCategory}}\\r\\n\\r\\n              </mat-option>\\r\\n            </mat-select>\\r\\n          </mat-form-field>\\r\\n\\r\\n          <!-- <input matInput autocomplete=\\\"off\\\"  maxlength=\\\"100\\\" [(ngModel)]=\\\"MainCategory\\\"\\r\\n                    value=\\\"\\\">\\r\\n                    <mat-placeholder>Main Category <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder> -->\\r\\n\\r\\n        </div>\\r\\n        <div id=\\\"field\\\">\\r\\n\\r\\n          <mat-form-field>\\r\\n            <input matInput autocomplete=\\\"off\\\" maxlength=\\\"100\\\" [(ngModel)]=\\\"SubCategory\\\" value=\\\"\\\">\\r\\n            <mat-placeholder>Sub Category <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n          </mat-form-field>\\r\\n        </div>\\r\\n\\r\\n\\r\\n      </div>\\r\\n    </div>\\r\\n  </div>\\r\\n\\r\\n\\r\\n\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowwrapper\\\">\\r\\n      <div id=\\\"RowtableActions\\\">\\r\\n        <div id=\\\"buttonview\\\">\\r\\n          <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"AddMetCategory()\\\" [disabled]=\\\"btnDisabled\\\"><span\\r\\n              *ngIf=\\\"data === 'new'\\\">Save</span><span *ngIf=\\\"data === 'edit'\\\">Update</span></button>\\r\\n        </div>\\r\\n        <div id=\\\"buttonview\\\">\\r\\n          <button mat-accent class=\\\"addButtons btn\\\" (click)='Clear()'>Cancel</button>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </div>\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n  <br>\\r\\n  <mat-dialog-content class=\\\"warningMsg\\\">{{dataSelf}}</mat-dialog-content>\\r\\n  <mat-dialog-content class=\\\"successMsg\\\"></mat-dialog-content>\\r\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n<div class=\\\"row\\\" id=\\\"container\\\">\\n  <div class=\\\"\\\" id=\\\"heading\\\">\\n    <h4 style=\\\"white-space: nowrap;\\\">Metric Table</h4>\\n  </div>\\n  <div id=\\\"wrapper\\\">\\n    <div id=\\\"tableActions\\\">\\n      <div class=\\\"\\\" id=\\\"search\\\" *ngIf=\\\"!disableSearch\\\">\\n        <mat-form-field style=\\\"margin-top: -5px;\\\" id=\\\"searchField\\\">\\n          <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n          <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\"\\n            [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n        </mat-form-field>\\n      </div>\\n      <div class=\\\"\\\" id=\\\"excelBtn\\\" *ngIf=\\\"!disableSearch\\\">\\n        <button class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top:11px;cursor: pointer;\\\" [disabled]=\\\"isDisable\\\"\\n          matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">\\n\\n          Excel\\n        </button>\\n      </div>\\n      <div class=\\\"\\\" id=\\\"createBtn\\\">\\n        <button class=\\\"darkbtnbg btn btn-info\\\" (click)='addData()' [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\"\\n          style=\\\"float: right;margin-top: 11px;margin-bottom: 10px;\\\" matTooltip=\\\"New category\\\">New </button>\\n      </div>\\n    </div>\\n  </div>\\n</div>\\n\\n<!-- \\n<div class=\\\"container\\\" style=\\\"margin-top: -10px\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\n        <div class=\\\"col-lg-8\\\">\\n          <div class=\\\"item item-5 alignLeft\\\" fxFlex=\\\"45%\\\">\\n              <h4>Metric Table</h4>\\n          </div>\\n        </div>\\n          <div class=\\\"item item-1\\\" fxFlex=\\\"25%\\\" fxFlexOrder=\\\"1\\\">\\n          \\n          </div>\\n          <div class=\\\"item item-1\\\" fxFlex=\\\"30%\\\" fxFlexOrder=\\\"2\\\" *ngIf=\\\"!disableSearch\\\">\\n                \\n              <mat-form-field style=\\\"width: 180px\\\">\\n                  <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n                  <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\" [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\"> \\n                </mat-form-field>\\n          </div>\\n      \\n             \\n        <div class=\\\"item item-5\\\" fxFlex=\\\"12%\\\" fxFlexOrder=\\\"3\\\" *ngIf=\\\"!isDisable\\\">\\n            <button  class=\\\"darkbtnbg btn btn-info\\\" [disabled]=\\\"isDisable\\\" matTooltip=\\\"Export As Excel\\\" style=\\\"cursor: pointer;margin-top: 10px;\\\" (click)=\\\"exportAsXLSX()\\\">\\n             \\n              Excel\\n            </button>&nbsp;&nbsp;\\n      \\n        </div>\\n          <div class=\\\"item item-5\\\" fxFlex=\\\"11%\\\" fxFlexOrder=\\\"3\\\">\\n            <button mat-raised-button color=\\\"primary\\\" (click)='OpenTeam()' [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\" style=\\\"float: right;margin-top: 10px;margin-bottom: 10px;\\\" class=\\\"addButtons\\\" matTooltip=\\\"New Team\\\">NEW </button>\\n          </div>\\n           <div class=\\\"item item-5\\\" fxFlex=\\\"11%\\\" fxFlexOrder=\\\"3\\\">\\n            <button  class=\\\"darkbtnbg btn btn-info\\\" (click)='addData()' [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\"  style=\\\"float: right;margin-top: 10px;margin-bottom: 10px;\\\"  matTooltip=\\\"New Category\\\">New </button>\\n            \\n          </div>\\n          <div class=\\\"item item-5\\\" fxFlex=\\\"21%\\\" fxFlexOrder=\\\"3\\\">\\n            \\n            <button mat-raised-button color=\\\"primary\\\" (click)='AddSubCategory()'  style=\\\"float: right;margin-top: 10px;margin-bottom: 10px;\\\"  class=\\\"addButtons\\\" matTooltip=\\\"New Sub Category\\\">New Sub Category </button>\\n          </div>\\n          \\n       \\n        </div> -->\\n\\n<div>\\n  <div class=\\\"tableDiv\\\">\\n    <table>\\n      <thead>\\n        <tr>\\n\\n          <th cName class=\\\"pointer\\\" (click)=\\\"sort('MainCategory')\\\"> Main Category\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n\\n          <th cName class=\\\"pointer\\\" (click)=\\\"sort('SubCategory')\\\"> Sub Category\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n\\n          <th action>Action</th>\\n        </tr>\\n      </thead>\\n      <tbody\\n        *ngFor=\\\"let element of mainData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n\\n        <tr *ngIf=\\\"element.SubCategory.length>0\\\">\\n\\n          <td> {{element.MainCategory}}</td>\\n          <!-- <td>{{element.SubCategory}}</td> -->\\n          <td>\\n            <table>\\n              <tr *ngFor=\\\"let data of element.SubCategory\\\">\\n                <td>{{data}}</td>\\n              </tr>\\n            </table>\\n          </td>\\n          <td>\\n            <table>\\n              <tr *ngFor=\\\"let data of element.SubCategory;let i=index;\\\">\\n                <td style=\\\" cursor:pointer;\\\">\\n                  <span>\\n                    <a matTooltip=\\\"Edit metric data\\\" (click)=\\\"EditMetricData(element,data,element.RowID[i])\\\"\\n                      [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\n                      [ngClass]=\\\"{'removeColor':(!(MenuPermissions[menuName][menuID]['U'])),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\"><i\\n                        style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a matTooltip=\\\"Delete sub category\\\"\\n                      (click)=\\\"DeleteMetricData(element,data,element.RowID[i])\\\"\\n                      [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['D'] )?'none':'auto'\\\"\\n                      [ngClass]=\\\"{'removeColor':(!(MenuPermissions[menuName][menuID]['D']) ),'AddColor':(MenuPermissions[menuName][menuID]['D'])}\\\"><i\\n                        style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n                  </span>\\n                </td>\\n              </tr>\\n            </table>\\n\\n          </td>\\n          <!-- <td>\\n                  <a matTooltip=\\\"Add sub category\\\" (click)=\\\"AddSubCategory(element,data,element.RowID[i])\\\"  ><i style=\\\"cursor: pointer;\\\" class=\\\"fa fa-plus \\\" aria-hidden=\\\"true\\\"></i></a> \\n                <a matTooltip=\\\"Delete Main Category\\\" (click)=\\\"DeleteMainCategoryData(element,data,element.RowID[i])\\\"  ><i  style=\\\"cursor: pointer;\\\"class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n                </td> -->\\n        </tr>\\n      </tbody>\\n\\n    </table>\\n    <br>\\n\\n    <div class=\\\"warningMsg\\\" *ngIf=\\\"(mainData === null||mainData===undefined || mainData.length === 0)\\\">\\n\\n      <span>No data available</span>\\n\\n    </div>\\n  </div>\\n  <div class=\\\"pageContainer\\\" *ngIf=\\\"kpiPaging && mainData.length>0\\\">\\n\\n    <div class=\\\"rowsSelection\\\">\\n      <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n        <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n          <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n            {{row}}\\n          </mat-option>\\n        </mat-select>\\n      </mat-form-field>\\n    </div>\\n\\n\\n    <div class=\\\"pageSelection\\\">\\n\\n      <!-- style=\\\"margin-top: -50px\\\" -->\\n      <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n    </div>\\n  </div>\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n\\n<style>\\n  @media screen {\\n    .donotprintthis1 {\\n      display: none;\\n    }\\n\\n    .donotprintthis {\\n      display: block;\\n    }\\n  }\\n\\n  @media print {\\n    h5 {\\n      text-align: center;\\n    }\\n\\n    .donotprintthis1 {\\n      display: block;\\n    }\\n\\n    .donotprintthis {\\n      display: none;\\n    }\\n  }\\n</style>\\n<div class=\\\"reportHead\\\">\\n  <div class=\\\"reportName\\\">\\n    <h5>Processes with no Metrics</h5>\\n  </div>\\n  <div class=\\\"reportActions\\\">\\n    <div class=\\\"selectTeam\\\" *ngIf=\\\" (EmployeeID=='0' || employeeDetails.IsEmployeeLoginLevel=='Company') \\\">\\n      <mat-form-field>\\n        <mat-label> Select Type <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\n        <mat-select (selectionChange)=\\\"reportTypeChange($event.value)\\\" [(ngModel)]=\\\"selectedReportType\\\">\\n          <mat-option *ngFor=\\\"let scoreCardType of scoreCardTypes;\\\" [value]=\\\"scoreCardType\\\">\\n            {{scoreCardType}}\\n          </mat-option>\\n        </mat-select>\\n      </mat-form-field>\\n    </div>\\n    <div class=\\\"selectTeam\\\" *ngIf=\\\" !toggleTeam &&(EmployeeID=='0' || employeeDetails.IsEmployeeLoginLevel=='Company')\\\">\\n      <mat-form-field>\\n        <mat-label> Select Department <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\n        <mat-select (selectionChange)=\\\"departmentChange($event.value)\\\" [(ngModel)]=\\\"selectedDepartmentId\\\">\\n          <mat-option *ngFor=\\\"let dept of departmentList;\\\" [value]=\\\"dept.DepartmentID\\\">\\n            {{dept.DepartmentName}}\\n          </mat-option>\\n        </mat-select>\\n      </mat-form-field>\\n    </div>\\n    <div class=\\\"selectTeam\\\" *ngIf=\\\"toggleTeam && teamData && teamData.length > 0\\\">\\n      <mat-form-field>\\n        <mat-label> Select Team <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\n        <mat-select (selectionChange)=\\\"teamChange($event)\\\" [(ngModel)]=\\\"TeamID\\\">\\n          <mat-option *ngFor=\\\"let team of teamData;\\\" [value]=\\\"team.TeamID\\\">\\n            {{team.TeamName}}\\n          </mat-option>\\n        </mat-select>\\n      </mat-form-field>\\n    </div>\\n    <div class=\\\"searchField\\\" *ngIf=\\\"!disableSearch\\\">\\n      <div class=\\\"item item-1\\\">\\n        <mat-form-field>\\n          <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n          <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\"\\n            [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n        </mat-form-field>\\n      </div>\\n    </div>\\n    <div class=\\\"printBtn\\\" *ngIf=\\\"!isDisable\\\">\\n      <div class=\\\"item item-5\\\">\\n        <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Print report\\\" printSectionId=\\\"printNoMetric\\\"\\n          printTitle=\\\"{{companyName}}\\\" [useExistingCss]=\\\"true\\\" ngxPrint>Print</button>\\n      </div>\\n    </div>\\n    <div class=\\\"excelBtn\\\" *ngIf=\\\"!isDisable\\\">\\n      <div class=\\\"item item-5\\\">\\n        <button class=\\\"darkbtnbg btn btn-info\\\" [disabled]=\\\"isDisable\\\" matTooltip=\\\"Export as excel\\\"\\n          (click)=\\\"exportAsXLSX()\\\">\\n          Excel\\n        </button>\\n      </div>\\n    </div>\\n  </div>\\n</div>\\n<!-- ---------------------------Printing the report------------------------- -->\\n<div id=\\\"printNoMetric\\\">\\n  <div class=\\\"donotprintthis1\\\">\\n    <div style=\\\"text-align:center;margin-top: 15px;\\\">\\n      <h6>\\n        <span> Company - </span> {{companyName}} <br>\\n        <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\n        <span *ngIf=\\\"!selectedReportType || selectedReportType == 'Team'\\\">Team: {{TeamName ? TeamName : 'Aggregate\\n          Report'}}</span>\\n        <span *ngIf=\\\"selectedReportType == 'Department'\\\">Department: {{departmentName ? departmentName : 'Aggregate\\n          Report'}}</span><br>\\n        <span>Report Type : Processes with no Metrics</span>\\n      </h6>\\n    </div>\\n  </div>\\n  <div class=\\\"tableDiv\\\">\\n    <table id=\\\"dtBasicExample\\\">\\n      <thead>\\n        <tr>\\n          <th>No.</th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('CompanyName')\\\"> Company\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th class=\\\"pointer\\\" *ngIf=\\\"selectedReportType === 'Department'\\\" (click)=\\\"sort('DepartmentName')\\\">\\n            Department\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('ProcessName')\\\"> Process\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th cName class=\\\"pointer\\\" (click)=\\\"sort('ProcessDescription')\\\"> Description\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n        </tr>\\n      </thead>\\n      <tbody>\\n        <tr\\n          *ngFor=\\\"let element of filterData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n          <td>{{i+1}}</td>\\n          <td> {{element.CompanyName}}</td>\\n          <td *ngIf=\\\"selectedReportType === 'Department'\\\">{{element.DepartmentName}}</td>\\n          <td>{{element.TeamName}}</td>\\n          <td> {{element.ProcessName}}</td>\\n          <td> {{element.ProcessDescription}}</td>\\n        </tr>\\n      </tbody>\\n    </table><br>\\n    <div class=\\\"warningMsg\\\" *ngIf=\\\"(filterData === null||filterData===undefined || filterData.length === 0)\\\">\\n      <span>No data available</span>\\n    </div>\\n  </div>\\n  <div class=\\\"donotprintthis1\\\" style=\\\" position: fixed; bottom: 0;\\n    font-size: 13px;\\n    margin-left: 35%;\\\">\\n    <label>{{copyRight}}</label>\\n  </div>\\n</div>\\n<div class=\\\"pageContainer\\\" *ngIf=\\\"processPaging &&filterData.length>0\\\">\\n  <div class=\\\"rowsSelection\\\">\\n    <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n      <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n        <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n          {{row}}\\n        </mat-option>\\n      </mat-select>\\n    </mat-form-field>\\n  </div>\\n  <div class=\\\"pageSelection\\\">\\n    <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n  </div>\\n</div>\\n\"","module.exports = \"<link href=\\\"./assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n\\r\\n<div\\r\\n  *ngIf=\\\"data !== 'new' && data !== 'edit' && data!='log'&& data !== 'progress' &&  data !== 'status' && !userVisible\\\">\\r\\n  <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n  <mat-dialog-actions align=\\\"center\\\">\\r\\n    <div *ngIf=\\\"condition\\\">\\r\\n      <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n      <!-- Can optionally provide a result for the closing dialog. -->\\r\\n      <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n    </div>\\r\\n    <div *ngIf=\\\"!condition &&  data !== 'progress' &&  data !== 'status' && !userVisible\\\">\\r\\n      <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n        <div class=\\\"item item-3 \\\">\\r\\n          <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n<div *ngIf=\\\"data === 'new' || data === 'edit' && !userVisible && data!= 'user'\\\">\\r\\n  <br>\\r\\n\\r\\n  <div class=\\\"XBtn\\\">\\r\\n    <span (click)=\\\"clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">&times;</span>\\r\\n  </div>\\r\\n\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowheading\\\">\\r\\n      <h4 class=\\\"alignheader\\\"><b><span *ngIf=\\\"data === 'new'\\\">Add </span>{{data | titlecase}} Organization</b></h4>\\r\\n      <!-- <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">&times;</span> -->\\r\\n    </div>\\r\\n  </div>\\r\\n\\r\\n  <div class=\\\"inputFields\\\">\\r\\n    <div id=\\\"field1\\\">\\r\\n      <mat-form-field>\\r\\n        <input matInput autocomplete=\\\"off\\\" (keyup)=\\\"validate()\\\" maxlength=\\\"50\\\" id=\\\"lblCompanyName\\\"\\r\\n          [(ngModel)]=\\\"organizationDetails.OrganizationName\\\" value=\\\"\\\">\\r\\n        <mat-placeholder>Organization Name <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div id=\\\"field2\\\">\\r\\n      <mat-form-field>\\r\\n        <input matInput autocomplete=\\\"off\\\" maxlength=\\\"30\\\" id=\\\"lblFirstName\\\" [(ngModel)]=\\\"organizationDetails.FirstName\\\"\\r\\n          value=\\\"\\\">\\r\\n        <mat-placeholder>User First Name <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div id=\\\"field3\\\">\\r\\n      <mat-form-field>\\r\\n        <input matInput autocomplete=\\\"off\\\" maxlength=\\\"30\\\" id=\\\"lblLastName\\\" [(ngModel)]=\\\"organizationDetails.LastName\\\"\\r\\n          value=\\\"\\\">\\r\\n        <mat-placeholder>User Last Name <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div id=\\\"fiel4\\\">\\r\\n      <mat-form-field>\\r\\n        <textarea matInput autocomplete=\\\"off\\\" maxlength=\\\"200\\\" id=\\\"lblAddress1\\\"\\r\\n          [(ngModel)]=\\\"organizationDetails.Address1\\\" value=\\\"\\\"></textarea>\\r\\n        <mat-placeholder>Address Line 1 <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div id=\\\"field5\\\">\\r\\n      <mat-form-field>\\r\\n        <textarea matInput placeholder=\\\"Address Line 2\\\" autocomplete=\\\"off\\\" maxlength=\\\"200\\\" id=\\\"lblAddress2\\\"\\r\\n          [(ngModel)]=\\\"organizationDetails.Address2\\\" value=\\\"\\\"></textarea>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div id=\\\"field6\\\">\\r\\n      <mat-form-field>\\r\\n        <input matInput autocomplete=\\\"off\\\" maxlength=\\\"50\\\" id=\\\"lblCountry\\\" [(ngModel)]=\\\"organizationDetails.Country\\\"\\r\\n          value=\\\"\\\" (keypress)=\\\"isAlpha($event)\\\">\\r\\n        <mat-placeholder>Country <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div id=\\\"field7\\\">\\r\\n      <mat-form-field>\\r\\n        <input matInput maxlength=\\\"50\\\" id=\\\"lblState\\\" [(ngModel)]=\\\"organizationDetails.State\\\" value=\\\"\\\"\\r\\n          (keypress)=\\\"isAlpha($event)\\\">\\r\\n        <mat-placeholder>State <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div id=\\\"field8\\\">\\r\\n      <mat-form-field>\\r\\n        <input matInput autocomplete=\\\"off\\\" maxlength=\\\"50\\\" id=\\\"lblCity\\\" [(ngModel)]=\\\"organizationDetails.City\\\" value=\\\"\\\"\\r\\n          (keypress)=\\\"isAlpha($event)\\\">\\r\\n        <mat-placeholder>City <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div id=\\\"field9\\\">\\r\\n      <mat-form-field>\\r\\n        <input matInput autocomplete=\\\"off\\\" onpaste=\\\"return false\\\" oncut=\\\"return false\\\"\\r\\n          (keypress)=\\\"validatePhone($event)\\\" minlength=\\\"5\\\" maxlength=\\\"5\\\" id=\\\"lblPincode\\\"\\r\\n          [(ngModel)]=\\\"organizationDetails.Pincode\\\" value=\\\"\\\">\\r\\n        <mat-placeholder>Zipcode <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div id=\\\"field10\\\">\\r\\n      <mat-form-field>\\r\\n        <input matInput (keypress)=\\\"validatePhone($event)\\\" (blur)=\\\"valZero()\\\" onpaste=\\\"return false\\\"\\r\\n          oncut=\\\"return false\\\" autocomplete=\\\"off\\\" maxlength=\\\"16\\\" id=\\\"lblPhone\\\" [(ngModel)]=\\\"organizationDetails.Phone\\\"\\r\\n          value=\\\"\\\">\\r\\n        <mat-placeholder>Phone <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n\\r\\n    <div id=\\\"field11\\\">\\r\\n      <mat-form-field>\\r\\n        <input matInput (keypress)=\\\"validateEmail($event)\\\" autocomplete=\\\"off\\\" maxlength=\\\"50\\\" id=\\\"lblEmail\\\"\\r\\n          [(ngModel)]=\\\"organizationDetails.Email\\\" value=\\\"\\\">\\r\\n        <mat-placeholder>Email<span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n\\r\\n    <div id=\\\"field12\\\">\\r\\n      <mat-form-field>\\r\\n        <input matInput autocomplete=\\\"off\\\" maxlength=\\\"500\\\" id=\\\"lblDescription\\\"\\r\\n          [(ngModel)]=\\\"organizationDetails.OrganizationDescription\\\" value=\\\"\\\">\\r\\n        <mat-placeholder>Description<span style=\\\"color:red; font-size: 16px;\\\"></span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div id=\\\"field13\\\">\\r\\n      <mat-form-field>\\r\\n        <input matInput autocomplete=\\\"off\\\" numbersOnly id=\\\"lblNoOfLicenses\\\"\\r\\n          [(ngModel)]=\\\"organizationDetails.NoOfLicenses\\\" min=\\\"0\\\" maxlength=\\\"10\\\"\\r\\n          oninput=\\\"this.value = this.value.replace(/[^0-9]/g, '').replace(/(\\\\..*)\\\\./g, '$1');\\\">\\r\\n        <mat-placeholder>No. Of Licenses<span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n  </div>\\r\\n\\r\\n  <h4 class=\\\"alignheader\\\" id=\\\"headingAdmin\\\"><b>Admin details</b></h4>\\r\\n\\r\\n  <div class=\\\"loginField\\\">\\r\\n    <div id=\\\"field14\\\">\\r\\n      <mat-form-field>\\r\\n        <input matInput autocomplete=\\\"off\\\" maxlength=\\\"50\\\" id=\\\"lblUserName\\\" [(ngModel)]=\\\"organizationDetails.UserName\\\"\\r\\n          value=\\\"\\\">\\r\\n        <mat-placeholder>UserName <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div id=\\\"field15\\\">\\r\\n      <mat-form-field>\\r\\n        <input matInput type=\\\"password\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\" [(ngModel)]=\\\"organizationDetails.Password\\\"\\r\\n          value=\\\"\\\">\\r\\n        <mat-placeholder>Password <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n  </div>\\r\\n  <!-- <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowwrapper\\\">\\r\\n       <div id=\\\"RowtableAction\\\">\\r\\n          <div id=\\\"field\\\">\\r\\n            <mat-form-field>\\r\\n                <input matInput autocomplete=\\\"off\\\"  maxlength=\\\"50\\\" id=\\\"lblEmail\\\" [(ngModel)]=\\\"UserName\\\" value=\\\"\\\">\\r\\n                <mat-placeholder>UserName <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n            </mat-form-field>\\r\\n          </div>\\r\\n          <div id=\\\"field\\\">\\r\\n              <mat-form-field >\\r\\n                <input matInput type=\\\"password\\\" autocomplete=\\\"off\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\"  [(ngModel)]=\\\"Password\\\" value=\\\"\\\">\\r\\n                <mat-placeholder>Password <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n              </mat-form-field>\\r\\n           </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </div> -->\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowwrapper\\\">\\r\\n      <div id=\\\"RowtableActions\\\">\\r\\n        <div id=\\\"buttonview\\\">\\r\\n          <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"validateOrganization();\\\" [disabled]=\\\"btnDisabled\\\"><span\\r\\n              *ngIf=\\\"data === 'new'\\\">Save</span><span *ngIf=\\\"data === 'edit'\\\">Update</span></button>\\r\\n        </div>\\r\\n        <div id=\\\"buttonview\\\">\\r\\n          <button mat-accent class=\\\"addButtons btn\\\" (click)='clear()'>Cancel</button>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </div>\\r\\n\\r\\n\\r\\n  <div *ngIf=\\\"data === 'user' && userVisible\\\">\\r\\n    <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n      <div id=\\\"Rowwrapper\\\">\\r\\n        <div id=\\\"RowtableAction\\\">\\r\\n          <div id=\\\"field\\\">\\r\\n            <mat-form-field style=\\\"margin-top: 10px\\\">\\r\\n              <input matInput autocomplete=\\\"off\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\" [(ngModel)]=\\\"UserName\\\" value=\\\"\\\">\\r\\n              <mat-placeholder>Username <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n            </mat-form-field>\\r\\n          </div>\\r\\n          <div id=\\\"field\\\">\\r\\n            <mat-form-field style=\\\"margin-top: 10px\\\">\\r\\n              <input matInput type=\\\"password\\\" autocomplete=\\\"off\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\"\\r\\n                [(ngModel)]=\\\"Password\\\" value=\\\"\\\">\\r\\n              <mat-placeholder>Password <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n            </mat-form-field>\\r\\n          </div>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n\\r\\n    <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n      <div id=\\\"Rowwrapper\\\">\\r\\n        <div id=\\\"RowtableActions\\\">\\r\\n          <div id=\\\"buttonview\\\">\\r\\n            <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"SaveUser()\\\">Save</button>\\r\\n          </div>\\r\\n          <div id=\\\"buttonview\\\">\\r\\n            <button mat-accent class=\\\"addButtons btn\\\" (click)='clear()'>Cancel</button>\\r\\n          </div>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </div>\\r\\n  <mat-dialog-content class=\\\"warningMsg\\\">{{dataSelf}}</mat-dialog-content>\\r\\n  <mat-dialog-content class=\\\"successMsg\\\"></mat-dialog-content>\"","module.exports = \"<link href=\\\"./assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n<div class=\\\"row\\\" id=\\\"container\\\">\\n  <div class=\\\"\\\" id=\\\"heading\\\">\\n    <h4>Organization</h4>\\n  </div>\\n  <div id=\\\"wrapper\\\">\\n    <div id=\\\"tableActions\\\">\\n      <div class=\\\"\\\" id=\\\"search\\\">\\n        <mat-form-field style=\\\"margin-top: -5px;\\\" id=\\\"searchField\\\">\\n          <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n          <input matInput id=\\\"newGroup\\\" name=\\\"search\\\" (keyup)=\\\"searchText()\\\" [disabled]=\\\"isSearchDisable\\\"\\n            [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n        </mat-form-field>\\n      </div>\\n      <div class=\\\"\\\" id=\\\"excelBtn\\\" *ngIf=\\\"!disableSearch\\\">\\n        <button class=\\\"darkbtnbg btn btn-info\\\" [disabled]=\\\"isDisable\\\" matTooltip=\\\"Export as excel\\\"\\n          style=\\\"margin-top:11px;cursor: pointer;\\\" (click)=\\\"exportAsXLSX()\\\">\\n          <!-- <i class='fa fa-file-excel-o'></i> -->\\n          Excel\\n        </button>\\n      </div>\\n      <div class=\\\"\\\" id=\\\"createBtn\\\">\\n        <button mat-accent class=\\\"darkbtnbg btn btn-info\\\" (click)='newOrganiation()' style=\\\"margin-top: 11px;\\\"\\n          matTooltip=\\\"New Organization\\\">New </button>\\n      </div>\\n    </div>\\n  </div>\\n</div>\\n<div>\\n  <div class=\\\"tableDiv\\\">\\n    <table>\\n      <thead>\\n        <tr>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('OrganizationName')\\\"> Organization\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('Email')\\\"> Email\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('Phone')\\\"> Phone\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('NoOfLicenses')\\\"> No Of Licences\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th action>Action</th>\\n        </tr>\\n      </thead>\\n      <tbody>\\n        <!---->\\n        <tr\\n          *ngFor=\\\"let org of organization | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\"\\n          id=\\\"trRow\\\">\\n          <td> {{org.OrganizationName}}</td>\\n          <td>{{org.Email}} </td>\\n          <td> {{org.Phone}} </td>\\n          <td>{{org.NoOfLicenses}}</td>\\n          <td style=\\\"cursor:pointer;\\\">\\n            <!-- $event.stopPropagation(); -->\\n            <span>\\n              <a matTooltip=\\\"View Entities\\\" (click)=\\\"viewCompanies(org)\\\">\\n                <i style=\\\"cursor: pointer;\\\" class=\\\"fa fa-eye \\\" aria-hidden=\\\"true\\\"></i>\\n              </a>&nbsp;&nbsp;&nbsp;\\n              <a matTooltip=\\\"Edit Organization\\\" class=\\\"fontLabel\\\" (click)=\\\"editOrganization(org)\\\"><i\\n                  style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n\\n\\n              &nbsp;&nbsp;&nbsp; <a matTooltip=\\\"Delete Organization\\\" class=\\\"fontLabel\\\"\\n                (click)=\\\"deleteOrganization(org)\\\">\\n                <i style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n\\n              &nbsp;&nbsp;&nbsp; <a matTooltip=\\\"Add user\\\" style=\\\"display: none;\\\" (click)=\\\"AddUser(element)\\\"><i\\n                  class=\\\" fa fa-user\\\" aria-hidden=\\\"true\\\"></i></a>\\n              <!--  -->\\n\\n            </span>\\n          </td>\\n\\n        </tr>\\n      </tbody>\\n\\n    </table>\\n    <br>\\n    <div class=\\\"warningMsg\\\" *ngIf=\\\"(organization === null||organization===undefined || organization.length === 0)\\\">\\n      <span>No data available</span>\\n    </div>\\n  </div>\\n  <div class=\\\"pageContainer\\\" *ngIf=\\\"companyPaging && organization.length>0\\\">\\n\\n    <div class=\\\"rowsSelection\\\">\\n      <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n        <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n          <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n            {{row}}\\n          </mat-option>\\n        </mat-select>\\n      </mat-form-field>\\n    </div>\\n\\n\\n    <div class=\\\"pageSelection\\\">\\n\\n      <!-- style=\\\"margin-top: -50px\\\" -->\\n      <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n    </div>\\n  </div>\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n\\n<style>\\n  @media screen {\\n    .donotprintthis1 {\\n      display: none;\\n    }\\n\\n    .donotprintthis {\\n\\n      display: block;\\n\\n    }\\n  }\\n\\n  @media print {\\n    h5 {\\n      text-align: center;\\n    }\\n\\n    .donotprintthis1 {\\n\\n      display: block;\\n\\n    }\\n\\n    .donotprintthis {\\n\\n      display: none;\\n\\n    }\\n  }\\n</style>\\n<div class=\\\"reportHead\\\">\\n  <div class=\\\"reportName\\\">\\n    <h5> Other Category Frustrations</h5>\\n  </div>\\n  <div class=\\\"reportActions\\\">\\n\\n    <div class=\\\"selectTeam\\\" *ngIf=\\\"(EmployeeID=='0' || employeeDetails.IsEmployeeLoginLevel=='Company')\\\">\\n      <mat-form-field>\\n        <mat-label> Select Type <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\n        <mat-select (selectionChange)=\\\"reportTypeChange($event.value)\\\" [(ngModel)]=\\\"selectedReportType\\\">\\n          <mat-option *ngFor=\\\"let scoreCardType of scoreCardTypes;\\\" [value]=\\\"scoreCardType\\\">\\n            {{scoreCardType}}\\n          </mat-option>\\n        </mat-select>\\n      </mat-form-field>\\n    </div>\\n\\n    <div class=\\\"selectTeam\\\" *ngIf=\\\" !toggleTeam &&(EmployeeID=='0' || employeeDetails.IsEmployeeLoginLevel=='Company')\\\">\\n      <mat-form-field>\\n        <mat-label> Select Department <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\n        <mat-select (selectionChange)=\\\"departmentChange($event.value)\\\" [(ngModel)]=\\\"selectedDepartmentId\\\">\\n          <mat-option *ngFor=\\\"let dept of departmentList;\\\" [value]=\\\"dept.DepartmentID\\\">\\n            {{dept.DepartmentName}}\\n          </mat-option>\\n        </mat-select>\\n      </mat-form-field>\\n    </div>\\n    <div class=\\\"selectTeam\\\" *ngIf=\\\"toggleTeam && teamData && teamData.length>0\\\">\\n      <mat-form-field>\\n        <mat-label> Select Team <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\n        <mat-select (selectionChange)=\\\"teamChange($event)\\\" [(ngModel)]=\\\"TeamID\\\">\\n          <mat-option *ngFor=\\\"let team of teamData;\\\" [value]=\\\"team.TeamID\\\">\\n            {{team.TeamName}}\\n          </mat-option>\\n        </mat-select>\\n      </mat-form-field>\\n    </div>\\n    <div class=\\\"searchField\\\" *ngIf=\\\"!disableSearch\\\">\\n      <div class=\\\"item item-1\\\">\\n\\n        <mat-form-field>\\n          <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n          <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\"\\n            [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n        </mat-form-field>\\n      </div>\\n    </div>\\n    <div class=\\\"printBtn\\\" *ngIf=\\\"!isDisable\\\">\\n      <!-- <i class='fa fa-print'></i> -->\\n      <div class=\\\"item item-5\\\">\\n        <button class=\\\"darkbtnbg btn btn-info\\\" printTitle=\\\"{{companyName}}\\\" matTooltip=\\\"Print report\\\"\\n          printSectionId=\\\"printOtherFrust\\\" [useExistingCss]=\\\"true\\\" ngxPrint>Print</button>\\n        <!-- <button  mat-raised-button color=\\\"primary\\\" [disabled]=\\\"isDisable\\\" matTooltip=\\\"Export As Excel\\\" style=\\\"margin-top:10px;cursor: pointer;\\\" (click)=\\\"exportAsXLSX()\\\"> -->\\n        <!-- <i class='fa fa-file-excel-o'></i> -->\\n        <!-- Excel\\n          </button>&nbsp;&nbsp; -->\\n\\n      </div>\\n    </div>\\n    <div class=\\\"excelBtn\\\" *ngIf=\\\"!isDisable\\\">\\n      <div class=\\\"item item-5\\\">\\n        <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">\\n\\n          Excel\\n        </button>\\n\\n\\n      </div>\\n    </div>\\n  </div>\\n</div>\\n\\n\\n\\n<!-- ---------------------------Printing the report------------------------- -->\\n<div id=\\\"printOtherFrust\\\">\\n\\n  <div class=\\\"donotprintthis1\\\">\\n    <div style=\\\"text-align:center;margin-top: 15px;\\\">\\n      <h6>\\n        <span> Company - </span> {{companyName}} <br>\\n        <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\n        <span *ngIf=\\\"!selectedReportType || selectedReportType == 'Team'\\\">Team: {{TeamName ? TeamName : 'Aggregate\\n          Report'}}</span>\\n        <span *ngIf=\\\"selectedReportType == 'Department'\\\">Department: {{departmentName ? departmentName : 'Aggregate\\n          Report'}}</span><br>\\n        <span>Report Type : Other Category Frustrations</span>\\n\\n      </h6>\\n\\n    </div>\\n  </div>\\n  <div class=\\\"tableDiv\\\">\\n    <table id=\\\"dtBasicExample\\\">\\n      <thead>\\n        <tr>\\n          <!--<th  class=\\\"pointer\\\"> Company </th>-->\\n          <th> No.</th>\\n          <th class=\\\"pointer\\\" *ngIf=\\\"selectedReportType === 'Department'\\\" (click)=\\\"sort('DepartmentName')\\\">\\n            Department\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th cName class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('ProcessName')\\\"> Process\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th cName class=\\\"pointer\\\" (click)=\\\"sort('ActivityName')\\\"> Activity\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n\\n          <!-- <th class=\\\"pointer\\\" (click)=\\\"sort('PointerID')\\\"> Issue Id\\n                <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n                <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th> -->\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('FrustrationsTypeName')\\\"> Type\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('Subject')\\\"> Frustration\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('Description')\\\"> Description\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectName')\\\"> Project Name\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('StatusName')\\\"> Status\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('SeverityName')\\\"> Severity\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n        </tr>\\n      </thead>\\n      <tbody>\\n        <!---->\\n        <tr\\n          *ngFor=\\\"let element of filterData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n          <!--<td > {{element.CompanyName}}</td>-->\\n          <td>{{i+1}}</td>\\n          <td *ngIf=\\\"selectedReportType === 'Department'\\\">\\n            {{element.DepartmentName}}\\n          </td>\\n          <td>{{element.TeamName}}</td>\\n          <td> {{element.ProcessName}}</td>\\n          <td> {{element.ActivityName}}</td>\\n\\n          <!-- \\n              <td> Issue-{{element.PointerID}}</td> -->\\n          <td>{{element.FrustrationsTypeName}}</td>\\n          <td> {{element.Subject}}</td>\\n          <td> {{element.Description}}</td>\\n          <td>{{element.ProjectName}}</td>\\n          <td>{{element.StatusName}}</td>\\n          <td>{{element.SeverityName}}</td>\\n        </tr>\\n      </tbody>\\n\\n    </table><br>\\n\\n    <!-- <mat-paginator [pageSizeOptions]=\\\"[5, 10, 20]\\\" showFirstLastButtons></mat-paginator> -->\\n    <div class=\\\"warningMsg\\\" *ngIf=\\\"(filterData === null||filterData===undefined || filterData.length === 0)\\\">\\n\\n      <span>No data available</span>\\n\\n\\n    </div>\\n  </div>\\n  <div class=\\\"donotprintthis1\\\" style=\\\" position: fixed; bottom: 0;\\n      font-size: 13px;\\n      margin-left: 35%;\\\">\\n    <label>{{copyRight}}</label>\\n  </div>\\n</div>\\n\\n\\n\\n<div class=\\\"pageContainer\\\" *ngIf=\\\"processPaging &&filterData.length>0\\\">\\n  <div class=\\\"rowsSelection\\\">\\n    <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n      <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n        <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n          {{row}}\\n        </mat-option>\\n      </mat-select>\\n    </mat-form-field>\\n  </div>\\n  <div class=\\\"pageSelection\\\">\\n    <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n  </div>\\n</div>\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<div>\\r\\n    <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n    <mat-dialog-actions align=\\\"center\\\">\\r\\n        <div *ngIf=\\\"condition\\\">\\r\\n            <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n            <!-- Can optionally provide a result for the closing dialog. -->\\r\\n            <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n        </div>\\r\\n        <!-- <div *ngIf=\\\"!condition &&  data !== 'progress' &&  data !== 'status'\\\">\\r\\n            <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\"\\r\\n                fxLayoutGap.xs=\\\"0\\\">\\r\\n                <div class=\\\"item item-3 \\\">\\r\\n                    <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n                </div>\\r\\n            </div>\\r\\n        </div> -->\\r\\n    </mat-dialog-actions>\\r\\n</div>\\r\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n<div class=\\\"text-center\\\">\\r\\n    <h5 class=\\\"text-underline\\\">Performance Score Card</h5>\\r\\n</div>\\r\\n<div *ngIf=\\\"!isViewScoreCard\\\">\\r\\n    <div id=\\\"wrapper\\\">\\r\\n        <div id=\\\"tableActions\\\">\\r\\n            <div class=\\\"field\\\">\\r\\n                <mat-form-field>\\r\\n                    <mat-label> Select Type <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\r\\n                    <mat-select (selectionChange)=\\\"scoreCardTypeChange($event.value)\\\"\\r\\n                        [(ngModel)]=\\\"selectedScoreCardType\\\"\\r\\n                        [disabled]=\\\"employeeDetails && employeeDetails.IsEmployeeLoginLevel=='Team'\\\">\\r\\n                        <mat-option *ngFor=\\\"let scoreCardType of scoreCardTypes;\\\" [value]=\\\"scoreCardType\\\">\\r\\n                            {{scoreCardType}}\\r\\n                        </mat-option>\\r\\n                    </mat-select>\\r\\n                </mat-form-field>\\r\\n            </div>\\r\\n            <div class=\\\"field\\\">\\r\\n                <mat-form-field>\\r\\n                    <mat-label> Select Department <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\r\\n                    <mat-select (selectionChange)=\\\"departmentChange($event.value)\\\" [(ngModel)]=\\\"selectedDepartmentId\\\">\\r\\n                        <mat-option *ngFor=\\\"let dept of departmentList;\\\" [value]=\\\"dept.DepartmentID\\\">\\r\\n                            {{dept.DepartmentName}}\\r\\n                        </mat-option>\\r\\n                    </mat-select>\\r\\n                </mat-form-field>\\r\\n            </div>\\r\\n            <div class=\\\"field\\\" *ngIf=\\\"toggleTeam\\\">\\r\\n                <mat-form-field>\\r\\n                    <mat-label> Select Team <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\r\\n                    <mat-select (selectionChange)=\\\"teamChange($event)\\\" [(ngModel)]=\\\"selectedTeamId\\\">\\r\\n                        <mat-option *ngFor=\\\"let team of teamList;\\\" [value]=\\\"team.TeamID\\\">\\r\\n                            {{team.TeamName}}\\r\\n                        </mat-option>\\r\\n                    </mat-select>\\r\\n                </mat-form-field>\\r\\n            </div>\\r\\n            <div class=\\\"field\\\">\\r\\n                <button class=\\\"darkbtnbg btn btn-info\\\" style='margin-top: 10px;' (click)='showMasterScoreCards()'\\r\\n                    matTooltip=\\\"Show Score Cards\\\">Show Score Cards\\r\\n                </button>\\r\\n            </div>\\r\\n            <div class=\\\"field\\\">\\r\\n\\r\\n                <button class=\\\"darkbtnbg btn btn-info\\\" style='margin-top: 10px;' (click)='openScoreCard()'\\r\\n                    matTooltip=\\\"New Score Card\\\"\\r\\n                    [disabled]=\\\"!MenuPermissions[menuName][menuID]['C'] || (employeeDetails && employeeDetails.IsEmployeeLoginLevel=='Team')\\\">New\\r\\n                </button>\\r\\n            </div>\\r\\n        </div>\\r\\n    </div>\\r\\n\\r\\n    <div class=\\\"tableDiv\\\">\\r\\n        <table>\\r\\n            <thead>\\r\\n                <tr>\\r\\n                    <th class=\\\"pointer\\\" (click)=\\\"sort('ScoreCardName')\\\"> Score Card Name\\r\\n                        <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n                        <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n                    </th>\\r\\n                    <th class=\\\"pointer\\\" (click)=\\\"sort('Year')\\\"> Year\\r\\n                        <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n                        <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n                    </th>\\r\\n                    <th class=\\\"pointer\\\" (click)=\\\"sort('QuarterName')\\\"> Quarter\\r\\n                        <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n                        <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n                    </th>\\r\\n\\r\\n                    <th>Action</th>\\r\\n                </tr>\\r\\n            </thead>\\r\\n            <tbody *ngIf=!IsViewScoreCard>\\r\\n                <ng-container\\r\\n                    *ngFor=\\\"let scoreCard of masterScoreCards | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\r\\n                    <tr (click)=\\\"$event.stopPropagation();\\\" style=\\\"cursor: pointer;\\\"\\r\\n                        [ngClass]=\\\"latestScoreCardId == scoreCard.Id && masterScoreCards.length > 0 ? 'current-quarter' : ''\\\">\\r\\n                        <td>{{scoreCard.ScoreCardName}}</td>\\r\\n                        <td> {{scoreCard.Year}}</td>\\r\\n                        <td>{{scoreCard.QuarterName}}</td>\\r\\n                        <td style=\\\"cursor:pointer;\\\">\\r\\n                            <span>\\r\\n                                <a matTooltip=\\\"View Score Card\\\" (click)=\\\"viewScoreCard(scoreCard)\\\">\\r\\n                                    <i style=\\\"cursor: pointer;\\\" class=\\\"fa fa-eye \\\" aria-hidden=\\\"true\\\"></i>\\r\\n                                </a>&nbsp;&nbsp;&nbsp;\\r\\n\\r\\n                                <a matTooltip=\\\"Edit Score Card\\\"\\r\\n                                    (click)=\\\"$event.stopPropagation();editScoreCard(scoreCard)\\\"\\r\\n                                    [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'] || (employeeDetails && employeeDetails.IsEmployeeLoginLevel=='Team'))?'none':'auto'\\\"\\r\\n                                    [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['U'] || (employeeDetails && employeeDetails.IsEmployeeLoginLevel=='Team')),'AddColor':(MenuPermissions[menuName][menuID]['U'] || (employeeDetails && employeeDetails.IsEmployeeLoginLevel=='Team'))}\\\"><i\\r\\n                                        style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\"\\r\\n                                        aria-hidden=\\\"true\\\"></i></a>\\r\\n                                &nbsp;&nbsp;&nbsp; <a matTooltip=\\\"Delete Score Card\\\"\\r\\n                                    (click)=\\\"$event.stopPropagation();deleteScoreCard(scoreCard)\\\"\\r\\n                                    [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['D'] || (employeeDetails && employeeDetails.IsEmployeeLoginLevel=='Team'))?'none':'auto'\\\"\\r\\n                                    [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['D'] || (employeeDetails && employeeDetails.IsEmployeeLoginLevel=='Team')),'AddColor':(MenuPermissions[menuName][menuID]['D'] || (employeeDetails && employeeDetails.IsEmployeeLoginLevel=='Team'))}\\\"><i\\r\\n                                        style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n                            </span>\\r\\n                            <!--  &nbsp;&nbsp; &nbsp; <a matTooltip=\\\"Project on-hold\\\"\\r\\n                            (click)=\\\"$event.stopPropagation();ForceClose(element)\\\"\\r\\n                            [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\r\\n                            [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['U']),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\"><i\\r\\n                                style=\\\"cursor: pointer;\\\" class=\\\"fa fa-window-close\\\" aria-hidden=\\\"true\\\"></i></a> -->\\r\\n                        </td>\\r\\n                    </tr>\\r\\n                </ng-container>\\r\\n            </tbody>\\r\\n        </table>\\r\\n        <br>\\r\\n        <div class=\\\"warningMsg\\\" *ngIf=\\\"masterScoreCards.length === 0\\\">\\r\\n            <span>No data available</span>\\r\\n        </div>\\r\\n    </div>\\r\\n    <div class=\\\"pageContainer\\\" *ngIf=\\\"masterScoreCards.length > 0\\\">\\r\\n        <div class=\\\"rowsSelection\\\">\\r\\n            <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\r\\n                <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\r\\n                    <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\r\\n                        {{row}}\\r\\n                    </mat-option>\\r\\n                </mat-select>\\r\\n            </mat-form-field>\\r\\n        </div>\\r\\n        <div class=\\\"pageSelection\\\">\\r\\n            <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\r\\n        </div>\\r\\n    </div>\\r\\n</div>\\r\\n\\r\\n<div *ngIf=\\\"isViewScoreCard\\\">\\r\\n    <app-view-score-card [showDetails]=\\\"true\\\" [selectedMetrics]=\\\"selectedMetrics\\\"\\r\\n        [isScoreCardEnable]=\\\"isScoreCardEnable\\\" [scoreCard]=\\\"scoreCard\\\" [isViewScoreCard]=\\\"isViewScoreCard\\\"\\r\\n        [WeekDateList]=\\\"WeekDateList\\\" (goToAddScoreCardChanged)=\\\"goToAddScoreCardChangedHandler($event)\\\"\\r\\n        (viewScoreCardChanged)=\\\"viewScoreCardChangedHandler($event.value)\\\"></app-view-score-card>\\r\\n</div>\\r\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n<div *ngIf=\\\"data !== 'new' && data !== 'edit' && data!='log'&& data !== 'progress' &&  data !== 'status'\\\">\\r\\n  <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n  <mat-dialog-actions align=\\\"center\\\">\\r\\n    <div *ngIf=\\\"condition\\\">\\r\\n      <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n      <!-- Can optionally provide a result for the closing dialog. -->\\r\\n      <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n    </div>\\r\\n    <div *ngIf=\\\"!condition &&  data !== 'progress' &&  data !== 'status' && data!='assign' && !newPointer\\\">\\r\\n      <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n        <div class=\\\"item item-3 \\\">\\r\\n          <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n<div *ngIf=\\\"data === 'new' || data === 'edit' \\\">\\r\\n  <br>\\r\\n  <div class=\\\"XBtn\\\">\\r\\n    <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">&times;</span>\\r\\n  </div>\\r\\n  <mat-slide-toggle [checked]=\\\"subActivityStatus\\\" [disabled]=\\\"conditionActivity!=''\\\" (change)=\\\"ToggleSubActivity()\\\">Sub\\r\\n    Activity</mat-slide-toggle>\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowheading\\\">\\r\\n      <h4 class=\\\"alignheader\\\"><b style=\\\"margin-bottom: 20px;\\\">{{data | titlecase}} Frustration</b></h4>\\r\\n\\r\\n    </div>\\r\\n  </div>\\r\\n\\r\\n  <div class=\\\"inputFields\\\">\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n\\r\\n        <mat-placeholder>Key Process <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n        <mat-select [disabled]=\\\"conditionActivity!=''\\\" (selectionChange)=\\\"process($event)\\\" [(ngModel)]=\\\"ProcessID\\\">\\r\\n          <mat-option *ngFor=\\\"let data of processData;let i=index;\\\" [value]=\\\"processData[i].ProcessID\\\">\\r\\n            {{processData[i].ProcessName}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n\\r\\n\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n\\r\\n        <mat-placeholder>Activity <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n        <mat-select [disabled]=\\\"conditionActivity!=''\\\" (selectionChange)=\\\"activity($event)\\\" [(ngModel)]=\\\"ActivityID\\\">\\r\\n          <mat-option *ngFor=\\\"let data of tempActivity;let i=index;\\\" [value]=\\\"tempActivity[i].ActivityID\\\">\\r\\n            {{tempActivity[i].ActivityName}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n\\r\\n    </div>\\r\\n    <div>\\r\\n\\r\\n      <mat-form-field>\\r\\n\\r\\n        <mat-placeholder>Team <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n\\r\\n        <mat-select [disabled]=\\\"true\\\" (selectionChange)=\\\"team($event)\\\" [(ngModel)]=\\\"TeamID\\\">\\r\\n          <mat-option *ngFor=\\\"let data of teamData;let i=index;\\\" [value]=\\\"teamData[i].TeamID\\\">\\r\\n            {{teamData[i].TeamName}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n\\r\\n    </div>\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n        <mat-label> Sub Activity</mat-label>\\r\\n        <mat-select [disabled]=\\\"conditionActivity!='' || !subActivityStatus \\\" [(ngModel)]=\\\"SubActivityID\\\">\\r\\n          <mat-option *ngFor=\\\"let data of tempSubActivity;let i=index;\\\" [value]=\\\"tempSubActivity[i].ActivityID\\\">\\r\\n            {{tempSubActivity[i].ActivityName}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n\\r\\n\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n\\r\\n\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n\\r\\n        <mat-placeholder>Frustration Type <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n\\r\\n        <mat-select (selectionChange)=\\\"frustrationTypesDa($event)\\\" [(ngModel)]=\\\"FrustrationTypeID\\\">\\r\\n          <mat-option *ngFor=\\\"let data of frustrationtypeData;let i=index;\\\"\\r\\n            [value]=\\\"frustrationtypeData[i].FrustrationsTypeID\\\">\\r\\n            {{frustrationtypeData[i].FrustrationsTypeName}}\\r\\n\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n\\r\\n\\r\\n      </mat-form-field>\\r\\n\\r\\n    </div>\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n        <input matInput maxlength=\\\"55\\\" autocomplete=\\\"off\\\" id=\\\"lblSubject\\\" [(ngModel)]=\\\"Subject\\\" value=\\\"\\\">\\r\\n        <mat-placeholder>Frustration <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n\\r\\n    </div>\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n        <input matInput placeholder=\\\" Description\\\" maxlength=\\\"200\\\" autocomplete=\\\"off\\\" id=\\\"lblDescription\\\"\\r\\n          [(ngModel)]=\\\"Description\\\" value=\\\"\\\">\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n\\r\\n\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n\\r\\n        <mat-placeholder>Severity <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n        <mat-select (selectionChange)=\\\"severity($event)\\\" [(ngModel)]=\\\"SeverityID\\\">\\r\\n          <mat-option *ngFor=\\\"let data of severityData;let i=index;\\\" [value]=\\\"severityData[i].SeverityID\\\">\\r\\n            {{severityData[i].SeverityName}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n\\r\\n    </div>\\r\\n    <div>\\r\\n\\r\\n      <mat-form-field>\\r\\n\\r\\n        <mat-placeholder>Status <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n        <mat-select (selectionChange)=\\\"statusChange($event)\\\" [(ngModel)]=\\\"StatusID\\\">\\r\\n          <mat-option *ngFor=\\\"let data of statusData;let i=index;\\\" [value]=\\\"statusData[i].StatusID\\\">\\r\\n            {{data.StatusName}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n\\r\\n    </div>\\r\\n\\r\\n  </div>\\r\\n\\r\\n  <!-- <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowwrapper\\\">\\r\\n      <div id=\\\"RowtableAction\\\">\\r\\n        <div id=\\\"field\\\">\\r\\n          <mat-form-field>\\r\\n           \\r\\n            <mat-placeholder>Key Process <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n            <mat-select [disabled]=\\\"conditionActivity!=''\\\" (selectionChange)=\\\"process($event)\\\" [(ngModel)]=\\\"ProcessID\\\">\\r\\n                <mat-option *ngFor=\\\"let data of processData;let i=index;\\\" [value]=\\\"processData[i].ProcessID\\\" >\\r\\n                  {{processData[i].ProcessName}}\\r\\n                </mat-option>\\r\\n              </mat-select>\\r\\n        </mat-form-field> \\r\\n</div>\\r\\n      \\r\\n      \\r\\n    <div id=\\\"field\\\">\\r\\n      <mat-form-field>\\r\\n          \\r\\n        <mat-placeholder>Activity <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n        <mat-select [disabled]=\\\"conditionActivity!=''\\\" (selectionChange)=\\\"activity($event)\\\" [(ngModel)]=\\\"ActivityID\\\">\\r\\n            <mat-option *ngFor=\\\"let data of tempActivity;let i=index;\\\" [value]=\\\"tempActivity[i].ActivityID\\\" >\\r\\n              {{tempActivity[i].ActivityName}}\\r\\n            </mat-option>\\r\\n          </mat-select>\\r\\n    </mat-form-field>\\r\\n        \\r\\n      </div>\\r\\n    <div id=\\\"field\\\">\\r\\n          \\r\\n      <mat-form-field>\\r\\n          \\r\\n        <mat-placeholder>Team <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n       \\r\\n        <mat-select [disabled]=\\\"true\\\" (selectionChange)=\\\"team($event)\\\" [(ngModel)]=\\\"TeamID\\\">\\r\\n          <mat-option *ngFor=\\\"let data of teamData;let i=index;\\\" [value]=\\\"teamData[i].TeamID\\\" >\\r\\n            {{teamData[i].TeamName}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field> \\r\\n          \\r\\n    </div>\\r\\n    \\r\\n</div>\\r\\n</div>\\r\\n</div>\\r\\n<div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n  <div id=\\\"Rowwrapper\\\">\\r\\n    <div id=\\\"RowtableAction\\\">\\r\\n      <div id=\\\"field\\\">\\r\\n        <mat-form-field >\\r\\n          <mat-label> Sub Activity</mat-label>\\r\\n          <mat-select [disabled]=\\\"conditionActivity!='' || !subActivityStatus \\\"  [(ngModel)]=\\\"SubActivityID\\\">\\r\\n              <mat-option *ngFor=\\\"let data of tempSubActivity;let i=index;\\\" [value]=\\\"tempSubActivity[i].ActivityID\\\" >\\r\\n                {{tempSubActivity[i].ActivityName}}\\r\\n              </mat-option>\\r\\n            </mat-select>\\r\\n\\r\\n           \\r\\n      </mat-form-field>\\r\\n</div>\\r\\n    \\r\\n    \\r\\n  <div id=\\\"field\\\">\\r\\n    <mat-form-field>\\r\\n        \\r\\n      <mat-placeholder>Frustration Type <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n   \\r\\n      <mat-select  (selectionChange)=\\\"frustrationTypesDa($event)\\\" [(ngModel)]=\\\"FrustrationTypeID\\\"  >\\r\\n  <mat-option *ngFor=\\\"let data of frustrationtypeData;let i=index;\\\" [value]=\\\"frustrationtypeData[i].FrustrationsTypeID\\\" >\\r\\n          {{frustrationtypeData[i].FrustrationsTypeName}}\\r\\n          \\r\\n        </mat-option>\\r\\n      </mat-select>\\r\\n\\r\\n    \\r\\n    </mat-form-field>\\r\\n      \\r\\n    </div>\\r\\n  <div id=\\\"field\\\">\\r\\n        <mat-form-field>\\r\\n    <input matInput  maxlength=\\\"55\\\" autocomplete=\\\"off\\\" id=\\\"lblSubject\\\" [(ngModel)]=\\\"Subject\\\"\\r\\n    value=\\\"\\\">\\r\\n    <mat-placeholder>Frustration <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n        </mat-form-field>\\r\\n        \\r\\n  </div>\\r\\n  \\r\\n</div>\\r\\n</div>\\r\\n</div>\\r\\n<div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n  <div id=\\\"Rowwrapper\\\">\\r\\n    <div id=\\\"RowtableAction\\\">\\r\\n      <div id=\\\"field\\\">\\r\\n        <mat-form-field>\\r\\n          <input matInput placeholder=\\\" Description\\\" maxlength=\\\"200\\\" autocomplete=\\\"off\\\"  id=\\\"lblDescription\\\" [(ngModel)]=\\\"Description\\\"\\r\\n    value=\\\"\\\">\\r\\n        </mat-form-field>\\r\\n</div>\\r\\n    \\r\\n    \\r\\n  <div id=\\\"field\\\">\\r\\n    <mat-form-field>\\r\\n          \\r\\n      <mat-placeholder>Severity <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n      <mat-select (selectionChange)=\\\"severity($event)\\\" [(ngModel)]=\\\"SeverityID\\\">\\r\\n        <mat-option *ngFor=\\\"let data of severityData;let i=index;\\\" [value]=\\\"severityData[i].SeverityID\\\" >\\r\\n          {{severityData[i].SeverityName}}\\r\\n        </mat-option>\\r\\n      </mat-select>\\r\\n    </mat-form-field>\\r\\n      \\r\\n    </div>\\r\\n  <div id=\\\"field\\\">\\r\\n        \\r\\n    <mat-form-field>\\r\\n        \\r\\n      <mat-placeholder>Status <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n      <mat-select (selectionChange)=\\\"statusChange($event)\\\" [(ngModel)]=\\\"StatusID\\\">\\r\\n        <mat-option *ngFor=\\\"let data of statusData;let i=index;\\\" [value]=\\\"statusData[i].StatusID\\\" >\\r\\n          {{data.StatusName}}\\r\\n        </mat-option>\\r\\n      </mat-select>\\r\\n    </mat-form-field>\\r\\n        \\r\\n  </div>\\r\\n  \\r\\n</div>\\r\\n</div>\\r\\n</div> -->\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowwrapper\\\">\\r\\n      <div id=\\\"RowtableActions\\\">\\r\\n        <div id=\\\"buttonview\\\">\\r\\n          <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"AddPointer()\\\"><span *ngIf=\\\"data === 'new'\\\">Save</span><span\\r\\n              *ngIf=\\\"data === 'edit'\\\">Update</span></button>\\r\\n\\r\\n        </div>\\r\\n        <div id=\\\"buttonview\\\">\\r\\n          <button mat-accent class=\\\"addButtons btn\\\" (click)='Clear()'>Cancel</button>\\r\\n        </div>\\r\\n\\r\\n      </div>\\r\\n    </div>\\r\\n\\r\\n\\r\\n  </div>\\r\\n  <div *ngIf=\\\"data === 'edit'\\\">\\r\\n    <div class=\\\"updateInfo\\\">\\r\\n\\r\\n\\r\\n      <div class=\\\"updatedBy\\\">\\r\\n        <mat-label *ngIf=\\\"updatedBy !== null\\\">Updated By:<b> {{updatedBy}}</b></mat-label>\\r\\n      </div>\\r\\n      <div class=\\\"updatedOn\\\">\\r\\n        <mat-label *ngIf=\\\"updatedBy !== null\\\">Updated Date:<b> {{updatedDate | date:'MM/dd/yyyy'}}</b></mat-label>\\r\\n      </div>\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n      <!-- <div>\\r\\n      <div  class=\\\"item item-1\\\" >\\r\\n        <mat-label *ngIf=\\\"updatedBy !== null\\\" >Updated Date:<b> {{updatedDate | date:'MM/dd/yyyy'}}</b></mat-label>\\r\\n      </div>\\r\\n      </div> -->\\r\\n\\r\\n    </div>\\r\\n  </div>\\r\\n</div>\\r\\n\\r\\n<div *ngIf=\\\"data==='assign' && !newPointer\\\" class=\\\"mappings1\\\">\\r\\n  <br>\\r\\n  <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">&times;</span>\\r\\n  <h4 class=\\\"alignheader\\\"><b style=\\\"margin-bottom: 20px;\\\">{{data | titlecase}} Project</b></h4>\\r\\n\\r\\n  <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n\\r\\n    <div class=\\\"item item-1\\\" fxFlex=\\\"25%\\\">\\r\\n      <mat-form-field>\\r\\n\\r\\n        <mat-placeholder>Project <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n        <mat-select (selectionChange)=\\\"project($event)\\\" [(ngModel)]=\\\"ProjectID\\\">\\r\\n          <mat-option *ngFor=\\\"let data of projectData;let i=index;\\\" [value]=\\\"projectData[i].ProjectID\\\">\\r\\n            {{projectData[i].ProjectName}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n\\r\\n    <div class=\\\"item item-1\\\" fxFlex=\\\"3%\\\">\\r\\n    </div>\\r\\n\\r\\n    <div class=\\\"item item-1\\\" fxFlex=\\\"25%\\\">\\r\\n\\r\\n      <mat-form-field>\\r\\n\\r\\n        <mat-placeholder>Department <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n        <mat-select (selectionChange)=\\\"department($event)\\\" [disabled]=\\\"true\\\" [(ngModel)]=\\\"DepartmentID\\\">\\r\\n          <mat-option *ngFor=\\\"let data of departmentData;let i=index;\\\" [value]=\\\"departmentData[i].DepartmentID\\\">\\r\\n            {{departmentData[i].DepartmentName}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n\\r\\n    </div>\\r\\n\\r\\n    <br>\\r\\n    <div class=\\\"item item-1\\\" fxFlex=\\\"3%\\\"></div>\\r\\n  </div>\\r\\n\\r\\n  <br>\\r\\n\\r\\n\\r\\n  <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n    <div class=\\\"item item-1\\\" fxFlexOrder=\\\"1\\\"><button class=\\\"addButtons\\\" mat-raised-button mat-accent\\r\\n        (click)=\\\"Addproject()\\\">Save</button>\\r\\n\\r\\n    </div>\\r\\n\\r\\n    <div class=\\\"item item-1\\\" fxFlexOrder=\\\"3\\\"><button mat-raised-button mat-accent class=\\\"addButtons\\\"\\r\\n        (click)='Clear()'>Cancel</button></div>\\r\\n\\r\\n  </div>\\r\\n\\r\\n</div>\\r\\n\\r\\n\\r\\n\\r\\n<br>\\r\\n<mat-dialog-content class=\\\"warningMsg\\\">{{dataSelf}}</mat-dialog-content>\\r\\n<mat-dialog-content class=\\\"successMsg\\\">{{successMsg}}</mat-dialog-content>\\r\\n\"","module.exports = \"<p></p>\\n\\n<div class=\\\"container\\\" style=\\\"margin-top: -10px\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\n  <div class=\\\"col-lg-8\\\">\\n    <div class=\\\"item item-5 alignLeft\\\" fxFlex=\\\"12%\\\">\\n    <h4>Frustration</h4>\\n    </div>\\n  </div>\\n    <div class=\\\"item item-1\\\" fxFlex=\\\"51%\\\" fxFlexOrder=\\\"1\\\">\\n   \\n      </div>\\n    <div class=\\\"item item-1\\\" fxFlex=\\\"25%\\\" fxFlexOrder=\\\"1\\\" *ngIf=\\\"!disableSearch\\\">\\n        <mat-form-field style=\\\"width: 180px\\\">\\n            <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n            <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\" [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n          </mat-form-field>\\n     \\n    </div>\\n      \\n    <div class=\\\"item item-5\\\" fxFlex=\\\"10%\\\" fxFlexOrder=\\\"3\\\" *ngIf=\\\"!isDisable\\\"> \\n        <button  mat-raised-button color=\\\"primary\\\" [disabled]=\\\"isDisable\\\" matTooltip=\\\"Export as excel\\\" style=\\\"cursor: pointer;margin-top: 10px;\\\" (click)=\\\"exportAsXLSX()\\\">\\n          <!-- <i class='fa fa-file-excel-o'></i> -->\\n         Excel\\n        </button>&nbsp;&nbsp;\\n  \\n    </div>\\n  \\n    <div class=\\\"item item-5\\\" fxFlex=\\\"11%\\\" fxFlexOrder=\\\"3\\\">\\n      <button mat-raised-button color=\\\"primary\\\" (click)='OpenPointer()' [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\" style=\\\"float: right;margin-top: 10px;\\\" class=\\\"addButtons\\\"  matTooltip=\\\"New frustration\\\">NEW</button>\\n     \\n    </div>\\n \\n  </div>\\n \\n  <div>\\n       \\n      <table class=\\\"table table-responsive\\\" class=\\\"fixed\\\">\\n        <thead>\\n          <tr>\\n            \\n              <!--<th cName class=\\\"pointer\\\"> Process</th>\\n              <th cName class=\\\"pointer\\\"> Activity</th>-->\\n           \\n              <th  class=\\\"pointer\\\" (click)=\\\"sort('ProcessName')\\\"> Process\\n                  <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n                  <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n              </th>\\n              \\n              <th  class=\\\"pointer\\\" (click)=\\\"sort('ActivityName')\\\"> Activity\\n                  <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n                  <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n              </th>\\n              <th  class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\n                <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n                <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n              </th>\\n              <th  class=\\\"pointer\\\" (click)=\\\"sort('PointerID')\\\"> Issue ID\\n                <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n                <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n            <th  class=\\\"pointer\\\" (click)=\\\"sort('FrustrationsTypeName')\\\">Type\\n                <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n                <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n             </th>\\n           <th  class=\\\"pointer\\\" (click)=\\\"sort('Subject')\\\"> Subject\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n           </th>\\n           <th  class=\\\"pointer\\\" (click)=\\\"sort('Description')\\\"> Description\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n           </th>\\n           <th  class=\\\"pointer\\\" (click)=\\\"sort('ProjectName')\\\"> Project Name\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n           </th>\\n           <th  class=\\\"pointer\\\" (click)=\\\"sort('StatusName')\\\"> Status\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n\\n         </th>\\n         <th  class=\\\"pointer\\\" (click)=\\\"sort('SeverityName')\\\"> Severity\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n\\n         </th>\\n         \\n\\n            <th action>Action</th>\\n          </tr>\\n        </thead>\\n        <tbody>\\n          <!---->\\n          <!--  -->\\n          <!-- (click)=\\\"EditPointer(element,'Update Record')\\\" -->\\n          <tr  *ngFor=\\\"let element of pointerFrustration | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n              <!--<td> {{element.ProcessName}}</td>\\n              <td> {{element.ActivityName}}</td>-->\\n              \\n              <!--   -->\\n              <td> {{element.ProcessName}}</td>\\n            <td> {{element.ActivityName}}</td>\\n            <td>{{element.TeamName}}</td>\\n            <td> Issue-{{element.PointerID}}</td>\\n            <td>{{element.FrustrationsTypeName}}</td>\\n            <td> {{element.Subject}}</td>\\n            <td> {{element.Description}}</td>\\n            <td >{{element.ProjectName}}</td>\\n            <td >{{element.StatusName}}</td>\\n            <td >{{element.SeverityName}}</td>\\n            \\n            <td style=\\\" cursor:pointer;\\\">\\n              <span> <a matTooltip=\\\"Edit frustration\\\"  [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\" [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['U']),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\" (click)=\\\"EditPointer(element)\\\"><i class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a> \\n           &nbsp;&nbsp;&nbsp; <a matTooltip=\\\"Delete frustration\\\" (click)=\\\"DeletePointer(element)\\\"  [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['D'])?'none':'auto'\\\" [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['D']),'AddColor':(MenuPermissions[menuName][menuID]['D'])}\\\" ><i class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a> </span>\\n            </td>\\n\\n          </tr>\\n        </tbody>\\n\\n      </table>\\n      \\n<br>\\n       <div class=\\\"warningMsg\\\" *ngIf=\\\"(pointerFrustration=== null||pointerFrustration===undefined || pointerFrustration.length === 0)\\\">\\n       \\n          <span >No data available</span>\\n     \\n  \\n      </div>\\n\\n\\n      <div class=\\\"container row\\\" style=\\\"float:right\\\" *ngIf=\\\"frustPaging\\\">\\n          <div class=\\\"col-lg-6\\\"></div>\\n          <div class=\\\"col-lg-1\\\">\\n            <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n              <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n                  <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n                    {{row}}\\n                  </mat-option>\\n                </mat-select>\\n              </mat-form-field>\\n          </div>\\n        \\n     \\n          <div class=\\\"col-lg-5\\\" style=\\\"float:right\\\">\\n            <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n          </div>\\n          </div>\\n\\n          \\n      <!-- <button mat-raised-button color=\\\"primary\\\" (click)='AddToProject()' *ngIf=\\\"checkEnable\\\" class=\\\"addButtons\\\" matTooltip=\\\"Add to Project\\\">Add To Project</button>\\n    -->\\n    <br>\\n    <br>\\n    \\n\\n      </div> \\n\"","module.exports = \"<style>\\r\\n  @media (max-width: 768px) {\\r\\n    .mb_close {\\r\\n      position: absolute !important;\\r\\n\\r\\n    }\\r\\n\\r\\n    .btnbg1 {\\r\\n      margin-bottom: 6% !important;\\r\\n    }\\r\\n\\r\\n    .mb_clsbtn {\\r\\n      margin-left: 90% !important;\\r\\n      font-size: 20px !important;\\r\\n      color: #000;\\r\\n    }\\r\\n  }\\r\\n\\r\\n  @page {\\r\\n    size: auto;\\r\\n    margin-bottom: 5mm;\\r\\n  }\\r\\n\\r\\n  .btnbg1 {\\r\\n    background-color: #e2e3e4;\\r\\n    font-weight: 200 !important;\\r\\n    font-size: 14px;\\r\\n    min-width: 10%\\r\\n  }\\r\\n\\r\\n  @media print {\\r\\n\\r\\n    #Header,\\r\\n    #Footer {\\r\\n      display: none !important;\\r\\n    }\\r\\n  }\\r\\n\\r\\n  @media print {\\r\\n    .donotprintthis {\\r\\n\\r\\n      display: none;\\r\\n\\r\\n    }\\r\\n  }\\r\\n\\r\\n  @media print {\\r\\n    @page {\\r\\n      margin: 0;\\r\\n    }\\r\\n\\r\\n    body {\\r\\n      margin: 1.6cm;\\r\\n    }\\r\\n  }\\r\\n\\r\\n  @media print {\\r\\n    a[href]:after {\\r\\n      content: none !important;\\r\\n    }\\r\\n\\r\\n    img[src]:after {\\r\\n      content: none !important;\\r\\n    }\\r\\n  }\\r\\n\\r\\n  @media print {\\r\\n    @page :footer {\\r\\n      color: #fff\\r\\n    }\\r\\n\\r\\n    @page :header {\\r\\n      color: #fff\\r\\n    }\\r\\n  }\\r\\n\\r\\n  @media print {\\r\\n    @page {\\r\\n      size: auto;\\r\\n      margin: 0mm !important;\\r\\n    }\\r\\n\\r\\n    a[href]:after {\\r\\n      content: none !important;\\r\\n    }\\r\\n  }\\r\\n\\r\\n  @media print {\\r\\n\\r\\n    #Header,\\r\\n    #Footer {\\r\\n      display: none;\\r\\n      margin: 0mm !important;\\r\\n    }\\r\\n  }\\r\\n\\r\\n  @media screen {\\r\\n    .donotprintthis {\\r\\n      display: block;\\r\\n\\r\\n    }\\r\\n  }\\r\\n\\r\\n  @media print {\\r\\n\\r\\n    header,\\r\\n    footer,\\r\\n    aside,\\r\\n    nav,\\r\\n    form,\\r\\n    iframe,\\r\\n    .menu,\\r\\n    .hero,\\r\\n    .adslot {\\r\\n      display: none;\\r\\n    }\\r\\n  }\\r\\n\\r\\n  /* .square {\\r\\n    padding: 0px;\\r\\n    background-color: #FFFF99;\\r\\n    color: black;\\r\\n    text-align: center;\\r\\n    cursor: pointer;\\r\\n    border-radius: 5px;\\r\\n    border: 2px solid #C9C927;\\r\\n    font-size: 13px;\\r\\n    font-weight: bold;\\r\\n    box-shadow: 3px 3px 3px #C9C927;\\r\\n    font-family: unset;\\r\\n  } */\\r\\n\\r\\n  .square {\\r\\n    padding: 0px;\\r\\n    background-color: #3775b5;\\r\\n    color: white;\\r\\n    text-align: center;\\r\\n    cursor: pointer;\\r\\n    border-radius: 5px;\\r\\n    border: 2px solid #3775b5;\\r\\n    font-size: 13px;\\r\\n    font-weight: bold;\\r\\n    box-shadow: 0px 8px 3px 0px #265382;\\r\\n    /* box-shadow: 3px 3px 3px #C9C927; */\\r\\n    font-family: unset;\\r\\n  }\\r\\n\\r\\n  .ppp {\\r\\n    position: running(footer);\\r\\n  }\\r\\n\\r\\n  .actAlign {\\r\\n    /* margin-top: 20px; */\\r\\n    font-size: 10px;\\r\\n    font-family: sans-serif;\\r\\n  }\\r\\n\\r\\n  .footer {\\r\\n    position: fixed;\\r\\n    bottom: 0;\\r\\n    font-size: 13px;\\r\\n    margin-left: 35%;\\r\\n  }\\r\\n\\r\\n  @media (max-width: 768px) {\\r\\n    .mb_popup {\\r\\n      height: 360px !important;\\r\\n      width: 415px !important;\\r\\n      overflow-x: scroll !important;\\r\\n      margin-left: 35% !important;\\r\\n    }\\r\\n\\r\\n    .close_mb {\\r\\n      margin-top: -55% !important;\\r\\n    }\\r\\n\\r\\n    .mb_scroll {\\r\\n      overflow-x: hidden;\\r\\n    }\\r\\n\\r\\n    .closebtn {\\r\\n      margin-top: -93px;\\r\\n      margin-right: -30px;\\r\\n    }\\r\\n\\r\\n    .closebtnexpand {\\r\\n      margin-top: -32px;\\r\\n      margin-right: -30px;\\r\\n    }\\r\\n  }\\r\\n</style>\\r\\n\\r\\n<div\\r\\n  *ngIf=\\\"data !== 'choose' && data !=='chooseChild' && data!='new' && data!='subMap' && data!='subAct' && data!= 'new1' \\\">\\r\\n  <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n  <mat-dialog-actions align=\\\"center\\\">\\r\\n    <div *ngIf=\\\"condition\\\">\\r\\n      <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n      <!-- Can optionally provide a result for the closing dialog. -->\\r\\n      <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n    </div>\\r\\n    <div *ngIf=\\\"!condition &&  data !== 'progress' &&  data !== 'status'\\\">\\r\\n      <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n        <div class=\\\"item item-3 \\\">\\r\\n          <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n\\r\\n<div *ngIf=\\\"data=='choose' || data === 'chooseChild'\\\">\\r\\n  <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" style=\\\"cursor:pointer;\\\" class=\\\"close\\\">&times;</span>\\r\\n  <mat-dialog-content>\\r\\n    <h5>Select Type</h5>\\r\\n\\r\\n  </mat-dialog-content>\\r\\n  <mat-radio-group aria-label=\\\"* Type\\\" [(ngModel)]=\\\"PointerType\\\">\\r\\n    <label><b>Add</b></label><br>\\r\\n\\r\\n    <mat-radio-button *ngIf=\\\"isSub===0 && isProcess!==0\\\" [disabled]='IsVersion || readOnly || !menuCreateCheck'\\r\\n      value=\\\"Activity\\\">Activity</mat-radio-button>\\r\\n    <!-- <mat-radio-button *ngIf=\\\"isSub!==0 && data !=='chooseChild'\\\"  [disabled]='IsVersion || readOnly'   value=\\\"SubActivity\\\">Sub Activity</mat-radio-button> -->\\r\\n    <mat-radio-button *ngIf=\\\"isSub==0 && data ==='chooseChild'\\\" [disabled]='IsVersion || readOnly || !menuCreateCheck'\\r\\n      value=\\\"SubActivity\\\">Sub Activity</mat-radio-button>\\r\\n    <!-- *ngIf=\\\"isSub!==0 && isActivity!=0 && isProcess!==0\\\"  -->\\r\\n    <mat-radio-button value=\\\"Metric\\\" [disabled]='IsVersion || readOnly || !menuCreateCheck'>Metric</mat-radio-button>\\r\\n    <mat-radio-button value=\\\"Issue\\\" [disabled]='IsVersion || readOnly || !menuCreateCheck'>Frustation/Issue\\r\\n    </mat-radio-button>\\r\\n    <br>\\r\\n\\r\\n    <label><b>Edit</b></label><br>\\r\\n    <mat-radio-button value=\\\"edit\\\" [disabled]='IsVersion || readOnly || !menuUpdateCheck'>Edit </mat-radio-button>\\r\\n\\r\\n    <mat-radio-button value=\\\"delete\\\" [disabled]='IsVersion || readOnly  || !menuDeleteCheck'>Delete </mat-radio-button>\\r\\n    <mat-radio-button value=\\\"changSquence\\\" [disabled]='IsVersion || readOnly  || !menuUpdateCheck'>Re-arrange\\r\\n    </mat-radio-button>\\r\\n\\r\\n    <!-- <mat-radio-button *ngIf=\\\"!show\\\" value=\\\"processView\\\">Sub Map</mat-radio-button> -->\\r\\n\\r\\n    <mat-radio-button *ngIf=\\\"!show && isSub==0 \\\" [disabled]=\\\"activityTemp.length===0\\\" value=\\\"subAct\\\">Sub Map\\r\\n    </mat-radio-button>\\r\\n  </mat-radio-group>\\r\\n  <mat-dialog-actions align=\\\"center\\\">\\r\\n    <button mat-raised-button mat-accent [disabled]=\\\"!PointerType\\\" [mat-dialog-close]=\\\"true\\\"\\r\\n      (click)=\\\"closeChoose()\\\">Ok</button>\\r\\n  </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n<div *ngIf=\\\"data=='new' \\\">\\r\\n\\r\\n  <div class=\\\"XBtn\\\">\\r\\n    <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">&times;</span>\\r\\n  </div>\\r\\n  <div style=\\\"text-align:center\\\">\\r\\n    <span *ngIf=\\\"toggle=='1'\\\"><b>Frustration List</b></span>\\r\\n    <span *ngIf=\\\"toggle=='2'\\\"><b>Metric List</b></span><br>\\r\\n    <span><b>Process</b> {{Process}}</span> <br>\\r\\n    <span *ngIf=\\\"Activity!=''\\\"> <b>Activity</b> {{Activity}} </span>\\r\\n\\r\\n  </div>\\r\\n  <!-- <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" style=\\\"cursor: pointer\\\" class=\\\"close\\\">&times;</span> -->\\r\\n  <div tble>\\r\\n    <div class=\\\"tableDiv\\\">\\r\\n      <table>\\r\\n        <thead>\\r\\n          <tr>\\r\\n            <!-- <th *ngIf=\\\"toggle=='1'\\\"> Issue ID </th>\\r\\n          <th *ngIf=\\\"toggle=='2'\\\"> Metric ID </th> -->\\r\\n            <th *ngIf=\\\"toggle=='1'\\\"> Frustration </th>\\r\\n            <th *ngIf=\\\"toggle=='2'\\\"> Goal </th>\\r\\n            <th *ngIf=\\\"toggle=='2'\\\"> Metric </th>\\r\\n            <th *ngIf=\\\"toggle=='1'\\\"> Type of Frustration </th>\\r\\n            <!-- <th *ngIf=\\\"toggle=='2'\\\"> UOM </th> -->\\r\\n            <th *ngIf=\\\"toggle=='2'\\\">Source</th>\\r\\n\\r\\n            <th *ngIf=\\\"toggle=='1'\\\"> Status </th>\\r\\n            <th *ngIf=\\\"toggle=='1'\\\"> Severity </th>\\r\\n            <th *ngIf=\\\"toggle=='1'\\\">Description</th>\\r\\n            <th> Date Opened </th>\\r\\n            <th> Action </th>\\r\\n          </tr>\\r\\n        </thead>\\r\\n        <tbody>\\r\\n          <tr *ngFor=\\\"let case of CaseData\\\">\\r\\n            <!-- <td> Issue-{{case.PointerID}} </td> -->\\r\\n            <td *ngIf=\\\"toggle=='1'\\\"> {{case.Subject}} </td>\\r\\n\\r\\n            <td *ngIf=\\\"toggle=='2'\\\">{{case.GoalName}}</td>\\r\\n            <td *ngIf=\\\"toggle=='2'\\\">{{case.Description}}</td>\\r\\n            <td *ngIf=\\\"toggle=='1'\\\"> {{case.FrustrationsTypeName}} </td>\\r\\n            <!-- <td *ngIf=\\\"toggle=='2'\\\"> {{case.UOM}} </td> -->\\r\\n            <td *ngIf=\\\"toggle=='2'\\\"> {{case.Source}} </td>\\r\\n\\r\\n            <td *ngIf=\\\"toggle=='1'\\\"> {{case.StatusName}} </td>\\r\\n            <td *ngIf=\\\"toggle=='1'\\\"> {{case.SeverityName}} </td>\\r\\n            <td *ngIf=\\\"toggle=='1'\\\">{{case.Description}}</td>\\r\\n            <td> {{case.CreatedDate| date: 'MM/dd/yyyy'}} </td>\\r\\n            <td style=\\\" cursor:pointer;\\\" *ngIf=\\\"toggle=='1'\\\">\\r\\n\\r\\n              <span> <a matTooltip=\\\"Edit frustration\\\" (click)=\\\"EditPointer(case)\\\"\\r\\n                  [style.pointer-events]=\\\"(IsVersion|| readOnly || !menuUpdateCheck)?'none':'auto'\\\"\\r\\n                  [ngClass]=\\\"{'removeColor':(IsVersion|| readOnly || !menuUpdateCheck ),'AddColor':(!IsVersion|| !readOnly  || menuUpdateCheck)}\\\"><i\\r\\n                    style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n                &nbsp;&nbsp;&nbsp; <a matTooltip=\\\"Delete frustration\\\" (click)=\\\"DeletePointer(case)\\\"\\r\\n                  [style.pointer-events]=\\\"(IsVersion|| readOnly || !menuDeleteCheck )?'none':'auto'\\\"\\r\\n                  [ngClass]=\\\"{'removeColor':(IsVersion||readOnly  || !menuDeleteCheck),'AddColor':(! IsVersion||! readOnly  || !menuDeleteCheck )}\\\"><i\\r\\n                    style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a> </span>\\r\\n            </td>\\r\\n            <td style=\\\" cursor:pointer;\\\" *ngIf=\\\"toggle=='2'\\\">\\r\\n\\r\\n              <span> <a matTooltip=\\\"Edit metric\\\" (click)=\\\"EditPointer(case)\\\"\\r\\n                  [style.pointer-events]=\\\"(IsVersion|| readOnly || !menuUpdateCheck)?'none':'auto'\\\"\\r\\n                  [ngClass]=\\\"{'removeColor':(IsVersion|| readOnly || !menuUpdateCheck ),'AddColor':(!IsVersion|| !readOnly  || menuUpdateCheck)}\\\"><i\\r\\n                    style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n                &nbsp;&nbsp;&nbsp; <a matTooltip=\\\"Delete metric\\\" (click)=\\\"DeletePointer(case)\\\"\\r\\n                  [style.pointer-events]=\\\"(IsVersion|| readOnly || !menuDeleteCheck )?'none':'auto'\\\"\\r\\n                  [ngClass]=\\\"{'removeColor':(IsVersion||readOnly  || !menuDeleteCheck),'AddColor':(! IsVersion||! readOnly  || !menuDeleteCheck )}\\\"><i\\r\\n                    style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a> </span>\\r\\n            </td>\\r\\n\\r\\n          </tr>\\r\\n        </tbody>\\r\\n      </table>\\r\\n      <div class=\\\"warningMsg\\\" *ngIf=\\\"(CaseData === null||CaseData===undefined || CaseData.length === 0)\\\">\\r\\n\\r\\n        <span>No data available</span>\\r\\n\\r\\n\\r\\n      </div>\\r\\n    </div>\\r\\n  </div>\\r\\n  <mat-dialog-content *ngIf=\\\"!CaseData\\\" class=\\\"warningMsg\\\">No Issues Found</mat-dialog-content>\\r\\n\\r\\n</div>\\r\\n<!--|||||||||||||||||||||||For DialogComponent2||||||||||||||||||||||||-->\\r\\n<div *ngIf=\\\"data=='new1' \\\">\\r\\n  <div class=\\\"XBtn\\\">\\r\\n    <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">&times;</span>\\r\\n  </div>\\r\\n\\r\\n  <div style=\\\"text-align:center\\\">\\r\\n    <span *ngIf=\\\"toggle=='1'\\\"><b>Frustration List</b></span>\\r\\n    <span *ngIf=\\\"toggle=='2'\\\"><b>Metric List</b></span><br>\\r\\n    <!-- <span><b>Process</b> {{Process}}</span> <br> -->\\r\\n    <span *ngIf=\\\"Activity!=''\\\"> <b>Activity</b> {{Activity}} </span>\\r\\n\\r\\n  </div>\\r\\n\\r\\n  <div tble1>\\r\\n    <div class=\\\"tableDiv\\\">\\r\\n      <table>\\r\\n        <thead>\\r\\n          <tr>\\r\\n            <!-- <th *ngIf=\\\"toggle=='1'\\\"> Issue ID </th>\\r\\n          <th *ngIf=\\\"toggle=='2'\\\"> Metric ID </th> -->\\r\\n            <th *ngIf=\\\"toggle=='1'\\\"> Frustration </th>\\r\\n            <th *ngIf=\\\"toggle=='2'\\\"> Goal </th>\\r\\n            <th *ngIf=\\\"toggle=='2'\\\"> Metric </th>\\r\\n            <th *ngIf=\\\"toggle=='1'\\\"> Type of Frustration </th>\\r\\n            <!-- <th *ngIf=\\\"toggle=='2'\\\"> UOM </th> -->\\r\\n            <th *ngIf=\\\"toggle=='2'\\\">Source</th>\\r\\n\\r\\n            <th *ngIf=\\\"toggle=='1'\\\"> Status </th>\\r\\n            <th *ngIf=\\\"toggle=='1'\\\"> Severity </th>\\r\\n            <th *ngIf=\\\"toggle=='1'\\\">Description</th>\\r\\n            <th> Date Opened </th>\\r\\n            <th>Action</th>\\r\\n          </tr>\\r\\n        </thead>\\r\\n        <tbody>\\r\\n          <tr *ngFor=\\\"let case of CaseData\\\">\\r\\n            <!-- <td> Issue-{{case.PointerID}} </td> -->\\r\\n            <td *ngIf=\\\"toggle=='1'\\\"> {{case.Subject}} </td>\\r\\n            <td *ngIf=\\\"toggle=='2'\\\"> {{case.GoalName}} </td>\\r\\n            <td *ngIf=\\\"toggle=='2'\\\">{{case.Description}}</td>\\r\\n            <td *ngIf=\\\"toggle=='1'\\\"> {{case.FrustrationsTypeName}} </td>\\r\\n            <!-- <td *ngIf=\\\"toggle=='2'\\\"> {{case.UOM}} </td> -->\\r\\n            <td *ngIf=\\\"toggle=='2'\\\"> {{case.Source}} </td>\\r\\n\\r\\n            <td *ngIf=\\\"toggle=='1'\\\"> {{case.StatusName}} </td>\\r\\n            <td *ngIf=\\\"toggle=='1'\\\"> {{case.SeverityName}} </td>\\r\\n            <td *ngIf=\\\"toggle=='1'\\\">{{case.Description}}</td>\\r\\n            <td> {{case.CreatedDate| date: 'MM/dd/yyyy'}} </td>\\r\\n            <td style=\\\" cursor:pointer;\\\" *ngIf=\\\"toggle=='2'\\\">\\r\\n\\r\\n\\r\\n              <span> <a matTooltip=\\\"Edit metric\\\" (click)=\\\"EditPointer(case)\\\"\\r\\n                  [style.pointer-events]=\\\"(IsVersion|| readOnly || !menuUpdateCheck)?'none':'auto'\\\"\\r\\n                  [ngClass]=\\\"{'removeColor':(IsVersion|| readOnly || !menuUpdateCheck ),'AddColor':(!IsVersion|| !readOnly  || menuUpdateCheck)}\\\"><i\\r\\n                    style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n                &nbsp;&nbsp;&nbsp; <a matTooltip=\\\"Delete metric\\\" (click)=\\\"DeletePointer(case)\\\"\\r\\n                  [style.pointer-events]=\\\"(IsVersion|| readOnly || !menuDeleteCheck )?'none':'auto'\\\"\\r\\n                  [ngClass]=\\\"{'removeColor':(IsVersion||readOnly  || !menuDeleteCheck),'AddColor':(! IsVersion||! readOnly  || !menuDeleteCheck )}\\\"><i\\r\\n                    style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a> </span>\\r\\n            </td>\\r\\n            <td style=\\\" cursor:pointer;\\\" *ngIf=\\\"toggle=='1'\\\">\\r\\n\\r\\n\\r\\n              <span> <a matTooltip=\\\"Edit frustration\\\" (click)=\\\"EditPointer(case)\\\"\\r\\n                  [style.pointer-events]=\\\"(IsVersion|| readOnly || !menuUpdateCheck)?'none':'auto'\\\"\\r\\n                  [ngClass]=\\\"{'removeColor':(IsVersion|| readOnly || !menuUpdateCheck ),'AddColor':(!IsVersion|| !readOnly  || menuUpdateCheck)}\\\"><i\\r\\n                    style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n                &nbsp;&nbsp;&nbsp; <a matTooltip=\\\"Delete frustration\\\" (click)=\\\"DeletePointer(case)\\\"\\r\\n                  [style.pointer-events]=\\\"(IsVersion|| readOnly || !menuDeleteCheck )?'none':'auto'\\\"\\r\\n                  [ngClass]=\\\"{'removeColor':(IsVersion||readOnly  || !menuDeleteCheck),'AddColor':(! IsVersion||! readOnly  || !menuDeleteCheck )}\\\"><i\\r\\n                    style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a> </span>\\r\\n            </td>\\r\\n\\r\\n          </tr>\\r\\n        </tbody>\\r\\n      </table>\\r\\n\\r\\n      <div class=\\\"warningMsg\\\" *ngIf=\\\"(CaseData === null||CaseData===undefined || CaseData.length === 0)\\\">\\r\\n\\r\\n        <span>No data available</span>\\r\\n\\r\\n\\r\\n      </div>\\r\\n    </div>\\r\\n  </div>\\r\\n  <mat-dialog-content *ngIf=\\\"!CaseData\\\" class=\\\"warningMsg\\\">No issues found</mat-dialog-content>\\r\\n\\r\\n</div>\\r\\n<div *ngIf=\\\"data=='subMap'\\\">\\r\\n\\r\\n\\r\\n  <div id=\\\"Map\\\">\\r\\n    <div class=\\\"XBtn\\\">\\r\\n      <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">&times;</span>\\r\\n    </div>\\r\\n\\r\\n\\r\\n    <div class=\\\"dialogHead\\\">\\r\\n      <div class=\\\"infoHead\\\">\\r\\n        <div class=\\\"companyInfo\\\">\\r\\n          <strong> {{CompanyName }} - </strong> {{ProcessName}} Process Map <br>\\r\\n          <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span>\\r\\n        </div>\\r\\n        <div class=\\\"teamInfo\\\">\\r\\n          <span>Team: {{TeamName}}</span><br>\\r\\n          <span>Version: {{currentVersion[\\\"VersionName\\\"]}}</span>\\r\\n        </div>\\r\\n      </div>\\r\\n\\r\\n      <div class=\\\"ActionButton\\\">\\r\\n        <div>\\r\\n          <button class=\\\"btn btnbg1\\\" style=\\\"margin-right: 20px;\\\" matTooltip=\\\"Print {{ProcessName}} process\\\"\\r\\n            printSectionId=\\\"print-sectionExpand\\\" printTitle=\\\"{{CompanyName}}\\\" [useExistingCss]=\\\"true\\\" ngxPrint>\\r\\n            Print</button>\\r\\n        </div>\\r\\n      </div>\\r\\n\\r\\n    </div>\\r\\n    <div class=\\\"row\\\" id=\\\"Rowcontainer\\\" style=\\\"overflow-x: auto; height:450px;\\\">\\r\\n      <div id=\\\"Rowwrapper\\\">\\r\\n        <!-- <div class=\\\"row\\\" style=\\\"display: flex;\\r\\nflex-wrap: nowrap;\\r\\noverflow-x: auto; height:450px;width:610px;margin-left: 32px;\\\"> -->\\r\\n        <div style=\\\"bottom:100;width: 50%;margin-left: 25%;margin-top: 3%;\\\">\\r\\n          <table style=\\\" margin-left: -48px;\\\">\\r\\n            <tr>\\r\\n              <td>\\r\\n                <div *ngIf=\\\"!IssuesLists[subKey]['MetricProcess'][subKey] && (MapType==='1' ||MapType==='3')\\\"\\r\\n                  style=\\\"margin-left:140px;\\\"></div>\\r\\n                <div *ngIf=\\\"MapType==='0' ||MapType==='2'\\\"></div>\\r\\n                <!-- <div *ngIf=\\\"!IssuesLists[subKey]['MetricProcess'][subKey] \\\" style=\\\"margin-left:100px;\\\"></div> -->\\r\\n                <div *ngIf=\\\"IssuesLists[subKey]['MetricProcess'][subKey] && (MapType==='1' ||MapType==='3')\\\" style=\\\"width: 140px;\\r\\n        min-height: 40px;\\r\\n        margin-left: 2px;\\\" class=\\\"squareM\\\">\\r\\n                  <table>\\r\\n                    <tr>\\r\\n\\r\\n                      <td style=\\\"word-break: normal;\\\"><strong>No.</strong></td>\\r\\n                      <td style=\\\"float: left;\\\">\\r\\n                        <strong>Metrics</strong>\\r\\n                      </td>\\r\\n                    </tr>\\r\\n                    <tr *ngFor=\\\"let data of IssuesLists[subKey]['MetricProcess'][subKey];let i=index;\\\">\\r\\n                      <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n                        {{i+1}}\\r\\n                      </td>\\r\\n                      <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n                        {{data.Description}}\\r\\n                      </td>\\r\\n                    </tr>\\r\\n                  </table>\\r\\n                </div>\\r\\n              </td>\\r\\n              <td>\\r\\n                <div class=\\\"square\\\" style=\\\"padding:18px 1px 18px 1px; width:200px;height: 100px;\\\">\\r\\n                  <span style=\\\"float: left; color:#4aabe7;\\\" title=\\\"No metric associated with this process\\\"\\r\\n                    *ngIf=\\\"!IssuesLists[subKey].MetricCount && !IssuesLists[subKey].pMetricCount  && !IssuesLists[subKey].SubMetricCount && (MapType==='1' ||MapType==='3')\\\">\\r\\n                    &nbsp;<img src=\\\"./assets/images/triangle-blue.png\\\" alt=\\\"bluetriangle\\\"\\r\\n                      style=\\\"width: 13px;margin-top: -32px;\\\" /></span>\\r\\n                  <span title=\\\"No frustrations assosiated with this process\\\" style=\\\"float: left; color: #d55632;\\\"\\r\\n                    *ngIf=\\\"!IssuesLists[subKey].IssueCount && !IssuesLists[subKey].pIssueCount && !IssuesLists[subKey].SubIssueCount && (MapType==='0' ||MapType==='3')\\\">\\r\\n                    &nbsp;<img src=\\\"./assets/images/triangle-red.png\\\" alt=\\\"redtriangle\\\"\\r\\n                      style=\\\"width: 13px;margin-top: -32px;\\\" /> </span>\\r\\n                  <span style=\\\"float: left;margin-left:3px;margin-top: -11px;\\\" class=\\\"circleS\\\"\\r\\n                    title=\\\"Sub activity exits\\\" *ngIf=\\\"IssuesLists[subKey].SubActivity\\\"> &nbsp;</span>\\r\\n                  <hr style=\\\"background-color: #265382;margin-top: 8px;\\\">\\r\\n                  <span style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\r\\n                    title=\\\"{{ProcessName}}\\\">&nbsp; {{ProcessName}}&nbsp; </span>\\r\\n\\r\\n                </div>\\r\\n              </td>\\r\\n              <td>\\r\\n                <div *ngIf=\\\"!IssuesLists[subKey]['IssueProcess'][subKey]  && (MapType==='0' ||MapType==='3')\\\"></div>\\r\\n                <div *ngIf=\\\"MapType==='1' ||MapType==='2'\\\"></div>\\r\\n                <div *ngIf=\\\"IssuesLists[subKey]['IssueProcess'][subKey]  && (MapType==='0' ||MapType==='3')\\\"\\r\\n                  style=\\\" width: 140px; min-height: 40px; margin-left: 2px;\\\" class=\\\"squareIssues\\\">\\r\\n                  <table>\\r\\n                    <tr>\\r\\n                      <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\r\\n                      <td style=\\\"float: left;\\\">\\r\\n                        <strong>Frustrations</strong>\\r\\n                      </td>\\r\\n                    </tr>\\r\\n                    <tr *ngFor=\\\"let data of IssuesLists[subKey]['IssueProcess'][subKey];let i=index;\\\">\\r\\n\\r\\n                      <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n                        {{i+1}}\\r\\n                      </td>\\r\\n                      <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n                        {{data.Subject}}\\r\\n                      </td>\\r\\n                      <td style=\\\"height:20px;width:20px;\\\">\\r\\n                        <span *ngIf=\\\"data.StatusID===1\\\"></span>\\r\\n                        <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\" style=\\\"background-color: red;\\\"></span>\\r\\n                        <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\" style=\\\"background-color: yellow;\\\"></span>\\r\\n                        <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\" style=\\\"background-color: green;\\\"></span>\\r\\n                        <span *ngIf=\\\"data.StatusID===5\\\" class=\\\"circleM\\\" style=\\\"background-color: black;\\\"></span>\\r\\n                      </td>\\r\\n                    </tr>\\r\\n                  </table>\\r\\n                </div>\\r\\n              </td>\\r\\n            </tr>\\r\\n          </table>\\r\\n          <div class=\\\"row\\\" *ngFor=\\\"let Activity of IssuesLists[subKey]['Activity']\\\"\\r\\n            style=\\\"   margin-left: 1px; padding:8px 0px 8px 1px\\\">\\r\\n            <table style=\\\"margin-left: -52px; \\\">\\r\\n              <tr>\\r\\n                <td>\\r\\n                  <div *ngIf=\\\"subKey\\\" squareBox>\\r\\n                    <div\\r\\n                      *ngIf=\\\"!IssuesLists[subKey]['MetricList'][Activity.ActivityID] && (MapType==='1' ||MapType==='3')\\\"\\r\\n                      style=\\\"width: 140px; min-height: 40px;margin-left: 2px;\\\"></div>\\r\\n                    <div *ngIf=\\\"MapType==='0' ||MapType==='2'\\\"></div>\\r\\n                    <div class=\\\"squareM\\\"\\r\\n                      *ngIf=\\\"IssuesLists[subKey]['MetricList'][Activity.ActivityID] && (MapType==='1' ||MapType==='3')\\\"\\r\\n                      style=\\\"width: 140px; min-height: 40px;margin-left: 2px;\\\">\\r\\n                      <div *ngIf=\\\"IssuesLists[subKey]['Metric']\\\">\\r\\n                        <table>\\r\\n                          <tr>\\r\\n                            <td style=\\\"word-break:normal;\\\"><strong>No.</strong> </td>\\r\\n                            <td style=\\\"float: left;\\\">\\r\\n                              <strong>Metrics</strong>\\r\\n                            </td>\\r\\n                          </tr>\\r\\n                          <tr *ngFor=\\\"let data of IssuesLists[subKey]['MetricList'][Activity.ActivityID];let i=index;\\\">\\r\\n                            <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n                              {{i+1}}\\r\\n                            </td>\\r\\n                            <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n                              {{data.Description}}\\r\\n                            </td>\\r\\n                          </tr>\\r\\n                        </table>\\r\\n                      </div>\\r\\n\\r\\n\\r\\n                    </div>\\r\\n\\r\\n                  </div>\\r\\n                </td>\\r\\n                <td>\\r\\n                  <div class=\\\"col-sm squareInActvty\\\" id=\\\"activity\\\" *ngIf=\\\"Activity.ActivityTypeID==1\\\"\\r\\n                    style=\\\"width:200px; padding:18px 0px 18px 1px;height: 70px;\\\">\\r\\n                    <div class=\\\"actAlign\\\">\\r\\n                      <!-- <div class=\\\"col-sm-12\\\" > -->\\r\\n                      <!-- <div  style=\\\"height: 35px; display: inline-block;\\\"> -->\\r\\n                      <span class=\\\"dots\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\r\\n                        title=\\\"{{Activity.ActivityName}}\\\"><b>{{Activity.ActivityName}} </b></span>\\r\\n                      <!-- </div> -->\\r\\n\\r\\n                      <div ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\"\\r\\n                        title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\r\\n                        *ngIf=\\\"showMetricAlert[Activity.ActivityID] && (MapType==='1' || MapType==='3')\\\"\\r\\n                        style=\\\"color: #4aabe7; display:inline-block; float: right;\\\">\\r\\n                        <img src=\\\"./assets/images/star-blue.png\\\" alt=\\\"bluestar\\\" width=\\\"20px;\\\" />\\r\\n\\r\\n                      </div>\\r\\n\\r\\n                      <div style=\\\"color:#d55632; display: inline-block;float: right;\\\"\\r\\n                        title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\r\\n                        *ngIf=\\\"alertPTypeID===1 && IssuesLists[subKey]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\r\\n                        <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"bluestar\\\" width=\\\"20px;\\\" />\\r\\n                      </div>\\r\\n\\r\\n                      <!-- </div> -->\\r\\n\\r\\n\\r\\n                    </div>\\r\\n                  </div>\\r\\n                  <div class=\\\"col-sm squareExActvty\\\" id=\\\"activity\\\" *ngIf=\\\"Activity.ActivityTypeID!=1\\\"\\r\\n                    style=\\\"width:200px; padding:18px 0px 18px 1px;height: 70px;\\\">\\r\\n                    <div class=\\\"actAlign\\\">\\r\\n                      <!-- <div class=\\\"col-sm-12\\\" > -->\\r\\n                      <!-- <div  style=\\\"height: 35px; display: inline-block;\\\"> -->\\r\\n                      <span class=\\\"dots\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\r\\n                        title=\\\"{{Activity.ActivityName}}\\\"><b>{{Activity.ActivityName}} </b></span>\\r\\n                      <!-- </div> -->\\r\\n\\r\\n                      <div ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\"\\r\\n                        title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\r\\n                        *ngIf=\\\"showMetricAlert[Activity.ActivityID] && (MapType==='1' || MapType==='3')\\\"\\r\\n                        style=\\\"color: #4aabe7; display:inline-block;float: right;\\\">\\r\\n                        <img src=\\\"./assets/images/star-blue.png\\\" alt=\\\"bluestar\\\" width=\\\"20px;\\\" />\\r\\n\\r\\n                      </div>\\r\\n\\r\\n                      <div style=\\\"color:#d55632; display: inline-block;float: right;\\\"\\r\\n                        title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\r\\n                        *ngIf=\\\"alertPTypeID===1 && IssuesLists[subKey]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\r\\n                        <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\" width=\\\"20px;\\\" />\\r\\n                      </div>\\r\\n\\r\\n                      <!-- </div> -->\\r\\n\\r\\n\\r\\n                    </div>\\r\\n                  </div>\\r\\n                </td>\\r\\n                <td>\\r\\n                  <span *ngIf=\\\"subKey\\\" style=\\\"margin-left:3px;margin-top: 5px;\\\" squareBox>\\r\\n                    <div\\r\\n                      *ngIf=\\\"IssuesLists[subKey]['IssueList'][Activity.ActivityID] && (MapType==='0' ||MapType==='3')\\\"\\r\\n                      style=\\\"min-width: 82px;min-height: 40px;margin-left: 1px;\\\">\\r\\n                      <div *ngIf=\\\"MapType==='1' ||MapType==='2'\\\"></div>\\r\\n                      <div *ngIf=\\\"IssuesLists[subKey]['Issue']\\\"\\r\\n                        style=\\\" width: 140px; min-height: 40px; margin-left: 2px;\\\" class=\\\"squareIssues\\\">\\r\\n                        <table>\\r\\n                          <tr>\\r\\n                            <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\r\\n                            <td style=\\\"float: left;\\\">\\r\\n                              <strong>Frustrations</strong>\\r\\n                            </td>\\r\\n                          </tr>\\r\\n                          <tr *ngFor=\\\"let data of IssuesLists[subKey]['IssueList'][Activity.ActivityID];let i=index;\\\">\\r\\n\\r\\n                            <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n                              {{i+1}}\\r\\n                            </td>\\r\\n                            <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n                              {{data.Subject}}\\r\\n                            </td>\\r\\n                            <td style=\\\"height:20px;width:20px;\\\">\\r\\n                              <span *ngIf=\\\"data.StatusID===1\\\"></span>\\r\\n                              <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\" style=\\\"background-color: red;\\\"></span>\\r\\n                              <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\" style=\\\"background-color: yellow;\\\"></span>\\r\\n                              <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\" style=\\\"background-color: green;\\\"></span>\\r\\n                              <span *ngIf=\\\"data.StatusID===5\\\" class=\\\"circleM\\\" style=\\\"background-color: black;\\\"></span>\\r\\n                            </td>\\r\\n                          </tr>\\r\\n                        </table>\\r\\n                      </div>\\r\\n                    </div>\\r\\n                  </span>\\r\\n                </td>\\r\\n              </tr>\\r\\n            </table>\\r\\n\\r\\n          </div>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n    <!-- </div> -->\\r\\n    <div class=\\\"row\\\" id=\\\"print-sectionExpand\\\" style=\\\"display: none;zoom: 90%;\\\">\\r\\n      <div class=\\\"row\\\" style=\\\"text-align: center; word-break: break-word;\\\">\\r\\n        <div class=\\\"col-sm-6\\\">\\r\\n          <strong> {{CompanyName }} - </strong> {{ProcessName}} Process Map <br>\\r\\n          <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\r\\n        </div>\\r\\n        <div class=\\\"col-sm-6\\\">\\r\\n          <span>Team: {{TeamName}}</span><br>\\r\\n          <span>Version: {{currentVersion[\\\"VersionName\\\"]}}</span>\\r\\n        </div>\\r\\n      </div><br>\\r\\n      <div style=\\\"bottom:100;width: 50%;margin-left: 25%;\\\">\\r\\n        <table style=\\\" margin-left: -48px;\\\">\\r\\n          <tr>\\r\\n            <td>\\r\\n              <div *ngIf=\\\"!IssuesLists[subKey]['MetricProcess'][subKey] && (MapType==='1' ||MapType==='3')\\\"\\r\\n                style=\\\"margin-left:140px;\\\"></div>\\r\\n              <div *ngIf=\\\"MapType==='0' ||MapType==='2'\\\"></div>\\r\\n              <!-- <div *ngIf=\\\"!IssuesLists[subKey]['MetricProcess'][subKey] \\\" style=\\\"margin-left:100px;\\\"></div> -->\\r\\n              <div *ngIf=\\\"IssuesLists[subKey]['MetricProcess'][subKey] && (MapType==='1' ||MapType==='3')\\\" style=\\\"width: 140px;\\r\\n        min-height: 40px;\\r\\n        margin-left: 2px;\\\" class=\\\"squareM\\\">\\r\\n                <table>\\r\\n                  <tr>\\r\\n                    <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\r\\n                    <td style=\\\"float: left;\\\">\\r\\n                      <strong>Metrics</strong>\\r\\n                    </td>\\r\\n                  </tr>\\r\\n                  <tr *ngFor=\\\"let data of IssuesLists[subKey]['MetricProcess'][subKey];let i=index;\\\">\\r\\n                    <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n                      {{i+1}}\\r\\n                    </td>\\r\\n                    <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n                      {{data.Description}}\\r\\n                    </td>\\r\\n                  </tr>\\r\\n                </table>\\r\\n              </div>\\r\\n            </td>\\r\\n            <td>\\r\\n              <div class=\\\"square\\\" style=\\\"padding:18px 1px 18px 1px; width:200px;height: 100px;\\\">\\r\\n                <span style=\\\"float: left; color:#4aabe7;\\\" title=\\\"No metric associated with this process\\\"\\r\\n                  *ngIf=\\\"!IssuesLists[subKey].MetricCount && !IssuesLists[subKey].pMetricCount  && !IssuesLists[subKey].SubMetricCount && (MapType==='1' ||MapType==='3')\\\">\\r\\n                  &nbsp;<img src=\\\"./assets/images/triangle-blue.png\\\" alt=\\\"bluetriangle\\\"\\r\\n                    style=\\\"width: 13px;margin-top: -32px;\\\" /></span>\\r\\n                <span title=\\\"No frustrations assosiated with this process\\\" style=\\\"float: left; color: #d55632;\\\"\\r\\n                  *ngIf=\\\"!IssuesLists[subKey].IssueCount && !IssuesLists[subKey].pIssueCount && !IssuesLists[subKey].SubIssueCount && (MapType==='0' ||MapType==='3')\\\">\\r\\n                  &nbsp;<img src=\\\"./assets/images/triangle-red.png\\\" alt=\\\"redtriangle\\\"\\r\\n                    style=\\\"width: 13px;margin-top: -32px;\\\" /> </span>\\r\\n                <span style=\\\"float: left;margin-left:3px;margin-top: -11px;\\\" class=\\\"circleS\\\" title=\\\"Sub activity exits\\\"\\r\\n                  *ngIf=\\\"IssuesLists[subKey].SubActivity\\\"> &nbsp;</span>\\r\\n                <hr style=\\\"background-color: #265382;margin-top: 8px;\\\">\\r\\n                <span style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\r\\n                  title=\\\"{{ProcessName}}\\\">&nbsp; {{ProcessName}}&nbsp; </span>\\r\\n\\r\\n              </div>\\r\\n            </td>\\r\\n            <td>\\r\\n              <div *ngIf=\\\"!IssuesLists[subKey]['IssueProcess'][subKey]  && (MapType==='0' ||MapType==='3')\\\"></div>\\r\\n              <div *ngIf=\\\"MapType==='1' ||MapType==='2'\\\"></div>\\r\\n              <div *ngIf=\\\"IssuesLists[subKey]['IssueProcess'][subKey]  && (MapType==='0' ||MapType==='3')\\\"\\r\\n                style=\\\" width: 140px; min-height: 40px; margin-left: 2px;\\\" class=\\\"squareIssues\\\">\\r\\n                <table>\\r\\n                  <tr>\\r\\n                    <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\r\\n                    <td style=\\\"float: left;\\\">\\r\\n                      <strong>Frustrations</strong>\\r\\n                    </td>\\r\\n                  </tr>\\r\\n                  <tr *ngFor=\\\"let data of IssuesLists[subKey]['IssueProcess'][subKey];let i=index;\\\">\\r\\n\\r\\n                    <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n                      {{i+1}}\\r\\n                    </td>\\r\\n                    <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n                      {{data.Subject}}\\r\\n                    </td>\\r\\n                    <td style=\\\"height:20px;width:20px;\\\">\\r\\n                      <span *ngIf=\\\"data.StatusID===1\\\"></span>\\r\\n                      <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\" style=\\\"background-color: red;\\\"></span>\\r\\n                      <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\" style=\\\"background-color: yellow;\\\"></span>\\r\\n                      <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\" style=\\\"background-color: green;\\\"></span>\\r\\n                      <span *ngIf=\\\"data.StatusID===5\\\" class=\\\"circleM\\\" style=\\\"background-color: black;\\\"></span>\\r\\n                    </td>\\r\\n                  </tr>\\r\\n                </table>\\r\\n              </div>\\r\\n            </td>\\r\\n          </tr>\\r\\n        </table>\\r\\n        <div class=\\\"row\\\" *ngFor=\\\"let Activity of IssuesLists[subKey]['Activity']\\\"\\r\\n          style=\\\"   margin-left: 1px; padding:8px 0px 8px 1px\\\">\\r\\n          <table style=\\\"margin-left: -52px; \\\">\\r\\n            <tr>\\r\\n              <td>\\r\\n                <div *ngIf=\\\"subKey\\\" squareBox>\\r\\n                  <div\\r\\n                    *ngIf=\\\"!IssuesLists[subKey]['MetricList'][Activity.ActivityID] && (MapType==='1' ||MapType==='3')\\\"\\r\\n                    style=\\\"width: 140px; min-height: 40px;margin-left: 2px;\\\"></div>\\r\\n                  <div *ngIf=\\\"MapType==='0' ||MapType==='2'\\\"></div>\\r\\n                  <div class=\\\"squareM\\\"\\r\\n                    *ngIf=\\\"IssuesLists[subKey]['MetricList'][Activity.ActivityID] && (MapType==='1' ||MapType==='3')\\\"\\r\\n                    style=\\\"width: 140px; min-height: 40px;margin-left: 2px;\\\">\\r\\n                    <div *ngIf=\\\"IssuesLists[subKey]['Metric']\\\">\\r\\n                      <table>\\r\\n                        <tr>\\r\\n                          <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\r\\n                          <td style=\\\"float: left;\\\">\\r\\n                            <strong>Metrics</strong>\\r\\n                          </td>\\r\\n                        </tr>\\r\\n                        <tr *ngFor=\\\"let data of IssuesLists[subKey]['MetricList'][Activity.ActivityID];let i=index;\\\">\\r\\n                          <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n                            {{i+1}}\\r\\n                          </td>\\r\\n                          <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n                            {{data.Description}}\\r\\n                          </td>\\r\\n                        </tr>\\r\\n                      </table>\\r\\n                    </div>\\r\\n\\r\\n\\r\\n                  </div>\\r\\n\\r\\n                </div>\\r\\n              </td>\\r\\n              <td>\\r\\n                <div class=\\\"col-sm squareInActvty\\\" id=\\\"activity\\\" *ngIf=\\\"Activity.ActivityTypeID==1\\\"\\r\\n                  style=\\\"width:200px; padding:18px 0px 18px 1px;height: 70px;\\\">\\r\\n                  <div class=\\\"actAlign\\\">\\r\\n                    <!-- <div class=\\\"col-sm-12\\\" > -->\\r\\n                    <!-- <div  style=\\\"height: 35px; display: inline-block;\\\"> -->\\r\\n                    <span class=\\\"dots\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\r\\n                      title=\\\"{{Activity.ActivityName}}\\\"><b>{{Activity.ActivityName}} </b></span>\\r\\n                    <!-- </div> -->\\r\\n\\r\\n                    <span ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\"\\r\\n                      title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\r\\n                      *ngIf=\\\"showMetricAlert[Activity.ActivityID] && (MapType==='1' || MapType==='3')\\\"\\r\\n                      style=\\\"color: #4aabe7; display:inline-block;float: right;\\\">\\r\\n                      <img src=\\\"./assets/images/star-blue.png\\\" alt=\\\"bluestar\\\" width=\\\"20px;\\\" />\\r\\n\\r\\n                    </span>\\r\\n\\r\\n                    <span style=\\\"color:#d55632; display: inline-block;float: right;\\\"\\r\\n                      title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\r\\n                      *ngIf=\\\"alertPTypeID===1 && IssuesLists[subKey]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\r\\n                      <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"bluestar\\\" width=\\\"20px;\\\" />\\r\\n                    </span>\\r\\n\\r\\n                    <!-- </div> -->\\r\\n\\r\\n\\r\\n                  </div>\\r\\n                </div>\\r\\n                <div class=\\\"col-sm squareExActvty\\\" id=\\\"activity\\\" *ngIf=\\\"Activity.ActivityTypeID!=1\\\"\\r\\n                  style=\\\"width:200px; padding:18px 0px 18px 1px;height: 70px;\\\">\\r\\n                  <div class=\\\"actAlign\\\">\\r\\n                    <!-- <div class=\\\"col-sm-12\\\" > -->\\r\\n                    <!-- <div  style=\\\"height: 35px; display: inline-block;\\\"> -->\\r\\n                    <span class=\\\"dots\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\r\\n                      title=\\\"{{Activity.ActivityName}}\\\"><b>{{Activity.ActivityName}} </b></span>\\r\\n                    <!-- </div> -->\\r\\n\\r\\n                    <span ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\"\\r\\n                      title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\r\\n                      *ngIf=\\\"showMetricAlert[Activity.ActivityID] && (MapType==='1' || MapType==='3')\\\"\\r\\n                      style=\\\"color: #4aabe7; display:inline-block;float: right;\\\">\\r\\n                      <img src=\\\"./assets/images/star-blue.png\\\" alt=\\\"bluestar\\\" width=\\\"20px;\\\" />\\r\\n\\r\\n                    </span>\\r\\n\\r\\n                    <span style=\\\"color:#d55632; display: inline-block;float: right;\\\"\\r\\n                      title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\r\\n                      *ngIf=\\\"alertPTypeID===1 && IssuesLists[subKey]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\r\\n                      <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\" width=\\\"20px;\\\" />\\r\\n                    </span>\\r\\n\\r\\n                    <!-- </div> -->\\r\\n\\r\\n\\r\\n                  </div>\\r\\n                </div>\\r\\n              </td>\\r\\n              <td>\\r\\n                <span *ngIf=\\\"subKey\\\" style=\\\"margin-left:3px;margin-top: 5px;\\\" squareBox>\\r\\n                  <div *ngIf=\\\"IssuesLists[subKey]['IssueList'][Activity.ActivityID] && (MapType==='0' ||MapType==='3')\\\"\\r\\n                    style=\\\"min-width: 82px;min-height: 40px;margin-left: 1px;\\\">\\r\\n                    <div *ngIf=\\\"MapType==='1' ||MapType==='2'\\\"></div>\\r\\n                    <div *ngIf=\\\"IssuesLists[subKey]['Issue']\\\" style=\\\" width: 140px; min-height: 40px; margin-left: 2px;\\\"\\r\\n                      class=\\\"squareIssues\\\">\\r\\n                      <table>\\r\\n                        <tr>\\r\\n                          <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\r\\n                          <td style=\\\"float: left;\\\">\\r\\n                            <strong>Frustrations</strong>\\r\\n                          </td>\\r\\n                        </tr>\\r\\n                        <tr *ngFor=\\\"let data of IssuesLists[subKey]['IssueList'][Activity.ActivityID];let i=index;\\\">\\r\\n\\r\\n                          <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n                            {{i+1}}\\r\\n                          </td>\\r\\n                          <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n                            {{data.Subject}}\\r\\n                          </td>\\r\\n                          <td style=\\\"height:20px;width:20px;\\\">\\r\\n                            <span *ngIf=\\\"data.StatusID===1\\\"></span>\\r\\n                            <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\" style=\\\"background-color: red;\\\"></span>\\r\\n                            <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\" style=\\\"background-color: yellow;\\\"></span>\\r\\n                            <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\" style=\\\"background-color: green;\\\"></span>\\r\\n                            <span *ngIf=\\\"data.StatusID===5\\\" class=\\\"circleM\\\" style=\\\"background-color: black;\\\"></span>\\r\\n                          </td>\\r\\n                        </tr>\\r\\n                      </table>\\r\\n                    </div>\\r\\n                  </div>\\r\\n                </span>\\r\\n              </td>\\r\\n            </tr>\\r\\n          </table>\\r\\n\\r\\n        </div>\\r\\n      </div>\\r\\n      <div class=\\\"footer\\\">\\r\\n        <label>&copy; 2022 The Dorsey Group, All rights reserved.</label>\\r\\n      </div>\\r\\n    </div>\\r\\n  </div>\\r\\n\\r\\n</div>\\r\\n\\r\\n<div *ngIf=\\\"data==='subAct'\\\">\\r\\n\\r\\n  <div class=\\\"XBtn\\\">\\r\\n    <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">&times;</span>\\r\\n  </div>\\r\\n\\r\\n\\r\\n  <div class=\\\"dialogHead\\\">\\r\\n    <div class=\\\"infoHead\\\">\\r\\n      <div class=\\\"companyInfo\\\">\\r\\n        <strong> {{CompanyName }} - </strong> SubProcessMap of Process <b>{{ProcessName}} </b> <br>\\r\\n        <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span>\\r\\n      </div>\\r\\n      <div class=\\\"teamInfo\\\">\\r\\n        <span>Team: {{TeamName}}</span><br>\\r\\n        <span>Version: {{currentVersion[\\\"VersionName\\\"]}}</span>\\r\\n      </div>\\r\\n    </div>\\r\\n\\r\\n    <div class=\\\"ActionButton\\\">\\r\\n      <div>\\r\\n        <button class=\\\"btn btnbg1\\\" matTooltip=\\\"Expand sub process map\\\" style=\\\"font-size: 12px;\\\" (click)=\\\"ExpandMap()\\\"\\r\\n          *ngIf=\\\"!expandMap\\\">Expand ProcessMap</button>\\r\\n        <button class=\\\"btn btnbg1\\\" matTooltip=\\\"Hide sub process map\\\" style=\\\"font-size: 12px;\\\" (click)=\\\"HideMap()\\\"\\r\\n          *ngIf=\\\"expandMap\\\">Hide ProcessMap</button>\\r\\n\\r\\n      </div>\\r\\n\\r\\n      <div>\\r\\n        <button class=\\\"btn btnbg1\\\" matTooltip=\\\"Print sub process map\\\" printTitle=\\\"{{CompanyName}}\\\"\\r\\n          style=\\\"font-size: 12px;\\\" printSectionId=\\\"print-sectionSub\\\" [useExistingCss]=\\\"true\\\"\\r\\n          ngxPrint>Print</button>&nbsp;&nbsp;\\r\\n\\r\\n      </div>\\r\\n    </div>\\r\\n\\r\\n  </div>\\r\\n\\r\\n\\r\\n  <br>\\r\\n\\r\\n\\r\\n  <div class=\\\"row\\\">\\r\\n    <div class=\\\"col-sm-12 \\\" style=\\\"display: flex;\\r\\n        flex-wrap: nowrap;\\r\\n        overflow-x: auto;height: 600px;\\\">\\r\\n      <div class=\\\"col-lg form-group\\\" *ngFor=\\\"let Activity of IssuesLists[subKey]['Activity']\\\"\\r\\n        style=\\\"margin-top: 10px;margin-left: 1px;width: 300px;\\\">\\r\\n        <div class=\\\"col-sm square form-group\\\" style=\\\"padding:2px 3px 31px 1px;height: 100px;width: 270px;\\\" id=\\\"activity\\\"\\r\\n          *ngIf=\\\"Activity.ActivityTypeID==1\\\">\\r\\n          <span style=\\\"cursor:pointer;float:right;\\\" (click)=\\\"AddMetricOrIssue(Activity.ActivityID,Activity.ParentID)\\\"\\r\\n            class=\\\"donotprintthis\\\">\\r\\n            <span class=\\\"fa-stack\\\">\\r\\n              <i class=\\\"fa fa-square-o fa-stack-1x\\\"></i>\\r\\n              <i class=\\\"fa fa-plus fa-stack-1x\\\"></i>\\r\\n            </span>\\r\\n          </span>\\r\\n\\r\\n          <hr style=\\\"background-color: #265382;margin-top: 27px;\\\">\\r\\n\\r\\n          <div class=\\\"row\\\">\\r\\n            <div class=\\\"col-sm-12\\\">\\r\\n              <div class=\\\"col-sm-10 offset-1\\\" style=\\\"height: 18px;font-size: 11px;\\\">\\r\\n                <span class=\\\"dots\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\r\\n                  title=\\\"{{Activity.ActivityName}}\\\">{{Activity.ActivityName}}\\r\\n                </span>\\r\\n              </div>\\r\\n\\r\\n            </div>\\r\\n          </div>\\r\\n          <span *ngIf=\\\"IssuesLists[subKey]['Metric'][Activity.ActivityID] && (MapType==='1' ||MapType==='3')\\\"\\r\\n            style=\\\"float: right; margin-top: 3px;margin-left: 5px; margin-top:3px;\\\" class=\\\"circlelg metricsbg\\\"\\r\\n            (click)=\\\"getCase(Activity,2);$event.stopPropagation()\\\">\\r\\n            <span> {{IssuesLists[subKey]['Metric'][Activity.ActivityID]}}</span>\\r\\n          </span>\\r\\n          <span *ngIf=\\\"IssuesLists[subKey]['Issue'][Activity.ActivityID]  && (MapType==='0' ||MapType==='3')\\\"\\r\\n            style=\\\"float:right; margin-top: 3px;\\\" class=\\\"circlelg frustrationbg\\\"\\r\\n            (click)=\\\"getCase(Activity,1);$event.stopPropagation()\\\">\\r\\n            <span>{{IssuesLists[subKey]['Issue'][Activity.ActivityID]}}</span>\\r\\n          </span>\\r\\n          <span ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\" *ngIf=\\\"showMetricAlert[Activity.ActivityID]\\\">\\r\\n            <span style=\\\"color: #4aabe7;float: right;\\\" title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\r\\n              *ngIf=\\\"(MapType==='1' || MapType==='3')\\\">\\r\\n              <img src=\\\"./assets/images/star-blue.png\\\" alt=\\\"bluestar\\\" style=\\\"margin-right: 6px; width:17px;\\\" />\\r\\n            </span>\\r\\n          </span>\\r\\n          <span style=\\\"color:#d55632;float: right;margin-right: 6px;\\\"\\r\\n            title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\r\\n            *ngIf=\\\"alertPTypeID===1 && IssuesLists[subKey]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\r\\n            <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\" style=\\\"width:17px;\\\" />\\r\\n          </span>\\r\\n\\r\\n\\r\\n        </div>\\r\\n        <div class=\\\"col-sm square form-group\\\" style=\\\"padding:2px 3px 31px 1px;height: 100px;width: 270px;\\\"\\r\\n          *ngIf=\\\"Activity.ActivityTypeID!=1\\\">\\r\\n          <span style=\\\"cursor:pointer;float:right;\\\" (click)=\\\"AddMetricOrIssue(Activity.ActivityID,Activity.ParentID)\\\"\\r\\n            class=\\\"donotprintthis\\\">\\r\\n            <span class=\\\"fa-stack\\\">\\r\\n              <i class=\\\"fa fa-square-o fa-stack-1x\\\"></i>\\r\\n              <i class=\\\"fa fa-plus fa-stack-1x\\\"></i>\\r\\n            </span>\\r\\n          </span>\\r\\n\\r\\n          <hr style=\\\"background-color: #265382;margin-top: 27px;\\\">\\r\\n          <div class=\\\"row\\\">\\r\\n            <div class=\\\"col-sm-12\\\">\\r\\n              <div class=\\\"col-sm-10 offset-1\\\" style=\\\"height: 18px; font-size: 11px;\\\">\\r\\n                <span class=\\\"dots\\\" title=\\\"{{Activity.ActivityName}}\\\"\\r\\n                  style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\">{{Activity.ActivityName}}\\r\\n                </span>\\r\\n              </div>\\r\\n            </div>\\r\\n          </div>\\r\\n\\r\\n          <span *ngIf=\\\"IssuesLists[subKey]['Metric'][Activity.ActivityID] && (MapType==='1' ||MapType==='3')\\\"\\r\\n            style=\\\"float: right;margin-left: 5px; margin-top:3px;\\\" class=\\\"circlelg metricsbg\\\"\\r\\n            (click)=\\\"getCase(Activity,2);$event.stopPropagation()\\\">\\r\\n            {{IssuesLists[subKey]['Metric'][Activity.ActivityID]}}\\r\\n          </span>\\r\\n          <span *ngIf=\\\"IssuesLists[subKey]['Issue'][Activity.ActivityID]  && (MapType==='0' ||MapType==='3')\\\"\\r\\n            style=\\\"float:right; margin-top: 3px;\\\" class=\\\"circlelg frustrationbg\\\"\\r\\n            (click)=\\\"getCase(Activity,1);$event.stopPropagation()\\\">\\r\\n            {{IssuesLists[subKey]['Issue'][Activity.ActivityID]}}\\r\\n          </span>\\r\\n          <span ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\" *ngIf=\\\"showMetricAlert[Activity.ActivityID]\\\">\\r\\n            <span style=\\\"color: #4aabe7;float: right;\\\" title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\r\\n              *ngIf=\\\"(MapType==='1' || MapType==='3')\\\">\\r\\n              <img src=\\\"./assets/images/star-blue.png\\\" alt=\\\"bluestar\\\" style=\\\"margin-right: 6px; width:17px;\\\" />\\r\\n            </span>\\r\\n          </span>\\r\\n          <span style=\\\"color:#d55632;float: right;margin-right: 6px;\\\"\\r\\n            title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\r\\n            *ngIf=\\\"alertPTypeID===1 && IssuesLists[subKey]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\r\\n            <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\" style=\\\"width:17px;\\\" />\\r\\n          </span>\\r\\n        </div>\\r\\n        <div>\\r\\n          <span *ngIf=\\\"subKey && expandMap\\\" squareBox>\\r\\n            <div *ngIf=\\\"!IssuesLists[subKey]['MetricList'][Activity.ActivityID] \\\" style=\\\"margin-left:102px;\\\"></div>\\r\\n            <div style=\\\"margin-top:5px;\\\"\\r\\n              *ngIf=\\\"IssuesLists[subKey]['MetricList'][Activity.ActivityID] && (MapType==='1' ||MapType==='3')\\\">\\r\\n              <div *ngIf=\\\"IssuesLists[subKey]['Metric']\\\" class=\\\"squareM\\\">\\r\\n                <table>\\r\\n                  <tr>\\r\\n                    <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\r\\n                    <td style=\\\"float: left;\\\">\\r\\n                      <strong>Metrics</strong>\\r\\n                    </td>\\r\\n                  </tr>\\r\\n                  <tr *ngFor=\\\"let data of IssuesLists[subKey]['MetricList'][Activity.ActivityID];let i=index;\\\">\\r\\n                    <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n                      {{i+1}}\\r\\n                    </td>\\r\\n                    <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n                      {{data.Description}}\\r\\n                    </td>\\r\\n                  </tr>\\r\\n                </table>\\r\\n              </div>\\r\\n            </div>\\r\\n          </span>\\r\\n        </div>\\r\\n        <div>\\r\\n          <span *ngIf=\\\"subKey && expandMap\\\" style=\\\"margin-left:4px;margin-top: 5px;\\\" squareBox>\\r\\n            <div *ngIf=\\\"IssuesLists[subKey]['IssueList'][Activity.ActivityID] && (MapType==='0' ||MapType==='3')\\\"\\r\\n              style=\\\"margin-top: -40px;\\\" class=\\\"squareIssues\\\">\\r\\n              <div *ngIf=\\\"IssuesLists[subKey]['Issue']\\\">\\r\\n                <table>\\r\\n                  <tr>\\r\\n                    <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\r\\n                    <td style=\\\"float: left;\\\">\\r\\n                      <strong>Frustrations</strong>\\r\\n                    </td>\\r\\n                  </tr>\\r\\n                  <tr *ngFor=\\\"let data of IssuesLists[subKey]['IssueList'][Activity.ActivityID];let i=index;\\\">\\r\\n                    <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n                      {{i+1}}\\r\\n                    </td>\\r\\n                    <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n                      {{data.Subject}}\\r\\n\\r\\n                    </td>\\r\\n                    <td style=\\\"height:20px;width:20px;\\\">\\r\\n                      <span *ngIf=\\\"data.StatusID===1\\\"></span>\\r\\n                      <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\" style=\\\"background-color: red;\\\"></span>\\r\\n                      <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\" style=\\\"background-color: yellow;\\\"></span>\\r\\n                      <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\" style=\\\"background-color: green;\\\"></span>\\r\\n                      <span *ngIf=\\\"data.StatusID===5\\\" class=\\\"circleM\\\" style=\\\"background-color: black;\\\"></span>\\r\\n                    </td>\\r\\n                  </tr>\\r\\n                </table>\\r\\n              </div>\\r\\n            </div>\\r\\n          </span>\\r\\n        </div>\\r\\n        <div class=\\\"row\\\">\\r\\n          <div class=\\\"col-lg-12 form-group\\\"\\r\\n            *ngFor=\\\"let SubActivity of IssuesLists[subKey]['SubActivity'][Activity.ActivityID]\\\">\\r\\n            <div class=\\\"col-sm squareInActvty\\\" style=\\\" padding:2px 3px 31px 1px;\\r\\n            width: 270px\\\" (click)=\\\"AddMetricOrIssue(SubActivity.ActivityID,SubActivity.ParentID)\\\" id=\\\"activity\\\"\\r\\n              *ngIf=\\\"SubActivity.ActivityTypeID==1\\\">\\r\\n              <div class=\\\"actAlign\\\">\\r\\n                <span class=\\\"dots\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\r\\n                  title=\\\"{{SubActivity.ActivityName}}\\\">\\r\\n                  <b>{{SubActivity.squence}}</b> {{SubActivity.ActivityName}} </span>\\r\\n                <span style=\\\" float:right; font-size: 11px;\\\"\\r\\n                  *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubMetric']  &&(MapType==='1' ||MapType==='3')\\\"\\r\\n                  (click)=\\\"getCase(SubActivity,2);$event.stopPropagation()\\\">\\r\\n                  <span class=\\\"squareKPI2\\\"\\r\\n                    *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubMetric'] [SubActivity.ActivityID] &&(MapType==='1' ||MapType==='3')\\\">\\r\\n                    {{IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubMetric'][SubActivity.ActivityID]}}\\r\\n                  </span>\\r\\n\\r\\n                </span>\\r\\n                <span style=\\\"float:right;\\\"\\r\\n                  *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubIssue']  && (MapType==='0' ||MapType==='3')\\\"\\r\\n                  (click)=\\\"getCase(SubActivity,1);$event.stopPropagation()\\\">\\r\\n                  <span class=\\\"squareIssue1\\\"\\r\\n                    *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubIssue'] [SubActivity.ActivityID] && (MapType==='0' ||MapType==='3')\\\">{{IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubIssue'][SubActivity.ActivityID]}}</span>\\r\\n                </span>\\r\\n              </div>\\r\\n            </div>\\r\\n            <div class=\\\"col-sm squareExActvty\\\" style=\\\" padding:2px 3px 31px 1px;\\r\\n            width: 270px\\\" (click)=\\\"AddMetricOrIssue(SubActivity.ActivityID,SubActivity.ParentID)\\\"\\r\\n              *ngIf=\\\"SubActivity.ActivityTypeID!=1\\\">\\r\\n              <div class=\\\"actAlign\\\">\\r\\n                <span class=\\\"dots\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\r\\n                  title=\\\"{{SubActivity.ActivityName}}\\\"><b>{{SubActivity.squence}}</b>\\r\\n                  {{SubActivity.ActivityName}} </span>\\r\\n                <span style=\\\" float:right; font-size: 11px;\\\"\\r\\n                  *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubMetric'] && (MapType==='1' ||MapType==='3')\\\"\\r\\n                  (click)=\\\"getCase(SubActivity,2);$event.stopPropagation()\\\">\\r\\n                  <span class=\\\"squareKPI2\\\"\\r\\n                    *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubMetric'] [SubActivity.ActivityID] &&(MapType==='1' ||MapType==='3')\\\">\\r\\n                    {{IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubMetric'][SubActivity.ActivityID]}}</span>\\r\\n                </span>\\r\\n                <span style=\\\"float:right;font-size: 11px;\\\"\\r\\n                  *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubIssue'] && (MapType==='0' ||MapType==='3')\\\"\\r\\n                  (click)=\\\"getCase(SubActivity,1);$event.stopPropagation()\\\">\\r\\n                  <span class=\\\"squareIssue1\\\"\\r\\n                    *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubIssue'] [SubActivity.ActivityID] && (MapType==='0' ||MapType==='3')\\\">\\r\\n                    {{IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubIssue'][SubActivity.ActivityID]}}</span>\\r\\n\\r\\n                </span>\\r\\n              </div>\\r\\n            </div>\\r\\n            <div>\\r\\n              <span *ngIf=\\\"subKey && expandMap\\\" squareBox>\\r\\n                <div *ngIf=\\\"!IssuesLists[subKey]['SubActivityMetric'][SubActivity.ActivityID] \\\"\\r\\n                  style=\\\"margin-left:102px;\\\">\\r\\n                </div>\\r\\n                <div style=\\\"margin-top:5px;\\\"\\r\\n                  *ngIf=\\\"IssuesLists[subKey]['SubActivityMetric'][SubActivity.ActivityID] && (MapType==='1' ||MapType==='3')\\\">\\r\\n                  <div *ngIf=\\\"IssuesLists[subKey]['Metric']\\\" class=\\\"squareM\\\">\\r\\n                    <table>\\r\\n                      <tr>\\r\\n                        <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\r\\n                        <td style=\\\"float: left;\\\">\\r\\n                          <strong>Metrics</strong>\\r\\n                        </td>\\r\\n                      </tr>\\r\\n                      <tr\\r\\n                        *ngFor=\\\"let data of IssuesLists[subKey]['SubActivityMetric'][SubActivity.ActivityID];let i=index;\\\">\\r\\n                        <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n                          {{i+1}}\\r\\n                        </td>\\r\\n                        <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n                          {{data.Description}}\\r\\n                        </td>\\r\\n                      </tr>\\r\\n                    </table>\\r\\n                  </div>\\r\\n                </div>\\r\\n              </span>\\r\\n            </div>\\r\\n            <div>\\r\\n              <span *ngIf=\\\"subKey && expandMap\\\" style=\\\"margin-left:4px;margin-top: 5px;\\\" squareBox>\\r\\n                <div\\r\\n                  *ngIf=\\\"IssuesLists[subKey]['SubActivityIssues'][SubActivity.ActivityID] && (MapType==='0' ||MapType==='3')\\\"\\r\\n                  style=\\\"margin-top: -40px;\\\" class=\\\"squareIssues\\\">\\r\\n                  <div *ngIf=\\\"IssuesLists[subKey]['Issue']\\\">\\r\\n                    <table>\\r\\n                      <tr>\\r\\n                        <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\r\\n                        <td style=\\\"float: left;\\\">\\r\\n                          <strong>Frustrations</strong>\\r\\n                        </td>\\r\\n                      </tr>\\r\\n                      <tr\\r\\n                        *ngFor=\\\"let data of IssuesLists[subKey]['SubActivityIssues'][SubActivity.ActivityID];let i=index;\\\">\\r\\n\\r\\n                        <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n                          {{i+1}}\\r\\n                        </td>\\r\\n                        <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n                          {{data.Subject}}\\r\\n\\r\\n                        </td>\\r\\n                        <td style=\\\"height:20px;width:20px;\\\">\\r\\n                          <span *ngIf=\\\"data.StatusID===1\\\"></span>\\r\\n                          <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\" style=\\\"background-color: red;\\\"></span>\\r\\n                          <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\" style=\\\"background-color: yellow;\\\"></span>\\r\\n                          <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\" style=\\\"background-color: green;\\\"></span>\\r\\n                          <span *ngIf=\\\"data.StatusID===5\\\" class=\\\"circleM\\\" style=\\\"background-color: black;\\\"></span>\\r\\n                        </td>\\r\\n                      </tr>\\r\\n                    </table>\\r\\n                  </div>\\r\\n                </div>\\r\\n              </span>\\r\\n            </div>\\r\\n          </div>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </div>\\r\\n\\r\\n\\r\\n  <!-- <div class=\\\"row\\\" mat-dialog-title>\\r\\n\\r\\n          <div  class=\\\"col-lg-6\\\">\\r\\n            <strong> {{CompanyName }} - </strong> SubProcessMap of Process <b>{{ProcessName}} </b> <br>\\r\\n            <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span>\\r\\n          </div>\\r\\n          <div  class=\\\"col-lg-6\\\">\\r\\n            <span>Team: {{TeamName}}</span><br>\\r\\n            <span>Version: {{currentVersion[\\\"VersionName\\\"]}}</span>\\r\\n          </div>\\r\\n\\r\\n\\r\\n\\r\\n      </div>  -->\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n  <div class=\\\"row\\\" id=\\\"print-sectionSub\\\" style=\\\"display: none;zoom: 90%;\\\">\\r\\n    <div class=\\\"row\\\" style=\\\"text-align: center;word-break: break-word;\\\">\\r\\n      <div class=\\\"col-sm-6\\\">\\r\\n        <strong> {{CompanyName }} - </strong> Sub Map of <b>{{ProcessName}} </b> <br>\\r\\n        <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\r\\n      </div>\\r\\n      <div class=\\\"col-sm-6\\\">\\r\\n        <span>Team: {{TeamName}}</span><br>\\r\\n        <span>Version: {{currentVersion[\\\"VersionName\\\"]}}</span>\\r\\n      </div>\\r\\n\\r\\n    </div>\\r\\n\\r\\n    <style>\\r\\n      @media print {\\r\\n        .testq {\\r\\n          page-break-inside: avoid !important;\\r\\n        }\\r\\n\\r\\n        .multidata {\\r\\n          display: block !important;\\r\\n          page-break-inside: avoid !important;\\r\\n        }\\r\\n\\r\\n        .testq {\\r\\n          page-break-after: always !important;\\r\\n        }\\r\\n\\r\\n        .testq:last-child {\\r\\n          page-break-after: avoid !important;\\r\\n        }\\r\\n\\r\\n      }\\r\\n    </style>\\r\\n\\r\\n    <div>\\r\\n      <div class=\\\"row\\\">\\r\\n        <!--<div class=\\\"col-sm-12\\\" style=\\\"display: flex;\\r\\n      flex-wrap: nowrap;\\r\\n      overflow-x: auto;height: 400px;\\\"> -->\\r\\n        <div class=\\\"multidata\\\" style=\\\"margin-bottom:2%;padding-right: 0%;margin-left:2%;\\\"\\r\\n          *ngFor=\\\"let Activity of IssuesLists[subKey]['Activity']\\\">\\r\\n          <div class=\\\"testq multidata\\\" style=\\\"margin:5% 0% !important;\\\">\\r\\n            <div class=\\\"col-sm-12\\\" style=\\\"margin-top: 10px;margin-left: 1px;width: 300px;\\\">\\r\\n              <div class=\\\"col-sm square form-group\\\" style=\\\"padding:2px 3px 31px 1px;height: 100px;\\\" id=\\\"activity\\\"\\r\\n                *ngIf=\\\"Activity.ActivityTypeID==1\\\">\\r\\n                <span style=\\\"cursor:pointer;float:right;\\\"\\r\\n                  (click)=\\\"AddMetricOrIssue(Activity.ActivityID,Activity.ParentID)\\\" class=\\\"donotprintthis\\\">\\r\\n                  <span class=\\\"fa-stack\\\">\\r\\n                    <i class=\\\"fa fa-square-o fa-stack-1x\\\"></i>\\r\\n                    <i class=\\\"fa fa-plus fa-stack-1x\\\"></i>\\r\\n                  </span>\\r\\n                </span>\\r\\n\\r\\n                <hr style=\\\"background-color: #265382;margin-top: 27px;\\\">\\r\\n\\r\\n                <div class=\\\"row\\\">\\r\\n                  <div class=\\\"col-sm-12\\\">\\r\\n                    <div class=\\\"col-sm-10 offset-1\\\" style=\\\"height: 18px;font-size: 11px;\\\">\\r\\n                      <span class=\\\"dots\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\r\\n                        title=\\\"{{Activity.ActivityName}}\\\">{{Activity.ActivityName}}\\r\\n                      </span>\\r\\n                    </div>\\r\\n\\r\\n                  </div>\\r\\n                </div>\\r\\n                <span *ngIf=\\\"IssuesLists[subKey]['Metric'][Activity.ActivityID] && (MapType==='1' ||MapType==='3')\\\"\\r\\n                  style=\\\"float: right;margin-left: 5px;\\\" class=\\\"circlelg metricsbg\\\"\\r\\n                  (click)=\\\"getCase(Activity,2);$event.stopPropagation()\\\">\\r\\n                  <span> {{IssuesLists[subKey]['Metric'][Activity.ActivityID]}}</span>\\r\\n                </span>\\r\\n                <span *ngIf=\\\"IssuesLists[subKey]['Issue'][Activity.ActivityID]  && (MapType==='0' ||MapType==='3')\\\"\\r\\n                  style=\\\"float:right;\\\" class=\\\"circlelg frustrationbg\\\"\\r\\n                  (click)=\\\"getCase(Activity,1);$event.stopPropagation()\\\">\\r\\n                  <span>{{IssuesLists[subKey]['Issue'][Activity.ActivityID]}}</span>\\r\\n                </span>\\r\\n                <span ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\" *ngIf=\\\"showMetricAlert[Activity.ActivityID]\\\">\\r\\n                  <span style=\\\"color: #4aabe7;float: right;\\\" title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\r\\n                    *ngIf=\\\"(MapType==='1' || MapType==='3')\\\">\\r\\n                    <img src=\\\"./assets/images/star-blue.png\\\" alt=\\\"bluestar\\\" style=\\\"margin-right: 6px; width:17px;\\\" />\\r\\n                  </span>\\r\\n                </span>\\r\\n                <span style=\\\"color:#d55632;float: right;margin-right: 6px;\\\"\\r\\n                  title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\r\\n                  *ngIf=\\\"alertPTypeID===1 && IssuesLists[subKey]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\r\\n                  <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\" style=\\\"width:17px;\\\" />\\r\\n                </span>\\r\\n\\r\\n\\r\\n              </div>\\r\\n              <div class=\\\"col-sm square form-group\\\" style=\\\"padding:2px 3px 31px 1px;height: 100px;width: 270px;\\\"\\r\\n                *ngIf=\\\"Activity.ActivityTypeID!=1\\\">\\r\\n                <span style=\\\"cursor:pointer;float:right;\\\"\\r\\n                  (click)=\\\"AddMetricOrIssue(Activity.ActivityID,Activity.ParentID)\\\" class=\\\"donotprintthis\\\">\\r\\n                  <span class=\\\"fa-stack\\\">\\r\\n                    <i class=\\\"fa fa-square-o fa-stack-1x\\\"></i>\\r\\n                    <i class=\\\"fa fa-plus fa-stack-1x\\\"></i>\\r\\n                  </span>\\r\\n                </span>\\r\\n\\r\\n                <hr style=\\\"background-color: #265382;margin-top: 27px;\\\">\\r\\n                <div class=\\\"row\\\">\\r\\n                  <div class=\\\"col-sm-12\\\">\\r\\n                    <div class=\\\"col-sm-10 offset-1\\\" style=\\\"height: 18px; font-size: 11px;\\\">\\r\\n                      <span class=\\\"dots\\\" title=\\\"{{Activity.ActivityName}}\\\"\\r\\n                        style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\">{{Activity.ActivityName}}\\r\\n                      </span>\\r\\n                    </div>\\r\\n                  </div>\\r\\n                </div>\\r\\n\\r\\n                <span *ngIf=\\\"IssuesLists[subKey]['Metric'][Activity.ActivityID] && (MapType==='1' ||MapType==='3')\\\"\\r\\n                  style=\\\"float: right;margin-left: 5px;\\\" class=\\\"circlelg metricsbg\\\"\\r\\n                  (click)=\\\"getCase(Activity,2);$event.stopPropagation()\\\">\\r\\n                  {{IssuesLists[subKey]['Metric'][Activity.ActivityID]}}\\r\\n                </span>\\r\\n                <span *ngIf=\\\"IssuesLists[subKey]['Issue'][Activity.ActivityID]  && (MapType==='0' ||MapType==='3')\\\"\\r\\n                  style=\\\"float:right; \\\" class=\\\"circlelg frustrationbg\\\"\\r\\n                  (click)=\\\"getCase(Activity,1);$event.stopPropagation()\\\">\\r\\n                  {{IssuesLists[subKey]['Issue'][Activity.ActivityID]}}\\r\\n                </span>\\r\\n                <span ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\" *ngIf=\\\"showMetricAlert[Activity.ActivityID]\\\">\\r\\n                  <span style=\\\"color: #4aabe7;float: right;\\\" title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\r\\n                    *ngIf=\\\"(MapType==='1' || MapType==='3')\\\">\\r\\n                    <img src=\\\"./assets/images/star-blue.png\\\" alt=\\\"bluestar\\\" style=\\\"margin-right: 6px;width:17px;\\\" />\\r\\n                  </span>\\r\\n                </span>\\r\\n                <span style=\\\"color:#d55632;float: right;margin-right: 6px;\\\"\\r\\n                  title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\r\\n                  *ngIf=\\\"alertPTypeID===1 && IssuesLists[subKey]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\r\\n                  <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\" style=\\\"width:17px;\\\" />\\r\\n                </span>\\r\\n              </div>\\r\\n              <div style=\\\"margin-bottom: 15px;margin-top: 15px;\\\">\\r\\n                <span *ngIf=\\\"subKey && expandMap\\\">\\r\\n                  <div *ngIf=\\\"!IssuesLists[subKey]['MetricList'][Activity.ActivityID] \\\" style=\\\"margin-left:102px;\\\">\\r\\n                  </div>\\r\\n                  <div\\r\\n                    *ngIf=\\\"IssuesLists[subKey]['MetricList'][Activity.ActivityID] && (MapType==='1' ||MapType==='3')\\\">\\r\\n                    <div *ngIf=\\\"IssuesLists[subKey]['Metric']\\\" class=\\\"squareM\\\">\\r\\n                      <table>\\r\\n                        <tr>\\r\\n                          <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\r\\n                          <td style=\\\"float: left;\\\">\\r\\n                            <strong>Metrics</strong>\\r\\n                          </td>\\r\\n                        </tr>\\r\\n                        <tr *ngFor=\\\"let data of IssuesLists[subKey]['MetricList'][Activity.ActivityID];let i=index;\\\">\\r\\n                          <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n                            {{i+1}}\\r\\n                          </td>\\r\\n                          <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n                            {{data.Description}}\\r\\n                          </td>\\r\\n                        </tr>\\r\\n                      </table>\\r\\n                    </div>\\r\\n                  </div>\\r\\n                </span>\\r\\n              </div>\\r\\n              <div style=\\\"margin-bottom: 15px;margin-top: 15px;\\\">\\r\\n                <span *ngIf=\\\"subKey && expandMap\\\">\\r\\n                  <div *ngIf=\\\"IssuesLists[subKey]['IssueList'][Activity.ActivityID] && (MapType==='0' ||MapType==='3')\\\"\\r\\n                    class=\\\"squareIssues\\\">\\r\\n                    <div *ngIf=\\\"IssuesLists[subKey]['Issue']\\\">\\r\\n                      <table>\\r\\n                        <tr>\\r\\n                          <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\r\\n                          <td style=\\\"float: left;\\\">\\r\\n                            <strong>Frustrations</strong>\\r\\n                          </td>\\r\\n                        </tr>\\r\\n                        <tr *ngFor=\\\"let data of IssuesLists[subKey]['IssueList'][Activity.ActivityID];let i=index;\\\">\\r\\n                          <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n                            {{i+1}}\\r\\n                          </td>\\r\\n                          <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n                            {{data.Subject}}\\r\\n\\r\\n                          </td>\\r\\n                          <td style=\\\"height:20px;width:20px;\\\">\\r\\n                            <span *ngIf=\\\"data.StatusID===1\\\"></span>\\r\\n                            <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\" style=\\\"background-color: red;\\\"></span>\\r\\n                            <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\" style=\\\"background-color: yellow;\\\"></span>\\r\\n                            <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\" style=\\\"background-color: green;\\\"></span>\\r\\n                            <span *ngIf=\\\"data.StatusID===5\\\" class=\\\"circleM\\\" style=\\\"background-color: black;\\\"></span>\\r\\n                          </td>\\r\\n                        </tr>\\r\\n                      </table>\\r\\n                    </div>\\r\\n                  </div>\\r\\n                </span>\\r\\n              </div>\\r\\n              <div class=\\\"row\\\">\\r\\n                <div class=\\\"col-lg-12 form-group\\\"\\r\\n                  *ngFor=\\\"let SubActivity of IssuesLists[subKey]['SubActivity'][Activity.ActivityID]\\\">\\r\\n                  <div class=\\\"col-sm squareInActvty\\\" style=\\\"padding:2px 3px 31px 1px;width: 270px;\\\"\\r\\n                    (click)=\\\"AddMetricOrIssue(SubActivity.ActivityID,SubActivity.ParentID)\\\" id=\\\"activity\\\"\\r\\n                    *ngIf=\\\"SubActivity.ActivityTypeID==1\\\">\\r\\n\\r\\n                    <span class=\\\"dots\\\"\\r\\n                      style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;font-size: 11px;\\\"\\r\\n                      title=\\\"{{SubActivity.ActivityName}}\\\">\\r\\n                      <b>{{SubActivity.squence}}</b> {{SubActivity.ActivityName}} </span>\\r\\n                    <span style=\\\" float:right; font-size: 11px;\\\"\\r\\n                      *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubMetric']  &&(MapType==='1' ||MapType==='3')\\\"\\r\\n                      (click)=\\\"getCase(SubActivity,2);$event.stopPropagation()\\\">\\r\\n                      <span class=\\\"squareKPI2\\\"\\r\\n                        *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubMetric'] [SubActivity.ActivityID] &&(MapType==='1' ||MapType==='3')\\\">\\r\\n                        {{IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubMetric'][SubActivity.ActivityID]}}\\r\\n                      </span>\\r\\n\\r\\n                    </span>\\r\\n                    <span style=\\\"float:right; font-size: 11px;\\\"\\r\\n                      *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubIssue']  && (MapType==='0' ||MapType==='3')\\\"\\r\\n                      (click)=\\\"getCase(SubActivity,1);$event.stopPropagation()\\\">\\r\\n                      <span class=\\\"squareIssue1\\\"\\r\\n                        *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubIssue'] [SubActivity.ActivityID] && (MapType==='0' ||MapType==='3')\\\">{{IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubIssue'][SubActivity.ActivityID]}}</span>\\r\\n                    </span>\\r\\n                  </div>\\r\\n                  <div class=\\\"col-sm squareExActvty\\\" style=\\\"padding:2px 3px 31px 1px;width: 270px;\\\"\\r\\n                    (click)=\\\"AddMetricOrIssue(SubActivity.ActivityID,SubActivity.ParentID)\\\"\\r\\n                    *ngIf=\\\"SubActivity.ActivityTypeID!=1\\\">\\r\\n                    <span class=\\\"dots\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\r\\n                      title=\\\"{{SubActivity.ActivityName}}\\\"><b>{{SubActivity.squence}}</b>\\r\\n                      {{SubActivity.ActivityName}} </span>\\r\\n                    <span style=\\\" float:right; font-size: 11px;\\\"\\r\\n                      *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubMetric'] && (MapType==='1' ||MapType==='3')\\\"\\r\\n                      (click)=\\\"getCase(SubActivity,2);$event.stopPropagation()\\\">\\r\\n                      <span class=\\\"squareKPI2\\\"\\r\\n                        *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubMetric'] [SubActivity.ActivityID] &&(MapType==='1' ||MapType==='3')\\\">\\r\\n                        {{IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubMetric'][SubActivity.ActivityID]}}</span>\\r\\n                    </span>\\r\\n                    <span style=\\\"float:right;font-size: 11px;\\\"\\r\\n                      *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubIssue'] && (MapType==='0' ||MapType==='3')\\\"\\r\\n                      (click)=\\\"getCase(SubActivity,1);$event.stopPropagation()\\\">\\r\\n                      <span class=\\\"squareIssue1\\\"\\r\\n                        *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubIssue'] [SubActivity.ActivityID] && (MapType==='0' ||MapType==='3')\\\">\\r\\n                        {{IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubIssue'][SubActivity.ActivityID]}}</span>\\r\\n\\r\\n                    </span>\\r\\n                  </div>\\r\\n                  <div style=\\\"margin-bottom: 15px;margin-top: 15px;\\\">\\r\\n                    <span *ngIf=\\\"subKey && expandMap\\\">\\r\\n                      <div *ngIf=\\\"!IssuesLists[subKey]['SubActivityMetric'][SubActivity.ActivityID] \\\"\\r\\n                        style=\\\"margin-left:102px;\\\">\\r\\n                      </div>\\r\\n                      <div\\r\\n                        *ngIf=\\\"IssuesLists[subKey]['SubActivityMetric'][SubActivity.ActivityID] && (MapType==='1' ||MapType==='3')\\\">\\r\\n                        <div *ngIf=\\\"IssuesLists[subKey]['Metric']\\\" class=\\\"squareM\\\">\\r\\n                          <table>\\r\\n                            <tr>\\r\\n                              <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\r\\n                              <td style=\\\"float: left;\\\">\\r\\n                                <strong>Metrics</strong>\\r\\n                              </td>\\r\\n                            </tr>\\r\\n                            <tr\\r\\n                              *ngFor=\\\"let data of IssuesLists[subKey]['SubActivityMetric'][SubActivity.ActivityID];let i=index;\\\">\\r\\n                              <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n                                {{i+1}}\\r\\n                              </td>\\r\\n                              <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n                                {{data.Description}}\\r\\n                              </td>\\r\\n                            </tr>\\r\\n                          </table>\\r\\n                        </div>\\r\\n                      </div>\\r\\n                    </span>\\r\\n                  </div>\\r\\n                  <div style=\\\"margin-bottom: 15px;margin-top: 15px;\\\">\\r\\n                    <span *ngIf=\\\"subKey && expandMap\\\">\\r\\n                      <div\\r\\n                        *ngIf=\\\"IssuesLists[subKey]['SubActivityIssues'][SubActivity.ActivityID] && (MapType==='0' ||MapType==='3')\\\"\\r\\n                        class=\\\"squareIssues\\\">\\r\\n                        <div *ngIf=\\\"IssuesLists[subKey]['Issue']\\\">\\r\\n                          <table>\\r\\n                            <tr>\\r\\n                              <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\r\\n                              <td style=\\\"float: left;\\\">\\r\\n                                <strong>Frustrations</strong>\\r\\n                              </td>\\r\\n                            </tr>\\r\\n                            <tr\\r\\n                              *ngFor=\\\"let data of IssuesLists[subKey]['SubActivityIssues'][SubActivity.ActivityID];let i=index;\\\">\\r\\n\\r\\n                              <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n                                {{i+1}}\\r\\n                              </td>\\r\\n                              <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n                                {{data.Subject}}\\r\\n\\r\\n                              </td>\\r\\n                              <td style=\\\"height:20px;width:20px;\\\">\\r\\n                                <span *ngIf=\\\"data.StatusID===1\\\"></span>\\r\\n                                <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\" style=\\\"background-color: red;\\\"></span>\\r\\n                                <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\"\\r\\n                                  style=\\\"background-color: yellow;\\\"></span>\\r\\n                                <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\"\\r\\n                                  style=\\\"background-color: green;\\\"></span>\\r\\n                                <span *ngIf=\\\"data.StatusID===5\\\" class=\\\"circleM\\\" style=\\\"background-color: black;\\\"></span>\\r\\n                              </td>\\r\\n                            </tr>\\r\\n                          </table>\\r\\n                        </div>\\r\\n                      </div>\\r\\n                    </span>\\r\\n                  </div>\\r\\n                </div>\\r\\n              </div>\\r\\n            </div>\\r\\n          </div>\\r\\n          <div></div>\\r\\n        </div>\\r\\n\\r\\n\\r\\n      </div>\\r\\n\\r\\n    </div>\\r\\n\\r\\n    <br>\\r\\n    <div class=\\\"footer\\\">\\r\\n      <label>{{copyRight}}</label>\\r\\n    </div>\\r\\n  </div>\\r\\n\\r\\n\\r\\n</div>\"","module.exports = \"<!--<link rel=\\\"stylesheet\\\" href=\\\"https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css\\\">-->\\n<script src=\\\"https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js\\\"></script>\\n<script src=\\\"https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js\\\"></script>\\n<script src=\\\"https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js\\\"></script>\\n\\n<style>\\n  .example-handle {\\n    /* position: absolute; */\\n    float: right;\\n    top: 10px;\\n    right: 10px;\\n    color: #978181;\\n    cursor: move;\\n    width: 24px;\\n    height: 24px;\\n  }\\n\\n  .disableProcess {\\n    pointer-events: none;\\n  }\\n\\n  .cdk-drag-preview {\\n    box-sizing: border-box;\\n    border-radius: 4px;\\n    box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2),\\n      0 8px 10px 1px rgba(0, 0, 0, 0.14),\\n      0 3px 14px 2px rgba(0, 0, 0, 0.12);\\n  }\\n\\n  .cdk-drag-placeholder {\\n    opacity: 0;\\n  }\\n\\n  .cdk-drag-animating {\\n    transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\\n  }\\n\\n  .example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder) {\\n    transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\\n  }\\n\\n  .example-list {\\n\\n    border: solid 1px #ccc;\\n    min-height: 60px;\\n    background: white;\\n    border-radius: 4px;\\n    overflow: hidden;\\n    display: block;\\n\\n    margin-top: 20px;\\n    ;\\n  }\\n\\n  .stageHeader {\\n\\n    padding: .5rem .5rem .5rem 1.5rem;\\n    background: #3775b5;\\n    color: white;\\n    font-size: 12px;\\n    text-align: center;\\n    margin-bottom: 5px;\\n    border-radius: 20px 20px 20px 20px;\\n  }\\n\\n  .btnbg {\\n    background-color: #e2e3e4;\\n    font-weight: 200 !important;\\n    font-size: 14px;\\n    /* min-width: 20% */\\n  }\\n\\n  .circleSch {\\n    background-color: #d9c25a;\\n    border-radius: 6px;\\n    text-align: center;\\n    color: white;\\n    float: left;\\n    margin-left: 5px;\\n    width: 9px;\\n    height: 9px;\\n    border: 1px solid white;\\n    margin-top: 2px;\\n  }\\n\\n  .btnbg1 {\\n    background-color: #e2e3e4;\\n    font-weight: 200 !important;\\n    font-size: 14px;\\n    min-width: 10%\\n  }\\n\\n  .btnWrapper button {\\n    margin: 2.5% 1% 0% 0.5% !important;\\n  }\\n\\n  .labelFont {\\n    font-size: 7px;\\n    border-radius: 5px;\\n    /* width: 120px; */\\n    cursor: pointer;\\n  }\\n\\n  .squareLabel {\\n    word-break: break-all;\\n    font-size: 14px;\\n    font-family: sans-serif;\\n  }\\n\\n  .cardCustom {\\n    flex-direction: inherit;\\n    min-width: 0;\\n    word-wrap: break-word;\\n    background-color: #fff;\\n    background-clip: border-box;\\n    border: 1px solid rgba(0, 0, 0, .125);\\n    border-radius: .25rem;\\n    /* box-shadow: 0px 0px 3px 3px lightgrey; */\\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.16), 0 1px 2px rgba(0, 0, 0, 0.23);\\n  }\\n\\n  .actAlign {\\n    margin-top: 20px;\\n    font-size: 10px;\\n    font-family: sans-serif;\\n  }\\n\\n  .metricsbg {\\n    background-color: #4aabe7;\\n  }\\n\\n  .keyprocessbg {\\n    background-color: #3775b5;\\n  }\\n\\n  .actExtbg {\\n    background-color: #a3cda2;\\n  }\\n\\n  .actIntbg {\\n    background-color: #e2e3e4;\\n  }\\n\\n  .frustrationbg {\\n    background-color: #d55632;\\n  }\\n\\n  .dots {\\n\\n    flex-wrap: wrap;\\n\\n  }\\n\\n  html,\\n  body {\\n\\n    overflow-x: hidden;\\n  }\\n\\n  input {\\n    width: 181%;\\n  }\\n\\n  .square {\\n    padding: 0px;\\n    background-color: #3775b5;\\n    color: white;\\n    text-align: center;\\n    cursor: pointer;\\n    border-radius: 5px;\\n    border: 2px solid #3775b5;\\n    font-size: 13px;\\n    font-weight: bold;\\n    box-shadow: 0px 8px 3px 0px #265382;\\n    font-family: unset;\\n    width: 350px;\\n    height: 140px;\\n  }\\n\\n  .squarech {\\n    padding: 0px;\\n    background-color: #3775b5;\\n    color: white;\\n    text-align: center;\\n    cursor: pointer;\\n    border-radius: 5px;\\n    border: 2px solid #3775b5;\\n    font-size: 13px;\\n    font-weight: bold;\\n    box-shadow: 0px 8px 3px 0px #265382;\\n    font-family: unset;\\n    height: 56px;\\n  }\\n\\n  .squareActvty {\\n    padding: 0px;\\n    background-color: #FFFFCC;\\n    color: black;\\n    text-align: center;\\n    cursor: pointer;\\n    border: 2px solid #C9C927;\\n    border-radius: 5px;\\n    word-break: break-word;\\n    width: 350px;\\n    box-shadow: 3px 3px 3px;\\n  }\\n\\n  /* [squareBox] {\\n    padding-top: 6%;\\n    padding-right: 2%;\\n  } */\\n\\n  .squareInActvty {\\n    padding: 3px;\\n    background-color: #e2e3e4;\\n    color: black;\\n    text-align: left;\\n    cursor: pointer;\\n    border: 2px solid #e2e3e4;\\n    border-radius: 5px;\\n    font-size: 12px;\\n    word-break: break-word;\\n    height: 70px;\\n    width: 300px;\\n    /* box-shadow: 3px 3px 3px #C9C927; */\\n    font-family: unset;\\n  }\\n\\n  .squareInActvtych {\\n    padding: 3px;\\n    background-color: #e2e3e4;\\n    color: black;\\n    text-align: left;\\n    cursor: pointer;\\n    border: 2px solid #e2e3e4;\\n    border-radius: 5px;\\n    font-size: 12px;\\n    word-break: break-word;\\n    height: 40px;\\n    width: 300px;\\n    /* box-shadow: 3px 3px 3px #C9C927; */\\n    font-family: unset;\\n  }\\n\\n  .squareExActvty {\\n    padding: 3px;\\n    background-color: #a3cda2;\\n    color: black;\\n    text-align: left;\\n    cursor: pointer;\\n    border: 2px solid #a3cda2;\\n    border-radius: 5px;\\n    font-size: 12px;\\n    word-break: break-word;\\n    height: 70px;\\n    width: 300px;\\n    /* box-shadow: 3px 3px 3px #73AD21; */\\n  }\\n\\n  .squareExActvtych {\\n    padding: 3px;\\n    background-color: #a3cda2;\\n    color: black;\\n    text-align: left;\\n    cursor: pointer;\\n    border: 2px solid #a3cda2;\\n    border-radius: 5px;\\n    font-size: 12px;\\n    word-break: break-word;\\n    height: 40px;\\n    width: 300px;\\n  }\\n\\n  .squareKPI {\\n    /*border: 2px solid #10BCF5;*/\\n    padding-left: 9%;\\n    padding-right: 7px;\\n    background-color: #6ADAFF;\\n    color: white;\\n    text-align: center;\\n    border-radius: 5px;\\n    /*border: 1px solid #10BCF5;*/\\n    font-size: 17px;\\n    /* margin-left:-21px; */\\n    width: 25px;\\n    /* height: 21px; */\\n    cursor: pointer;\\n    /* box-shadow: 3px 3px 3px #1EBFF4; */\\n    /* padding-left: 7%;\\n    padding-right: 6%; */\\n  }\\n\\n  .squareKPI1 {\\n    background-color: #6ADAFF;\\n    color: white;\\n    text-align: center;\\n    border-radius: 5px;\\n    font-size: 11px;\\n    border-radius: 5px;\\n    cursor: pointer;\\n  }\\n\\n  .circleKP {\\n    background-color: #6ADAFF;\\n    color: white;\\n    text-align: center;\\n    font-size: 8px;\\n    border-radius: 12px;\\n    cursor: pointer;\\n  }\\n\\n  .circle {\\n    width: 12px;\\n    height: 12px;\\n    border-radius: 50%;\\n  }\\n\\n  .circlelg {\\n    width: 20px;\\n    height: 20px;\\n    border-radius: 50%;\\n    font-size: 11px;\\n    font-weight: bold;\\n    /* margin-top: 10px; */\\n    color: white;\\n    border: 2px solid white;\\n    text-align: center;\\n    margin-left: 1px;\\n  }\\n\\n  .circlelgch {\\n    width: 20px;\\n    height: 20px;\\n    border-radius: 50%;\\n    font-size: 11px;\\n    font-weight: bold;\\n    /* margin-top: 10px; */\\n    color: white;\\n    border: 1px solid white;\\n    text-align: center;\\n  }\\n\\n  .circleI .fa-lg {\\n    margin-left: -8px;\\n  }\\n\\n  .squre {\\n    width: 12px;\\n    height: 12px;\\n  }\\n\\n  .squareIssue {\\n    /*border: 2px solid #FF5DCA;*/\\n    background-color: #FFAAE3;\\n    color: white;\\n    text-align: center;\\n    cursor: pointer;\\n    width: 25px;\\n    /* padding: 14%; */\\n    /*height: 21px;*/\\n    border-radius: 5px;\\n    font-size: 17px;\\n    /* box-shadow: 3px 3px 3px #FF5DCA; */\\n    /* margin-left:-11px; */\\n  }\\n\\n  /* .squareIssue1 {\\n\\n    background-color: #FFAAE3;\\n    color: white;\\n    text-align: center;\\n    cursor: pointer;\\n    width: 25px;\\n\\n    border-radius: 5px;\\n    font-size: 17px;\\n    padding-left: 6px;\\n    padding-right: 6px;\\n\\n  } */\\n  .squareIssue1 {\\n    /*border: 2px solid #FF5DCA;*/\\n    border: 2px solid white;\\n    height: 20px;\\n    width: 20px;\\n    background-color: #d55632;\\n    border-radius: 50%;\\n    display: inline-block;\\n    font-weight: bold;\\n    font-size: 11px;\\n    /* box-shadow: 3px 3px 3px #FF5DCA; */\\n    /* margin-left:-11px; */\\n  }\\n\\n  .squareIssuech1 {\\n    border: 1px solid white;\\n    height: 20px;\\n    width: 20px;\\n    background-color: #d55632;\\n    border-radius: 50%;\\n    display: inline-block;\\n    font-weight: bold;\\n    font-size: 11px;\\n\\n  }\\n\\n  .circleM {\\n    height: 10%;\\n    width: 10%;\\n    background-color: #6ADAFF;\\n    border-radius: 50%;\\n    text-align: center;\\n    color: white;\\n    padding: 0px 5px;\\n  }\\n\\n  .circleMExpand {\\n    height: 10%;\\n    width: 10%;\\n    background-color: #6ADAFF;\\n    border-radius: 50%;\\n    text-align: center;\\n    color: white;\\n    padding: 0px 5px;\\n  }\\n\\n  .circleI {\\n    height: 40%;\\n    width: 5%;\\n    /* background-color: #EF74FC; */\\n    border-radius: 50%;\\n    text-align: center;\\n    color: white;\\n    padding: 0px 0px;\\n    font-size: 14px;\\n  }\\n\\n  table td,\\n  th {\\n    font-size: 10px;\\n  }\\n\\n  .squareIssues {\\n    background-color: #f7aaa3;\\n    border: 2px solid #f7aaa3;\\n    color: black;\\n    text-align: center;\\n    /*cursor: pointer;*/\\n    border-radius: 5px;\\n    font-size: 11px;\\n    word-break: break-word;\\n    min-width: 60px;\\n    /*height: 65px;*/\\n    width: 299px;\\n    margin-left: 2px;\\n    margin-top: 15px;\\n    /* box-shadow: 3px 3px 3px #d66140; */\\n  }\\n\\n  .squareM {\\n    background-color: #4aabe7;\\n    border: 2px solid #10BCF5;\\n    color: black;\\n    text-align: center;\\n    /*cursor: pointer;*/\\n    border-radius: 5px;\\n    font-size: 11px;\\n    word-break: break-word;\\n    min-width: 60px;\\n    /*height: 65px;*/\\n    width: 299px;\\n    margin-left: 2px;\\n    margin-top: 15px;\\n    ;\\n    /* box-shadow: 3px 3px 3px #10BCF5; */\\n  }\\n\\n  @media print {\\n    .donotprintthis {\\n\\n      display: none;\\n\\n    }\\n  }\\n\\n  @media print {\\n    @page {\\n      size: auto;\\n      margin: 0mm;\\n    }\\n\\n    a[href]:after {\\n      content: none !important;\\n    }\\n  }\\n\\n  @media print {\\n\\n    #Header,\\n    #Footer {\\n      display: none !important;\\n    }\\n  }\\n\\n  @media screen {\\n    .donotprintthis {\\n      display: block;\\n    }\\n  }\\n\\n  .footer {\\n    position: fixed;\\n    bottom: 0;\\n    font-size: 13px;\\n    margin-left: 35%;\\n  }\\n\\n  .squareKPI2 {\\n    border: 2px solid white;\\n    height: 20px;\\n    width: 20px;\\n    background-color: #4aabe7;\\n    border-radius: 50%;\\n    display: inline-block;\\n    font-weight: bold;\\n    font-size: 11px;\\n\\n  }\\n\\n  .squareKPI2ch {\\n    border: 1px solid white;\\n    height: 20px;\\n    width: 20px;\\n    background-color: #4aabe7;\\n    border-radius: 50%;\\n    display: inline-block;\\n    font-weight: bold;\\n    font-size: 11px;\\n\\n  }\\n\\n  .circleS {\\n    background-color: #d9c25a;\\n    border-radius: 15px;\\n    text-align: center;\\n    color: white;\\n    padding: 0px 5px;\\n    width: 12px;\\n    height: 12px;\\n    border: 1px solid white;\\n    margin-top: 3px;\\n  }\\n\\n  @media (max-width:600px) {\\n    .mb_la {\\n      max-width: 100% !important;\\n    }\\n\\n    .metric {\\n      width: 95% !important;\\n    }\\n\\n    #map {\\n      width: 98% !important;\\n    }\\n\\n    .mb_view1 {\\n      margin-bottom: 15px !important;\\n    }\\n  }\\n\\n  ::-webkit-scrollbar {\\n    width: 9px;\\n    height: 10px !important\\n  }\\n\\n  ::-webkit-scrollbar-thumb {\\n    border-radius: 1px;\\n    background: #c1c1c1 !important\\n  }\\n\\n  ::-webkit-scrollbar-track {\\n    background-color: #fff;\\n    border-radius: 1px !important\\n  }\\n</style>\\n<div>\\n  <div *ngIf=\\\"!errorMessage\\\">\\n    <div *ngIf=\\\"showDiv\\\" class=\\\"row donotprintthis\\\" id=\\\"topContainer\\\">\\n      <div class=\\\"screenActions\\\">\\n        <div class=\\\"selectDropDowns\\\">\\n          <div class=\\\"selectWrapper\\\">\\n            <div class=\\\"mapTypeSelect\\\">\\n              <mat-form-field>\\n                <mat-label>* Map Type</mat-label>\\n                <mat-select [(ngModel)]=\\\"MapType\\\" (selectionChange)=\\\"onChange($event)\\\" [disabled]=\\\"!TeamID\\\">\\n                  <mat-option [value]=\\\"'0'\\\">\\n                    <span> Only Frustrations </span>\\n                  </mat-option>\\n                  <mat-option [value]=\\\"'1'\\\">\\n                    <span>Only Metrics </span>\\n                  </mat-option>\\n                  <mat-option [value]=\\\"'2'\\\">\\n                    <span> No Frustrations & Metrics </span>\\n                  </mat-option>\\n                  <mat-option [value]=\\\"'3'\\\">\\n                    <span>Both </span>\\n                  </mat-option>\\n                </mat-select>\\n              </mat-form-field>\\n            </div>\\n            <div class=\\\"teamSelect\\\">\\n              <mat-form-field>\\n                <mat-label>* Select Team Map</mat-label>\\n                <mat-select (selectionChange)=\\\"GetSelectedProcessMap($event)\\\" [(ngModel)]=\\\"TeamID\\\">\\n                  <mat-option *ngFor=\\\"let team of teamData;let i=index;\\\" [value]=\\\"team.TeamID\\\">\\n                    <span> {{team.TeamName}} </span>\\n                  </mat-option>\\n                </mat-select>\\n              </mat-form-field>\\n            </div>\\n            <div class=\\\"versionSelect\\\">\\n              <mat-form-field>\\n                <mat-label>*Select Versions</mat-label>\\n                <mat-select [disabled]=\\\"TeamID == 0\\\" (selectionChange)=\\\"GetSelectedVersion($event)\\\"\\n                  [(ngModel)]=\\\"DepartmentID\\\">\\n                  <mat-option *ngFor=\\\"let version of versions;let i=index;\\\" [value]=\\\"versions[i].VersionID\\\">\\n                    <span *ngIf=\\\"versions.length-1!=i\\\"> {{versions[i].VersionName}} </span>\\n                    <span *ngIf=\\\"versions.length-1==i\\\"> {{versions[i].VersionName}} </span>\\n                  </mat-option>\\n                </mat-select>\\n              </mat-form-field>\\n            </div>\\n          </div>\\n        </div>\\n        <div class=\\\"actionBtns\\\">\\n          <div class=\\\"btnWrapper\\\">\\n            <button class=\\\"btn btnbg\\\" id=\\\"expandPM\\\" matTooltip=\\\"Expand process map\\\" [disabled]=\\\"!hideButton || !TeamID\\\"\\n              (click)=\\\"ExpandMap()\\\" *ngIf=\\\"!expandMap\\\">Expand ProcessMap</button>\\n            <button class=\\\"btn btnbg\\\" id=\\\"hidePM\\\" matTooltip=\\\"Hide process map\\\" [disabled]=\\\"!hideButton\\\"\\n              (click)=\\\"HideMap()\\\" *ngIf=\\\"expandMap\\\">Hide ProcessMap</button>\\n            <button *ngIf=\\\"!changeSize\\\" class=\\\"btn btnbg\\\" id=\\\"printBtn\\\" matTooltip=\\\"Print processmap\\\"\\n              printTitle=\\\"{{CompanyName}}\\\" [disabled]=\\\"processLists.length===0\\\" printSectionId=\\\"print-section\\\"\\n              [useExistingCss]=\\\"true\\\" ngxPrint>Print</button>\\n            <button *ngIf=\\\"changeSize\\\" class=\\\"btn btnbg\\\" id=\\\"printBtnZoom\\\" matTooltip=\\\"Print processmap\\\"\\n              printTitle=\\\"{{CompanyName}}\\\" [disabled]=\\\"processLists.length===0\\\" printSectionId=\\\"print-ZoomSection\\\"\\n              [useExistingCss]=\\\"true\\\" ngxPrint>Print</button>\\n            <button *ngIf=\\\"!changeSize\\\" class=\\\"btn btnbg\\\" id=\\\"versionBtn\\\"\\n              [disabled]=\\\"IsVersion || processLists.length===0\\\" matTooltip=\\\"Versioning\\\"\\n              (click)=\\\"Versioning(MenuPermissions[menuName][menuID]['C'])\\\"\\n              [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C'])\\\"\\n              [ngClass]=\\\"{'removeColor1':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C'])}\\\">Versioning</button>\\n\\n            <button *ngIf=\\\"!changeSize\\\" class=\\\"btn btnbg\\\" id=\\\"dashboardBtn\\\" matTooltip=\\\"View dashboard\\\"\\n              [disabled]=\\\"!TeamID\\\"><a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/dashboard',TeamID]\\\"\\n                [style.pointer-events]=\\\"!TeamID?'none':'auto'\\\">\\n                Dashboard</a></button>\\n            <button *ngIf=\\\" changeSize\\\" class=\\\"btn btnbg\\\" id=\\\"zoomInBtn\\\" matTooltip=\\\"Zoom in map\\\"\\n              (click)=\\\"changeState()\\\" [disabled]=\\\"!TeamID\\\">Zoom In</button>\\n            <button *ngIf=\\\"!changeSize\\\" class=\\\"btn btnbg\\\" id=\\\"zoomOutBtn\\\" matTooltip=\\\"Zoom out map\\\"\\n              (click)=\\\"changeState()\\\" [disabled]=\\\"!TeamID\\\">Zoom Out</button>\\n          </div>\\n\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <br>\\n  <!--------------------print------------------>\\n  <div id=\\\"Map\\\">\\n    <div class=\\\"container-fluid divdata\\\" style=\\\" height:80vh;margin-top: -47px;\\\">\\n      <br>\\n      <span style=\\\"color: red;text-align: center\\\">\\n        <br>\\n        {{errorMessage}}\\n      </span>\\n      <div class=\\\"row donotprintthis\\\">\\n        <div class=\\\"col-sm-2\\\" *ngIf=\\\"processLists.length===0  \\\">\\n          <div class=\\\"donotprintthis\\\" matTooltip=\\\"Create new process\\\"\\n            (click)=\\\"AddProcess(MenuPermissions[menuName][menuID]['C'],IsVersion)\\\"\\n            [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C']) \\\"\\n            [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C']),'disableProcess':(!TeamID)}\\\"\\n            style=\\\"color:#3775b5;cursor: pointer;height: 40px;margin-top: 28px;padding-top: 2px;width: 200px;min-width: 42px;font-size: 25px;\\\">\\n            <b class=\\\"button\\\"\\n              style=\\\"margin-left: 6px;margin-top: 10px; height: 1px; width: 23px; float: left;border-radius: 2px; color: #3775b5;font-size: 19px; text-align: center; padding-bottom: 25px; \\\">\\n              <i class=\\\"fa fa-plus-square\\\"></i></b>\\n            &nbsp;&nbsp;<u style=\\\"font-size: 15px;color: #3775b5;\\\">Create new process</u>\\n          </div>\\n        </div>\\n      </div>\\n      <div *ngIf=\\\"!changeSize\\\" class=\\\"row\\\">\\n        <div class=\\\"col-sm-12\\\" style=\\\"max-width: 100%;\\\">\\n          <div class=\\\"metric\\\" id=\\\"printMap1\\\" p style=\\\"display: flex;\\n          flex-wrap: nowrap;position: absolute;\\n          height: 78vh;width: 98%;overflow-x: auto;\\\" cdkDropList cdkDropListOrientation=\\\"horizontal\\\"\\n            [cdkDropListData]=\\\"ProcessFinalList\\\" (cdkDropListDropped)=\\\"dropProcess($event);$event.stopPropagation();\\\">\\n            <div class=\\\"\\\" style=\\\"padding-right: 20px;\\\" *ngFor=\\\"let process of ProcessFinalList\\\" cdkDrag\\n              [ngClass]=\\\"{'disableProcess':(IsVersion || readOnly)}\\\">\\n              <div class=\\\"col-sm square\\\" style=\\\"padding:2px 3px 31px 1px;width: 300px;height: 100px;\\\"\\n                (click)=\\\"ChooseMatricOrIssue(process['Process'].ProcessID, 0,MenuPermissions[menuName][menuID]['C'],IsVersion,MenuPermissions[menuName][menuID]['R'],MenuPermissions[menuName][menuID]['U'],MenuPermissions[menuName][menuID]['D'])\\\"\\n                [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C'])\\\"\\n                [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C'])}\\\">\\n                <div class=\\\"example-handle\\\" style=\\\"color: #ccc !important;\\\" cdkDragHandle>\\n                  <svg width=\\\"24px\\\" fill=\\\"currentColor\\\" viewBox=\\\"0 0 24 24\\\">\\n                    <path\\n                      d=\\\"M10 9h4V6h3l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l5 5 5-5h-3v-3z\\\">\\n                    </path>\\n                    <path d=\\\"M0 0h24v24H0z\\\" fill=\\\"none\\\"></path>\\n                  </svg>\\n                </div>\\n                <span *ngIf=\\\"process['Process'].TeamID===0\\\" class=\\\"circle\\\"\\n                  style=\\\"background-color: #d9c25a;border: 1px solid white;float: left;\\\"\\n                  title=\\\"No team associated with this process\\\">&nbsp;</span>\\n                <span class=\\\" \\\" style=\\\"float: left; color:#4aabe7;\\\" title=\\\"No metric associated with this process\\\"\\n                  *ngIf=\\\"!IssuesLists[process['Process'].ProcessID].MetricCount && !IssuesLists[process['Process'].ProcessID].pMetricCount && !IssuesLists[process['Process'].ProcessID].SubMetricCount && (MapType==='1' ||MapType==='3')\\\">&nbsp;<img\\n                    src=\\\"./assets/images/triangle-blue.png\\\" alt=\\\"bluetriangle\\\" style=\\\"width: 13px;\\\" /></span>\\n                <span class=\\\"alerts\\\" style=\\\"float: left; color: #d55632;\\\"\\n                  title=\\\"No frustrations assosiated with this process\\\"\\n                  *ngIf=\\\"!IssuesLists[process['Process'].ProcessID].IssueCount && !IssuesLists[process['Process'].ProcessID].pIssueCount && !IssuesLists[process['Process'].ProcessID].SubIssueCount && (MapType==='0' ||MapType==='3')\\\">&nbsp;<img\\n                    src=\\\"./assets/images/triangle-red.png\\\" alt=\\\"redtriangle\\\" style=\\\"width: 13px;\\\" /></span>\\n                <span style=\\\"float: left;margin-left:3px;\\\" class=\\\"circleS\\\" title=\\\"Sub activity exits\\\"\\n                  *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && IssuesLists[process['Process'].ProcessID].SubActivity!=0 &&IssuesLists[process['Process'].ProcessID].SubActivity!=undefined \\\">\\n                  &nbsp;</span>\\n                <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID] \\\" style=\\\"cursor:pointer;float:right;\\\">\\n                  <span *ngIf=\\\"ActiveActivities[process['Process'].ProcessID]\\\"\\n                    (click)=\\\"DisplaySubMap(process['Process'].ProcessID);$event.stopPropagation() \\\"\\n                    class=\\\"donotprintthis\\\"><span matTooltip=\\\"Expand process\\\">\\n                      <span class=\\\"fa-stack\\\">\\n                        <i class=\\\"fa fa-square-o fa-stack-2x\\\"></i>\\n                        <i class=\\\"fa fa-expand fa-stack-1x\\\"></i>\\n                      </span>\\n                    </span></span>\\n                </span>\\n                <hr style=\\\"background-color: #265382;margin-top: 27px;\\\">\\n                <div class=\\\"row\\\">\\n                  <div class=\\\"col-sm-12\\\">\\n                    <div class=\\\"col-sm-10 offset-1\\\" style=\\\"height: 18px; margin-top: 8px;\\\">\\n                      <span class=\\\"dots squareLabel\\\"\\n                        style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\n                        title=\\\"{{process['ProcessID']}}\\\">&nbsp;\\n                        {{process['ProcessID']}}&nbsp;\\n                      </span>\\n                    </div>\\n                  </div>\\n                </div>\\n                <div>\\n                  <span\\n                    *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && IssuesLists[process['Process'].ProcessID]['pMetricCount'] && (MapType==='1' ||MapType==='3')\\\"\\n                    class=\\\"squareKPI2\\\" style=\\\" float:right;margin-left:3px;\\\"\\n                    (click)=\\\"getCase(process['Process'], 0,2,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n                    {{IssuesLists[process['Process'].ProcessID]['pMetricCount']}}\\n                  </span>\\n                  <span\\n                    *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && IssuesLists[process['Process'].ProcessID]['pIssueCount'] && (MapType==='0' || MapType==='3')\\\"\\n                    (click)=\\\"getCase(process['Process'], 0, 1,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\"\\n                    class=\\\"squareIssue1\\\" style=\\\"float:right;\\\">\\n                    {{IssuesLists[process['Process'].ProcessID]['pIssueCount']}}\\n                  </span>\\n                </div>\\n              </div>\\n              <div *ngIf=\\\"expandMap \\\">\\n                <span\\n                  *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricProcess'] && (MapType==='1' ||MapType==='3')\\\">\\n                  <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricProcess'][process['Process'].ProcessID]\\\"\\n                    class=\\\"squareM\\\">\\n                    <div>\\n                      <table>\\n                        <tbody>\\n                          <tr>\\n                            <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\n                            <td style=\\\"float: left;\\\">\\n                              <strong> Metrics </strong>\\n                            </td>\\n                          </tr>\\n                          <tr\\n                            *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['MetricProcess'][process['Process'].ProcessID];let i=index;\\\">\\n                            <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n                              {{i+1}}\\n                            </td>\\n                            <td style=\\\"padding-left: 2px;float: left;\\\">\\n                              {{data.Description}}\\n                            </td>\\n                          </tr>\\n                        </tbody>\\n                      </table>\\n                    </div>\\n                  </div>\\n                </span>\\n              </div>\\n              <div *ngIf=\\\"expandMap \\\">\\n                <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && (MapType==='0' ||MapType==='3') \\\">\\n                  <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['IssueProcess'][process['Process'].ProcessID]\\\"\\n                    class=\\\"squareIssues\\\">\\n                    <div>\\n                      <table>\\n                        <tbody>\\n                          <tr>\\n                            <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\n                            <td style=\\\"float: left;\\\">\\n                              <strong> Frustrations </strong>\\n                            </td>\\n                          </tr>\\n                          <tr\\n                            *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['IssueProcess'][process['Process'].ProcessID];let i=index;\\\">\\n                            <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n                              {{i+1}}\\n                            </td>\\n                            <td style=\\\"padding-left: 2px;float: left;\\\">\\n                              {{data.Subject}}\\n                            </td>\\n                            <td style=\\\"height:20px;width:20px;\\\">\\n                              <span *ngIf=\\\"data.StatusID===1 \\\"></span>\\n                              <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\" style=\\\"background-color: red;\\\"></span>\\n                              <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\" style=\\\"background-color: yellow;\\\"></span>\\n                              <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\" style=\\\"background-color: green;\\\"></span>\\n                              <span *ngIf=\\\"data.StatusID===5 \\\" class=\\\"circleM\\\" style=\\\"background-color: black;\\\"></span>\\n                            </td>\\n                          </tr>\\n                        </tbody>\\n                      </table>\\n                    </div>\\n                  </div>\\n                </span>\\n              </div>\\n              <div cdkDropList id=\\\"{{process['ProcessID']}}\\\" [cdkDropListData]=\\\"process['ActivityList']\\\"\\n                [cdkDropListConnectedTo]=\\\"connectedTo\\\"\\n                (cdkDropListDropped)=\\\"dropActivity($event,process['Process']);$event.stopPropagation();\\\">\\n                <div *ngFor=\\\"let Activity of process['ActivityList']; let i=index\\\" style=\\\"margin-top: 15px;  \\\" cdkDrag\\n                  [ngClass]=\\\"{'disableProcess':(IsVersion || readOnly)}\\\">\\n                  <div class=\\\"squareInActvty\\\" id=\\\"activity\\\" *ngIf=\\\"Activity.ActivityTypeID==1\\\"\\n                    (click)=\\\"ChooseMatricOrIssue(process['Process'].ProcessID, Activity.ActivityID,MenuPermissions[menuName][menuID]['C'],IsVersion,MenuPermissions[menuName][menuID]['R'],MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D'])\\\"\\n                    [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C'])\\\"\\n                    [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C'])}\\\">\\n                    <div class=\\\"actAlign\\\">\\n                      <span class=\\\"dots\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\n                        title=\\\"{{Activity.ActivityName}}\\\">\\n                        <b> {{Activity.squence}}. {{Activity.ActivityName}} </b>\\n                      </span>\\n                      <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n                        <div class=\\\"example-handle\\\" cdkDragHandle>\\n                          <svg width=\\\"24px\\\" fill=\\\"currentColor\\\" viewBox=\\\"0 0 24 24\\\">\\n                            <path\\n                              d=\\\"M10 9h4V6h3l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l5 5 5-5h-3v-3z\\\">\\n                            </path>\\n                            <path d=\\\"M0 0h24v24H0z\\\" fill=\\\"none\\\"></path>\\n                          </svg>\\n                        </div>\\n                        <span\\n                          *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID] &&(MapType==='1' ||MapType==='3')\\\"\\n                          style=\\\"float: right;\\\" class=\\\"circlelg metricsbg\\\"\\n                          (click)=\\\"getCase(process['Process'], Activity,2,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n                          {{IssuesLists[process['Process'].ProcessID]['Metric'][Activity.ActivityID]}}\\n                        </span>\\n                      </span>\\n                      <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n                        <span\\n                          *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] && (MapType==='0' || MapType==='3')\\\"\\n                          style=\\\"float: right;\\\" class=\\\"circlelg frustrationbg\\\"\\n                          (click)=\\\"getCase(process['Process'], Activity, 1,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n                          {{IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID]}}\\n                        </span>\\n                      </span>\\n                      <span ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\"\\n                        *ngIf=\\\"showMetricAlert[Activity.ActivityID]\\\">\\n                        <span class=\\\"circleI\\\" style=\\\"color: #4aabe7; float: right;\\\"\\n                          title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\n                          *ngIf=\\\"(MapType==='1' || MapType==='3')\\\">\\n                          <img src=\\\"./assets/images/star-blue.png\\\" alt=\\\"bluestar\\\" width=\\\"20px;\\\"\\n                            style=\\\"margin-left:-4px;margin-top: -6px;\\\" />\\n                        </span>\\n                      </span>\\n                      <span class=\\\"circleI\\\" style=\\\"color:#d55632;float: right; \\\"\\n                        title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\n                        *ngIf=\\\"alertPTypeID===1 && IssuesLists[process['Process'].ProcessID] && IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\n                        <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\"\\n                          style=\\\"margin-left:-11px;margin-top: -6px;width:20px;\\\">\\n                      </span>\\n                      <span\\n                        *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID] >=1 && (MapType==='0' || MapType==='3') ;else templateName\\\">\\n                      </span>\\n                    </div>\\n                  </div>\\n                  <div class=\\\"squareExActvty \\\" *ngIf=\\\"Activity.ActivityTypeID!=1\\\"\\n                    (click)=\\\"ChooseMatricOrIssue(process['Process'].ProcessID, Activity.ActivityID,MenuPermissions[menuName][menuID]['C'],IsVersion,MenuPermissions[menuName][menuID]['R'] , MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D'])\\\"\\n                    [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C'])\\\"\\n                    [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C'])}\\\">\\n                    <div class=\\\"actAlign\\\">\\n                      <span class=\\\"dots\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\n                        title=\\\"{{Activity.ActivityName}}\\\">\\n                        <b>{{Activity.squence}}. {{Activity.ActivityName}}</b>\\n                      </span>\\n                      <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n                        <div class=\\\"example-handle\\\" cdkDragHandle>\\n                          <svg fill=\\\"currentColor\\\" width=\\\"24px\\\" viewBox=\\\"0 0 24 24\\\">\\n                            <path\\n                              d=\\\"M10 9h4V6h3l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l5 5 5-5h-3v-3z\\\">\\n                            </path>\\n                            <path d=\\\"M0 0h24v24H0z\\\" fill=\\\"none\\\"></path>\\n                          </svg>\\n                        </div>\\n                        <span\\n                          *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID] &&(MapType==='1' ||MapType==='3')\\\"\\n                          style=\\\"float: right;\\\" class=\\\"circlelg metricsbg\\\"\\n                          (click)=\\\"getCase(process['Process'], Activity,2,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n                          {{IssuesLists[process['Process'].ProcessID]['Metric'][Activity.ActivityID]}}\\n                        </span>\\n                      </span>\\n                      <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n                        <span\\n                          *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] && (MapType==='0' || MapType==='3')\\\"\\n                          style=\\\"float: right;\\\" class=\\\"circlelg frustrationbg\\\"\\n                          (click)=\\\"getCase(process['Process'], Activity, 1,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n                          {{IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID]}}\\n                        </span>\\n                      </span>\\n                      <span ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\"\\n                        *ngIf=\\\"showMetricAlert[Activity.ActivityID]\\\">\\n                        <span class=\\\"circleI\\\" style=\\\"color: #4aabe7;float: right;\\\"\\n                          title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\n                          *ngIf=\\\"(MapType==='1' || MapType==='3')\\\">\\n                          <img src=\\\"./assets/images/star-blue.png\\\" alt=\\\"bluestar\\\" width=\\\"20px;\\\"\\n                            style=\\\"margin-left:-6px;margin-top: -3px;\\\" />\\n                        </span>\\n                      </span>&nbsp;\\n                      <span class=\\\"circleI\\\" style=\\\"color:#d55632;float: right;\\\"\\n                        title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\n                        *ngIf=\\\"alertPTypeID===1 && IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\n                        <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\" width=\\\"20px;\\\" style=\\\"margin-left: -19px;\\n          margin-top: -3px;\\\">\\n                      </span>\\n                    </div>\\n                  </div>\\n                  <div *ngIf=\\\"expandMap\\\">\\n                    <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && (MapType==='0' ||MapType==='3')\\\">\\n                      <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['IssueList'][Activity.ActivityID]\\\"\\n                        class=\\\"squareIssues\\\">\\n                        <div>\\n                          <table>\\n                            <tbody>\\n                              <tr>\\n                                <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\n                                <td style=\\\"float: left;\\\">\\n                                  <strong> Frustrations </strong>\\n                                </td>\\n                              </tr>\\n                            </tbody>\\n                            <tr\\n                              *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['IssueList'][Activity.ActivityID];let i=index;\\\">\\n                              <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n                                {{i+1}}\\n                              </td>\\n                              <td style=\\\"padding-left: 2px;float: left;\\\">\\n                                {{data.Subject}}\\n                              </td>\\n                              <td style=\\\"height:20px;width:20px;\\\">\\n                                <span *ngIf=\\\"data.StatusID===1\\\"></span>\\n                                <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\" style=\\\"background-color: red;\\\"></span>\\n                                <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\"\\n                                  style=\\\"background-color: yellow;\\\"></span>\\n                                <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\"\\n                                  style=\\\"background-color: green;\\\"></span>\\n                                <span *ngIf=\\\"data.StatusID===5\\\" class=\\\"circleM\\\" style=\\\"background-color: black;\\\"></span>\\n                              </td>\\n                            </tr>\\n                          </table>\\n                        </div>\\n                      </div>\\n                    </span>\\n                    <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && (MapType==='1' ||MapType==='3')\\\">\\n                      <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID]\\\"\\n                        class=\\\"squareM\\\">\\n                        <div>\\n                          <table>\\n                            <tbody>\\n                              <tr>\\n                                <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\n                                <td style=\\\"float: left;\\\">\\n                                  <strong> Metrics </strong>\\n                                </td>\\n                              </tr>\\n\\n                              <tr\\n                                *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID];let i=index;\\\">\\n                                <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n                                  {{i+1}}\\n                                </td>\\n                                <td style=\\\"padding-left: 2px;float: left;\\\">\\n                                  {{data.Description}}\\n                                </td>\\n\\n                              </tr>\\n                            </tbody>\\n                          </table>\\n\\n\\n                        </div>\\n\\n                      </div>\\n                    </span>\\n                  </div>\\n                </div>\\n                <div class=\\\"example-list label-style\\\" *ngIf=\\\"!IsVersion\\\">\\n                  <span>Drop here</span>\\n                </div>\\n              </div>\\n              <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\"\\n                (click)=\\\"IsVersion || readOnly || !(MenuPermissions[menuName][menuID]['C'])? $event.stopPropagation() : AddActivity(process['Process'].ProcessID,0,MenuPermissions[menuName][menuID]['C']); IsVersion || readOnly || !(MenuPermissions[menuName][menuID]['C'])? false : null\\\"\\n                [class.isDisabled]=\\\"IsVersion || readOnly || !(MenuPermissions[menuName][menuID]['C'])\\\"\\n                style=\\\"cursor: pointer;margin-top: 15px;\\\"><b class=\\\"button\\\"\\n                  style=\\\"margin-left: 6px; height: 1px; width: 23px; float: left;border-radius: 2px; color: #929292;font-size: 19px; text-align: center; padding-bottom: 25px; \\\"><i\\n                    class=\\\"fa fa-plus-square\\\"></i></b>\\n                &nbsp;&nbsp;<u style=\\\"font-size: 15px;color: #929292;\\\">Add new activity</u></div>\\n            </div>\\n\\n            <div class=\\\"donotprintthis\\\" *ngIf=\\\"processLists.length>0\\\" matTooltip=\\\"Create new process\\\"\\n              (click)=\\\"AddProcess(MenuPermissions[menuName][menuID]['C'],IsVersion)\\\"\\n              [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C'])\\\"\\n              [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C']),'disableProcess':(!TeamID)}\\\"\\n              style=\\\" color:#3775b5;height: 40px;margin-top: 50px;padding-top: 2px;width: 60px;min-width: 42px;font-size: 25px;cursor: pointer;\\\">\\n              <i class=\\\"fa fa-plus\\\"></i>\\n            </div>\\n          </div>\\n        </div>\\n      </div>\\n\\n      <!----------top head-->\\n      <div *ngIf=\\\"changeSize\\\" class=\\\"row\\\" [@changeDivSize]=currentState>\\n        <div class=\\\"col-sm-12\\\" style=\\\"max-width: 98%;\\\">\\n          <div class=\\\"\\\" id=\\\"printMap11\\\" p style=\\\"display: flex;\\n        flex-wrap: nowrap;position: absolute;overflow: auto;\\\" cdkDropList cdkDropListOrientation=\\\"horizontal\\\"\\n            [cdkDropListData]=\\\"ProcessFinalList\\\" (cdkDropListDropped)=\\\"dropProcess($event);$event.stopPropagation();\\\"\\n            [ngStyle]=\\\"{'width': width+'%','height': height+'%'}\\\">\\n            <div style=\\\"margin-right: 10px;width: 100px;\\\" *ngFor=\\\"let process of ProcessFinalList\\\" cdkDrag\\n              [ngClass]=\\\"{'disableProcess':(IsVersion || readOnly)}\\\">\\n              <div class=\\\"col-sm squarech\\\" style=\\\"width: 100px;\\\"\\n                (click)=\\\"ChooseMatricOrIssue(process['Process'].ProcessID, 0,MenuPermissions[menuName][menuID]['C'],IsVersion,MenuPermissions[menuName][menuID]['R'],MenuPermissions[menuName][menuID]['U'],MenuPermissions[menuName][menuID]['D'])\\\"\\n                [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C'])\\\"\\n                [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C'])}\\\">\\n                <div class=\\\"example-handle\\\" cdkDragHandle style=\\\"font-size: 8px;color: #ccc !important;\\\">\\n                  <svg fill=\\\"currentColor\\\" style=\\\"width: 15px;\\\" fill=\\\"currentColor\\\" viewBox=\\\"0 0 24 24\\\">\\n                    <path\\n                      d=\\\"M10 9h4V6h3l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l5 5 5-5h-3v-3z\\\">\\n                    </path>\\n                    <path d=\\\"M0 0h24v24H0z\\\" fill=\\\"none\\\"></path>\\n                  </svg>\\n                </div>\\n                <span *ngIf=\\\"process['Process'].TeamID===0\\\" class=\\\"circle\\\"\\n                  style=\\\"background-color: #d9c25a;border: 1px solid white;float: left;\\\"\\n                  title=\\\"No team associated with this process\\\">&nbsp;</span>\\n                <span class=\\\" \\\" style=\\\"float: left; color:#4aabe7 ;\\\" [@changeActBoxSize]=currentState\\n                  title=\\\"No metric associated with this process\\\"\\n                  *ngIf=\\\"!IssuesLists[process['Process'].ProcessID].MetricCount && !IssuesLists[process['Process'].ProcessID].pMetricCount && !IssuesLists[process['Process'].ProcessID].SubMetricCount && (MapType==='1' ||MapType==='3')\\\">&nbsp;<img\\n                    src=\\\"./assets/images/triangle-blue.png\\\" alt=\\\"bluetriangle\\\" style=\\\"width: 11px;    margin-top: -10px;\\n       \\\" /></span>\\n                <span class=\\\"\\\" style=\\\"float: left; color: #d55632;\\\" [@changeActBoxSize]=currentState\\n                  title=\\\"No frustrations assosiated with this process\\\"\\n                  *ngIf=\\\"!IssuesLists[process['Process'].ProcessID].IssueCount && !IssuesLists[process['Process'].ProcessID].pIssueCount && !IssuesLists[process['Process'].ProcessID].SubIssueCount && (MapType==='0' ||MapType==='3')\\\">&nbsp;<img\\n                    src=\\\"./assets/images/triangle-red.png\\\" alt=\\\"redtriangle\\\" style=\\\"width: 11px;margin-top: -10px;\\n        margin-left: 3px;\\\" /></span>\\n\\n                <span class=\\\"circleSch\\\" title=\\\"Sub activity exits\\\"\\n                  *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && IssuesLists[process['Process'].ProcessID].SubActivity!=0  && IssuesLists[process['Process'].ProcessID].SubActivity!=undefined\\\">\\n                  &nbsp;</span>\\n                <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID] \\\" style=\\\"cursor:pointer;float:right;\\\"\\n                  [@changeActBoxSize]=currentState>\\n                  <span *ngIf=\\\"ActiveActivities[process['Process'].ProcessID]\\\"\\n                    (click)=\\\"DisplaySubMap(process['Process'].ProcessID);$event.stopPropagation() \\\"\\n                    class=\\\"donotprintthis\\\"><span matTooltip=\\\"Expand process\\\">\\n                      <span class=\\\"fa-stack\\\" style=\\\"margin-left:-1px;\\\">\\n                        <i class=\\\"fa fa-square-o fa-stack-2x\\\"></i>\\n                        <i class=\\\"fa fa-expand fa-stack-1x\\\"></i>\\n                      </span>\\n                    </span></span>\\n                </span>\\n                <hr style=\\\"background-color: #265382;margin-bottom: 1px;\\\">\\n                <span class=\\\"dots squareLabel\\\" [@changeTextSize]=currentState\\n                  style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\n                  title=\\\"{{process['Process'].ProcessName}}\\\">&nbsp;\\n                  {{process['Process'].ProcessName}}&nbsp; </span>\\n                <div [@changeActBoxSize]=currentState\\n                  *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['pIssueCount'] && (MapType==='0' || MapType==='3')\\\"\\n                  (click)=\\\"getCase(process['Process'], 0, 1,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\"\\n                  class=\\\"squareIssuech1\\\" style=\\\"float:right;margin-left:3px;margin-top: 5px;\\\">\\n                  {{IssuesLists[process['Process'].ProcessID]['pIssueCount']}}\\n                </div>\\n                <div [@changeActBoxSize]=currentState\\n                  *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && IssuesLists[process['Process'].ProcessID]['pMetricCount'] && (MapType==='1' ||MapType==='3')\\\"\\n                  class=\\\"squareKPI2ch\\\" style=\\\" float:right;margin-top: 5px; \\\"\\n                  (click)=\\\"getCase(process['Process'], 0,2,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n\\n                  {{IssuesLists[process['Process'].ProcessID]['pMetricCount']}} </div>\\n              </div>\\n\\n              <div class=\\\"row\\\" *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n\\n                <table style=\\\"width: 85%;\\n      margin-left: 7%;\\\">\\n                  <tr>\\n\\n                  </tr>\\n                </table>\\n\\n\\n              </div>\\n              <div *ngIf=\\\"expandMap \\\">\\n                <span\\n                  *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricProcess'] && (MapType==='1' ||MapType==='3')\\\">\\n                  <div [@changeMFDivSize]=currentState style=\\\"width: 100px;margin-top: 8px;\\\"\\n                    *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricProcess'][process['Process'].ProcessID]\\\"\\n                    class=\\\"squareM\\\">\\n                    <div>\\n                      <table>\\n                        <tbody>\\n                          <tr>\\n                            <td style=\\\"word-break:normal;\\\"><strong [@changeTextSize]=currentState>No.</strong> </td>\\n                            <td style=\\\"float: left;\\\">\\n                              <strong [@changeTextSize]=currentState> Metrics </strong>\\n                            </td>\\n                          </tr>\\n\\n                          <tr\\n                            *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['MetricProcess'][process['Process'].ProcessID];let i=index;\\\">\\n                            <td [@changeTextSize]=currentState\\n                              style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n                              {{i+1}}\\n                            </td>\\n                            <td [@changeTextSize]=currentState style=\\\"padding-left: 2px;float: left;\\\">\\n                              {{data.Description}}\\n                            </td>\\n\\n                          </tr>\\n                        </tbody>\\n                      </table>\\n                    </div>\\n                  </div>\\n                </span>\\n              </div>\\n\\n              <div *ngIf=\\\"expandMap \\\">\\n                <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && (MapType==='0' ||MapType==='3') \\\">\\n                  <div [@changeMFDivSize]=currentState style=\\\"width: 100px;margin-top: 8px;\\\"\\n                    *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['IssueProcess'][process['Process'].ProcessID]\\\"\\n                    class=\\\"squareIssues\\\">\\n                    <div>\\n                      <table>\\n                        <tbody>\\n                          <tr>\\n                            <td style=\\\"word-break:normal;\\\"><strong [@changeTextSize]=currentState>No.</strong> </td>\\n                            <td style=\\\"float: left;\\\">\\n                              <strong [@changeTextSize]=currentState> Frustrations </strong>\\n                            </td>\\n                          </tr>\\n                          <tr\\n                            *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['IssueProcess'][process['Process'].ProcessID];let i=index;\\\">\\n                            <td [@changeTextSize]=currentState\\n                              style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n                              {{i+1}}\\n                            </td>\\n                            <td [@changeTextSize]=currentState style=\\\"padding-left: 2px;float: left;\\\">\\n                              {{data.Subject}}\\n                            </td>\\n                            <td style=\\\"height:20px;width:20px;\\\">\\n                              <span *ngIf=\\\"data.StatusID===1\\\"></span>\\n                              <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\"\\n                                style=\\\"background-color: red;font-size: 7px;\\\"></span>\\n                              <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\"\\n                                style=\\\"background-color: yellow;font-size: 7px;\\\"></span>\\n                              <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\"\\n                                style=\\\"background-color: green;font-size: 7px;\\\"></span>\\n                              <span *ngIf=\\\"data.StatusID===5 \\\" class=\\\"circleM\\\"\\n                                style=\\\"background-color: black;font-size: 7px;\\\"></span>\\n                            </td>\\n                          </tr>\\n                        </tbody>\\n                      </table>\\n                    </div>\\n                  </div>\\n                </span>\\n              </div>\\n              <div cdkDropList id=\\\"{{process['ProcessID']}}\\\" [cdkDropListData]=\\\"process['ActivityList']\\\"\\n                [cdkDropListConnectedTo]=\\\"connectedTo\\\"\\n                (cdkDropListDropped)=\\\"dropActivity($event,process['Process']);$event.stopPropagation();\\\">\\n                <div class=\\\"row\\\" *ngFor=\\\"let Activity of process['ActivityList']; let i=index\\\"\\n                  style=\\\"margin-top: 10px;   width:100%; margin-left: 1px;\\\" cdkDrag\\n                  [ngClass]=\\\"{'disableProcess':(IsVersion || readOnly)}\\\">\\n                  <div class=\\\"squareInActvtych\\\" style=\\\"width: 100px;\\\" id=\\\"activity\\\" *ngIf=\\\"Activity.ActivityTypeID==1\\\"\\n                    (click)=\\\"ChooseMatricOrIssue(process['Process'].ProcessID, Activity.ActivityID,MenuPermissions[menuName][menuID]['C'],IsVersion,MenuPermissions[menuName][menuID]['R'],MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D'])\\\"\\n                    [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C'])\\\"\\n                    [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C'])}\\\">\\n                    <div class=\\\"dots\\\" [@changeTextSize]=currentState title=\\\"{{Activity.ActivityName}}\\\"\\n                      style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\">\\n                      {{Activity.squence}} {{Activity.ActivityName}} </div>\\n                    <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n                      <div class=\\\"example-handle\\\" cdkDragHandle style=\\\"font-size: 8px;\\\">\\n                        <svg fill=\\\"currentColor\\\" style=\\\"width: 15px;\\\" viewBox=\\\"0 0 24 24\\\">\\n                          <path\\n                            d=\\\"M10 9h4V6h3l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l5 5 5-5h-3v-3z\\\">\\n                          </path>\\n                          <path d=\\\"M0 0h24v24H0z\\\" fill=\\\"none\\\"></path>\\n                        </svg>\\n                      </div>\\n                      <div [@changeActBoxSize]=currentState\\n                        *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] && (MapType==='0' || MapType==='3')\\\"\\n                        style=\\\"float: right; margin-top: 5px;\\n              margin-left: 1px;\\\" class=\\\"circlelgch frustrationbg\\\"\\n                        (click)=\\\"getCase(process['Process'], Activity, 1,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n                        {{IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID]}}\\n                      </div>\\n                    </div>\\n                    <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n                      <div [@changeActBoxSize]=currentState\\n                        *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID] &&(MapType==='1' ||MapType==='3')\\\"\\n                        style=\\\"float: right; margin-top:5px;margin-left:1px; \\\" class=\\\"circlelgch metricsbg\\\"\\n                        (click)=\\\"getCase(process['Process'], Activity,2,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n                        {{IssuesLists[process['Process'].ProcessID]['Metric'][Activity.ActivityID]}}\\n                      </div>\\n                      <div *ngIf=\\\"(MapType==='0' || MapType==='1'|| MapType==='2'|| MapType==='3')\\\"\\n                        style=\\\"margin-left:26px;\\\"></div>\\n                    </div>\\n                    <div ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\"\\n                      *ngIf=\\\"showMetricAlert[Activity.ActivityID]\\\">\\n                      <div class=\\\"circleI\\\" style=\\\"color: #4aabe7; float: right;\\\"\\n                        title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\n                        *ngIf=\\\"(MapType==='1' || MapType==='3')\\\">\\n                        <img src=\\\"./assets/images/star-blue.png\\\" [@changeAlertBoxSize]=currentState alt=\\\"bluestar\\\"\\n                          width=\\\"20px;\\\" style=\\\"margin-left: -33px;\\n            margin-top: -2px;\\\" />\\n                      </div>\\n                    </div>\\n                    <div class=\\\"circleI\\\" style=\\\"color:#d55632;float: right; \\\"\\n                      title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\n                      *ngIf=\\\"alertPTypeID===1 && IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\n                      <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\" [@changeAlertBoxSize]=currentState\\n                        width=\\\"20px;\\\" style=\\\"margin-left: -5px;\\n        margin-top: -2px;\\\">\\n                    </div>\\n                    <span\\n                      *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID] >=1 && (MapType==='0' || MapType==='3') ;else templateName\\\">\\n                    </span>\\n                  </div>\\n                  <div class=\\\"squareExActvtych\\\" style=\\\"width: 100px;\\\" id=\\\"activity\\\" *ngIf=\\\"Activity.ActivityTypeID!==1\\\"\\n                    (click)=\\\"ChooseMatricOrIssue(process['Process'].ProcessID, Activity.ActivityID,MenuPermissions[menuName][menuID]['C'],IsVersion,MenuPermissions[menuName][menuID]['R'],MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D'])\\\"\\n                    [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C'])\\\"\\n                    [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C'])}\\\">\\n                    <div class=\\\"dots\\\" [@changeTextSize]=currentState title=\\\"{{Activity.ActivityName}}\\\"\\n                      style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\">\\n                      {{Activity.squence}} {{Activity.ActivityName}} </div>\\n                    <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n\\n                      <div class=\\\"example-handle\\\" cdkDragHandle style=\\\"font-size: 8px;\\\">\\n                        <svg fill=\\\"currentColor\\\" style=\\\"width: 15px;\\\" viewBox=\\\"0 0 24 24\\\">\\n                          <path\\n                            d=\\\"M10 9h4V6h3l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l5 5 5-5h-3v-3z\\\">\\n                          </path>\\n                          <path d=\\\"M0 0h24v24H0z\\\" fill=\\\"none\\\"></path>\\n                        </svg>\\n                      </div>\\n                      <div [@changeActBoxSize]=currentState\\n                        *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] && (MapType==='0' || MapType==='3')\\\"\\n                        style=\\\"float: right; margin-top: 5px;\\n            margin-left: 1px;\\\" class=\\\"circlelgch frustrationbg\\\"\\n                        (click)=\\\"getCase(process['Process'], Activity, 1,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n                        {{IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID]}}\\n                      </div>\\n\\n                    </div>\\n                    <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n                      <div [@changeActBoxSize]=currentState\\n                        *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID] &&(MapType==='1' ||MapType==='3')\\\"\\n                        style=\\\"float: right; margin-top:5px;margin-left:1px; \\\" class=\\\"circlelgch metricsbg\\\"\\n                        (click)=\\\"getCase(process['Process'], Activity,2,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n                        {{IssuesLists[process['Process'].ProcessID]['Metric'][Activity.ActivityID]}}\\n                      </div>\\n                      <div *ngIf=\\\"(MapType==='0' || MapType==='1'|| MapType==='2'|| MapType==='3')\\\"\\n                        style=\\\"margin-left:26px;\\\"></div>\\n                    </div>\\n                    <div ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\"\\n                      *ngIf=\\\"showMetricAlert[Activity.ActivityID]\\\">\\n                      <div class=\\\"circleI\\\" style=\\\"color: #4aabe7; float: right;\\\"\\n                        title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\n                        *ngIf=\\\"(MapType==='1' || MapType==='3')\\\">\\n                        <img src=\\\"./assets/images/star-blue.png\\\" [@changeAlertBoxSize]=currentState alt=\\\"bluestar\\\"\\n                          width=\\\"20px;\\\" style=\\\"margin-left: -33px;\\n          margin-top: -2px;\\\" />\\n                      </div>\\n                    </div>\\n                    <div class=\\\"circleI\\\" style=\\\"color:#d55632;float: right; \\\"\\n                      title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\n                      *ngIf=\\\"alertPTypeID===1 && IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\n                      <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\" [@changeAlertBoxSize]=currentState\\n                        width=\\\"20px;\\\" style=\\\"margin-left: -5px;\\n      margin-top: -2px;\\\">\\n                    </div>\\n\\n                    <span\\n                      *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID] >=1 && (MapType==='0' || MapType==='3') ;else templateName\\\">\\n\\n                    </span>\\n\\n\\n\\n                  </div>\\n\\n\\n                  <div *ngIf=\\\"expandMap\\\" style=\\\"padding-top:10px;\\\">\\n                    <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && (MapType==='1' ||MapType==='3')\\\">\\n\\n                      <div [@changeMFDivSize]=currentState style=\\\"width: 100px;margin-top: 0px;\\\"\\n                        *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID]\\\"\\n                        class=\\\"squareM\\\">\\n                        <div>\\n\\n                          <table>\\n                            <tbody>\\n                              <tr>\\n                                <td style=\\\"word-break:normal;\\\"><strong [@changeTextSize]=currentState>No.</strong></td>\\n                                <td style=\\\"float: left;\\\">\\n                                  <strong [@changeTextSize]=currentState> Metrics </strong>\\n                                </td>\\n                              </tr>\\n\\n                              <tr\\n                                *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID];let i=index;\\\">\\n                                <td [@changeTextSize]=currentState\\n                                  style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n                                  {{i+1}}\\n                                </td>\\n                                <td [@changeTextSize]=currentState style=\\\"padding-left: 2px;float: left;\\\">\\n                                  {{data.Description}}\\n                                </td>\\n\\n                              </tr>\\n                            </tbody>\\n                          </table>\\n\\n\\n                        </div>\\n\\n                      </div>\\n                    </span>\\n\\n                  </div>\\n\\n                  <div *ngIf=\\\"expandMap\\\" style=\\\"padding-top:10px;\\\">\\n                    <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && (MapType==='0' ||MapType==='3')\\\">\\n\\n                      <div [@changeMFDivSize]=currentState style=\\\"width: 100px;margin-top: 0px;\\\"\\n                        *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['IssueList'][Activity.ActivityID]\\\"\\n                        class=\\\"squareIssues\\\">\\n                        <div>\\n                          <table>\\n\\n                            <tbody>\\n                              <tr>\\n                                <td style=\\\"word-break:normal;\\\"><strong [@changeTextSize]=currentState>No.</strong> </td>\\n                                <td style=\\\"float: left;\\\">\\n                                  <strong [@changeTextSize]=currentState> Frustrations </strong>\\n                                </td>\\n                              </tr>\\n\\n                            </tbody>\\n\\n                            <tr\\n                              *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['IssueList'][Activity.ActivityID];let i=index;\\\">\\n                              <td [@changeTextSize]=currentState\\n                                style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n                                {{i+1}}\\n                              </td>\\n                              <td [@changeTextSize]=currentState style=\\\"padding-left: 2px;float: left;\\\">\\n                                {{data.Subject}}\\n\\n                              </td>\\n                              <td style=\\\"height:20px;width:20px;\\\">\\n                                <span *ngIf=\\\"data.StatusID===1\\\"></span>\\n                                <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\"\\n                                  style=\\\"background-color: red;font-size: 7px;\\\"></span>\\n                                <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\"\\n                                  style=\\\"background-color: yellow;font-size: 7px;\\\"></span>\\n                                <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\"\\n                                  style=\\\"background-color: green;font-size: 7px;\\\"></span>\\n                                <span *ngIf=\\\"data.StatusID===5\\\" class=\\\"circleM\\\"\\n                                  style=\\\"background-color: black;font-size: 7px;\\\"></span>\\n                              </td>\\n                            </tr>\\n\\n                          </table>\\n\\n\\n                        </div>\\n\\n                      </div>\\n                    </span>\\n\\n                  </div>\\n\\n                </div>\\n                <div class=\\\"example-list label-style\\\" *ngIf=\\\"!IsVersion\\\" [@changeTextSize]=currentState\\n                  style=\\\"min-height: 40px;margin-top:5px;\\\">\\n                  <span>Drop here</span>\\n                </div>\\n\\n              </div>\\n\\n\\n              <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\"\\n                (click)=\\\"IsVersion || readOnly || !(MenuPermissions[menuName][menuID]['C'])? $event.stopPropagation() : AddActivity(process['Process'].ProcessID,0,MenuPermissions[menuName][menuID]['C']); IsVersion || readOnly || !(MenuPermissions[menuName][menuID]['C'])? false : null\\\"\\n                [class.isDisabled]=\\\"IsVersion || readOnly || !(MenuPermissions[menuName][menuID]['C'])\\\"\\n                style=\\\"cursor: pointer;margin-top: 2px;\\\"><b class=\\\"button\\\" [@changeActBoxSize1]=currentState\\n                  style=\\\"margin-left: 6px; height: 1px; width: 23px; float: left;border-radius: 2px;background-color: #929292; color: white;font-size: 19px; text-align: center;margin-top: 8px;\\\">+</b>\\n                &nbsp;&nbsp;<u style=\\\"color: #929292;font-size: 15px;\\\" [@changeTextSize]=currentState>Add new\\n                  activity</u></div>\\n            </div>\\n\\n            <div class=\\\"donotprintthis\\\" *ngIf=\\\"processLists.length>0\\\" matTooltip=\\\"Create new process\\\"\\n              (click)=\\\"AddProcess(MenuPermissions[menuName][menuID]['C'],IsVersion)\\\"\\n              [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C'])\\\"\\n              [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C']),'disableProcess':(!TeamID)}\\\"\\n              style=\\\" color:#3775b5;height: 40px;margin-top: 10px;padding-top: 2px;width: 60px;min-width: 42px;font-size: 24px;margin:10px;cursor: pointer;\\\">\\n              <i class=\\\"fa fa-plus\\\"></i>\\n            </div>\\n\\n\\n\\n          </div>\\n        </div>\\n      </div>\\n\\n      <div class=\\\"row\\\" id=\\\"print-ZoomSection\\\" style=\\\"display: none;zoom: 90%;\\\">\\n        <div class=\\\"row\\\" style=\\\"text-align: center;word-break: break-word;\\\">\\n          <div class=\\\"col-sm-6\\\">\\n            <strong> {{CompanyName }} - </strong> ProcessMap <br>\\n            <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\n            <span>MapType: {{typeName}}</span> <br>\\n          </div>\\n          <div class=\\\"col-sm-6\\\">\\n            <span>Team: {{TeamName}}</span><br>\\n            <span>Version: {{currentVersion[\\\"VersionName\\\"]}}</span>\\n          </div>\\n\\n        </div>\\n\\n\\n        <div style=\\\"width: 100%;\\\">\\n          <ul style=\\\"display: flex;list-style: none;margin: 0;padding: 0;\\\">\\n            <li style=\\\"width:80% !important\\\">\\n              <div class=\\\"card\\\">\\n                <div class=\\\"card-body\\\">\\n                  <ul style=\\\"display: flex;list-style: none;margin: 0;padding: 0;\\\">\\n                    <li style=\\\"margin-right: 65px;\\\">\\n                      <div>\\n                        <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"15\\\" height=\\\"15\\\"\\n                          viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n                          <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n                            stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n                            font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n                            style=\\\"mix-blend-mode: normal\\\">\\n                            <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n                            <g fill=\\\"#3775b5\\\">\\n                              <path d=\\\"M0,13.23077v145.53846h172v-145.53846z\\\"></path>\\n                            </g>\\n                          </g>\\n                        </svg>\\n                        <span class=\\\"labelFont\\\">&nbsp;Key Process\\n                          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>\\n                      </div>\\n                    </li>\\n\\n                    <li>\\n                      <div>\\n                        <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\"\\n                          viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n                          <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n                            stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n                            font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n                            style=\\\"mix-blend-mode: normal\\\">\\n                            <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n                            <g fill=\\\"#4aabe7\\\">\\n                              <path\\n                                d=\\\"M86,17.2c-37.9948,0 -68.8,30.8052 -68.8,68.8c0,37.9948 30.8052,68.8 68.8,68.8c37.9948,0 68.8,-30.8052 68.8,-68.8c0,-37.9948 -30.8052,-68.8 -68.8,-68.8z\\\">\\n                              </path>\\n                            </g>\\n                          </g>\\n                        </svg>\\n                        <span class=\\\"labelFont\\\">&nbsp;Metric</span>\\n                      </div>\\n                    </li>\\n                  </ul>\\n                  <ul style=\\\"display: flex;list-style: none;margin: 0;padding: 0;\\\">\\n                    <li style=\\\"margin-right: 30px;\\\">\\n                      <div><svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"15\\\" height=\\\"15\\\"\\n                          viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n                          <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n                            stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n                            font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n                            style=\\\"mix-blend-mode: normal\\\">\\n                            <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n                            <g fill=\\\"#a3cda2\\\">\\n                              <path d=\\\"M0,13.23077v145.53846h172v-145.53846z\\\"></path>\\n                            </g>\\n                          </g>\\n                        </svg>\\n                        <span class=\\\"labelFont\\\">&nbsp;Activity - External to Process</span>\\n                      </div>\\n                    <li>\\n                      <div>\\n                        <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\"\\n                          viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n                          <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n                            stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n                            font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n                            style=\\\"mix-blend-mode: normal\\\">\\n                            <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n                            <g fill=\\\"#d55632\\\">\\n                              <path\\n                                d=\\\"M86,17.2c-37.9948,0 -68.8,30.8052 -68.8,68.8c0,37.9948 30.8052,68.8 68.8,68.8c37.9948,0 68.8,-30.8052 68.8,-68.8c0,-37.9948 -30.8052,-68.8 -68.8,-68.8z\\\">\\n                              </path>\\n                            </g>\\n                          </g>\\n                        </svg>\\n                        <span class=\\\"labelFont\\\"> &nbsp;Frustration / Issue</span>\\n                      </div>\\n                    </li>\\n                  </ul>\\n                  <ul style=\\\"display: flex;list-style: none;margin: 0;padding: 0;\\\">\\n                    <li style=\\\"margin-right: 30px;\\\">\\n                      <div>\\n                        <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"15\\\" height=\\\"15\\\"\\n                          viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n                          <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n                            stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n                            font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n                            style=\\\"mix-blend-mode: normal\\\">\\n                            <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n                            <g fill=\\\"#e2e3e4\\\">\\n                              <path d=\\\"M0,13.23077v145.53846h172v-145.53846z\\\"></path>\\n                            </g>\\n                          </g>\\n                        </svg>\\n                        <span class=\\\"labelFont\\\">&nbsp;Activity - Internal to Process</span>\\n                      </div>\\n                    </li>\\n                    <li>\\n                      <div>\\n                        <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\"\\n                          viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n                          <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n                            stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n                            font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n                            style=\\\"mix-blend-mode: normal\\\">\\n                            <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n                            <g fill=\\\"#d9c25a\\\">\\n                              <path\\n                                d=\\\"M86,17.2c-37.9948,0 -68.8,30.8052 -68.8,68.8c0,37.9948 30.8052,68.8 68.8,68.8c37.9948,0 68.8,-30.8052 68.8,-68.8c0,-37.9948 -30.8052,-68.8 -68.8,-68.8z\\\">\\n                              </path>\\n                            </g>\\n                          </g>\\n                        </svg>\\n                        <span class=\\\"labelFont\\\">&nbsp;Sub-Activity Exists</span>\\n                      </div>\\n                    </li>\\n                  </ul>\\n                </div>\\n              </div>\\n            </li>&nbsp;&nbsp;&nbsp;&nbsp;\\n            <li style=\\\"width:80% !important\\\">\\n              <div class=\\\"card\\\">\\n                <div class=\\\"card-body\\\">\\n                  <ul style=\\\"display: flex;list-style: none;margin: 0;padding: 0;\\\">\\n                    <li style=\\\"margin-right: 20px;\\\">\\n                      <div>\\n                        <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\"\\n                          viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n                          <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n                            stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n                            font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n                            style=\\\"mix-blend-mode: normal\\\">\\n                            <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n                            <g fill=\\\"#00aced\\\">\\n                              <path\\n                                d=\\\"M86,128.1185l48.9555,29.54817l-12.99317,-55.685l43.25083,-37.46733l-56.9535,-4.83033l-22.25967,-52.51733l-22.25967,52.51733l-56.9535,4.83033l43.25083,37.46733l-12.99317,55.685z\\\">\\n                              </path>\\n                            </g>\\n                          </g>\\n                        </svg>\\n                        <span class=\\\"labelFont\\\">&nbsp;&nbsp;&nbsp;Alert - Multiple Activities with No Metrics</span>\\n\\n                      </div>\\n                    </li>\\n                    <li style=\\\"margin-bottom: 9px;\\\">\\n                      <div>\\n                        <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\"\\n                          viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n                          <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n                            stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n                            font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n                            style=\\\"mix-blend-mode: normal\\\">\\n                            <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n                            <g fill=\\\"#e64b20\\\">\\n                              <path\\n                                d=\\\"M86,128.1185l48.9555,29.54817l-12.99317,-55.685l43.25083,-37.46733l-56.9535,-4.83033l-22.25967,-52.51733l-22.25967,52.51733l-56.9535,4.83033l43.25083,37.46733l-12.99317,55.685z\\\">\\n                              </path>\\n                            </g>\\n                          </g>\\n                        </svg>\\n                        <span class=\\\"labelFont\\\">&nbsp;&nbsp;&nbsp; Alert - Multiple Frustrations Clustered</span>\\n                      </div>\\n                    </li>\\n                  </ul>\\n                  <ul style=\\\"display: flex;list-style: none;margin: 0;padding: 0;\\\">\\n                    <li style=\\\"margin-right: 35px;\\\">\\n                      <div>\\n                        <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\"\\n                          viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n                          <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n                            stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n                            font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n                            style=\\\"mix-blend-mode: normal\\\">\\n                            <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n                            <g>\\n                              <path\\n                                d=\\\"M13.7987,152.65c-2.6531,0 -5.0267,-1.3717 -6.3511,-3.6679c-1.3287,-2.2962 -1.3287,-5.0396 0,-7.3358l72.2013,-125.0569c1.3244,-2.2962 3.698,-3.6679 6.3511,-3.6679c2.6531,0 5.0267,1.3717 6.3511,3.6679l72.2013,125.0569c1.3287,2.2962 1.3287,5.0353 0,7.3358c-1.3244,2.2962 -3.698,3.6679 -6.3511,3.6679z\\\"\\n                                fill=\\\"#00aced\\\"></path>\\n                              <path\\n                                d=\\\"M86,15.0758c0.8987,0 3.139,0.2537 4.4892,2.5929l72.2013,125.0569c1.3502,2.3392 0.4515,4.4075 0,5.1858c-0.4515,0.774 -1.7888,2.5886 -4.4892,2.5886h-144.4026c-2.7004,0 -4.042,-1.8146 -4.4892,-2.5929c-0.4515,-0.7783 -1.3502,-2.8466 0,-5.1858l72.2013,-125.0526c1.3502,-2.3435 3.5905,-2.5929 4.4892,-2.5929M86,10.7758c-3.1949,0 -6.3898,1.5824 -8.213,4.7429l-72.2013,125.0526c-3.6507,6.3253 0.9116,14.2287 8.213,14.2287h144.4026c7.3014,0 11.8637,-7.9034 8.213,-14.2287l-72.2013,-125.0526c-1.8232,-3.1648 -5.0181,-4.7429 -8.213,-4.7429z\\\"\\n                                fill=\\\"#00aced\\\"></path>\\n                              <path\\n                                d=\\\"M86,118.3274c-4.0277,0 -7.2928,3.2651 -7.2928,7.2928c0,4.0277 3.2651,7.2928 7.2928,7.2928c4.0277,0 7.2928,-3.2651 7.2928,-7.2928c0,-4.0277 -3.2651,-7.2928 -7.2928,-7.2928zM80.1649,55.5947h11.6702v52.5202h-11.6702z\\\"\\n                                fill=\\\"#ffffff\\\"></path>\\n                            </g>\\n                          </g>\\n                        </svg>\\n                        <span class=\\\"labelFont\\\">&nbsp;&nbsp;&nbsp; Alert - Key Process: No Metrics &nbsp;&nbsp;&nbsp;\\n                          &nbsp;&nbsp;&nbsp;</span>\\n                      </div>\\n                    </li>\\n                    <li style=\\\"margin-bottom: 9px;\\\">\\n                      <div>\\n                        <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\"\\n                          viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n                          <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n                            stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n                            font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n                            style=\\\"mix-blend-mode: normal\\\">\\n                            <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n                            <g>\\n                              <path\\n                                d=\\\"M13.7987,152.65c-2.6531,0 -5.0267,-1.3717 -6.3511,-3.6679c-1.3287,-2.2962 -1.3287,-5.0396 0,-7.3358l72.2013,-125.0569c1.3244,-2.2962 3.698,-3.6679 6.3511,-3.6679c2.6531,0 5.0267,1.3717 6.3511,3.6679l72.2013,125.0569c1.3287,2.2962 1.3287,5.0353 0,7.3358c-1.3244,2.2962 -3.698,3.6679 -6.3511,3.6679z\\\"\\n                                fill=\\\"#e64b20\\\"></path>\\n                              <path\\n                                d=\\\"M86,15.0758c0.8987,0 3.139,0.2537 4.4892,2.5929l72.2013,125.0569c1.3502,2.3392 0.4515,4.4075 0,5.1858c-0.4515,0.774 -1.7888,2.5886 -4.4892,2.5886h-144.4026c-2.7004,0 -4.042,-1.8146 -4.4892,-2.5929c-0.4515,-0.7783 -1.3502,-2.8466 0,-5.1858l72.2013,-125.0526c1.3502,-2.3435 3.5905,-2.5929 4.4892,-2.5929M86,10.7758c-3.1949,0 -6.3898,1.5824 -8.213,4.7429l-72.2013,125.0526c-3.6507,6.3253 0.9116,14.2287 8.213,14.2287h144.4026c7.3014,0 11.8637,-7.9034 8.213,-14.2287l-72.2013,-125.0526c-1.8232,-3.1648 -5.0181,-4.7429 -8.213,-4.7429z\\\"\\n                                fill=\\\"#e64b20\\\"></path>\\n                              <path\\n                                d=\\\"M86,118.3274c-4.0277,0 -7.2928,3.2651 -7.2928,7.2928c0,4.0277 3.2651,7.2928 7.2928,7.2928c4.0277,0 7.2928,-3.2651 7.2928,-7.2928c0,-4.0277 -3.2651,-7.2928 -7.2928,-7.2928zM80.1649,55.5947h11.6702v52.5202h-11.6702z\\\"\\n                                fill=\\\"#ffffff\\\"></path>\\n                            </g>\\n                          </g>\\n                        </svg>\\n                        <span class=\\\"labelFont\\\">&nbsp;&nbsp;&nbsp; Alert - Key Process: No Frustrations</span>\\n                      </div>\\n                    </li>\\n                  </ul>\\n                </div>\\n              </div>\\n            </li>\\n          </ul>\\n        </div>\\n\\n        <style>\\n          @media print {\\n            .testq {\\n              page-break-inside: avoid !important;\\n            }\\n\\n            .multidata {\\n              display: block !important;\\n              page-break-inside: avoid !important;\\n            }\\n\\n            .testq {\\n              page-break-after: always !important;\\n            }\\n\\n            .testq:last-child {\\n              page-break-after: avoid !important;\\n            }\\n\\n            .donotprintthis {\\n              display: none;\\n\\n            }\\n          }\\n        </style>\\n\\n\\n\\n\\n\\n        <div class=\\\"row\\\" style=\\\"margin-left: 10px;\\\">\\n          <div class=\\\"multidata\\\" style=\\\"margin-right: 10px;width: 100px;\\\" *ngFor=\\\"let process of ProcessFinalList\\\">\\n            <div class=\\\"testq multidata\\\" style=\\\"margin:5% 0% !important;\\\">\\n              <div class=\\\"col-sm squarech multidata\\\" style=\\\"width: 100px;margin-bottom: 10px;\\\"\\n                [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C'])\\\"\\n                [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C'])}\\\">\\n                <span *ngIf=\\\"process.TeamID===0\\\" class=\\\"circle\\\"\\n                  style=\\\"background-color: #d9c25a;border: 1px solid white;float: left;\\\"\\n                  title=\\\"No team associated with this process\\\">&nbsp;</span>\\n                <span class=\\\" \\\" style=\\\"float: left; color:#4aabe7 ;\\\" [@changeActBoxSize]=currentState\\n                  title=\\\"No metric associated with this process\\\"\\n                  *ngIf=\\\"!IssuesLists[process['Process'].ProcessID].MetricCount && !IssuesLists[process['Process'].ProcessID].pMetricCount && !IssuesLists[process['Process'].ProcessID].SubMetricCount && (MapType==='1' ||MapType==='3')\\\">&nbsp;<img\\n                    src=\\\"./assets/images/triangle-blue.png\\\" alt=\\\"bluetriangle\\\" style=\\\"width: 11px;    margin-top: -10px;\\n               \\\" /></span>\\n                <span class=\\\"\\\" style=\\\"float: left; color: #d55632;\\\" [@changeActBoxSize]=currentState\\n                  title=\\\"No frustrations assosiated with this process\\\"\\n                  *ngIf=\\\"!IssuesLists[process['Process'].ProcessID].IssueCount && !IssuesLists[process['Process'].ProcessID].pIssueCount && !IssuesLists[process['Process'].ProcessID].SubIssueCount && (MapType==='0' ||MapType==='3')\\\">&nbsp;<img\\n                    src=\\\"./assets/images/triangle-red.png\\\" alt=\\\"redtriangle\\\" style=\\\"width: 11px;margin-top: -10px;\\n                margin-left: 3px;\\\" /></span>\\n                <span class=\\\"circleSch\\\" title=\\\"Sub activity exits\\\"\\n                  *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && IssuesLists[process['Process'].ProcessID].SubActivity!=0  && IssuesLists[process['Process'].ProcessID].SubActivity!=undefined\\\">\\n                  &nbsp;</span>\\n\\n\\n                <hr style=\\\"background-color: #265382;margin-bottom: 1px;\\\">\\n\\n                <span class=\\\"dots squareLabel multidata\\\" [@changeTextSize]=currentState\\n                  style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;margin-top: 4px;\\\"\\n                  title=\\\"{{process['Process'].ProcessName}}\\\">&nbsp;\\n                  {{process['Process'].ProcessName}}&nbsp; </span>\\n\\n                <div [@changeActBoxSize]=currentState\\n                  *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && IssuesLists[process['Process'].ProcessID]['pIssueCount'] && (MapType==='0' || MapType==='3')\\\"\\n                  (click)=\\\"getCase(process['Process'], 0, 1,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\"\\n                  class=\\\"squareIssuech1\\\" style=\\\"float:right;margin-left:3px;margin-top: 5px;\\\">\\n                  {{IssuesLists[process['Process'].ProcessID]['pIssueCount']}}\\n                </div>\\n                <div [@changeActBoxSize]=currentState\\n                  *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && IssuesLists[process['Process'].ProcessID]['pMetricCount'] && (MapType==='1' ||MapType==='3')\\\"\\n                  class=\\\"squareKPI2ch\\\" style=\\\" float:right;margin-top: 5px; \\\"\\n                  (click)=\\\"getCase(process['Process'], 0,2,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n\\n                  {{IssuesLists[process['Process'].ProcessID]['pMetricCount']}} </div>\\n              </div>\\n\\n              <div class=\\\"row\\\" *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n\\n                <table style=\\\"width: 85%;\\n              margin-left: 7%;\\\">\\n                  <tr>\\n\\n                  </tr>\\n                </table>\\n\\n\\n              </div>\\n              <div *ngIf=\\\"expandMap \\\">\\n                <span\\n                  *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricProcess'] && (MapType==='1' ||MapType==='3')\\\">\\n                  <div [@changeMFDivSize]=currentState style=\\\"width: 100px;margin-top: 2px;\\\"\\n                    *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricProcess'][process['Process'].ProcessID]\\\"\\n                    class=\\\"squareM\\\">\\n                    <div>\\n                      <table>\\n                        <tbody>\\n                          <tr>\\n                            <td style=\\\"word-break:normal;\\\"><strong [@changeTextSize]=currentState>No.</strong></td>\\n                            <td style=\\\"float: left;\\\">\\n                              <strong [@changeTextSize]=currentState> Metrics </strong>\\n                            </td>\\n                          </tr>\\n\\n                          <tr\\n                            *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['MetricProcess'][process['Process'].ProcessID];let i=index;\\\">\\n                            <td [@changeTextSize]=currentState\\n                              style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n                              {{i+1}}\\n                            </td>\\n                            <td [@changeTextSize]=currentState style=\\\"padding-left: 2px;float: left;\\\">\\n                              {{data.Description}}\\n                            </td>\\n\\n                          </tr>\\n                        </tbody>\\n                      </table>\\n\\n\\n                    </div>\\n\\n                  </div>\\n                </span>\\n\\n              </div>\\n\\n\\n\\n              <div *ngIf=\\\"expandMap \\\">\\n                <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && (MapType==='0' ||MapType==='3') \\\">\\n                  <div [@changeMFDivSize]=currentState style=\\\"width: 100px;margin-top: 2px;\\\"\\n                    *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['IssueProcess'][process['Process'].ProcessID]\\\"\\n                    class=\\\"squareIssues\\\">\\n                    <div>\\n                      <table>\\n                        <tbody>\\n                          <tr>\\n                            <td style=\\\"word-break:normal;\\\"><strong [@changeTextSize]=currentState>No.</strong></td>\\n                            <td style=\\\"float: left;\\\">\\n                              <strong [@changeTextSize]=currentState> Frustrations </strong>\\n                            </td>\\n                          </tr>\\n\\n                          <tr\\n                            *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['IssueProcess'][process['Process'].ProcessID];let i=index;\\\">\\n                            <td [@changeTextSize]=currentState\\n                              style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n                              {{i+1}}\\n                            </td>\\n                            <td [@changeTextSize]=currentState style=\\\"padding-left: 2px;float: left;\\\">\\n                              {{data.Subject}}\\n                            </td>\\n\\n                            <td style=\\\"height:20px;width:20px;\\\">\\n                              <span *ngIf=\\\"data.StatusID===1\\\"></span>\\n                              <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\"\\n                                style=\\\"background-color: red;font-size: 7px;\\\"></span>\\n                              <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\"\\n                                style=\\\"background-color: yellow;font-size: 7px;\\\"></span>\\n                              <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\"\\n                                style=\\\"background-color: green;font-size: 7px;\\\"></span>\\n                              <span *ngIf=\\\"data.StatusID===5 \\\" class=\\\"circleM\\\"\\n                                style=\\\"background-color: black;font-size: 7px;\\\"></span>\\n                            </td>\\n                          </tr>\\n                        </tbody>\\n                      </table>\\n\\n\\n                    </div>\\n\\n                  </div>\\n                </span>\\n\\n              </div>\\n\\n              <div class=\\\"row multidata\\\"\\n                *ngFor=\\\"let Activity of ActiveActivities[process['Process'].ProcessID]; let i=index\\\"\\n                style=\\\"margin-top: 5px;   width:100px; margin-left: 1px;\\\">\\n\\n                <div class=\\\"squareInActvtych multidata\\\" style=\\\"width: 100px;\\\" id=\\\"activity\\\"\\n                  *ngIf=\\\"Activity.ActivityTypeID==1\\\"\\n                  (click)=\\\"ChooseMatricOrIssue(process['Process'].ProcessID, Activity.ActivityID,MenuPermissions[menuName][menuID]['C'],IsVersion,MenuPermissions[menuName][menuID]['R'],MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D'])\\\"\\n                  [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C'])\\\"\\n                  [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C'])}\\\">\\n\\n\\n                  <div class=\\\"dots\\\" [@changeTextSize]=currentState title=\\\"{{Activity.ActivityName}}\\\"\\n                    style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\">\\n                    {{Activity.squence}} {{Activity.ActivityName}} </div>\\n                  <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n                    <div [@changeActBoxSize]=currentState\\n                      *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] && (MapType==='0' || MapType==='3')\\\"\\n                      style=\\\"float: right; margin-top: -2px;\\n                      margin-left: 1px;\\\" class=\\\"circlelgch frustrationbg\\\"\\n                      (click)=\\\"getCase(process['Process'], Activity, 1,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n                      {{IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID]}}\\n                    </div>\\n\\n                  </div>\\n                  <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n                    <div [@changeActBoxSize]=currentState\\n                      *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID] &&(MapType==='1' ||MapType==='3')\\\"\\n                      style=\\\"float: right; margin-top:-2px;margin-left:1px; \\\" class=\\\"circlelgch metricsbg\\\"\\n                      (click)=\\\"getCase(process['Process'], Activity,2,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n                      {{IssuesLists[process['Process'].ProcessID]['Metric'][Activity.ActivityID]}}\\n                    </div>\\n                    <div *ngIf=\\\"(MapType==='0' || MapType==='1'|| MapType==='2'|| MapType==='3')\\\"\\n                      style=\\\"margin-left:26px;\\\"></div>\\n                  </div>\\n                  <div ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\" *ngIf=\\\"showMetricAlert[Activity.ActivityID]\\\">\\n                    <div class=\\\"circleI\\\" style=\\\"color: #4aabe7; float: right;\\\"\\n                      title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\n                      *ngIf=\\\"(MapType==='1' || MapType==='3')\\\">\\n                      <img src=\\\"./assets/images/star-blue.png\\\" [@changeAlertBoxSize]=currentState alt=\\\"bluestar\\\"\\n                        width=\\\"20px;\\\" style=\\\"margin-left: -33px;\\n                    margin-top: -2px;\\\" />\\n                    </div>\\n                  </div>\\n                  <div class=\\\"circleI\\\" style=\\\"color:#d55632;float: right; \\\"\\n                    title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\n                    *ngIf=\\\"alertPTypeID===1 && IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\n                    <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\" [@changeAlertBoxSize]=currentState\\n                      width=\\\"20px;\\\" style=\\\"margin-left: -5px;\\n                margin-top: -2px;\\\">\\n                  </div>\\n\\n                  <span\\n                    *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID] >=1 && (MapType==='0' || MapType==='3') ;else templateName\\\">\\n\\n                  </span>\\n\\n                </div>\\n\\n                <div class=\\\"squareExActvtych multidata\\\" style=\\\"width: 100px;\\\" id=\\\"activity\\\"\\n                  *ngIf=\\\"Activity.ActivityTypeID!==1\\\"\\n                  (click)=\\\"ChooseMatricOrIssue(process['Process'].ProcessID, Activity.ActivityID,MenuPermissions[menuName][menuID]['C'],IsVersion,MenuPermissions[menuName][menuID]['R'],MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D'])\\\"\\n                  [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C'])\\\"\\n                  [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C'])}\\\">\\n\\n\\n                  <div class=\\\"dots\\\" [@changeTextSize]=currentState title=\\\"{{Activity.ActivityName}}\\\"\\n                    style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\">\\n                    {{Activity.squence}} {{Activity.ActivityName}} </div>\\n                  <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n                    <div [@changeActBoxSize]=currentState\\n                      *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] && (MapType==='0' || MapType==='3')\\\"\\n                      style=\\\"float: right; margin-top: -2px;\\n                    margin-left: 1px;\\\" class=\\\"circlelgch frustrationbg\\\"\\n                      (click)=\\\"getCase(process['Process'], Activity, 1,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n                      {{IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID]}}\\n                    </div>\\n\\n                  </div>\\n                  <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n                    <div [@changeActBoxSize]=currentState\\n                      *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID] &&(MapType==='1' ||MapType==='3')\\\"\\n                      style=\\\"float: right; margin-top:-2px;margin-left:1px; \\\" class=\\\"circlelgch metricsbg\\\"\\n                      (click)=\\\"getCase(process['Process'], Activity,2,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n                      {{IssuesLists[process['Process'].ProcessID]['Metric'][Activity.ActivityID]}}\\n                    </div>\\n                    <div *ngIf=\\\"(MapType==='0' || MapType==='1'|| MapType==='2'|| MapType==='3')\\\"\\n                      style=\\\"margin-left:26px;\\\"></div>\\n                  </div>\\n                  <div ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\" *ngIf=\\\"showMetricAlert[Activity.ActivityID]\\\">\\n                    <div class=\\\"circleI\\\" style=\\\"color: #4aabe7; float: right;\\\"\\n                      title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\n                      *ngIf=\\\"(MapType==='1' || MapType==='3')\\\">\\n                      <img src=\\\"./assets/images/star-blue.png\\\" [@changeAlertBoxSize]=currentState alt=\\\"bluestar\\\"\\n                        width=\\\"20px;\\\" style=\\\"margin-left: -33px;\\n                  margin-top: -2px;\\\" />\\n                    </div>\\n                  </div>\\n                  <div class=\\\"circleI\\\" style=\\\"color:#d55632;float: right; \\\"\\n                    title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\n                    *ngIf=\\\"alertPTypeID===1 && IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\n                    <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\" [@changeAlertBoxSize]=currentState\\n                      width=\\\"20px;\\\" style=\\\"margin-left: -5px;\\n              margin-top: -2px;\\\">\\n                  </div>\\n\\n                  <span\\n                    *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID] >=1 && (MapType==='0' || MapType==='3') ;else templateName\\\">\\n\\n                  </span>\\n\\n\\n\\n                </div>\\n\\n                <div *ngIf=\\\"expandMap\\\" style=\\\"padding-top:5px;\\\">\\n                  <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && (MapType==='1' ||MapType==='3')\\\">\\n\\n                    <div [@changeMFDivSize]=currentState style=\\\"width: 100px;margin-top: 0px;\\\"\\n                      *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID]\\\"\\n                      class=\\\"squareM\\\">\\n                      <div>\\n\\n                        <table>\\n                          <tbody>\\n                            <tr>\\n                              <td style=\\\"word-break:normal;\\\"><strong [@changeTextSize]=currentState>No.</strong></td>\\n                              <td style=\\\"float: left;\\\">\\n                                <strong [@changeTextSize]=currentState> Metrics </strong>\\n                              </td>\\n                            </tr>\\n\\n                            <tr\\n                              *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID];let i=index;\\\">\\n                              <td [@changeTextSize]=currentState\\n                                style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n                                {{i+1}}\\n                              </td>\\n                              <td [@changeTextSize]=currentState style=\\\"padding-left: 2px;float: left;\\\">\\n                                {{data.Description}}\\n                              </td>\\n\\n                            </tr>\\n                          </tbody>\\n                        </table>\\n\\n\\n                      </div>\\n\\n                    </div>\\n                  </span>\\n\\n                </div>\\n\\n                <div *ngIf=\\\"expandMap\\\" style=\\\"padding-top:5px;\\\">\\n                  <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && (MapType==='0' ||MapType==='3')\\\">\\n\\n                    <div [@changeMFDivSize]=currentState style=\\\"width: 100px;margin-top: 0px;\\\"\\n                      *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['IssueList'][Activity.ActivityID]\\\"\\n                      class=\\\"squareIssues\\\">\\n                      <div>\\n                        <table>\\n\\n                          <tbody>\\n                            <tr>\\n                              <td style=\\\"word-break:normal;\\\"><strong [@changeTextSize]=currentState>No.</strong></td>\\n                              <td style=\\\"float: left;\\\">\\n                                <strong [@changeTextSize]=currentState> Frustrations </strong>\\n                              </td>\\n                            </tr>\\n\\n                          </tbody>\\n\\n                          <tr\\n                            *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['IssueList'][Activity.ActivityID];let i=index;\\\">\\n                            <td [@changeTextSize]=currentState\\n                              style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n                              {{i+1}}\\n                            </td>\\n                            <td [@changeTextSize]=currentState style=\\\"padding-left: 2px;float: left;\\\">\\n                              {{data.Subject}}\\n\\n                            </td>\\n                            <td style=\\\"height:20px;width:20px;\\\">\\n                              <span *ngIf=\\\"data.StatusID===1\\\"></span>\\n                              <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\"\\n                                style=\\\"background-color: red;font-size: 7px;\\\"></span>\\n                              <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\"\\n                                style=\\\"background-color: yellow;font-size: 7px;\\\"></span>\\n                              <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\"\\n                                style=\\\"background-color: green;font-size: 7px;\\\"></span>\\n                              <span *ngIf=\\\"data.StatusID===5\\\" class=\\\"circleM\\\"\\n                                style=\\\"background-color: black;font-size: 7px;\\\"></span>\\n                            </td>\\n                          </tr>\\n\\n                        </table>\\n\\n\\n                      </div>\\n\\n                    </div>\\n                  </span>\\n\\n                </div>\\n\\n              </div>\\n            </div>\\n            <div></div>\\n          </div>\\n        </div>\\n\\n\\n\\n        <div class=\\\"footer\\\">\\n          <label>{{copyRight}}</label>\\n        </div>\\n      </div>\\n\\n      <div class=\\\"row\\\" id=\\\"print-section\\\" style=\\\"display: none;zoom: 90%;\\\">\\n        <div class=\\\"row\\\" style=\\\"text-align: center;word-break: break-word;\\\">\\n          <div class=\\\"col-sm-6\\\">\\n            <strong> {{CompanyName }} - </strong> ProcessMap <br>\\n            <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\n            <span>MapType: {{typeName}}</span> <br>\\n          </div>\\n          <div class=\\\"col-sm-6\\\">\\n            <span>Team: {{TeamName}}</span><br>\\n            <span>Version: {{currentVersion[\\\"VersionName\\\"]}}</span>\\n          </div>\\n\\n        </div>\\n\\n        <div style=\\\"width: 100%;\\\">\\n          <ul style=\\\"display: flex;list-style: none;margin: 0;padding: 0;\\\">\\n            <li style=\\\"width:80% !important\\\">\\n              <div class=\\\"card\\\">\\n                <div class=\\\"card-body\\\">\\n                  <ul style=\\\"display: flex;list-style: none;margin: 0;padding: 0;\\\">\\n                    <li style=\\\"margin-right: 65px;\\\">\\n                      <div>\\n                        <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"15\\\" height=\\\"15\\\"\\n                          viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n                          <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n                            stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n                            font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n                            style=\\\"mix-blend-mode: normal\\\">\\n                            <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n                            <g fill=\\\"#3775b5\\\">\\n                              <path d=\\\"M0,13.23077v145.53846h172v-145.53846z\\\"></path>\\n                            </g>\\n                          </g>\\n                        </svg>\\n                        <span class=\\\"labelFont\\\">&nbsp;Key Process\\n                          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>\\n                      </div>\\n                    </li>\\n\\n                    <li>\\n                      <div>\\n                        <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\"\\n                          viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n                          <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n                            stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n                            font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n                            style=\\\"mix-blend-mode: normal\\\">\\n                            <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n                            <g fill=\\\"#4aabe7\\\">\\n                              <path\\n                                d=\\\"M86,17.2c-37.9948,0 -68.8,30.8052 -68.8,68.8c0,37.9948 30.8052,68.8 68.8,68.8c37.9948,0 68.8,-30.8052 68.8,-68.8c0,-37.9948 -30.8052,-68.8 -68.8,-68.8z\\\">\\n                              </path>\\n                            </g>\\n                          </g>\\n                        </svg>\\n                        <span class=\\\"labelFont\\\">&nbsp;Metric</span>\\n                      </div>\\n                    </li>\\n                  </ul>\\n                  <ul style=\\\"display: flex;list-style: none;margin: 0;padding: 0;\\\">\\n                    <li style=\\\"margin-right: 30px;\\\">\\n                      <div><svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"15\\\" height=\\\"15\\\"\\n                          viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n                          <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n                            stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n                            font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n                            style=\\\"mix-blend-mode: normal\\\">\\n                            <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n                            <g fill=\\\"#a3cda2\\\">\\n                              <path d=\\\"M0,13.23077v145.53846h172v-145.53846z\\\"></path>\\n                            </g>\\n                          </g>\\n                        </svg>\\n                        <span class=\\\"labelFont\\\">&nbsp;Activity - External to Process</span>\\n                      </div>\\n                    <li>\\n                      <div>\\n                        <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\"\\n                          viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n                          <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n                            stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n                            font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n                            style=\\\"mix-blend-mode: normal\\\">\\n                            <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n                            <g fill=\\\"#d55632\\\">\\n                              <path\\n                                d=\\\"M86,17.2c-37.9948,0 -68.8,30.8052 -68.8,68.8c0,37.9948 30.8052,68.8 68.8,68.8c37.9948,0 68.8,-30.8052 68.8,-68.8c0,-37.9948 -30.8052,-68.8 -68.8,-68.8z\\\">\\n                              </path>\\n                            </g>\\n                          </g>\\n                        </svg>\\n                        <span class=\\\"labelFont\\\"> &nbsp;Frustration / Issue</span>\\n                      </div>\\n                    </li>\\n                  </ul>\\n                  <ul style=\\\"display: flex;list-style: none;margin: 0;padding: 0;\\\">\\n                    <li style=\\\"margin-right: 30px;\\\">\\n                      <div>\\n                        <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"15\\\" height=\\\"15\\\"\\n                          viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n                          <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n                            stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n                            font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n                            style=\\\"mix-blend-mode: normal\\\">\\n                            <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n                            <g fill=\\\"#e2e3e4\\\">\\n                              <path d=\\\"M0,13.23077v145.53846h172v-145.53846z\\\"></path>\\n                            </g>\\n                          </g>\\n                        </svg>\\n                        <span class=\\\"labelFont\\\">&nbsp;Activity - Internal to Process</span>\\n                      </div>\\n                    </li>\\n                    <li>\\n                      <div>\\n                        <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\"\\n                          viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n                          <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n                            stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n                            font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n                            style=\\\"mix-blend-mode: normal\\\">\\n                            <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n                            <g fill=\\\"#d9c25a\\\">\\n                              <path\\n                                d=\\\"M86,17.2c-37.9948,0 -68.8,30.8052 -68.8,68.8c0,37.9948 30.8052,68.8 68.8,68.8c37.9948,0 68.8,-30.8052 68.8,-68.8c0,-37.9948 -30.8052,-68.8 -68.8,-68.8z\\\">\\n                              </path>\\n                            </g>\\n                          </g>\\n                        </svg>\\n                        <span class=\\\"labelFont\\\">&nbsp;Sub-Activity Exists</span>\\n                      </div>\\n                    </li>\\n                  </ul>\\n                </div>\\n              </div>\\n            </li>&nbsp;&nbsp;&nbsp;&nbsp;\\n            <li style=\\\"width:80% !important\\\">\\n              <div class=\\\"card\\\">\\n                <div class=\\\"card-body\\\">\\n                  <ul style=\\\"display: flex;list-style: none;margin: 0;padding: 0;\\\">\\n                    <li style=\\\"margin-right: 20px;\\\">\\n                      <div>\\n                        <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\"\\n                          viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n                          <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n                            stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n                            font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n                            style=\\\"mix-blend-mode: normal\\\">\\n                            <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n                            <g fill=\\\"#00aced\\\">\\n                              <path\\n                                d=\\\"M86,128.1185l48.9555,29.54817l-12.99317,-55.685l43.25083,-37.46733l-56.9535,-4.83033l-22.25967,-52.51733l-22.25967,52.51733l-56.9535,4.83033l43.25083,37.46733l-12.99317,55.685z\\\">\\n                              </path>\\n                            </g>\\n                          </g>\\n                        </svg>\\n                        <span class=\\\"labelFont\\\">&nbsp;&nbsp;&nbsp;Alert - Multiple Activities with No Metrics</span>\\n\\n                      </div>\\n                    </li>\\n                    <li style=\\\"margin-bottom: 9px;\\\">\\n                      <div>\\n                        <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\"\\n                          viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n                          <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n                            stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n                            font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n                            style=\\\"mix-blend-mode: normal\\\">\\n                            <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n                            <g fill=\\\"#e64b20\\\">\\n                              <path\\n                                d=\\\"M86,128.1185l48.9555,29.54817l-12.99317,-55.685l43.25083,-37.46733l-56.9535,-4.83033l-22.25967,-52.51733l-22.25967,52.51733l-56.9535,4.83033l43.25083,37.46733l-12.99317,55.685z\\\">\\n                              </path>\\n                            </g>\\n                          </g>\\n                        </svg>\\n                        <span class=\\\"labelFont\\\">&nbsp;&nbsp;&nbsp; Alert - Multiple Frustrations Clustered</span>\\n                      </div>\\n                    </li>\\n                  </ul>\\n                  <ul style=\\\"display: flex;list-style: none;margin: 0;padding: 0;\\\">\\n                    <li style=\\\"margin-right: 35px;\\\">\\n                      <div>\\n                        <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\"\\n                          viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n                          <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n                            stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n                            font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n                            style=\\\"mix-blend-mode: normal\\\">\\n                            <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n                            <g>\\n                              <path\\n                                d=\\\"M13.7987,152.65c-2.6531,0 -5.0267,-1.3717 -6.3511,-3.6679c-1.3287,-2.2962 -1.3287,-5.0396 0,-7.3358l72.2013,-125.0569c1.3244,-2.2962 3.698,-3.6679 6.3511,-3.6679c2.6531,0 5.0267,1.3717 6.3511,3.6679l72.2013,125.0569c1.3287,2.2962 1.3287,5.0353 0,7.3358c-1.3244,2.2962 -3.698,3.6679 -6.3511,3.6679z\\\"\\n                                fill=\\\"#00aced\\\"></path>\\n                              <path\\n                                d=\\\"M86,15.0758c0.8987,0 3.139,0.2537 4.4892,2.5929l72.2013,125.0569c1.3502,2.3392 0.4515,4.4075 0,5.1858c-0.4515,0.774 -1.7888,2.5886 -4.4892,2.5886h-144.4026c-2.7004,0 -4.042,-1.8146 -4.4892,-2.5929c-0.4515,-0.7783 -1.3502,-2.8466 0,-5.1858l72.2013,-125.0526c1.3502,-2.3435 3.5905,-2.5929 4.4892,-2.5929M86,10.7758c-3.1949,0 -6.3898,1.5824 -8.213,4.7429l-72.2013,125.0526c-3.6507,6.3253 0.9116,14.2287 8.213,14.2287h144.4026c7.3014,0 11.8637,-7.9034 8.213,-14.2287l-72.2013,-125.0526c-1.8232,-3.1648 -5.0181,-4.7429 -8.213,-4.7429z\\\"\\n                                fill=\\\"#00aced\\\"></path>\\n                              <path\\n                                d=\\\"M86,118.3274c-4.0277,0 -7.2928,3.2651 -7.2928,7.2928c0,4.0277 3.2651,7.2928 7.2928,7.2928c4.0277,0 7.2928,-3.2651 7.2928,-7.2928c0,-4.0277 -3.2651,-7.2928 -7.2928,-7.2928zM80.1649,55.5947h11.6702v52.5202h-11.6702z\\\"\\n                                fill=\\\"#ffffff\\\"></path>\\n                            </g>\\n                          </g>\\n                        </svg>\\n                        <span class=\\\"labelFont\\\">&nbsp;&nbsp;&nbsp; Alert - Key Process: No Metrics &nbsp;&nbsp;&nbsp;\\n                          &nbsp;&nbsp;&nbsp;</span>\\n                      </div>\\n                    </li>\\n                    <li style=\\\"margin-bottom: 9px;\\\">\\n                      <div>\\n                        <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\"\\n                          viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n                          <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n                            stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n                            font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n                            style=\\\"mix-blend-mode: normal\\\">\\n                            <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n                            <g>\\n                              <path\\n                                d=\\\"M13.7987,152.65c-2.6531,0 -5.0267,-1.3717 -6.3511,-3.6679c-1.3287,-2.2962 -1.3287,-5.0396 0,-7.3358l72.2013,-125.0569c1.3244,-2.2962 3.698,-3.6679 6.3511,-3.6679c2.6531,0 5.0267,1.3717 6.3511,3.6679l72.2013,125.0569c1.3287,2.2962 1.3287,5.0353 0,7.3358c-1.3244,2.2962 -3.698,3.6679 -6.3511,3.6679z\\\"\\n                                fill=\\\"#e64b20\\\"></path>\\n                              <path\\n                                d=\\\"M86,15.0758c0.8987,0 3.139,0.2537 4.4892,2.5929l72.2013,125.0569c1.3502,2.3392 0.4515,4.4075 0,5.1858c-0.4515,0.774 -1.7888,2.5886 -4.4892,2.5886h-144.4026c-2.7004,0 -4.042,-1.8146 -4.4892,-2.5929c-0.4515,-0.7783 -1.3502,-2.8466 0,-5.1858l72.2013,-125.0526c1.3502,-2.3435 3.5905,-2.5929 4.4892,-2.5929M86,10.7758c-3.1949,0 -6.3898,1.5824 -8.213,4.7429l-72.2013,125.0526c-3.6507,6.3253 0.9116,14.2287 8.213,14.2287h144.4026c7.3014,0 11.8637,-7.9034 8.213,-14.2287l-72.2013,-125.0526c-1.8232,-3.1648 -5.0181,-4.7429 -8.213,-4.7429z\\\"\\n                                fill=\\\"#e64b20\\\"></path>\\n                              <path\\n                                d=\\\"M86,118.3274c-4.0277,0 -7.2928,3.2651 -7.2928,7.2928c0,4.0277 3.2651,7.2928 7.2928,7.2928c4.0277,0 7.2928,-3.2651 7.2928,-7.2928c0,-4.0277 -3.2651,-7.2928 -7.2928,-7.2928zM80.1649,55.5947h11.6702v52.5202h-11.6702z\\\"\\n                                fill=\\\"#ffffff\\\"></path>\\n                            </g>\\n                          </g>\\n                        </svg>\\n                        <span class=\\\"labelFont\\\">&nbsp;&nbsp;&nbsp; Alert - Key Process: No Frustrations</span>\\n\\n                      </div>\\n                    </li>\\n                  </ul>\\n\\n\\n\\n\\n\\n\\n\\n\\n                </div>\\n              </div>\\n            </li>\\n          </ul>\\n\\n        </div>\\n\\n\\n        <!-- <div class=\\\"col-sm-12 form-inline\\\" style=\\\"margin: 0.5% 0%;padding: 0;\\\" >\\n          <div class=\\\"col-sm-4 cardCustom  form-inline\\\">\\n            <div class=\\\"col-sm-6\\\">\\n              <div class=\\\"form-group form-inline\\\" style=\\\"padding: 5px;\\\">\\n                <span class=\\\"squre\\\" style=\\\"background-color: #3775b5; box-shadow: 0px 3px 3px 0px #265382;\\\">&nbsp;</span>\\n                <label class=\\\"labelFont\\\" >&nbsp;Key Process</label>\\n              </div>\\n              <div class=\\\"form-group form-inline\\\" style=\\\"padding: 5px;\\\">\\n                <span class=\\\"squre\\\" style=\\\"background-color: #a3cda2;\\\">&nbsp;</span>\\n                <label class=\\\"labelFont\\\" >&nbsp;Activity - External to Process</label>\\n              </div>\\n              <div class=\\\"form-group form-inline\\\" style=\\\"padding: 5px;\\\">\\n                <span class=\\\"squre\\\" style=\\\"background-color: #e2e3e4;\\\">&nbsp;</span>\\n                <label class=\\\"labelFont\\\" > &nbsp;Activity - Internal to Process</label>\\n              </div>\\n            </div>\\n            <div class=\\\"col-sm-6\\\">\\n              <div class=\\\"form-group form-inline\\\" style=\\\"padding: 5px;\\\">\\n                <span class=\\\"circle metricsbg\\\">&nbsp;</span>\\n                <label class=\\\"labelFont\\\" >&nbsp;Metric</label>\\n              </div>\\n              <div class=\\\"form-group form-inline\\\" style=\\\"padding: 5px;\\\">\\n                <span class=\\\"circle frustrationbg\\\" >&nbsp;</span>\\n                <label class=\\\"labelFont\\\" > &nbsp;Frustration / Issue</label>\\n              </div>\\n\\n              <div class=\\\"form-group form-inline\\\" style=\\\"padding: 5px;\\\">\\n                <span class=\\\"circle\\\" style=\\\"background-color: #d9c25a;\\\">&nbsp;</span>\\n                <label class=\\\"labelFont\\\" >&nbsp;Sub-Activity Exists</label>\\n              </div>\\n            </div>\\n          </div>\\n          <div class=\\\"col-sm-2\\\" style=\\\"text-align: center;\\\">\\n\\n          </div>\\n          <div class=\\\"col-sm-5 cardCustom form-inline offset-1\\\" style=\\\"height: 60px;\\\">\\n            <div class=\\\"col-sm-6\\\">\\n              <div class=\\\"form-group form-inline\\\" >\\n                <span class=\\\"circleI\\\" style=\\\"color: #4aabe7;\\\">\\n                  <img src=\\\"./assets/images/star-blue.png\\\" alt=\\\"bluestar\\\" width=\\\"13px;\\\"/>\\n                </span>\\n                <label class=\\\"labelFont\\\" >&nbsp;&nbsp;&nbsp;Alert - Multiple Activities with No Metrics</label>\\n              </div>\\n              <div class=\\\"form-group form-inline\\\" >\\n                <span class=\\\"circleI\\\" style=\\\"color: #4aabe7;\\\">\\n                  <img src=\\\"./assets/images/triangle-blue.png\\\" alt=\\\"bluetriangle\\\" width=\\\"11px;\\\"/>\\n                </span>\\n                <label class=\\\"labelFont\\\" >&nbsp;&nbsp;&nbsp; Alert - Key Process: No Metrics</label>\\n              </div>\\n            </div>\\n            <div class=\\\"col-sm-6\\\">\\n              <div class=\\\"form-group form-inline\\\" >\\n                <span class=\\\"circleI\\\" style=\\\"color: #d55632;\\\">\\n                  <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\" width=\\\"13px;\\\"/>\\n                </span>\\n                <label class=\\\"labelFont\\\" >&nbsp;&nbsp;&nbsp; Alert - Multiple Frustrations Clustered</label>\\n              </div>\\n              <div class=\\\"form-group form-inline\\\" >\\n                <span class=\\\"circleI\\\" style=\\\"color: #d55632;\\\">\\n                  <img src=\\\"./assets/images/triangle-red.png\\\" alt=\\\"redtriangle\\\" width=\\\"11px;\\\"/>\\n                </span>\\n                <label class=\\\"labelFont\\\" >&nbsp;&nbsp;&nbsp; Alert -  Key Process: No Frustrations</label>\\n              </div>\\n            </div>\\n          </div>\\n\\n      </div> -->\\n        <style>\\n          @media print {\\n            .testq {\\n              page-break-inside: avoid !important;\\n            }\\n\\n            .multidata {\\n              display: block !important;\\n              page-break-inside: avoid !important;\\n            }\\n\\n            .testq {\\n              page-break-after: always !important;\\n            }\\n\\n            .testq:last-child {\\n              page-break-after: avoid !important;\\n            }\\n\\n            .donotprintthis {\\n              display: none;\\n\\n            }\\n          }\\n        </style>\\n\\n\\n\\n        <div class=\\\"\\\">\\n          <div class=\\\"row  \\\">\\n            <div class=\\\"multidata\\\" *ngFor=\\\"let process of ProcessFinalList\\\"\\n              style=\\\"margin-bottom:2%;padding-right: 0%;margin-left:2%\\\">\\n              <div class=\\\"testq multidata\\\" style=\\\"margin:5% 0% !important;\\\">\\n                <div class=\\\"col-sm-12 square multidata \\\" style=\\\"padding:2px 3px 31px 1px;width: 300px;height: 100px;\\\"\\n                  [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C'])\\\"\\n                  [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C'])}\\\">\\n                  <span *ngIf=\\\"process['Process'].TeamID===0\\\" class=\\\"circle\\\"\\n                    style=\\\"margin-bottom: 20px !important;background-color: #d9c25a;border: 1px solid white;float: left;\\\"\\n                    title=\\\"No team associated with this process\\\">&nbsp;</span>\\n                  <span class=\\\" \\\" style=\\\"margin-bottom: 20px !important;float: left; color:#4aabe7;\\\"\\n                    title=\\\"No metric associated with this process\\\"\\n                    *ngIf=\\\"!IssuesLists[process['Process'].ProcessID].MetricCount && !IssuesLists[process['Process'].ProcessID].pMetricCount && !IssuesLists[process['Process'].ProcessID].SubMetricCount && (MapType==='1' ||MapType==='3')\\\">&nbsp;\\n                    <img src=\\\"./assets/images/triangle-blue.png\\\" alt=\\\"bluetriangle\\\"\\n                      style=\\\"width: 13px;margin-bottom: 20px !important;\\\" /></span>\\n                  <span class=\\\" \\\" style=\\\"float: left; color: #d55632;\\\"\\n                    title=\\\"No frustrations assosiated with this process\\\"\\n                    *ngIf=\\\"!IssuesLists[process['Process'].ProcessID].IssueCount && !IssuesLists[process['Process'].ProcessID].pIssueCount && !IssuesLists[process['Process'].ProcessID].SubIssueCount && (MapType==='0' ||MapType==='3')\\\">&nbsp;\\n                    <img src=\\\"./assets/images/triangle-red.png\\\" alt=\\\"redtriangle\\\"\\n                      style=\\\"width: 13px;margin-bottom: 20px !important;\\\" /></span>\\n\\n                  <span style=\\\"float: left;margin-left:3px;\\\" class=\\\"circleS\\\" title=\\\"Sub activity exits\\\"\\n                    *ngIf=\\\" IssuesLists[process['Process'].ProcessID] && IssuesLists[process['Process'].ProcessID].SubActivity!=0  && IssuesLists[process['Process'].ProcessID].SubActivity!=undefined\\\">\\n                    &nbsp;</span>\\n                  <hr style=\\\"background-color: #265382;margin-top: 17px;\\\">\\n                  <div class=\\\"row multidata\\\">\\n                    <div class=\\\"col-sm-12 multidata \\\">\\n                      <div class=\\\"col-sm-10 offset-1 multidata\\\" style=\\\"height: 18px; margin-top: 8px;\\\">\\n                        <span class=\\\"dots squareLabel multidata\\\"\\n                          style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\n                          title=\\\"{{process['Process'].ProcessName}}\\\">&nbsp;\\n                          {{process['Process'].ProcessName}}&nbsp;\\n                        </span>\\n                      </div>\\n                    </div>\\n                  </div>\\n                  <div>\\n                    <span\\n                      *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && IssuesLists[process['Process'].ProcessID]['pMetricCount'] && (MapType==='1' ||MapType==='3')\\\"\\n                      class=\\\"squareKPI2\\\" style=\\\" float:right; margin-left:3px;\\\"\\n                      (click)=\\\"getCase(process['Process'], 0,2,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n                      {{IssuesLists[process['Process'].ProcessID]['pMetricCount']}}\\n                    </span>\\n                    <span\\n                      *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && IssuesLists[process['Process'].ProcessID]['pIssueCount'] && (MapType==='0' || MapType==='3')\\\"\\n                      (click)=\\\"getCase(process['Process'], 0, 1,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\"\\n                      class=\\\"squareIssue1\\\" style=\\\"float:right;\\\">\\n                      {{IssuesLists[process['Process'].ProcessID]['pIssueCount']}}\\n                    </span>\\n                  </div>\\n\\n\\n\\n                </div>\\n                <div *ngIf=\\\"expandMap \\\">\\n                  <span\\n                    *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricProcess'] && (MapType==='1' ||MapType==='3')\\\">\\n                    <div\\n                      *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricProcess'][process['Process'].ProcessID]\\\"\\n                      class=\\\"squareM\\\" style=\\\"width: 300px;\\\">\\n                      <div>\\n                        <table>\\n                          <tbody>\\n                            <tr>\\n                              <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\n                              <td style=\\\"float: left;\\\">\\n                                <strong> Metrics </strong>\\n                              </td>\\n                            </tr>\\n\\n                            <tr\\n                              *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['MetricProcess'][process['Process'].ProcessID];let i=index;\\\">\\n                              <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n                                {{i+1}}\\n                              </td>\\n                              <td style=\\\"padding-left: 2px;float: left;\\\">\\n                                {{data.Description}}\\n                              </td>\\n\\n                            </tr>\\n                          </tbody>\\n                        </table>\\n\\n\\n                      </div>\\n\\n                    </div>\\n                  </span>\\n\\n                </div>\\n\\n\\n\\n                <div *ngIf=\\\"expandMap \\\">\\n                  <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && (MapType==='0' ||MapType==='3') \\\">\\n                    <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['IssueProcess'][process['Process'].ProcessID]\\\"\\n                      class=\\\"squareIssues\\\" style=\\\"width: 300px;\\\">\\n                      <div>\\n                        <table>\\n                          <tbody>\\n                            <tr>\\n                              <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\n                              <td style=\\\"float: left;\\\">\\n                                <strong> Frustrations </strong>\\n                              </td>\\n                            </tr>\\n\\n                            <tr\\n                              *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['IssueProcess'][process['Process'].ProcessID];let i=index;\\\">\\n                              <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n                                {{i+1}}\\n                              </td>\\n                              <td style=\\\"padding-left: 2px;float: left;\\\">\\n                                {{data.Subject}}\\n                              </td>\\n\\n                              <td style=\\\"height:20px;width:20px;\\\">\\n                                <span *ngIf=\\\"data.StatusID===1\\\"></span>\\n                                <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\" style=\\\"background-color: red;\\\"></span>\\n                                <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\"\\n                                  style=\\\"background-color: yellow;\\\"></span>\\n                                <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\"\\n                                  style=\\\"background-color: green;\\\"></span>\\n                                <span *ngIf=\\\"data.StatusID===5 \\\" class=\\\"circleM\\\"\\n                                  style=\\\"background-color: black;\\\"></span>\\n                              </td>\\n                            </tr>\\n                          </tbody>\\n                        </table>\\n\\n\\n                      </div>\\n\\n                    </div>\\n                  </span>\\n\\n                </div>\\n\\n                <!---------------activity -pprint wrk-->\\n                <div class=\\\"multidata\\\"\\n                  *ngFor=\\\"let Activity of ActiveActivities[process['Process'].ProcessID]; let i=index\\\"\\n                  style=\\\"margin-top: 15px;  \\\">\\n\\n                  <div class=\\\"squareInActvty multidata \\\" id=\\\"activity\\\" *ngIf=\\\"Activity.ActivityTypeID==1\\\"\\n                    (click)=\\\"ChooseMatricOrIssue(process['Process'].ProcessID, Activity.ActivityID,MenuPermissions[menuName][menuID]['C'],IsVersion,MenuPermissions[menuName][menuID]['R'],MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D'])\\\"\\n                    [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C'])\\\"\\n                    [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C'])}\\\">\\n                    <div class=\\\"actAlign\\\">\\n                      <span class=\\\"dots\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\n                        title=\\\"{{Activity.ActivityName}}\\\">\\n                        <b> {{Activity.squence}}. {{Activity.ActivityName}} </b>\\n                      </span>\\n\\n\\n                      <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n                        <span\\n                          *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID] &&(MapType==='1' ||MapType==='3')\\\"\\n                          style=\\\"float: right;\\\" class=\\\"circlelg metricsbg\\\"\\n                          (click)=\\\"getCase(process['Process'], Activity,2,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n                          {{IssuesLists[process['Process'].ProcessID]['Metric'][Activity.ActivityID]}}\\n                        </span>\\n                        <!-- <div *ngIf=\\\"(MapType==='0' || MapType==='1'|| MapType==='2'|| MapType==='3')\\\"\\n                style=\\\"margin-left:26px;\\\"></div> -->\\n                      </span>\\n                      <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n                        <span\\n                          *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] && (MapType==='0' || MapType==='3')\\\"\\n                          style=\\\"float: right;\\\" class=\\\"circlelg frustrationbg\\\"\\n                          (click)=\\\"getCase(process['Process'], Activity, 1,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n                          {{IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID]}}\\n                        </span>\\n\\n                      </span>\\n                      <span ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\"\\n                        *ngIf=\\\"showMetricAlert[Activity.ActivityID]\\\">\\n                        <span class=\\\"circleI\\\" style=\\\"color: #4aabe7; float: right;\\\"\\n                          title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\n                          *ngIf=\\\"(MapType==='1' || MapType==='3')\\\">\\n                          <img src=\\\"./assets/images/star-blue.png\\\" alt=\\\"bluestar\\\" width=\\\"20px;\\\"\\n                            style=\\\"margin-left:-4px;\\\" />\\n                        </span>\\n                      </span>\\n\\n                      <span class=\\\"circleI\\\" style=\\\"color:#d55632;float: right; \\\"\\n                        title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\n                        *ngIf=\\\"alertPTypeID===1 && IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\n                        <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\" style=\\\"margin-left:-11px;width:20px;\\\">\\n                      </span>\\n                      <span\\n                        *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID] >=1 && (MapType==='0' || MapType==='3') ;else templateName\\\">\\n                      </span>\\n                    </div>\\n                  </div>\\n                  <div class=\\\"squareExActvty multidata\\\" *ngIf=\\\"Activity.ActivityTypeID!=1\\\"\\n                    (click)=\\\"ChooseMatricOrIssue(process['Process'].ProcessID, Activity.ActivityID,MenuPermissions[menuName][menuID]['C'],IsVersion,MenuPermissions[menuName][menuID]['R'] , MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D'])\\\"\\n                    [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C'])\\\"\\n                    [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C'])}\\\">\\n                    <div class=\\\"actAlign\\\">\\n                      <span class=\\\"dots\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\n                        title=\\\"{{Activity.ActivityName}}\\\">\\n                        <b>{{Activity.squence}}. {{Activity.ActivityName}}</b>\\n                      </span>\\n                      <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n                        <span\\n                          *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID] &&(MapType==='1' ||MapType==='3')\\\"\\n                          style=\\\"float: right;\\\" class=\\\"circlelg metricsbg\\\"\\n                          (click)=\\\"getCase(process['Process'], Activity,2,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n                          {{IssuesLists[process['Process'].ProcessID]['Metric'][Activity.ActivityID]}}\\n                        </span>\\n                        <!-- <div *ngIf=\\\"(MapType==='0' || MapType==='1'|| MapType==='2'|| MapType==='3')\\\"\\n                  style=\\\"margin-left:26px;\\\"></div> -->\\n                      </span>\\n                      <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n                        <span\\n                          *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] && (MapType==='0' || MapType==='3')\\\"\\n                          style=\\\"float: right;\\\" class=\\\"circlelg frustrationbg\\\"\\n                          (click)=\\\"getCase(process['Process'], Activity, 1,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n                          {{IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID]}}\\n                        </span>\\n                      </span>\\n                      <span ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\"\\n                        *ngIf=\\\"showMetricAlert[Activity.ActivityID]\\\">\\n                        <span class=\\\"circleI\\\" style=\\\"color: #4aabe7;float: right;\\\"\\n                          title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\n                          *ngIf=\\\"(MapType==='1' || MapType==='3')\\\">\\n                          <img src=\\\"./assets/images/star-blue.png\\\" alt=\\\"bluestar\\\" width=\\\"20px;\\\"\\n                            style=\\\"margin-left:-4px;\\\" />\\n                        </span>\\n                      </span>&nbsp;\\n                      <span class=\\\"circleI\\\" style=\\\"color:#d55632;float: right;\\\"\\n                        title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\n                        *ngIf=\\\"alertPTypeID===1 && IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\n                        <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\" width=\\\"20px;\\\" style=\\\"margin-left:-11px;\\\">\\n                      </span>\\n                    </div>\\n                  </div>\\n                  <div *ngIf=\\\"expandMap\\\">\\n                    <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && (MapType==='0' ||MapType==='3')\\\">\\n\\n                      <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['IssueList'][Activity.ActivityID]\\\"\\n                        class=\\\"squareIssues\\\">\\n                        <div>\\n                          <table>\\n\\n                            <tbody>\\n                              <tr>\\n                                <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\n                                <td style=\\\"float: left;\\\">\\n                                  <strong> Frustrations </strong>\\n                                </td>\\n                              </tr>\\n\\n                            </tbody>\\n\\n                            <tr\\n                              *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['IssueList'][Activity.ActivityID];let i=index;\\\">\\n                              <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n                                {{i+1}}\\n                              </td>\\n                              <td style=\\\"padding-left: 2px;float: left;\\\">\\n                                {{data.Subject}}\\n\\n                              </td>\\n                              <td style=\\\"height:20px;width:20px;\\\">\\n                                <span *ngIf=\\\"data.StatusID===1\\\"></span>\\n                                <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\" style=\\\"background-color: red;\\\"></span>\\n                                <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\"\\n                                  style=\\\"background-color: yellow;\\\"></span>\\n                                <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\"\\n                                  style=\\\"background-color: green;\\\"></span>\\n                                <span *ngIf=\\\"data.StatusID===5\\\" class=\\\"circleM\\\" style=\\\"background-color: black;\\\"></span>\\n                              </td>\\n                            </tr>\\n\\n                          </table>\\n\\n\\n                        </div>\\n\\n                      </div>\\n                    </span>\\n                    <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && (MapType==='1' ||MapType==='3')\\\">\\n\\n                      <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID]\\\"\\n                        class=\\\"squareM\\\">\\n                        <div>\\n\\n                          <table>\\n                            <tbody>\\n                              <tr>\\n                                <td style=\\\"word-break:normal;\\\"><strong>No.</strong> </td>\\n                                <td style=\\\"float: left;\\\">\\n                                  <strong> Metrics </strong>\\n                                </td>\\n                              </tr>\\n\\n                              <tr\\n                                *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID];let i=index;\\\">\\n                                <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n                                  {{i+1}}\\n                                </td>\\n                                <td style=\\\"padding-left: 2px;float: left;\\\">\\n                                  {{data.Description}}\\n                                </td>\\n\\n                              </tr>\\n                            </tbody>\\n                          </table>\\n\\n\\n                        </div>\\n\\n                      </div>\\n                    </span>\\n                  </div>\\n                </div>\\n              </div>\\n              <div>\\n              </div>\\n            </div>\\n          </div>\\n        </div>\\n\\n\\n\\n\\n        <div class=\\\"footer\\\">\\n          <label>{{copyRight}}</label>\\n        </div>\\n\\n\\n\\n\\n      </div>\\n    </div>\\n  </div>\\n  <br>\\n  <br>\\n\\n  <div class=\\\"donotprintthis\\\">\\n    <!--\\n          <div class=\\\"row\\\" style=\\\"padding: 0% 14px 0% 14px;\\\">\\n            <div class=\\\"col-md-5\\\">\\n              <div class=\\\"card\\\" style=\\\"width: 380px;\\\">\\n                <div class=\\\"card-block\\\">\\n                 <div class=\\\"row\\\">\\n                   <div class=\\\"col-md-6 \\\">\\n                     <ul>\\n                      <li> <div class=\\\"form-group form-inline\\\" style=\\\"padding: 5px;cursor: pointer;\\\" matTooltip=\\\"Key Process\\\">\\n                        <span class=\\\"squre\\\" style=\\\"background-color: #3775b5; box-shadow: 0px 3px 3px 0px #265382;\\\">&nbsp;</span>\\n                        <label class=\\\"labelFont alignment\\\" >&nbsp;Key Process</label>\\n                      </div></li>\\n                      <li>  <div class=\\\"form-group form-inline\\\" style=\\\"padding: 5px;cursor: pointer;\\\" matTooltip=\\\"Activity - External to Process\\\">\\n                        <span class=\\\"squre\\\" style=\\\"background-color: #a3cda2;\\\">&nbsp;</span>\\n                        <label class=\\\"labelFont alignment \\\" >&nbsp;Activity - External to Process</label>\\n                      </div></li>\\n                      <li>  <div class=\\\"form-group form-inline\\\" style=\\\"padding: 5px;cursor: pointer;\\\" matTooltip=\\\"Activity - Internal to Process\\\">\\n                        <span class=\\\"squre\\\" style=\\\"background-color: #e2e3e4;\\\">&nbsp;</span>\\n                        <label class=\\\"labelFont alignment\\\" > &nbsp;Activity - Internal to Process</label>\\n                      </div></li>\\n                     </ul>\\n\\n\\n\\n                   </div>\\n                   <div class=\\\"col-md-6 \\\">\\n                    <ul>\\n                      <li>test</li>\\n                      <li>test</li>\\n                      <li>test</li>\\n                    </ul>\\n                  </div>\\n                 </div>\\n                </div>\\n              </div>\\n            </div>\\n             <div class=\\\"col-md-2\\\">\\ntetsing my project\\n             </div>\\n\\n            <div class=\\\"col-md-5\\\">\\n                <div class=\\\"card\\\" style=\\\"width: 380px;\\\">\\n                  <div class=\\\"card-block\\\">\\n                    <div class=\\\"row\\\">\\n                      <div class=\\\"col-md-6 \\\">\\n                        <ul>\\n                          <li>test</li>\\n                          <li>test</li>\\n                        </ul>\\n                      </div>\\n                      <div class=\\\"col-md-6 \\\">\\n                       <ul>\\n                         <li>test</li>\\n                         <li>test</li>\\n                       </ul>\\n                     </div>\\n                    </div>   </div>\\n                </div>\\n            </div>\\n          </div>\\n        -->\\n    <br>\\n    <div class=\\\"col-sm-12 form-inline\\\">\\n\\n      <div class=\\\"col-sm-4 cardCustom form-inline mb_la\\\" style=\\\"padding: 0; max-width: 30% \\\" id=\\\"moblgd\\\">\\n        <div class=\\\"col-sm-6\\\" style=\\\"padding: 0;\\\">\\n          <div class=\\\"form-group form-inline mb_view1\\\" style=\\\"      margin-bottom: 4px;\\n              margin-top: 5px;  padding: 0px 0px 0px 3px;cursor: pointer;\\\" matTooltip=\\\"Key process\\\">\\n            <span class=\\\"squre\\\" style=\\\"width:15px;background-color: #3775b5;\\n                  box-shadow: 0px 3px 3px 0px #265382;\\\">&nbsp;</span><label class=\\\"labelFont alignment\\\">&nbsp;&nbsp;\\n              Key Process</label>\\n          </div>\\n          <div class=\\\"form-group form-inline\\\" style=\\\"    padding: 0px 0px 0px 3px;cursor: pointer;\\\"\\n            matTooltip=\\\"Activity - external to process\\\">\\n            <ul style=\\\"list-style: none;padding:0;margin: 0;\\\">\\n              <li><svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"15\\\" height=\\\"15\\\" viewBox=\\\"0 0 172 172\\\"\\n                  style=\\\" fill:#000000;\\\">\\n                  <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n                    stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n                    font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n                    style=\\\"mix-blend-mode: normal\\\">\\n                    <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n                    <g fill=\\\"#a3cda2\\\">\\n                      <path d=\\\"M0,13.23077v145.53846h172v-145.53846z\\\"></path>\\n                    </g>\\n                  </g>\\n                </svg>\\n                <span class=\\\"labelFont alignment \\\">&nbsp; Activity - External to Process</span>\\n              </li>\\n            </ul>\\n          </div>\\n          <div class=\\\"form-group form-inline\\\" style=\\\"    padding: 0px 0px 0px 3px;cursor: pointer;\\\"\\n            matTooltip=\\\"Activity - internal to process\\\">\\n            <ul style=\\\"list-style: none;padding:0;margin: 0;\\\">\\n              <li> <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"15\\\" height=\\\"15\\\" viewBox=\\\"0 0 172 172\\\"\\n                  style=\\\" fill:#000000;\\\">\\n                  <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n                    stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n                    font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n                    style=\\\"mix-blend-mode: normal\\\">\\n                    <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n                    <g fill=\\\"#e2e3e4\\\">\\n                      <path d=\\\"M0,13.23077v145.53846h172v-145.53846z\\\"></path>\\n                    </g>\\n                  </g>\\n                </svg>\\n                <span class=\\\"labelFont alignment\\\"> &nbsp;Activity - Internal to Process</span>\\n\\n              </li>\\n            </ul>\\n            <!-- <span class=\\\"squre\\\" style=\\\"background-color: #e2e3e4;\\\">&nbsp;</span> -->\\n          </div>\\n        </div>\\n        <div class=\\\"col-sm-6\\\" style=\\\"padding: 0;\\\">\\n          <div class=\\\"form-group form-inline \\\" style=\\\" padding: 0px 0px 0px 3px;cursor: pointer;\\\" matTooltip=\\\"Metric\\\">\\n            <ul style=\\\"list-style: none;padding:0;margin: 0;\\\">\\n              <li> <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 172 172\\\"\\n                  style=\\\" fill:#000000;\\\">\\n                  <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n                    stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n                    font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n                    style=\\\"mix-blend-mode: normal\\\">\\n                    <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n                    <g fill=\\\"#4aabe7\\\">\\n                      <path\\n                        d=\\\"M86,17.2c-37.9948,0 -68.8,30.8052 -68.8,68.8c0,37.9948 30.8052,68.8 68.8,68.8c37.9948,0 68.8,-30.8052 68.8,-68.8c0,-37.9948 -30.8052,-68.8 -68.8,-68.8z\\\">\\n                      </path>\\n                    </g>\\n                  </g>\\n                </svg>\\n                <span class=\\\"labelFont alignment\\\">&nbsp; Metric</span>\\n              </li>\\n            </ul>\\n\\n          </div>\\n          <div class=\\\"form-group form-inline\\\" style=\\\" padding: 0px 0px 0px 3px;cursor: pointer;\\\"\\n            matTooltip=\\\"Frustration / Issue\\\">\\n            <ul style=\\\"list-style: none;padding:0;margin: 0;\\\">\\n              <li> <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 172 172\\\"\\n                  style=\\\" fill:#000000;\\\">\\n                  <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n                    stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n                    font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n                    style=\\\"mix-blend-mode: normal\\\">\\n                    <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n                    <g fill=\\\"#d55632\\\">\\n                      <path\\n                        d=\\\"M86,17.2c-37.9948,0 -68.8,30.8052 -68.8,68.8c0,37.9948 30.8052,68.8 68.8,68.8c37.9948,0 68.8,-30.8052 68.8,-68.8c0,-37.9948 -30.8052,-68.8 -68.8,-68.8z\\\">\\n                      </path>\\n                    </g>\\n                  </g>\\n                </svg>\\n                <span class=\\\"labelFont alignment\\\"> &nbsp;Frustration / Issue</span>\\n              </li>\\n            </ul>\\n          </div>\\n\\n          <div class=\\\"form-group form-inline\\\" style=\\\" padding: 0px 0px 0px 3px;cursor: pointer;\\\"\\n            matTooltip=\\\"Sub-activity exists\\\">\\n            <ul style=\\\"list-style: none;padding:0;margin: 0;\\\">\\n              <li>\\n                <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 172 172\\\"\\n                  style=\\\" fill:#000000;\\\">\\n                  <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n                    stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n                    font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n                    style=\\\"mix-blend-mode: normal\\\">\\n                    <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n                    <g fill=\\\"#d9c25a\\\">\\n                      <path\\n                        d=\\\"M86,17.2c-37.9948,0 -68.8,30.8052 -68.8,68.8c0,37.9948 30.8052,68.8 68.8,68.8c37.9948,0 68.8,-30.8052 68.8,-68.8c0,-37.9948 -30.8052,-68.8 -68.8,-68.8z\\\">\\n                      </path>\\n                    </g>\\n                  </g>\\n                </svg>\\n                <span class=\\\"labelFont alignment\\\">&nbsp;Sub-Activity Exists</span>\\n              </li>\\n            </ul>\\n\\n          </div>\\n        </div>\\n      </div>\\n      <div class=\\\"col-sm-4\\\" style=\\\"text-align: center;\\\">\\n        <h6>\\n          <strong style=\\\"word-break: break-all\\\"> {{CompanyName }} </strong>- ProcessMap <br>\\n          <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span>\\n        </h6>\\n      </div>\\n      <div class=\\\"col-sm-4 cardCustom form-inline mb_la\\\" style=\\\"padding: 0;    max-width: 30% ;\\\" id=\\\"moblgd\\\">\\n        <div class=\\\"col-sm-6\\\" style=\\\"    padding: 0px 0px 0px 3px;\\\">\\n          <div class=\\\"form-group form-inline\\\" style=\\\"cursor: pointer;\\\"\\n            matTooltip=\\\"Alert - multiple activities with no metrics\\\">\\n            <ul style=\\\"list-style: none;padding: 0;margin: 0;\\\">\\n              <li>\\n                <img src=\\\"./assets/images/star-blue.png\\\" alt=\\\"bluestar\\\" width=\\\"13px;\\\" />\\n                <span class=\\\"labelFont alignment1\\\">&nbsp;&nbsp;&nbsp;\\n                  Alert - Multiple Activities with No Metrics</span>\\n\\n              </li>\\n            </ul>\\n          </div>\\n          <div class=\\\"form-group form-inline\\\" style=\\\"cursor: pointer;\\\" matTooltip=\\\"Alert - key process: no metrics\\\">\\n            <ul style=\\\"padding: 0;margin: 0;list-style: none;\\\">\\n              <li>\\n                <img src=\\\"./assets/images/triangle-blue.png\\\" alt=\\\"bluetriangle\\\" width=\\\"11px;\\\" />\\n                <span class=\\\"labelFont alignment1\\\">&nbsp;&nbsp;&nbsp; Alert - Key Process: No Metrics\\n                </span>\\n\\n              </li>\\n            </ul>\\n          </div>\\n        </div>\\n        <div class=\\\"col-sm-6\\\" style=\\\"padding: 0;\\\">\\n          <div class=\\\"form-group form-inline\\\" style=\\\"cursor: pointer;\\\"\\n            matTooltip=\\\"Alert - multiple frustrations clustered\\\">\\n            <ul style=\\\"padding: 0;margin: 0;list-style: none;\\\">\\n              <li>\\n                <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\" width=\\\"13px;\\\" />\\n                <span class=\\\"labelFont alignment1\\\">&nbsp;&nbsp;&nbsp; Alert - Multiple Frustrations\\n                  Clustered</span>\\n\\n              </li>\\n            </ul>\\n          </div>\\n          <div class=\\\"form-group form-inline\\\" style=\\\"cursor: pointer;\\\"\\n            matTooltip=\\\"Alert -  key process: no frustrations\\\">\\n            <ul style=\\\"padding: 0;margin: 0;list-style: none;\\\">\\n              <li>\\n                <img src=\\\"./assets/images/triangle-red.png\\\" alt=\\\"redtriangle\\\" width=\\\"11px;\\\" />\\n                <span class=\\\"labelFont alignment1\\\">&nbsp;&nbsp;&nbsp;Alert -\\n                  Key Process: No Frustrations</span>\\n\\n              </li>\\n            </ul>\\n\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n\\n    <br>\\n\\n  </div>\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n<div\\r\\n  *ngIf=\\\"data !== 'new' && data !== 'edit' && data!='log'&& data !== 'progress' &&  data !== 'status' && data !== 'rearrange'\\\">\\r\\n  <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n  <mat-dialog-actions align=\\\"center\\\">\\r\\n    <div *ngIf=\\\"condition\\\">\\r\\n      <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n      <!-- Can optionally provide a result for the closing dialog. -->\\r\\n      <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n    </div>\\r\\n    <div *ngIf=\\\"!condition &&  data !== 'progress' &&  data !== 'status'\\\">\\r\\n      <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n        <div class=\\\"item item-3 \\\">\\r\\n          <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </mat-dialog-actions>\\r\\n</div>\\r\\n<div *ngIf=\\\"data === 'new' || data === 'edit' || data === 'rearrange'\\\">\\r\\n  <br>\\r\\n  <div class=\\\"XBtn\\\">\\r\\n    <span (click)=\\\"clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">&times;</span>\\r\\n  </div>\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowheading\\\">\\r\\n      <h4 class=\\\"alignheader\\\"><b>{{data | titlecase}} Process</b></h4>\\r\\n    </div>\\r\\n  </div>\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowwrapper\\\">\\r\\n      <div id=\\\"RowtableActions\\\">\\r\\n        <div id=\\\"field\\\">\\r\\n          <mat-form-field>\\r\\n            <input matInput [disabled]=\\\"data==='rearrange'\\\" maxlength=\\\"40\\\" id=\\\"lblProcess\\\" [(ngModel)]=\\\"ProcessName\\\"\\r\\n              autocomplete=\\\"off\\\" value=\\\"\\\">\\r\\n            <mat-placeholder>Process <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n          </mat-form-field>\\r\\n        </div>\\r\\n        <div id=\\\"field\\\">\\r\\n          <mat-form-field>\\r\\n            <input matInput [disabled]=\\\"data==='rearrange'\\\" placeholder=\\\" Process Description\\\" maxlength=\\\"200\\\"\\r\\n              autocomplete=\\\"off\\\" id=\\\"lblProcessDescription\\\" [(ngModel)]=\\\"ProcessDescription\\\" value=\\\"\\\">\\r\\n          </mat-form-field>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </div>\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowwrapper\\\">\\r\\n      <div id=\\\"RowtableActions\\\">\\r\\n        <div id=\\\"field\\\">\\r\\n          <mat-form-field>\\r\\n            <mat-label> Team</mat-label>\\r\\n            <mat-select (selectionChange)=\\\"teamChange($event)\\\"\\r\\n              [disabled]=\\\"conditionActivity==='process' || data==='rearrange' || disableTeam\\\" [(ngModel)]=\\\"TeamID\\\">\\r\\n              <mat-option *ngFor=\\\"let data of teamData;let i=index;\\\" [value]=\\\"teamData[i].TeamID\\\">\\r\\n                {{teamData[i].TeamName}}\\r\\n              </mat-option>\\r\\n            </mat-select>\\r\\n          </mat-form-field>\\r\\n        </div>\\r\\n        <div id=\\\"field\\\">\\r\\n          <mat-form-field>\\r\\n            <mat-placeholder>Sequence <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n            <mat-select [disabled]=\\\"TeamID==='0' || TeamID===undefined || TeamID==='.' || TeamID===null || TeamID===0\\\"\\r\\n              [(ngModel)]=\\\"squence\\\">\\r\\n              <mat-option *ngFor=\\\"let data of sequenceList;let i=index;\\\" [value]=\\\"data\\\">\\r\\n                {{data}}\\r\\n              </mat-option>\\r\\n            </mat-select>\\r\\n          </mat-form-field>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </div>\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowwrapper\\\">\\r\\n      <div id=\\\"RowtableActions\\\">\\r\\n        <div id=\\\"buttonview\\\">\\r\\n          <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"addProcess()\\\" [disabled]=\\\"btnDisabled\\\"><span\\r\\n              *ngIf=\\\"data === 'new' || data==='rearrange'\\\">Save</span><span\\r\\n              *ngIf=\\\"data === 'edit'\\\">Update</span></button>\\r\\n        </div>\\r\\n        <div id=\\\"buttonview\\\">\\r\\n          <button mat-accent class=\\\"addButtons btn\\\" (click)='clear()'>Cancel</button>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </div>\\r\\n</div>\\r\\n<br>\\r\\n<mat-dialog-content class=\\\"warningMsg\\\">{{dataSelf}}</mat-dialog-content>\\r\\n<mat-dialog-content class=\\\"successMsg\\\"></mat-dialog-content>\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<div class=\\\"row\\\" id=\\\"container\\\">\\r\\n  <div class=\\\"\\\" id=\\\"heading\\\">\\r\\n    <h4>Process</h4>\\r\\n  </div>\\r\\n  <div id=\\\"wrapper\\\">\\r\\n    <div id=\\\"tableActions\\\">\\r\\n      <div class=\\\"\\\" id=\\\"search\\\" *ngIf=\\\"!disableSearch\\\">\\r\\n        <mat-form-field style=\\\"margin-top: -5px;\\\" id=\\\"searchField\\\">\\r\\n          <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\r\\n          <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"searchText()\\\" name=\\\"search\\\"\\r\\n            [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\r\\n        </mat-form-field>\\r\\n      </div>\\r\\n      <div class=\\\"\\\" id=\\\"excelBtn\\\" *ngIf=\\\"!disableSearch\\\">\\r\\n        <button class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top:11px;cursor: pointer;\\\" [disabled]=\\\"isDisable\\\"\\r\\n          matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">\\r\\n          Excel\\r\\n        </button>\\r\\n      </div>\\r\\n      <div class=\\\"\\\" id=\\\"createBtn\\\">\\r\\n        <button mat-accent class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top: 11px;\\\" (click)='openProcess()'\\r\\n          [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\" matTooltip=\\\"New process\\\">New </button>\\r\\n      </div>\\r\\n    </div>\\r\\n  </div>\\r\\n</div>\\r\\n\\r\\n\\r\\n<div>\\r\\n  <div class=\\\"tableDiv\\\">\\r\\n    <table id=\\\"dtBasicExample\\\">\\r\\n      <thead>\\r\\n        <tr>\\r\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\r\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n          </th>\\r\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('ProcessName')\\\"> Process\\r\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n          </th>\\r\\n          <th cName class=\\\"pointer\\\" (click)=\\\"sort('ProcessDescription')\\\"> Description\\r\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n          </th>\\r\\n          <th cName class=\\\"pointer\\\" (click)=\\\"sort('squence')\\\"> Sequence\\r\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n          </th>\\r\\n          <th>Action</th>\\r\\n        </tr>\\r\\n      </thead>\\r\\n\\r\\n      <tbody *ngIf=\\\"empID===0\\\">\\r\\n        <tr\\r\\n          *ngFor=\\\"let element of processData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\r\\n          <td> {{element.TeamName}}</td>\\r\\n          <td> {{element.ProcessName}}</td>\\r\\n          <td> {{element.ProcessDescription}}</td>\\r\\n          <td *ngIf=\\\"element.squence!=0;else upby\\\">\\r\\n            {{element.squence}}\\r\\n          </td>\\r\\n          <ng-template #upby>\\r\\n            <td>\\r\\n\\r\\n            </td>\\r\\n          </ng-template>\\r\\n\\r\\n          <td style=\\\" cursor:pointer;\\\">\\r\\n\\r\\n            <span>\\r\\n              <a matTooltip=\\\"Edit process\\\" (click)=\\\"editProcess(element)\\\"\\r\\n                [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\r\\n                [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['U']),'AddColor':(MenuPermissions[menuName][menuID]['U'] )}\\\"><i\\r\\n                  style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n              &nbsp;&nbsp;&nbsp; <a matTooltip=\\\"Delete process\\\" (click)=\\\"deleteProcess(element)\\\"\\r\\n                [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['D'])  ?'none':'auto'\\\"\\r\\n                [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['D']),'AddColor':(MenuPermissions[menuName][menuID]['D'] )}\\\"><i\\r\\n                  style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n\\r\\n            </span>\\r\\n          </td>\\r\\n\\r\\n        </tr>\\r\\n\\r\\n      </tbody>\\r\\n\\r\\n\\r\\n\\r\\n      <tbody\\r\\n        *ngFor=\\\"let element of processData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\r\\n        <tr *ngIf=\\\"empID!==0 && element.R\\\">\\r\\n\\r\\n          <td> {{element.TeamName}}</td>\\r\\n          <td> {{element.ProcessName}}</td>\\r\\n          <td> {{element.ProcessDescription}}</td>\\r\\n          <td *ngIf=\\\"element.squence!=0;else upby\\\">\\r\\n            {{element.squence}}\\r\\n          </td>\\r\\n          <ng-template #upby>\\r\\n            <td>\\r\\n\\r\\n            </td>\\r\\n          </ng-template>\\r\\n          <td>\\r\\n\\r\\n            <span>\\r\\n              <a matTooltip=\\\"Edit process\\\" (click)=\\\"editProcess(element)\\\"\\r\\n                [style.pointer-events]=\\\"!(element.U)?'none':'auto'\\\"\\r\\n                [ngClass]=\\\"{'removeColor':!(element.U),'AddColor':(element.U)}\\\"><i style=\\\"cursor: pointer;\\\"\\r\\n                  class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n              &nbsp;&nbsp;&nbsp; <a matTooltip=\\\"Delete process\\\" (click)=\\\"deleteProcess(element)\\\"\\r\\n                [style.pointer-events]=\\\"!(element.D)  ?'none':'auto'\\\"\\r\\n                [ngClass]=\\\"{'removeColor':!(element.D),'AddColor':(element.D)}\\\"><i style=\\\"cursor: pointer;\\\"\\r\\n                  class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n            </span>\\r\\n          </td>\\r\\n\\r\\n        </tr>\\r\\n        <tr *ngIf=\\\"empID!==0\\\">\\r\\n\\r\\n          <td> {{element.TeamName}}</td>\\r\\n          <td> {{element.ProcessName}}</td>\\r\\n          <td> {{element.ProcessDescription}}</td>\\r\\n          <td *ngIf=\\\"element.squence!=0;else upby\\\">\\r\\n            {{element.squence}}\\r\\n          </td>\\r\\n          <ng-template #upby>\\r\\n            <td>\\r\\n\\r\\n            </td>\\r\\n          </ng-template>\\r\\n          <td>\\r\\n\\r\\n            <span>\\r\\n              <a matTooltip=\\\"Edit process\\\" (click)=\\\"editProcess(element)\\\"\\r\\n                [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\r\\n                [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['U']),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\"><i\\r\\n                  style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n              &nbsp;&nbsp;&nbsp; <a matTooltip=\\\"Delete process\\\" (click)=\\\"deleteProcess(element)\\\"\\r\\n                [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['D'])  ?'none':'auto'\\\"\\r\\n                [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['D']),'AddColor':(MenuPermissions[menuName][menuID]['D'])}\\\"><i\\r\\n                  style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n            </span>\\r\\n          </td>\\r\\n\\r\\n        </tr>\\r\\n\\r\\n      </tbody>\\r\\n\\r\\n    </table><br>\\r\\n\\r\\n    <div class=\\\"warningMsg\\\" *ngIf=\\\"!processData || processData.length === 0\\\">\\r\\n      <span>No data available</span>\\r\\n    </div>\\r\\n  </div>\\r\\n\\r\\n  <div class=\\\"pageContainer\\\" *ngIf=\\\"processPaging && processData.length>0\\\">\\r\\n\\r\\n    <div class=\\\"rowsSelection\\\">\\r\\n      <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\r\\n        <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\r\\n          <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\r\\n            {{row}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n\\r\\n\\r\\n    <div class=\\\"pageSelection\\\">\\r\\n      <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\r\\n    </div>\\r\\n  </div>\\r\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<div *ngIf=\\\"data !== 'new' && data !== 'edit' && data!='log'&& data !== 'progress' &&  data !== 'status'\\\">\\r\\n  <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n  <mat-dialog-actions align=\\\"center\\\">\\r\\n    <div *ngIf=\\\"condition\\\">\\r\\n      <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n\\r\\n      <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n    </div>\\r\\n    <div *ngIf=\\\"!condition &&  data !== 'progress' &&  data !== 'status'\\\">\\r\\n      <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n        <div class=\\\"item item-3 \\\">\\r\\n          <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n\\r\\n<div *ngIf=\\\"data === 'new' || data === 'edit'\\\">\\r\\n\\r\\n  <br>\\r\\n  <div class=\\\"XBtn\\\">\\r\\n    <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">&times;</span>\\r\\n  </div>\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowheading\\\">\\r\\n      <h4 class=\\\"alignheader\\\"><b>{{data | titlecase}} Project</b></h4>\\r\\n\\r\\n    </div>\\r\\n  </div>\\r\\n\\r\\n  <div class=\\\"inputFields\\\">\\r\\n    <div>\\r\\n\\r\\n      <mat-form-field>\\r\\n        <input matInput autocomplete=\\\"off\\\" maxlength=\\\"50\\\" id=\\\"lblProjectName\\\" [(ngModel)]=\\\"ProjectName\\\" value=\\\"\\\">\\r\\n        <mat-placeholder>Project <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n\\r\\n\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n        <input matInput placeholder=\\\" Description\\\" autocomplete=\\\"off\\\" maxlength=\\\"200\\\" id=\\\"lblDescription\\\"\\r\\n          [(ngModel)]=\\\"ProjectDescription\\\" value=\\\"\\\">\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n\\r\\n        <mat-placeholder>Status <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n        <mat-select (selectionChange)=\\\"statusChange($event)\\\" [(ngModel)]=\\\"StatusID\\\">\\r\\n          <mat-option *ngFor=\\\"let data of statusData;let i=index;\\\" [value]=\\\"statusData[i].ProjectStatusID\\\">\\r\\n            {{data.ProjectStatusName}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n\\r\\n    </div>\\r\\n    <div>\\r\\n\\r\\n\\r\\n      <mat-form-field>\\r\\n        <input matInput [matDatepicker]=\\\"picker\\\" [min]=\\\"Date\\\" [(ngModel)]=\\\"ProjectDueDate\\\" (blur)=\\\"validateDate()\\\"\\r\\n          placeholder=\\\"Due Date(MM/DD/YYYY)\\\" (dateChange)=\\\"dob('change', $event)\\\">\\r\\n        <mat-datepicker-toggle matSuffix [for]=\\\"picker\\\"></mat-datepicker-toggle>\\r\\n        <mat-datepicker #picker [startAt]=\\\"Date\\\"></mat-datepicker>\\r\\n      </mat-form-field>\\r\\n\\r\\n    </div>\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n        <mat-placeholder>Team <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n        <mat-select [disabled]=\\\"conditionActivity==='process' || data==='rearrange' || disableTeam\\\"\\r\\n          [(ngModel)]=\\\"TeamID\\\">\\r\\n          <mat-option *ngFor=\\\"let data of teamData;let i=index;\\\" [value]=\\\"teamData[i].TeamID\\\">\\r\\n            {{teamData[i].TeamName}}\\r\\n          </mat-option>\\r\\n        </mat-select>\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n    <div>\\r\\n      <mat-form-field>\\r\\n        <input matInput placeholder=\\\"Project Owner\\\" autocomplete=\\\"off\\\" maxlength=\\\"200\\\" id=\\\"lblProjectOwner\\\"\\r\\n          [(ngModel)]=\\\"ProjectOwner\\\" value=\\\"\\\">\\r\\n\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n\\r\\n\\r\\n  </div>\\r\\n\\r\\n  <!-- <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowwrapper\\\">\\r\\n      <div id=\\\"RowtableAction\\\">\\r\\n        <div id=\\\"field\\\">\\r\\n    \\r\\n        <mat-form-field>\\r\\n            <input matInput  autocomplete=\\\"off\\\" maxlength=\\\"50\\\"  id=\\\"lblProjectName\\\" [(ngModel)]=\\\"ProjectName\\\" \\r\\n            value=\\\"\\\">\\r\\n            <mat-placeholder>Project <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n        </mat-form-field>\\r\\n      </div>\\r\\n     \\r\\n    \\r\\n      <div id=\\\"field\\\">\\r\\n        <mat-form-field>\\r\\n            <input matInput placeholder=\\\" Description\\\" autocomplete=\\\"off\\\" maxlength=\\\"200\\\"  id=\\\"lblDescription\\\" [(ngModel)]=\\\"ProjectDescription\\\" \\r\\n            value=\\\"\\\">\\r\\n        </mat-form-field>\\r\\n       </div>\\r\\n       <div id=\\\"field\\\">\\r\\n        <mat-form-field>\\r\\n           \\r\\n            <mat-placeholder>Status <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n            <mat-select  (selectionChange)=\\\"statusChange($event)\\\" [(ngModel)]=\\\"StatusID\\\">\\r\\n              <mat-option *ngFor=\\\"let data of statusData;let i=index;\\\" [value]=\\\"statusData[i].ProjectStatusID\\\" >\\r\\n                {{data.ProjectStatusName}}\\r\\n              </mat-option>\\r\\n            </mat-select>\\r\\n          </mat-form-field>\\r\\n  \\r\\n</div>\\r\\n       </div>\\r\\n       </div>\\r\\n  </div> \\r\\n       \\r\\n  \\r\\n\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowwrapper\\\">\\r\\n      <div id=\\\"RowtableAction\\\">\\r\\n    \\r\\n<div id=\\\"field\\\">\\r\\n\\r\\n\\r\\n  <mat-form-field>\\r\\n    <input matInput  [matDatepicker]=\\\"picker\\\" [min]=\\\"Date\\\" [(ngModel)]=\\\"ProjectDueDate\\\" (blur)=\\\"validateDate()\\\"   placeholder=\\\"Due Date(MM/DD/YYYY)\\\"  (dateChange)=\\\"dob('change', $event)\\\" >\\r\\n    <mat-datepicker-toggle matSuffix [for]=\\\"picker\\\"></mat-datepicker-toggle>\\r\\n    <mat-datepicker #picker [startAt]=\\\"Date\\\"></mat-datepicker>\\r\\n  </mat-form-field>  \\r\\n    \\r\\n</div>\\r\\n<div id=\\\"field\\\">\\r\\n  <mat-form-field>\\r\\n    <mat-placeholder>Team <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n      <mat-select  [disabled]=\\\"conditionActivity==='process' || data==='rearrange' || disableTeam\\\"\\r\\n      [(ngModel)]=\\\"TeamID\\\" >\\r\\n        <mat-option *ngFor=\\\"let data of teamData;let i=index;\\\" [value]=\\\"teamData[i].TeamID\\\" >\\r\\n          {{teamData[i].TeamName}}\\r\\n        </mat-option>\\r\\n      </mat-select>\\r\\n    </mat-form-field>\\r\\n  </div> \\r\\n  <div id=\\\"field\\\">\\r\\n    <mat-form-field>\\r\\n        <input matInput placeholder=\\\"Project Owner\\\"  autocomplete=\\\"off\\\" maxlength=\\\"200\\\"  id=\\\"lblProjectOwner\\\" [(ngModel)]=\\\"ProjectOwner\\\" \\r\\n        value=\\\"\\\">\\r\\n        \\r\\n    </mat-form-field>\\r\\n   </div>\\r\\n\\r\\n</div>\\r\\n    </div>\\r\\n  </div> -->\\r\\n\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowwrapper\\\">\\r\\n      <div id=\\\"RowtableActions\\\">\\r\\n        <div id=\\\"buttonview\\\">\\r\\n\\r\\n          <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"AddProjects()\\\" [disabled]=\\\"btnDisabled\\\"><span\\r\\n              *ngIf=\\\"data === 'new'\\\">Save</span>\\r\\n            <span *ngIf=\\\"data === 'edit'\\\">Update</span></button>\\r\\n\\r\\n        </div>\\r\\n\\r\\n        <div id=\\\"buttonview\\\"><button mat-accent class=\\\"addButtons btn\\\" (click)='Clear()'>Cancel</button></div>\\r\\n\\r\\n      </div>\\r\\n    </div>\\r\\n  </div>\\r\\n</div>\\r\\n<br>\\r\\n<!-- <div *ngIf=\\\"data === 'edit'\\\">\\r\\n      <div class=\\\"container\\\"  fxLayout fxLayout.xs=\\\"column\\\"  fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n        <div  class=\\\"col-lg-6\\\">\\r\\n        <div  class=\\\"item item-1\\\" fxFlexOrder=\\\"1\\\" >\\r\\n          <mat-label  style=\\\"margin-left: 50px;\\\" *ngIf=\\\"updatedBy !== null\\\" >Updated By:<b> {{updatedBy}}</b></mat-label>\\r\\n         \\r\\n        </div>\\r\\n        </div>\\r\\n        \\r\\n        <div class=\\\"col-lg-6\\\">\\r\\n        <div  class=\\\"item item-1\\\" fxFlexOrder=\\\"2\\\" >\\r\\n          <mat-label *ngIf=\\\"updatedDate !== null\\\">Updated Date:<b> {{updatedDate | date:'MM/dd/yyyy'}}</b></mat-label>\\r\\n        </div>\\r\\n        </div>\\r\\n   \\r\\n      </div>\\r\\n    </div> -->\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n<mat-dialog-content class=\\\"warningMsg\\\">{{dataSelf}}</mat-dialog-content>\\r\\n<mat-dialog-content class=\\\"successMsg\\\"></mat-dialog-content>\\r\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n<style>\\n  @media screen {\\n    .donotprintthis1 {\\n      display: none;\\n    }\\n\\n    .donotprintthis {\\n\\n      display: block;\\n\\n    }\\n  }\\n\\n  @media print {\\n    /* table {\\n      width: 100%;\\n      font-size: smaller;\\n    }\\n\\n    th,\\n    td {\\n      text-align: center;\\n      font-size: smaller;\\n    }\\n\\n    th {\\n      color: white;\\n      background-color: #474747;\\n      height: 35px;\\n      font-size: 13px;\\n    }\\n\\n    td {\\n      height: 35px;\\n      font-size: 13px;\\n    }\\n\\n    table {\\n      border-collapse: collapse;\\n    }\\n\\n    table,\\n    th,\\n    td {\\n      border: 1px solid #e1e1e1;\\n      overflow: hidden;\\n      word-wrap: break-word;\\n    }\\n\\n    table.fixed {\\n      table-layout: fixed;\\n    }\\n\\n    table.fixed td {\\n      overflow: hidden;\\n    }\\n\\n    .highlight td {\\n      background: #C0C0C0;\\n    }*/\\n\\n    h5 {\\n      text-align: center;\\n    }\\n\\n    .donotprintthis1 {\\n\\n      display: block;\\n\\n    }\\n\\n    .donotprintthis {\\n\\n      display: none;\\n\\n    }\\n\\n    .footer {\\n      position: fixed;\\n      bottom: 0;\\n      font-size: 13px;\\n      margin-left: 35%;\\n    }\\n  }\\n</style>\\n<p></p>\\n\\n<div class=\\\"row\\\" id=\\\"container\\\">\\n\\n  <div class=\\\"\\\" id=\\\"heading\\\">\\n    <h4>Project</h4>\\n  </div>\\n\\n  <div id=\\\"wrapper\\\">\\n\\n    <div id=\\\"tableActions\\\">\\n      <div class=\\\"\\\" id=\\\"search\\\" *ngIf=\\\"tableFormat\\\">\\n        <span *ngIf=\\\"!disableSearch\\\">\\n          <mat-form-field id=\\\"searchField\\\">\\n            <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n            <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\"\\n              [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n          </mat-form-field>\\n        </span>\\n      </div>\\n\\n\\n      <div *ngIf=\\\"!kenbanFormat\\\" class=\\\"\\\" id=\\\"excelBtn\\\">\\n        <span *ngIf=\\\"!isDisable\\\">\\n          <button class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top: 10px; cursor: pointer;\\\" [disabled]=\\\"isDisable\\\"\\n            matTooltip=\\\"Export as excel\\\" style=\\\"cursor: pointer;margin-top: 10px;\\\" (click)=\\\"exportAsXLSX()\\\">\\n            <!-- <i class='fa fa-file-excel-o'></i> -->\\n            Excel\\n          </button>\\n        </span>\\n      </div>\\n      <div *ngIf=\\\"!tableFormat\\\" class=\\\"\\\" id=\\\"createBtn\\\">\\n        <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Print status view for projects\\\"\\n          style='float:right;margin-top: 10px;' [disabled]=\\\"projectData.length===0\\\" printSectionId=\\\"print-section\\\"\\n          [useExistingCss]=\\\"true\\\" ngxPrint>Print</button>\\n\\n      </div>\\n\\n      <div class=\\\"\\\" id=\\\"createBtn\\\">\\n        <button class=\\\"darkbtnbg btn btn-info\\\" *ngIf=\\\"tableFormat\\\" style='margin-top: 10px;'\\n          [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\" (click)='OpenProject()' matTooltip=\\\"New project\\\">New\\n        </button>\\n      </div>\\n\\n      <div class=\\\"\\\" id=\\\"createBtn\\\">\\n        <button class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top:10px;cursor: pointer;white-space: nowrap;\\\"\\n          [disabled]=\\\"(!projectData ||projectData.length==0) || tableFormat \\\" (click)='table()'\\n          matTooltip=\\\"Table view\\\">Table view </button>\\n      </div>\\n      <div class=\\\"\\\" id=\\\"createBtn\\\">\\n        <button class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top:10px;cursor: pointer;white-space: nowrap;\\\"\\n          [disabled]=\\\"(!projectData ||projectData.length==0) || kenbanFormat\\\" (click)='kenban()'\\n          matTooltip=\\\"Status view\\\">Status view</button>\\n      </div>\\n\\n\\n\\n    </div>\\n  </div>\\n</div>\\n\\n<div>\\n  <div class=\\\"tableDiv\\\">\\n    <table *ngIf=\\\"tableFormat\\\">\\n      <thead>\\n        <tr>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Project Team\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectName')\\\"> Project\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectDescription')\\\"> Description\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectStatusName')\\\"> Status\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectOwner')\\\"> Project Owner\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectDueDate')\\\"> Due Date\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th>Action</th>\\n        </tr>\\n      </thead>\\n      <tbody>\\n        <ng-container\\n          *ngFor=\\\"let element of projectData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n          <tr (click)=\\\"$event.stopPropagation();showFrust(element)\\\" style=\\\"cursor: pointer;\\\">\\n            <td>{{element.TeamName}}</td>\\n            <td>\\n\\n              {{element.ProjectName}}\\n            </td>\\n            <td> {{element.ProjectDescription}}</td>\\n            <td> {{element.ProjectStatusName}}</td>\\n            <td>{{element.ProjectOwner}}</td>\\n            <td>{{element.ProjectDueDate | date:'MM/dd/yyyy'}}</td>\\n            <td style=\\\" cursor:pointer;\\\">\\n              <span> <a matTooltip=\\\"Edit project\\\" (click)=\\\"$event.stopPropagation();EditProject(element)\\\"\\n                  [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\n                  [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['U']),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\"><i\\n                    style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n                &nbsp;&nbsp;&nbsp; <a matTooltip=\\\"Delete project\\\"\\n                  (click)=\\\"$event.stopPropagation();DeleteProject(element)\\\"\\n                  [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['D'])?'none':'auto'\\\"\\n                  [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['D']),'AddColor':(MenuPermissions[menuName][menuID]['D'])}\\\"><i\\n                    style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a> </span>\\n              &nbsp;&nbsp; &nbsp; <a matTooltip=\\\"Project on-hold\\\" (click)=\\\"$event.stopPropagation();ForceClose(element)\\\"\\n                [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\n                [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['U']),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\"><i\\n                  style=\\\"cursor: pointer;\\\" class=\\\"fa fa-window-close\\\" aria-hidden=\\\"true\\\"></i></a>\\n            </td>\\n          </tr>\\n          <tr *ngIf=\\\"rowSelected==element.ProjectID\\\">\\n\\n            <td colspan=\\\"6\\\">\\n              <table class=\\\"table2\\\">\\n                <thead>\\n                  <tr>\\n                    <th class=\\\"Expcolor\\\" style=\\\"width: 15%; white-space: nowrap;\\\"> Frustration Team</th>\\n                    <th class=\\\"Expcolor\\\">Process</th>\\n                    <!--<th class=\\\"Expcolor\\\">Activity</th>-->\\n                    <th class=\\\"Expcolor\\\">Frustration</th>\\n                    <th class=\\\"Expcolor\\\">Description</th>\\n                    <th class=\\\"Expcolor\\\">Status</th>\\n                  </tr>\\n                </thead>\\n                <tbody *ngFor=\\\"let data of frustData\\\" style=\\\"cursor:pointer\\\" (click)=\\\"AddIssue(data)\\\">\\n                  <tr [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\n                    [ngClass]=\\\"{'removeColor1':!(MenuPermissions[menuName][menuID]['U'])}\\\">\\n                    <td>{{data.TeamName}}</td>\\n                    <td>{{data.ProcessName}}</td>\\n                    <!--<td>{{data.ActivityName}}</td>-->\\n                    <td>{{data.Subject}}</td>\\n                    <td>{{data.Description}}</td>\\n                    <td>{{data.StatusName}}</td>\\n                  </tr>\\n                </tbody>\\n              </table>\\n              <br>\\n              <div class=\\\"warningMsg\\\" *ngIf=\\\"(frustData === null||frustData===undefined || frustData.length === 0)\\\">\\n                <span>No data available</span>\\n              </div>\\n            </td>\\n          </tr>\\n        </ng-container>\\n      </tbody>\\n\\n    </table>\\n\\n\\n\\n\\n    <br>\\n    <div class=\\\"warningMsg\\\" *ngIf=\\\"(projectData === null||projectData===undefined || projectData.length === 0)\\\">\\n\\n      <span>No data available</span>\\n\\n\\n    </div>\\n  </div>\\n\\n\\n  <div class=\\\"pageContainer\\\" *ngIf=\\\"projectPaging && !kenbanFormat\\\">\\n    <div class=\\\"rowsSelection\\\">\\n      <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n        <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n          <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n            {{row}}\\n          </mat-option>\\n        </mat-select>\\n      </mat-form-field>\\n    </div>\\n    <div class=\\\"pageSelection\\\">\\n      <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n    </div>\\n  </div>\\n\\n  <div class=\\\"row\\\" *ngIf=\\\"kenbanFormat\\\">\\n    <div class=\\\"instruction\\\">\\n      <p><strong><span class=\\\"impAsterisk\\\">* </span>Instructions: Double click or long press(for touch screen devices)\\n          to activate rearrangement of the selected project.</strong></p>\\n    </div>\\n    <div class=\\\"col-md-2 viewforstatus\\\" *ngFor=\\\"let week of weeks\\\">\\n      <div class=\\\"drag-container\\\" id=\\\"dragBox\\\" *ngIf=\\\"!ifTouchDevice\\\">\\n        <div class=\\\"stageHeader pipelineHeader\\\" matTooltip=\\\"{{week.id}}\\\"> {{week.id}} ({{week.count}})</div>\\n\\n        <div (mouseup)=\\\"onMouseUp()\\\" cdkDropList id=\\\"{{week.id}}\\\" [cdkDropListData]=\\\"week.weeklist\\\"\\n          [cdkDropListConnectedTo]=\\\"connectedTo\\\" class=\\\"example-list\\\" (cdkDropListDropped)=\\\"drop($event,week.statusID)\\\">\\n          <div #button long-press (onLongPressing)=\\\"onLongPressing()\\\" (dblclick)=\\\"onDblClick()\\\" (mouseup)=\\\"onMouseUp()\\\"\\n            class=\\\"example-box\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\n            *ngFor=\\\"let weekItem of week.weeklist\\\" cdkDrag\\n            [cdkDragDisabled]=\\\"!MenuPermissions[menuName][menuID]['U'] || ifLongPress\\\">\\n\\n            <span *ngIf=\\\"weekItem.UpdatedBy === null;else upby\\\">\\n              Project: {{weekItem.ProjectName}}<br>\\n              <!-- Created By: {{weekItem.CreatedBy}}  <br> -->\\n              Project owner:{{weekItem.ProjectOwner}}<br>\\n              Due Date: {{weekItem.ProjectDueDate | date:'MM/dd/yyyy'}}\\n            </span>\\n            <ng-template #upby>\\n              Project: {{weekItem.ProjectName}}<br>\\n              <!-- Updated By: {{weekItem.UpdatedBy}}<br> -->\\n              Project owner:{{weekItem.ProjectOwner}}<br>\\n              Due Date: {{weekItem.ProjectDueDate | date:'MM/dd/yyyy'}}\\n            </ng-template>\\n\\n\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n\\n  <!-- *********************Print Kanban Section********************************* -->\\n\\n  <div id=\\\"print-section\\\" class=\\\"donotprintthis1\\\">\\n\\n    <div style=\\\"text-align: center;\\\">\\n      <span>Company - <strong> {{loginCompanyName }} </strong></span> <br>\\n      <span>Date: {{Date| date:'MM-dd-yyyy' }}</span><br>\\n      <span>Projects Status View</span>\\n    </div><br>\\n\\n\\n    <div class=\\\"row\\\" *ngIf=\\\"kenbanFormat\\\">\\n      <div class=\\\"col-md-2\\\" *ngFor=\\\"let week of weeks\\\">\\n        <div class=\\\"drag-container\\\">\\n          <div class=\\\"stageHeader pipelineHeader\\\" matTooltip=\\\"{{week.id}}\\\"> {{week.id}} ({{week.count}})</div>\\n\\n          <div cdkDropList id=\\\"{{week.id}}\\\" [cdkDropListData]=\\\"week.weeklist\\\" [cdkDropListConnectedTo]=\\\"connectedTo\\\"\\n            class=\\\"example-list\\\" (cdkDropListDropped)=\\\"drop($event,week.statusID)\\\">\\n            <div class=\\\"example-box\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\n              *ngFor=\\\"let weekItem of week.weeklist\\\" cdkDrag\\n              [cdkDragDisabled]=\\\"!MenuPermissions[menuName][menuID]['U']\\\">\\n\\n\\n              <span *ngIf=\\\"weekItem.UpdatedBy === null;else upby\\\">\\n                Project: {{weekItem.ProjectName}}<br>\\n                <!-- Created By:  {{weekItem.CreatedBy}} <br> -->\\n                Project owner:{{weekItem.ProjectOwner}} <br>\\n                Due Date: {{weekItem.ProjectDueDate | date:'MM/dd/yyyy'}}\\n              </span>\\n              <ng-template #upby>\\n                Project: {{weekItem.ProjectName}}<br>\\n                <!-- Updated By:  {{weekItem.UpdatedBy}}<br> -->\\n                Project owner:{{weekItem.ProjectOwner}}<br>\\n                Due Date: {{weekItem.ProjectDueDate | date:'MM/dd/yyyy'}}\\n              </ng-template>\\n\\n\\n            </div>\\n          </div>\\n        </div>\\n      </div>\\n\\n    </div>\\n    <div class=\\\"footer\\\">\\n      <label>{{copyRight}}</label>\\n    </div>\\n  </div>\\n  <!--  ************************************************** -->\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n\\n<style>\\n  @media screen {\\n    .donotprintthis1 {\\n      display: none;\\n    }\\n\\n    .donotprintthis {\\n\\n      display: block;\\n\\n    }\\n  }\\n\\n  @media print {\\n    h5 {\\n      text-align: center;\\n    }\\n\\n    .donotprintthis1 {\\n\\n      display: block;\\n\\n    }\\n\\n    .donotprintthis {\\n\\n      display: none;\\n\\n    }\\n  }\\n</style>\\n\\n\\n\\n\\n<div class=\\\"reportHead\\\">\\n  <div class=\\\"reportName\\\">\\n    <h5>Projects in Backlog</h5>\\n  </div>\\n  <div class=\\\"reportActions\\\">\\n\\n    <div class=\\\"searchField\\\" *ngIf=\\\"!disableSearch\\\">\\n      <div class=\\\"item item-1\\\">\\n\\n        <mat-form-field>\\n          <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n          <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\"\\n            [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n        </mat-form-field>\\n      </div>\\n    </div>\\n    <div class=\\\"printBtn\\\" *ngIf=\\\"!isDisable\\\">\\n      <div class=\\\"item item-5\\\">\\n        <button class=\\\"darkbtnbg btn btn-info\\\" printTitle=\\\"{{companyName}}\\\" matTooltip=\\\"Print report\\\"\\n          printSectionId=\\\"printNoActions\\\" [useExistingCss]=\\\"true\\\" ngxPrint>Print</button>\\n\\n\\n      </div>\\n    </div>\\n    <div class=\\\"excelBtn\\\" *ngIf=\\\"!isDisable\\\">\\n      <div class=\\\"item item-5\\\">\\n        <button class=\\\"darkbtnbg btn btn-info\\\" [disabled]=\\\"isDisable\\\" matTooltip=\\\"Export as excel\\\"\\n          (click)=\\\"exportAsXLSX()\\\">\\n\\n          Excel\\n        </button>\\n      </div>\\n\\n\\n    </div>\\n\\n  </div>\\n</div>\\n\\n\\n\\n<!-- ---------------------------Printing the report------------------------- -->\\n<div id=\\\"printNoActions\\\">\\n\\n  <div class=\\\"donotprintthis1\\\">\\n    <div style=\\\"text-align:center;margin-top: 15px;\\\">\\n      <h6>\\n        <span> Company - </span> {{companyName}} <br>\\n        <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\n        <span>Report Type : Projects in Backlog</span>\\n\\n      </h6>\\n\\n    </div>\\n  </div>\\n\\n  <!-- <h5 class=\\\"donotprintthis1\\\"style=\\\"\\n      margin-block-end: 30px;\\n      \\\">Report Type : Projects in Backlog</h5> -->\\n  <div class=\\\"tableDiv\\\">\\n    <table id=\\\"dtBasicExample\\\">\\n      <thead>\\n        <tr>\\n          <!--<th  class=\\\"pointer\\\"> Company </th>-->\\n          <th>No.</th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectName')\\\"> Project\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th cName class=\\\"pointer\\\" (click)=\\\"sort('ProjectDescription')\\\"> Description\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectStatusName')\\\"> Status\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n          <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectOwner')\\\"> Project Owner\\n            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n          </th>\\n\\n        </tr>\\n      </thead>\\n      <tbody>\\n        <!---->\\n        <tr\\n          *ngFor=\\\"let element of NoActionProjectData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n          <!--<td > {{element.CompanyName}}</td>-->\\n          <td>{{i+1}}</td>\\n          <td>{{element.TeamName}}</td>\\n          <td> {{element.ProjectName}}</td>\\n          <td> {{element.ProjectDescription}}</td>\\n          <td> {{element.ProjectStatusName}}</td>\\n          <td>{{element.ProjectOwner}}</td>\\n        </tr>\\n      </tbody>\\n\\n    </table><br>\\n\\n    <!-- <mat-paginator [pageSizeOptions]=\\\"[5, 10, 20]\\\" showFirstLastButtons></mat-paginator> -->\\n    <div class=\\\"warningMsg\\\"\\n      *ngIf=\\\"(NoActionProjectData === null||NoActionProjectData===undefined || NoActionProjectData.length === 0)\\\">\\n\\n      <span>No data available</span>\\n\\n\\n    </div>\\n  </div>\\n  <div class=\\\"donotprintthis1\\\" style=\\\" position: fixed; bottom: 0;\\n      font-size: 13px;\\n      margin-left: 35%;\\\">\\n    <label>{{copyRight}}</label>\\n  </div>\\n</div>\\n\\n\\n<div class=\\\"pageContainer\\\" *ngIf=\\\"processPaging &&NoActionProjectData.length>0\\\">\\n  <div class=\\\"rowsSelection\\\">\\n    <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n      <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n        <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n          {{row}}\\n        </mat-option>\\n      </mat-select>\\n    </mat-form-field>\\n  </div>\\n  <div class=\\\"pageSelection\\\">\\n    <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n  </div>\\n</div>\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n<div class=\\\"text-center\\\">\\n    <h5 class=\\\"text-underline\\\">Quarters</h5>\\n</div>\\n<div id=\\\"wrapper\\\">\\n    <div id=\\\"tableActions\\\">\\n        <div class=\\\"field\\\">\\n            <mat-form-field>\\n                <mat-label>Select Starting Month <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-label>\\n                <mat-select\\n                    [disabled]=\\\"isScoreCardsExist ||(employeeDetails && (employeeDetails.IsEmployeeLoginLevel=='Team' || employeeDetails.IsEmployeeLoginLevel=='Department'))\\\"\\n                    (selectionChange)=\\\"monthChange($event.value)\\\" [(ngModel)]=\\\"selectedMonthId\\\">\\n                    <mat-option *ngFor=\\\"let month of months;let i=index;\\\" [value]=\\\"month.MonthId\\\">\\n                        {{month.MonthName}}\\n                    </mat-option>\\n                </mat-select>\\n            </mat-form-field>\\n        </div>\\n        <div class=\\\"field\\\">\\n            <mat-form-field>\\n                <mat-label>Select Week Day</mat-label>\\n                <mat-select\\n                    [disabled]=\\\"isScoreCardsExist ||(employeeDetails && (employeeDetails.IsEmployeeLoginLevel=='Team' || employeeDetails.IsEmployeeLoginLevel=='Department'))\\\"\\n                    (selectionChange)=\\\"weekDayChange($event.value)\\\" [(ngModel)]=\\\"selectedWeekDayId\\\">\\n                    <mat-option *ngFor=\\\"let weekDay of quarterWeekDays;let i=index;\\\" [value]=\\\"weekDay.WeekDayId\\\">\\n                        {{weekDay.WeekDay}}\\n                    </mat-option>\\n                </mat-select>\\n            </mat-form-field>\\n        </div>\\n        <div class=\\\"field\\\">\\n            <mat-form-field>\\n                <mat-label>Select Week Date</mat-label>\\n                <mat-select\\n                    [disabled]=\\\"isScoreCardsExist ||(employeeDetails && (employeeDetails.IsEmployeeLoginLevel=='Team' || employeeDetails.IsEmployeeLoginLevel=='Department'))\\\"\\n                    (selectionChange)=\\\"weekDateChange($event.value)\\\" [(ngModel)]=\\\"selectedWeekDate\\\">\\n                    <mat-option *ngFor=\\\"let week of quarterWeekStartDate;let i=index;\\\" [value]=\\\"week\\\">\\n                        {{week}}\\n                    </mat-option>\\n                </mat-select>\\n            </mat-form-field>\\n        </div>\\n        <div class=\\\"field\\\">\\n            <button class=\\\"darkbtnbg btn btn-info\\\" style='margin-top: 10px;'\\n                [disabled]=\\\"!MenuPermissions[menuName][menuID]['C'] || isScoreCardsExist ||(employeeDetails && (employeeDetails.IsEmployeeLoginLevel=='Team' || employeeDetails.IsEmployeeLoginLevel=='Department'))\\\"\\n                (click)='saveQuarters()' matTooltip=\\\"Save Quarter\\\">Save\\n            </button>\\n        </div>\\n        <div class=\\\"field warningMsg\\\" *ngIf=\\\"errorMsg\\\" style=\\\"padding-top: 10px;\\\">\\n            <span>{{errorMsg}}</span>\\n        </div>\\n    </div>\\n</div>\\n<!-- <div class=\\\"row col-sm-12\\\">\\n    <span class=\\\"alert alert-info alert-info-sm\\\">Please select starting month to generate Quarters</span>\\n</div> -->\\n<div class=\\\"row col-sm-12\\\">\\n    <ng-container *ngFor=\\\"let quarter of quarterList\\\">\\n        <div class=\\\"col-sm-6 m-b-10\\\">\\n            <div class=\\\"card text-center\\\">\\n                <div class=\\\"card-header\\\">\\n                    <strong>{{quarter.QuarterName}}</strong>\\n                </div>\\n                <div class=\\\"card-body text-center\\\">\\n                    <div class=\\\"row col-sm-12\\\">\\n                        <ng-container *ngFor=\\\"let month of quarter.QuarterMonths\\\">\\n                            <div class=\\\"col-sm-4\\\" style=\\\"border-right: 1px solid;\\\">\\n                                {{month.MonthName}}\\n                            </div>\\n                        </ng-container>\\n                    </div>\\n                </div>\\n            </div>\\n        </div>\\n    </ng-container>\\n</div>\\n\"","module.exports = \"<style>\\n\\n        @media screen\\n        {\\n            .donotprintthis1\\n            {\\n                display: none;\\n            }\\n            \\n            .donotprintthis {\\n        \\n        display: block;\\n        \\n        }\\n        }\\n        \\n          @media print {\\n            h5{\\n              text-align: center;\\n            }\\n            .donotprintthis1 {\\n        \\n              display: block;\\n        \\n            }\\n        \\n            .donotprintthis {\\n        \\n        display: none;\\n        \\n        }\\n          }\\n        \\n          @media print {\\n  @page { margin: 0; }\\n  body { margin: 1.6cm; }\\n}\\n     \\n@page \\n    {\\n        size: auto;   /* auto is the initial value */\\n        margin: 0mm;  /* this affects the margin in the printer settings */\\n    }\\n\\n        </style>\\n    \\n    \\n\\n    \\n<h5 style=\\\"margin-top: -30px;\\\">Activity Frustrations</h5>\\n\\n<div class=\\\"container\\\" style=\\\"margin-top: -10px\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\n        <div class=\\\"col-lg-8\\\">\\n          <div class=\\\"item item-5 alignLeft\\\" fxFlex=\\\"12%\\\">\\n              <!-- <h4>All processes - No frustration</h4> -->\\n          </div>\\n        </div>\\n          <div class=\\\"item item-1\\\" fxFlex=\\\"51%\\\" fxFlexOrder=\\\"1\\\">\\n      \\n          </div>\\n      \\n          <div class=\\\"col-lg-3\\\"></div>\\n          <div class=\\\"item item-5\\\" fxFlex=\\\"10%\\\" fxFlexOrder=\\\"3\\\" *ngIf=\\\"!isDisable\\\">\\n              <button  mat-raised-button color=\\\"primary\\\" matTooltip=\\\"Print report\\\" style=\\\"margin-top:10px;\\\"  printSectionId=\\\"printNoActions\\\" [useExistingCss]=\\\"true\\\" ngxPrint><i class='fa fa-print'></i></button>&nbsp;&nbsp;\\n           \\n        \\n          </div>\\n          \\n          <div class=\\\"item item-1\\\" fxFlex=\\\"25%\\\" fxFlexOrder=\\\"2\\\" *ngIf=\\\"!disableSearch\\\">\\n           \\n              <mat-form-field style=\\\"width: 180px\\\">\\n                  <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n                  <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\" [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n                </mat-form-field>\\n          </div>\\n          <div class=\\\"item item-5\\\" fxFlex=\\\"11%\\\" fxFlexOrder=\\\"3\\\">\\n           \\n          </div>\\n       \\n        </div>\\n\\n<div id=\\\"printNoActions\\\">\\n\\n    <div class=\\\"donotprintthis1\\\"><div style=\\\"text-align:center;margin-top: 15px; margin-block-end: 30px\\\">\\n        <h6>\\n         <span> Company - </span> {{loginCompanyName}} <br>\\n          <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\n          <span>Report Type : Activity Frustrations</span>\\n         \\n        </h6>\\n        \\n      </div>\\n      </div>\\n      \\n      <table id=\\\"dtBasicExample\\\" style=\\\"margin-top: 10px;\\\"  class=\\\"table table-responsive\\\" class=\\\"fixed\\\">\\n        <thead>\\n          <tr>\\n              <!--<th  class=\\\"pointer\\\"> Company </th>-->\\n              \\n            <th class=\\\"pointer\\\" (click)=\\\"sort('ProcessName')\\\"> Process\\n                <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n                <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n            <th cName class=\\\"pointer\\\" (click)=\\\"sort('ActivityName')\\\">  Activity\\n                <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n                <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('FrustrationCount')\\\"> Frustration Count\\n                <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n                <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n          \\n          </tr>\\n        </thead>\\n        <tbody>\\n          <!---->\\n          <tr *ngFor=\\\"let element of pointersData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n              <!--<td > {{element.CompanyName}}</td>-->\\n          \\n              <td> {{element.ProcessName}}</td>   \\n               <td> {{element.ActivityName}}</td>\\n            <td> {{element.FrustrationCount}}</td>\\n\\n          </tr>\\n        </tbody>\\n\\n      </table><br>\\n    \\n      <!-- <mat-paginator [pageSizeOptions]=\\\"[5, 10, 20]\\\" showFirstLastButtons></mat-paginator> -->\\n      <div class=\\\"warningMsg\\\" *ngIf=\\\"(pointersData === null||pointersData===undefined || pointersData.length === 0)\\\">\\n       \\n          <span >No data available</span>\\n     \\n  \\n      </div> \\n</div>\\n      <div class=\\\"container row\\\" style=\\\"float:right\\\"  *ngIf=\\\"processPaging && pointersData.length>0\\\">\\n          <div class=\\\"col-lg-7\\\"></div>\\n          <div class=\\\"col-lg-1\\\">\\n            <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n              <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n                  <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n                    {{row}}\\n                  </mat-option>\\n                </mat-select>\\n              </mat-form-field>\\n          </div>\\n        \\n          <div class=\\\"col-lg-4\\\">\\n             \\n            <!-- style=\\\"margin-top: -50px\\\" -->\\n            <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n          </div>\\n          </div>\\n\\n\\n\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<span (click)=\\\"close()\\\" matTooltip=\\\"Close\\\" class=\\\"close closereport\\\">&times;</span>\\r\\n<h1 mat-dialog-title></h1>\\r\\n<div mat-dialog-content>\\r\\n  <div class=\\\"tableDiv\\\">\\r\\n    <table>\\r\\n      <thead>\\r\\n        <tr>\\r\\n          <th>Team</th>\\r\\n          <th>Type</th>\\r\\n          <th>Frustration</th>\\r\\n          <th>Process</th>\\r\\n          <th>Severity</th>\\r\\n          <th>Status</th>\\r\\n        </tr>\\r\\n      </thead>\\r\\n      <tbody>\\r\\n        <tr *ngFor=\\\"let d of data\\\">\\r\\n          <td>{{d.TeamName}}</td>\\r\\n          <td>{{d.FrustrationsTypeName}}</td>\\r\\n          <td>{{d.Subject}}</td>\\r\\n          <td>{{d.ProcessName}}</td>\\r\\n          <td>{{d.SeverityName}}</td>\\r\\n          <td>{{d.StatusName}}</td>\\r\\n        </tr>\\r\\n      </tbody>\\r\\n    </table>\\r\\n  </div>\\r\\n</div>\\r\\n\"","module.exports = \"<script src=\\\"https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js\\\"></script>\\n<script src=\\\"https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js\\\"></script>\\n<script src=\\\"https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js\\\"></script>\\n<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n\\n<style>\\n  .box {\\n    display: flex;\\n    flex-wrap: wrap;\\n    text-align: center;\\n    overflow-wrap: break-word;\\n  }\\n\\n  .box>* {\\n    width: auto;\\n    color: white;\\n    background-color: black;\\n    border: 1px solid;\\n\\n  }\\n\\n  @media screen {\\n    .donotprintthis1 {\\n      display: none;\\n    }\\n\\n    .donotprintthis {\\n\\n      display: block;\\n\\n    }\\n  }\\n\\n  @media print {\\n\\n    div::-webkit-scrollbar {\\n      display: none;\\n    }\\n\\n    h5 {\\n      text-align: center;\\n    }\\n\\n    .donotprintthis1 {\\n\\n      display: block;\\n\\n    }\\n\\n    .donotprintthis {\\n\\n      display: none;\\n\\n    }\\n\\n    #totalTable {\\n      display: none;\\n    }\\n\\n    #chartcategory {\\n      display: flex;\\n    }\\n  }\\n</style>\\n\\n<div id=\\\"printCategory\\\">\\n  <div class=\\\"donotprintthis\\\">\\n    <div class=\\\"reportHead\\\">\\n      <div class=\\\"reportName\\\">\\n        <h5>Frustrations Report by Type</h5>\\n      </div>\\n      <div class=\\\"reportActions\\\" *ngIf='dashboardCat'>\\n\\n        <div class=\\\"selectTeam\\\"\\n          *ngIf=\\\" dashboard && (EmployeeID=='0' || employeeDetails.IsEmployeeLoginLevel=='Company') \\\">\\n          <mat-form-field>\\n            <mat-label> Select Type <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\n            <mat-select (selectionChange)=\\\"reportTypeChange($event.value)\\\" [(ngModel)]=\\\"selectedReportType\\\">\\n              <mat-option *ngFor=\\\"let scoreCardType of scoreCardTypes;\\\" [value]=\\\"scoreCardType\\\">\\n                {{scoreCardType}}\\n              </mat-option>\\n            </mat-select>\\n          </mat-form-field>\\n        </div>\\n\\n        <div class=\\\"selectTeam\\\"\\n          *ngIf=\\\" dashboard &&!toggleTeam &&(EmployeeID=='0' || employeeDetails.IsEmployeeLoginLevel=='Company')\\\">\\n          <mat-form-field>\\n            <mat-label> Select Department <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\n            <mat-select (selectionChange)=\\\"departmentChange($event.value)\\\" [(ngModel)]=\\\"selectedDepartmentId\\\">\\n              <mat-option *ngFor=\\\"let dept of departmentList;\\\" [value]=\\\"dept.DepartmentID\\\">\\n                {{dept.DepartmentName}}\\n              </mat-option>\\n            </mat-select>\\n          </mat-form-field>\\n        </div>\\n        <div class=\\\"selectTeam\\\" *ngIf=\\\"toggleTeam && dashboard  \\\">\\n          <mat-form-field>\\n            <mat-label> Select Team <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\n            <mat-select (selectionChange)=\\\"teamChange($event)\\\" [(ngModel)]=\\\"TeamID\\\">\\n              <mat-option *ngFor=\\\"let team of teamData;\\\" [value]=\\\"team.TeamID\\\">\\n                {{team.TeamName}}\\n              </mat-option>\\n            </mat-select>\\n          </mat-form-field>\\n        </div>\\n        <div class=\\\"printBtn\\\" *ngIf=\\\"isDisable\\\">\\n          <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Print report\\\" printSectionId=\\\"printCategory\\\"\\n            printTitle=\\\"{{companyName}}\\\" [useExistingCss]=\\\"true\\\" ngxPrint>Print</button>\\n          <!-- <button  mat-raised-button color=\\\"primary\\\"   matTooltip=\\\"Export As Excel\\\" style=\\\"margin-top:10px;cursor: pointer;\\\" (click)=\\\"exportAsXLSX()\\\"> Excel</button>&nbsp;&nbsp; -->\\n\\n        </div>\\n        <div class=\\\"excelBtn\\\" *ngIf=\\\"isDisable\\\">\\n          <div class=\\\"item item-5\\\">\\n            <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">\\n\\n              Excel\\n            </button>\\n          </div>\\n\\n        </div>\\n      </div>\\n    </div>\\n\\n  </div>\\n\\n  <div class=\\\"donotprintthis1\\\">\\n    <div style=\\\"text-align:center;margin-top: 15px; margin-block-end: 30px\\\">\\n      <h6>\\n        <span> Company - </span> {{companyName}} <br>\\n        <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\n        <span *ngIf=\\\"!selectedReportType || selectedReportType == 'Team'\\\">Team: {{TeamName ? TeamName : 'Aggregate\\n          Report'}}</span>\\n        <span *ngIf=\\\"selectedReportType == 'Department'\\\">Department: {{departmentName ? departmentName : 'Aggregate\\n          Report'}}</span><br>\\n        <span>Report Type : Frustrations Report by Type</span>\\n\\n      </h6>\\n\\n    </div>\\n  </div>\\n  <!-- <h5 class=\\\"donotprintthis1\\\"style=\\\"\\n      margin-block-end: 30px;\\n      \\\">Report Type : Frustrations Report by Type</h5> -->\\n\\n\\n\\n  <!-- ---------------------------Printing the report------------------------- -->\\n  <!-- <div id=\\\"printCategory\\\"> -->\\n\\n  <div class=\\\"reportTable\\\" *ngIf='dashboard && !warningMsg'>\\n    <!-- <div class=\\\"col-sm-6\\\" id=\\\"chartcategory\\\" style=\\\"height:350px;\\\"></div> -->\\n\\n    <div class=\\\"col-sm-12 flex-container\\\" id=\\\"totalTable\\\" style=\\\"overflow-x: auto; width: 60em; white-space: nowrap;\\\">\\n\\n      <br>\\n      <table class=\\\"table\\\">\\n        <tr style=\\\"background-color: #3775b5; color: white\\\">\\n          <td style=\\\"text-align: center;\\\">Total <br> {{totalCount}}</td>\\n          <td *ngFor='let d of frust' style=\\\"cursor: pointer;text-align: center;\\\">\\n            <span (click)=\\\"getData(d.data)\\\"> {{d.label}} <br> {{d.value}}</span>\\n          </td>\\n        </tr>\\n      </table>\\n    </div>\\n    <div class=\\\"donotprintthis1 col-sm-12 flex-container \\\" id=\\\"totalTable1\\\"\\n      style=\\\" width: 110em; white-space: nowrap; word-break: break-all;\\\">\\n      <div>\\n        <br>\\n        <table class=\\\"table\\\">\\n          <tr style=\\\"background-color: #3775b5; color: white\\\">\\n            <td style=\\\"text-align: center;\\\">Total <br> {{totalCount}}</td>\\n            <td *ngFor='let d of frust' style=\\\"cursor: pointer;text-align: center;\\\">\\n              <span (click)=\\\"getData(d.data)\\\"> {{d.label}} <br> {{d.value}}</span>\\n            </td>\\n          </tr>\\n        </table>\\n      </div>\\n\\n    </div>\\n    <div class=\\\"col-lg-12 noPagebreak\\\">\\n      <div class=\\\"col-sm-12\\\" id=\\\"chartcategory\\\"></div>\\n    </div>\\n    <!-- <div class=\\\"col-sm-12\\\" id=\\\"chartcategory\\\" style=\\\"height:350px;overflow-x: scroll; overflow-y: hidden; width: 60em; white-space: nowrap;\\\"></div> -->\\n  </div><br>\\n  <!-- <div class=\\\"col-sm-6\\\" id=\\\"chartcategory\\\" style=\\\"height:350px;\\\"></div> -->\\n  <br>\\n  <div class=\\\"donotprintthis\\\">\\n    <div class=\\\"searchField\\\" *ngIf='dashboardCat'>\\n\\n      <div class=\\\"item item-1\\\" *ngIf=\\\"disableSearch\\\">\\n        <mat-form-field>\\n          <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n          <input matInput id=\\\"newGroup\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\" [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\"\\n            autocomplete=\\\"off\\\">\\n        </mat-form-field>\\n      </div>\\n\\n    </div>\\n  </div>\\n  <div *ngIf='dashboardCat'>\\n    <div class=\\\"tableDiv\\\">\\n      <table>\\n        <thead>\\n          <tr>\\n            <th>No.</th>\\n            <th class=\\\"pointer\\\" *ngIf=\\\"selectedReportType === 'Department'\\\" (click)=\\\"sort('DepartmentName')\\\">\\n              Department\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('ProcessName')\\\"> Process\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('ActivityName')\\\"> Activity\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('FrustrationsTypeName')\\\"> Type\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('Subject')\\\"> Frustration\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('Description')\\\"> Description\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('StatusName')\\\"> Status\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('SeverityName')\\\"> Severity\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectName')\\\"> Project\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n\\n          </tr>\\n        </thead>\\n        <tbody>\\n\\n          <tr\\n            *ngFor='let metric of metricList | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction};let i=index;'>\\n            <td>{{i+1}}</td>\\n            <td *ngIf=\\\"selectedReportType === 'Department'\\\">\\n              {{metric.DepartmentName}}\\n            </td>\\n            <td>\\n              {{metric.TeamName}}<br>\\n            </td>\\n            <td>\\n              {{metric.ProcessName}}<br>\\n            </td>\\n            <td>\\n              {{metric.ActivityName}}<br>\\n            </td>\\n\\n            <td>\\n              {{metric.FrustrationsTypeName}}<br>\\n            </td>\\n            <td>\\n\\n              {{metric.Subject}}\\n\\n            </td>\\n            <td>\\n              {{metric.Description}}\\n            </td>\\n            <td>\\n              {{metric.StatusName}}\\n            </td>\\n            <td>\\n              {{metric.SeverityName}}\\n            </td>\\n            <td>\\n              {{metric.ProjectName}}\\n            </td>\\n          </tr>\\n        </tbody>\\n      </table>\\n    </div>\\n    <div class=\\\"donotprintthis\\\" style=\\\"margin-top: 10px;\\\">\\n      <div class=\\\"pageContainer\\\" *ngIf=\\\"activityPaging && metricList.length>0\\\">\\n        <div class=\\\"rowsSelection\\\">\\n          <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n            <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n              <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n                {{row}}\\n              </mat-option>\\n            </mat-select>\\n          </mat-form-field>\\n        </div>\\n        <div class=\\\"pageSelection\\\">\\n          <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n        </div>\\n      </div>\\n\\n    </div>\\n  </div>\\n  <div class=\\\"donotprintthis1\\\" style=\\\" position: fixed; bottom: 0;\\n  font-size: 13px;\\n  margin-left: 35%;\\\">\\n    <label>&copy; {{copyRight}} </label>\\n  </div>\\n</div>\\n\\n<!-- <div class=\\\"row\\\">\\n      <div class=\\\"col-lg-9\\\"></div>\\n\\n      <div class=\\\"container row\\\" style=\\\"float:right;margin-left: auto\\\" *ngIf=\\\"activityPaging && metricList.length>0\\\">\\n        <div class=\\\"col-lg-6\\\"></div>\\n        <div class=\\\"col-lg-1\\\">\\n          <select class=\\\"form-control\\\" [(ngModel)]=\\\"rowsOnPage\\\"\\n            style=\\\"border-left:0px;border-right:0px;border-top:0px;\\\">\\n            <option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n              {{row}}\\n            </option>\\n          </select>\\n        </div>\\n\\n        <div class=\\\"col-lg-5\\\" style=\\\"float: right;\\\">\\n\\n          <!-- style=\\\"margin-top: -50px\\\" -->\\n<!--  <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n        </div>\\n      </div>\\n    </div> -->\\n\\n<div class=\\\"warningMsg\\\" *ngIf=\\\"(metricList === null||metricList===undefined || metricList.length === 0)\\\">\\n\\n  <span style=\\\"color:red;\\\">{{wrng}}</span>\\n\\n</div>\\n<div style=\\\"text-align:center;margin-top: 10px;\\\"><span style=\\\"color:red;\\\"> {{warningMsg}} </span></div>\\n\\n<br>\\n<div class=\\\"col-lg-12 noPagebreak\\\" *ngIf='!dashboard && !warningMsg;else temp;'>\\n  <div class=\\\"col-sm-12\\\" id=\\\"chartcategory\\\" style=\\\"height:350px;\\\"></div>\\n</div>\\n<ng-template #temp>\\n  <div class=\\\"col-sm-12\\\" id=\\\"chartcategory\\\"></div>\\n</ng-template>\\n<!-- ---------------------------------- -->\\n<!-- <div class=\\\"row\\\" *ngIf='dashboard && !warningMsg' style=\\\"margin-left: 10px;\\\"> -->\\n<!-- <div class=\\\"col-sm-6\\\" id=\\\"chartcategory\\\" style=\\\"height:350px;\\\"></div> -->\\n<!-- <div class=\\\"col-sm-6\\\" style=\\\"overflow-x: auto;\\\">\\n      <br>\\n      <table class=\\\"table\\\">\\n        <tr style=\\\"background-color:black; color: white\\\">\\n          <td>Total <br> {{totalCount}}</td>\\n          <td *ngFor='let d of frust' style=\\\"cursor: pointer\\\">\\n            <span (click)=\\\"getData(d.data)\\\"> {{d.label}} <br> {{d.value}}</span>\\n          </td>\\n        </tr>\\n      </table>\\n    </div>\\n    <div class=\\\"col-sm-6\\\" id=\\\"chartcategory\\\" style=\\\"height:350px;\\\"></div>\\n  </div> -->\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<span (click)=\\\"close()\\\" matTooltip=\\\"Close\\\" class=\\\"close closereport\\\">&times;</span>\\r\\n<h1 mat-dialog-title></h1>\\r\\n<div mat-dialog-content>\\r\\n  <div class=\\\"tableDiv\\\">\\r\\n    <table>\\r\\n      <thead>\\r\\n        <tr>\\r\\n          <th>Team</th>\\r\\n          <th>Process</th>\\r\\n          <th>Activity</th>\\r\\n\\r\\n          <th>Frustration</th>\\r\\n          <th>Status</th>\\r\\n          <th>Type</th>\\r\\n          <th>Severity</th>\\r\\n          <th>Description</th>\\r\\n          <th>Date Opened</th>\\r\\n\\r\\n        </tr>\\r\\n      </thead>\\r\\n      <tbody>\\r\\n        <tr *ngFor=\\\"let d of data\\\">\\r\\n          <td>{{d.TeamName}}</td>\\r\\n          <td>{{d.ProcessName}}</td>\\r\\n          <td>{{d.ActivityName}}</td>\\r\\n\\r\\n          <td>{{d.Subject}}</td>\\r\\n          <td>{{d.StatusName}}</td>\\r\\n          <td>{{d.FrustrationsTypeName}}</td>\\r\\n          <td>{{d.SeverityName}}</td>\\r\\n          <td>{{d.Description}}</td>\\r\\n          <td>{{d.CreatedDate | date:'MM/dd/yyyy'}}</td>\\r\\n\\r\\n        </tr>\\r\\n      </tbody>\\r\\n    </table>\\r\\n  </div>\\r\\n</div>\\r\\n\"","module.exports = \"<script src=\\\"https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js\\\"></script>\\n<script src=\\\"https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js\\\"></script>\\n<script src=\\\"https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js\\\"></script>\\n\\n<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n\\n<style>\\n  #bg-text {\\n    color: lightgrey;\\n    font-size: 60px;\\n    transform: rotate(300deg);\\n    -webkit-transform: rotate(300deg);\\n  }\\n\\n  #content {\\n    position: absolute;\\n    z-index: 1;\\n  }\\n\\n  @media screen {\\n    .donotprintthis1 {\\n      display: none;\\n    }\\n\\n    .donotprintthis {\\n\\n      display: block;\\n\\n    }\\n  }\\n\\n  @media print {\\n    h5 {\\n      text-align: center;\\n    }\\n\\n    .donotprintthis1 {\\n\\n      display: block;\\n\\n    }\\n\\n    .donotprintthis {\\n\\n      display: none;\\n\\n    }\\n  }\\n</style>\\n\\n\\n\\n<div id=\\\"printSeverity\\\">\\n\\n  <div class=\\\"donotprintthis\\\">\\n    <div class=\\\"reportHead\\\">\\n      <div class=\\\"reportName\\\">\\n        <h5>Frustrations Severity Report</h5>\\n      </div>\\n      <div class=\\\"reportActions\\\" *ngIf='dashboardSev'>\\n        <div class=\\\"selectTeam\\\">\\n          <div class=\\\"item item-1\\\">\\n            <mat-form-field>\\n              <mat-label>* Select Team</mat-label>\\n\\n              <mat-select (selectionChange)=\\\"GetSelectedReport($event)\\\" [(ngModel)]=\\\"TeamID\\\">\\n                <mat-option *ngFor=\\\"let team of teamData;let i=index;\\\" [value]=\\\"team.TeamID\\\">\\n\\n                  <span> {{team.TeamName}} </span>\\n\\n                </mat-option>\\n              </mat-select>\\n            </mat-form-field>\\n          </div>\\n        </div>\\n        <div class=\\\"printBtn\\\" *ngIf=\\\"isDisable\\\">\\n          <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Print report\\\" printSectionId=\\\"printSeverity\\\"\\n            printTitle=\\\"{{companyName}}\\\" [useExistingCss]=\\\"true\\\" ngxPrint>Print</button>\\n\\n        </div>\\n        <div class=\\\"excelBtn\\\" *ngIf=\\\"isDisable\\\">\\n          <div class=\\\"item item-5\\\">\\n            <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">\\n\\n              Excel\\n            </button>\\n          </div>\\n\\n        </div>\\n\\n      </div>\\n    </div>\\n  </div>\\n\\n\\n  <div class=\\\"donotprintthis1\\\">\\n    <div style=\\\"text-align:center;margin-top: 15px; margin-block-end: 30px\\\">\\n      <h6>\\n        <span> Company - </span> {{companyName}} <br>\\n        <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\n        <span >Team: {{TeamName ? TeamName : 'Aggregate\\n          Report'}}</span><br>\\n        <span>Report Type : Frustrations Severity Report</span>\\n\\n      </h6>\\n\\n    </div>\\n  </div>\\n\\n\\n  <!-- ---------------------------Printing the report------------------------- -->\\n  <!-- <div id=\\\"printSeverity\\\"> -->\\n\\n  <div class=\\\"reportTable\\\" *ngIf='dashboardSeverity && !warningMsg'>\\n    <!-- <div class=\\\"col-sm-6\\\" id=\\\"chatSeverity\\\" style=\\\"height:350px;\\\" ></div> -->\\n    <div class=\\\"col-sm-12\\\" style=\\\"overflow-x: auto;\\\">\\n      <br>\\n      <table class=\\\"table\\\" *ngIf=\\\"dashboardSeverity\\\">\\n        <tr style=\\\"background-color:#3775b5; color: white\\\">\\n          <td style=\\\"text-align: center;\\\">Total <br> {{totalCount}}</td>\\n          <td *ngFor='let d of frust' style=\\\"cursor: pointer;text-align: center;\\\">\\n            <span (click)=\\\"getData(d.data)\\\"> {{d.label}} <br> {{d.value}}</span>\\n\\n          </td>\\n        </tr>\\n      </table>\\n    </div>\\n    <div class=\\\"col-sm-6\\\" id=\\\"chatSeverity\\\" style=\\\"height:350px;\\\"></div>\\n  </div>\\n\\n  <!-- <div class=\\\"col-sm-6\\\" id=\\\"chatSeverity\\\" style=\\\"height:350px;\\\"></div> -->\\n  <div class=\\\"donotprintthis\\\">\\n    <div class=\\\"searchField\\\" *ngIf='dashboardSev'>\\n\\n\\n      <div class=\\\"item item-1\\\" *ngIf=\\\"disableSearch\\\">\\n        <mat-form-field>\\n          <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n          <input matInput id=\\\"newGroup\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\" [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\"\\n            autocomplete=\\\"off\\\">\\n        </mat-form-field>\\n      </div>\\n\\n\\n\\n    </div>\\n  </div>\\n  <div *ngIf='dashboardSev'>\\n    <div class=\\\"tableDiv\\\">\\n      <table>\\n        <thead>\\n          <tr>\\n            <th> No.</th>\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('ProcessName')\\\"> Process\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('ActivityName')\\\"> Activity\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('FrustrationsTypeName')\\\"> Type\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('Subject')\\\"> Frustration\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('Description')\\\"> Description\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('StatusName')\\\"> Status\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('SeverityName')\\\"> Severity\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectName')\\\"> Project\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n          </tr>\\n        </thead>\\n        <tbody>\\n          <tr\\n            *ngFor='let metric of metricList | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction};let i=index;'>\\n            <td>{{i+1}}</td>\\n            <td>{{metric.TeamName}}</td>\\n            <td>\\n              {{metric.ProcessName}}<br>\\n            </td>\\n            <td>{{metric.ActivityName}}</td>\\n\\n            <td>\\n              {{metric.FrustrationsTypeName}}\\n            </td>\\n            <td>\\n\\n              {{metric.Subject}}\\n\\n            </td>\\n            <td>\\n              {{metric.Description}}\\n            </td>\\n\\n\\n\\n            <td>\\n              {{metric.StatusName}}\\n            </td>\\n            <td>\\n              {{metric.SeverityName}}\\n            </td>\\n            <td>\\n              {{metric.ProjectName}}\\n            </td>\\n          </tr>\\n        </tbody>\\n      </table>\\n\\n    </div>\\n    <div class=\\\"donotprintthis\\\" style=\\\"margin-top: 10px;\\\">\\n      <div class=\\\"pageContainer\\\" *ngIf=\\\"activityPaging && metricList.length>0\\\">\\n        <div class=\\\"rowsSelection\\\">\\n          <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n            <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n              <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n                {{row}}\\n              </mat-option>\\n            </mat-select>\\n          </mat-form-field>\\n        </div>\\n        <div class=\\\"pageSelection\\\">\\n          <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n        </div>\\n      </div>\\n\\n    </div>\\n  </div>\\n  <div class=\\\"donotprintthis1\\\" style=\\\" position: fixed; bottom: 0;\\n  font-size: 13px;\\n  margin-left: 35%;\\\">\\n    <label>{{copyRight}}</label>\\n  </div>\\n</div>\\n<!-- <div class=\\\"row\\\" >\\n        <div class=\\\"col-lg-9\\\"></div>\\n        <div class=\\\"container row\\\" style=\\\"float:right;margin-left: auto\\\" *ngIf=\\\"activityPaging && metricList.length>0\\\" >\\n            <div class=\\\"col-lg-6\\\"></div>\\n            <div class=\\\"col-lg-1\\\">\\n                <select class=\\\"form-control\\\" [(ngModel)]=\\\"rowsOnPage\\\" style=\\\"border-left:0px;border-right:0px;border-top:0px;\\\">\\n                    <option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n                      {{row}}\\n                    </option>\\n                  </select>\\n            </div>\\n          \\n            <div class=\\\"col-lg-5\\\" style=\\\"float: right;\\\">\\n               \\n              <!-- style=\\\"margin-top: -50px\\\" -->\\n<!--<pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n            </div>\\n          </div>\\n      </div> -->\\n\\n<div class=\\\"warningMsg\\\" *ngIf=\\\"(metricList === null||metricList===undefined || metricList.length === 0)\\\">\\n \\n    <span  style=\\\"color:red;\\\">{{wrng}}</span>\\n</div>\\n\\n<div style=\\\"text-align:center;margin-top: 10px;\\\"><span style=\\\"color:red;\\\"> {{warningMsg}} </span></div>\\n<br>\\n\\n<div class=\\\"row\\\" *ngIf='!dashboardSeverity && !warningMsg;else temp; ' style=\\\"margin-left: 10px;\\\">\\n\\n\\n  <div class=\\\"col-sm-8\\\" id=\\\"chatSeverity\\\" style=\\\"height:250px;\\\"></div>\\n</div>\\n<ng-template #temp>\\n  <div class=\\\"col-sm-8\\\" id=\\\"chatSeverity\\\"></div>\\n</ng-template>\\n<!-- -------------------------------------------------------------------------- -->\\n<!-- <div class=\\\"row\\\" *ngIf='dashboardSeverity && !warningMsg' style=\\\"margin-left: 10px;\\\">\\n\\n <div class=\\\"col-sm-6\\\"  style=\\\"overflow-x: auto;\\\">\\n     <br>\\n       <table class=\\\"table\\\" *ngIf=\\\"dashboardSeverity\\\">\\n           <tr style=\\\"background-color:black; color: white\\\">\\n               <td>Total <br> {{totalCount}}</td>\\n               <td *ngFor='let d of frust' style=\\\"cursor: pointer\\\" >\\n                  <span (click)=\\\"getData(d.data)\\\"> {{d.label}} <br> {{d.value}}</span>\\n\\n               </td>\\n           </tr>              \\n       </table>\\n   </div>\\n   <div class=\\\"col-sm-6\\\" id=\\\"chatSeverity\\\" style=\\\"height:350px;\\\" ></div>\\n</div> -->\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<span (click)=\\\"close()\\\" matTooltip=\\\"Close\\\" class=\\\"close closereport\\\">&times;</span>\\r\\n<h1 mat-dialog-title></h1>\\r\\n<div mat-dialog-content>\\r\\n  <div class=\\\"tableDiv\\\">\\r\\n    <table>\\r\\n      <thead>\\r\\n        <tr>\\r\\n          <th>Team</th>\\r\\n          <th>Process</th>\\r\\n          <th>Activity</th>\\r\\n\\r\\n          <th>Metric</th>\\r\\n\\r\\n        </tr>\\r\\n      </thead>\\r\\n      <tbody>\\r\\n        <tr *ngFor=\\\"let d of data\\\">\\r\\n          <td>{{d.TeamName}}</td>\\r\\n          <td>{{d.ProcessName}}</td>\\r\\n          <td>{{d.ActivityName}}</td>\\r\\n\\r\\n          <td>{{d.Description}}</td>\\r\\n\\r\\n        </tr>\\r\\n      </tbody>\\r\\n    </table>\\r\\n  </div>\\r\\n</div>\\r\\n\"","module.exports = \"<script src=\\\"https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js\\\"></script>\\n<script src=\\\"https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js\\\"></script>\\n<script src=\\\"https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js\\\"></script>\\n\\n<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n\\n<style>\\n  .box {\\n    display: flex;\\n    flex-wrap: wrap;\\n    text-align: center;\\n    overflow-wrap: break-word;\\n  }\\n\\n  .box>* {\\n    width: 140px;\\n    color: white;\\n    background-color: #3775b5;\\n    border: 1px solid;\\n\\n  }\\n\\n  @media screen {\\n    .donotprintthis1 {\\n      display: none;\\n    }\\n\\n    .donotprintthis {\\n\\n      display: block;\\n\\n    }\\n  }\\n\\n\\n\\n  @media print {\\n\\n    div::-webkit-scrollbar {\\n      display: none;\\n    }\\n\\n    h5 {\\n      text-align: center;\\n    }\\n\\n    .donotprintthis1 {\\n\\n      display: block;\\n\\n    }\\n\\n    .donotprintthis {\\n\\n      display: none;\\n\\n    }\\n\\n    #totalTable {\\n      display: none;\\n    }\\n  }\\n\\n  .c3-legend-item {\\n    fill: #9fabb1;\\n  }\\n</style>\\n<div id=\\\"printMetricProcess\\\">\\n  <div class=\\\"donotprintthis\\\">\\n    <div class=\\\"reportHead\\\">\\n      <div class=\\\"reportName\\\">\\n        <h5>Metrics by Process</h5>\\n      </div>\\n      <div class=\\\"reportActions\\\" *ngIf='dashboardMe'>\\n        <div class=\\\"selectTeam\\\"\\n          *ngIf=\\\"  dashboardMe &&( EmployeeID=='0' || employeeDetails.IsEmployeeLoginLevel=='Company')\\\">\\n          <mat-form-field>\\n            <mat-label> Select Type <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\n            <mat-select (selectionChange)=\\\"reportTypeChange($event.value)\\\" [(ngModel)]=\\\"selectedReportType\\\">\\n              <mat-option *ngFor=\\\"let scoreCardType of scoreCardTypes;\\\" [value]=\\\"scoreCardType\\\">\\n                {{scoreCardType}}\\n              </mat-option>\\n            </mat-select>\\n          </mat-form-field>\\n        </div>\\n\\n        <div class=\\\"selectTeam\\\"\\n          *ngIf=\\\" dashboardMe &&!toggleTeam &&(EmployeeID=='0' || employeeDetails.IsEmployeeLoginLevel=='Company')\\\">\\n          <mat-form-field>\\n            <mat-label> Select Department <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\n            <mat-select (selectionChange)=\\\"departmentChange($event.value)\\\" [(ngModel)]=\\\"selectedDepartmentId\\\">\\n              <mat-option *ngFor=\\\"let dept of departmentList;\\\" [value]=\\\"dept.DepartmentID\\\">\\n                {{dept.DepartmentName}}\\n              </mat-option>\\n            </mat-select>\\n          </mat-form-field>\\n        </div>\\n        <div class=\\\"selectTeam\\\" *ngIf=\\\"toggleTeam && dashboardMe \\\">\\n          <mat-form-field>\\n            <mat-label> Select Team <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\n            <mat-select (selectionChange)=\\\"teamChange($event)\\\" [(ngModel)]=\\\"TeamID\\\">\\n              <mat-option *ngFor=\\\"let team of teamData;\\\" [value]=\\\"team.TeamID\\\">\\n                {{team.TeamName}}\\n              </mat-option>\\n            </mat-select>\\n          </mat-form-field>\\n        </div>\\n        <div class=\\\"printBtn\\\" *ngIf=\\\"isDisable\\\">\\n          <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Print report\\\" printSectionId=\\\"printMetricProcess\\\"\\n            [useExistingCss]=\\\"true\\\" ngxPrint printTitle=\\\"{{companyName}}\\\">Print</button>\\n        </div>\\n        <div class=\\\"excelBtn\\\" *ngIf=\\\"isDisable\\\">\\n          <div class=\\\"item item-5\\\">\\n            <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">Excel</button>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <div class=\\\"donotprintthis1\\\">\\n    <div style=\\\"text-align:center;margin-top: 15px;\\\">\\n      <h6>\\n        <span> Company - {{companyName}} </span><br>\\n        <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\n        <span *ngIf=\\\"!selectedReportType || selectedReportType == 'Team'\\\">Team: {{TeamName ? TeamName : 'Aggregate\\n          Report'}}</span>\\n        <span *ngIf=\\\"selectedReportType == 'Department'\\\">Department: {{departmentName ? departmentName : 'Aggregate\\n          Report'}}</span><br>\\n        <br>\\n        <span>Report Type : Metrics by Process</span>\\n      </h6>\\n    </div>\\n  </div>\\n  <!-- ---------------------------Printing the report------------------------- -->\\n  <div class=\\\"reportTable\\\" *ngIf='dashboardMetric && !warningMsg'>\\n    <div class=\\\"col-sm-12\\\" id=\\\"totalTable\\\" style=\\\"overflow-x: auto; width: 60em; white-space: nowrap;\\\">\\n      <br>\\n      <table class=\\\"table\\\" *ngIf='dashboardMetric'>\\n        <tr style=\\\"background-color: #3775b5; color: white;\\\">\\n          <td style=\\\"text-align: center;\\\">Total <br> {{totalCount}}</td>\\n          <td *ngFor='let d of frust' style=\\\"cursor: pointer;text-align: center;\\\">\\n            <span (click)=\\\"getData(d.data)\\\"> {{d.label}} <br> {{d.value}}</span>\\n          </td>\\n        </tr>\\n      </table>\\n    </div>\\n    <div class=\\\"donotprintthis1\\\">\\n      <div class=\\\"col-sm-12\\\" style=\\\"overflow-x: auto; width: 60em; white-space: nowrap;\\\">\\n        <br>\\n        <div class=\\\"box\\\" id=\\\"totalTable1\\\">\\n          <div style=\\\"align-content: center;\\\"><strong>Total <br> {{totalCount}}</strong></div>\\n          <div *ngFor='let d of frust' style=\\\"cursor: pointer\\\">\\n            <span (click)=\\\"getData(d.data)\\\"> {{d.label}} <br> {{d.value}}</span>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n    <div class=\\\"col-lg-12 noPagebreak\\\">\\n      <div class=\\\"col-sm-12 mb_chart\\\" id=\\\"chartMetric\\\"></div>\\n    </div>\\n  </div><br>\\n  <br>\\n  <div class=\\\"donotprintthis\\\">\\n    <div class=\\\"searchField\\\" *ngIf='dashboardMe'>\\n      <div class=\\\"item item-1\\\" *ngIf=\\\"disableSearch\\\">\\n        <mat-form-field>\\n          <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n          <input matInput id=\\\"newGroup\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\" [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\"\\n            autocomplete=\\\"off\\\">\\n        </mat-form-field>\\n      </div>\\n    </div>\\n  </div>\\n  <div *ngIf='dashboardMe'>\\n    <div class=\\\"tableDiv\\\">\\n      <table>\\n        <thead>\\n          <tr>\\n            <th>No.</th>\\n            <th class=\\\"pointer\\\" *ngIf=\\\"selectedReportType === 'Department'\\\" (click)=\\\"sort('DepartmentName')\\\">\\n              Department\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('ProcessName')\\\"> Process\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('ActivityName')\\\"> Activity\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('GoalName')\\\"> Goal\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('Description')\\\"> Metric\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n          </tr>\\n        </thead>\\n        <tbody>\\n          <tr\\n            *ngFor='let metric of metricList | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i=index;'>\\n            <td>{{i+1}}</td>\\n            <td *ngIf=\\\"selectedReportType === 'Department'\\\">\\n              {{metric.DepartmentName}}\\n            </td>\\n            <td>\\n              {{metric.TeamName}}\\n            </td>\\n            <td>\\n              {{metric.ProcessName}}\\n            </td>\\n            <td>\\n\\n              {{metric.ActivityName}}\\n\\n            </td>\\n            <td>\\n              {{metric.GoalName}}\\n            </td>\\n            <td>\\n              {{metric.Description}}\\n            </td>\\n          </tr>\\n        </tbody>\\n      </table>\\n    </div>\\n    <div class=\\\"donotprintthis\\\" style=\\\"margin-top: 10px;\\\">\\n      <div class=\\\"pageContainer\\\" *ngIf=\\\"activityPaging && metricList.length>0\\\">\\n\\n        <div class=\\\"rowsSelection\\\">\\n          <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n            <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n              <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n                {{row}}\\n              </mat-option>\\n            </mat-select>\\n          </mat-form-field>\\n        </div>\\n\\n\\n        <div class=\\\"pageSelection\\\">\\n\\n          <!-- style=\\\"margin-top: -50px\\\" -->\\n          <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n        </div>\\n      </div>\\n\\n    </div>\\n  </div>\\n  <div class=\\\"donotprintthis1\\\" style=\\\" position: fixed; bottom: 0;\\n  font-size: 13px;\\n  margin-left: 35%;\\\">\\n    <label>{{copyRight}}</label>\\n  </div>\\n</div>\\n\\n\\n<div class=\\\"warningMsg\\\" *ngIf=\\\"(metricList === null||metricList===undefined || metricList.length === 0)\\\">\\n  <span style=\\\"color:red;\\\">{{wrng}}</span>\\n</div>\\n<div style=\\\"text-align:center;margin-top: 10px;\\\"><span style=\\\"color:red;\\\"> {{warningMsg}} </span></div>\\n<br>\\n<div class=\\\"col-lg-12 noPagebreak\\\" *ngIf='!dashboardMetric && !warningMsg;else temp;'>\\n  <div class=\\\"col-sm-12 mb_chart\\\" id=\\\"chartMetric\\\" style=\\\"height:350px;\\\"></div>\\n  <ng-template #temp>\\n    <div class=\\\"col-sm-12\\\" id=\\\"chartMetric\\\"></div>\\n  </ng-template>\\n</div>\\n<style>\\n  @media (max-width: 768px) {\\n    .mb_chart {\\n      overflow-x: hidden !important;\\n    }\\n  }\\n</style>\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<span (click)=\\\"close()\\\" matTooltip=\\\"Close\\\" class=\\\"close closereport\\\">&times;</span>\\r\\n<h1 mat-dialog-title></h1>\\r\\n<div mat-dialog-content>\\r\\n  <div class=\\\"tableDiv\\\">\\r\\n    <table>\\r\\n      <thead>\\r\\n        <tr>\\r\\n          <th>Team</th>\\r\\n          <th>Process</th>\\r\\n          <th>Activity</th>\\r\\n\\r\\n          <th>Frustration</th>\\r\\n          <th>Status</th>\\r\\n          <th>Type</th>\\r\\n          <th>Severity</th>\\r\\n          <th>Description</th>\\r\\n          <th>Date Opened</th>\\r\\n\\r\\n        </tr>\\r\\n      </thead>\\r\\n      <tbody>\\r\\n        <tr *ngFor=\\\"let d of data\\\">\\r\\n          <td>{{d.TeamName}}</td>\\r\\n          <td>{{d.ProcessName}}</td>\\r\\n          <td>{{d.ActivityName}}</td>\\r\\n\\r\\n          <td>{{d.Subject}}</td>\\r\\n          <td>{{d.StatusName}}</td>\\r\\n          <td>{{d.FrustrationsTypeName}}</td>\\r\\n          <td>{{d.SeverityName}}</td>\\r\\n          <td>{{d.Description}}</td>\\r\\n          <td>{{d.CreatedDate | date:'MM/dd/yyyy'}}</td>\\r\\n\\r\\n        </tr>\\r\\n      </tbody>\\r\\n    </table>\\r\\n  </div>\\r\\n</div>\\r\\n\"","module.exports = \"<script src=\\\"https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js\\\"></script>\\n<script src=\\\"https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js\\\"></script>\\n<script src=\\\"https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js\\\"></script>\\n<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n\\n<style>\\n  .box {\\n    display: flex;\\n    flex-wrap: wrap;\\n    text-align: center;\\n    overflow-wrap: break-word;\\n  }\\n\\n  .box>* {\\n    width: 140px;\\n    color: white;\\n    background-color: #3775b5;\\n    border: 1px solid;\\n\\n  }\\n\\n  @media screen {\\n\\n    #chartProcess2,\\n    .donotprintthis1 {\\n      display: none;\\n    }\\n\\n    .donotprintthis {\\n\\n      display: block;\\n\\n    }\\n  }\\n\\n  @media print {\\n    div::-webkit-scrollbar {\\n      display: none;\\n    }\\n\\n    /* div{\\n  page-break-inside: avoid;\\n} */\\n\\n\\n    h5 {\\n      text-align: center;\\n    }\\n\\n    .donotprintthis1 {\\n\\n      display: block;\\n\\n    }\\n\\n    .donotprintthis {\\n\\n      display: none;\\n\\n    }\\n\\n    #totalTable {\\n      display: none;\\n    }\\n\\n    #chartProcess2,\\n    #chartProcess {\\n\\n      /* margin-bottom: 150px; */\\n      display: flex;\\n\\n    }\\n\\n    /* .noPagebreak{\\n      page-break-inside: avoid;\\n    } */\\n  }\\n</style>\\n\\n<!--  Column2d-->\\n<div id=\\\"printFrustByPro\\\">\\n  <div class=\\\"donotprintthis\\\">\\n    <div class=\\\"reportHead\\\">\\n\\n      <div class=\\\"reportName\\\">\\n        <h5>Frustrations Report by Process</h5>\\n      </div>\\n\\n      <div class=\\\"reportActions\\\" *ngIf='dashboardPr'>\\n\\n        <div class=\\\"selectTeam\\\"\\n          *ngIf=\\\" dashboardProcess &&( EmployeeID=='0' ||  employeeDetails.IsEmployeeLoginLevel=='Company') \\\">\\n          <mat-form-field>\\n            <mat-label> Select Type <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\n            <mat-select (selectionChange)=\\\"reportTypeChange($event.value)\\\" [(ngModel)]=\\\"selectedReportType\\\">\\n              <mat-option *ngFor=\\\"let scoreCardType of scoreCardTypes;\\\" [value]=\\\"scoreCardType\\\">\\n                {{scoreCardType}}\\n              </mat-option>\\n            </mat-select>\\n          </mat-form-field>\\n        </div>\\n\\n        <div class=\\\"selectTeam\\\"\\n          *ngIf=\\\" dashboardProcess &&!toggleTeam &&(EmployeeID=='0' || employeeDetails.IsEmployeeLoginLevel=='Company') \\\">\\n          <mat-form-field>\\n            <mat-label> Select Department <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\n            <mat-select (selectionChange)=\\\"departmentChange($event.value)\\\" [(ngModel)]=\\\"selectedDepartmentId\\\">\\n              <mat-option *ngFor=\\\"let dept of departmentList;\\\" [value]=\\\"dept.DepartmentID\\\">\\n                {{dept.DepartmentName}}\\n              </mat-option>\\n            </mat-select>\\n          </mat-form-field>\\n        </div>\\n        <div class=\\\"selectTeam\\\" *ngIf=\\\"toggleTeam && dashboardProcess  \\\">\\n          <mat-form-field>\\n            <mat-label> Select Team <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\n            <mat-select (selectionChange)=\\\"teamChange($event)\\\" [(ngModel)]=\\\"TeamID\\\">\\n              <mat-option *ngFor=\\\"let team of teamData;\\\" [value]=\\\"team.TeamID\\\">\\n                {{team.TeamName}}\\n              </mat-option>\\n            </mat-select>\\n          </mat-form-field>\\n        </div>\\n\\n        <div class=\\\"printBtn\\\" *ngIf=\\\"isDisable\\\">\\n          <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Print report\\\" printSectionId=\\\"printFrustByPro\\\"\\n            [useExistingCss]=\\\"true\\\" ngxPrint printTitle=\\\"{{companyName}}\\\">Print</button>\\n\\n        </div>\\n\\n        <div class=\\\"excelBtn\\\" *ngIf=\\\"isDisable\\\">\\n          <div class=\\\"item item-5\\\">\\n            <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">\\n\\n              Excel\\n            </button>\\n\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n\\n  </div>\\n\\n  <div class=\\\"donotprintthis1\\\">\\n    <div style=\\\"text-align:center;margin-top: 15px; margin-block-end: 30px\\\">\\n      <h6>\\n        <span> Company - </span> {{companyName}} <br>\\n        <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\n        <span *ngIf=\\\"!selectedReportType || selectedReportType == 'Team'\\\">Team: {{TeamName ? TeamName : 'Aggregate\\n          Report'}}</span>\\n        <span *ngIf=\\\"selectedReportType == 'Department'\\\">Department: {{departmentName ? departmentName : 'Aggregate\\n          Report'}}</span><br>\\n        <span> Report Type : Frustrations Report by Process</span>\\n\\n      </h6>\\n    </div>\\n  </div>\\n\\n\\n  <div class=\\\"reportTable\\\" *ngIf='dashboardProcess && !warningMsg'>\\n\\n    <div class=\\\"col-sm-12\\\" id=\\\"totalTable\\\" style=\\\"overflow-x: auto;width: 60em; white-space: nowrap;\\\">\\n      <br>\\n      <table class=\\\"table\\\" *ngIf=\\\"dashboardProcess\\\">\\n        <tr style=\\\"background-color:#3775b5; color: white\\\">\\n          <td style=\\\"text-align: center;\\\">Total <br> {{totalCount}}</td>\\n          <td *ngFor='let d of frust' style=\\\"cursor: pointer;text-align: center;\\\">\\n            <span (click)=\\\"getData(d.data)\\\"> {{d.label}} <br> {{d.value}}</span>\\n\\n          </td>\\n        </tr>\\n      </table>\\n    </div>\\n    <div class=\\\"donotprintthis1\\\">\\n\\n\\n      <div class=\\\"col-sm-12\\\" style=\\\"overflow-x: auto;width: 60em; white-space: nowrap;\\\">\\n        <br>\\n        <div class=\\\"box\\\" id=\\\"totalTable1\\\" *ngIf=\\\"dashboardProcess\\\">\\n\\n          <div style=\\\"align-content: center;\\\"><strong>Total <br> {{totalCount}}</strong></div>\\n          <div *ngFor='let d of frust' style=\\\"cursor: pointer\\\">\\n            <span (click)=\\\"getData(d.data)\\\"> {{d.label}} <br> {{d.value}}</span>\\n\\n          </div>\\n\\n        </div>\\n      </div>\\n\\n    </div>\\n    <div class=\\\"col-lg-12 noPagebreak\\\">\\n      <div class=\\\"col-sm-12\\\" id=\\\"chartProcess\\\"></div>\\n\\n    </div>\\n\\n  </div>\\n\\n  <br>\\n  <div class=\\\"donotprintthis\\\">\\n    <div class=\\\"searchField\\\" *ngIf='dashboardPr'>\\n\\n\\n      <div class=\\\"item item-1\\\" *ngIf=\\\"disableSearch\\\">\\n\\n        <mat-form-field>\\n          <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n          <input matInput id=\\\"newGroup\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\" [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\"\\n            autocomplete=\\\"off\\\">\\n        </mat-form-field>\\n\\n      </div>\\n\\n\\n    </div>\\n  </div>\\n  <div *ngIf='dashboardPr'>\\n    <div class=\\\"tableDiv\\\">\\n      <table>\\n        <thead>\\n          <tr>\\n            <th>No.</th>\\n            <th class=\\\"pointer\\\" *ngIf=\\\"selectedReportType === 'Department'\\\" (click)=\\\"sort('DepartmentName')\\\">\\n              Department\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('ProcessName')\\\"> Process\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('ActivityName')\\\"> Activity\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('FrustrationsTypeName')\\\"> Type\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('Subject')\\\"> Frustration\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('Description')\\\"> Description\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('StatusName')\\\"> Status\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('SeverityName')\\\"> Severity\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n            <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectName')\\\"> Project\\n              <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n              <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n            </th>\\n\\n          </tr>\\n        </thead>\\n        <tbody>\\n          <tr\\n            *ngFor='let metric of metricList | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction};let i=index;'>\\n            <td>{{i+1}}</td>\\n            <td *ngIf=\\\"selectedReportType === 'Department'\\\">\\n              {{metric.DepartmentName}}\\n            </td>\\n            <td>{{metric.TeamName}}</td>\\n            <td>\\n              {{metric.ProcessName}}<br>\\n            </td>\\n            <td>{{metric.ActivityName}}</td>\\n\\n            <td>\\n              {{metric.FrustrationsTypeName}}\\n            </td>\\n            <td>\\n\\n              {{metric.Subject}}\\n\\n            </td>\\n            <td>\\n              {{metric.Description}}\\n            </td>\\n\\n\\n\\n            <td>\\n              {{metric.StatusName}}\\n            </td>\\n            <td>\\n              {{metric.SeverityName}}\\n            </td>\\n            <td>\\n              {{metric.ProjectName}}\\n            </td>\\n          </tr>\\n        </tbody>\\n      </table>\\n\\n    </div>\\n    <div class=\\\"donotprintthis\\\" style=\\\"margin-top: 10px;\\\">\\n      <div class=\\\"pageContainer\\\" *ngIf=\\\"activityPaging && metricList.length>0\\\">\\n        <div class=\\\"rowsSelection\\\">\\n          <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n            <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n              <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n                {{row}}\\n              </mat-option>\\n            </mat-select>\\n          </mat-form-field>\\n        </div>\\n        <div class=\\\"pageSelection\\\">\\n          <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n        </div>\\n      </div>\\n\\n    </div>\\n  </div>\\n  <div class=\\\"donotprintthis1\\\" style=\\\" position: fixed; bottom: 0;\\n  font-size: 13px;\\n  margin-left: 35%;\\\">\\n    <label>{{copyRight}}</label>\\n  </div>\\n</div>\\n\\n<div class=\\\"warningMsg\\\" *ngIf=\\\"(metricList === null||metricList===undefined || metricList.length === 0)\\\">\\n    <span style=\\\"color:red;\\\">{{wrng}}</span>\\n</div>\\n\\n<div style=\\\"text-align:center;margin-top: 10px;\\\"><span style=\\\"color:red;\\\"> {{warningMsg}} </span></div>\\n<br>\\n\\n<div class=\\\"col-lg-12 noPagebreak\\\" *ngIf='!dashboardProcess && !warningMsg;else temp;'>\\n\\n\\n  <div class=\\\"col-sm-12\\\" id=\\\"chartProcess\\\" style=\\\"height:350px;\\\"></div>\\n  <ng-template #temp>\\n    <div class=\\\"col-sm-12\\\" id=\\\"chartProcess\\\"></div>\\n  </ng-template>\\n</div>\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<span (click)=\\\"close()\\\" matTooltip=\\\"Close\\\" class=\\\"close closereport\\\">&times;</span>\\r\\n<h1 mat-dialog-title></h1>\\r\\n<div mat-dialog-content>\\r\\n  <div class=\\\"tableDiv\\\">\\r\\n    <table>\\r\\n      <thead>\\r\\n        <tr>\\r\\n          <th>Project Name</th>\\r\\n          <th>Project Status</th>\\r\\n          <th>Issues\\r\\n            <table>\\r\\n              <tr>\\r\\n                <!-- <th>\\r\\n                  Issue ID\\r\\n                </th> -->\\r\\n                <th>Team</th>\\r\\n                <th>Process</th>\\r\\n                <th>Frustration</th>\\r\\n                <th>Description</th>\\r\\n                <th>Status</th>\\r\\n\\r\\n              </tr>\\r\\n            </table>\\r\\n          </th>\\r\\n\\r\\n        </tr>\\r\\n      </thead>\\r\\n      <tbody>\\r\\n        <tr *ngFor=\\\"let d of data1\\\">\\r\\n\\r\\n          <td>\\r\\n            {{d.name}}\\r\\n          </td>\\r\\n          <td>\\r\\n            {{d.status}}\\r\\n          </td>\\r\\n          <td>\\r\\n            <table>\\r\\n              <tr *ngFor=\\\"let p of d.data\\\">\\r\\n                <!-- <td>\\r\\n Issue-{{p.PointerID}}\\r\\n                    </td> -->\\r\\n                <td>{{p.TeamName}}</td>\\r\\n                <td>\\r\\n                  {{p.ProcessName}}\\r\\n                </td>\\r\\n                <td>{{p.Subject}}</td>\\r\\n                <td>{{p.Description}}</td>\\r\\n                <td>\\r\\n                  {{p.StatusName}}\\r\\n                </td>\\r\\n\\r\\n              </tr>\\r\\n            </table>\\r\\n          </td>\\r\\n\\r\\n\\r\\n        </tr>\\r\\n      </tbody>\\r\\n    </table>\\r\\n  </div>\\r\\n</div>\\r\\n\"","module.exports = \"<script src=\\\"https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js\\\"></script>\\r\\n<script src=\\\"https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js\\\"></script>\\r\\n<script src=\\\"https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js\\\"></script>\\r\\n<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<style>\\r\\n    #bg-text {\\r\\n        color: lightgrey;\\r\\n        font-size: 60px;\\r\\n        transform: rotate(300deg);\\r\\n        -webkit-transform: rotate(300deg);\\r\\n    }\\r\\n\\r\\n    #content {\\r\\n        position: absolute;\\r\\n        z-index: 1;\\r\\n    }\\r\\n\\r\\n    @media screen {\\r\\n        .donotprintthis1 {\\r\\n            display: none;\\r\\n        }\\r\\n\\r\\n        .donotprintthis {\\r\\n\\r\\n            display: block;\\r\\n\\r\\n        }\\r\\n    }\\r\\n\\r\\n\\r\\n    @media print {\\r\\n        h5 {\\r\\n            text-align: center;\\r\\n        }\\r\\n\\r\\n        .donotprintthis1 {\\r\\n\\r\\n            display: block;\\r\\n\\r\\n        }\\r\\n\\r\\n        .donotprintthis {\\r\\n\\r\\n            display: none;\\r\\n\\r\\n        }\\r\\n    }\\r\\n</style>\\r\\n<!--<div id=\\\"bg-text\\\" ><img src=\\\"./assets/images/DorseyMainLogo.png\\\" width=\\\"20%\\\" alt=\\\"dorsey Logo\\\" /></div>-->\\r\\n\\r\\n<div id=\\\"printProjectByStatus\\\">\\r\\n    <div class=\\\"donotprintthis\\\">\\r\\n        <div class=\\\"reportHead\\\">\\r\\n            <div class=\\\"reportName\\\">\\r\\n                <h5>Project Report by Status</h5>\\r\\n            </div>\\r\\n            <div class=\\\"reportActions\\\" *ngIf='dashboardPro'>\\r\\n\\r\\n                <div class=\\\"printBtn\\\" *ngIf=\\\"isDisable\\\">\\r\\n                    <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Print report\\\" printTitle=\\\"{{companyName}}\\\"\\r\\n                        printSectionId=\\\"printProjectByStatus\\\" [useExistingCss]=\\\"true\\\" ngxPrint>Print</button>\\r\\n\\r\\n\\r\\n                </div>\\r\\n                <div class=\\\"excelBtn\\\" *ngIf=\\\"isDisable\\\">\\r\\n                    <div class=\\\"item item-5\\\">\\r\\n                        <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">\\r\\n\\r\\n                            Excel\\r\\n                        </button>\\r\\n                    </div>\\r\\n\\r\\n\\r\\n                </div>\\r\\n\\r\\n\\r\\n            </div>\\r\\n        </div>\\r\\n    </div>\\r\\n\\r\\n    <div class=\\\"donotprintthis1\\\">\\r\\n        <div style=\\\"text-align:center;margin-top: 15px; margin-block-end: 30px\\\">\\r\\n            <h6>\\r\\n                <span> Company - </span> {{companyName}} <br>\\r\\n                <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\r\\n                <span>Report Type : Project Report by Statsus</span>\\r\\n\\r\\n\\r\\n            </h6>\\r\\n\\r\\n        </div>\\r\\n    </div>\\r\\n    <!-- ---------------------------Printing the report------------------------- -->\\r\\n    <div class=\\\"reportTable\\\" *ngIf='dashboardProject && !warningMsg'>\\r\\n        <div class=\\\"col-sm-12\\\" style=\\\"overflow-x: auto; width: 60em; white-space: nowrap;\\\">\\r\\n            <br>\\r\\n            <table class=\\\"table\\\" *ngIf=\\\"dashboardProject\\\">\\r\\n                <tr style=\\\"background-color:#3775b5; color: white\\\">\\r\\n                    <td style=\\\"text-align: center;\\\">Total <br> {{totalCount}}</td>\\r\\n                    <td *ngFor='let d of frust' style=\\\"cursor: pointer;text-align: center;\\\">\\r\\n                        <span (click)=\\\"getData(d.data)\\\"> {{d.label}} <br> {{d.value}}</span>\\r\\n\\r\\n                    </td>\\r\\n                </tr>\\r\\n            </table>\\r\\n        </div>\\r\\n        <div class=\\\"col-lg-12 noPagebreak\\\">\\r\\n            <div class=\\\"col-sm-12\\\" id=\\\"chart\\\" style=\\\"height:350px;\\\"></div>\\r\\n        </div>\\r\\n    </div><br>\\r\\n    <div class=\\\"donotprintthis\\\">\\r\\n        <div class=\\\"searchField\\\" *ngIf='dashboardPro'>\\r\\n            <div class=\\\"item item-1\\\" *ngIf=\\\"disableSearch\\\">\\r\\n                <mat-form-field>\\r\\n                    <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\r\\n                    <input matInput id=\\\"newGroup\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\" [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\"\\r\\n                        autocomplete=\\\"off\\\">\\r\\n                </mat-form-field>\\r\\n            </div>\\r\\n\\r\\n        </div>\\r\\n    </div>\\r\\n    <div *ngIf='dashboardPro'>\\r\\n        <div class=\\\"tableDiv\\\">\\r\\n            <table>\\r\\n                <thead>\\r\\n                    <tr>\\r\\n                        <th>\\r\\n                            No.\\r\\n                        </th>\\r\\n                        <th class=\\\"pointer\\\" (click)=\\\"sort('team')\\\"> Project Team\\r\\n                            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n                            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n                        </th>\\r\\n                        <th class=\\\"pointer\\\" (click)=\\\"sort('name')\\\"> Project\\r\\n                            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n                            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n                        </th>\\r\\n\\r\\n                        <th class=\\\"pointer\\\" (click)=\\\"sort('status')\\\"> Project Status\\r\\n                            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n                            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n                        </th>\\r\\n                        <th class=\\\"pointer\\\" (click)=\\\"sort('owner')\\\"> Project Owner\\r\\n                            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n                            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n                        </th>\\r\\n                        <th class=\\\"pointer\\\" (click)=\\\"sort('data')\\\"> Frustration Team\\r\\n                            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n                            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n                        </th>\\r\\n\\r\\n\\r\\n                        <th class=\\\"pointer\\\" (click)=\\\"sort('data')\\\"> Process\\r\\n                            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n                            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n                        </th>\\r\\n                        <th class=\\\"pointer\\\" (click)=\\\"sort('data')\\\"> Frustration\\r\\n                            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n                            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n                        </th>\\r\\n                        <th class=\\\"pointer\\\" (click)=\\\"sort('data')\\\"> Description\\r\\n                            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n                            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n                        </th>\\r\\n                        <th class=\\\"pointer\\\" (click)=\\\"sort('data')\\\"> Status\\r\\n                            <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n                            <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n                        </th>\\r\\n\\r\\n                    </tr>\\r\\n                </thead>\\r\\n                <tbody>\\r\\n                    <tr\\r\\n                        *ngFor='let d of finalList | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction};let i=index;'>\\r\\n                        <td>\\r\\n                            <span>{{i+1}}</span>\\r\\n                        </td>\\r\\n                        <td>\\r\\n                            {{d.team}}\\r\\n                        </td>\\r\\n                        <td>{{d.name}}</td>\\r\\n                        <td>{{d.status}}</td>\\r\\n                        <td>{{d.owner}}</td>\\r\\n                        <td>\\r\\n                            <div class=\\\"tableRowData\\\" *ngFor='let frustData of d.data'>\\r\\n                                {{frustData.TeamName}}\\r\\n                            </div>\\r\\n                        </td>\\r\\n                        <td>\\r\\n                            <div class=\\\"tableRowData\\\" *ngFor='let frustData of d.data'>\\r\\n                                {{frustData.ProcessName}}\\r\\n                            </div>\\r\\n                        </td>\\r\\n\\r\\n                        <td>\\r\\n                            <div class=\\\"tableRowData\\\" *ngFor='let frustData of d.data'>\\r\\n                                {{frustData.Subject}}\\r\\n                            </div>\\r\\n                        </td>\\r\\n\\r\\n                        <td>\\r\\n                            <div class=\\\"tableRowData\\\" *ngFor='let frustData of d.data'>\\r\\n                                {{frustData.Description}}\\r\\n                            </div>\\r\\n                        </td>\\r\\n\\r\\n                        <td>\\r\\n                            <div class=\\\"tableRowData\\\" *ngFor='let frustData of d.data'>\\r\\n                                {{frustData.StatusName}}\\r\\n                            </div>\\r\\n                        </td>\\r\\n\\r\\n                    </tr>\\r\\n                </tbody>\\r\\n            </table>\\r\\n        </div>\\r\\n        <div class=\\\"donotprintthis\\\" style=\\\"margin-top: 10px;\\\">\\r\\n            <div class=\\\"pageContainer\\\" *ngIf=\\\"activityPaging && finalList.length>0\\\">\\r\\n                <div class=\\\"rowsSelection\\\">\\r\\n                    <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\r\\n                        <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\r\\n                            <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\r\\n                                {{row}}\\r\\n                            </mat-option>\\r\\n                        </mat-select>\\r\\n                    </mat-form-field>\\r\\n                </div>\\r\\n                <div class=\\\"pageSelection\\\">\\r\\n                    <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\r\\n                </div>\\r\\n            </div>\\r\\n        </div>\\r\\n    </div>\\r\\n    <div class=\\\"donotprintthis1\\\" style=\\\" position: fixed; bottom: 0;\\r\\n    font-size: 13px;\\r\\n    margin-left: 35%;\\\">\\r\\n        <label>{{copyRight}}</label>\\r\\n    </div>\\r\\n</div>\\r\\n<div class=\\\"warningMsg\\\" *ngIf=\\\"(finalList === null||finalList===undefined ||finalList.length === 0)\\\">\\r\\n    <span style=\\\"color:red;\\\">{{wrng}}</span>\\r\\n</div>\\r\\n\\r\\n<div style=\\\"text-align:center;margin-top: 10px;\\\"><span style=\\\"color:red;\\\"> {{warningMsg}} </span></div>\\r\\n<br>\\r\\n<div class=\\\"col-lg-12 noPagebreak\\\" *ngIf='!dashboardProject && !warningMsg;else temp;'>\\r\\n    <div class=\\\"col-sm-12\\\" id=\\\"chart\\\" style=\\\"height:350px;\\\"></div>\\r\\n</div>\\r\\n<ng-template #temp>\\r\\n    <div class=\\\"col-sm-8\\\" id=\\\"chart\\\"></div>\\r\\n</ng-template>\\r\\n\"","module.exports = \"<script src=\\\"https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js\\\"></script>\\n<script src=\\\"https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js\\\"></script>\\n<script src=\\\"https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js\\\"></script>\\n<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n\\n<div class=\\\"reportParent\\\">\\n        <mat-form-field>\\n                <mat-label>Report Type</mat-label>\\n                <mat-select (selectionChange)=\\\"report($event)\\\" [(ngModel)]=\\\"ReportID\\\">\\n                        <mat-option *ngFor=\\\"let data of reportData;let i=index;\\\" [value]=\\\"reportData[i].ReportID\\\">\\n                                {{reportData[i].ReportName}}\\n                        </mat-option>\\n                </mat-select>\\n        </mat-form-field>\\n</div>\\n\\n\\n\\n\\n<div *ngIf=\\\"ReportID===1\\\">\\n        <app-report-metric-process></app-report-metric-process>\\n</div>\\n\\n<div *ngIf=\\\"ReportID===2\\\">\\n        <app-nometric-process></app-nometric-process>\\n\\n</div>\\n<div *ngIf=\\\"ReportID===3\\\">\\n        <app-report-process></app-report-process>\\n\\n</div>\\n\\n<div *ngIf=\\\"ReportID===4\\\">\\n        <app-report-category></app-report-category>\\n</div>\\n\\n<div *ngIf=\\\"ReportID===5\\\">\\n        <app-other-frustration></app-other-frustration>\\n\\n</div>\\n\\n<div *ngIf=\\\"ReportID===6\\\">\\n        <app-frustration-reports></app-frustration-reports>\\n\\n</div>\\n\\n<div *ngIf=\\\"ReportID===7\\\">\\n        <app-frustration-comments></app-frustration-comments>\\n</div>\\n\\n<div *ngIf=\\\"ReportID===8\\\">\\n        <app-report-hipriority></app-report-hipriority>\\n</div>\\n\\n<div *ngIf=\\\"ReportID===9\\\">\\n        <app-report-project></app-report-project>\\n</div>\\n\\n<div *ngIf=\\\"ReportID===10\\\">\\n        <app-projects-noactions></app-projects-noactions>\\n\\n</div>\\n\\n\\n\\n<div *ngIf=\\\"ReportID===11\\\">\\n        <app-hipriority></app-hipriority>\\n</div>\\n<!-- <div *ngIf=\\\"ReportID===12\\\">\\n                                <app-report-activity-issues></app-report-activity-issues>\\n                        </div> -->\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n<div *ngIf=\\\"data !== 'new' && data !== 'edit'\\\">\\r\\n    <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n    <mat-dialog-actions align=\\\"center\\\">\\r\\n        <div *ngIf=\\\"condition\\\">\\r\\n            <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n            <!-- Can optionally provide a result for the closing dialog. -->\\r\\n            <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n        </div>\\r\\n        <div *ngIf=\\\"!condition &&  data !== 'progress' &&  data !== 'status'\\\">\\r\\n            <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\"\\r\\n                fxLayoutGap.xs=\\\"0\\\">\\r\\n                <div class=\\\"item item-3 \\\">\\r\\n                    <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n                </div>\\r\\n            </div>\\r\\n        </div>\\r\\n    </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n<!-- style=\\\"height: 560px;width: 850px;\\\" -->\\r\\n<div *ngIf=\\\"data === 'new' || data === 'edit'\\\"><br>\\r\\n    <div class=\\\"XBtn\\\">\\r\\n        <span (click)=\\\"close()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">&times;</span>\\r\\n    </div>\\r\\n\\r\\n    <!-- <span (click)=\\\"close()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">&times;</span>\\r\\n    <h1 mat-dialog-title style=\\\"text-align: center\\\">{{data | titlecase}} Role</h1>\\r\\n    <div mat-dialog-content>\\r\\n        <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\"\\r\\n            fxLayoutGap.xs=\\\"0\\\">\\r\\n            <div class=\\\"item item-1\\\" fxFlex=\\\"45%\\\">\\r\\n                <mat-form-field>\\r\\n                    \\r\\n                    <input matInput autocomplete=\\\"off\\\" maxlength=\\\"100\\\" id=\\\"lblActivityName\\\" [(ngModel)]=\\\"RoleName\\\"\\r\\n                        value=\\\"\\\">\\r\\n                        <mat-placeholder>Role Name <span style=\\\"color:red; font-size: 20px;\\\">*</span></mat-placeholder>\\r\\n                </mat-form-field>\\r\\n            </div>\\r\\n            <div class=\\\"item item-1\\\" fxFlex=\\\"10%\\\"></div>\\r\\n            <div class=\\\"item item-1\\\" fxFlex=\\\"45%\\\">\\r\\n        \\r\\n                <mat-form-field>\\r\\n                    <mat-label> Role Description</mat-label>\\r\\n                    <input matInput autocomplete=\\\"off\\\" maxlength=\\\"100\\\" id=\\\"lblActivityName\\\"\\r\\n                        [(ngModel)]=\\\"RoleDescription\\\" value=\\\"\\\">\\r\\n                </mat-form-field>\\r\\n            </div>\\r\\n        </div>\\r\\n        <div>\\r\\n            <mat-label><strong>* Permissions</strong></mat-label>\\r\\n        </div><br>\\r\\n        \\r\\n        \\r\\n        \\r\\n        <div *ngIf=\\\"1==1\\\" class=\\\"container\\\" \\r\\n            fxLayoutGap.xs=\\\"0\\\">\\r\\n            <table class='table borderless'>\\r\\n            <tr >\\r\\n                    <td style=\\\"width: 120px;\\\">All</td>\\r\\n                \\r\\n                    <td> \\r\\n\\r\\n                      <div style=\\\"display:inline-block; width:110px\\\" *ngFor=\\\"let list of permissionsList\\\">\\r\\n                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\\r\\n                        <mat-checkbox *ngIf=\\\"list=='R'\\\" (change)=\\\"onClick(list, data)\\\" [(ngModel)]=\\\"checkedCB[list]\\\">Read</mat-checkbox>\\r\\n                        <mat-checkbox *ngIf=\\\"list=='C'\\\" (change)=\\\"onClick(list, data)\\\" [(ngModel)]=\\\"checkedCB[list]\\\">Create</mat-checkbox>\\r\\n                        <mat-checkbox *ngIf=\\\"list=='U'\\\" (change)=\\\"onClick(list, data)\\\" [(ngModel)]=\\\"checkedCB[list]\\\">Update</mat-checkbox>\\r\\n                        <mat-checkbox *ngIf=\\\"list=='D'\\\" (change)=\\\"onClick(list, data)\\\" [(ngModel)]=\\\"checkedCB[list]\\\">Delete</mat-checkbox>\\r\\n                      </div>\\r\\n            \\r\\n                    </td>\\r\\n            </tr>\\r\\n            </table>\\r\\n            <table class='table borderless'>\\r\\n            <div *ngFor=\\\"let menu of menuData\\\">\\r\\n                \\r\\n                    <tr >\\r\\n                  <td *ngIf=\\\"menu.MenuName!='FrustrationsType'\\\" style=\\\"width: 120px;\\\" >  {{menu.MenuName}}</td>\\r\\n                  <td *ngIf=\\\"menu.MenuName=='FrustrationsType'\\\" style=\\\"width: 120px;\\\" > Frustration Types</td>\\r\\n                   <td>  <span *ngIf=\\\"rowID && PermissonJosn[menu.MenuName]\\\"> \\r\\n                        <div style=\\\"display:inline-block; width:110px\\\" *ngFor=\\\"let list of permissionsList\\\">\\r\\n                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\\r\\n                 \\r\\n                        <mat-checkbox color=\\\"primary\\\"  [disabled]=\\\"(menu.MenuName=='ProcessMap' && list=='R') || (menu.MenuName=='Alerts' && list!='R' ) || (menu.MenuName=='Metric Table' && list!='R' ) ||menu.MenuName=='Company' &&CurrentUser !=='admin' || (menu.MenuName=='Reports' && list!=='R') ||  (menu.MenuName=='Cases' && list!=='R' && list!='U' ) || (menu.MenuName == 'FrustrationsType' && list!='R')\\\" [(ngModel)]=\\\"PermissonJosn[menu.MenuName][menu.MenuID][list]\\\"\\r\\n                            (change)=\\\"onCheckboxMenuChange(menu.MenuName,menu.MenuID,list,$event,'edit')\\\">{{list}}</mat-checkbox>\\r\\n                        </div>                \\r\\n                </span>\\r\\n\\r\\n                <span *ngIf=\\\"!rowID && newPermissions[menu.MenuName]\\\"> \\r\\n                        <div style=\\\"display:inline-block; width:110px\\\" *ngFor=\\\"let list of permissionsList\\\">\\r\\n                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\\r\\n                    \\r\\n                        <mat-checkbox color=\\\"primary\\\" [disabled]=\\\"(menu.MenuName=='ProcessMap' && list=='R') || (menu.MenuName=='Alerts' && list!='R' ) || (menu.MenuName=='Metric Table' && list!='R' ) ||(menu.MenuName=='Company' &&CurrentUser !=='admin') || (menu.MenuName=='Reports' && list!=='R') || (menu.MenuName=='Cases' && list!=='R' && list!='U' ) || (menu.MenuName == 'FrustrationsType' && list!='R')\\\" [(ngModel)]=\\\"newPermissions[menu.MenuName][menu.MenuID][list]\\\"\\r\\n                            (change)=\\\"onCheckboxMenuChange(menu.MenuName,menu.MenuID,list,$event,'new')\\\">{{list}}</mat-checkbox>\\r\\n                        </div>                \\r\\n                </span>\\r\\n\\r\\n                </td>\\r\\n                </tr>\\r\\n            </div>\\r\\n        </table>\\r\\n        </div>\\r\\n    \\r\\n        <div  *ngIf=\\\"showGranual\\\" class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\"\\r\\n            fxLayoutGap.xs=\\\"0\\\">\\r\\n\\r\\n            <div class=\\\"item item-1\\\" fxFlex=\\\"100%\\\">\\r\\n                <span>\\r\\n                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <mat-checkbox\\r\\n                        [(ngModel)]=\\\"mapCheck\\\"></mat-checkbox> ProcessMap\\r\\n                    <span *ngIf=\\\"mapCheck\\\">\\r\\n\\r\\n                        <span *ngIf=\\\"rowID\\\"> <span *ngFor=\\\"let list of permissionsList\\\">\\r\\n                                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\\r\\n                                <mat-checkbox color=\\\"primary\\\" [(ngModel)]=\\\"mapList['Map'][list]\\\"\\r\\n                                    (change)=\\\"onCheckboxChange('Map','ProcessMap' ,list,$event,'edit')\\\">{{list}}</mat-checkbox>\\r\\n                            </span></span>\\r\\n                        <span *ngIf=\\\"!rowID\\\"> <span *ngFor=\\\"let list of permissionsList\\\">\\r\\n                                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\\r\\n                                <mat-checkbox color=\\\"primary\\\" \\r\\n                                    (change)=\\\"onCheckboxChange('Map','ProcessMap',list,$event,'new')\\\">{{list}}</mat-checkbox>\\r\\n                            </span></span>\\r\\n\\r\\n\\r\\n                    </span>\\r\\n                    <div *ngIf=\\\"mapCheck\\\" class=\\\"col-lg\\\">\\r\\n            \\r\\n                        <span *ngFor=\\\"let team of MainJson| keyvalue;let i = index\\\" >\\r\\n                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\\r\\n                            <mat-checkbox [(ngModel)]=\\\"teamCheckList[team.key]\\\"></mat-checkbox>\\r\\n                            {{team.key.split('æææ')[0]}}\\r\\n                            <span *ngIf=\\\"teamCheckList[team.key] || teamList[team.key.split('æææ')[1]]\\\">\\r\\n                                <span *ngIf=\\\"rowID\\\"> <span *ngFor=\\\"let list of permissionsList\\\">\\r\\n                                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\\r\\n                                        <mat-checkbox color=\\\"primary\\\"\\r\\n                                            [(ngModel)]=\\\"teamList[team.key.split('æææ')[1]][list]\\\"\\r\\n                                            (change)=\\\"onCheckboxChange('Team',team.key.split('æææ')[1],list,$event,'edit')\\\">\\r\\n                                            {{list}}</mat-checkbox>\\r\\n                                    </span></span>\\r\\n                                <span *ngIf=\\\"!rowID\\\"> <span *ngFor=\\\"let list of permissionsList\\\">\\r\\n                                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\\r\\n                                        <mat-checkbox color=\\\"primary\\\"\\r\\n                                            (change)=\\\"onCheckboxChange('Team',team.key.split('æææ')[1],list,$event,'new')\\\">\\r\\n                                            {{list}}</mat-checkbox>\\r\\n                                    </span></span>\\r\\n                            </span><br>\\r\\n                            <div *ngIf=\\\"teamCheckList[team.key]\\\">\\r\\n\\r\\n                                <span *ngFor=\\\"let process of team.value| keyvalue;let j= index\\\" style=\\\"display: none;\\\">\\r\\n                                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\\r\\n                                    <mat-checkbox [(ngModel)]=\\\"processCheckList[process.key]\\\"></mat-checkbox>\\r\\n                                    {{process.key.split('æææ')[0]}}\\r\\n                                    <span *ngIf=\\\"processCheckList[process.key]\\\">\\r\\n\\r\\n                                        <span *ngIf=\\\"rowID && processList\\\"> <span *ngFor=\\\"let list of permissionsList\\\">\\r\\n                                                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\\r\\n                                                <mat-checkbox color=\\\"primary\\\"\\r\\n                                                    [(ngModel)]=\\\"processList[process.key.split('æææ')[1]][list]\\\"\\r\\n                                                    (change)=\\\"onCheckboxChange('Process',process.key.split('æææ')[1],list,$event,'edit')\\\">\\r\\n                                                    {{list}}</mat-checkbox>\\r\\n                                            </span></span>\\r\\n                                        <span *ngIf=\\\"!rowID\\\"> <span *ngFor=\\\"let list of permissionsList\\\">\\r\\n                                                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\\r\\n                                                <mat-checkbox color=\\\"primary\\\"\\r\\n                                                    (change)=\\\"onCheckboxChange('Process',process.key.split('æææ')[1],list,$event,'new')\\\">\\r\\n                                                    {{list}}</mat-checkbox>\\r\\n                                            </span></span>   \\r\\n                                    </span><br>\\r\\n                                    <div *ngIf=\\\"processCheckList[process.key]\\\">\\r\\n                                       \\r\\n                                        <span *ngFor=\\\"let activity of process.value;let k =index\\\">\\r\\n                                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\\r\\n                                            <mat-checkbox [(ngModel)]=\\\"activityCheckList[activity]\\\"></mat-checkbox>\\r\\n                                            {{activity.split('æææ')[0]}}\\r\\n                                            <span *ngIf=\\\"activityCheckList[activity]\\\">\\r\\n\\r\\n                                                <span *ngIf=\\\"rowID\\\"> <span *ngFor=\\\"let list of permissionsList\\\">\\r\\n                                                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\\r\\n                                                        <mat-checkbox color=\\\"primary\\\"\\r\\n                                                            [(ngModel)]=\\\"activityList[activity.split('æææ')[1]][list]\\\"\\r\\n                                                            (change)=\\\"onCheckboxChange('Activity',activity.split('æææ')[1],list,$event,'edit')\\\">\\r\\n                                                            {{list}}</mat-checkbox>\\r\\n                                                    </span></span>\\r\\n                                                <span *ngIf=\\\"!rowID\\\"> <span *ngFor=\\\"let list of permissionsList\\\">\\r\\n                                                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\\r\\n                                                        <mat-checkbox color=\\\"primary\\\"\\r\\n                                                            (change)=\\\"onCheckboxChange('Activity',activity.split('æææ')[1],list,$event,'new')\\\">\\r\\n                                                            {{list}}</mat-checkbox>\\r\\n                                                    </span></span>\\r\\n\\r\\n                                            </span> <br>\\r\\n                                        </span> </div>\\r\\n                                </span>\\r\\n                            </div>\\r\\n                        </span>\\r\\n                    </div>\\r\\n                </span> <br><br> <br>\\r\\n            </div>\\r\\n        </div>\\r\\n    </div>\\r\\n  \\r\\n\\r\\n    <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n        <br><br>\\r\\n        <div class=\\\"item item-1\\\" fxFlexOrder=\\\"1\\\">\\r\\n            <button class=\\\"addButtons\\\" mat-raised-button mat-accent (click)=\\\"AddRole()\\\"><span *ngIf=\\\"data === 'new'\\\">Save</span><span *ngIf=\\\"data === 'edit'\\\" >Update</span></button>\\r\\n        </div>\\r\\n        <div class=\\\"item item-1\\\" fxFlexOrder=\\\"3\\\">\\r\\n            <button mat-raised-button mat-accent class=\\\"addButtons\\\" (click)='close()'>Cancel</button>\\r\\n        </div>\\r\\n    </div> -->\\r\\n\\r\\n    <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n\\r\\n        <div id=\\\"Rowheading\\\">\\r\\n            <h4 class=\\\"alignheader\\\"><b>{{data | titlecase}} Role</b></h4>\\r\\n\\r\\n        </div>\\r\\n    </div>\\r\\n    <div mat-dialog-content>\\r\\n        <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n            <div id=\\\"Rowwrapper\\\">\\r\\n                <div id=\\\"RowtableActions\\\">\\r\\n                    <div id=\\\"field\\\">\\r\\n                        <mat-form-field>\\r\\n\\r\\n                            <input matInput autocomplete=\\\"off\\\" maxlength=\\\"100\\\" id=\\\"lblActivityName\\\"\\r\\n                                [(ngModel)]=\\\"RoleName\\\" value=\\\"\\\">\\r\\n                            <mat-placeholder>Role Name <span style=\\\"color:red; font-size: 20px;\\\">*</span>\\r\\n                            </mat-placeholder>\\r\\n                        </mat-form-field>\\r\\n                    </div>\\r\\n                    <div id=\\\"field\\\">\\r\\n\\r\\n                        <mat-form-field>\\r\\n                            <mat-label> Role Description</mat-label>\\r\\n                            <input matInput autocomplete=\\\"off\\\" maxlength=\\\"100\\\" id=\\\"lblActivityName\\\"\\r\\n                                [(ngModel)]=\\\"RoleDescription\\\" value=\\\"\\\">\\r\\n                        </mat-form-field>\\r\\n                    </div>\\r\\n                </div>\\r\\n            </div>\\r\\n        </div>\\r\\n        <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n            <div id=\\\"Rowheading\\\">\\r\\n                <mat-label><strong>* Permissions</strong></mat-label>\\r\\n            </div>\\r\\n        </div>\\r\\n        <div *ngIf=\\\"1==1\\\" class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n            <div id=\\\"Rowwrapper\\\">\\r\\n                <div id=\\\"RowtableActions\\\">\\r\\n\\r\\n                    <table style=\\\"border: none;\\\" class='table borderless'>\\r\\n                        <tr>\\r\\n                            <td style=\\\"width: 120px;\\\">All</td>\\r\\n\\r\\n                            <td>\\r\\n\\r\\n                                <div style=\\\"display:inline-block; width:110px\\\" *ngFor=\\\"let list of permissionsList\\\">\\r\\n                                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\\r\\n                                    <mat-checkbox *ngIf=\\\"list=='R'\\\" (change)=\\\"onClick(list, data)\\\"\\r\\n                                        [(ngModel)]=\\\"checkedCB[list]\\\">Read</mat-checkbox>\\r\\n                                    <mat-checkbox *ngIf=\\\"list=='C'\\\" (change)=\\\"onClick(list, data)\\\"\\r\\n                                        [(ngModel)]=\\\"checkedCB[list]\\\">Create</mat-checkbox>\\r\\n                                    <mat-checkbox *ngIf=\\\"list=='U'\\\" (change)=\\\"onClick(list, data)\\\"\\r\\n                                        [(ngModel)]=\\\"checkedCB[list]\\\">Update</mat-checkbox>\\r\\n                                    <mat-checkbox *ngIf=\\\"list=='D'\\\" (change)=\\\"onClick(list, data)\\\"\\r\\n                                        [(ngModel)]=\\\"checkedCB[list]\\\">Delete</mat-checkbox>\\r\\n                                </div>\\r\\n\\r\\n                            </td>\\r\\n                        </tr>\\r\\n                    </table>\\r\\n                </div>\\r\\n            </div>\\r\\n        </div>\\r\\n        <div *ngIf=\\\"1==1\\\" class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n            <div id=\\\"Rowwrapper\\\">\\r\\n                <div id=\\\"RowtableActions\\\">\\r\\n                    <table style=\\\"border: none;\\\" class='table borderless'>\\r\\n                        <div *ngFor=\\\"let menu of menuData\\\">\\r\\n\\r\\n                            <tr>\\r\\n\\r\\n                                <td *ngIf=\\\"menu.MenuName!='FrustrationsType' && menu.MenuName!='UserManual'\\\"\\r\\n                                    style=\\\"width: 120px;\\\"> {{menu.MenuName}}\\r\\n                                </td>\\r\\n                                <td *ngIf=\\\"menu.MenuName=='FrustrationsType' && menu.MenuName!='UserManual'\\\"\\r\\n                                    style=\\\"width: 120px;\\\"> Frustration Types\\r\\n                                </td>\\r\\n\\r\\n                                <td> <span\\r\\n                                        *ngIf=\\\"rowID && PermissonJosn[menu.MenuName] && menu.menuName!=='UserManual'\\\">\\r\\n                                        <div style=\\\"display:inline-block; width:110px\\\"\\r\\n                                            *ngFor=\\\"let list of permissionsList\\\">\\r\\n                                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\\r\\n\\r\\n                                            <mat-checkbox color=\\\"primary\\\" [disabled]=\\\"(menu.MenuName=='ProcessMap' && list=='R') \\r\\n                                                || (menu.MenuName=='Alerts' && list!='R' ) \\r\\n                                               \\r\\n                                                || (menu.MenuName=='Metric Table' && list!='R' ) \\r\\n                                                ||menu.MenuName=='Company' &&CurrentUser !=='admin' \\r\\n                                                || (menu.MenuName=='Reports' && list!=='R') \\r\\n                                                || (menu.MenuName=='Score Card' && list=='R') \\r\\n                                                ||  (menu.MenuName=='Cases' && list!=='R' && list!='U' ) \\r\\n                                                || (menu.MenuName == 'FrustrationsType' && list!='R')\\r\\n                                                ||   (menu.MenuName == 'Goals' && list!='R')\\r\\n                                                ||   (menu.MenuName == 'Quarter' && list!='R')\\\"\\r\\n                                                [(ngModel)]=\\\"PermissonJosn[menu.MenuName][menu.MenuID][list]\\\"\\r\\n                                                (change)=\\\"onCheckboxMenuChange(menu.MenuName,menu.MenuID,list,$event,'edit')\\\">\\r\\n                                                {{list}}</mat-checkbox>\\r\\n                                        </div>\\r\\n                                    </span>\\r\\n\\r\\n                                    <span\\r\\n                                        *ngIf=\\\"!rowID && newPermissions[menu.MenuName] && menu.menuName!=='UserManual'\\\">\\r\\n                                        <div style=\\\"display:inline-block; width:110px\\\"\\r\\n                                            *ngFor=\\\"let list of permissionsList\\\">\\r\\n                                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\\r\\n\\r\\n                                            <mat-checkbox color=\\\"primary\\\" [disabled]=\\\"(menu.MenuName=='ProcessMap' && list=='R') ||\\r\\n                                                 (menu.MenuName=='Alerts' && list!='R' ) \\r\\n                                                   || (menu.MenuName=='Metric Table' && list!='R' )\\r\\n                                                   ||(menu.MenuName=='Company' && CurrentUser !=='admin') \\r\\n                                                   || (menu.MenuName=='Reports' && list!=='R')\\r\\n                                                   || (menu.MenuName=='Score Card' && list=='R')\\r\\n                                                    || (menu.MenuName=='Cases' && list!=='R' && list!='U' ) \\r\\n                                                   || (menu.MenuName == 'FrustrationsType' && list!='R')\\r\\n                                                   ||   (menu.MenuName == 'Goals' && list!='R' )\\r\\n                                                    ||   (menu.MenuName == 'Quarter' && list!='R' )\\\"\\r\\n                                                [(ngModel)]=\\\"newPermissions[menu.MenuName][menu.MenuID][list]\\\"\\r\\n                                                (change)=\\\"onCheckboxMenuChange(menu.MenuName,menu.MenuID,list,$event,'new')\\\">\\r\\n                                                {{list}}</mat-checkbox>\\r\\n                                        </div>\\r\\n                                    </span>\\r\\n\\r\\n                                </td>\\r\\n                            </tr>\\r\\n                        </div>\\r\\n                    </table>\\r\\n\\r\\n                </div>\\r\\n            </div>\\r\\n        </div>\\r\\n        <div *ngIf=\\\"showGranual\\\" class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n            <div id=\\\"Rowwrapper\\\">\\r\\n                <div id=\\\"Rowheading\\\">\\r\\n                    <!-- <div class=\\\"item item-1\\\" fxFlex=\\\"100%\\\"> -->\\r\\n                    <!-- <span> -->\\r\\n                    <table style=\\\"border: none;\\\" class='table borderless'>\\r\\n                        <tr>\\r\\n                            <td>\\r\\n                                <mat-checkbox [(ngModel)]=\\\"mapCheck\\\"></mat-checkbox> ProcessMap\\r\\n                            </td>\\r\\n                            <td>\\r\\n                                <span *ngIf=\\\"mapCheck\\\">\\r\\n\\r\\n                                    <span *ngIf=\\\"rowID\\\">\\r\\n                                        <div style=\\\"display:inline-block; width:110px\\\"\\r\\n                                            *ngFor=\\\"let list of permissionsList\\\">\\r\\n                                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\\r\\n                                            <mat-checkbox color=\\\"primary\\\" [(ngModel)]=\\\"mapList['Map'][list]\\\"\\r\\n                                                (change)=\\\"onCheckboxChange('Map','ProcessMap' ,list,$event,'edit')\\\">\\r\\n                                                {{list}}</mat-checkbox>\\r\\n                                        </div>\\r\\n                                    </span>\\r\\n                                    <span *ngIf=\\\"!rowID\\\">\\r\\n                                        <div style=\\\"display:inline-block; width:110px\\\"\\r\\n                                            *ngFor=\\\"let list of permissionsList\\\">\\r\\n                                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\\r\\n                                            <mat-checkbox color=\\\"primary\\\"\\r\\n                                                (change)=\\\"onCheckboxChange('Map','ProcessMap',list,$event,'new')\\\">\\r\\n                                                {{list}}</mat-checkbox>\\r\\n                                        </div>\\r\\n                                    </span>\\r\\n\\r\\n\\r\\n                                </span>\\r\\n                            </td>\\r\\n                        </tr>\\r\\n                    </table>\\r\\n                </div>\\r\\n            </div>\\r\\n        </div>\\r\\n        <div *ngIf=\\\"showGranual\\\" class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n            <div id=\\\"Rowwrapper\\\">\\r\\n                <div id=\\\"RowtableActions\\\">\\r\\n                    <div *ngIf=\\\"mapCheck\\\">\\r\\n                        <table style=\\\"border: none;\\\" class='table borderless'>\\r\\n                            <div *ngFor=\\\"let team of MainJson| keyvalue;let i = index\\\">\\r\\n                                <tr>\\r\\n                                    <td>\\r\\n                                        <mat-checkbox [(ngModel)]=\\\"teamCheckList[team.key]\\\"></mat-checkbox>\\r\\n                                        {{team.key.split('æææ')[0]}}\\r\\n                                    </td>\\r\\n                                    <td>\\r\\n                                        <span *ngIf=\\\"teamCheckList[team.key] || teamList[team.key.split('æææ')[1]]\\\">\\r\\n                                            <span *ngIf=\\\"rowID\\\">\\r\\n                                                <div style=\\\"display:inline-block; width:110px\\\"\\r\\n                                                    *ngFor=\\\"let list of permissionsList\\\">\\r\\n                                                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\\r\\n                                                    <mat-checkbox color=\\\"primary\\\"\\r\\n                                                        [(ngModel)]=\\\"teamList[team.key.split('æææ')[1]][list]\\\"\\r\\n                                                        (change)=\\\"onCheckboxChange('Team',team.key.split('æææ')[1],list,$event,'edit')\\\">\\r\\n                                                        {{list}}</mat-checkbox>\\r\\n                                                </div>\\r\\n                                            </span>\\r\\n                                            <span *ngIf=\\\"!rowID\\\">\\r\\n                                                <div style=\\\"display:inline-block; width:110px\\\"\\r\\n                                                    *ngFor=\\\"let list of permissionsList\\\">\\r\\n                                                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\\r\\n                                                    <mat-checkbox color=\\\"primary\\\"\\r\\n                                                        (change)=\\\"onCheckboxChange('Team',team.key.split('æææ')[1],list,$event,'new')\\\">\\r\\n                                                        {{list}}</mat-checkbox>\\r\\n                                                </div>\\r\\n                                            </span>\\r\\n                                        </span><br>\\r\\n                                        <div *ngIf=\\\"teamCheckList[team.key]\\\">\\r\\n\\r\\n                                            <span *ngFor=\\\"let process of team.value| keyvalue;let j= index\\\"\\r\\n                                                style=\\\"display: none;\\\">\\r\\n                                                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\\r\\n                                                <mat-checkbox [(ngModel)]=\\\"processCheckList[process.key]\\\">\\r\\n                                                </mat-checkbox>\\r\\n                                                {{process.key.split('æææ')[0]}}\\r\\n                                                <span *ngIf=\\\"processCheckList[process.key]\\\">\\r\\n\\r\\n                                                    <span *ngIf=\\\"rowID && processList\\\">\\r\\n                                                        <div style=\\\"display:inline-block; width:110px\\\"\\r\\n                                                            *ngFor=\\\"let list of permissionsList\\\">\\r\\n                                                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\\r\\n                                                            <mat-checkbox color=\\\"primary\\\"\\r\\n                                                                [(ngModel)]=\\\"processList[process.key.split('æææ')[1]][list]\\\"\\r\\n                                                                (change)=\\\"onCheckboxChange('Process',process.key.split('æææ')[1],list,$event,'edit')\\\">\\r\\n                                                                {{list}}</mat-checkbox>\\r\\n                                                        </div>\\r\\n                                                    </span>\\r\\n                                                    <span *ngIf=\\\"!rowID\\\">\\r\\n                                                        <div style=\\\"display:inline-block; width:110px\\\"\\r\\n                                                            *ngFor=\\\"let list of permissionsList\\\">\\r\\n                                                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\\r\\n                                                            <mat-checkbox color=\\\"primary\\\"\\r\\n                                                                (change)=\\\"onCheckboxChange('Process',process.key.split('æææ')[1],list,$event,'new')\\\">\\r\\n                                                                {{list}}</mat-checkbox>\\r\\n                                                        </div>\\r\\n                                                    </span>\\r\\n                                                </span><br>\\r\\n                                                <div *ngIf=\\\"processCheckList[process.key]\\\">\\r\\n\\r\\n                                                    <span *ngFor=\\\"let activity of process.value;let k =index\\\">\\r\\n                                                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\\r\\n                                                        <mat-checkbox [(ngModel)]=\\\"activityCheckList[activity]\\\">\\r\\n                                                        </mat-checkbox>\\r\\n                                                        {{activity.split('æææ')[0]}}\\r\\n                                                        <span *ngIf=\\\"activityCheckList[activity]\\\">\\r\\n\\r\\n                                                            <span *ngIf=\\\"rowID\\\">\\r\\n                                                                <div style=\\\"display:inline-block; width:110px\\\"\\r\\n                                                                    *ngFor=\\\"let list of permissionsList\\\">\\r\\n                                                                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\\r\\n                                                                    <mat-checkbox color=\\\"primary\\\"\\r\\n                                                                        [(ngModel)]=\\\"activityList[activity.split('æææ')[1]][list]\\\"\\r\\n                                                                        (change)=\\\"onCheckboxChange('Activity',activity.split('æææ')[1],list,$event,'edit')\\\">\\r\\n                                                                        {{list}}</mat-checkbox>\\r\\n                                                                </div>\\r\\n                                                            </span>\\r\\n                                                            <span *ngIf=\\\"!rowID\\\">\\r\\n                                                                <div style=\\\"display:inline-block; width:110px\\\"\\r\\n                                                                    *ngFor=\\\"let list of permissionsList\\\">\\r\\n                                                                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\\r\\n                                                                    <mat-checkbox color=\\\"primary\\\"\\r\\n                                                                        (change)=\\\"onCheckboxChange('Activity',activity.split('æææ')[1],list,$event,'new')\\\">\\r\\n                                                                        {{list}}</mat-checkbox>\\r\\n                                                                </div>\\r\\n                                                            </span>\\r\\n\\r\\n                                                        </span> <br>\\r\\n                                                    </span>\\r\\n                                                </div>\\r\\n                                            </span>\\r\\n                                        </div>\\r\\n                                    </td>\\r\\n                                </tr>\\r\\n                            </div>\\r\\n                        </table>\\r\\n                    </div>\\r\\n                    <!-- </span> <br><br> <br> -->\\r\\n                    <!-- </div> -->\\r\\n                </div>\\r\\n            </div>\\r\\n        </div>\\r\\n    </div>\\r\\n    <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n        <div id=\\\"Rowwrapper\\\">\\r\\n            <div id=\\\"RowtableActions\\\" style=\\\"margin-top: 1%;\\\">\\r\\n                <div id=\\\"buttonview\\\">\\r\\n                    <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"AddRole()\\\" [disabled]=\\\"btnDisabled\\\"><span\\r\\n                            *ngIf=\\\"data === 'new'\\\">Save</span><span *ngIf=\\\"data === 'edit'\\\">Update</span></button>\\r\\n                </div>\\r\\n                <div id=\\\"buttonview\\\">\\r\\n                    <button mat-accent class=\\\"addButtons btn\\\" (click)='close()'>Cancel</button>\\r\\n                </div>\\r\\n            </div>\\r\\n        </div>\\r\\n    </div>\\r\\n</div>\\r\\n\\r\\n\\r\\n<mat-dialog-content style=\\\"color: red;text-align: center\\\">{{errorMessage}}</mat-dialog-content>\\r\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n<div class=\\\"row\\\" id=\\\"container\\\">\\n  <div class=\\\"\\\" id=\\\"heading\\\">\\n    <h4>Roles</h4>\\n  </div>\\n  <div id=\\\"wrapper\\\">\\n    <div id=\\\"tableActions\\\">\\n      <div class=\\\"\\\" id=\\\"search\\\">\\n        <mat-form-field style=\\\"margin-top: -5px;\\\" id=\\\"searchField\\\">\\n          <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n          <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\"\\n            [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n        </mat-form-field>\\n      </div>\\n      <div class=\\\"\\\" id=\\\"excelBtn\\\">\\n        <button class=\\\"darkbtnbg btn btn-info\\\" [disabled]=\\\"isDisable\\\" matTooltip=\\\"Export as excel\\\"\\n          style=\\\"margin-top:11px;cursor: pointer;\\\" (click)=\\\"exportAsXLSX()\\\">\\n\\n          Excel\\n        </button>\\n      </div>\\n      <div class=\\\"\\\" id=\\\"createBtn\\\">\\n        <button mat-accent class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top: 11px;\\\"\\n          [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\" (click)='CreateRole(\\\"new\\\")' matTooltip=\\\"New role\\\"> New\\n        </button>\\n      </div>\\n    </div>\\n  </div>\\n</div>\\n\\n\\n<!-- <div class=\\\"container\\\" style=\\\"margin-top: -10px\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\n  <div class=\\\"col-lg-8\\\">\\n    <div class=\\\"item item-5 alignLeft\\\" fxFlex=\\\"12%\\\">\\n        <h4>Roles</h4>\\n    </div>\\n  </div>\\n    <div class=\\\"item item-1\\\" fxFlex=\\\"51%\\\" fxFlexOrder=\\\"1\\\">\\n    \\n    </div>\\n    <div class=\\\"item item-1\\\" fxFlex=\\\"25%\\\" fxFlexOrder=\\\"2\\\" *ngIf=\\\"!disableSearch\\\">\\n          \\n      <mat-form-field style=\\\"width: 180px\\\">\\n        <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n        <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\" [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n      </mat-form-field>\\n    </div>\\n    <div class=\\\"item item-5\\\" fxFlex=\\\"10%\\\" fxFlexOrder=\\\"3\\\" *ngIf=\\\"!isDisable\\\">\\n        <button class=\\\"darkbtnbg btn btn-info\\\"  [disabled]=\\\"isDisable\\\" matTooltip=\\\"Export As Excel\\\" style=\\\"margin-top:10px;cursor: pointer;\\\" (click)=\\\"exportAsXLSX()\\\">\\n        \\n          Excel\\n        </button>&nbsp;&nbsp;\\n\\n  </div>\\n    <div class=\\\"item item-5\\\" fxFlex=\\\"11%\\\" fxFlexOrder=\\\"3\\\">\\n      <button  mat-accent class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top: 11px;\\\" [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\" (click)='CreateRole(\\\"new\\\")' matTooltip=\\\"New Role\\\"> NEW </button>\\n    </div>\\n \\n  </div> -->\\n\\n<div>\\n\\n  <table class=\\\"table table-responsive\\\" class=\\\"fixed\\\">\\n    <thead>\\n      <tr>\\n\\n        <th class=\\\"pointer\\\" (click)=\\\"sort('RoleName')\\\"> Role\\n          <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n          <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n        </th>\\n\\n        <th cName class=\\\"pointer\\\" (click)=\\\"sort('RoleDescription')\\\"> Description\\n          <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n          <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n        </th>\\n\\n\\n        <th action>Action</th>\\n      </tr>\\n    </thead>\\n    <tbody>\\n      <tr\\n        *ngFor=\\\"let element of roleData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n\\n        <td> {{element.RoleName}}</td>\\n        <td> {{element.RoleDescription}}</td>\\n        <td style=\\\" cursor:pointer;\\\">\\n          {{element.EmployeeID}}\\n          <span> <a matTooltip=\\\"Edit role\\\"\\n              [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U']) || element.RoleID===TeamMemberRoleID|| element.RoleID===TeamAdminRoleID || element.RoleID===ReadOnlyRoleID || element.RoleID==emproleID || element.RoleID == compRoleID?'none':'auto'\\\"\\n              [ngClass]=\\\"{'removeColor':(!(MenuPermissions[menuName][menuID]['U']) || element.RoleID===TeamMemberRoleID|| element.RoleID===TeamAdminRoleID || element.RoleID===ReadOnlyRoleID || element.RoleID==emproleID) || element.RoleID == compRoleID,'AddColor':((MenuPermissions[menuName][menuID]['U']))}\\\"\\n              (click)=\\\"EditRole(element)\\\"><i class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"\\n                style=\\\"cursor: pointer;\\\"></i></a>\\n\\n            &nbsp;&nbsp;&nbsp; <a matTooltip=\\\"Delete role\\\"\\n              [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['D']) || element.RoleID===TeamMemberRoleID||element.RoleID===TeamAdminRoleID || element.RoleID===ReadOnlyRoleID ||element.RoleID==emproleID || element.RoleID == compRoleID ?'none':'auto'\\\"\\n              [ngClass]=\\\"{'removeColor':(!(MenuPermissions[menuName][menuID]['D'])  || element.RoleID===TeamMemberRoleID|| element.RoleID===TeamAdminRoleID || element.RoleID===ReadOnlyRoleID || element.RoleID==emproleID) || element.RoleID == compRoleID,'AddColor':((MenuPermissions[menuName][menuID]['U']))}\\\"\\n              (click)=\\\"DeleteRole(element)\\\"><i class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"\\n                style=\\\"cursor: pointer;\\\"></i></a> </span>\\n        </td>\\n\\n      </tr>\\n    </tbody>\\n\\n  </table><br>\\n\\n\\n\\n  <div class=\\\"warningMsg\\\" *ngIf=\\\"(roleData === null||roleData===undefined || roleData.length === 0)\\\">\\n\\n    <span>No data available</span>\\n\\n\\n  </div>\\n\\n\\n  <div class=\\\"pageContainer\\\" *ngIf=\\\"roleData.length>0\\\">\\n    <div class=\\\"rowsSelection\\\">\\n      <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n        <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n          <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n            {{row}}\\n          </mat-option>\\n        </mat-select>\\n      </mat-form-field>\\n    </div>\\n    <div class=\\\"pageSelection\\\">\\n\\n      <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n    </div>\\n  </div>\\n\\n\\n\\n  <!-- <div class=\\\"container row\\\" style=\\\"float:right\\\"  *ngIf=\\\"roleData.length>0\\\" >\\n           <div class=\\\"col-lg-6\\\"></div>\\n          <div class=\\\"col-lg-1\\\">\\n            <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n              <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n                  <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n                    {{row}}\\n                  </mat-option>\\n                </mat-select>\\n              </mat-form-field>\\n          </div>\\n        \\n         \\n          <div class=\\\"col-lg-5\\\" style=\\\"float:right\\\">\\n           \\n            <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n          </div>\\n          </div> -->\\n\\n\\n\\n</div>\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n<div class=\\\"row\\\" id=\\\"container\\\">\\r\\n    <div>\\r\\n        <h5 style=\\\"padding-top: 15px;\\\">Sub Entities </h5>\\r\\n    </div>\\r\\n    <div id=\\\"tableActions\\\">\\r\\n        <div class=\\\"\\\" id=\\\"search\\\">\\r\\n            <mat-form-field style=\\\"margin-top: -5px;\\\" id=\\\"searchField\\\">\\r\\n                <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\r\\n                <input matInput id=\\\"newGroup\\\" (keyup)=\\\"Searchtext()\\\" [disabled]=\\\"isSearchDisable\\\"\\r\\n                    [(ngModel)]=\\\"searchtext\\\" name=\\\"search\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\r\\n            </mat-form-field>\\r\\n        </div>\\r\\n        <div class=\\\"\\\" id=\\\"excelBtn\\\" style=\\\"display: none;\\\">\\r\\n            <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Export as excel\\\"\\r\\n                style=\\\"margin-top:11px;cursor: pointer;\\\">\\r\\n                Excel\\r\\n            </button>\\r\\n        </div>\\r\\n        <div class=\\\"\\\" id=\\\"createBtn\\\" *ngIf=\\\"!isSuperAdmin\\\">\\r\\n            <button mat-accent class=\\\"darkbtnbg btn btn-info\\\" (click)='newSubCompany()' matTooltip=\\\"New Sub entity\\\">New\\r\\n            </button>\\r\\n        </div>\\r\\n    </div>\\r\\n</div>\\r\\n<div class=\\\"tableDiv\\\">\\r\\n    <table>\\r\\n        <thead>\\r\\n            <tr>\\r\\n                <th class=\\\"pointer\\\" (click)=\\\"sort('CompanyName')\\\"> Entity\\r\\n                    <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n                    <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n                </th>\\r\\n                <th class=\\\"pointer\\\" (click)=\\\"sort('Email')\\\"> Email\\r\\n                    <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n                    <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n                </th>\\r\\n                <th class=\\\"pointer\\\" (click)=\\\"sort('Phone1')\\\"> Phone\\r\\n                    <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n                    <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n                </th>\\r\\n                <th class=\\\"pointer\\\" (click)=\\\"sort('NoOfSubCompanies')\\\"> Sub Entities\\r\\n                    <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n                    <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n                </th>\\r\\n                <th> Enable Score Card</th>\\r\\n                <th action>Action</th>\\r\\n            </tr>\\r\\n        </thead>\\r\\n        <tbody>\\r\\n            <tr *ngFor=\\\"let element of subCompanyDetails | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\"\\r\\n                id=\\\"trRow\\\" [ngClass]=\\\"element.CompanyID === currentRow ? 'highlight' : ''\\\">\\r\\n                <td> {{element.CompanyName}}</td>\\r\\n                <td>{{element.Email}} </td>\\r\\n                <td> {{element.Phone1 }} </td>\\r\\n                <td> {{element.NoOfSubCompanies ? element.NoOfSubCompanies : 0}} </td>\\r\\n                <td>\\r\\n                    <span *ngIf=\\\"isSuperAdmin || !isCompanyLogin\\\">\\r\\n                        <mat-slide-toggle [(ngModel)]=\\\"element.EnableScoreCard\\\" [checked]=\\\"element.EnableScoreCard\\\"\\r\\n                            (change)='enableScoreCardChange($event,element)'></mat-slide-toggle>\\r\\n                    </span>\\r\\n                    <span *ngIf=\\\"!isSuperAdmin && isCompanyLogin\\\">\\r\\n                        {{element.EnableScoreCard ? 'Yes' : 'No'}}\\r\\n                    </span>\\r\\n                </td>\\r\\n                <td style=\\\"cursor:pointer;\\\">\\r\\n                    <!-- $event.stopPropagation(); -->\\r\\n                    <span>\\r\\n                        <a matTooltip=\\\"View Sub Entities\\\"\\r\\n                            [attr.disabled]=\\\"(element.NoOfSubCompanies || element.NoOfSubCompanies == 0) ? false: true\\\"\\r\\n                            (click)=\\\"viewSubEntities(element)\\\"\\r\\n                            [style.pointer-events]=\\\"element.NoOfSubCompanies == 0 ? 'none' : 'auto'\\\"\\r\\n                            [ngClass]=\\\"{'removeColor':(element.NoOfSubCompanies == 0),'AddColor':(element.NoOfSubCompanies != 0)}\\\">\\r\\n                            <i style=\\\"cursor: pointer;\\\" class=\\\"fa fa-eye \\\" aria-hidden=\\\"true\\\"></i>\\r\\n                        </a>&nbsp;&nbsp;&nbsp;\\r\\n                        <a matTooltip=\\\"Edit Entity\\\" (click)=\\\"EditCompany(element)\\\" class=\\\"fontLabel\\\"><i\\r\\n                                style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n                        &nbsp;&nbsp;&nbsp; <a matTooltip=\\\"Delete Entity\\\" class=\\\"fontLabel\\\"\\r\\n                            (click)=\\\"DeleteCompany(element)\\\"><i style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\"\\r\\n                                aria-hidden=\\\"true\\\"></i></a>\\r\\n                        &nbsp;&nbsp;&nbsp;\\r\\n                        <!--  -->\\r\\n                        <a style=\\\"cursor: pointer; color: #3775b5; width: 20px; size: 2px;\\\" (click)=\\\"Navigate(element)\\\"\\r\\n                            class=\\\"rightArrow\\\" matTooltip=\\\"Login with {{element.CompanyName}} entity\\\"><i\\r\\n                                class=\\\"fa fa-arrow-circle-right fa-5x\\\"></i></a>\\r\\n                    </span>\\r\\n                </td>\\r\\n\\r\\n            </tr>\\r\\n        </tbody>\\r\\n\\r\\n    </table>\\r\\n    <br>\\r\\n    <div class=\\\"warningMsg\\\"\\r\\n        *ngIf=\\\"(subCompanyDetails === null||subCompanyDetails===undefined || subCompanyDetails.length === 0)\\\">\\r\\n        <span>No data available</span>\\r\\n    </div>\\r\\n</div>\\r\\n<app-sub-company *ngIf=\\\"showSubEntities\\\" [entityLicenses]=\\\"entityLicenses\\\" [subEntityLicenses]=\\\"subEntityLicenses\\\"\\r\\n    [subCompanyCount]=\\\"subCompanyCount\\\" [isSuperAdmin]=\\\"isSuperAdmin\\\" [companyId]=\\\"parentCompanyId\\\"\\r\\n    [organizationId]=\\\"organizationId\\\">\\r\\n</app-sub-company>\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<div *ngIf=\\\"data !== 'new' && data !== 'edit' \\\">\\r\\n  <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n  <mat-dialog-actions align=\\\"center\\\">\\r\\n    <div *ngIf=\\\"condition\\\">\\r\\n      <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n\\r\\n      <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n    </div>\\r\\n    <div *ngIf=\\\"!condition \\\">\\r\\n      <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n        <div class=\\\"item item-3 \\\">\\r\\n          <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n\\r\\n<div *ngIf=\\\"data === 'new' || data === 'edit'\\\">\\r\\n  <br>\\r\\n  <div class=\\\"XBtn\\\">\\r\\n    <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">&times;</span>\\r\\n  </div>\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowheading\\\">\\r\\n      <h4 class=\\\"alignheader\\\"><b>{{data | titlecase}} Team</b></h4>\\r\\n\\r\\n    </div>\\r\\n  </div>\\r\\n\\r\\n\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowwrapper\\\">\\r\\n      <div id=\\\"RowtableActions\\\">\\r\\n        <div id=\\\"field\\\">\\r\\n          <mat-form-field>\\r\\n            <mat-label> Department Name <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-label>\\r\\n\\r\\n            <mat-select (selectionChange)=\\\"departmentChange($event)\\\" [(ngModel)]=\\\"DepartmentID\\\">\\r\\n              <mat-option *ngFor=\\\"let dept of DepartmentList;let i=index;\\\" [value]=\\\"dept.DepartmentID\\\">\\r\\n                {{dept.DepartmentName}}\\r\\n              </mat-option>\\r\\n            </mat-select>\\r\\n          </mat-form-field>\\r\\n        </div>\\r\\n\\r\\n        <div id=\\\"field\\\">\\r\\n\\r\\n\\r\\n          <mat-form-field>\\r\\n            <input matInput autocomplete=\\\"off\\\" maxlength=\\\"30\\\" [disabled]=\\\"TeamName==='Leadership Team'\\\" id=\\\"lblTeamName\\\"\\r\\n              (keyup)=\\\"validate()\\\" [(ngModel)]=\\\"TeamName\\\" value=\\\"\\\">\\r\\n            <mat-placeholder>Team <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n          </mat-form-field>\\r\\n        </div>\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n      </div>\\r\\n    </div>\\r\\n  </div>\\r\\n\\r\\n  <div class=\\\"row\\\">\\r\\n    <div id=\\\"field\\\">\\r\\n      <mat-form-field>\\r\\n\\r\\n        <input matInput placeholder=\\\" Description\\\" autocomplete=\\\"off\\\" maxlength=\\\"200\\\" id=\\\"lblTeamDescription\\\"\\r\\n          [(ngModel)]=\\\"TeamDescription\\\" value=\\\"\\\">\\r\\n      </mat-form-field>\\r\\n    </div>\\r\\n  </div>\\r\\n\\r\\n\\r\\n  <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n    <div id=\\\"Rowwrapper\\\">\\r\\n      <div id=\\\"RowtableActions\\\">\\r\\n        <div id=\\\"buttonview\\\">\\r\\n          <button class=\\\"addButtons btn\\\" [disabled]=\\\"btnDisabled\\\" mat-accent (click)=\\\"AddTeam ()\\\"><span\\r\\n              *ngIf=\\\"data === 'new'\\\">Save</span><span *ngIf=\\\"data === 'edit'\\\">Update</span></button>\\r\\n        </div>\\r\\n        <div id=\\\"buttonview\\\">\\r\\n          <button mat-accent class=\\\"addButtons btn\\\" (click)='Clear()'>Cancel</button>\\r\\n        </div>\\r\\n      </div>\\r\\n    </div>\\r\\n  </div>\\r\\n  <br>\\r\\n  <mat-dialog-content class=\\\"warningMsg\\\">{{dataSelf}}</mat-dialog-content>\\r\\n  <mat-dialog-content class=\\\"successMsg\\\"></mat-dialog-content>\\r\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n\\n\\n<div class=\\\"row\\\" id=\\\"container\\\">\\n  <div class=\\\"\\\" id=\\\"heading\\\">\\n    <h4>Team</h4>\\n  </div>\\n  <div id=\\\"wrapper\\\">\\n    <div id=\\\"tableActions\\\">\\n      <div class=\\\"\\\" id=\\\"search\\\" *ngIf=\\\"!disableSearch\\\">\\n        <mat-form-field style=\\\"margin-top: -5px;\\\" id=\\\"searchField\\\">\\n          <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n          <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"searchText()\\\" name=\\\"search\\\"\\n            [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n        </mat-form-field>\\n      </div>\\n      <div class=\\\"\\\" id=\\\"excelBtn\\\" *ngIf=\\\"!disableSearch\\\">\\n        <button class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top:11px;cursor: pointer;\\\" [disabled]=\\\"isDisable\\\"\\n          matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">\\n\\n          Excel\\n        </button>\\n      </div>\\n      <div class=\\\"\\\" id=\\\"createBtn\\\">\\n        <button mat-accent class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top: 11px;\\\"\\n          [disabled]=\\\"!MenuPermissions[menuName][menuID]['C'] || (employeeDetails && employeeDetails.IsEmployeeLoginLevel == 'Team')\\\"\\n          (click)='OpenTeam()' matTooltip=\\\"New team\\\">New </button>\\n      </div>\\n    </div>\\n  </div>\\n</div>\\n<div>\\n  <table class=\\\"table table-responsive\\\" class=\\\"fixed\\\">\\n    <thead>\\n      <tr>\\n        <th cName class=\\\"pointer\\\" (click)=\\\"sort('DepartmentName')\\\"> Department\\n          <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n          <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n        </th>\\n        <th cName class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\n          <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n          <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n        </th>\\n        <th cName class=\\\"pointer\\\" (click)=\\\"sort('TeamDescription')\\\"> Description\\n          <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n          <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n        </th>\\n        <th action>Action</th>\\n      </tr>\\n    </thead>\\n    <tbody *ngIf=\\\"empID===0\\\">\\n      <tr\\n        *ngFor=\\\"let element of teamData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n        <td> {{element.DepartmentName}}</td>\\n        <td> {{element.TeamName}}</td>\\n        <td>{{element.TeamDescription}}</td>\\n        <td style=\\\" cursor:pointer;\\\">\\n          <span>\\n            <a matTooltip=\\\"Edit team\\\" (click)=\\\"EditTeam(element)\\\"><i style=\\\"cursor: pointer;\\\"\\n                class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a matTooltip=\\\"Delete team\\\" (click)=\\\"DeleteTeam(element)\\\"\\n              [style.pointer-events]=\\\"!(element.TeamName!=='Leadership Team')?'none':'auto'\\\"\\n              [ngClass]=\\\"{'removeColor':!(element.TeamName!=='Leadership Team')}\\\"><i style=\\\"cursor: pointer;\\\"\\n                class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n          </span>\\n        </td>\\n      </tr>\\n    </tbody>\\n    <tbody\\n      *ngFor=\\\"let element of teamData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n      <tr *ngIf=\\\"empID!==0 && element.R\\\">\\n        <td> {{element.DepartmentName}}</td>\\n        <td> {{element.TeamName}}</td>\\n        <td>{{element.TeamDescription}}</td>\\n        <td>\\n          <span>\\n            <a matTooltip=\\\"Edit team\\\" (click)=\\\"EditTeam(element)\\\" [style.pointer-events]=\\\"!(element.U)?'none':'auto'\\\"\\n              [ngClass]=\\\"{'removeColor':!(element.U),'AddColor':(element.U)}\\\"><i style=\\\"cursor: pointer;\\\"\\n                class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a matTooltip=\\\"Delete team\\\" (click)=\\\"DeleteTeam(element)\\\"\\n              [style.pointer-events]=\\\"!(element.D) ||!(element.TeamName!=='Leadership Team')?'none':'auto'\\\"\\n              [ngClass]=\\\"{'removeColor':!(element.D) || !(element.TeamName!=='Leadership Team'),'AddColor':(element.D)}\\\"><i\\n                style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n          </span>\\n        </td>\\n      </tr>\\n      <tr *ngIf=\\\"empID!==0\\\">\\n        <td> {{element.DepartmentName}}</td>\\n        <td> {{element.TeamName}}</td>\\n        <td>{{element.TeamDescription}}</td>\\n        <td>\\n          <span>\\n            <a matTooltip=\\\"Edit team\\\" (click)=\\\"EditTeam(element)\\\" [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'] || \\n            (employeeDetails && \\n              employeeDetails.IsEmployeeLoginLevel == 'Team'))?'none':'auto'\\\" [ngClass]=\\\"{'removeColor':(!MenuPermissions[menuName][menuID]['U'] || \\n              (employeeDetails && \\n              employeeDetails.IsEmployeeLoginLevel == 'Team')),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\"><i\\n                style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a matTooltip=\\\"Delete team\\\" (click)=\\\"DeleteTeam(element)\\\"\\n              [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['D'] || \\n              (employeeDetails && \\n              employeeDetails.IsEmployeeLoginLevel == 'Team') || !(element.TeamName!=='Leadership Team')) ? 'none' : 'auto'\\\"\\n              [ngClass]=\\\"{'removeColor':(!MenuPermissions[menuName][menuID]['D'] || \\n              (employeeDetails && \\n              employeeDetails.IsEmployeeLoginLevel == 'Team') || !(element.TeamName!=='Leadership Team')),'AddColor':(MenuPermissions[menuName][menuID]['D'])}\\\"><i\\n                style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n          </span>\\n        </td>\\n      </tr>\\n    </tbody>\\n  </table>\\n  <br>\\n  <div class=\\\"warningMsg\\\" *ngIf=\\\"(teamData === null||teamData===undefined || teamData.length === 0)\\\">\\n    <span>No data available</span>\\n  </div>\\n  <div class=\\\"pageContainer\\\" *ngIf=\\\"teamPaging && teamData.length>0\\\">\\n    <div class=\\\"rowsSelection\\\">\\n      <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n        <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n          <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n            {{row}}\\n          </mat-option>\\n        </mat-select>\\n      </mat-form-field>\\n    </div>\\n    <div class=\\\"pageSelection\\\">\\n      <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n    </div>\\n  </div>\\n\"","module.exports = \"\\n<mat-tab-group style=\\\"width:84%\\\" (selectedTabChange)=\\\"onLinkClick($event)\\\">\\n    <mat-tab label=\\\"Company\\\" >\\n        <table style=\\\"margin-top: 20px\\\" id=\\\"dtBasicExample\\\"  class=\\\"table table-responsive\\\" class=\\\"fixed\\\">\\n            <thead>\\n              <tr>\\n                  <!--<th  class=\\\"pointer\\\"> Company </th>-->\\n                  <th class=\\\"pointer\\\" (click)=\\\"sort('UserName')\\\"> User\\n                      <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n                      <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n                  </th>\\n               \\n              \\n                <th>Read</th>\\n                <th>Create</th>\\n                <th>Edit</th>\\n                <th>Delete</th>\\n              </tr>\\n            </thead>\\n            <tbody>\\n              <!---->\\n              <tr *ngFor=\\\"let element of roleData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n                  <!--<td > {{element.CompanyName}}</td>-->\\n              \\n                  <td> {{element.UserName}}</td>   \\n                 \\n                   <td><mat-checkbox></mat-checkbox></td>\\n                   <td><mat-checkbox></mat-checkbox></td>\\n                   <td><mat-checkbox></mat-checkbox></td>\\n                   <td><mat-checkbox></mat-checkbox></td>\\n              </tr>\\n            </tbody>\\n    \\n          </table>\\n          <div style=\\\"text-align: right\\\"  *ngIf=\\\"processPaging\\\">\\n            <div  class=\\\"col-lg-9\\\">\\n            <mat-form-field style=\\\"width: 50px\\\">\\n              <mat-select  [(ngModel)]=\\\"rowsOnPage\\\">\\n                <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\"  [value]=\\\"row\\\">\\n                  {{row}}\\n                </mat-option>\\n              </mat-select>\\n            </mat-form-field>\\n            </div>\\n            <div  class=\\\"col-lg-12\\\" style=\\\"margin-top: -40px\\\">\\n            <pagination-controls  (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n            </div>\\n            </div>\\n    </mat-tab>\\n    <mat-tab label=\\\"Employee\\\"  >\\n        <table style=\\\"margin-top: 20px\\\" id=\\\"dtEmployeeExample\\\"  class=\\\"table table-responsive\\\" class=\\\"fixed\\\">\\n            <thead>\\n              <tr>\\n                  <!--<th  class=\\\"pointer\\\"> Company </th>-->\\n                  <th class=\\\"pointer\\\" (click)=\\\"sort('UserName')\\\"> User\\n                      <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n                      <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n                  </th>\\n              \\n              \\n                <th>Read</th>\\n                <th>Create</th>\\n                <th>Edit</th>\\n                <th>Delete</th>\\n              </tr>\\n            </thead>\\n            <tbody>\\n              <!---->\\n              <tr *ngFor=\\\"let element of roleData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n                  <!--<td > {{element.CompanyName}}</td>-->\\n              \\n                  <td> {{element.UserName}}</td>   \\n                 \\n                   <td><mat-checkbox></mat-checkbox></td>\\n                   <td><mat-checkbox></mat-checkbox></td>\\n                   <td><mat-checkbox></mat-checkbox></td>\\n                   <td><mat-checkbox></mat-checkbox></td>\\n              </tr>\\n            </tbody>\\n    \\n          </table>\\n          <div style=\\\"text-align: right\\\"  *ngIf=\\\"processPaging\\\">\\n            <div  class=\\\"col-lg-9\\\">\\n            <mat-form-field style=\\\"width: 50px\\\">\\n              <mat-select  [(ngModel)]=\\\"rowsOnPage\\\">\\n                <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\"  [value]=\\\"row\\\">\\n                  {{row}}\\n                </mat-option>\\n              </mat-select>\\n            </mat-form-field>\\n            </div>\\n            <div  class=\\\"col-lg-12\\\" style=\\\"margin-top: -40px\\\">\\n            <pagination-controls  (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n            </div>\\n            </div>\\n    </mat-tab>\\n    <mat-tab label=\\\"Process\\\" >\\n        <table style=\\\"margin-top: 20px\\\" id=\\\"dtProcessExample\\\"  class=\\\"table table-responsive\\\" class=\\\"fixed\\\">\\n            <thead>\\n              <tr>\\n                  <!--<th  class=\\\"pointer\\\"> Company </th>-->\\n                  <th class=\\\"pointer\\\" (click)=\\\"sort('UserName')\\\"> User\\n                      <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n                      <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n                  </th>\\n               \\n                <th>Read</th>\\n                <th>Create</th>\\n                <th>Edit</th>\\n                <th>Delete</th>\\n              </tr>\\n            </thead>\\n            <tbody>\\n              <!---->\\n              <tr *ngFor=\\\"let element of roleData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n                  <!--<td > {{element.CompanyName}}</td>-->\\n              \\n                  <td> {{element.UserName}}</td>   \\n                 \\n                   <td><mat-checkbox></mat-checkbox></td>\\n                   <td><mat-checkbox></mat-checkbox></td>\\n                   <td><mat-checkbox></mat-checkbox></td>\\n                   <td><mat-checkbox></mat-checkbox></td>\\n              </tr>\\n            </tbody>\\n    \\n          </table>\\n          <div style=\\\"text-align: right\\\"  *ngIf=\\\"processPaging\\\">\\n            <div  class=\\\"col-lg-9\\\">\\n            <mat-form-field style=\\\"width: 50px\\\">\\n              <mat-select  [(ngModel)]=\\\"rowsOnPage\\\">\\n                <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\"  [value]=\\\"row\\\">\\n                  {{row}}\\n                </mat-option>\\n              </mat-select>\\n            </mat-form-field>\\n            </div>\\n            <div  class=\\\"col-lg-12\\\" style=\\\"margin-top: -40px\\\">\\n            <pagination-controls  (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n            </div>\\n            </div>\\n    </mat-tab>\\n    <mat-tab label=\\\"Team\\\" >\\n       <table style=\\\"margin-top: 20px\\\" id=\\\"dtTeamExample\\\"  class=\\\"table table-responsive\\\" class=\\\"fixed\\\">\\n            <thead>\\n              <tr>\\n                  <!--<th  class=\\\"pointer\\\"> Company </th>-->\\n                  <th class=\\\"pointer\\\" (click)=\\\"sort('UserName')\\\"> User\\n                      <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n                      <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n                  </th>\\n               \\n                <th>Read</th>\\n                <th>Create</th>\\n                <th>Edit</th>\\n                <th>Delete</th>\\n              </tr>\\n            </thead>\\n            <tbody>\\n              <!---->\\n              <tr *ngFor=\\\"let element of roleData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n                  <!--<td > {{element.CompanyName}}</td>-->\\n              \\n                  <td> {{element.UserName}}</td>   \\n                  \\n                   <td><mat-checkbox></mat-checkbox></td>\\n                   <td><mat-checkbox></mat-checkbox></td>\\n                   <td><mat-checkbox></mat-checkbox></td>\\n                   <td><mat-checkbox></mat-checkbox></td>\\n              </tr>\\n            </tbody>\\n    \\n          </table>\\n          <div style=\\\"text-align: right\\\"  *ngIf=\\\"processPaging\\\">\\n            <div  class=\\\"col-lg-9\\\">\\n            <mat-form-field style=\\\"width: 50px\\\">\\n              <mat-select  [(ngModel)]=\\\"rowsOnPage\\\">\\n                <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\"  [value]=\\\"row\\\">\\n                  {{row}}\\n                </mat-option>\\n              </mat-select>\\n            </mat-form-field>\\n            </div>\\n            <div  class=\\\"col-lg-12\\\" style=\\\"margin-top: -40px\\\">\\n            <pagination-controls  (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n            </div>\\n            </div>\\n    </mat-tab>\\n    <mat-tab label=\\\"Process Map\\\"  >\\n       <table style=\\\"margin-top: 20px\\\" id=\\\"dtProceMpExample\\\"  class=\\\"table table-responsive\\\" class=\\\"fixed\\\">\\n            <thead>\\n              <tr>\\n                  <!--<th  class=\\\"pointer\\\"> Company </th>-->\\n                  <th class=\\\"pointer\\\" (click)=\\\"sort('UserName')\\\"> User\\n                      <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n                      <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n                  </th>\\n               \\n                <th>Read</th>\\n                <th>Create</th>\\n                <th>Edit</th>\\n                <th>Delete</th>\\n              </tr>\\n            </thead>\\n            <tbody>\\n              <!---->\\n              <tr *ngFor=\\\"let element of roleData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n                  <!--<td > {{element.CompanyName}}</td>-->\\n              \\n                  <td> {{element.UserName}}</td>   \\n                  \\n                   <td><mat-checkbox></mat-checkbox></td>\\n                   <td><mat-checkbox></mat-checkbox></td>\\n                   <td><mat-checkbox></mat-checkbox></td>\\n                   <td><mat-checkbox></mat-checkbox></td>\\n              </tr>\\n            </tbody>\\n    \\n          </table>\\n          <div style=\\\"text-align: right\\\"  *ngIf=\\\"processPaging\\\">\\n            <div  class=\\\"col-lg-9\\\">\\n            <mat-form-field style=\\\"width: 50px\\\">\\n              <mat-select  [(ngModel)]=\\\"rowsOnPage\\\">\\n                <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\"  [value]=\\\"row\\\">\\n                  {{row}}\\n                </mat-option>\\n              </mat-select>\\n            </mat-form-field>\\n            </div>\\n            <div  class=\\\"col-lg-12\\\" style=\\\"margin-top: -40px\\\">\\n            <pagination-controls  (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n            </div>\\n            </div>\\n    </mat-tab>\\n    <mat-tab label=\\\"Activity\\\">\\n        <table style=\\\"margin-top: 20px\\\" id=\\\"dtActivityExample\\\"  class=\\\"table table-responsive\\\" class=\\\"fixed\\\">\\n            <thead>\\n              <tr>\\n                  <!--<th  class=\\\"pointer\\\"> Company </th>-->\\n                  <th class=\\\"pointer\\\" (click)=\\\"sort('UserName')\\\"> User\\n                      <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n                      <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n                  </th>\\n                \\n              \\n                <th>Read</th>\\n                <th>Create</th>\\n                <th>Edit</th>\\n                <th>Delete</th>\\n              </tr>\\n            </thead>\\n            <tbody>\\n              <!---->\\n              <tr *ngFor=\\\"let element of roleData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n                  <!--<td > {{element.CompanyName}}</td>-->\\n              \\n                  <td> {{element.RoleName}}</td>   \\n                 \\n                   <td><mat-checkbox></mat-checkbox></td>\\n                   <td><mat-checkbox></mat-checkbox></td>\\n                   <td><mat-checkbox></mat-checkbox></td>\\n                   <td><mat-checkbox></mat-checkbox></td>\\n              </tr>\\n            </tbody>\\n    \\n          </table>\\n          <div style=\\\"text-align: right\\\"  *ngIf=\\\"processPaging\\\">\\n            <div  class=\\\"col-lg-9\\\">\\n            <mat-form-field style=\\\"width: 50px\\\">\\n              <mat-select  [(ngModel)]=\\\"rowsOnPage\\\">\\n                <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\"  [value]=\\\"row\\\">\\n                  {{row}}\\n                </mat-option>\\n              </mat-select>\\n            </mat-form-field>\\n            </div>\\n            <div  class=\\\"col-lg-12\\\" style=\\\"margin-top: -40px\\\">\\n            <pagination-controls  (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n            </div>\\n            </div>\\n    </mat-tab>\\n    <mat-tab label=\\\"Metric\\\">\\n       <table style=\\\"margin-top: 20px\\\" id=\\\"dtMetricExample\\\"  class=\\\"table table-responsive\\\" class=\\\"fixed\\\">\\n            <thead>\\n              <tr>\\n                  <!--<th  class=\\\"pointer\\\"> Company </th>-->\\n                  <th class=\\\"pointer\\\" (click)=\\\"sort('UserName')\\\"> User\\n                      <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n                      <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n                  </th>\\n              \\n              \\n                <th>Read</th>\\n                <th>Create</th>\\n                <th>Edit</th>\\n                <th>Delete</th>\\n              </tr>\\n            </thead>\\n            <tbody>\\n              <!---->\\n              <tr *ngFor=\\\"let element of roleData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n                  <!--<td > {{element.CompanyName}}</td>-->\\n              \\n                  <td> {{element.UserName}}</td>   \\n          \\n                   <td><mat-checkbox></mat-checkbox></td>\\n                   <td><mat-checkbox></mat-checkbox></td>\\n                   <td><mat-checkbox></mat-checkbox></td>\\n                   <td><mat-checkbox></mat-checkbox></td>\\n              </tr>\\n            </tbody>\\n    \\n          </table>\\n          <div style=\\\"text-align: right\\\"  *ngIf=\\\"processPaging\\\">\\n            <div  class=\\\"col-lg-9\\\">\\n            <mat-form-field style=\\\"width: 50px\\\">\\n              <mat-select  [(ngModel)]=\\\"rowsOnPage\\\">\\n                <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\"  [value]=\\\"row\\\">\\n                  {{row}}\\n                </mat-option>\\n              </mat-select>\\n            </mat-form-field>\\n            </div>\\n            <div  class=\\\"col-lg-12\\\" style=\\\"margin-top: -40px\\\">\\n            <pagination-controls  (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n            </div>\\n            </div>\\n    </mat-tab>\\n    <mat-tab label=\\\"Frustration\\\">\\n       <table style=\\\"margin-top: 20px\\\" id=\\\"dtFrustationExample\\\"  class=\\\"table table-responsive\\\" class=\\\"fixed\\\">\\n            <thead>\\n              <tr>\\n                  <!--<th  class=\\\"pointer\\\"> Company </th>-->\\n                  <th class=\\\"pointer\\\" (click)=\\\"sort('UserName')\\\"> User\\n                      <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n                      <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n                  </th>\\n               \\n              \\n                <th>Read</th>\\n                <th>Create</th>\\n                <th>Edit</th>\\n                <th>Delete</th>\\n              </tr>\\n            </thead>\\n            <tbody>\\n              <!---->\\n              <tr *ngFor=\\\"let element of roleData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n                  <!--<td > {{element.CompanyName}}</td>-->\\n              \\n                  <td> {{element.UserName}}</td>   \\n                  \\n                   <td><mat-checkbox></mat-checkbox></td>\\n                   <td><mat-checkbox></mat-checkbox></td>\\n                   <td><mat-checkbox></mat-checkbox></td>\\n                   <td><mat-checkbox></mat-checkbox></td>\\n              </tr>\\n            </tbody>\\n    \\n          </table>\\n          <div style=\\\"text-align: right\\\"  *ngIf=\\\"processPaging\\\">\\n            <div  class=\\\"col-lg-9\\\">\\n            <mat-form-field style=\\\"width: 50px\\\">\\n              <mat-select  [(ngModel)]=\\\"rowsOnPage\\\">\\n                <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\"  [value]=\\\"row\\\">\\n                  {{row}}\\n                </mat-option>\\n              </mat-select>\\n            </mat-form-field>\\n            </div>\\n            <div  class=\\\"col-lg-12\\\" style=\\\"margin-top: -40px\\\">\\n            <pagination-controls  (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n            </div>\\n            </div>\\n    </mat-tab>\\n    <mat-tab label=\\\"Project\\\">\\n        <table style=\\\"margin-top: 20px\\\" id=\\\"dtprojectExample\\\"  class=\\\"table table-responsive\\\" class=\\\"fixed\\\">\\n            <thead>\\n              <tr>\\n                  <!--<th  class=\\\"pointer\\\"> Company </th>-->\\n                  <th class=\\\"pointer\\\" (click)=\\\"sort('UserName')\\\"> User\\n                      <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n                      <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n                  </th>\\n        \\n              \\n                <th>Read</th>\\n                <th>Create</th>\\n                <th>Edit</th>\\n                <th>Delete</th>\\n              </tr>\\n            </thead>\\n            <tbody>\\n              <!---->\\n              <tr *ngFor=\\\"let element of roleData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n                  <!--<td > {{element.CompanyName}}</td>-->\\n              \\n                  <td> {{element.UserName}}</td>   \\n               \\n                   <td><mat-checkbox></mat-checkbox></td>\\n                   <td><mat-checkbox></mat-checkbox></td>\\n                   <td><mat-checkbox></mat-checkbox></td>\\n                   <td><mat-checkbox></mat-checkbox></td>\\n              </tr>\\n            </tbody>\\n    \\n          </table>\\n          <div style=\\\"text-align: right\\\"  *ngIf=\\\"processPaging\\\">\\n            <div  class=\\\"col-lg-9\\\">\\n            <mat-form-field style=\\\"width: 50px\\\">\\n              <mat-select  [(ngModel)]=\\\"rowsOnPage\\\">\\n                <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\"  [value]=\\\"row\\\">\\n                  {{row}}\\n                </mat-option>\\n              </mat-select>\\n            </mat-form-field>\\n            </div>\\n            <div  class=\\\"col-lg-12\\\" style=\\\"margin-top: -40px\\\">\\n            <pagination-controls  (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n            </div>\\n            </div>\\n    </mat-tab>\\n    <mat-tab label=\\\"Cases\\\">\\n<table style=\\\"margin-top: 20px\\\" id=\\\"dtcasesExample\\\"  class=\\\"table table-responsive\\\" class=\\\"fixed\\\">\\n            <thead>\\n              <tr>\\n                  <!--<th  class=\\\"pointer\\\"> Company </th>-->\\n                  <th class=\\\"pointer\\\" (click)=\\\"sort('UserName')\\\"> User\\n                      <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n                      <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n                  </th>\\n               \\n              \\n                <th>Read</th>\\n                <th>Create</th>\\n                <th>Edit</th>\\n                <th>Delete</th>\\n              </tr>\\n            </thead>\\n            <tbody>\\n              <!---->\\n              <tr *ngFor=\\\"let element of roleData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n                  <!--<td > {{element.CompanyName}}</td>-->\\n              \\n                  <td> {{element.UserName}}</td>   \\n                \\n                   <td><mat-checkbox></mat-checkbox></td>\\n                   <td><mat-checkbox></mat-checkbox></td>\\n                   <td><mat-checkbox></mat-checkbox></td>\\n                   <td><mat-checkbox></mat-checkbox></td>\\n              </tr>\\n            </tbody>\\n    \\n          </table>\\n          <div style=\\\"text-align: right\\\"  *ngIf=\\\"processPaging\\\">\\n            <div  class=\\\"col-lg-9\\\">\\n            <mat-form-field style=\\\"width: 50px\\\">\\n              <mat-select  [(ngModel)]=\\\"rowsOnPage\\\">\\n                <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\"  [value]=\\\"row\\\">\\n                  {{row}}\\n                </mat-option>\\n              </mat-select>\\n            </mat-form-field>\\n            </div>\\n            <div  class=\\\"col-lg-12\\\" style=\\\"margin-top: -40px\\\">\\n            <pagination-controls  (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n            </div>\\n            </div>\\n    </mat-tab>\\n</mat-tab-group>\\n\"","module.exports = \"<div class=\\\"container\\\">\\n     <div class=\\\"unselectable\\\" >\\n        <pdf-viewer src=\\\"./assets/images/D-MAPP UserGuide 9_20.pdf\\\" oncontextmenu=\\\"return false\\\" [render-text]=\\\"true\\\"\\n       class=\\\"pdfbg\\\"></pdf-viewer>\\n       <!-- <embed src=\\\"./assets/images/D-MAPP UserGuide 9_20 _Sep 8.docx\\\" width=\\\"1000px\\\" height=\\\"500px\\\" /> -->\\n       <!-- <iframe src=\\\"./assets/images/D-MAPP UserGuide 9_20 _Sep 8.docx\\\" width=\\\"668\\\" height=\\\"714\\\" frameborder=\\\"0\\\" marginwidth=\\\"0\\\" marginheight=\\\"0\\\" scrolling=\\\"yes\\\" style=\\\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\\\" allowfullscreen> </iframe> -->\\n       <!-- <object data=\\\"./assets/images/D-MAPP UserGuide 9_20 _Sep 8.docx\\\" width=\\\"300\\\" height=\\\"200\\\"></object> -->\\n       <!-- <ngx-doc-viewer url=\\\"./assets/images/D-MAPP UserGuide 9_20 _Sep 8.docx\\\" viewer=\\\"google\\\" style=\\\"width:100%;height:50vh;\\\"></ngx-doc-viewer> -->\\n      </div>\\n</div>\\n\\n<style>\\n  .pdfbg{\\n      display: block;height: 500px;\\n        background: #e6e6e6;\\n        margin: 3% 0%;\\n  }\\n  .unselectable {\\n    -webkit-user-select: none;\\n    -webkit-touch-callout: none;\\n    -moz-user-select: none;\\n    -ms-user-select: none;\\n    user-select: none;\\n    color: #cc0000;\\n  }\\n</style>\"","module.exports = \"<div *ngIf=\\\"showDetails\\\" class=\\\"donotprintthis\\\">\\r\\n    <button class=\\\"btn btn-default\\\" matTooltip=\\\"Back to Score Card List\\\" (click)=\\\"backToScoreCard()\\\">Back\\r\\n    </button>\\r\\n    &nbsp;\\r\\n    <button class=\\\"btn btn-default\\\" (click)=\\\"convetToPDF()\\\" style=\\\"display: none;\\\">PDF</button>\\r\\n\\r\\n    &nbsp;\\r\\n    <button class=\\\"btn btn-default\\\" (click)=\\\"printScoreCard('print-section')\\\">Print</button>\\r\\n    &nbsp;\\r\\n    <button class=\\\"btn btn-default\\\" matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">\\r\\n        Excel\\r\\n    </button>\\r\\n    &nbsp;\\r\\n    <button class=\\\"darkbtnbg btn btn-info\\\" (click)=\\\"goToAddScoreCard()\\\"\\r\\n        [disabled]=\\\"!MenuPermissions[menuName][menuID]['U'] || (employeeDetails && employeeDetails.IsEmployeeLoginLevel=='Team')\\\">Edit</button>\\r\\n\\r\\n\\r\\n\\r\\n</div>\\r\\n<br>\\r\\n<div id=\\\"print-section\\\" class=\\\"m-2\\\">\\r\\n    <div class=\\\"row\\\" *ngIf=\\\"showDetails\\\">\\r\\n        <div class=\\\"col-sm-2\\\">\\r\\n            <img style=\\\"background:#404040;width: 60% !important;\\\" class=\\\"center\\\"\\r\\n                src=\\\"./assets/images/DorseyMainLogo_1.png\\\" alt=\\\"dorsey Logo\\\" />\\r\\n        </div>\\r\\n        <div class=\\\"col-sm-5\\\">\\r\\n            <div>\\r\\n                <b> Company Name: </b> {{scoreCard.CompanyName}} &nbsp;\\r\\n            </div>\\r\\n            <div>\\r\\n                <b> Quarter: </b>{{scoreCard.QuarterName}} &nbsp;\\r\\n            </div>\\r\\n        </div>\\r\\n        <div class=\\\"col-sm-5\\\">\\r\\n            <div>\\r\\n                <b *ngIf=\\\"scoreCard.ScoreCardType=='Department'\\\"> Department Name: </b>\\r\\n                <b *ngIf=\\\"scoreCard.ScoreCardType=='Team'\\\"> Team Name: </b>\\r\\n                <span *ngIf=\\\"scoreCard.ScoreCardType=='Department'\\\">\\r\\n                    {{scoreCard.DepartmentName}} </span>\\r\\n                <span *ngIf=\\\"scoreCard.ScoreCardType=='Team'\\\">{{scoreCard.TeamName}}</span>\\r\\n            </div>\\r\\n            <div>\\r\\n                <b> Score Card Name: </b>{{scoreCard.ScoreCardName}}\\r\\n            </div>\\r\\n        </div>\\r\\n    </div>\\r\\n    <div class=\\\"p-t-20\\\">\\r\\n        <div class=\\\"table-responsive\\\" style=\\\"font-size: small;\\\">\\r\\n            <table class=\\\"table table-bordered\\\" id=\\\"table12\\\">\\r\\n                <thead *ngIf=\\\"WeekDateList.length > 0\\\">\\r\\n                    <tr>\\r\\n                        <th class=\\\"min-width headcol text-center\\\" rowspan=\\\"2\\\">Goal</th>\\r\\n                        <th class=\\\"min-width headcol1 text-center\\\" rowspan=\\\"2\\\">Metric</th>\\r\\n                        <th class=\\\"headcol2\\\" style=\\\"padding: 0px;\\\">\\r\\n                            <div class=\\\"\\\" style=\\\"text-align: center;\\\">\\r\\n                                Target\\r\\n                            </div>\\r\\n                            <hr style=\\\"margin: 0;background-color: white;\\\">\\r\\n                            <div class=\\\"row text-center m-0\\\">\\r\\n                                <div class=\\\"col\\\">\\r\\n                                    Green\\r\\n                                </div>\\r\\n                                <div class=\\\"col\\\">\\r\\n                                    Yellow\\r\\n                                </div>\\r\\n                                <div class=\\\"col\\\">\\r\\n                                    Red\\r\\n                                </div>\\r\\n                            </div>\\r\\n                        </th>\\r\\n                        <th class=\\\"headcol3\\\" style=\\\"width: 80px;\\\">Frequency</th>\\r\\n                        <th style=\\\"width: 80px;\\\">UOM</th>\\r\\n                        <th class=\\\"w-50\\\">\\r\\n                            <div>Wk 1</div>\\r\\n                            <div>({{WeekDateList[0].label}})</div>\\r\\n                        </th>\\r\\n                        <th class=\\\"w-50\\\">\\r\\n                            <div>Wk 2</div>\\r\\n                            <div>({{WeekDateList[1].label}})</div>\\r\\n                        </th>\\r\\n                        <th class=\\\"w-50\\\">\\r\\n                            <div>Wk 3</div>\\r\\n                            <div>({{WeekDateList[2].label}})</div>\\r\\n                        </th>\\r\\n                        <th class=\\\"w-50\\\">\\r\\n                            <div>Wk 4 </div>\\r\\n                            <div>({{WeekDateList[3].label}})</div>\\r\\n                        </th>\\r\\n                        <th class=\\\"w-50\\\">\\r\\n                            <div>Wk 5</div>\\r\\n                            <div>({{WeekDateList[4].label}})</div>\\r\\n                        </th>\\r\\n                        <th class=\\\"w-50\\\">\\r\\n                            <div>Wk 6</div>\\r\\n                            <div>({{WeekDateList[5].label}})</div>\\r\\n                        </th>\\r\\n                        <th class=\\\"w-50\\\">\\r\\n                            <div>Wk 7</div>\\r\\n                            <div> ({{WeekDateList[6].label}})</div>\\r\\n                        </th>\\r\\n                        <th class=\\\"w-50\\\">\\r\\n                            <div>Wk 8</div>\\r\\n                            <div> ({{WeekDateList[7].label}})</div>\\r\\n                        </th>\\r\\n                        <th class=\\\"w-50\\\">\\r\\n                            <div>Wk 9</div>\\r\\n                            <div> ({{WeekDateList[8].label}})</div>\\r\\n                        </th>\\r\\n                        <th class=\\\"w-50\\\">\\r\\n                            <div>Wk 10</div>\\r\\n                            <div> ({{WeekDateList[9].label}})</div>\\r\\n                        </th>\\r\\n                        <th class=\\\"w-50\\\">\\r\\n                            <div>Wk 11</div>\\r\\n                            <div> ({{WeekDateList[10].label}})</div>\\r\\n                        </th>\\r\\n                        <th class=\\\"w-50\\\">\\r\\n                            <div>Wk 12</div>\\r\\n                            <div>({{WeekDateList[11].label}})</div>\\r\\n                        </th>\\r\\n                        <th class=\\\"w-50\\\" *ngIf=\\\"WeekDateList[12]!=undefined\\\">\\r\\n                            <div>Wk 13</div>\\r\\n                            <div>({{WeekDateList[12].label}})</div>\\r\\n                        </th>\\r\\n                        <th class=\\\"w-50\\\" *ngIf=\\\"WeekDateList[13]!=undefined\\\">\\r\\n                            <div>Wk 14</div>\\r\\n                            <div>({{WeekDateList[13].label}})</div>\\r\\n                        </th>\\r\\n                    </tr>\\r\\n                </thead>\\r\\n                <tbody id=\\\"databody\\\">\\r\\n                    <tr *ngFor=\\\"let metric of selectedMetrics\\\">\\r\\n                        <td class=\\\"min-width bodycol\\\" [attr.rowspan]=\\\"metric.goalSpan\\\" *ngIf=\\\"metric.goalSpan\\\">\\r\\n                            {{metric.GoalName}}</td>\\r\\n                        <td class=\\\"min-width bodycol1\\\">{{metric.Description}}</td>\\r\\n                        <td class=\\\"min-width-300 bodycol2\\\">\\r\\n                            <div class=\\\"row text-center\\\">\\r\\n                                <div class=\\\"col\\\" style=\\\"width:100px;flex-wrap: inherit;\\\">\\r\\n                                    <span\\r\\n                                        *ngIf=\\\"(metric.GreenTargetSymbol) && (metric.GreenTargetSymbol != '==')\\\">{{metric.GreenTargetSymbol}}</span>&nbsp;\\r\\n                                    <span\\r\\n                                        *ngIf=\\\"(metric.GreenTargetSymbol) && (metric.GreenTargetSymbol == '==')\\\">=</span>&nbsp;\\r\\n                                    <span\\r\\n                                        *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && metric.GreenTargetSymbol != 'No'\\\">{{metric.GreenMinimum}}</span>\\r\\n                                    <span *ngIf=\\\"!metric.GreenTargetSymbol\\\" class=\\\"f-b\\\">&nbsp;-&nbsp;</span>\\r\\n                                    <span *ngIf=\\\"!metric.GreenTargetSymbol\\\">{{metric.GreenMaximum}}</span>\\r\\n                                </div>\\r\\n                                <div class=\\\"col\\\" style=\\\"width:100px;flex-wrap: inherit;\\\">\\r\\n                                    <span\\r\\n                                        *ngIf=\\\"(metric.YellowTargetSymbol) && (metric.YellowTargetSymbol != '==')\\\">{{metric.YellowTargetSymbol}}</span>&nbsp;\\r\\n                                    <span\\r\\n                                        *ngIf=\\\"(metric.YellowTargetSymbol) && (metric.YellowTargetSymbol == '==')\\\">=</span>&nbsp;\\r\\n                                    <span\\r\\n                                        *ngIf=\\\"metric.YellowTargetSymbol != 'Yes' && metric.YellowTargetSymbol != 'No'\\\">{{metric.YellowMinimum}}</span>\\r\\n                                    <span *ngIf=\\\"!metric.YellowTargetSymbol\\\" class=\\\"f-b\\\">&nbsp;-&nbsp;</span>\\r\\n                                    <span *ngIf=\\\"!metric.YellowTargetSymbol\\\">{{metric.YellowMaximum}}</span>\\r\\n                                </div>\\r\\n                                <div class=\\\"col\\\" style=\\\"width:100px;flex-wrap: inherit;\\\">\\r\\n                                    <span\\r\\n                                        *ngIf=\\\"(metric.RedTargetSymbol) && (metric.RedTargetSymbol != '==')\\\">{{metric.RedTargetSymbol}}</span>&nbsp;\\r\\n                                    <span\\r\\n                                        *ngIf=\\\"(metric.RedTargetSymbol) && (metric.RedTargetSymbol == '==')\\\">=</span>&nbsp;\\r\\n                                    <span\\r\\n                                        *ngIf=\\\"metric.RedTargetSymbol != 'Yes' && metric.RedTargetSymbol != 'No'\\\">{{metric.RedMinimum}}</span>\\r\\n                                    <span *ngIf=\\\"!metric.RedTargetSymbol\\\" class=\\\"f-b\\\">&nbsp;-&nbsp;</span>\\r\\n                                    <span *ngIf=\\\"!metric.RedTargetSymbol\\\">{{metric.RedMaximum}}</span>\\r\\n                                </div>\\r\\n                            </div>\\r\\n                        </td>\\r\\n                        <td class=\\\"bodycol3\\\"><span>{{metric.Frequency}}</span></td>\\r\\n                        <td><span>{{metric.UOM}}</span></td>\\r\\n                        <td class=\\\"w-80\\\" [ngStyle]=\\\"myStyleWeek(metric, 1)\\\"\\r\\n                            [attr.colspan]=\\\"metric.Frequency == 'Weekly' ? '1' : '4'\\\">\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                                        metric.YellowTargetSymbol == 'Yes' ||\\r\\n                                        metric.RedTargetSymbol == 'Yes' ||\\r\\n                                        metric.GreenTargetSymbol == 'No' ||\\r\\n                                        metric.YellowTargetSymbol == 'No' ||\\r\\n                                        metric.RedTargetSymbol == 'No'\\\">{{metric.Week1 == 2 ? 'Yes' : metric.Week1 == 1\\r\\n                                ? 'No' : ''}}</span>\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                                        metric.GreenTargetSymbol != 'No' &&\\r\\n                                        metric.YellowTargetSymbol != 'Yes' &&\\r\\n                                        metric.YellowTargetSymbol != 'No' &&\\r\\n                                        metric.RedTargetSymbol != 'Yes' &&\\r\\n                                        metric.RedTargetSymbol != 'No'\\\">{{metric.Week1}}</span>\\r\\n                        </td>\\r\\n                        <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 2)\\\">\\r\\n                            <!-- <span>{{metric.Week2}}</span> -->\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                            metric.YellowTargetSymbol == 'Yes' ||\\r\\n                            metric.RedTargetSymbol == 'Yes' ||\\r\\n                            metric.GreenTargetSymbol == 'No' ||\\r\\n                            metric.YellowTargetSymbol == 'No' ||\\r\\n                            metric.RedTargetSymbol == 'No'\\\">{{metric.Week2 == 2 ? 'Yes' : metric.Week2 == 1 ? 'No' :\\r\\n                                ''}}</span>\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                            metric.GreenTargetSymbol != 'No' &&\\r\\n                            metric.YellowTargetSymbol != 'Yes' &&\\r\\n                            metric.YellowTargetSymbol != 'No' &&\\r\\n                            metric.RedTargetSymbol != 'Yes' &&\\r\\n                            metric.RedTargetSymbol != 'No'\\\">{{metric.Week2}}</span>\\r\\n                        </td>\\r\\n                        <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 3)\\\">\\r\\n                            <!-- <span>{{metric.Week3}}</span> -->\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                            metric.YellowTargetSymbol == 'Yes' ||\\r\\n                            metric.RedTargetSymbol == 'Yes' ||\\r\\n                            metric.GreenTargetSymbol == 'No' ||\\r\\n                            metric.YellowTargetSymbol == 'No' ||\\r\\n                            metric.RedTargetSymbol == 'No'\\\">{{metric.Week3 == 2 ? 'Yes' : metric.Week3 == 1 ? 'No' :\\r\\n                                ''}}</span>\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                            metric.GreenTargetSymbol != 'No' &&\\r\\n                            metric.YellowTargetSymbol != 'Yes' &&\\r\\n                            metric.YellowTargetSymbol != 'No' &&\\r\\n                            metric.RedTargetSymbol != 'Yes' &&\\r\\n                            metric.RedTargetSymbol != 'No'\\\">{{metric.Week3}}</span>\\r\\n                        </td>\\r\\n                        <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 4)\\\">\\r\\n                            <!-- <span>{{metric.Week4}}</span> -->\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                            metric.YellowTargetSymbol == 'Yes' ||\\r\\n                            metric.RedTargetSymbol == 'Yes' ||\\r\\n                            metric.GreenTargetSymbol == 'No' ||\\r\\n                            metric.YellowTargetSymbol == 'No' ||\\r\\n                            metric.RedTargetSymbol == 'No'\\\">{{metric.Week4 == 2 ? 'Yes' : metric.Week4 == 1 ?\\r\\n                                'No' : ''}}</span>\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                            metric.GreenTargetSymbol != 'No' &&\\r\\n                            metric.YellowTargetSymbol != 'Yes' &&\\r\\n                            metric.YellowTargetSymbol != 'No' &&\\r\\n                            metric.RedTargetSymbol != 'Yes' &&\\r\\n                            metric.RedTargetSymbol != 'No'\\\">{{metric.Week4}}</span>\\r\\n                        </td>\\r\\n                        <td class=\\\"w-80\\\" [ngStyle]=\\\"myStyleWeek(metric, 5)\\\"\\r\\n                            [attr.colspan]=\\\"metric.Frequency == 'Weekly' ? '1' : '4'\\\">\\r\\n                            <!-- <span>{{metric.Week5}}</span> -->\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                            metric.YellowTargetSymbol == 'Yes' ||\\r\\n                            metric.RedTargetSymbol == 'Yes' ||\\r\\n                            metric.GreenTargetSymbol == 'No' ||\\r\\n                            metric.YellowTargetSymbol == 'No' ||\\r\\n                            metric.RedTargetSymbol == 'No'\\\">{{metric.Week5 == 2 ? 'Yes' : metric.Week5 == 1 ? 'No' :\\r\\n                                ''}}</span>\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                            metric.GreenTargetSymbol != 'No' &&\\r\\n                            metric.YellowTargetSymbol != 'Yes' &&\\r\\n                            metric.YellowTargetSymbol != 'No' &&\\r\\n                            metric.RedTargetSymbol != 'Yes' &&\\r\\n                            metric.RedTargetSymbol != 'No'\\\">{{metric.Week5}}</span>\\r\\n                        </td>\\r\\n                        <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 6)\\\">\\r\\n                            <!-- <span>{{metric.Week6}}</span> -->\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                            metric.YellowTargetSymbol == 'Yes' ||\\r\\n                            metric.RedTargetSymbol == 'Yes' ||\\r\\n                            metric.GreenTargetSymbol == 'No' ||\\r\\n                            metric.YellowTargetSymbol == 'No' ||\\r\\n                            metric.RedTargetSymbol == 'No'\\\">{{metric.Week6 == 2 ? 'Yes' : metric.Week6 == 1 ? 'No' :\\r\\n                                ''}}</span>\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                            metric.GreenTargetSymbol != 'No' &&\\r\\n                            metric.YellowTargetSymbol != 'Yes' &&\\r\\n                            metric.YellowTargetSymbol != 'No' &&\\r\\n                            metric.RedTargetSymbol != 'Yes' &&\\r\\n                            metric.RedTargetSymbol != 'No'\\\">{{metric.Week6}}</span>\\r\\n                        </td>\\r\\n                        <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 7)\\\">\\r\\n                            <!-- <span>{{metric.Week7}}</span> -->\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                            metric.YellowTargetSymbol == 'Yes' ||\\r\\n                            metric.RedTargetSymbol == 'Yes' ||\\r\\n                            metric.GreenTargetSymbol == 'No' ||\\r\\n                            metric.YellowTargetSymbol == 'No' ||\\r\\n                            metric.RedTargetSymbol == 'No'\\\">{{metric.Week7 == 2 ? 'Yes' : metric.Week7 == 1 ? 'No' :\\r\\n                                ''}}</span>\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                            metric.GreenTargetSymbol != 'No' &&\\r\\n                            metric.YellowTargetSymbol != 'Yes' &&\\r\\n                            metric.YellowTargetSymbol != 'No' &&\\r\\n                            metric.RedTargetSymbol != 'Yes' &&\\r\\n                            metric.RedTargetSymbol != 'No'\\\">{{metric.Week7}}</span>\\r\\n                        </td>\\r\\n                        <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 8)\\\">\\r\\n                            <!-- <span>{{metric.Week8}}</span> -->\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                            metric.YellowTargetSymbol == 'Yes' ||\\r\\n                            metric.RedTargetSymbol == 'Yes' ||\\r\\n                            metric.GreenTargetSymbol == 'No' ||\\r\\n                            metric.YellowTargetSymbol == 'No' ||\\r\\n                            metric.RedTargetSymbol == 'No'\\\">{{metric.Week8 == 2 ? 'Yes' : metric.Week8 == 1 ?\\r\\n                                'No' : ''}}</span>\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                            metric.GreenTargetSymbol != 'No' &&\\r\\n                            metric.YellowTargetSymbol != 'Yes' &&\\r\\n                            metric.YellowTargetSymbol != 'No' &&\\r\\n                            metric.RedTargetSymbol != 'Yes' &&\\r\\n                            metric.RedTargetSymbol != 'No'\\\">{{metric.Week8}}</span>\\r\\n                        </td>\\r\\n                        <td class=\\\"w-80\\\" [ngStyle]=\\\"myStyleWeek(metric, 9)\\\"\\r\\n                            [attr.colspan]=\\\"metric.Frequency == 'Weekly' ? '1' : '6'\\\">\\r\\n                            <!-- <span>{{metric.Week9}}</span> -->\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                            metric.YellowTargetSymbol == 'Yes' ||\\r\\n                            metric.RedTargetSymbol == 'Yes' ||\\r\\n                            metric.GreenTargetSymbol == 'No' ||\\r\\n                            metric.YellowTargetSymbol == 'No' ||\\r\\n                            metric.RedTargetSymbol == 'No'\\\">{{metric.Week9 == 2 ? 'Yes' : metric.Week9 == 1 ? 'No' :\\r\\n                                ''}}</span>\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                            metric.GreenTargetSymbol != 'No' &&\\r\\n                            metric.YellowTargetSymbol != 'Yes' &&\\r\\n                            metric.YellowTargetSymbol != 'No' &&\\r\\n                            metric.RedTargetSymbol != 'Yes' &&\\r\\n                            metric.RedTargetSymbol != 'No'\\\">{{metric.Week9}}</span>\\r\\n                        </td>\\r\\n                        <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 10)\\\">\\r\\n                            <!-- <span>{{metric.Week10}}</span> -->\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                            metric.YellowTargetSymbol == 'Yes' ||\\r\\n                            metric.RedTargetSymbol == 'Yes' ||\\r\\n                            metric.GreenTargetSymbol == 'No' ||\\r\\n                            metric.YellowTargetSymbol == 'No' ||\\r\\n                            metric.RedTargetSymbol == 'No'\\\">{{metric.Week10 == 2 ? 'Yes' : metric.Week10 == 1 ? 'No' :\\r\\n                                ''}}</span>\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                            metric.GreenTargetSymbol != 'No' &&\\r\\n                            metric.YellowTargetSymbol != 'Yes' &&\\r\\n                            metric.YellowTargetSymbol != 'No' &&\\r\\n                            metric.RedTargetSymbol != 'Yes' &&\\r\\n                            metric.RedTargetSymbol != 'No'\\\">{{metric.Week10}}</span>\\r\\n                        </td>\\r\\n                        <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 11)\\\">\\r\\n                            <!-- <span>{{metric.Week11}}</span> -->\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                            metric.YellowTargetSymbol == 'Yes' ||\\r\\n                            metric.RedTargetSymbol == 'Yes' ||\\r\\n                            metric.GreenTargetSymbol == 'No' ||\\r\\n                            metric.YellowTargetSymbol == 'No' ||\\r\\n                            metric.RedTargetSymbol == 'No'\\\">{{metric.Week11 == 2 ? 'Yes' : metric.Week11 == 1 ? 'No' :\\r\\n                                ''}}</span>\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                            metric.GreenTargetSymbol != 'No' &&\\r\\n                            metric.YellowTargetSymbol != 'Yes' &&\\r\\n                            metric.YellowTargetSymbol != 'No' &&\\r\\n                            metric.RedTargetSymbol != 'Yes' &&\\r\\n                            metric.RedTargetSymbol != 'No'\\\">{{metric.Week11}}</span>\\r\\n                        </td>\\r\\n                        <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 12)\\\">\\r\\n                            <!-- <span>{{metric.Week12}}</span> -->\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                            metric.YellowTargetSymbol == 'Yes' ||\\r\\n                            metric.RedTargetSymbol == 'Yes' ||\\r\\n                            metric.GreenTargetSymbol == 'No' ||\\r\\n                            metric.YellowTargetSymbol == 'No' ||\\r\\n                            metric.RedTargetSymbol == 'No'\\\">{{metric.Week12 == 2 ? 'Yes' : metric.Week12 == 1 ? 'No' :\\r\\n                                ''}}</span>\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                            metric.GreenTargetSymbol != 'No' &&\\r\\n                            metric.YellowTargetSymbol != 'Yes' &&\\r\\n                            metric.YellowTargetSymbol != 'No' &&\\r\\n                            metric.RedTargetSymbol != 'Yes' &&\\r\\n                            metric.RedTargetSymbol != 'No'\\\">{{metric.Week12}}</span>\\r\\n                        </td>\\r\\n                        <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly' && WeekDateList[12]!=undefined\\\"\\r\\n                            [ngStyle]=\\\"myStyleWeek(metric, 13)\\\">\\r\\n                            <!-- <span>{{metric.Week13}}</span> -->\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                            metric.YellowTargetSymbol == 'Yes' ||\\r\\n                            metric.RedTargetSymbol == 'Yes' ||\\r\\n                            metric.GreenTargetSymbol == 'No' ||\\r\\n                            metric.YellowTargetSymbol == 'No' ||\\r\\n                            metric.RedTargetSymbol == 'No'\\\">{{metric.Week13 == 2 ? 'Yes' : metric.Week13 == 1 ? 'No' :\\r\\n                                ''}}</span>\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                            metric.GreenTargetSymbol != 'No' &&\\r\\n                            metric.YellowTargetSymbol != 'Yes' &&\\r\\n                            metric.YellowTargetSymbol != 'No' &&\\r\\n                            metric.RedTargetSymbol != 'Yes' &&\\r\\n                            metric.RedTargetSymbol != 'No'\\\">{{metric.Week13}}</span>\\r\\n                        </td>\\r\\n\\r\\n                        <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly' && WeekDateList[13]!=undefined\\\"\\r\\n                            [ngStyle]=\\\"myStyleWeek(metric, 14)\\\">\\r\\n                            <!-- <span>{{metric.Week14}}</span> -->\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                            metric.YellowTargetSymbol == 'Yes' ||\\r\\n                            metric.RedTargetSymbol == 'Yes' ||\\r\\n                            metric.GreenTargetSymbol == 'No' ||\\r\\n                            metric.YellowTargetSymbol == 'No' ||\\r\\n                            metric.RedTargetSymbol == 'No'\\\">{{metric.Week14 == 2 ? 'Yes' : metric.Week14 == 1 ? 'No' :\\r\\n                                ''}}</span>\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                            metric.GreenTargetSymbol != 'No' &&\\r\\n                            metric.YellowTargetSymbol != 'Yes' &&\\r\\n                            metric.YellowTargetSymbol != 'No' &&\\r\\n                            metric.RedTargetSymbol != 'Yes' &&\\r\\n                            metric.RedTargetSymbol != 'No'\\\">{{metric.Week14}}</span>\\r\\n                        </td>\\r\\n                    </tr>\\r\\n\\r\\n                </tbody>\\r\\n            </table>\\r\\n        </div>\\r\\n    </div>\\r\\n\\r\\n    <div class=\\\"p-t-20\\\" style=\\\"display: none;\\\">\\r\\n        <div class=\\\"table-responsive\\\" style=\\\"font-size: small;\\\">\\r\\n            <table class=\\\"table table-bordered\\\" id=\\\"table1\\\">\\r\\n                <thead *ngIf=\\\"WeekDateList.length > 0\\\">\\r\\n                    <tr>\\r\\n                        <th class=\\\"min-width headcol text-center\\\">Goal</th>\\r\\n                        <th class=\\\"min-width headcol1\\\">Metric</th>\\r\\n                        <th class=\\\"headcol2\\\">Green</th>\\r\\n                        <th class=\\\"headcol2\\\">Yellow</th>\\r\\n                        <th class=\\\"headcol2\\\">Red</th>\\r\\n                        <th style=\\\"width:80px;\\\">Frequency</th>\\r\\n                        <th style=\\\"width:80px;\\\">UOM</th>\\r\\n                        <th class=\\\"w-50\\\">\\r\\n                            <div>Wk 1</div>\\r\\n                            <div>({{WeekDateList[0].label}})</div>\\r\\n                        </th>\\r\\n                        <th class=\\\"w-50\\\">\\r\\n                            <div>Wk 2</div>\\r\\n                            <div>({{WeekDateList[1].label}})</div>\\r\\n                        </th>\\r\\n                        <th class=\\\"w-50\\\">\\r\\n                            <div>Wk 3</div>\\r\\n                            <div>({{WeekDateList[2].label}})</div>\\r\\n                        </th>\\r\\n                        <th class=\\\"w-50\\\">\\r\\n                            <div>Wk 4 </div>\\r\\n                            <div>({{WeekDateList[3].label}})</div>\\r\\n                        </th>\\r\\n                        <th class=\\\"w-50\\\">\\r\\n                            <div>Wk 5</div>\\r\\n                            <div>({{WeekDateList[4].label}})</div>\\r\\n                        </th>\\r\\n                        <th class=\\\"w-50\\\">\\r\\n                            <div>Wk 6</div>\\r\\n                            <div>({{WeekDateList[5].label}})</div>\\r\\n                        </th>\\r\\n                        <th class=\\\"w-50\\\">\\r\\n                            <div>Wk 7</div>\\r\\n                            <div> ({{WeekDateList[6].label}})</div>\\r\\n                        </th>\\r\\n                        <th class=\\\"w-50\\\">\\r\\n                            <div>Wk 8</div>\\r\\n                            <div> ({{WeekDateList[7].label}})</div>\\r\\n                        </th>\\r\\n                        <th class=\\\"w-50\\\">\\r\\n                            <div>Wk 9</div>\\r\\n                            <div> ({{WeekDateList[8].label}})</div>\\r\\n                        </th>\\r\\n                        <th class=\\\"w-50\\\">\\r\\n                            <div>Wk 10</div>\\r\\n                            <div> ({{WeekDateList[9].label}})</div>\\r\\n                        </th>\\r\\n                        <th class=\\\"w-50\\\">\\r\\n                            <div>Wk 11</div>\\r\\n                            <div> ({{WeekDateList[10].label}})</div>\\r\\n                        </th>\\r\\n                        <th class=\\\"w-50\\\">\\r\\n                            <div>Wk 12</div>\\r\\n                            <div>({{WeekDateList[11].label}})</div>\\r\\n                        </th>\\r\\n                        <th class=\\\"w-50\\\" *ngIf=\\\"WeekDateList[12]!=undefined\\\">\\r\\n                            <div>Wk 13</div>\\r\\n                            <div>({{WeekDateList[12].label}})</div>\\r\\n                        </th>\\r\\n                        <th class=\\\"w-50\\\" *ngIf=\\\"WeekDateList[13]!=undefined\\\">\\r\\n                            <div>Wk 14</div>\\r\\n                            <div>({{WeekDateList[13].label}})</div>\\r\\n                        </th>\\r\\n                    </tr>\\r\\n                </thead>\\r\\n                <tbody id=\\\"databody\\\">\\r\\n                    <tr *ngFor=\\\"let metric of excelMetricList\\\">\\r\\n                        <td class=\\\"min-width bodycol\\\" [attr.rowspan]=\\\"metric.goalSpan\\\" *ngIf=\\\"metric.goalSpan\\\">\\r\\n                            {{metric.GoalName}}</td>\\r\\n                        <td class=\\\"min-width bodycol1\\\">{{metric.Description}}</td>\\r\\n                        <td>\\r\\n                            <span\\r\\n                                *ngIf=\\\"(metric.GreenTargetSymbol) && (metric.GreenTargetSymbol != '==')\\\">{{metric.GreenTargetSymbol}}</span>&nbsp;\\r\\n                            <span\\r\\n                                *ngIf=\\\"(metric.GreenTargetSymbol) && (metric.GreenTargetSymbol == '==')\\\">=</span>&nbsp;\\r\\n                            <span\\r\\n                                *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && metric.GreenTargetSymbol != 'No'\\\">{{metric.GreenMinimum}}</span>\\r\\n                            <span *ngIf=\\\"!metric.GreenTargetSymbol\\\" class=\\\"f-b\\\">&nbsp;-&nbsp;</span>\\r\\n                            <span *ngIf=\\\"!metric.GreenTargetSymbol\\\">{{metric.GreenMaximum}}</span>\\r\\n                        </td>\\r\\n                        <td>\\r\\n                            <span\\r\\n                                *ngIf=\\\"(metric.YellowTargetSymbol) && (metric.YellowTargetSymbol != '==')\\\">{{metric.YellowTargetSymbol}}</span>&nbsp;\\r\\n                            <span\\r\\n                                *ngIf=\\\"(metric.YellowTargetSymbol) && (metric.YellowTargetSymbol == '==')\\\">=</span>&nbsp;\\r\\n                            <span\\r\\n                                *ngIf=\\\"metric.YellowTargetSymbol != 'Yes' && metric.YellowTargetSymbol != 'No'\\\">{{metric.YellowMinimum}}</span>\\r\\n                            <span *ngIf=\\\"!metric.YellowTargetSymbol\\\" class=\\\"f-b\\\">&nbsp;-&nbsp;</span>\\r\\n                            <span *ngIf=\\\"!metric.YellowTargetSymbol\\\">{{metric.YellowMaximum}}</span>\\r\\n                        </td>\\r\\n                        <td>\\r\\n                            <span\\r\\n                                *ngIf=\\\"(metric.RedTargetSymbol) && (metric.RedTargetSymbol != '==')\\\">{{metric.RedTargetSymbol}}</span>&nbsp;\\r\\n                            <span *ngIf=\\\"(metric.RedTargetSymbol) && (metric.RedTargetSymbol == '==')\\\">=</span>&nbsp;\\r\\n                            <span\\r\\n                                *ngIf=\\\"metric.RedTargetSymbol != 'Yes' && metric.RedTargetSymbol != 'No'\\\">{{metric.RedMinimum}}</span>\\r\\n                            <span *ngIf=\\\"!metric.RedTargetSymbol\\\" class=\\\"f-b\\\">&nbsp;-&nbsp;</span>\\r\\n                            <span *ngIf=\\\"!metric.RedTargetSymbol\\\">{{metric.RedMaximum}}</span>\\r\\n                        </td>\\r\\n                        <td class=\\\"bodycol3\\\"><span>{{metric.Frequency}}</span></td>\\r\\n                        <td><span>{{metric.UOM}}</span></td>\\r\\n                        <td class=\\\"w-80\\\" [ngStyle]=\\\"myStyleWeek(metric, 1)\\\"\\r\\n                            [attr.colspan]=\\\"metric.Frequency == 'Weekly' ? '1' : '4'\\\">\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                                        metric.YellowTargetSymbol == 'Yes' ||\\r\\n                                        metric.RedTargetSymbol == 'Yes' ||\\r\\n                                        metric.GreenTargetSymbol == 'No' ||\\r\\n                                        metric.YellowTargetSymbol == 'No' ||\\r\\n                                        metric.RedTargetSymbol == 'No'\\\">{{metric.Week1 == 2 ? 'Yes' : metric.Week1 == 1\\r\\n                                ? 'No' : ''}}</span>\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                                        metric.GreenTargetSymbol != 'No' &&\\r\\n                                        metric.YellowTargetSymbol != 'Yes' &&\\r\\n                                        metric.YellowTargetSymbol != 'No' &&\\r\\n                                        metric.RedTargetSymbol != 'Yes' &&\\r\\n                                        metric.RedTargetSymbol != 'No'\\\">{{metric.Week1}}</span>\\r\\n                        </td>\\r\\n                        <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 2)\\\">\\r\\n                            <!-- <span>{{metric.Week2}}</span> -->\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                            metric.YellowTargetSymbol == 'Yes' ||\\r\\n                            metric.RedTargetSymbol == 'Yes' ||\\r\\n                            metric.GreenTargetSymbol == 'No' ||\\r\\n                            metric.YellowTargetSymbol == 'No' ||\\r\\n                            metric.RedTargetSymbol == 'No'\\\">{{metric.Week2 == 2 ? 'Yes' : metric.Week2 == 1 ? 'No' :\\r\\n                                ''}}</span>\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                            metric.GreenTargetSymbol != 'No' &&\\r\\n                            metric.YellowTargetSymbol != 'Yes' &&\\r\\n                            metric.YellowTargetSymbol != 'No' &&\\r\\n                            metric.RedTargetSymbol != 'Yes' &&\\r\\n                            metric.RedTargetSymbol != 'No'\\\">{{metric.Week2}}</span>\\r\\n                        </td>\\r\\n                        <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 3)\\\">\\r\\n                            <!-- <span>{{metric.Week3}}</span> -->\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                            metric.YellowTargetSymbol == 'Yes' ||\\r\\n                            metric.RedTargetSymbol == 'Yes' ||\\r\\n                            metric.GreenTargetSymbol == 'No' ||\\r\\n                            metric.YellowTargetSymbol == 'No' ||\\r\\n                            metric.RedTargetSymbol == 'No'\\\">{{metric.Week3 == 2 ? 'Yes' : metric.Week3 == 1 ? 'No' :\\r\\n                                ''}}</span>\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                            metric.GreenTargetSymbol != 'No' &&\\r\\n                            metric.YellowTargetSymbol != 'Yes' &&\\r\\n                            metric.YellowTargetSymbol != 'No' &&\\r\\n                            metric.RedTargetSymbol != 'Yes' &&\\r\\n                            metric.RedTargetSymbol != 'No'\\\">{{metric.Week3}}</span>\\r\\n                        </td>\\r\\n                        <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 4)\\\">\\r\\n                            <!-- <span>{{metric.Week4}}</span> -->\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                            metric.YellowTargetSymbol == 'Yes' ||\\r\\n                            metric.RedTargetSymbol == 'Yes' ||\\r\\n                            metric.GreenTargetSymbol == 'No' ||\\r\\n                            metric.YellowTargetSymbol == 'No' ||\\r\\n                            metric.RedTargetSymbol == 'No'\\\">{{metric.Week4 == 2 ? 'Yes' : metric.Week4 == 1 ?\\r\\n                                'No' : ''}}</span>\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                            metric.GreenTargetSymbol != 'No' &&\\r\\n                            metric.YellowTargetSymbol != 'Yes' &&\\r\\n                            metric.YellowTargetSymbol != 'No' &&\\r\\n                            metric.RedTargetSymbol != 'Yes' &&\\r\\n                            metric.RedTargetSymbol != 'No'\\\">{{metric.Week4}}</span>\\r\\n                        </td>\\r\\n                        <td class=\\\"w-80\\\" [ngStyle]=\\\"myStyleWeek(metric, 5)\\\"\\r\\n                            [attr.colspan]=\\\"metric.Frequency == 'Weekly' ? '1' : '4'\\\">\\r\\n                            <!-- <span>{{metric.Week5}}</span> -->\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                            metric.YellowTargetSymbol == 'Yes' ||\\r\\n                            metric.RedTargetSymbol == 'Yes' ||\\r\\n                            metric.GreenTargetSymbol == 'No' ||\\r\\n                            metric.YellowTargetSymbol == 'No' ||\\r\\n                            metric.RedTargetSymbol == 'No'\\\">{{metric.Week5 == 2 ? 'Yes' : metric.Week5 == 1 ? 'No' :\\r\\n                                ''}}</span>\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                            metric.GreenTargetSymbol != 'No' &&\\r\\n                            metric.YellowTargetSymbol != 'Yes' &&\\r\\n                            metric.YellowTargetSymbol != 'No' &&\\r\\n                            metric.RedTargetSymbol != 'Yes' &&\\r\\n                            metric.RedTargetSymbol != 'No'\\\">{{metric.Week5}}</span>\\r\\n                        </td>\\r\\n                        <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 6)\\\">\\r\\n                            <!-- <span>{{metric.Week6}}</span> -->\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                            metric.YellowTargetSymbol == 'Yes' ||\\r\\n                            metric.RedTargetSymbol == 'Yes' ||\\r\\n                            metric.GreenTargetSymbol == 'No' ||\\r\\n                            metric.YellowTargetSymbol == 'No' ||\\r\\n                            metric.RedTargetSymbol == 'No'\\\">{{metric.Week6 == 2 ? 'Yes' : metric.Week6 == 1 ? 'No' :\\r\\n                                ''}}</span>\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                            metric.GreenTargetSymbol != 'No' &&\\r\\n                            metric.YellowTargetSymbol != 'Yes' &&\\r\\n                            metric.YellowTargetSymbol != 'No' &&\\r\\n                            metric.RedTargetSymbol != 'Yes' &&\\r\\n                            metric.RedTargetSymbol != 'No'\\\">{{metric.Week6}}</span>\\r\\n                        </td>\\r\\n                        <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 7)\\\">\\r\\n                            <!-- <span>{{metric.Week7}}</span> -->\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                            metric.YellowTargetSymbol == 'Yes' ||\\r\\n                            metric.RedTargetSymbol == 'Yes' ||\\r\\n                            metric.GreenTargetSymbol == 'No' ||\\r\\n                            metric.YellowTargetSymbol == 'No' ||\\r\\n                            metric.RedTargetSymbol == 'No'\\\">{{metric.Week7 == 2 ? 'Yes' : metric.Week7 == 1 ? 'No' :\\r\\n                                ''}}</span>\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                            metric.GreenTargetSymbol != 'No' &&\\r\\n                            metric.YellowTargetSymbol != 'Yes' &&\\r\\n                            metric.YellowTargetSymbol != 'No' &&\\r\\n                            metric.RedTargetSymbol != 'Yes' &&\\r\\n                            metric.RedTargetSymbol != 'No'\\\">{{metric.Week7}}</span>\\r\\n                        </td>\\r\\n                        <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 8)\\\">\\r\\n                            <!-- <span>{{metric.Week8}}</span> -->\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                            metric.YellowTargetSymbol == 'Yes' ||\\r\\n                            metric.RedTargetSymbol == 'Yes' ||\\r\\n                            metric.GreenTargetSymbol == 'No' ||\\r\\n                            metric.YellowTargetSymbol == 'No' ||\\r\\n                            metric.RedTargetSymbol == 'No'\\\">{{metric.Week8 == 2 ? 'Yes' : metric.Week8 == 1 ?\\r\\n                                'No' : ''}}</span>\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                            metric.GreenTargetSymbol != 'No' &&\\r\\n                            metric.YellowTargetSymbol != 'Yes' &&\\r\\n                            metric.YellowTargetSymbol != 'No' &&\\r\\n                            metric.RedTargetSymbol != 'Yes' &&\\r\\n                            metric.RedTargetSymbol != 'No'\\\">{{metric.Week8}}</span>\\r\\n                        </td>\\r\\n                        <td class=\\\"w-80\\\" [ngStyle]=\\\"myStyleWeek(metric, 9)\\\"\\r\\n                            [attr.colspan]=\\\"metric.Frequency == 'Weekly' ? '1' : '6'\\\">\\r\\n                            <!-- <span>{{metric.Week9}}</span> -->\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                            metric.YellowTargetSymbol == 'Yes' ||\\r\\n                            metric.RedTargetSymbol == 'Yes' ||\\r\\n                            metric.GreenTargetSymbol == 'No' ||\\r\\n                            metric.YellowTargetSymbol == 'No' ||\\r\\n                            metric.RedTargetSymbol == 'No'\\\">{{metric.Week9 == 2 ? 'Yes' : metric.Week9 == 1 ? 'No' :\\r\\n                                ''}}</span>\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                            metric.GreenTargetSymbol != 'No' &&\\r\\n                            metric.YellowTargetSymbol != 'Yes' &&\\r\\n                            metric.YellowTargetSymbol != 'No' &&\\r\\n                            metric.RedTargetSymbol != 'Yes' &&\\r\\n                            metric.RedTargetSymbol != 'No'\\\">{{metric.Week9}}</span>\\r\\n                        </td>\\r\\n                        <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 10)\\\">\\r\\n                            <!-- <span>{{metric.Week10}}</span> -->\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                            metric.YellowTargetSymbol == 'Yes' ||\\r\\n                            metric.RedTargetSymbol == 'Yes' ||\\r\\n                            metric.GreenTargetSymbol == 'No' ||\\r\\n                            metric.YellowTargetSymbol == 'No' ||\\r\\n                            metric.RedTargetSymbol == 'No'\\\">{{metric.Week10 == 2 ? 'Yes' : metric.Week10 == 1 ? 'No' :\\r\\n                                ''}}</span>\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                            metric.GreenTargetSymbol != 'No' &&\\r\\n                            metric.YellowTargetSymbol != 'Yes' &&\\r\\n                            metric.YellowTargetSymbol != 'No' &&\\r\\n                            metric.RedTargetSymbol != 'Yes' &&\\r\\n                            metric.RedTargetSymbol != 'No'\\\">{{metric.Week10}}</span>\\r\\n                        </td>\\r\\n                        <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 11)\\\">\\r\\n                            <!-- <span>{{metric.Week11}}</span> -->\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                            metric.YellowTargetSymbol == 'Yes' ||\\r\\n                            metric.RedTargetSymbol == 'Yes' ||\\r\\n                            metric.GreenTargetSymbol == 'No' ||\\r\\n                            metric.YellowTargetSymbol == 'No' ||\\r\\n                            metric.RedTargetSymbol == 'No'\\\">{{metric.Week11 == 2 ? 'Yes' : metric.Week11 == 1 ? 'No' :\\r\\n                                ''}}</span>\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                            metric.GreenTargetSymbol != 'No' &&\\r\\n                            metric.YellowTargetSymbol != 'Yes' &&\\r\\n                            metric.YellowTargetSymbol != 'No' &&\\r\\n                            metric.RedTargetSymbol != 'Yes' &&\\r\\n                            metric.RedTargetSymbol != 'No'\\\">{{metric.Week11}}</span>\\r\\n                        </td>\\r\\n                        <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 12)\\\">\\r\\n                            <!-- <span>{{metric.Week12}}</span> -->\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                            metric.YellowTargetSymbol == 'Yes' ||\\r\\n                            metric.RedTargetSymbol == 'Yes' ||\\r\\n                            metric.GreenTargetSymbol == 'No' ||\\r\\n                            metric.YellowTargetSymbol == 'No' ||\\r\\n                            metric.RedTargetSymbol == 'No'\\\">{{metric.Week12 == 2 ? 'Yes' : metric.Week12 == 1 ? 'No' :\\r\\n                                ''}}</span>\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                            metric.GreenTargetSymbol != 'No' &&\\r\\n                            metric.YellowTargetSymbol != 'Yes' &&\\r\\n                            metric.YellowTargetSymbol != 'No' &&\\r\\n                            metric.RedTargetSymbol != 'Yes' &&\\r\\n                            metric.RedTargetSymbol != 'No'\\\">{{metric.Week12}}</span>\\r\\n                        </td>\\r\\n                        <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly' && WeekDateList[12]!=undefined\\\"\\r\\n                            [ngStyle]=\\\"myStyleWeek(metric, 13)\\\">\\r\\n                            <!-- <span>{{metric.Week13}}</span> -->\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                            metric.YellowTargetSymbol == 'Yes' ||\\r\\n                            metric.RedTargetSymbol == 'Yes' ||\\r\\n                            metric.GreenTargetSymbol == 'No' ||\\r\\n                            metric.YellowTargetSymbol == 'No' ||\\r\\n                            metric.RedTargetSymbol == 'No'\\\">{{metric.Week13 == 2 ? 'Yes' : metric.Week13 == 1 ? 'No' :\\r\\n                                ''}}</span>\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                            metric.GreenTargetSymbol != 'No' &&\\r\\n                            metric.YellowTargetSymbol != 'Yes' &&\\r\\n                            metric.YellowTargetSymbol != 'No' &&\\r\\n                            metric.RedTargetSymbol != 'Yes' &&\\r\\n                            metric.RedTargetSymbol != 'No'\\\">{{metric.Week13}}</span>\\r\\n                        </td>\\r\\n\\r\\n                        <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly' && WeekDateList[13]!=undefined\\\"\\r\\n                            [ngStyle]=\\\"myStyleWeek(metric, 14)\\\">\\r\\n                            <!-- <span>{{metric.Week14}}</span> -->\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n                            metric.YellowTargetSymbol == 'Yes' ||\\r\\n                            metric.RedTargetSymbol == 'Yes' ||\\r\\n                            metric.GreenTargetSymbol == 'No' ||\\r\\n                            metric.YellowTargetSymbol == 'No' ||\\r\\n                            metric.RedTargetSymbol == 'No'\\\">{{metric.Week14 == 2 ? 'Yes' : metric.Week14 == 1 ? 'No' :\\r\\n                                ''}}</span>\\r\\n                            <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n                            metric.GreenTargetSymbol != 'No' &&\\r\\n                            metric.YellowTargetSymbol != 'Yes' &&\\r\\n                            metric.YellowTargetSymbol != 'No' &&\\r\\n                            metric.RedTargetSymbol != 'Yes' &&\\r\\n                            metric.RedTargetSymbol != 'No'\\\">{{metric.Week14}}</span>\\r\\n                        </td>\\r\\n                    </tr>\\r\\n\\r\\n                </tbody>\\r\\n            </table>\\r\\n        </div>\\r\\n    </div>\\r\\n\\r\\n</div>\\r\\n\"","import { Component, OnInit, Inject, } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { DorseyService } from '../dorsey.service';\nimport { FormControl } from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { copyRight } from '../copyRight.model';\n\n\n\n@Component({\n  selector: 'app-activity',\n  templateUrl: './activity.component.html',\n  providers: [DorseyService]\n})\nexport class ActivityComponent implements OnInit {\n  employeeLoginLevel = EmployeeLoginLevel;\n  employeeDetails: any;\n  companyName: string;\n\n  granualActivity = [];\n  ProcessByTeam = [];\n  headerText: string;\n  status = false;\n  activityData: any;\n  originalData: any;\n  departmentData: any;\n  employeeData: any;\n  processData: any;\n  CompanyID: string;\n  ProcessID: string;\n  // ProcessID1: string;\n  DepartmentID: string;\n  EmployeeID: number;\n  ActivityTypeID: string;\n  activityTypeData: any;\n  ActivityID: string;\n  condition = false;\n  ActivityName: string;\n  p: number = 1;\n  rowsOnPage = 10;\n  rowsOnPageSet = [];\n  rowCount: any;\n  dynamicRows = 10;\n  isDesc: boolean = false;\n  column = \"\";\n  direction: number;\n  arrow = true;\n\n  parentID: number\n  searchTerm: FormControl = new FormControl();\n  myBooks = <any>[];\n  searchtext: string;\n  saveFilter = [];\n  activityPaging = false;\n  teamData: any;\n  //teamids=[];\n  keyActivityTeam: any;\n  isDisable = false;\n  disableSearch = false;\n  TeamID: number;\n  currentUser: string;\n  menuData: any;\n  MenuPermissions: any;\n  menuName: string;\n  menuID: string;\n  Permissons: any;\n  ParentName = [];\n  TeamIDByProcess: string;\n  EmpROleID: string;\n  squence: number;\n  empID: string;\n  tempAc = [];\n  userTeamID: string;\n  loginCompanyName: any;\n  lastSequence: number;\n  TeamName: any;\n  pointerData: any;\n  actData: any;\n  sequenceList = [];\n  usersData: any;\n  userRoleAssignmentData: any;\n  rolesData: any;\n  UserID: any;\n  copyDate: number;\n  companyData: any;\n  constructor(public dialog: MatDialog, public dorseyService: DorseyService, private storage: LocalStorageService) {\n    // this.Permissons=this.storage.retrieve(\"Permissions\");\n    this.userTeamID = this.storage.retrieve('TeamID');\n    this.CompanyID = this.storage.retrieve('companyID');\n    this.menuData = this.storage.retrieve('menuData');\n    this.currentUser = this.storage.retrieve('user');\n    this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n\n    this.empID = this.storage.retrieve(\"EmployeeID\");\n    this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n    this.UserID = this.storage.retrieve('UserID');\n    this.EmpROleID = this.storage.retrieve('EmpRoleID');\n    this.employeeDetails = this.storage.retrieve('employeeDetails');\n    this.GetTeam();\n  }\n\n  ngOnInit() {\n    if (this.employeeDetails) {\n      this.EmployeeID = this.employeeDetails.EmployeeID;\n      this.TeamID = this.employeeDetails.TeamID;\n    }\n    else {\n      this.EmployeeID = 0;\n    }\n    this.menuData = this.menuData.filter(x => x.MenuName.toString().toLowerCase() === 'activity');\n\n    if (this.menuData.length > 0) {\n      this.menuName = this.menuData[0][\"MenuName\"];\n      this.menuID = this.menuData[0][\"MenuID\"];\n    }\n    this.GetProcess();\n    this.GetActivity();\n    this.GetActivityType();\n    this.GetActivitiesTeam();\n    this.copyDate = (new Date()).getFullYear();\n  }\n\n  GetUsers() {\n    this.dorseyService.GetUsersList().subscribe(users => {\n      this.usersData = JSON.parse(users['_body']);\n    });\n  }\n  GetRoles() {\n    this.dorseyService.GetRoles(this.CompanyID).subscribe(users => {\n      this.rolesData = JSON.parse(users['_body']);\n    });\n  }\n  GetUserRoleAssignment() {\n    this.dorseyService.GetUserRoleAssignment().subscribe(userRoles => {\n      this.userRoleAssignmentData = JSON.parse(userRoles['_body']);\n      this.dorseyService.GetRoles(this.CompanyID).subscribe(users => {\n        this.rolesData = JSON.parse(users['_body']);\n        if (this.empID.toString() !== '0') {\n          let roles = this.userRoleAssignmentData.filter(x => x.UserID === this.UserID);\n          if (roles.length > 0) {\n            this.EmpROleID = roles[0].RoleID;\n            let roleData = this.rolesData.filter(x => x.RoleID === this.EmpROleID);\n            if (roleData.length > 0) {\n              this.MenuPermissions = JSON.parse(roleData[0].MenuJson);\n            }\n\n          }\n        }\n      });\n    });\n  }\n\n  OpenActivity(type: string) {\n    this.dialogCall(type);\n  }\n  GetTeam() {\n    this.dorseyService.GetTeam(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.teamData = subData;\n\n      if (this.employeeDetails) {\n        if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLoginLevel.Department) {\n          this.teamData = this.teamData.filter(ent => ent.DepartmentID == this.employeeDetails.DepartmentID)\n        }\n        else if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLoginLevel.Team) {\n          this.teamData = this.teamData.filter(ent => ent.DepartmentID == this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID)\n          this.TeamName = this.teamData[0].TeamName;\n        }\n        else {\n          this.teamData = subData;\n        }\n      }\n    });\n  }\n\n  GetActivitiesTeam() {\n    this.dorseyService.GetActivitiesTeam().subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.keyActivityTeam = subData;\n    });\n  }\n\n  Searchtext() {\n    this.activityData = this.saveFilter;\n\n    let tempActivity = this.activityData.filter(\n      (item) => {\n        return (\n          (item.ProcessName !== null && item.ProcessName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n          || (item.ActivityName !== null && item.ActivityName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)) ||\n          (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.ActivityTypeName !== null && item.ActivityTypeName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.Parentname !== null && item.Parentname.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1);\n        ;\n      }\n\n    );\n    this.activityData = tempActivity;\n    if (this.activityData.length == 0) {\n      // this.GetActivity();\n      this.isDisable = true;\n    } else {\n      this.isDisable = false;\n    }\n    if (this.searchtext === '') {\n      this.activityData = this.saveFilter;\n      this.dynamicRows = 10;\n      this.rowsOnPageSet = [];\n      this.rowCount = this.activityData.length;\n      while (this.dynamicRows < this.rowCount) {\n        this.rowsOnPageSet.push(this.dynamicRows);\n        this.dynamicRows = this.dynamicRows + 10;\n      }\n      if (!this.rowsOnPageSet.includes(this.rowCount))\n        this.rowsOnPageSet.push(this.rowCount);\n      if (this.rowsOnPageSet) {\n\n        this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n      this.isDisable = false;\n    } else {\n      this.rowCount = tempActivity.length;\n      this.dynamicRows = 10;\n      this.rowsOnPageSet = [];\n      while (this.dynamicRows < this.rowCount) {\n        this.rowsOnPageSet.push(this.dynamicRows);\n        this.dynamicRows = this.dynamicRows + 10;\n      }\n      if (!this.rowsOnPageSet.includes(this.rowCount)) {\n        this.rowsOnPageSet.push(this.rowCount);\n        if (this.rowsOnPageSet)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n\n      if (this.rowsOnPageSet.length === 1) {\n        if (this.rowsOnPageSet[0] <= 10)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n    }\n  }\n  GetCompanyName() {\n    if (this.CompanyID != '0') {\n      this.dorseyService.GetCompanyData().subscribe(data => {\n        this.companyData = JSON.parse(data['_body']);\n        let dataCompany = this.companyData.filter(x => x.CompanyID === this.CompanyID);\n        if (dataCompany.length > 0) {\n          this.loginCompanyName = dataCompany[0].CompanyName;\n        }\n      });\n    }\n  }\n\n  exportAsXLSX(): void {\n    let allData = JSON.parse(JSON.stringify(this.activityData));\n    for (let i = 0; i < allData.length; i++) {\n      allData[i].Team = allData[i].TeamName;\n      allData[i].Process = this.activityData[i].ProcessName;\n\n      allData[i].Activity = this.activityData[i].ActivityName;\n\n      allData[i].Parent = this.activityData[i].Parentname;\n\n      allData[i].ActivityType = this.activityData[i].ActivityTypeName;\n      allData[i].Sequence = this.activityData[i].squence;\n\n      // if( this.activityData[i].ParentID===0)\n      // { allData[i].Parent = this.activityData[i].ProcessName;\n\n      // }\n      // else{\n      //   allData[i].Parent = this.ParentName[i];\n\n      // }\n\n      delete (allData[i].ActivityTypeName);\n      delete (allData[i].ActivityTypeID);\n      delete (allData[i].Parentname);\n      delete (allData[i].TeamID2);\n      delete (allData[i].ProcessID2);\n      delete (allData[i].TeamName1);\n      delete (allData[i].CompanyID2);\n      delete (allData[i].IsActive2);\n      delete (allData[i].CreatedDate2);\n      delete (allData[i].CreatedBy2);\n\n\n      delete (allData[i].UpdatedDate2);\n      delete (allData[i].UpdatedBy2);\n      delete (allData[i].TeamDescription);\n\n\n\n      delete (allData[i].TeamName);\n      delete (allData[i].squence1);\n      delete (allData[i].ProcessName);\n      delete (allData[i].ActivityName);\n      delete (allData[i].TeamID);\n      delete (allData[i].CompanyID);\n      delete (allData[i].CompanyID1);\n      delete (allData[i].TeamID1);\n      delete (allData[i].ProcessID);\n      delete (allData[i].ProcessID1);\n      delete (allData[i].ActivityID);\n      delete (allData[i].location);\n      delete (allData[i].ActivityTypeID);\n\n      delete (allData[i].CreatedDate);\n      delete (allData[i].CreatedBy);\n      delete (allData[i].VersionID);\n\n      delete (allData[i].DepartmentID);\n      delete (allData[i].EmployeeID);\n\n      delete (allData[i].ParentID);\n      delete (allData[i].UpdatedDate);\n      delete (allData[i].UpdatedBy);\n      delete (allData[i].VersionID1);\n      delete (allData[i].ProcessID1);\n      delete (allData[i].IsActive);\n\n      delete (allData[i].ProcessName1);\n      delete (allData[i].ProcessDescription1);\n      delete (allData[i].DepartmentID1);\n      delete (allData[i].EmployeeID1);\n      delete (allData[i].CreatedBy1);\n      delete (allData[i].CreatedDate1);\n      delete (allData[i].UpdatedBy1);\n      delete (allData[i].UpdatedDate1);\n      delete (allData[i].IsActive1);\n      delete (allData[i].squence);\n\n      delete (allData[i].CompanyID);\n      delete (allData[i].ParentID1);\n      delete (allData[i].ProcessDescription);\n      delete (allData[i].R);\n      delete (allData[i].C);\n      delete (allData[i].U);\n      delete (allData[i].D);\n\n    }\n\n\n    this.dorseyService.generateExcel(allData, this.loginCompanyName + '_activity' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Activity', \"Company: \" + this.loginCompanyName, '', \"Activity Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n  }\n\n\n  GetActivity() {\n    this.activityData = [];\n    this.ParentName = [];\n    this.dorseyService.GetActivity(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.activityData = subData;\n      this.storage.store(\"actData\", this.activityData);\n      this.originalData = subData;\n      let tempactivityData = this.activityData;\n\n      if (this.activityData.length === 0) {\n        this.activityPaging = false;\n        this.isDisable = true;\n        this.disableSearch = true;\n      }\n      else {\n        this.rowCount = this.activityData.length;\n        this.saveFilter = JSON.parse(JSON.stringify(this.activityData));\n        this.activityPaging = true;\n        this.isDisable = false;\n\n        this.disableSearch = false;\n        this.rowsOnPageSet = [];\n        this.dynamicRows = 10;\n\n\n        if (this.employeeDetails) {\n          if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n            this.activityData = this.activityData.filter(entity1 => this.teamData.find(entity2 => entity1.TeamID == entity2.TeamID));\n          }\n          else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n            this.activityData = this.activityData.filter(ent => ent.TeamID == this.employeeDetails.TeamID)\n          }\n          else {\n            let data = this.activityData.filter(x => x.CompanyID === this.CompanyID);\n            this.activityData = data;\n          }\n          if (!this.employeeDetails.PermissionJson || this.employeeDetails.PermissionJson === \"{}\") {\n            this.rowCount = this.activityData.length;\n            this.saveFilter = JSON.parse(JSON.stringify(this.activityData));\n            this.getActivityPagination(this.rowCount)\n            return;\n          }\n\n          this.Permissons = JSON.parse(this.employeeDetails.PermissionJson);\n          this.Permissons = this.Permissons[\"Activity\"];\n          let activityKeys = Object.keys(this.Permissons);\n          let tempProcess = this.processData;\n          {\n            this.activityData = tempactivityData.filter(x => x.CompanyID === this.CompanyID);\n            this.processData = tempProcess.filter(x => x.CompanyID === this.CompanyID);\n          }\n\n          for (let i = 0; i < activityKeys.length; i++) {\n            let actData = this.activityData.filter(x => x.ActivityID.toString() === activityKeys[i].toString());\n            if (actData.length > 0) {\n              let permissonKeys = Object.keys(this.Permissons[activityKeys[i]]);\n\n              if (permissonKeys.indexOf('R') > -1)\n                actData[0]['R'] = this.Permissons[activityKeys[i]]['R'];\n              else\n                actData[0]['R'] = false;\n\n\n              if (permissonKeys.indexOf('C') > -1)\n                actData[0]['C'] = this.Permissons[activityKeys[i]]['C'];\n              else\n                actData[0]['C'] = false;\n\n\n              if (permissonKeys.indexOf('U') > -1)\n                actData[0]['U'] = this.Permissons[activityKeys[i]]['U'];\n              else\n                actData[0]['U'] = false;\n\n\n              if (permissonKeys.indexOf('D') > -1)\n                actData[0]['D'] = this.Permissons[activityKeys[i]]['D'];\n              else\n                actData[0]['D'] = false;\n\n              this.granualActivity.push(actData[0]);\n            }\n          }\n          this.activityData = this.granualActivity;\n          this.rowCount = this.granualActivity.length;\n        }\n\n      }\n\n      if (this.activityData.length > 0) {\n        this.rowCount = this.activityData.length;\n        this.activityPaging = true;\n        this.isDisable = false;\n        this.disableSearch = false;\n        this.saveFilter = JSON.parse(JSON.stringify(this.activityData));\n        this.getActivityPagination(this.rowCount)\n      }\n      else if (this.activityData.length === 0) {\n        this.activityPaging = false;\n        this.isDisable = true;\n        this.disableSearch = true;\n      }\n      this.ifEmployeeLogin();\n    });\n\n\n  }\n\n  getActivityPagination(rowCountNo) {\n    while (this.dynamicRows < rowCountNo) {\n      this.rowsOnPageSet.push(this.dynamicRows);\n      this.dynamicRows = this.dynamicRows + 10;\n    }\n    if (!this.rowsOnPageSet.includes(rowCountNo)) this.rowsOnPageSet.push(rowCountNo);\n    if (this.rowsOnPageSet.length === 1) {\n      if (this.rowsOnPageSet[0] <= 10)\n        this.rowsOnPage = this.rowsOnPageSet[0];\n    }\n\n  }\n\n\n  ifEmployeeLogin() {\n    if (this.userTeamID != '0' && this.userTeamID != null) {\n      let tempProcessData = this.activityData.filter(x => x.TeamID == this.userTeamID);\n      if (tempProcessData.length == 0) {\n        this.isDisable = true;\n        this.disableSearch = true;\n      }\n    }\n  }\n\n  sort(property) {\n    this.arrow = !this.arrow;\n    this.isDesc = !this.isDesc; //change the direction\n    this.column = property;\n    this.direction = this.isDesc ? 1 : -1;\n  }\n\n  GetEmployee() {\n    this.dorseyService.GetEmployee(this.CompanyID).subscribe(subData => {\n\n      subData = JSON.parse(subData['_body']);\n      this.employeeData = subData;\n\n      if (this.empID.toString() !== '0') {\n        let filterEmp = this.employeeData.filter(x => x.EmployeeID === this.empID);\n        if (filterEmp.length > 0) {\n          this.userTeamID = filterEmp[0].TeamID;\n        }\n      }\n    });\n  }\n\n  GetProcess() {\n    this.dorseyService.GetProcess(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.processData = subData;\n\n      if (this.employeeDetails) {\n        if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n          this.processData = this.processData.filter(entity1 => this.teamData.find(entity2 => entity1.TeamID == entity2.TeamID));\n        }\n        else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n          this.processData = this.processData.filter(ent => ent.TeamID == this.employeeDetails.TeamID)\n        }\n        else {\n          let data = this.processData.filter(x => x.CompanyID === this.CompanyID);\n          this.processData = data;\n        }\n      }\n\n    });\n  }\n\n  GetActivityType() {\n    this.dorseyService.GetActivityType().subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.activityTypeData = subData;\n    });\n  }\n\n  dialogCall(msg: string) {\n    const dialogRef = this.dialog.open(ActivityDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: msg + 'æææ' + true,\n    });\n    dialogRef.componentInstance.EmployeeID = this.EmployeeID;\n    dialogRef.componentInstance.currentUser = this.currentUser;\n    dialogRef.componentInstance.processData = this.processData;\n    dialogRef.componentInstance.employeeData = this.employeeData;\n    dialogRef.componentInstance.departmentData = this.departmentData;\n    dialogRef.componentInstance.activityTypeData = this.activityTypeData;\n    dialogRef.componentInstance.activityData = this.activityData;\n    dialogRef.componentInstance.originalData = this.activityData;\n    dialogRef.componentInstance.teamData = this.teamData;\n    dialogRef.componentInstance.CompanyID = this.CompanyID;\n    dialogRef.componentInstance.TeamIDByProcess = this.TeamIDByProcess;\n    dialogRef.componentInstance.TeamID = this.TeamID;\n\n\n    if (msg === 'new' || msg === 'sub') {\n      this.TeamID = null;\n      dialogRef.componentInstance.TeamID = this.TeamID;\n      this.sequenceList = [];\n    }\n\n    if (msg === 'edit') {\n      dialogRef.componentInstance.keyActivityTeam = this.keyActivityTeam;\n      this.status = true;\n      this.headerText = 'Edit Activity';\n      let tempProcessData = this.processData.filter(x => x.TeamID === this.TeamID);\n      dialogRef.componentInstance.processData = tempProcessData;\n      dialogRef.componentInstance.ProcessByTeam = this.ProcessByTeam;\n      dialogRef.componentInstance.ActivityID = this.ActivityID;\n      dialogRef.componentInstance.ActivityName = this.ActivityName;\n      dialogRef.componentInstance.ProcessID = this.ProcessID;\n      dialogRef.componentInstance.ParentActivityID = this.parentID;\n      dialogRef.componentInstance.DepartmentID = this.DepartmentID;\n      dialogRef.componentInstance.EmployeeID = this.EmployeeID;\n      dialogRef.componentInstance.ActivityTypeID = this.ActivityTypeID;\n      dialogRef.componentInstance.tempActivity = this.activityData;\n      dialogRef.componentInstance.squence = this.squence;\n      dialogRef.componentInstance.sequenceList = this.sequenceList;\n      dialogRef.componentInstance.actData = this.actData;\n      dialogRef.componentInstance.oldTeamId = this.TeamID;\n      dialogRef.componentInstance.oldProcessID = this.ProcessID;\n      dialogRef.componentInstance.oldActivityID = this.parentID;\n    }\n\n    if (msg === 'new' || msg === 'sub') {\n      this.searchtext = '';\n      this.ParentName = [];\n      this.GetActivity();\n    }\n\n    dialogRef.afterClosed().subscribe(result => {\n\n      //  this.rowsOnPageSet=[];\n      this.dynamicRows = 10;\n      if (this.searchtext !== '' && this.searchtext !== undefined) {\n        this.Searchtext();\n      }\n      else {\n\n        this.GetActivity();\n      }\n\n      if (result.toString() === 'true') {\n        ;\n        let statusMsg = '';\n        if (msg === 'new') {\n          statusMsg = 'Saved successfully';\n        } else {\n\n          statusMsg = 'Updated successfully';\n        }\n\n\n        //  this.rowsOnPageSet=[];\n        this.dynamicRows = 10;\n        this.ParentName = [];\n        this.GetActivity();\n\n        const dialogRefsub = this.dialog.open(ActivityDialogComponent, {\n          panelClass: 'custom-dialog-container',\n          data: statusMsg + 'æææ' + false,\n          //  width: '30%'\n        });\n\n        setTimeout(() => {\n          this.GetActivity();\n        }, 500);\n        dialogRefsub.afterClosed().subscribe(result1 => {\n          this.ParentName = [];\n          if (this.searchtext !== '') {\n            this.Searchtext();\n          }\n          else {\n            this.GetActivity();\n          }\n        });\n      }\n    });\n  }\n\n\n  EditActivity(element) {\n    this.GetProcess();\n    for (let i = 0; i < this.processData.length; i++) {\n      if (this.processData[i].ProcessID === element.ProcessID) {\n        this.TeamID = this.processData[i]['TeamID'];\n      }\n    }\n    this.parentID = element.ParentID;\n    this.ActivityID = element.ActivityID;\n    this.ActivityName = element.ActivityName;\n    this.ProcessID = element.ProcessID;\n    this.ActivityTypeID = element.ActivityTypeID;\n    this.DepartmentID = element.DepartmentID;\n    this.EmployeeID = element.EmployeeID;\n    this.TeamID = element.TeamID;\n    this.squence = element.squence;\n    this.storage.store(\"ProcessID\", this.ProcessID);\n    this.storage.store(\"ActivityID\", this.ActivityID);\n    this.actData = this.storage.retrieve(\"actData\");\n    for (let i = 0; i < this.actData.length; i++) {\n      if (this.TeamID === this.actData[i].TeamID) {\n        this.sequenceList.push(Number(this.actData[i].squence));\n      }\n    }\n    this.dialogCall('edit');\n  }\n\n  GetPointer() {\n    this.dorseyService.GetPointer(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.pointerData = subData;\n    });\n  }\n\n  ifMaxRow() {\n    if (this.rowsOnPage == this.activityData.length) {\n      this.rowsOnPage = this.rowsOnPage - 1;\n    }\n  }\n\n  DeleteActivity(element) {\n    this.ActivityID = element.ActivityID;\n    this.CompanyID = element.CompanyID;\n    this.TeamID = element.TeamID;\n    this.squence = element.squence;\n    this.ProcessID = element.ProcessID;\n    this.parentID = element.ParentID;\n    const dialogRef = this.dialog.open(ActivityDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: 'Are you sure you want to delete activity: ' + element.ActivityName + '?æææ' + true,\n\n    });\n    dialogRef.afterClosed().subscribe(result => {\n      if (result) {\n        this.dorseyService.DeleteActivity(this.ActivityID, this.CompanyID, this.TeamID, this.squence, this.ProcessID, this.parentID).subscribe(data => {\n          if (data.ok) {\n            this.ifMaxRow();\n            this.condition = true;\n            this.dialogCall('Deleted successfully');\n          }\n          this.dynamicRows = 10;\n          this.rowsOnPageSet = [];\n          this.GetActivity();\n        });\n      }\n    });\n  }\n}\n\n\n@Component({\n  selector: 'app-dialog',\n  templateUrl: 'dialog.html',\n  providers: [DorseyService]\n})\nexport class ActivityDialogComponent implements OnInit {\n\n  public breakpoint: number;\n  oldTeamId: any;\n  oldProcessID: any;\n  oldActivityID: any;\n  lastSequence: number;\n  condition = false;\n  activityData: any;\n  departmentData: any;\n  employeeData: any;\n  processData: any;\n  CompanyID: string;\n  ProcessID: string;\n  DepartmentID: string;\n  EmployeeID: number;\n  ActivityTypeID: string;\n  activityTypeData: any;\n  dataSelf: string;\n  headerText: string;\n  ActivityID: string;\n  ParentActivityID = 0;\n  ActivityName: string;\n  processCtrl = new FormControl();\n  filteredProcess: Observable<any[]>;\n  tempActivity = [];\n  tempDepart: any;\n  keyActivityTeam: any;\n  teamData: any;\n  currentUser: string;\n  ProcessByTeam = [];\n  TeamIDByProcess: string;\n  TeamID: number;\n  conditionActivity = '';\n  squence: number;\n  sequenceList: number[] = [];\n  ParentName = [];\n  originalData: any;\n  actData: any;\n  btnDisabled = false;\n  constructor(\n    public dialogRef: MatDialogRef<ActivityDialogComponent>,\n    @Inject(MAT_DIALOG_DATA) public data: any, public dorseyService: DorseyService, private storage: LocalStorageService) {\n    this.data = this.data.split('æææ');\n\n    if (this.data[1] === 'true') {\n      this.condition = true;\n    } else if (this.data[1] === 'false') {\n      this.condition = false;\n    }\n    else {\n      if (this.data[1] === '') {\n        this.conditionActivity = 'process';\n      } else {\n        this.conditionActivity = 'activity';\n      }\n    }\n\n    if (this.data[0].toString() === 'Deleted successfully' || this.data[0].toString() === \"This Activity have issues or metrics or sub activity\") {\n      this.condition = false;\n    }\n    this.data = this.data[0];\n  }\n\n\n  ngOnInit() {\n\n    this.breakpoint = window.innerWidth <= 900 ? 1 : 3;\n    if (this.conditionActivity === 'process' || this.conditionActivity === 'activity') {\n\n      for (let i = 0; i < this.activityData.length; i++) {\n\n        if (this.activityData[i].ProcessID === this.ProcessID && this.activityData[i].ParentID === this.ParentActivityID && this.activityData[i].TeamID === this.TeamID) {\n          this.sequenceList.push(Number(this.activityData[i].squence));\n        }\n      }\n\n      let seq = this.sequenceList.length + 1;\n      if (this.sequenceList.length !== 0) {\n        this.sequenceList.push(seq);\n      }\n      else this.sequenceList.push(1);\n      this.squence = this.sequenceList[this.sequenceList.length - 1]\n        ;\n    }\n\n    if (this.data === 'edit' || this.data === 'rearrange') {\n      this.tempActivity = [];\n      this.sequenceList = [];\n\n      if (this.data === 'edit') {\n        this.activityData = this.actData;\n      }\n      for (let i = 0; i < this.activityData.length; i++) {\n        if (this.activityData[i].ProcessID === this.ProcessID && this.activityData[i].ParentID === 0) {\n          this.tempActivity.push(this.activityData[i]);\n        }\n      }\n      for (let i = 0; i < this.activityData.length; i++) {\n        if (this.activityData[i].ProcessID === this.ProcessID && this.activityData[i].ParentID === this.ParentActivityID && this.activityData[i].TeamID === this.TeamID) {\n          this.sequenceList.push(this.activityData[i].squence);\n        }\n      }\n    }\n    this.sequenceList.sort();\n    this.sequenceList.sort(this.sortNumber);\n    this.lastSequence = this.sequenceList.length;\n  }\n  onResize(event) {\n    this.breakpoint = (event.target.innerWidth <= 1000) ? 1 : 3;\n  }\n  sortNumber(a, b) {\n    return a - b;\n  }\n  Clear() {\n    this.dialogRef.close(false);\n  }\n  process(event) {\n    this.TeamID = 0;\n    if (this.ParentActivityID !== 0) {\n      this.squence = null;\n      this.ParentActivityID = null;\n\n    }\n    this.dorseyService.GetActivity(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.activityData = subData;\n      this.tempActivity = [];\n      this.ProcessByTeam = [];\n      this.sequenceList = [];\n      this.ProcessID = event.value;\n      this.activityData.sort(function (a, b) {\n        return a.squence - b.squence;\n      });\n      for (let i = 0; i < this.processData.length; i++) {\n        if (this.processData[i].ProcessID === this.ProcessID) {\n          this.TeamID = this.processData[i]['TeamID'];\n        }\n      }\n      for (let i = 0; i < this.activityData.length; i++) {\n\n        if (this.activityData[i].ProcessID === this.ProcessID && this.activityData[i].ParentID === 0 && this.TeamID === this.activityData[i].TeamID) {\n          this.tempActivity.push(this.activityData[i]);\n\n        }\n\n        if (this.data !== 'sub' && this.ParentActivityID === 0) {\n          if (this.activityData[i].ProcessID === this.ProcessID && this.activityData[i].ParentID === this.ParentActivityID && this.TeamID === this.activityData[i].TeamID) {\n            this.sequenceList.push(this.activityData[i].squence);\n          }\n        }\n      }\n      if (this.ProcessID != this.oldProcessID) {\n        let seq = this.sequenceList.length + 1;\n        if (this.data !== 'sub' && this.ParentActivityID === 0) {\n          if (this.sequenceList.length !== 0) {\n            this.sequenceList.push(seq);\n          }\n          else this.sequenceList.push(1);\n        }\n      }\n      if (this.data !== 'sub' && this.ParentActivityID === 0) {\n        this.squence = this.sequenceList[this.sequenceList.length - 1];\n        this.lastSequence = this.sequenceList.length;\n      }\n    });\n\n  }\n  bindSequence() {\n\n    this.dorseyService.GetActivity(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.activityData = subData;\n      this.activityData.sort(function (a, b) {\n        return a.squence - b.squence;\n      });\n\n      this.sequenceList = [];\n      for (let i = 0; i < this.activityData.length; i++) {\n        if (this.activityData[i].ProcessID === this.ProcessID && this.activityData[i].ParentID === this.ParentActivityID && this.activityData[i].TeamID === this.TeamID) {\n          this.sequenceList.push(this.activityData[i].squence);\n        }\n      }\n\n      if (this.ParentActivityID != this.oldActivityID) {\n        let seq = this.sequenceList.length + 1;\n        if (this.sequenceList.length !== 0) {\n          this.sequenceList.push(seq);\n        }\n        else this.sequenceList.push(1);\n      }\n\n      this.squence = this.sequenceList[this.sequenceList.length - 1];\n      this.lastSequence = this.sequenceList.length;\n    });\n  }\n  activityType(event) {\n    this.ActivityTypeID = event.value;\n  }\n  department(event) {\n    this.DepartmentID = event.value;\n  }\n  employee(event) {\n    this.EmployeeID = event.value;\n\n    let tempEmp = this.employeeData.filter(x => x.EmployeeID === this.EmployeeID);\n\n    if (tempEmp.length > 0 && tempEmp.length === 1) {\n      this.tempDepart = this.departmentData.filter(x => x.DepartmentID === tempEmp[0].DepartmentID);\n      this.DepartmentID = this.tempDepart[0].DepartmentID;\n\n    }\n  }\n  AddActivity() {\n    this.btnDisabled = true;\n\n    setTimeout(() => {\n      this.btnDisabled = false;\n    }, 1000);\n    let count = 0;\n    const Editcount = 0;\n    if (this.data === 'sub' && !this.ParentActivityID || !this.squence) {\n      this.dataSelf = 'Please enter mandatory(*) fields';\n      return\n    }\n    if (this.ActivityName === undefined || this.ActivityTypeID === undefined || this.ProcessID === undefined ||\n\n      this.ActivityName.trim() === '' || this.ActivityTypeID === '' || this.ProcessID === '') {\n      // this.DepartmentID === undefined || this.EmployeeID === undefined || || this.DepartmentID === '' || this.EmployeeID === ''\n      this.dataSelf = 'Please enter mandatory(*) fields';\n      if (this.data === 'new') {\n\n      }\n      count++;\n    }\n\n    if (count === 0 && Editcount === 0) {\n      this.dataSelf = '';\n      if (this.data === 'new') {\n        this.Saving(this.data);\n      } else {\n        this.Saving(this.data);\n      }\n    } else {\n\n    }\n  }\n  GetTempActivity(ProcessID: string) {\n    for (let i = 0; i < this.activityData.length; i++) {\n\n      if (this.activityData[i].ProcessID === ProcessID && this.activityData[i].ParentID === 0) {\n        this.tempActivity.push(this.activityData[i]);\n      }\n    }\n  }\n  onYesClick() {\n\n    this.dialogRef.close(true);\n  }\n\n  onNoClick(): void {\n    this.dialogRef.close();\n  }\n  Saving(msg: string) {\n\n    if (this.data === 'sub' && !this.ParentActivityID || !this.squence) {\n      this.dataSelf = 'Please enter mandatory(*) fields';\n      return\n    }\n\n\n    const json = {\n      CompanyID: this.CompanyID,\n      // CompanyID: \"1\",\n\n      ActivityID: this.ActivityID,\n      // TeamID: this.teamID,\n      ParentID: this.ParentActivityID,\n      ActivityName: this.ActivityName,\n      ProcessID: this.ProcessID,\n      ActivityTypeID: this.ActivityTypeID,\n      // DepartmentID: this.DepartmentID,\n      // EmployeeID: this.EmployeeID,\n      DepartmentID: \"0\",\n      EmployeeID: this.EmployeeID,\n      CreatedBy: this.currentUser,\n      UpdatedBy: this.currentUser,\n      TeamIDs: this.TeamID,\n      squence: this.squence,\n      type: msg,\n      lastSequence: this.lastSequence\n    };\n    if (msg === 'new' || msg === 'sub') {\n      this.dorseyService.SaveActivity(json, 'No').subscribe(data => {\n        if (data['_body'].toString() === 'true') {\n          this.dataSelf = 'Saved succesfully';\n          this.ActivityName = '';\n          this.ActivityTypeID = '';\n          this.squence = this.sequenceList[this.sequenceList.length - 1] + 1;\n          this.sequenceList.push(this.squence);\n        } else {\n          this.dataSelf = 'Save failed';\n        }\n      });\n    } else {\n      this.lastSequence = this.sequenceList.length;\n      this.dorseyService.SaveActivity(json, 'No').subscribe(data => {\n        if (data['_body'].toString() === 'true') {\n          this.dialogRef.close(true);\n        } else {\n          this.dataSelf = 'Updated successfully';\n        }\n      });\n    }\n  }\n  IsAlpha(evt) {\n    var keyCode = (evt.which) ? evt.which : evt.keyCode\n    if ((keyCode < 65 || keyCode > 90) && (keyCode < 97 || keyCode > 123) && keyCode != 32) {\n      return false;\n    }\n    return true;\n  }\n\n\n}\n","module.exports = \".text-underline {\\n  text-decoration: underline;\\n}\\n\\n.field {\\n  margin-left: 2%;\\n}\\n\\n#tableActions {\\n  justify-content: flex-start !important;\\n}\\n\\n.form-group {\\n  margin-bottom: 0.25rem;\\n}\\n\\n.example-headers-align .mat-expansion-panel-header-title,\\n.example-headers-align .mat-expansion-panel-header-description {\\n  flex-basis: 0;\\n}\\n\\n.example-headers-align .mat-expansion-panel-header-description {\\n  justify-content: space-between;\\n  align-items: center;\\n}\\n\\n.example-headers-align .mat-form-field + .mat-form-field {\\n  margin-left: 8px;\\n}\\n\\n.mat-action-row {\\n  padding: 0px !important;\\n}\\n\\nmat-expansion-panel-header {\\n  height: 48px !important;\\n  pointer-events: none;\\n  border-bottom: 1px solid lightgrey;\\n}\\n\\n.p-t-20 {\\n  padding-top: 20px !important;\\n}\\n\\nmat-panel-title {\\n  font-weight: 600;\\n}\\n\\nth {\\n  color: white;\\n  background-color: #474747;\\n}\\n\\n.target-width {\\n  width: 75px;\\n}\\n\\n.f-b {\\n  font-weight: bold;\\n}\\n\\n.p-0 {\\n  padding: 0px !important;\\n}\\n\\n.m-0 {\\n  margin: 0px !important;\\n}\\n\\n.min-width-300 {\\n  min-width: 300px !important;\\n  width: 450px !important;\\n  max-width: 450px !important;\\n  word-break: break-all;\\n}\\n\\n.min-width {\\n  min-width: 130px !important;\\n}\\n\\n.w-50 {\\n  text-align: center;\\n  min-width: 50px !important;\\n}\\n\\n.w-100 {\\n  width: 100%;\\n}\\n\\n.m-2 {\\n  margin: 2%;\\n}\\n\\n.btn-default {\\n  background-color: #e6e8eb !important;\\n}\\n\\n.bg-red {\\n  background-color: red;\\n  text-align: center;\\n  padding-top: 20px;\\n}\\n\\n.bg-yellow {\\n  background-color: yellow;\\n  text-align: center;\\n  padding-top: 20px;\\n}\\n\\n.bg-green {\\n  background-color: green;\\n  text-align: center;\\n  padding-top: 20px;\\n}\\n\\n.w-80 {\\n  min-width: 80px;\\n}\\n\\n.w-130 {\\n  min-width: 130px;\\n}\\n\\n.warningMsg {\\n  text-align: center;\\n  color: red;\\n}\\n\\n.p-r-0 {\\n  padding-right: 5px !important;\\n}\\n\\n.min-width-100 {\\n  min-width: 100px !important;\\n}\\n\\n.min-width-500 {\\n  min-width: 500px !important;\\n  width: 750px !important;\\n}\\n\\n.headcol {\\n  position: -webkit-sticky;\\n  position: sticky;\\n  left: 0px;\\n  /* height: 48px; */\\n  z-index: 1;\\n}\\n\\n.headcol1 {\\n  position: -webkit-sticky;\\n  position: sticky;\\n  left: 130px;\\n  /* height: 48px; */\\n  z-index: 1;\\n}\\n\\n.bodycol {\\n  position: -webkit-sticky;\\n  position: sticky;\\n  left: 0px;\\n  z-index: 1;\\n  background-color: lightgrey;\\n  text-align: center;\\n  vertical-align: middle;\\n}\\n\\n.bodycol1 {\\n  position: -webkit-sticky;\\n  position: sticky;\\n  left: 130px;\\n  z-index: 1;\\n  background-color: lightgrey;\\n  text-align: center;\\n  vertical-align: middle;\\n}\\n\\n.v-m {\\n  vertical-align: middle;\\n}\\n\\n.quarter-message {\\n  color: red;\\n  font-weight: bold;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYWRkLXNjb3JlLWNhcmQvRjpcXE5pa2lsIFdvcmtcXFByb2plY3RzXFxEb3JzZXlcXEhpZXJhcmNoeSBTb3VyY2UgQ29kZVxcV29ya2luZ1xcZG9yc2V5R3JvdXAvc3JjXFxhcHBcXGFkZC1zY29yZS1jYXJkXFxhZGQtc2NvcmUtY2FyZC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvYWRkLXNjb3JlLWNhcmQvYWRkLXNjb3JlLWNhcmQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSwwQkFBQTtBQ0NKOztBREVBO0VBQ0ksZUFBQTtBQ0NKOztBREVBO0VBQ0ksc0NBQUE7QUNDSjs7QURFQTtFQUNJLHNCQUFBO0FDQ0o7O0FERUE7O0VBRUUsYUFBQTtBQ0NGOztBREVBO0VBQ0UsOEJBQUE7RUFDQSxtQkFBQTtBQ0NGOztBREVBO0VBQ0UsZ0JBQUE7QUNDRjs7QURFQTtFQUNBLHVCQUFBO0FDQ0E7O0FERUE7RUFDSSx1QkFBQTtFQUNBLG9CQUFBO0VBQ0Esa0NBQUE7QUNDSjs7QURFQTtFQUNFLDRCQUFBO0FDQ0Y7O0FERUE7RUFDSSxnQkFBQTtBQ0NKOztBREVBO0VBQ0UsWUFBQTtFQUNBLHlCQUFBO0FDQ0Y7O0FERUE7RUFDRSxXQUFBO0FDQ0Y7O0FERUE7RUFDRSxpQkFBQTtBQ0NGOztBREVBO0VBQ0UsdUJBQUE7QUNDRjs7QURFQTtFQUNFLHNCQUFBO0FDQ0Y7O0FERUE7RUFDRSwyQkFBQTtFQUNBLHVCQUFBO0VBQ0EsMkJBQUE7RUFDQSxxQkFBQTtBQ0NGOztBREVBO0VBQ0UsMkJBQUE7QUNDRjs7QURFQTtFQUNFLGtCQUFBO0VBQ0EsMEJBQUE7QUNDRjs7QURFQTtFQUNFLFdBQUE7QUNDRjs7QURFQTtFQUNFLFVBQUE7QUNDRjs7QURFQTtFQUNFLG9DQUFBO0FDQ0Y7O0FERUE7RUFDRSxxQkFBQTtFQUVBLGtCQUFBO0VBQ0EsaUJBQUE7QUNBRjs7QURHQTtFQUNFLHdCQUFBO0VBRUEsa0JBQUE7RUFDQSxpQkFBQTtBQ0RGOztBRElBO0VBQ0UsdUJBQUE7RUFFQSxrQkFBQTtFQUNBLGlCQUFBO0FDRkY7O0FES0E7RUFDRSxlQUFBO0FDRkY7O0FES0E7RUFDRSxnQkFBQTtBQ0ZGOztBREtBO0VBQ0Usa0JBQUE7RUFDQSxVQUFBO0FDRkY7O0FES0E7RUFDRSw2QkFBQTtBQ0ZGOztBREtBO0VBQ0UsMkJBQUE7QUNGRjs7QURLQTtFQUNFLDJCQUFBO0VBQ0EsdUJBQUE7QUNGRjs7QURLQTtFQUNFLHdCQUFBO0VBQUEsZ0JBQUE7RUFDRSxTQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0FDRko7O0FES0E7RUFDRSx3QkFBQTtFQUFBLGdCQUFBO0VBQ0UsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTtBQ0ZKOztBREtBO0VBQ0Usd0JBQUE7RUFBQSxnQkFBQTtFQUNFLFNBQUE7RUFDQSxVQUFBO0VBQ0EsMkJBQUE7RUFDQSxrQkFBQTtFQUNBLHNCQUFBO0FDRko7O0FES0E7RUFDRSx3QkFBQTtFQUFBLGdCQUFBO0VBQ0UsV0FBQTtFQUNBLFVBQUE7RUFDQSwyQkFBQTtFQUNBLGtCQUFBO0VBQ0Esc0JBQUE7QUNGSjs7QURLQTtFQUNFLHNCQUFBO0FDRkY7O0FES0E7RUFDRSxVQUFBO0VBQ0EsaUJBQUE7QUNGRiIsImZpbGUiOiJzcmMvYXBwL2FkZC1zY29yZS1jYXJkL2FkZC1zY29yZS1jYXJkLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnRleHQtdW5kZXJsaW5le1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbn1cclxuXHJcbi5maWVsZHtcclxuICAgIG1hcmdpbi1sZWZ0OiAyJTtcclxufVxyXG5cclxuI3RhYmxlQWN0aW9uc3tcclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZm9ybS1ncm91cHtcclxuICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XHJcbn1cclxuXHJcbi5leGFtcGxlLWhlYWRlcnMtYWxpZ24gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlLFxyXG4uZXhhbXBsZS1oZWFkZXJzLWFsaWduIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbiB7XHJcbiAgZmxleC1iYXNpczogMDtcclxufVxyXG5cclxuLmV4YW1wbGUtaGVhZGVycy1hbGlnbiAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG59XHJcblxyXG4uZXhhbXBsZS1oZWFkZXJzLWFsaWduIC5tYXQtZm9ybS1maWVsZCArIC5tYXQtZm9ybS1maWVsZCB7XHJcbiAgbWFyZ2luLWxlZnQ6IDhweDtcclxufVxyXG5cclxuLm1hdC1hY3Rpb24tcm93e1xyXG5wYWRkaW5nOiAwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJ7XHJcbiAgICBoZWlnaHQ6NDhweCAhaW1wb3J0YW50O1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgbGlnaHRncmV5O1xyXG59XHJcblxyXG4ucC10LTIwe1xyXG4gIHBhZGRpbmctdG9wOiAyMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbm1hdC1wYW5lbC10aXRsZXtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbn1cclxuXHJcbnRoIHtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ3NDc0NztcclxufVxyXG5cclxuLnRhcmdldC13aWR0aHtcclxuICB3aWR0aDogNzVweDtcclxufVxyXG5cclxuLmYtYntcclxuICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG5cclxuLnAtMHtcclxuICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLm0tMHtcclxuICBtYXJnaW46IDBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ubWluLXdpZHRoLTMwMHtcclxuICBtaW4td2lkdGg6IDMwMHB4ICFpbXBvcnRhbnQ7XHJcbiAgd2lkdGg6IDQ1MHB4ICFpbXBvcnRhbnQ7XHJcbiAgbWF4LXdpZHRoOiA0NTBweCAhaW1wb3J0YW50O1xyXG4gIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcclxufVxyXG5cclxuLm1pbi13aWR0aHtcclxuICBtaW4td2lkdGg6IDEzMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi53LTUwe1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBtaW4td2lkdGg6IDUwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLnctMTAwe1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4ubS0ye1xyXG4gIG1hcmdpbjogMiU7XHJcbn1cclxuXHJcbi5idG4tZGVmYXVsdHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlOGViICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5iZy1yZWR7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xyXG4gIC8vY29sb3I6IHdoaXRlO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBwYWRkaW5nLXRvcDogMjBweDtcclxufVxyXG5cclxuLmJnLXllbGxvd3tcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XHJcbiAgLy9jb2xvcjogd2hpdGU7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHBhZGRpbmctdG9wOiAyMHB4O1xyXG59XHJcblxyXG4uYmctZ3JlZW57XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47XHJcbiAvLyBjb2xvcjogd2hpdGU7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHBhZGRpbmctdG9wOiAyMHB4O1xyXG59XHJcblxyXG4udy04MHtcclxuICBtaW4td2lkdGg6IDgwcHg7XHJcbn1cclxuXHJcbi53LTEzMHtcclxuICBtaW4td2lkdGg6IDEzMHB4O1xyXG59XHJcblxyXG4ud2FybmluZ01zZyB7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGNvbG9yOiByZWQ7XHJcbn1cclxuXHJcbi5wLXItMHtcclxuICBwYWRkaW5nLXJpZ2h0OiA1cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLm1pbi13aWR0aC0xMDB7XHJcbiAgbWluLXdpZHRoOiAxMDBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ubWluLXdpZHRoLTUwMHtcclxuICBtaW4td2lkdGg6IDUwMHB4ICFpbXBvcnRhbnQ7XHJcbiAgd2lkdGg6IDc1MHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5oZWFkY29se1xyXG4gIHBvc2l0aW9uOiBzdGlja3k7XHJcbiAgICBsZWZ0OiAwcHg7XHJcbiAgICAvKiBoZWlnaHQ6IDQ4cHg7ICovXHJcbiAgICB6LWluZGV4OiAxXHJcbn1cclxuXHJcbi5oZWFkY29sMXtcclxuICBwb3NpdGlvbjogc3RpY2t5O1xyXG4gICAgbGVmdDogMTMwcHg7XHJcbiAgICAvKiBoZWlnaHQ6IDQ4cHg7ICovXHJcbiAgICB6LWluZGV4OiAxXHJcbn1cclxuXHJcbi5ib2R5Y29se1xyXG4gIHBvc2l0aW9uOiBzdGlja3k7XHJcbiAgICBsZWZ0OiAwcHg7XHJcbiAgICB6LWluZGV4OiAxO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmV5O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxufVxyXG5cclxuLmJvZHljb2wxe1xyXG4gIHBvc2l0aW9uOiBzdGlja3k7XHJcbiAgICBsZWZ0OiAxMzBweDtcclxuICAgIHotaW5kZXg6IDE7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyZXk7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG59XHJcblxyXG4udi1te1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbn1cclxuXHJcbi5xdWFydGVyLW1lc3NhZ2V7XHJcbiAgY29sb3I6IHJlZCA7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuIiwiLnRleHQtdW5kZXJsaW5lIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5maWVsZCB7XG4gIG1hcmdpbi1sZWZ0OiAyJTtcbn1cblxuI3RhYmxlQWN0aW9ucyB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50O1xufVxuXG4uZm9ybS1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG59XG5cbi5leGFtcGxlLWhlYWRlcnMtYWxpZ24gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlLFxuLmV4YW1wbGUtaGVhZGVycy1hbGlnbiAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xuICBmbGV4LWJhc2lzOiAwO1xufVxuXG4uZXhhbXBsZS1oZWFkZXJzLWFsaWduIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbiB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmV4YW1wbGUtaGVhZGVycy1hbGlnbiAubWF0LWZvcm0tZmllbGQgKyAubWF0LWZvcm0tZmllbGQge1xuICBtYXJnaW4tbGVmdDogOHB4O1xufVxuXG4ubWF0LWFjdGlvbi1yb3cge1xuICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbn1cblxubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICBoZWlnaHQ6IDQ4cHggIWltcG9ydGFudDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBsaWdodGdyZXk7XG59XG5cbi5wLXQtMjAge1xuICBwYWRkaW5nLXRvcDogMjBweCAhaW1wb3J0YW50O1xufVxuXG5tYXQtcGFuZWwtdGl0bGUge1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG50aCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ3NDc0Nztcbn1cblxuLnRhcmdldC13aWR0aCB7XG4gIHdpZHRoOiA3NXB4O1xufVxuXG4uZi1iIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5wLTAge1xuICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbn1cblxuLm0tMCB7XG4gIG1hcmdpbjogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5taW4td2lkdGgtMzAwIHtcbiAgbWluLXdpZHRoOiAzMDBweCAhaW1wb3J0YW50O1xuICB3aWR0aDogNDUwcHggIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOiA0NTBweCAhaW1wb3J0YW50O1xuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG59XG5cbi5taW4td2lkdGgge1xuICBtaW4td2lkdGg6IDEzMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi53LTUwIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtaW4td2lkdGg6IDUwcHggIWltcG9ydGFudDtcbn1cblxuLnctMTAwIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5tLTIge1xuICBtYXJnaW46IDIlO1xufVxuXG4uYnRuLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlOGViICFpbXBvcnRhbnQ7XG59XG5cbi5iZy1yZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG59XG5cbi5iZy15ZWxsb3cge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG59XG5cbi5iZy1ncmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IGdyZWVuO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xufVxuXG4udy04MCB7XG4gIG1pbi13aWR0aDogODBweDtcbn1cblxuLnctMTMwIHtcbiAgbWluLXdpZHRoOiAxMzBweDtcbn1cblxuLndhcm5pbmdNc2cge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiByZWQ7XG59XG5cbi5wLXItMCB7XG4gIHBhZGRpbmctcmlnaHQ6IDVweCAhaW1wb3J0YW50O1xufVxuXG4ubWluLXdpZHRoLTEwMCB7XG4gIG1pbi13aWR0aDogMTAwcHggIWltcG9ydGFudDtcbn1cblxuLm1pbi13aWR0aC01MDAge1xuICBtaW4td2lkdGg6IDUwMHB4ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiA3NTBweCAhaW1wb3J0YW50O1xufVxuXG4uaGVhZGNvbCB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGxlZnQ6IDBweDtcbiAgLyogaGVpZ2h0OiA0OHB4OyAqL1xuICB6LWluZGV4OiAxO1xufVxuXG4uaGVhZGNvbDEge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBsZWZ0OiAxMzBweDtcbiAgLyogaGVpZ2h0OiA0OHB4OyAqL1xuICB6LWluZGV4OiAxO1xufVxuXG4uYm9keWNvbCB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGxlZnQ6IDBweDtcbiAgei1pbmRleDogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmV5O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5ib2R5Y29sMSB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGxlZnQ6IDEzMHB4O1xuICB6LWluZGV4OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyZXk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLnYtbSB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5xdWFydGVyLW1lc3NhZ2Uge1xuICBjb2xvcjogcmVkO1xuICBmb250LXdlaWdodDogYm9sZDtcbn0iXX0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { BsDatepickerConfig } from 'ngx-bootstrap/datepicker';\r\nimport { LocalStorageService } from 'ngx-webstorage';\r\nimport { ScoreCard, ScoreCardTypeEnum } from '../performance-score-card/performance-score-card.model';\r\nimport { PerformanceScoreCardService } from '../performance-score-card/performance-score-card.service';\r\nimport { QuarterService } from '../services/quarter.service';\r\nimport { Frequency, PerformanceScoreCard, PSCMetricDetails, ScoreCardMaster } from './add-score-card.model';\r\nimport { ValidationDialogComponent } from './validation-dialog';\r\nimport { ResponseDialogComponent } from './response-dialog';\r\n\r\n@Component({\r\n  selector: 'app-add-score-card',\r\n  templateUrl: './add-score-card.component.html',\r\n  styleUrls: ['./add-score-card.component.scss']\r\n})\r\nexport class AddScoreCardComponent implements OnInit {\r\n  isViewScoreCard: boolean = true;\r\n  companyId: number;\r\n  quarterList: any = [];\r\n  currentUser: string;\r\n  selectedQuarterId: number;\r\n  quarterMonths: string;\r\n  scoreCard: ScoreCard;\r\n  teamName: string;\r\n  selectedYear: Date;\r\n  step: number = 0;\r\n  selectedMetrics: Array<PSCMetricDetails> = [];\r\n  YearPickerConfig: Partial<BsDatepickerConfig>;\r\n  maxDate: Date;\r\n  minDate: Date;\r\n  errorMessages: string[] = [];\r\n  frequencies: string[] = [Frequency.Monthly, Frequency.Weekly];\r\n  scoreCardMaster: ScoreCardMaster;\r\n  pscMetricDetails: Array<PSCMetricDetails> = [];\r\n  performanceScoreCard: PerformanceScoreCard;\r\n  scoreCardMasterId: number;\r\n  quarterName: string;\r\n  selectedYearName: Number;\r\n  scoreCardMasterList: ScoreCardMaster[];\r\n  WeekDateList = [];\r\n  toBeDeletedMetrics: number[] = [];\r\n  quarters: any;\r\n  targetSymbolsList: string[] = ['<', '<=', '>', '>=', '==', 'Yes', 'No'];\r\n  scoreCardPreview: boolean = false;\r\n  quarterDetails = [];\r\n\r\n  constructor(private storage: LocalStorageService,\r\n    private scoreCardService: PerformanceScoreCardService,\r\n    private quarterService: QuarterService,\r\n    private router: Router,\r\n    private route: ActivatedRoute,\r\n    public dialog: MatDialog) {\r\n    this.YearPickerConfig = Object.assign({},\r\n      { containerClass: 'theme-dark-blue', showWeekNumbers: false, dateInputFormat: 'YYYY' });\r\n    this.currentUser = this.storage.retrieve('user');\r\n    this.scoreCardService.scoreCard.subscribe(resp => {\r\n      if (!resp) {\r\n        this.router.navigate(['performance-score-card']);\r\n        return;\r\n      }\r\n      this.scoreCard = resp;\r\n      this.currentUser = this.storage.retrieve('user');\r\n    });\r\n  }\r\n\r\n\r\n  ngOnInit(): void {\r\n    this.companyId = this.storage.retrieve('companyID');\r\n    this.maxDate = new Date();\r\n    this.minDate = new Date(\"01/01/2020\");\r\n    this.scoreCardMasterId = Number(this.route.snapshot.paramMap.get('id'));\r\n    this.step = Number(this.route.snapshot.paramMap.get('stepId'));\r\n    if (this.scoreCard.TeamName) {\r\n      this.teamName = this.scoreCard.TeamName;\r\n    }\r\n    this.scoreCardService.GetPerformanceScoreCardDetails(this.companyId, this.scoreCard.DepartmentId, this.scoreCard.TeamId, this.scoreCardMasterId).subscribe(resp => {\r\n      this.scoreCardMasterList = resp.Data;\r\n      this.pscMetricDetails = resp.AdditionalData.PSCDetails;\r\n      if (this.scoreCard.ScoreCardType === ScoreCardTypeEnum.Department) {\r\n        this.scoreCardMasterList = this.scoreCardMasterList.filter(ent => ent.ScoreCardType === ScoreCardTypeEnum.Department);\r\n      }\r\n      if (this.scoreCard.ScoreCardType === ScoreCardTypeEnum.Team) {\r\n        this.scoreCardMasterList = this.scoreCardMasterList.filter(ent => ent.TeamID === this.scoreCard.TeamId);\r\n        this.pscMetricDetails = this.pscMetricDetails.filter(ent => ent.TeamID === this.scoreCard.TeamId);\r\n      }\r\n      this.quarterDetails = resp.AdditionalData.QuarterDetails;\r\n      this.getQuarters(resp.AdditionalData.QuarterDetails);\r\n      if (this.scoreCardMasterList.length > 0) {\r\n        this.selectedMetrics = this.pscMetricDetails.filter(ent => ent.IsSelected === true);\r\n      }\r\n      if (this.selectedMetrics.length == 0) {\r\n        this.pscMetricDetails.forEach(ele => {\r\n          ele.IsSelected = false;\r\n          ele.UOM = ele.Frequency = null;\r\n          ele.GreenTargetSymbol = ele.YellowTargetSymbol = ele.RedTargetSymbol = null;\r\n          ele.GreenMinimum = ele.GreenMaximum = ele.YellowMinimum = ele.YellowMaximum = null;\r\n          ele.RedMinimum = ele.RedMaximum = null;\r\n          ele.Week1 = ele.Week2 = ele.Week3 = ele.Week4 = ele.Week5 = ele.Week6 = null;\r\n          ele.Week7 = ele.Week8 = ele.Week9 = ele.Week10 = ele.Week11 = ele.Week12 = ele.Week13 = ele.Week14 = null;\r\n        });\r\n      }\r\n      if (this.scoreCardMasterId != 0) {\r\n        this.scoreCardMaster = this.scoreCardMasterList.find(ele => ele.Id === this.scoreCardMasterId);\r\n        this.selectedQuarterId = this.scoreCardMaster ? this.scoreCardMaster.QuarterId : 0;\r\n        this.selectedYear = this.scoreCardMaster ? new Date(\"01/01/\" + this.scoreCardMaster.Year) : null;\r\n        this.quarterName = this.quarterList.find(ent => ent.QuarterId == this.selectedQuarterId).QuarterName;\r\n        this.selectedYearName = this.selectedYear.getFullYear();\r\n        var months = this.quarters.find(ent => ent.QuarterId === this.selectedQuarterId).QuarterMonths;\r\n        this.WeekDateList = this.quarterService.getWeekMonths(months, Number(this.selectedYearName), this.quarters[0].QuarterWeekDay, this.quarters[0].QuarterWeekDate);\r\n      }\r\n      this.processData();\r\n    });\r\n  }\r\n\r\n  getQuarters(quarterDetails): void {\r\n    if (quarterDetails.length == 0) {\r\n      return;\r\n    }\r\n    var selectedMonthId = this.quarterService.getMonths().find(val => val.MonthName == quarterDetails[0].MonthName).MonthId;\r\n    this.quarters = this.quarterService.generateQuarters(selectedMonthId, this.companyId, this.currentUser, quarterDetails[0].QuarterWeekDay, quarterDetails[0].QuarterWeekDate);\r\n    this.quarters.forEach(val => {\r\n      this.quarterList.push(\r\n        {\r\n          QuarterId: val.QuarterId,\r\n          QuarterName: val.QuarterName,\r\n          // QuarterName: val.QuarterName + \"(\" + this.getQuarterMonths(val.QuarterMonths) + \")\",\r\n          QuarterMonths: this.getQuarterMonths(val.QuarterMonths)\r\n        }\r\n      )\r\n    });\r\n  }\r\n\r\n  getQuarterMonths(quarters): string {\r\n    var months = [];\r\n    quarters.forEach(val => {\r\n      months.push(val.MonthName);\r\n    });\r\n    return months.join(',');\r\n  }\r\n\r\n  targetChange(metric): void {\r\n    if (!metric.GreenTargetSymbol || metric.GreenTargetSymbol == 'null') {\r\n      metric.GreenTargetSymbol = null;\r\n    } else {\r\n      metric.GreenMaximum = null;\r\n      if (metric.GreenTargetSymbol === 'Yes')\r\n        metric.GreenMinimum = 2;\r\n      else if (metric.GreenTargetSymbol === 'No')\r\n        metric.GreenMinimum = 1;\r\n    }\r\n    if (!metric.YellowTargetSymbol || metric.YellowTargetSymbol == 'null') {\r\n      metric.YellowTargetSymbol = null;\r\n    } else {\r\n      metric.YellowMaximum = null;\r\n      if (metric.YellowTargetSymbol === 'Yes')\r\n        metric.YellowMinimum = 2;\r\n      else if (metric.YellowTargetSymbol === 'No')\r\n        metric.YellowMinimum = 1;\r\n    }\r\n    if (!metric.RedTargetSymbol || metric.RedTargetSymbol == 'null') {\r\n      metric.RedTargetSymbol = null;\r\n    } else {\r\n      metric.RedMaximum = null;\r\n      if (metric.RedTargetSymbol === 'Yes')\r\n        metric.RedMinimum = 2;\r\n      else if (metric.RedTargetSymbol === 'No')\r\n        metric.RedMinimum = 1;\r\n    }\r\n  }\r\n\r\n\r\n  getMetrics(): void {\r\n    this.errorMessages = [];\r\n    if (!this.selectedQuarterId) {\r\n      this.errorMessages.push('Please select Quarter');\r\n    }\r\n    if (!this.selectedYear) {\r\n      this.errorMessages.push('Please select Year');\r\n    }\r\n\r\n    if (this.scoreCardMasterId === 0 && this.selectedYear && this.selectedQuarterId) {\r\n      if (this.scoreCardMasterList.findIndex(ent => ent.Year === this.selectedYear.getFullYear() && ent.QuarterId === this.selectedQuarterId) > -1) {\r\n        this.errorMessages.push('Score card already exist for selected quarter and year');\r\n      }\r\n    }\r\n\r\n    if (this.errorMessages.length != 0) {\r\n      this.dialog.open(ValidationDialogComponent, {\r\n        data: {\r\n          errorMessages: this.errorMessages\r\n        }\r\n      });\r\n      return;\r\n    }\r\n\r\n    if (this.scoreCardMasterId == 0) {\r\n      this.quarterName = this.quarterList.find(ent => ent.QuarterId == this.selectedQuarterId).QuarterName;\r\n      this.selectedYearName = this.selectedYear.getFullYear();\r\n      var months = this.quarters.find(ent => ent.QuarterId === this.selectedQuarterId).QuarterMonths;\r\n      this.WeekDateList = this.quarterService.getWeekMonths(months, Number(this.selectedYearName), this.quarters[0].QuarterWeekDay, this.quarters[0].QuarterWeekDate);\r\n    }\r\n    this.step++;\r\n  }\r\n\r\n  //step 2\r\n  getSelectedMetrics(): void {\r\n    this.errorMessages = [];\r\n    if (this.selectedMetrics.length === 0) {\r\n      this.errorMessages.push('Please select atleast one Metric');\r\n    }\r\n\r\n    if (this.errorMessages.length != 0) {\r\n      this.dialog.open(ValidationDialogComponent, {\r\n        data: {\r\n          errorMessages: this.errorMessages\r\n        }\r\n      });\r\n      return;\r\n    }\r\n    this.processData();\r\n    this.step++;\r\n  }\r\n\r\n  //step 3\r\n  generateWeeks(): void {\r\n    this.errorMessages = [];\r\n\r\n    // var selectedTarget = this.selectedMetrics.filter(ent => !ent.GreenMinimum || !ent.GreenMaximum\r\n    //   || !ent.YellowMinimum || !ent.YellowMaximum ||\r\n    //   !ent.RedMinimum || !ent.RedMaximum);\r\n\r\n    // if (selectedTarget.length > 0) {\r\n    //   this.errorMessages.push('Please enter Targets');\r\n    // }\r\n    var selectedFrequency = this.selectedMetrics.filter(ent => !ent.Frequency || ent.Frequency == \"null\");\r\n    if (selectedFrequency.length > 0) {\r\n      this.errorMessages.push('Please select Frequency');\r\n    }\r\n\r\n    var selectedUOM = this.selectedMetrics.filter(ent => !ent.UOM || !ent.UOM.trim());\r\n    if (selectedUOM.length > 0) {\r\n      this.errorMessages.push('Please enter UOM');\r\n    }\r\n\r\n    if (this.errorMessages.length != 0) {\r\n      this.dialog.open(ValidationDialogComponent, {\r\n        data: {\r\n          errorMessages: this.errorMessages\r\n        }\r\n      });\r\n      return;\r\n    }\r\n    this.step++;\r\n  }\r\n\r\n  //step 4\r\n  generateScoreCard(): void {\r\n    this.scoreCardPreview = true;\r\n    this.saveScoreCardDetails(false);\r\n    this.step++;\r\n  }\r\n\r\n  saveScoreCardDetails(showDialog = true): void {\r\n    if (this.scoreCardMasterId == 0) {\r\n      this.scoreCardMaster = {\r\n        Id: 0,\r\n        CompanyID: this.companyId,\r\n        ScoreCardType: this.scoreCard.ScoreCardType,\r\n        DepartmentID: this.scoreCard.DepartmentId,\r\n        TeamID: this.scoreCard.TeamId,\r\n        QuarterId: this.selectedQuarterId,\r\n        Year: Number(this.selectedYear.getFullYear()),\r\n        ScoreCardName: this.getScoreCardName(),\r\n        CreatedBy: this.currentUser,\r\n        UpdatedBy: this.currentUser,\r\n        QuarterName: '',\r\n        CompanyName: '',\r\n        DepartmentName: '',\r\n        TeamName: ''\r\n      }\r\n    }\r\n    this.performanceScoreCard = { scoreCardMaster: this.scoreCardMaster, pscMetricDetails: this.selectedMetrics, metricIds: this.toBeDeletedMetrics };\r\n    this.scoreCardService.SavePerformanceScoreCardDetails(this.performanceScoreCard).subscribe(resp => {\r\n      if (resp.Data) {\r\n        this.scoreCardMaster.Id = resp.Data.ScoreCardMaster.Id;\r\n        this.scoreCardMasterId = resp.Data.ScoreCardMaster.Id;\r\n        this.selectedMetrics = [...resp.Data.pscMetricDetails];\r\n        this.selectedMetrics.forEach(ele => {\r\n          this.pscMetricDetails.find(ele1 => ele.PointerID === ele1.PointerID).Id = ele.Id;\r\n        });\r\n        if (showDialog) {\r\n          this.dialog.open(ResponseDialogComponent, {\r\n            data: {\r\n              message: 'Save successful'\r\n            }\r\n          });\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  metricChange(metric): void {\r\n    if (metric.IsSelected) {\r\n      this.selectedMetrics.push(metric);\r\n    }\r\n    else {\r\n      this.selectedMetrics = this.selectedMetrics.filter(ent => ent.PointerID != metric.PointerID);\r\n      if (metric.Id != 0) {\r\n        this.toBeDeletedMetrics.push(metric.Id);\r\n      }\r\n    }\r\n  }\r\n\r\n  //validations\r\n  setTargets(metric): void {\r\n    // if (metric.GreenMinimum == null || Number(metric.GreenMaximum) < Number(metric.GreenMinimum)) {\r\n    //   metric.GreenMaximum = null;\r\n    // }\r\n    // if (metric.YellowMinimum == null || Number(metric.YellowMaximum) < Number(metric.YellowMinimum)) {\r\n    //   metric.YellowMaximum = null;\r\n    // }\r\n    // if (metric.RedMinimum == null || Number(metric.RedMaximum) < Number(metric.RedMinimum)) {\r\n    //   metric.RedMaximum = null;\r\n    // }\r\n  }\r\n\r\n  setStep(index: number): void {\r\n    this.step = index;\r\n  }\r\n\r\n  nextStep(): void {\r\n    this.step++;\r\n  }\r\n\r\n  prevStep(): void {\r\n    this.step--;\r\n  }\r\n\r\n  //step 0\r\n  goToQuarterSelection(): void {\r\n    this.selectedYearName = this.quarterName = undefined;\r\n    this.step--;\r\n  }\r\n\r\n  //step 1\r\n  goToMetricList() {\r\n    this.selectedMetrics = [...this.selectedMetrics];\r\n    this.step--;\r\n  }\r\n\r\n  goToGeneratedWeeks() {\r\n    this.scoreCardPreview = false;\r\n    this.step--;\r\n  }\r\n\r\n  //private methods\r\n  private getScoreCardName(): string {\r\n    if (this.scoreCard.ScoreCardType === ScoreCardTypeEnum.Department) {\r\n      return `${this.scoreCard.DepartmentName}_${this.quarterList.find(ent => ent.QuarterId === this.selectedQuarterId).QuarterName}_${this.selectedYear.getFullYear()}`;\r\n    }\r\n    else {\r\n      return `${this.scoreCard.DepartmentName}_${this.scoreCard.TeamName}_${this.quarterList.find(ent => ent.QuarterId === this.selectedQuarterId).QuarterName}_${this.selectedYear.getFullYear()}`;\r\n    }\r\n  }\r\n\r\n  private processData(): void {\r\n    const goalSeen = {};\r\n    this.selectedMetrics = this.selectedMetrics.sort((a, b) => {\r\n      return a.GoalName.localeCompare(b.GoalName);\r\n    }).map(x => {\r\n      const goalSpan = goalSeen[x.GoalName] ? 0 :\r\n        this.selectedMetrics.filter(y => y.GoalName === x.GoalName).length;\r\n      goalSeen[x.GoalName] = true;\r\n      return { ...x, goalSpan };\r\n    });\r\n  }\r\n\r\n}\r\n\r\n","export enum Frequency {\r\n    SelectFrequency = \"Select Frequency\",\r\n    Monthly = \"Monthly\",\r\n    Weekly = \"Weekly\"\r\n}\r\n\r\nexport interface PerformanceScoreCard {\r\n    scoreCardMaster: ScoreCardMaster;\r\n    pscMetricDetails: Array<PSCMetricDetails>;\r\n    metricIds: number[];\r\n}\r\n\r\nexport interface ScoreCardMaster {\r\n    Id: number;\r\n    CompanyID: number;\r\n    ScoreCardType: string;\r\n    DepartmentID: number;\r\n    TeamID: number;\r\n    QuarterId: number;\r\n    Year: number;\r\n    ScoreCardName: string;\r\n    CreatedBy: string;\r\n    UpdatedBy: string;\r\n    QuarterName: string;\r\n    CompanyName: string;\r\n    DepartmentName: string;\r\n    TeamName: string;\r\n}\r\n\r\nexport interface PSCMetricDetails {\r\n    Id: number;\r\n    PSCMasterId: number;\r\n    PointerID: number;\r\n    GoalID: number;\r\n    GoalName: string;\r\n    Description: string;\r\n    TeamID: number;\r\n    DepartmentID: number;\r\n    CompanyID: number;\r\n    GreenMinimum: number;\r\n    GreenMaximum: number;\r\n    YellowMinimum: number;\r\n    YellowMaximum: number;\r\n    RedMinimum: number;\r\n    RedMaximum: number;\r\n    Frequency: string;\r\n    UOM: string;\r\n    IsSelected: boolean;\r\n    Week1: string;\r\n    Week2: string;\r\n    Week3: string;\r\n    Week4: string;\r\n    Week5: string;\r\n    Week6: string;\r\n    Week7: string;\r\n    Week8: string;\r\n    Week9: string;\r\n    Week10: string;\r\n    Week11: string;\r\n    Week12: string;\r\n    Week13: string;\r\n    Week14: string;\r\n    goalSpan: number;\r\n    GreenTargetSymbol: string;\r\n    YellowTargetSymbol: string;\r\n    RedTargetSymbol: string;\r\n}\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { MAT_DIALOG_DATA } from '@angular/material';\r\n\r\n@Component({\r\n    selector: 'response-dialog',\r\n    templateUrl: 'response-dialog.html',\r\n})\r\nexport class ResponseDialogComponent implements OnInit {\r\n\r\n    message: string;\r\n\r\n    constructor(\r\n        @Inject(MAT_DIALOG_DATA) public data: any\r\n    ) { }\r\n\r\n    ngOnInit(): void {\r\n        this.message = this.data.message;\r\n    }\r\n}","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { MAT_DIALOG_DATA } from '@angular/material';\r\n\r\n@Component({\r\n    selector: 'validation-dialog',\r\n    templateUrl: 'validation-dialog.html',\r\n})\r\nexport class ValidationDialogComponent implements OnInit {\r\n\r\n    errorMessages: any = [];\r\n\r\n    constructor(\r\n        @Inject(MAT_DIALOG_DATA) public data: any\r\n    ) { }\r\n\r\n    ngOnInit(): void {\r\n        this.errorMessages = this.data.errorMessages;\r\n    }\r\n}","import { Component, OnInit } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { LocalStorageService } from 'ngx-webstorage';\n\n@Component({\n  selector: 'app-alerts',\n  templateUrl: './alerts.component.html',\n})\nexport class AlertsComponent implements OnInit {\n\n  currentUser: string;\n  CompanyID: string;\n  empID: string;\n  MenuPermissions: any;\n  menuData: any;\n  menuID: string;\n  menuName: string;\n  loginCompanyName: any;\n  userTeamID: any;\n  pointerTypeStatus = false;\n  pointerTypeStatusMetric = false;\n  PointerTypeID: string;\n  alertValue: any;\n  alertMetric: any;\n  dataSelf: string;\n  alertData: any;\n  alertMetricData: any;\n  saved = true;\n  metricSaved = true;\n  RowMetric: any;\n  AlertRowID: any;\n  alertStatus: number;\n  alertMetricStatus: number;\n  msg: any;\n  error = false;\n  mError = false;\n  constructor(private dorseyService: DorseyService, public storage: LocalStorageService) {\n    this.currentUser = this.storage.retrieve('user');\n    this.menuData = this.storage.retrieve('menuData');\n    this.empID = this.storage.retrieve('EmployeeID');\n    this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n    this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n    this.userTeamID = this.storage.retrieve(\"TeamID\");\n  }\n\n  ngOnInit() {\n    this.CompanyID = this.storage.retrieve('companyID');\n    this.GetAlertValues();\n    this.GetMetricValues();\n    let tempdata = this.menuData;\n    this.menuData = tempdata.filter(x => x.MenuName.toString() === 'Alerts');\n    if (this.menuData.length > 0) {\n      this.menuName = this.menuData[0][\"MenuName\"];\n      this.menuID = this.menuData[0][\"MenuID\"];\n    }\n  }\n\n  ToggleType(event) {\n    this.pointerTypeStatus = event.checked;\n    if (this.pointerTypeStatus === true) {\n      this.PointerTypeID = '1';\n      this.alertStatus = 1;\n      this.saved = false;\n    }\n    if (this.pointerTypeStatus === false) {\n      this.alertStatus = 0;\n      this.saved = true;\n    }\n  }\n\n  MetricToggleType(event) {\n    this.pointerTypeStatusMetric = event.checked;\n    if (this.pointerTypeStatusMetric === true) {\n      this.alertMetricStatus = 1;\n      this.PointerTypeID = '2';\n      this.metricSaved = false;\n    }\n    if (this.pointerTypeStatusMetric === false) {\n      this.alertMetricStatus = 0;\n      this.metricSaved = true;\n    }\n  }\n\n  saveAlertValue() {\n    this.GetAlertValues();\n    if (this.alertValue === '' || this.alertValue === undefined || this.alertValue === 0) {\n      this.alertValue = '';\n      this.dataSelf = \"Please enter mandatory fields\";\n      this.error = true;\n      return;\n    }\n    if (this.alertStatus === undefined) {\n      if (this.alertData.length > 0) {\n        let alertFilter = this.alertData.filter(x => x.RowID === this.AlertRowID);\n        if (alertFilter.length > 0) {\n\n          if (alertFilter[0].AlertStatus === true) {\n            this.alertStatus = 1;\n          }\n          else {\n            this.alertStatus = 0;\n          }\n        }\n      }\n    }\n    const json = {\n      CompanyID: this.CompanyID,\n      PointerTypeID: 1,\n      AlertValue: this.alertValue,\n      UpdatedBy: this.currentUser,\n      RowID: this.AlertRowID,\n      AlertStatus: this.alertStatus,\n      CreatedBy: this.currentUser\n    };\n    if (this.AlertRowID !== '' && this.AlertRowID !== undefined) {\n      if (this.alertData !== undefined) {\n\n        this.dorseyService.SaveAlertValue(json).subscribe(data => {\n          if (data['_body'].toString() === 'true') {\n            this.dataSelf = 'Updated successfully';\n            this.error = false;\n            this.GetAlertValues();\n          } else {\n\n          }\n        });\n      }\n\n    }\n\n    else {\n\n      this.dorseyService.SaveAlertValue(json).subscribe(data => {\n        if (data['_body'].toString() === 'true') {\n          this.dataSelf = 'Saved successfully';\n          this.error = false;\n\n          this.GetAlertValues();\n        } else {\n        }\n      });\n    }\n\n  }\n\n  saveMetricAlertValue() {\n    if (this.alertMetric === '' || this.alertMetric === undefined || this.alertMetric === 0) {\n      this.alertMetric = '';\n      this.msg = \"Please enter mandatory fields\";\n      this.mError = true;\n      return;\n    }\n    if (this.alertMetricStatus === undefined) {\n      if (this.alertMetricData.length > 0) {\n        let metricFilter = this.alertMetricData.filter(x => x.RowID === this.RowMetric);\n        if (metricFilter.length > 0) {\n\n          if (metricFilter[0].AlertStatus === true) {\n            this.alertMetricStatus = 1;\n          }\n          else {\n            this.alertMetricStatus = 0;\n          }\n        }\n      }\n    }\n    const json = {\n      CompanyID: this.CompanyID,\n      PointerTypeID: 2,\n      AlertValue: this.alertMetric,\n      UpdatedBy: this.currentUser,\n      RowID: this.RowMetric,\n      AlertStatus: this.alertMetricStatus,\n      CreatedBy: this.currentUser\n    };\n    if (this.RowMetric !== '' && this.RowMetric !== undefined) {\n      if (this.alertData !== undefined) {\n\n        this.dorseyService.SaveAlertValue(json).subscribe(data => {\n          if (data['_body'].toString() === 'true') {\n            this.msg = 'Updated successfully';\n            this.mError = false;\n            this.GetMetricValues();\n          } else {\n\n          }\n        });\n      }\n    } else {\n\n      this.dorseyService.SaveAlertValue(json).subscribe(data => {\n        if (data['_body'].toString() === 'true') {\n          this.msg = 'Saved successfully'\n          this.mError = false;\n\n        } else {\n\n        }\n        this.ngOnInit();\n      });\n    }\n\n  }\n\n  GetAlertValues() {\n    this.dorseyService.GetAlertValue(this.CompanyID, 1).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.alertData = subData;\n      for (let i = 0; i < this.alertData.length; i++) {\n        this.saved = false;\n        this.pointerTypeStatus = true;\n        this.alertValue = this.alertData[i].AlertValue;\n        this.AlertRowID = this.alertData[i].RowID;\n        this.pointerTypeStatus = this.alertData[i].AlertStatus;\n        if (this.pointerTypeStatus === true) {\n          this.saved = false;\n        } else {\n          this.saved = true;\n        }\n      }\n    });\n  }\n\n  GetMetricValues() {\n    this.dorseyService.GetAlertValue(this.CompanyID, 2).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.alertMetricData = subData;\n      for (let i = 0; i < this.alertMetricData.length; i++) {\n        this.metricSaved = false;\n        this.pointerTypeStatusMetric = true;\n        this.alertMetric = this.alertMetricData[i].AlertValue;\n        this.RowMetric = this.alertMetricData[i].RowID;\n        this.pointerTypeStatusMetric = this.alertMetricData[i].AlertStatus;\n        if (this.pointerTypeStatusMetric === true) {\n          this.metricSaved = false;\n        } else {\n          this.metricSaved = true;\n        }\n      }\n    });\n  }\n\n  Validate(event: any) {\n    if (\n      // Allow: Delete, Backspace, Tab, Escape, Enter\n      [46, 8, 9, 27, 13].indexOf(event.keyCode) !== -1 ||\n      (event.keyCode === 65 && event.ctrlKey === true) || // Allow: Ctrl+A\n      (event.keyCode === 67 && event.ctrlKey === true) || // Allow: Ctrl+C\n      (event.keyCode === 86 && event.ctrlKey === true) || // Allow: Ctrl+V\n      (event.keyCode === 88 && event.ctrlKey === true) || // Allow: Ctrl+X\n      (event.keyCode === 65 && event.metaKey === true) || // Cmd+A (Mac)\n      (event.keyCode === 67 && event.metaKey === true) || // Cmd+C (Mac)\n      (event.keyCode === 86 && event.metaKey === true) || // Cmd+V (Mac)\n      (event.keyCode === 88 && event.metaKey === true) || // Cmd+X (Mac)\n      (event.keyCode >= 35 && event.keyCode <= 39)  // Home, End, Left, Right\n    ) {\n      return;\n    }\n\n    if ((event.shiftKey || (event.keyCode < 48 || event.keyCode > 57)) && (event.keyCode < 96 || event.keyCode > 105)) {\n      event.preventDefault();\n    }\n\n\n\n  }\n\n  val(event) {\n    if (this.alertValue.toString().trim() === '0') {\n      this.alertValue = '';\n    }\n    if (this.alertMetric.toString().trim() === '0') {\n      this.alertMetric = '';\n    }\n  }\n\n}\n","import { NgModule, OnInit } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport {BrowserAnimationsModule} from '@angular/platform-browser/animations';\n\nconst routes: Routes = [];\n\n@NgModule({\n  imports: [RouterModule.forRoot(routes)],\n  exports: [RouterModule]\n})\nexport class AppRoutingModule {\n\n\n}\n\n\n \n\n \n","module.exports = \"/* app drawer breakpoint */\\n.mat-sidenav {\\n  width: 360px;\\n}\\n.mat-sidenav-container {\\n  background-color: white !important;\\n  height: 100vh;\\n}\\n.mat-sidenav-container .mat-sidenav-content {\\n  display: flex;\\n  flex-direction: column;\\n}\\n.sidenav-toolbar {\\n  height: 64px;\\n  display: flex;\\n  flex-direction: row;\\n}\\n@media (max-width: 600px) {\\n  .sidenav-toolbar {\\n    height: 56px;\\n  }\\n}\\n.mat-nav-list {\\n  padding-top: 0;\\n}\\n@media (max-width: 600px) {\\n  .fixed-topnav {\\n    position: fixed;\\n    top: 0;\\n    left: 0;\\n    z-index: 2;\\n    width: 100% !important;\\n  }\\n\\n  .mat-drawer-container,\\n.mat-drawer {\\n    padding-top: 56px;\\n  }\\n}\\n.menu-list-item.mat-list-item .mat-list-item-content {\\n  flex: 1 1 100%;\\n}\\n.version-info {\\n  font-size: 8pt;\\n  padding: 8px;\\n  align-self: flex-end;\\n}\\nh1 {\\n  color: #333;\\n  font-family: arial, sans-serif;\\n  margin: 1em auto;\\n  width: 80%;\\n}\\n.tabordion {\\n  color: #333;\\n  display: block;\\n  font-family: arial, sans-serif;\\n  margin: auto;\\n  position: relative;\\n  width: 80%;\\n}\\n.tabordion input[name=sections] {\\n  left: -9999px;\\n  position: absolute;\\n  top: -9999px;\\n}\\n.tabordion section {\\n  display: block;\\n}\\n.tabordion section label {\\n  background: #ccc;\\n  border: 1px solid #fff;\\n  cursor: pointer;\\n  display: block;\\n  font-size: 1.2em;\\n  font-weight: bold;\\n  padding: 15px 20px;\\n  position: relative;\\n  width: 180px;\\n  z-index: 100;\\n}\\n.tabordion section article {\\n  display: none;\\n  left: 230px;\\n  min-width: 300px;\\n  padding: 0 0 0 21px;\\n  position: absolute;\\n  top: 0;\\n}\\n.tabordion section article:after {\\n  background-color: #ccc;\\n  bottom: 0;\\n  content: \\\"\\\";\\n  display: block;\\n  left: -229px;\\n  position: absolute;\\n  top: 0;\\n  width: 220px;\\n  z-index: 1;\\n}\\n.tabordion input[name=sections]:checked + label {\\n  font-size: 16px;\\n}\\n.tabordion input[name=sections]:checked ~ article {\\n  display: block;\\n  font-size: 16px;\\n  background: #eee;\\n  color: #000;\\n}\\n@media (max-width: 533px) {\\n  h1 {\\n    width: 100%;\\n  }\\n\\n  .tabordion {\\n    width: 100%;\\n  }\\n\\n  .tabordion section label {\\n    font-size: 1em;\\n    width: 160px;\\n  }\\n\\n  .tabordion section article {\\n    left: 200px;\\n    min-width: 270px;\\n  }\\n\\n  .tabordion section article:after {\\n    background-color: #ccc;\\n    bottom: 0;\\n    content: \\\"\\\";\\n    display: block;\\n    left: -199px;\\n    position: absolute;\\n    top: 0;\\n    width: 200px;\\n  }\\n}\\n@media print {\\n  .donotprintthis {\\n    display: none;\\n  }\\n}\\n@media print {\\n  @page {\\n    size: auto;\\n    margin: 0mm;\\n  }\\n  a[href]:after {\\n    content: none !important;\\n  }\\n}\\n@media print {\\n  #Header, #Footer {\\n    display: none !important;\\n  }\\n}\\n@media screen {\\n  .donotprintthis {\\n    display: block;\\n  }\\n}\\n.active {\\n  background-color: lightseagreen;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvRjpcXE5pa2lsIFdvcmtcXFByb2plY3RzXFxEb3JzZXlcXEhpZXJhcmNoeSBTb3VyY2UgQ29kZVxcV29ya2luZ1xcZG9yc2V5R3JvdXAvc3JjXFxhcHBcXGFwcC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvYXBwLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdnQiwwQkFBQTtBQXlCaEI7RUFDRSxZQUFBO0FDMUJGO0FENEJBO0VBQ0Usa0NBQUE7RUFDQSxhQUFBO0FDekJGO0FEMkJFO0VBQ0UsYUFBQTtFQUNBLHNCQUFBO0FDekJKO0FENEJBO0VBQ0UsWUFBQTtFQUVBLGFBQUE7RUFDQSxtQkFBQTtBQzFCRjtBRDRCRTtFQU5GO0lBT0ksWUFBQTtFQ3pCRjtBQUNGO0FEMkJBO0VBQ0UsY0FBQTtBQ3hCRjtBRFhFO0VBc0NBO0lBQ0UsZUFBQTtJQUNBLE1BQUE7SUFDQSxPQUFBO0lBQ0EsVUFBQTtJQUNBLHNCQUFBO0VDdkJGOztFRDBCQTs7SUFFRSxpQkFBQTtFQ3ZCRjtBQUNGO0FEMEJFO0VBQ0UsY0FBQTtBQ3hCSjtBRDJCQTtFQUNFLGNBQUE7RUFDQSxZQUFBO0VBQ0Esb0JBQUE7QUN4QkY7QUQwQkE7RUFDSSxXQUFBO0VBQ0EsOEJBQUE7RUFDQSxnQkFBQTtFQUNBLFVBQUE7QUN2Qko7QUQwQkU7RUFDRSxXQUFBO0VBQ0EsY0FBQTtFQUNBLDhCQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTtBQ3ZCSjtBRDBCRTtFQUNFLGFBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7QUN2Qko7QUQwQkU7RUFDRSxjQUFBO0FDdkJKO0FEMEJFO0VBQ0UsZ0JBQUE7RUFDQSxzQkFBQTtFQUNBLGVBQUE7RUFDQSxjQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0VBQ0EsWUFBQTtBQ3ZCSjtBRDBCRTtFQUNFLGFBQUE7RUFDQSxXQUFBO0VBQ0EsZ0JBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsTUFBQTtBQ3ZCSjtBRDBCRTtFQUNFLHNCQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7RUFDQSxjQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLFlBQUE7RUFDQSxVQUFBO0FDdkJKO0FEMEJFO0VBRUUsZUFBQTtBQ3hCSjtBRDJCRTtFQUNFLGNBQUE7RUFDQSxlQUFBO0VBQWtCLGdCQUFBO0VBQ2xCLFdBQUE7QUN2Qko7QUQyQkU7RUFFRTtJQUNFLFdBQUE7RUN6Qko7O0VENEJFO0lBQ0UsV0FBQTtFQ3pCSjs7RUQ0QkU7SUFDRSxjQUFBO0lBQ0EsWUFBQTtFQ3pCSjs7RUQ0QkM7SUFDRyxXQUFBO0lBQ0EsZ0JBQUE7RUN6Qko7O0VENEJFO0lBQ0Usc0JBQUE7SUFDQSxTQUFBO0lBQ0EsV0FBQTtJQUNBLGNBQUE7SUFDQSxZQUFBO0lBQ0Esa0JBQUE7SUFDQSxNQUFBO0lBQ0EsWUFBQTtFQ3pCSjtBQUNGO0FEK0JHO0VBRUE7SUFFSSxhQUFBO0VDL0JMO0FBQ0Y7QURpQ0E7RUFDRztJQUFRLFVBQUE7SUFBYSxXQUFBO0VDN0J0QjtFRDhCQztJQUNJLHdCQUFBO0VDNUJMO0FBQ0Y7QUQ4QkE7RUFDRztJQUFtQix3QkFBQTtFQzNCcEI7QUFDRjtBRDRCQTtFQUVHO0lBRUksY0FBQTtFQzVCTDtBQUNGO0FEOEJBO0VBQ0UsK0JBQUE7QUM1QkYiLCJmaWxlIjoic3JjL2FwcC9hcHAuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBCcmVha3BvaW50c1xyXG4kaGFuZHNldDogMzYwcHg7XHJcbiRsYXJnZS1oYW5kc2V0OiA0ODBweDtcclxuJHRhYmxldDogNjQwcHg7IC8qIGFwcCBkcmF3ZXIgYnJlYWtwb2ludCAqL1xyXG4kbGFyZ2UtdGFibGV0OiA4NDBweDtcclxuJGRlc2t0b3A6IDk2MHB4O1xyXG4kbGFyZ2UtZGVza3RvcDogMTI4MHB4O1xyXG4keC1sYXJnZS1kZXNrdG9wOiAxNDQwcHg7XHJcbiR4eC1sYXJnZS1kZXNrdG9wOiAxOTIwcHg7XHJcblxyXG4vLyBnZW5lcmF0ZSBtaW4td2lkdGggYnJlYWtwb2ludFxyXG5AbWl4aW4gYnJlYWtwb2ludCgkcG9pbnQpIHtcclxuICBAbWVkaWEgKG1pbi13aWR0aDogJHBvaW50KSB7IEBjb250ZW50IDsgfVxyXG59XHJcbi8vIGdlbmVyYXRlIG1heC13aWR0aCBicmVha3BvaW50ICh1c2Ugc3BhcmluZ2x5KVxyXG5AbWl4aW4gYnJlYWtwb2ludC1tYXgoJHBvaW50KSB7XHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6ICRwb2ludCkgeyBAY29udGVudCA7IH1cclxufVxyXG4vLyBnZW5lcmF0ZSBtaW4taGVpZ2h0IGJyZWFrcG9pbnRcclxuQG1peGluIGhlaWdodC1icmVha3BvaW50KCRwb2ludCkge1xyXG4gIEBtZWRpYSAobWluLWhlaWdodDogJHBvaW50KSB7IEBjb250ZW50IDsgfVxyXG59XHJcbi8vIGdlbmVyYXRlIG1heC1oZWlnaHQgYnJlYWtwb2ludCAodXNlIHNwYXJpbmdseSlcclxuQG1peGluIGhlaWdodC1icmVha3BvaW50LW1heCgkcG9pbnQpIHtcclxuICBAbWVkaWEgKG1pbi1oZWlnaHQ6ICRwb2ludCkgeyBAY29udGVudCA7IH1cclxufVxyXG5cclxuXHJcbi5tYXQtc2lkZW5hdiB7XHJcbiAgd2lkdGg6IDM2MHB4O1xyXG59XHJcbi5tYXQtc2lkZW5hdi1jb250YWluZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XHJcbiAgaGVpZ2h0OiAxMDB2aDtcclxuXHJcbiAgLm1hdC1zaWRlbmF2LWNvbnRlbnQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgfVxyXG59XHJcbi5zaWRlbmF2LXRvb2xiYXIge1xyXG4gIGhlaWdodDogNjRweDtcclxuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFwcC1wcmltYXJ5KTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblxyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xyXG4gICAgaGVpZ2h0OiA1NnB4O1xyXG4gIH1cclxufVxyXG4ubWF0LW5hdi1saXN0IHtcclxuICBwYWRkaW5nLXRvcDogMDtcclxufVxyXG5AaW5jbHVkZSBicmVha3BvaW50LW1heCg2MDBweCkge1xyXG4gIC5maXhlZC10b3BuYXYge1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHotaW5kZXg6IDI7XHJcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLm1hdC1kcmF3ZXItY29udGFpbmVyLFxyXG4gIC5tYXQtZHJhd2VyIHtcclxuICAgIHBhZGRpbmctdG9wOiA1NnB4O1xyXG4gIH1cclxufVxyXG4ubWVudS1saXN0LWl0ZW0ubWF0LWxpc3QtaXRlbSB7XHJcbiAgLm1hdC1saXN0LWl0ZW0tY29udGVudCB7XHJcbiAgICBmbGV4OiAxIDEgMTAwJTtcclxuICB9XHJcbn1cclxuLnZlcnNpb24taW5mbyB7XHJcbiAgZm9udC1zaXplOiA4cHQ7XHJcbiAgcGFkZGluZzogOHB4O1xyXG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xyXG59XHJcbmgxIHtcclxuICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgZm9udC1mYW1pbHk6IGFyaWFsLCBzYW5zLXNlcmlmO1xyXG4gICAgbWFyZ2luOiAxZW0gYXV0bztcclxuICAgIHdpZHRoOiA4MCU7XHJcbiAgfVxyXG4gIFxyXG4gIC50YWJvcmRpb24ge1xyXG4gICAgY29sb3I6ICMzMzM7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGZvbnQtZmFtaWx5OiBhcmlhbCwgc2Fucy1zZXJpZjtcclxuICAgIG1hcmdpbjogYXV0bztcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHdpZHRoOiA4MCU7XHJcbiAgfVxyXG4gIFxyXG4gIC50YWJvcmRpb24gaW5wdXRbbmFtZT1cInNlY3Rpb25zXCJdIHtcclxuICAgIGxlZnQ6IC05OTk5cHg7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IC05OTk5cHg7XHJcbiAgfVxyXG4gIFxyXG4gIC50YWJvcmRpb24gc2VjdGlvbiB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcbiAgXHJcbiAgLnRhYm9yZGlvbiBzZWN0aW9uIGxhYmVsIHtcclxuICAgIGJhY2tncm91bmQ6ICNjY2M7XHJcbiAgICBib3JkZXI6MXB4IHNvbGlkICNmZmY7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGZvbnQtc2l6ZTogMS4yZW07XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIHBhZGRpbmc6IDE1cHggMjBweDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHdpZHRoOiAxODBweDtcclxuICAgIHotaW5kZXg6MTAwO1xyXG4gIH1cclxuICBcclxuICAudGFib3JkaW9uIHNlY3Rpb24gYXJ0aWNsZSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgbGVmdDogMjMwcHg7XHJcbiAgICBtaW4td2lkdGg6IDMwMHB4O1xyXG4gICAgcGFkZGluZzogMCAwIDAgMjFweDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgIFxyXG4gICAgdG9wOiAwO1xyXG4gIH1cclxuICBcclxuICAudGFib3JkaW9uIHNlY3Rpb24gYXJ0aWNsZTphZnRlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgbGVmdDotMjI5cHg7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICB3aWR0aDogMjIwcHg7XHJcbiAgICB6LWluZGV4OjE7XHJcbiAgfVxyXG4gIFxyXG4gIC50YWJvcmRpb24gaW5wdXRbbmFtZT1cInNlY3Rpb25zXCJdOmNoZWNrZWQgKyBsYWJlbCB7IFxyXG4gXHJcbiAgICBmb250LXNpemU6MTZweDtcclxuICB9XHJcbiAgXHJcbiAgLnRhYm9yZGlvbiBpbnB1dFtuYW1lPVwic2VjdGlvbnNcIl06Y2hlY2tlZCB+IGFydGljbGUge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBmb250LXNpemU6MTZweDsgICBiYWNrZ3JvdW5kOiAjZWVlO1xyXG4gICAgY29sb3I6ICMwMDA7XHJcbiAgfVxyXG4gIFxyXG4gIFxyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA1MzNweCkge1xyXG4gICAgXHJcbiAgICBoMSB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgLnRhYm9yZGlvbiB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAudGFib3JkaW9uIHNlY3Rpb24gbGFiZWwge1xyXG4gICAgICBmb250LXNpemU6IDFlbTtcclxuICAgICAgd2lkdGg6IDE2MHB4O1xyXG4gICAgfSAgXHJcbiAgXHJcbiAgIC50YWJvcmRpb24gc2VjdGlvbiBhcnRpY2xlIHtcclxuICAgICAgbGVmdDogMjAwcHg7XHJcbiAgICAgIG1pbi13aWR0aDogMjcwcHg7XHJcbiAgICB9IFxyXG4gICAgXHJcbiAgICAudGFib3JkaW9uIHNlY3Rpb24gYXJ0aWNsZTphZnRlciB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XHJcbiAgICAgIGJvdHRvbTogMDtcclxuICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIGxlZnQ6LTE5OXB4O1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogMDtcclxuICAgICAgd2lkdGg6IDIwMHB4O1xyXG4gIFxyXG4gICAgfSAgXHJcbiAgICBcclxuICB9XHJcbiAgXHJcbiAgXHJcbiAgIEBtZWRpYSBwcmludFxyXG57XHJcbiAgIC5kb25vdHByaW50dGhpc1xyXG4gICB7XHJcbiAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICB9XHJcbn1cclxuQG1lZGlhIHByaW50IHtcclxuICAgQHBhZ2UgeyBzaXplOiBhdXRvOyAgbWFyZ2luOiAwbW07IH1cclxuICAgYVtocmVmXTphZnRlciB7XHJcbiAgICAgICBjb250ZW50OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgIH1cclxufVxyXG5AbWVkaWEgcHJpbnQge1xyXG4gICAjSGVhZGVyLCAjRm9vdGVyIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XHJcbn1cclxuQG1lZGlhIHNjcmVlblxyXG57XHJcbiAgIC5kb25vdHByaW50dGhpc1xyXG4gICB7XHJcbiAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgfVxyXG59XHJcbi5hY3RpdmV7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRzZWFncmVlbjtcclxuICAvLyBjb2xvcjogYmxhY2s7XHJcbn0iLCIvKiBhcHAgZHJhd2VyIGJyZWFrcG9pbnQgKi9cbi5tYXQtc2lkZW5hdiB7XG4gIHdpZHRoOiAzNjBweDtcbn1cblxuLm1hdC1zaWRlbmF2LWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMTAwdmg7XG59XG4ubWF0LXNpZGVuYXYtY29udGFpbmVyIC5tYXQtc2lkZW5hdi1jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLnNpZGVuYXYtdG9vbGJhciB7XG4gIGhlaWdodDogNjRweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAuc2lkZW5hdi10b29sYmFyIHtcbiAgICBoZWlnaHQ6IDU2cHg7XG4gIH1cbn1cblxuLm1hdC1uYXYtbGlzdCB7XG4gIHBhZGRpbmctdG9wOiAwO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgLmZpeGVkLXRvcG5hdiB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDI7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tYXQtZHJhd2VyLWNvbnRhaW5lcixcbi5tYXQtZHJhd2VyIHtcbiAgICBwYWRkaW5nLXRvcDogNTZweDtcbiAgfVxufVxuLm1lbnUtbGlzdC1pdGVtLm1hdC1saXN0LWl0ZW0gLm1hdC1saXN0LWl0ZW0tY29udGVudCB7XG4gIGZsZXg6IDEgMSAxMDAlO1xufVxuXG4udmVyc2lvbi1pbmZvIHtcbiAgZm9udC1zaXplOiA4cHQ7XG4gIHBhZGRpbmc6IDhweDtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG59XG5cbmgxIHtcbiAgY29sb3I6ICMzMzM7XG4gIGZvbnQtZmFtaWx5OiBhcmlhbCwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAxZW0gYXV0bztcbiAgd2lkdGg6IDgwJTtcbn1cblxuLnRhYm9yZGlvbiB7XG4gIGNvbG9yOiAjMzMzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1mYW1pbHk6IGFyaWFsLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDgwJTtcbn1cblxuLnRhYm9yZGlvbiBpbnB1dFtuYW1lPXNlY3Rpb25zXSB7XG4gIGxlZnQ6IC05OTk5cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtOTk5OXB4O1xufVxuXG4udGFib3JkaW9uIHNlY3Rpb24ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnRhYm9yZGlvbiBzZWN0aW9uIGxhYmVsIHtcbiAgYmFja2dyb3VuZDogI2NjYztcbiAgYm9yZGVyOiAxcHggc29saWQgI2ZmZjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxLjJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6IDE1cHggMjBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTgwcHg7XG4gIHotaW5kZXg6IDEwMDtcbn1cblxuLnRhYm9yZGlvbiBzZWN0aW9uIGFydGljbGUge1xuICBkaXNwbGF5OiBub25lO1xuICBsZWZ0OiAyMzBweDtcbiAgbWluLXdpZHRoOiAzMDBweDtcbiAgcGFkZGluZzogMCAwIDAgMjFweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG59XG5cbi50YWJvcmRpb24gc2VjdGlvbiBhcnRpY2xlOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgYm90dG9tOiAwO1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbGVmdDogLTIyOXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDIyMHB4O1xuICB6LWluZGV4OiAxO1xufVxuXG4udGFib3JkaW9uIGlucHV0W25hbWU9c2VjdGlvbnNdOmNoZWNrZWQgKyBsYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cblxuLnRhYm9yZGlvbiBpbnB1dFtuYW1lPXNlY3Rpb25zXTpjaGVja2VkIH4gYXJ0aWNsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGJhY2tncm91bmQ6ICNlZWU7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNTMzcHgpIHtcbiAgaDEge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLnRhYm9yZGlvbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAudGFib3JkaW9uIHNlY3Rpb24gbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIHdpZHRoOiAxNjBweDtcbiAgfVxuXG4gIC50YWJvcmRpb24gc2VjdGlvbiBhcnRpY2xlIHtcbiAgICBsZWZ0OiAyMDBweDtcbiAgICBtaW4td2lkdGg6IDI3MHB4O1xuICB9XG5cbiAgLnRhYm9yZGlvbiBzZWN0aW9uIGFydGljbGU6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gICAgYm90dG9tOiAwO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbGVmdDogLTE5OXB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDIwMHB4O1xuICB9XG59XG5AbWVkaWEgcHJpbnQge1xuICAuZG9ub3RwcmludHRoaXMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbkBtZWRpYSBwcmludCB7XG4gIEBwYWdlIHtcbiAgICBzaXplOiBhdXRvO1xuICAgIG1hcmdpbjogMG1tO1xuICB9XG4gIGFbaHJlZl06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIHByaW50IHtcbiAgI0hlYWRlciwgI0Zvb3RlciB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIHtcbiAgLmRvbm90cHJpbnR0aGlzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0c2VhZ3JlZW47XG59Il19 */\"","import { Component, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute, Params } from \"@angular/router\";\nimport { LocalStorageService } from 'ngx-webstorage';\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.scss'],\n  // providers:[LocalStorageService]\n})\nexport class AppComponent implements OnInit {\n  menuOpen = false;\n  title = 'dorseyGroup';\n  menuOpenStatus = true;\n  count = 0;\n  authenticated = false;\n  companyID = \"\";\n  EmployeeID = \"\";\n\n  constructor(private router: Router, private routerActive: ActivatedRoute, private storage: LocalStorageService) {\n    // ,\n  }\n  ngOnInit() {\n    this.companyID = this.storage.retrieve('companyID');\n    this.EmployeeID = this.storage.retrieve('EmployeeID');\n  }\n\n  onClick(event) {\n    if (this.count === 0) {\n      this.menuOpen = true;\n      this.menuOpenStatus = false;\n      this.count++;\n    } else {\n      this.menuOpen = false;\n      this.menuOpenStatus = true;\n      this.count = 0;\n    }\n\n  }\n\n\n}\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\nimport { HttpModule } from '@angular/http';\r\nimport { CompanyComponent, CompanyDialogComponent } from './company/company.component'\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { NgxPrintModule } from 'ngx-print';\r\n\r\nimport {\r\n  MatTabsModule, MatIconModule, MatMenuModule, MatFormFieldModule, MatTableModule,\r\n  MatDialogModule, MatInputModule, MatOptionModule, MatSelectModule,\r\n  MatRadioModule, MatDatepickerModule, MatNativeDateModule, MatButtonModule,\r\n  MatSlideToggleModule, MatPaginatorModule, MatTooltipModule, MatCheckboxModule,\r\n  MatExpansionModule, MatListModule, MatSidenavModule, MatSliderModule, MatCardModule\r\n} from '@angular/material';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { ProcessComponent, ProcessDialogComponent } from './process/process.component';\r\nimport { ActivityComponent, ActivityDialogComponent } from './activity/activity.component';\r\nimport { TeamsComponent, TeamsDialogComponent } from './teams/teams.component';\r\nimport { EmployeeComponent, EmployeeDialogComponent } from './employee/employee.component';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { PointerComponent, PointerDialogComponent, PointerDialogComponent2 } from './pointer/pointer.component';\r\nimport { ProcessMapComponent, ProcessMapDialogComponent, ProcessMapDialogComponent2 } from './process-map/process-map.component';\r\nimport { CaseComponent, CaseDialogComponent } from './case/case.component';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { MetricComponent, MetricDialogComponent } from './metric/metric.component';\r\nimport { ProjectComponent, ProjectDialogComponent } from './project/project.component';\r\nimport { NgxPaginationModule } from 'ngx-pagination';\r\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\r\nimport { SortPipe } from './sort.pipe';\r\n\r\n// import  from '@angular/router';\r\nimport { LocationStrategy, HashLocationStrategy } from '@angular/common';\r\nimport { ReportCategoryComponent, DialogComponent } from './report-category/report-category.component';\r\nimport { ReportProcessComponent, ReportProcessDialogComponent } from './report-process/report-process.component';\r\nimport { ReportProjectComponent, ReportProjectDialogComponent } from './report-project/report-project.component';\r\nimport { ReportMetricProcessComponent, ReportMetricDialogComponent } from './report-metric-process/report-metric-process.component';\r\nimport { FusionChartsModule } from \"angular-fusioncharts\";\r\nimport { ChartsModule } from 'ng2-charts';\r\n// Import FusionCharts library and chart modules\r\nimport * as FusionCharts from \"fusioncharts\";\r\nimport * as Charts from \"fusioncharts/fusioncharts.charts\";\r\n\r\nimport * as FusionTheme from \"fusioncharts/themes/fusioncharts.theme.fusion\";\r\nimport { FrustrationReportsComponent } from './frustration-reports/frustration-reports.component';\r\nimport { ProjectsNoactionsComponent } from './projects-noactions/projects-noactions.component';\r\nimport { OtherFrustrationComponent } from './other-frustration/other-frustration.component';\r\nimport { FrustrationCommentsComponent } from './frustration-comments/frustration-comments.component';\r\nimport { NometricProcessComponent } from './nometric-process/nometric-process.component';\r\nimport { ReportsComponent } from './reports/reports.component';\r\nimport { DashboardComponent } from './dashboard/dashboard.component';\r\nimport { LoginComponent, LoginMetricDialogComponent } from './login/login.component';\r\nimport { RolesComponent, RolePermissionsDiaglogComponent } from './roles/roles.component';\r\nimport { NgxWebstorageModule } from 'ngx-webstorage';\r\nimport { HipriorityComponent } from './hipriority/hipriority.component';\r\nimport { FrustrationstypeComponent, FrustTypeDialogComponent } from './frustrationstype/frustrationstype.component';\r\nimport { ReportHipriorityComponent, ReportSeverityDialogComponent } from './report-hipriority/report-hipriority.component';\r\n\r\nimport { AlertsComponent } from './alerts/alerts.component';\r\nimport { MetricdataComponent } from './metricdata/metricdata.component';\r\nimport { MetricDataDialogComponent } from './metricdata/metricdata.component';\r\nimport { LayoutModule } from '@angular/cdk/layout';\r\nimport { HttpClient, HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { LongPress } from '../app/long-press';\r\nimport { UsermanualComponent } from './usermanual/usermanual.component';\r\nimport { PdfViewerModule } from 'ng2-pdf-viewer';\r\nimport { DepartmentDialogComponent, DepartmentsComponent } from './departments/departments.component';\r\nimport { GoalDialogComponent, GoalsComponent } from './goals/goals.component';\r\nimport { PerformanceScoreCardComponent, PerformanceScoreCardDialogComponent } from './performance-score-card/performance-score-card.component';\r\nimport { QuarterComponent } from './quarter/quarter.component';\r\nimport { MessageDialogComponent } from './common/dialog';\r\nimport { AddScoreCardComponent } from './add-score-card/add-score-card.component';\r\nimport { ValidationDialogComponent } from './add-score-card/validation-dialog';\r\nimport { ViewScoreCardComponent } from './view-score-card/view-score-card.component';\r\nimport { ResponseDialogComponent } from './add-score-card/response-dialog';\r\nimport { ReportActivityIssuesComponent } from './report-activity-issues/report-activity-issues.component';\r\nimport { UserPermisionsComponent } from './user-permisions/user-permisions.component';\r\nimport { OrganizationComponent, OrganizationDialogComponent } from './organization/organization.component';\r\nimport { SubCompanyComponent } from './sub-company/sub-company.component';\r\nimport { NumberDirective } from './common/directives/numbers-only.directive';\r\nimport { MsalInterceptor, MsalModule } from '@azure/msal-angular';\r\nimport { AzureDetails } from './login/azure-details.model';\r\nimport { MsalUserService } from './login/msal-user.service';\r\n// Pass the fusioncharts library and chart modules\r\nFusionChartsModule.fcRoot(FusionCharts, Charts, FusionTheme);\r\n\r\nconst appRoutes: Routes = [\r\n  { path: 'appcomponent', component: AppComponent },\r\n  { path: 'entity', component: CompanyComponent },\r\n  { path: 'process', component: ProcessComponent },\r\n  { path: 'activity', component: ActivityComponent },\r\n  { path: 'pointer', component: PointerComponent },\r\n  { path: 'employee', component: EmployeeComponent },\r\n  { path: 'team', component: TeamsComponent },\r\n  { path: 'processMap', component: ProcessMapComponent },\r\n  { path: 'case', component: CaseComponent },\r\n  { path: 'metric', component: MetricComponent },\r\n  { path: 'project', component: ProjectComponent },\r\n  { path: 'report', component: ReportCategoryComponent },\r\n  { path: 'reportProcess', component: ReportProcessComponent },\r\n  { path: 'reportProject', component: ReportProjectComponent },\r\n  { path: 'reportMetric', component: ReportMetricProcessComponent },\r\n  { path: 'reportFrustration', component: FrustrationReportsComponent },\r\n  { path: 'noactionProject', component: ProjectsNoactionsComponent },\r\n  { path: 'otherFrustration', component: OtherFrustrationComponent },\r\n  { path: 'frustrationComments', component: FrustrationCommentsComponent },\r\n  { path: 'nometricProcess', component: NometricProcessComponent },\r\n  //{ path: 'dashboard', component: DashboardComponent },\r\n  { path: 'dashboard/:TeamID', component: DashboardComponent },\r\n  { path: 'reports', component: ReportsComponent },\r\n  { path: 'roles', component: RolesComponent },\r\n  { path: 'frustrationsType', component: FrustrationstypeComponent },\r\n  { path: 'alerts', component: AlertsComponent },\r\n  { path: 'metricData', component: MetricdataComponent },\r\n  { path: 'userManual', component: UsermanualComponent },\r\n  { path: 'departments', component: DepartmentsComponent },\r\n  { path: 'goals', component: GoalsComponent },\r\n  { path: 'quarter', component: QuarterComponent },\r\n  { path: 'performance-score-card', component: PerformanceScoreCardComponent },\r\n  { path: 'add-score-card/:id/:stepId', component: AddScoreCardComponent },\r\n  { path: 'organization', component: OrganizationComponent },\r\n  { path: 'sub-company', component: SubCompanyComponent }\r\n\r\n];\r\n\r\nexport const protectedResourceMap: any =  \r\n  [  \r\n    [AzureDetails.scopeUri]  \r\n  ];\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    AppComponent,\r\n    ProcessComponent,\r\n    ActivityComponent,\r\n    TeamsComponent,\r\n    EmployeeComponent,\r\n    CompanyComponent,\r\n    CompanyDialogComponent,\r\n    ProcessDialogComponent,\r\n    EmployeeDialogComponent,\r\n    ActivityDialogComponent,\r\n    TeamsDialogComponent,\r\n    PointerComponent,\r\n    PointerDialogComponent,\r\n    PointerDialogComponent2,\r\n    ProcessMapComponent,\r\n    ProcessMapDialogComponent,\r\n    ProcessMapDialogComponent2,\r\n    CaseComponent,\r\n    CaseDialogComponent,\r\n    MetricComponent, MetricDialogComponent, ProjectComponent,\r\n    ProjectComponent, ProjectDialogComponent,\r\n    SortPipe,\r\n    ReportCategoryComponent,\r\n    DialogComponent,\r\n    ReportProcessComponent,\r\n    ReportProjectComponent,\r\n    ReportProcessDialogComponent,\r\n    ReportProjectDialogComponent,\r\n    ReportMetricProcessComponent,\r\n    ReportMetricDialogComponent,\r\n    FrustrationReportsComponent,\r\n    ProjectsNoactionsComponent,\r\n    OtherFrustrationComponent,\r\n    FrustrationCommentsComponent,\r\n    NometricProcessComponent,\r\n    DashboardComponent,\r\n    ReportsComponent,\r\n    LoginComponent,\r\n    LoginMetricDialogComponent,\r\n    UserPermisionsComponent,\r\n    RolesComponent,\r\n    RolePermissionsDiaglogComponent,\r\n    HipriorityComponent,\r\n    LoginMetricDialogComponent,\r\n    FrustrationstypeComponent,\r\n    FrustTypeDialogComponent,\r\n    ReportHipriorityComponent,\r\n    ReportSeverityDialogComponent, AlertsComponent,\r\n    MetricdataComponent,\r\n    MetricDataDialogComponent,\r\n    LongPress,\r\n    UsermanualComponent,\r\n    DepartmentsComponent,\r\n    DepartmentDialogComponent,\r\n    GoalsComponent,\r\n    GoalDialogComponent,\r\n    PerformanceScoreCardComponent,\r\n    QuarterComponent,\r\n    MessageDialogComponent,\r\n    AddScoreCardComponent,\r\n    ValidationDialogComponent,\r\n    ViewScoreCardComponent,\r\n    ResponseDialogComponent,\r\n    ReportActivityIssuesComponent,\r\n    OrganizationComponent,\r\n    OrganizationDialogComponent,\r\n    SubCompanyComponent,\r\n    PerformanceScoreCardDialogComponent,\r\n    NumberDirective\r\n  ],\r\n  imports: [\r\n    MsalModule.forRoot({  \r\n      clientID: AzureDetails.ClientId,  \r\n      authority: 'https://login.microsoftonline.com/' + AzureDetails.TenantId,  \r\n      protectedResourceMap: protectedResourceMap,  \r\n      redirectUri: AzureDetails.RedirectURL  \r\n    }),\r\n    BsDatepickerModule.forRoot(),\r\n    BrowserModule,\r\n    AppRoutingModule,\r\n    HttpModule,\r\n    RouterModule.forRoot(appRoutes), HttpModule,\r\n    PdfViewerModule,\r\n    MatTabsModule, BrowserAnimationsModule, MatIconModule, MatMenuModule,\r\n    FormsModule, ReactiveFormsModule, MatFormFieldModule, MatDialogModule,\r\n    MatInputModule, FlexLayoutModule, MatSelectModule, MatOptionModule,\r\n    MatRadioModule, MatDatepickerModule, MatNativeDateModule, MatButtonModule, MatSlideToggleModule,\r\n    MatTableModule, MatPaginatorModule, DragDropModule, MatTooltipModule, MatCheckboxModule, MatExpansionModule,\r\n    NgxPaginationModule, FusionChartsModule, ChartsModule, NgxWebstorageModule.forRoot(),\r\n    MatListModule, NgxPrintModule, MatSidenavModule, LayoutModule, HttpClientModule,\r\n    MatSliderModule, MatCardModule\r\n  ],\r\n  providers: [{ provide: LocationStrategy, useClass: HashLocationStrategy }, \r\n    HttpClient,\r\n    MsalUserService,\r\n    {  \r\n      provide: HTTP_INTERCEPTORS, useClass: MsalInterceptor, multi: true  \r\n    }],\r\n  bootstrap: [LoginComponent],\r\n  entryComponents: [\r\n    CompanyDialogComponent,\r\n    ProcessDialogComponent,\r\n    EmployeeDialogComponent,\r\n    ActivityDialogComponent,\r\n    TeamsDialogComponent,\r\n    PointerDialogComponent,\r\n    PointerDialogComponent2,\r\n    ProcessMapDialogComponent,\r\n    ProcessMapDialogComponent2,\r\n    CaseDialogComponent,\r\n    MetricDialogComponent,\r\n    ProjectDialogComponent,\r\n    DialogComponent,\r\n    ReportProcessDialogComponent,\r\n    ReportProjectDialogComponent,\r\n    ReportMetricDialogComponent,\r\n    RolePermissionsDiaglogComponent,\r\n    LoginMetricDialogComponent,\r\n    FrustTypeDialogComponent,\r\n    ReportSeverityDialogComponent,\r\n    MetricDataDialogComponent,\r\n    DepartmentDialogComponent,\r\n    GoalDialogComponent,\r\n    MessageDialogComponent,\r\n    ValidationDialogComponent,\r\n    ResponseDialogComponent,\r\n    OrganizationDialogComponent,\r\n    PerformanceScoreCardDialogComponent\r\n  ]\r\n})\r\nexport class AppModule { }\r\n","import { Component, OnInit, Inject, ViewChild, ElementRef } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { Http } from '@angular/http';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { FormControl } from '@angular/forms';\nimport { DatePipe } from '@angular/common'\nimport { Observable } from 'rxjs';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { CdkDragDrop, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { copyRight } from '../copyRight.model';\n@Component({\n  selector: 'app-pointer',\n  templateUrl: './case.component.html',\n  //styleUrls: ['./case.component.scss'],\n  providers: [DorseyService, DatePipe]\n})\nexport class CaseComponent implements OnInit {\n  employeeDetails: any;\n  Comments: string;\n  condition = false;\n  status = false;\n  employeeData: any;\n  processData: any;\n  activityData: any;\n  pointerTypeData: any;\n  frustrationtypeData: any;\n  departmentData: any;\n  teamData: any;\n  severityData: any;\n  statusData: any;\n  CaseID: string;\n  EmployeeID: string;\n  ProcessID: string;\n  ActivityID: string;\n  PointerTypeID: string;\n  FrustrationTypeID: string;\n  DepartmentID: string;\n  TeamID: string;\n  StatusID: string;\n  SeverityID: string;\n  Subject: string;\n  Description: string;\n  PointerID: string;\n  pointerData: any;\n  tempActivity = [];\n  tempTeam = [];\n  SLAViolation: string;\n\n  tempFrustrationType = []\n\n  tempPointer: any;\n  newPointer = false;\n  caseData: any;\n  newData = [];\n  workingData = [];\n  escalatedData = [];\n  closingData = [];\n  NewheaderText: string;\n  workingHeader: string;\n  Esculatedheader: string;\n  Closedheader: string;\n  searchtext: string = '';\n  kenvanView = [];\n  kenvan = {};\n  weeks = [];\n  connectedTo = [];\n  tableFormat = false;\n  kenbanFormat = false;\n  displayAs: string;\n  currentPage: number;\n  pageIndex: number;\n  endIndex: number;\n  startIndex: number;\n  ifRowSelected = false;\n\n  p: number;\n  rowsOnPage = 10;\n  total: number;\n  rowsOnPageSet = [];\n  rowCount: any;\n  dynamicRows = 10;\n  isDesc: boolean = false;\n  column = \"\";\n  direction: number;\n  arrow = true;\n\n  checklist = [];\n  selectedRows = [];\n  checkEnable = false;\n  checkAll = false;\n  ProjectID: string;\n  projectData: any;\n  ErrorMessage: string;\n  casePaging = false;\n  saveFilter = [];\n  CompanyID: string;\n  isDisable = false;\n  disableSearch = false;\n  disableKenban = false;\n  currentUser: string;\n  Date = new Date();\n  menuName: string;\n  menuID: string;\n  menuData: any;\n  MenuPermissions: any;\n  showProject = true;\n  enableProject = false;\n  userTeamID: string;\n  loginCompanyName: any;\n  TeamName: string;\n  empID: any;\n  errorMsg: any;\n  projectAvailable = true;\n  subActivityStatus = false;\n  ParentID: any;\n  SubActivityID: string;\n  tempSubActivity = [];\n  UserID: any;\n  userRoleAssignmentData: any;\n  rolesData: any;\n  EmpROleID: any;\n  updatedBy: any;\n  @ViewChild('button', { static: false }) button: ElementRef;\n  longPress = 'first state';\n  longPressing = 0;\n  isLongPressed = false;\n  ifLongPress = true;\n  updatedDate = new Date();\n  constructor(private http: Http, private dorseyService: DorseyService, public dialog: MatDialog, private storage: LocalStorageService, private datepipe: DatePipe) {\n    this.CompanyID = this.storage.retrieve('companyID');\n    this.empID = this.storage.retrieve('EmployeeID');\n    this.userTeamID = this.storage.retrieve('TeamID');\n    this.currentUser = this.storage.retrieve('user');\n    this.menuData = this.storage.retrieve('menuData');\n    this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n    this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n    this.UserID = this.storage.retrieve('UserID');\n    this.EmpROleID = this.storage.retrieve('EmpRoleID');\n    this.employeeDetails = this.storage.retrieve('employeeDetails');\n    this.GetStatus();\n\n  }\n\n  ngOnInit() {\n    this.GetTeam();\n    this.menuData = this.menuData.filter(x => x.MenuName.toString().toLowerCase() === 'frustrations');\n    if (this.menuData.length > 0) {\n      this.menuName = this.menuData[0][\"MenuName\"];\n      this.menuID = this.menuData[0][\"MenuID\"];\n    }\n    this.tableFormat = true;\n    this.GetProcess();\n    this.GetActivity();\n    this.GetEmployee();\n    this.GetDepartment();\n    this.GetPointerType();\n    this.GetSeverity();\n    this.GetPointer();\n    this.GetProjects();\n    this.GetFrustrationType();\n    this.GetCase();\n\n\n    this.displayAs = \"Table\";\n  }\n\n\n\n  onLongPressing() {\n    this.longPressing += 1;\n    if (this.longPressing > 20) {\n      this.ifLongPress = false;\n    } else {\n      this.ifLongPress = true;\n    }\n  }\n  onMouseUp() {\n    this.longPressing = 0;\n    this.ifLongPress = true;\n  }\n\n  onDblClick() {\n    this.ifLongPress = false;\n  }\n\n  getPageNum() {\n    this.currentPage = this.p;\n    if (this.currentPage !== this.pageIndex) {\n      this.checkAll = false;\n    }\n  }\n\n  CheckAll(event) {\n    if (this.projectData.length == 0) {\n      this.projectAvailable = false;\n      this.errorMsg = 'No project available.';\n      setTimeout(() => {\n        this.projectAvailable = true;\n      }, 5000);\n\n    }\n    this.selectedRows = this.selectedRows;\n    if (event.checked) {\n      this.checkEnable = true;\n      this.enableProject = true;\n    } else {\n      this.checkEnable = false;\n      this.checkAll = false;\n    }\n    this.pageIndex = this.p;\n\n    let totalRows = this.caseData.length;\n    let RowsPerPage = this.rowsOnPage;\n\n    if (this.pageIndex > 1) {\n      this.startIndex = (this.pageIndex - 1) * RowsPerPage;\n      this.endIndex = this.startIndex + RowsPerPage;\n\n    } else {\n      this.startIndex = 0;\n      this.endIndex = this.rowsOnPage;\n    }\n\n    try {\n      for (let i = this.startIndex; i < this.endIndex; i++) {\n\n        if (this.checkAll) {\n          if (!this.checklist[i]) {\n            this.checklist[i] = event.checked;\n            this.change(this.caseData[i], event, i);\n          }\n        } else {\n          this.checklist[i] = event.checked;\n          this.change(this.caseData[i], event, i);\n        }\n      }\n    } catch (error) { }\n  }\n\n  checkListCount() {\n    for (let i = 0; i < this.caseData.length; i++) {\n      if (this.checklist[i]) {\n        this.enableProject = true;\n        break;\n      } else {\n        this.enableProject = false;\n      }\n    }\n\n  }\n\n  sort(property) {\n    this.arrow = !this.arrow;\n    this.isDesc = !this.isDesc; //change the direction\n    this.column = property;\n    this.direction = this.isDesc ? 1 : -1;\n  }\n\n\n  change(element, event, i) {\n    if (this.projectData.length === 0) {\n      this.projectAvailable = false;\n      this.errorMsg = 'No project available.';\n      setTimeout(() => {\n        this.projectAvailable = true;\n\n      }, 10000);\n\n    }\n    element.check = event.checked;\n    if (!event.checked) {\n\n      this.checkAll = false;\n      const index = this.selectedRows.indexOf(element);\n      this.selectedRows.splice(index, 1);\n      if (this.selectedRows.length === 0) {\n        this.enableProject = false;\n      }\n      else {\n        this.enableProject = true;\n      }\n\n    } else {\n      this.enableProject = true;\n      this.selectedRows.push(element);\n      this.checkEnable = true;\n\n    }\n    if (this.selectedRows.length === 0) {\n      this.checkEnable = false;\n    }\n\n  }\n\n  exportAsXLSX() {\n    let allData = JSON.parse(JSON.stringify(this.caseData));\n\n    for (let i = 0; i < allData.length; i++) {\n      allData[i][\" Team \"] = allData[i].TeamName;\n      allData[i].Process = allData[i].ProcessName;\n      allData[i][\" Severity \"] = allData[i].SeverityName;\n      allData[i][\" Type \"] = allData[i].FrustrationsTypeName;\n      allData[i][\" Frustration\"] = allData[i].Subject;\n      allData[i].Status = allData[i].StatusName;\n      allData[i].Project = allData[i].ProjectName;\n      allData[i][\" Description\"] = allData[i].Description;\n      allData[i][\"Date Opened\"] = this.datepipe.transform(allData[i].PointerDate, 'MM/dd/yyyy');\n\n\n      delete (allData[i].TeamName);\n\n      delete (allData[i].SeverityName);\n      delete (allData[i].FrustrationsTypeName);\n      delete (allData[i].Subject);\n      delete (allData[i].Description);\n      delete (allData[i].check);\n      delete (allData[i].CompanyID);\n      delete (allData[i].CasesID);\n      delete (allData[i].PointerID);\n      delete (allData[i].ProcessName);\n      delete (allData[i].ActivityName);\n      delete (allData[i].UpdatedBy);\n      delete (allData[i].UpdatedDate);\n\n      delete (allData[i].StatusName);\n      delete (allData[i].SeverityName);\n      delete (allData[i].ProjectName);\n      delete (allData[i].PointerDate);\n\n      delete (allData[i].SLAViloation);\n      delete (allData[i].CreatedBy);\n      delete (allData[i].CreatedDate);\n      delete (this.caseData[i].SLAViloation);\n      delete (allData[i].Comment);\n      delete (allData[i].ActivityID);\n      delete (allData[i].PointerTypeID);\n\n      delete (allData[i].EmployeeID);\n      delete (allData[i].Type);\n      delete (allData[i].StatusID);\n      delete (allData[i].ProcessID);\n      delete (allData[i].DepartmentID);\n      delete (allData[i].TeamID);\n\n      delete (allData[i].FrustrationsTypeID);\n      delete (allData[i].PointerCreatedBy);\n      delete (allData[i].ProjectID);\n      delete (allData[i].SeverityID);\n\n\n    }\n\n    this.dorseyService.generateExcel(allData, this.loginCompanyName + '_frustration' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Frustration', \"Company: \" + this.loginCompanyName, '', \"Frustration Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n  }\n  table() {\n    this.tableFormat = true;\n    this.kenbanFormat = false;\n    this.displayAs = \"Table\";\n  }\n  kenban() {\n    this.checkAll = false;\n    this.selectedRows = [];\n    this.checklist = [];\n    this.enableProject = false;\n    this.kenbanFormat = true;\n    this.tableFormat = false;\n    this.displayAs = \"Status view\";\n    this.weeks = [];\n    this.kenvan = [];\n    this.kenvanView = [];\n    this.GetCase();\n  }\n  GetCase() {\n\n    this.dorseyService.GetCase(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.caseData = subData;\n\n      let tempCaseData = this.caseData;\n      if (this.caseData.length === 0) {\n        this.casePaging = false;\n        this.isDisable = true;\n        this.disableSearch = true;\n        this.disableKenban = true;\n      }\n      else {\n        this.saveFilter = JSON.parse(JSON.stringify(this.caseData));\n        this.casePaging = true;\n        this.isDisable = false;\n        this.disableSearch = false;\n        this.disableKenban = false;\n\n        // if (this.userTeamID != '0' && this.userTeamID !== null && this.CompanyID !== '0') {\n        //   this.caseData = tempCaseData.filter(x => x.TeamID.toString() === this.userTeamID.toString() && x.CompanyID === this.CompanyID);\n        // }\n        // else {\n        //   ``\n        //   this.caseData = tempCaseData.filter(x => x.CompanyID === this.CompanyID);\n        // }\n\n        if (this.employeeDetails) {\n          if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n            this.caseData = this.caseData.filter(entity1 => this.teamData.some(entity2 => entity1.TeamID == entity2.TeamID));\n          }\n          else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n            this.caseData = this.caseData.filter(ent => ent.TeamID == this.employeeDetails.TeamID)\n          }\n          else {\n            let data = this.caseData.filter(x => x.CompanyID === this.CompanyID);\n            this.caseData = data;\n          }\n        }\n\n\n        this.dynamicRows = 10;\n        this.rowsOnPageSet = [];\n\n        if (this.caseData.length === 0) {\n          this.casePaging = false;\n          this.isDisable = true;\n          this.disableSearch = true;\n        }\n        else {\n          this.saveFilter = JSON.parse(JSON.stringify(this.caseData));\n          this.rowCount = this.caseData.length;\n          this.getCasePagination(this.rowCount)\n\n          this.casePaging = true;\n          this.isDisable = false;\n          this.disableSearch = false;\n\n        }\n\n\n      }\n\n      for (let k = 0; k < this.statusData.length; k++) {\n        this.kenvanView = [];\n        this.kenvan = [];\n\n        // this.statusData=this.statusData.filter(x=>x.StatusID!=5);\n\n        for (let j = 0; j < this.caseData.length; j++) {\n\n          if (this.statusData[k].StatusID === this.caseData[j].StatusID) {\n\n            this.kenvanView.push(this.caseData[j]);\n          }\n        }\n        this.kenvan['id'] = this.statusData[k].StatusName;\n        this.kenvan['weeklist'] = this.kenvanView;\n        this.weeks.push({\n          'id': this.statusData[k].StatusName,\n          'weeklist': this.kenvanView,\n          'statusID': this.statusData[k].StatusID,\n          'count': this.kenvanView.length\n        });\n      }\n      for (let week of this.weeks) {\n        this.connectedTo.push(week.id);\n      };\n      this.ifEmployeeLogin();\n    });\n\n\n  }\n  getCasePagination(rowCountNo) {\n\n    while (this.dynamicRows < rowCountNo) {\n      this.rowsOnPageSet.push(this.dynamicRows);\n      this.dynamicRows = this.dynamicRows + 10;\n    }\n    if (!this.rowsOnPageSet.includes(rowCountNo)) this.rowsOnPageSet.push(rowCountNo);\n    if (this.rowsOnPageSet.length === 1) {\n      if (this.rowsOnPageSet[0] <= 10)\n        this.rowsOnPage = this.rowsOnPageSet[0];\n    }\n  }\n  ifEmployeeLogin() {\n    if (this.userTeamID != '0' && this.userTeamID != null) {\n      let tempProcessData = this.caseData.filter(x => x.TeamID == this.userTeamID);\n      if (tempProcessData.length == 0) {\n        this.isDisable = true;\n        this.disableSearch = true;\n      }\n    }\n  }\n  Searchtext() {\n    this.caseData = this.saveFilter;\n\n    let tempCase = this.caseData.filter(\n      (item) => {\n        return (\n          (item.ProcessName !== null && item.ProcessName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n          || (item.Subject !== null && item.Subject.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n          || (item.Description !== null && item.Description.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n          || (item.StatusName !== null && item.StatusName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n          || (item.ProjectName !== null && item.ProjectName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n          || (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n          || (item.SeverityName !== null && item.SeverityName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n          || (item.FrustrationsTypeName !== null && item.FrustrationsTypeName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n          || (item.PointerDate !== null && item.PointerDate.indexOf(this.searchtext) > -1))\n      }\n\n    );\n    this.caseData = tempCase;\n    if (this.caseData.length == 0) {\n      // this.GetActivity();\n      this.isDisable = true;\n      this.disableKenban = true;\n      this.ErrorMessage = '';\n      this.checkEnable = false;\n    } else {\n      this.isDisable = false;\n    }\n    if (this.searchtext === '') {\n      this.weeks = [];\n      this.kenvanView = [];\n      this.kenvan = [];\n      this.caseData = this.saveFilter;\n      this.dynamicRows = 10;\n      this.rowsOnPageSet = [];\n      this.rowCount = this.caseData.length;\n      while (this.dynamicRows < this.rowCount) {\n        this.rowsOnPageSet.push(this.dynamicRows);\n        this.dynamicRows = this.dynamicRows + 10;\n      }\n      if (!this.rowsOnPageSet.includes(this.rowCount))\n        this.rowsOnPageSet.push(this.rowCount);\n      if (this.rowsOnPageSet) {\n\n        this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n      this.isDisable = false;\n      this.disableKenban = false;\n\n    } else {\n      this.rowCount = tempCase.length;\n      this.dynamicRows = 10;\n      this.rowsOnPageSet = [];\n      while (this.dynamicRows < this.rowCount) {\n        this.rowsOnPageSet.push(this.dynamicRows);\n        this.dynamicRows = this.dynamicRows + 10;\n      }\n      if (!this.rowsOnPageSet.includes(this.rowCount)) {\n        this.rowsOnPageSet.push(this.rowCount);\n        if (this.rowsOnPageSet)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n\n      if (this.rowsOnPageSet.length === 1) {\n        if (this.rowsOnPageSet[0] <= 10)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n    }\n  }\n\n  drop(event: CdkDragDrop<string[]>, statusID: string) {\n    if (event.previousContainer === event.container) {\n      moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n\n    } else {\n      transferArrayItem(event.previousContainer.data,\n        event.container.data,\n        event.previousIndex,\n        event.currentIndex);\n      this.SavePointer(event.container.data, statusID);\n\n    }\n    // this.GetCase();\n  }\n\n  SavePointer(dataSave: any, statusID: string) {\n    if (dataSave[0].ProjectID === undefined || dataSave[0].ProjectID === '') {\n      dataSave[0].ProjectID = \"0\";\n\n    }\n    if (dataSave.length > 0) {\n\n      const pointerJson = {\n        CompanyID: this.CompanyID,\n        PointerID: dataSave[0].PointerID,\n        EmployeeID: dataSave[0].EmployeeID,\n        ProessID: dataSave[0].ProcessID,\n        ActivityID: dataSave[0].ActivityID,\n        PointerTypeID: dataSave[0].PointerTypeID,\n        FrustrationsTypeID: dataSave[0].FrustrationsTypeID,\n        DepartmentID: dataSave[0].DepartmentID,\n        TeamID: dataSave[0].TeamID,\n        SeverityID: dataSave[0].SeverityID,\n        StatusID: statusID,\n        Subject: dataSave[0].Subject,\n        Description: dataSave[0].Description,\n        CreatedBy: this.currentUser,\n        UpdatedBy: this.currentUser,\n        ProjectID: dataSave[0].ProjectID,\n      };\n\n      this.dorseyService.SavePointer(pointerJson, 'No').subscribe(data => {\n        if (data['_body'].toString() === 'true') {\n          this.weeks = [];\n          this.kenvanView = [];\n          this.kenvan = [];\n          this.GetCase();\n        }\n      });\n      this.weeks = [];\n      this.kenvan = [];\n      this.kenvanView = [];\n      this.GetPointer();\n      this.GetCase();\n\n    }\n  }\n  GetPointer() {\n    this.dorseyService.GetPointer(this.CompanyID).subscribe(subData => {\n\n      subData = JSON.parse(subData['_body']);\n      this.pointerData = subData;\n    });\n  }\n  GetEmployee() {\n    this.dorseyService.GetEmployee(this.CompanyID).subscribe(subData => {\n\n      subData = JSON.parse(subData['_body']);\n      this.employeeData = subData;\n    });\n  }\n  GetFrustrationType() {\n    this.dorseyService.GetFrustrationType(\"1\", this.CompanyID).subscribe(subData => {\n\n      subData = JSON.parse(subData['_body']);\n      this.frustrationtypeData = subData;\n    });\n  }\n  GetDepartment() {\n    this.dorseyService.GetDepartment().subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.departmentData = subData;\n    });\n  }\n  GetProjects() {\n    this.dorseyService.GetProjects(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.projectData = subData;\n\n    });\n  }\n  GetPointerType() {\n    this.dorseyService.GetPointerType().subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.pointerTypeData = subData;\n    });\n  }\n  GetStatus() {\n    this.dorseyService.GetStatus().subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.statusData = subData;\n    });\n  }\n  GetSeverity() {\n    this.dorseyService.GetSeverity().subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.severityData = subData;\n    });\n  }\n\n  GetTeam() {\n    this.dorseyService.GetTeam(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.teamData = subData;\n      if (this.employeeDetails) {\n        if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n          this.teamData = this.teamData.filter(ent => ent.DepartmentID == this.employeeDetails.DepartmentID)\n        }\n        else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n          this.teamData = this.teamData.filter(ent => ent.DepartmentID == this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID)\n          this.TeamName = this.teamData[0].TeamName;\n        }\n        else {\n          this.teamData = subData;\n        }\n      }\n\n    });\n  }\n  GetActivity() {\n    this.dorseyService.GetActivity(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.activityData = subData;\n    });\n  }\n  GetProcess() {\n    this.dorseyService.GetProcess(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.processData = subData;\n      let processTemp = this.processData;\n      this.processData = processTemp.filter(x => x.TeamID !== 0);\n\n      if (this.userTeamID != \"0\" && this.CompanyID != \"0\" && this.userTeamID !== null) {\n\n        let data = this.processData.filter(x => x.TeamID === this.userTeamID);\n        this.processData = data;\n        this.TeamID = data[0].TeamID;\n      }\n    });\n  }\n\n\n  dialogCall(msg: string) {\n\n    const dialogRef = this.dialog.open(CaseDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: msg + 'æææ' + false,\n    });\n    dialogRef.componentInstance.currentUser = this.currentUser;\n    dialogRef.componentInstance.processData = this.processData;\n    dialogRef.componentInstance.activityData = this.activityData;\n    dialogRef.componentInstance.departmentData = this.departmentData;\n    dialogRef.componentInstance.severityData = this.severityData;\n    dialogRef.componentInstance.statusData = this.statusData;\n    dialogRef.componentInstance.employeeData = this.employeeData;\n    dialogRef.componentInstance.tempActivity = this.tempActivity;\n    dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n    dialogRef.componentInstance.teamData = this.teamData;\n    dialogRef.componentInstance.CompanyID = this.CompanyID;\n\n    if (msg === 'edit') {\n      this.status = true;\n      let tempProcessData = this.processData.filter(x => x.TeamID === this.TeamID);\n      dialogRef.componentInstance.processData = tempProcessData;\n      dialogRef.componentInstance.EmployeeID = this.EmployeeID;\n      dialogRef.componentInstance.ProcessID = this.ProcessID;\n      dialogRef.componentInstance.ActivityID = this.ActivityID;\n      dialogRef.componentInstance.PointerID = this.PointerID;\n      dialogRef.componentInstance.DepartmentID = this.DepartmentID;\n      dialogRef.componentInstance.TeamID = this.TeamID;\n      dialogRef.componentInstance.StatusID = this.StatusID;\n      dialogRef.componentInstance.SeverityID = this.SeverityID;\n      dialogRef.componentInstance.Subject = this.Subject;\n      dialogRef.componentInstance.Description = this.Description;\n      dialogRef.componentInstance.CaseID = this.CaseID;\n      dialogRef.componentInstance.SLAViolation = this.SLAViolation;\n      dialogRef.componentInstance.Comments = this.Comments;\n\n      dialogRef.componentInstance.FrustrationTypeID = this.FrustrationTypeID;\n      dialogRef.componentInstance.PointerTypeID = this.PointerTypeID;\n      dialogRef.componentInstance.ProjectID = this.ProjectID;\n      dialogRef.componentInstance.subActivityStatus = this.subActivityStatus;\n      dialogRef.componentInstance.SubActivityID = this.SubActivityID;\n      dialogRef.componentInstance.updatedBy = this.updatedBy;\n      dialogRef.componentInstance.updatedDate = this.updatedDate;\n\n      //dialogRef.componentInstance.tempActivity=this.tempActivity;\n      // dialogRef.componentInstance.tempFrustrationType=this.tempFrustrationType;\n\n\n    }\n\n    if (msg === 'assign') {\n      dialogRef.componentInstance.ProjectID = this.ProjectID;\n      dialogRef.componentInstance.projectData = this.projectData;\n      dialogRef.componentInstance.checklist = this.checklist;\n      dialogRef.componentInstance.selectedRows = this.selectedRows;\n      dialogRef.componentInstance.checkAll = this.checkAll;\n      dialogRef.componentInstance.checkEnable = this.checkEnable;\n\n    }\n    if (msg === 'new') {\n      this.searchtext = '';\n      this.weeks = [];\n      this.kenvan = [];\n      this.kenvanView = [];\n      this.GetCase();\n    }\n    dialogRef.afterClosed().subscribe(result => {\n      this.subActivityStatus = false;\n      this.tempActivity = [];\n      this.tempTeam = [];\n      this.tempFrustrationType = [];\n      this.checkEnable = false;\n      this.weeks = [];\n      this.kenvan = [];\n      this.kenvanView = [];\n      if (this.searchtext !== '') {\n        this.Searchtext();\n      }\n      else {\n        this.weeks = [];\n        this.kenvan = [];\n        this.kenvanView = [];\n        this.GetCase();\n      }\n\n      if (msg == 'Assigned successfully' && this.searchtext !== '') {\n\n        this.Searchtext();\n      }\n\n      if (result.toString() === 'true') {\n\n        let statusMsg = '';\n        if (msg === 'new') {\n          statusMsg = 'Saved successfully';\n\n        }\n        else {\n\n          statusMsg = 'Updated successfully';\n\n          this.checkEnable = false;\n        }\n        this.dynamicRows = 10;\n        this.rowsOnPageSet = [];\n        this.GetPointer();\n        this.weeks = [];\n        this.kenvan = [];\n        this.kenvanView = [];\n        this.GetCase();\n        const dialogRefsub = this.dialog.open(CaseDialogComponent, {\n          panelClass: 'custom-dialog-container',\n          data: statusMsg + 'æææ' + false,\n          //  width: '30%'\n        });\n\n\n        setTimeout(() => {\n          this.GetPointer();\n          this.GetCase();\n        }, 500);\n\n        dialogRefsub.afterClosed().subscribe(result1 => {\n          this.subActivityStatus = false;\n          this.tempActivity = [];\n          this.tempTeam = [];\n          this.tempFrustrationType = [];\n          this.weeks = [];\n          this.kenvan = [];\n          this.kenvanView = [];\n\n          if (this.searchtext !== '') {\n            this.Searchtext();\n          }\n          else {\n\n            this.GetPointer();\n            this.GetCase();\n          }\n\n          //this.GetPointer();\n          //  this.Searchtext();\n          // this.GetCase();\n        });\n\n\n\n      }\n\n    });\n  }\n\n\n\n  GetTempActivity(ProcessID: string) {\n    for (let i = 0; i < this.activityData.length; i++) {\n      if (this.activityData[i].ProcessID === ProcessID && this.activityData[i].ParentID == 0) {\n        this.tempActivity.push(this.activityData[i]);\n      }\n    }\n  }\n\n\n  GetTempFrastrations(PointerTypeID: string) {\n    for (let i = 0; i < this.frustrationtypeData.length; i++) {\n      if (this.frustrationtypeData[i].PointerTypeID === PointerTypeID) {\n        this.tempFrustrationType.push(this.frustrationtypeData[i]);\n      }\n    }\n  }\n\n  GetTempTeam(ProcessID: string) {\n    for (let i = 0; i < this.teamData.length; i++) {\n      if (this.teamData[i].ProcessID === ProcessID) {\n        this.tempTeam.push(this.teamData[i]);\n      }\n    }\n  }\n\n  EditCase(element, text) {\n    this.ParentID = 0;\n    this.GetTempActivity(element.ProcessID);\n    this.CaseID = element.CasesID;\n    this.PointerID = element.PointerID;\n    this.SLAViolation = element.SLAViloation;\n    this.Comments = element.Comment;\n    this.updatedBy = element.UpdatedBy;\n    this.updatedDate = element.UpdatedDate;\n    this.tempPointer = this.pointerData.filter(c => c.PointerID != undefined && c.PointerID === this.PointerID);\n    if (this.tempPointer.length > 0) {\n      if (this.tempPointer[0].ProjectID === undefined || this.tempPointer[0].ProjectID === '') {\n        this.tempPointer[0].ProjectID = \"0\";\n      }\n      this.FrustrationTypeID = this.tempPointer[0].FrustrationsTypeID;\n      this.Subject = this.tempPointer[0].Subject;\n      this.Description = this.tempPointer[0].Description;\n      this.DepartmentID = this.tempPointer[0].DepartmentID;\n      this.TeamID = this.tempPointer[0].TeamID;\n      this.ProcessID = this.tempPointer[0].ProcessID;\n\n      this.PointerTypeID = this.tempPointer[0].PointerTypeID;\n      this.EmployeeID = this.tempPointer[0].EmployeeID;\n      this.SeverityID = this.tempPointer[0].SeverityID;\n      this.StatusID = this.tempPointer[0].StatusID;\n      this.ProjectID = this.tempPointer[0].ProjectID;\n      if (this.tempPointer[0].ActivityID === 0) {\n        this.tempPointer[0].ActivityID = \"0\";\n      }\n      this.GetTempFrastrations(this.PointerTypeID);\n      this.ActivityID = this.tempPointer[0].ActivityID;\n    }\n\n    for (let i = 0; i < this.activityData.length; i++) {\n      if (element.ActivityID === this.activityData[i].ActivityID) {\n        this.ParentID = this.activityData[i].ParentID;\n\n      }\n\n    }\n\n    if (!this.ParentID || this.ParentID.toString() === '0') {\n      this.ActivityID = element.ActivityID;\n      this.subActivityStatus = false;\n    } else {\n      this.subActivityStatus = true;\n      this.SubActivityID = element.ActivityID;\n      this.ActivityID = this.ParentID;\n    }\n\n    this.dialogCall('edit');\n  }\n  project(event) {\n    this.ProjectID = event.value;\n  }\n\n\n  Addproject(msg: string) {\n    this.updatePointer(msg);\n  }\n  updatePointer(msg: string) {\n    let data = this.projectData.filter(x => x.ProjectID === this.ProjectID);\n    if (data.length > 0) {\n      this.StatusID = data[0].ProjectStatusID;\n    }\n\n\n    if (msg === 'assign') {\n      {\n        if (!this.ProjectID && this.ProjectID != '0') {\n          this.ErrorMessage = 'Please select Project';\n          return;\n        }\n        else {\n          this.ErrorMessage = '';\n          this.enableProject = false;\n        }\n\n\n        if (this.ProjectID.toString() === '0') {\n          this.StatusID = this.selectedRows[0].StatusID;\n        }\n\n\n        const json = {\n          ProjectID: this.ProjectID,\n          CompanyID: this.CompanyID,\n          pointerData: this.selectedRows,\n          UpdatedBy: this.currentUser\n\n        };\n        this.dorseyService.UpdatePointerProject(json, 'No', this.StatusID).subscribe(data => {\n          if (data.ok) {\n            this.condition = true;\n            this.dialogCall('Assigned successfully');\n            this.GetStatus();\n            this.weeks = [];\n            this.kenvan = [];\n            this.kenvanView = [];\n            this.GetCase();\n            this.GetProjects();\n            this.checkAll = false;\n            this.selectedRows = [];\n            this.ProjectID = \"\";\n          }\n\n\n        });\n      }\n\n    }\n  }\n\n\n  ifMaxRow() {\n\n    if (this.rowsOnPage == this.caseData.length) {\n      this.rowsOnPage = this.rowsOnPage - 1;\n    }\n  }\n\n  DeleteCase(element) {\n    this.CaseID = element.CasesID;\n    this.PointerID = element.PointerID;\n    const dialogRef = this.dialog.open(CaseDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: 'Are you sure you want to delete frustration: ' + element.Subject + '?æææ' + true,\n      // width: '40%'\n    });\n    //   this.condition = true;\n\n    dialogRef.afterClosed().subscribe(result => {\n      if (result) {\n        /// this.condition = true;\n        this.dorseyService.DeleteCase(this.CaseID, this.PointerID).subscribe(data => {\n\n          if (data.ok) {\n            this.ifMaxRow();\n            this.condition = false;\n            this.dialogCall('Deleted successfully');\n          }\n          this.dynamicRows = 10;\n          this.rowsOnPageSet = [];\n          this.GetCase();\n        });\n      }\n    });\n  }\n\n  GetTempSubActivity(ActivityID) {\n    this.tempSubActivity = [];\n    // this.SubActivityID=ActivityID;\n    for (let i = 0; i < this.activityData.length; i++) {\n      if (this.activityData[i].ParentID === ActivityID) {\n        this.tempSubActivity.push(this.activityData[i]);\n      }\n    }\n  }\n\n}\n@Component({\n  selector: 'app-dialog',\n  templateUrl: 'dialog.html',\n  // styleUrls: ['dialog.css'],\n  providers: [DorseyService, DatePipe],\n})\nexport class CaseDialogComponent {\n  SLAViolation: string;\n  currentUser: string\n  condition = false;\n  status = false;\n  employeeData: any;\n  processData: any;\n  activityData: any;\n  pointerTypeData: any;\n  frustrationtypeData: any;\n  departmentData: any;\n  CaseID: string;\n  teamData: any;\n  severityData: any;\n  statusData: any;\n  dataSelf = '';\n  EmployeeID: string;\n  ProcessID: string;\n  ActivityID: string;\n  PointerTypeID: string;\n  FrustrationTypeID: string;\n  DepartmentID: string;\n  TeamID: string;\n  StatusID: string;\n  SeverityID: string;\n  Subject: string;\n  Description: string;\n  PointerID: string;\n  tempActivity = [];\n  tempTeam = [];\n  tempFrustrationType = [];\n  Comments: string;\n  processCtrl = new FormControl();\n\n  filteredProcess: Observable<any[]>\n\n  checklist = [];\n  selectedRows = [];\n  checkEnable = false;\n  checkAll = false;\n  projectData: any;\n  ProjectID: string;\n  pointerData: any;\n  CompanyID: string;\n  subActivityStatus = false;\n  SubActivityID: string;\n  tempSubActivity = [];\n  conditionActivity = '';\n  updatedBy: any;\n  updatedDate = new Date();\n  btnDisabled = false;\n\n  constructor(\n    public dialogRef: MatDialogRef<CaseDialogComponent>,\n    @Inject(MAT_DIALOG_DATA) public data: any, public dorseyService: DorseyService, private datepipe: DatePipe) {\n    //  dialogRef.disableClose=true;\n    this.data = this.data.split('æææ');\n    if (this.data[1] === 'true') {\n      this.condition = true;\n    } else if (this.data[1] === 'false') {\n      this.condition = false;\n    }\n    else {\n      if (this.data[1] === '') {\n        this.conditionActivity = 'process';\n      } else {\n        this.conditionActivity = 'activity';\n      }\n\n    }\n    this.data = this.data[0];\n  }\n\n  ngOnInit() {\n    if (this.SubActivityID) {\n      this.GetTempSubActivity(this.ActivityID);\n    }\n  }\n\n  onYesClick() {\n    this.dialogRef.close(true);\n  }\n  onNoClick(): void {\n    this.dialogRef.close();\n  }\n  AddCase() {\n    this.btnDisabled = true;\n\n    setTimeout(() => {\n      this.btnDisabled = false;\n    }, 1000);\n    let count = 0;\n    const Editcount = 0;\n\n    if (this.SeverityID === undefined || this.Subject == undefined || this.StatusID === undefined ||\n      this.SeverityID === '' || this.StatusID === '' || this.Subject.trim() === '') {\n      this.dataSelf = 'Please enter mandatory(*) fields';\n      if (this.data === 'new') {\n\n      }\n      count++;\n    }\n\n    if (count === 0 && Editcount === 0) {\n      this.dataSelf = '';\n      if (this.data === 'new') {\n\n        this.Saving(this.data);\n      } else {\n        this.Saving(this.data);\n      }\n    } else {\n\n    }\n\n\n\n  }\n\n\n\n  GetPointer() {\n    this.dorseyService.GetPointer(this.CompanyID).subscribe(subData => {\n\n      subData = JSON.parse(subData['_body']);\n      this.pointerData = subData;\n    });\n  }\n\n\n  Saving(msg: string) {\n\n    if (this.subActivityStatus) {\n      this.ActivityID = this.SubActivityID;\n    }\n    if (this.subActivityStatus) {\n      if (this.ActivityID === '' || this.SubActivityID === '') {\n        this.dataSelf = 'Please enter mandatory(*) fields';\n        return;\n      }\n\n    }\n\n    const json = {\n      PointerID: this.PointerID,\n      CaseID: this.CaseID,\n      SLAViloation: this.SLAViolation,\n      Comment: this.Comments,\n      UpdatedBy: this.currentUser\n    };\n\n    if (msg === 'edit') {\n      this.dorseyService.SaveCase(json).subscribe(data => {\n        if (data['_body'].toString() === 'true') {\n          this.dialogRef.close(true);\n          const pointerJson = {\n            CompanyID: this.CompanyID,\n            PointerID: this.PointerID,\n            EmployeeID: \"0\",\n            ProessID: this.ProcessID,\n            ActivityID: this.ActivityID,\n            PointerTypeID: this.PointerTypeID,\n            FrustrationsTypeID: this.FrustrationTypeID,\n            DepartmentID: \"0\",\n            TeamID: this.TeamID,\n            SeverityID: this.SeverityID,\n            StatusID: this.StatusID,\n            Subject: this.Subject,\n            Description: this.Description,\n            ProjectID: this.ProjectID,\n            CreatedBy: this.currentUser,\n            UpdatedBy: this.currentUser\n          };\n\n\n          this.dorseyService.SavePointer(pointerJson, 'No').subscribe(data => {\n            if (data['_body'].toString() === 'true') {\n\n              this.dialogRef.close(true);\n            } else {\n              this.dataSelf = 'Save failed';\n            }\n          });\n        }\n      });\n    }\n\n  }\n\n\n  Clear() {\n    this.dialogRef.close(false);\n  }\n  employee(event) {\n    this.EmployeeID = event.value;\n  }\n  process(event) {\n    this.ProcessID = event.value;\n    for (let i = 0; i < this.processData.length; i++) {\n      if (this.processData[i].ProcessID === this.ProcessID) {\n        this.TeamID = this.processData[i].TeamID;\n      }\n    }\n    this.tempActivity = [];\n    this.tempSubActivity = [];\n    this.tempTeam = [];\n    this.ActivityID = '';\n\n    if (this.subActivityStatus) {\n      this.SubActivityID = '';\n      this.ActivityID = '';\n    }\n    this.GetTempActivity();\n    this.GetTempFrastrations();\n    //this.GetTempTeam();\n  }\n  GetTempActivity() {\n    for (let i = 0; i < this.activityData.length; i++) {\n\n      if (this.activityData[i].ProcessID === this.ProcessID && this.activityData[i].ParentID === 0) {\n        this.tempActivity.push(this.activityData[i]);\n      }\n    }\n  }\n  activity(event) {\n    this.tempSubActivity = [];\n    this.ActivityID = event.value;\n    this.SubActivityID = '';\n    this.GetTempSubActivity(this.ActivityID);\n  }\n  frustrationType(event) {\n    this.FrustrationTypeID = event.value\n  }\n  GetTempFrastrations() {\n    for (let i = 0; i < this.frustrationtypeData.length; i++) {\n      if (this.frustrationtypeData[i].PointerTypeID === this.PointerTypeID) {\n        this.tempFrustrationType.push(this.frustrationtypeData[i]);\n      }\n    }\n  }\n\n  department(event) {\n    this.DepartmentID = event.value;\n  }\n\n  team(event) {\n    this.TeamID = event.value;\n  }\n\n  severity(event) {\n    this.SeverityID = event.value;\n  }\n\n  statusChange(event) {\n    this.StatusID = event.value;\n  }\n\n  subactivity(event) {\n    this.SubActivityID = event.value;\n  }\n\n  GetTempSubActivity(ActivityID) {\n    this.tempSubActivity = [];\n    for (let i = 0; i < this.activityData.length; i++) {\n      if (this.activityData[i].ParentID === ActivityID) {\n        this.tempSubActivity.push(this.activityData[i]);\n      }\n    }\n  }\n\n}\n","import { Component } from \"@angular/core\";\r\n\r\n@Component({\r\n    selector: 'message-dialog',\r\n    templateUrl: 'dialog.html',\r\n})\r\nexport class MessageDialogComponent {\r\n}","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n    selector: 'input[numbersOnly]'\r\n})\r\nexport class NumberDirective {\r\n\r\n    constructor(private _el: ElementRef) { }\r\n\r\n    @HostListener('input', ['$event']) onInputChange(event: any) {\r\n        const initalValue = this._el.nativeElement.value;\r\n        this._el.nativeElement.value = initalValue.replace(/[^0-9]*/g, '');\r\n        if (initalValue !== this._el.nativeElement.value) {\r\n            event.stopPropagation();\r\n        }\r\n    }\r\n}\r\n","export enum EmployeeLoginLevel {\r\n    Company = 'Company',\r\n    Department = 'Department',\r\n    Team = 'Team'\r\n}","module.exports = \".mt-20 {\\n  margin-top: 20px;\\n}\\n\\n.btn-margin {\\n  margin-top: 9px;\\n  margin-left: 2px;\\n}\\n\\n.btn-default {\\n  background-color: #e6e8eb !important;\\n  color: black;\\n}\\n\\n.orgDetails {\\n  width: 100%;\\n  display: flex;\\n  margin: 10px;\\n  flex-direction: row;\\n}\\n\\n.highlight {\\n  background-color: lightblue;\\n}\\n\\n.p-t-10 {\\n  padding-top: 10px;\\n}\\n\\ntable {\\n  width: 100%;\\n  font-size: smaller;\\n}\\n\\nth, td {\\n  text-align: center;\\n  font-size: smaller;\\n}\\n\\nth {\\n  color: white;\\n  background-color: #474747;\\n  height: 35px;\\n  font-size: 13px;\\n}\\n\\ntd {\\n  height: 35px;\\n  font-size: 13px;\\n}\\n\\ntable {\\n  border-collapse: collapse;\\n}\\n\\ntable, th, td {\\n  border: 1px solid #e1e1e1;\\n  overflow: hidden;\\n  word-wrap: break-word;\\n}\\n\\ntable.fixed {\\n  table-layout: fixed;\\n}\\n\\ntable.fixed td {\\n  overflow: hidden;\\n}\\n\\n.highlight td {\\n  background: #C0C0C0;\\n}\\n\\n.rightArrow {\\n  font-size: 5px;\\n}\\n\\n.fontLabel {\\n  font-size: 18px;\\n}\\n\\n.warningMsg {\\n  text-align: center;\\n  color: red;\\n}\\n\\n.fa-arrow-down, .fa-arrow-up {\\n  font-size: 10px;\\n}\\n\\n.Addcolor {\\n  color: #ef5350 !important;\\n  cursor: pointer !important;\\n}\\n\\n.removeColor {\\n  color: #ccc !important;\\n  cursor: none !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcGFueS9GOlxcTmlraWwgV29ya1xcUHJvamVjdHNcXERvcnNleVxcSGllcmFyY2h5IFNvdXJjZSBDb2RlXFxXb3JraW5nXFxkb3JzZXlHcm91cC9zcmNcXGFwcFxcY29tcGFueVxcY29tcGFueS5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcGFueS9jb21wYW55LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksZ0JBQUE7QUNDSjs7QURFQTtFQUNJLGVBQUE7RUFDQSxnQkFBQTtBQ0NKOztBREVBO0VBQ0ksb0NBQUE7RUFDQSxZQUFBO0FDQ0o7O0FERUE7RUFDSSxXQUFBO0VBQ0EsYUFBQTtFQUNBLFlBQUE7RUFDQSxtQkFBQTtBQ0NKOztBREVBO0VBQ0ksMkJBQUE7QUNDSjs7QURFQTtFQUNJLGlCQUFBO0FDQ0o7O0FERUE7RUFDSSxXQUFBO0VBQ0Esa0JBQUE7QUNDSjs7QURDQTtFQUNJLGtCQUFBO0VBQ0Esa0JBQUE7QUNFSjs7QURDQTtFQUNDLFlBQUE7RUFDRCx5QkFBQTtFQUNBLFlBQUE7RUFDQyxlQUFBO0FDRUQ7O0FEQUE7RUFDSSxZQUFBO0VBQ0MsZUFBQTtBQ0dMOztBRERBO0VBQ0kseUJBQUE7QUNJSjs7QURGQTtFQUNJLHlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxxQkFBQTtBQ0tKOztBREhBO0VBQWMsbUJBQUE7QUNPZDs7QUROQTtFQUFpQixnQkFBQTtBQ1VqQjs7QURUQTtFQUFlLG1CQUFBO0FDYWY7O0FEUkM7RUFDRyxjQUFBO0FDV0o7O0FEVEE7RUFDSSxlQUFBO0FDWUo7O0FEVkE7RUFDSSxrQkFBQTtFQUFtQixVQUFBO0FDY3ZCOztBRFpBO0VBQ0ksZUFBQTtBQ2VKOztBRGJBO0VBQ0kseUJBQUE7RUFDQSwwQkFBQTtBQ2dCSjs7QURkQztFQUNHLHNCQUFBO0VBQ0EsdUJBQUE7QUNpQkoiLCJmaWxlIjoic3JjL2FwcC9jb21wYW55L2NvbXBhbnkuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubXQtMjB7XHJcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG59XHJcblxyXG4uYnRuLW1hcmdpbntcclxuICAgIG1hcmdpbi10b3A6IDlweDtcclxuICAgIG1hcmdpbi1sZWZ0OiAycHg7XHJcbn1cclxuXHJcbi5idG4tZGVmYXVsdHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU4ZWIgIWltcG9ydGFudDtcclxuICAgIGNvbG9yOiBibGFjaztcclxuICB9XHJcblxyXG4ub3JnRGV0YWlsc3tcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIG1hcmdpbjogMTBweDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbn1cclxuXHJcbi5oaWdobGlnaHR7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGJsdWU7XHJcbn1cclxuXHJcbi5wLXQtMTB7XHJcbiAgICBwYWRkaW5nLXRvcDogMTBweDtcclxufVxyXG5cclxudGFibGUge1xyXG4gICAgd2lkdGg6MTAwJTtcclxuICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcclxufVxyXG50aCx0ZHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcclxufVxyXG5cclxudGgge1xyXG4gY29sb3I6d2hpdGU7ICAgICBcclxuYmFja2dyb3VuZC1jb2xvcjogXHQjNDc0NzQ3O1xyXG5oZWlnaHQ6IDM1cHg7XHJcbiBmb250LXNpemU6IDEzcHg7XHJcbn1cclxudGQge1xyXG4gICAgaGVpZ2h0OiAzNXB4O1xyXG4gICAgIGZvbnQtc2l6ZTogMTNweDtcclxufVxyXG50YWJsZSB7XHJcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xyXG59XHJcbnRhYmxlLCB0aCwgdGQge1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UxZTFlMTtcclxuICAgIG92ZXJmbG93OmhpZGRlbjtcclxuICAgIHdvcmQtd3JhcDpicmVhay13b3JkO1xyXG59XHJcbnRhYmxlLmZpeGVkIHsgdGFibGUtbGF5b3V0OmZpeGVkOyB9XHJcbnRhYmxlLmZpeGVkIHRkIHsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxyXG4uaGlnaGxpZ2h0IHRkIHtiYWNrZ3JvdW5kOiAjQzBDMEMwO31cclxuXHJcbi8vICAuZmF7XHJcbiAgLy8gIGZvbnQtc2l6ZTogMThweDsgXHJcbi8vICB9XHJcbiAucmlnaHRBcnJvd3tcclxuICAgIGZvbnQtc2l6ZTogNXB4OyBcclxuIH1cclxuLmZvbnRMYWJlbHtcclxuICAgIGZvbnQtc2l6ZTogMThweDsgXHJcbn1cclxuLndhcm5pbmdNc2cge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO2NvbG9yOiByZWQ7XHJcbn1cclxuLmZhLWFycm93LWRvd24sIC5mYS1hcnJvdy11cHtcclxuICAgIGZvbnQtc2l6ZTogMTBweFxyXG59XHJcbi5BZGRjb2xvciB7XHJcbiAgICBjb2xvcjogI2VmNTM1MCAhaW1wb3J0YW50IDtcclxuICAgIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50IDsgIFxyXG4gfVxyXG4gLnJlbW92ZUNvbG9yIHtcclxuICAgIGNvbG9yOiAjY2NjICFpbXBvcnRhbnQgO1xyXG4gICAgY3Vyc29yOiBub25lICFpbXBvcnRhbnQgO1xyXG4gfVxyXG5cclxuICIsIi5tdC0yMCB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG59XG5cbi5idG4tbWFyZ2luIHtcbiAgbWFyZ2luLXRvcDogOXB4O1xuICBtYXJnaW4tbGVmdDogMnB4O1xufVxuXG4uYnRuLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlOGViICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBibGFjaztcbn1cblxuLm9yZ0RldGFpbHMge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luOiAxMHB4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xufVxuXG4uaGlnaGxpZ2h0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRibHVlO1xufVxuXG4ucC10LTEwIHtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG59XG5cbnRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcbn1cblxudGgsIHRkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IHNtYWxsZXI7XG59XG5cbnRoIHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDc0NzQ3O1xuICBoZWlnaHQ6IDM1cHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cblxudGQge1xuICBoZWlnaHQ6IDM1cHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xufVxuXG50YWJsZSwgdGgsIHRkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2UxZTFlMTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuXG50YWJsZS5maXhlZCB7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG59XG5cbnRhYmxlLmZpeGVkIHRkIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmhpZ2hsaWdodCB0ZCB7XG4gIGJhY2tncm91bmQ6ICNDMEMwQzA7XG59XG5cbi5yaWdodEFycm93IHtcbiAgZm9udC1zaXplOiA1cHg7XG59XG5cbi5mb250TGFiZWwge1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbi53YXJuaW5nTXNnIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogcmVkO1xufVxuXG4uZmEtYXJyb3ctZG93biwgLmZhLWFycm93LXVwIHtcbiAgZm9udC1zaXplOiAxMHB4O1xufVxuXG4uQWRkY29sb3Ige1xuICBjb2xvcjogI2VmNTM1MCAhaW1wb3J0YW50O1xuICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbn1cblxuLnJlbW92ZUNvbG9yIHtcbiAgY29sb3I6ICNjY2MgIWltcG9ydGFudDtcbiAgY3Vyc29yOiBub25lICFpbXBvcnRhbnQ7XG59Il19 */\"","import { Component, OnInit, ViewChild, Inject } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { LoginComponent } from '../login/login.component';\nimport { OrganizationService } from '../services/organization.service'\nimport { CompanyDetails, OrganizationLicenseDetails } from './company.model';\nimport { CompanyService } from '../services/company.service';\nimport { MatSlideToggleChange, ThemePalette } from '@angular/material';\nimport { ValidationDialogComponent } from '../add-score-card/validation-dialog';\nimport { LocationStrategy } from '@angular/common';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n  selector: 'app-company',\n  templateUrl: './company.component.html',\n  styleUrls: ['./company.component.scss'],\n  providers: [DorseyService],\n\n})\n\nexport class CompanyComponent implements OnInit {\n  isMainEntity: boolean;\n  EnableSubCompanies: boolean = false;\n  NoOfSubCompanies: number;\n  EnableScoreCard: boolean = false;\n  parentID: number;\n  oldCompanyName: string = '';\n  companDetails: CompanyDetails;\n  companyData: Array<CompanyDetails> = [];\n  companyName: string = '';\n  dataSelf = '';\n  CompanyID: string;\n  condition: boolean;\n  searchtext: string = '';\n  // p: number = 1;\n  // rowsOnPage = 10;\n  // rowsOnPageSet = [];\n  // rowCount: any;\n  // dynamicRows = 10;\n  isDesc: boolean = false;\n  column = '';\n  direction: number;\n  arrow = true;\n  userVisible = false;\n  // companyPaging = false;\n  displayedColumns: string[] = ['position', 'name'];\n  dataSource = new MatTableDataSource();\n  saveFilter: Array<CompanyDetails> = [];\n  UserName: string;\n  Password: string;\n  isDisable = false;\n  isSearchDisable = false;\n  userData: any;\n  userRoleData: any;\n  UserID: string;\n  currentUser: string;\n  MenuPermissions: any;\n  emailUnique: any;\n  menuData: any;\n  menuID: string;\n  menuName: string;\n  FirstName: string;\n  LastName: string;\n  adminUname = '';\n  adminPwd = '';\n  adminEmail: string;\n  adminPassword: string;\n  teamData: any;\n  loginUsername: any;\n  adminUserName = '';\n  organizationId: number;\n  userRoleName: string;\n  organizationDetails: any;\n  showSubEntities: boolean = false;\n  parentCompanyId: number;\n  @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\n  rolesData: any;\n  isSuperAdmin: boolean = false;\n  subEntityLevel: number = 0;\n  currentRow: number;\n  errorMessages: string[] = [];\n  entityName: string;\n  color: ThemePalette = 'primary';\n  isCompanyLogin: boolean;\n  isSubCompanyLogin: boolean;\n  companiesCountForOrganization: number;\n  licenseDetails: OrganizationLicenseDetails;\n\n  constructor(private dorseyService: DorseyService,\n    public dialog: MatDialog,\n    private location: LocationStrategy,\n    private storage: LocalStorageService,\n    private login: LoginComponent,\n    private organizationService: OrganizationService,\n    private companyService: CompanyService) {\n    this.currentUser = this.storage.retrieve('user');\n    this.menuData = this.storage.retrieve('menuData');\n    this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n    this.adminUserName = this.storage.retrieve('adminUname');\n    this.adminEmail = this.storage.retrieve('username');\n    this.adminPassword = this.storage.retrieve('password');\n    this.loginUsername = this.storage.retrieve('loginUsername');\n    this.isCompanyLogin = this.storage.retrieve(\"isCompanyLogin\");\n    this.organizationDetails = this.storage.retrieve(\"OrganizationDetails\");\n    this.CompanyID = this.storage.retrieve(\"companyID\");\n    this.organizationId = this.organizationDetails.OrganizationId;\n    this.isSubCompanyLogin = this.storage.retrieve(\"isSubCompanyLogin\");\n    this.isSuperAdmin = this.organizationDetails.IsSuperAdmin;\n\n    history.pushState(null, null, window.location.href);\n    this.location.onPopState(() => {\n      history.pushState(null, null, window.location.href);\n    });\n  }\n\n  ngOnInit(): void {\n    this.getCompaniesCountByOrganizationId();\n    this.GetUsers();\n    this.GetMenuMaster();\n    this.GetTeam();\n    if (this.menuData) {\n      let tempdata = this.menuData;\n      this.menuData = tempdata.find(x => x.MenuName.toString().toLowerCase() === 'company');\n      if (this.menuData) {\n        this.menuName = this.menuData[\"MenuName\"];\n        this.menuID = this.menuData[\"MenuID\"];\n      }\n    }\n    this.dataSource.paginator = this.paginator;\n    if (this.isCompanyLogin) {\n      this.getCompanyDetailsByCompanyId(Number(this.CompanyID));\n    }\n    else if (this.organizationId) {\n      this.getCompanyDetailsByOrganizationId(this.organizationId);\n    }\n\n  }\n\n  GetTeam() {\n    if (this.CompanyID) {\n      this.dorseyService.GetTeam(this.CompanyID).subscribe(subData => {\n        subData = JSON.parse(subData['_body']);\n        this.teamData = subData;\n\n      });\n    }\n  }\n\n  GetMenuMaster() {\n    this.dorseyService.GetMenuMaster().subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.menuData = subData;\n    });\n  }\n\n  getCompanyDetailsByCompanyId(companyId: number): void {\n    this.organizationService.getCompanyDetailsByCompanyId(companyId, this.organizationId).subscribe(resp => {\n      this.companyData = resp.Data;\n      // this.rowsOnPageSet = [];\n      // this.dynamicRows = 10;\n      if (this.companyData.length === 0) {\n        // this.companyPaging = false;\n        this.isDisable = true;\n        this.isSearchDisable = true;\n      }\n      else {\n        this.saveFilter = JSON.parse(JSON.stringify(this.companyData));\n        // // this.companyPaging = true;\n        this.isDisable = false;\n        this.isSearchDisable = false;\n        // this.rowCount = this.companyData.length;\n        // this.dataSource = new MatTableDataSource(this.companyData);\n        // while (this.dynamicRows < this.rowCount) {\n        //   this.rowsOnPageSet.push(this.dynamicRows);\n        //   this.dynamicRows = this.dynamicRows + 10;\n        // }\n        // if (!this.rowsOnPageSet.includes(this.rowCount))\n        //   this.rowsOnPageSet.push(this.rowCount);\n        // if (this.rowsOnPageSet.length === 1) {\n        //   if (this.rowsOnPageSet[0] <= 10)\n        //     this.rowsOnPage = this.rowsOnPageSet[0];\n        // }\n      }\n    });\n  }\n\n  getCompanyDetailsByOrganizationId(organizationId: number): void {\n    this.organizationService.getCompanyDetailsByOrganizationId(organizationId).subscribe(resp => {\n      this.companyData = resp.Data;\n      // this.rowsOnPageSet = [];\n      // this.dynamicRows = 10;\n      if (this.companyData.length === 0) {\n        // this.companyPaging = false;\n        this.isDisable = true;\n        this.isSearchDisable = true;\n      }\n      else {\n        this.saveFilter = JSON.parse(JSON.stringify(this.companyData));\n        // this.companyPaging = true;\n        this.isDisable = false;\n        this.isSearchDisable = false;\n        // this.rowCount = this.companyData.length;\n        // this.dataSource = new MatTableDataSource(this.companyData);\n        // while (this.dynamicRows < this.rowCount) {\n        //   this.rowsOnPageSet.push(this.dynamicRows);\n        //   this.dynamicRows = this.dynamicRows + 10;\n        // }\n        // if (!this.rowsOnPageSet.includes(this.rowCount))\n        //   this.rowsOnPageSet.push(this.rowCount);\n        // if (this.rowsOnPageSet.length === 1) {\n        //   if (this.rowsOnPageSet[0] <= 10)\n        //     this.rowsOnPage = this.rowsOnPageSet[0];\n        // }\n      }\n    });\n  }\n\n  GetUsers() {\n    this.dorseyService.GetUsersList().subscribe(users => {\n      this.userData = JSON.parse(users['_body']);\n    });\n  }\n\n  GetUserRoleAssignment() {\n    this.dorseyService.GetUserRoleAssignment().subscribe(userRoles => {\n      this.userRoleData = JSON.parse(userRoles['_body']);\n    });\n  }\n\n  Searchtext() {\n    this.companyData = this.saveFilter;\n    let tempCompany = this.companyData.filter(\n      (item) => {\n        return (\n          (item.CompanyName !== null && item.CompanyName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.Email !== null && item.Email.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.Phone1 !== null && item.Phone1.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n        );\n      }\n\n    );\n    this.companyData = tempCompany;\n    if (this.companyData.length == 0) {\n      this.isDisable = true;\n    } else {\n      this.isDisable = false;\n    }\n    if (this.searchtext === '') {\n      this.companyData = this.saveFilter;\n      // this.dynamicRows = 10;\n      // this.rowsOnPageSet = [];\n      // this.rowCount = this.companyData.length;\n      // while (this.dynamicRows < this.rowCount) {\n      //   this.rowsOnPageSet.push(this.dynamicRows);\n      //   this.dynamicRows = this.dynamicRows + 10;\n      // }\n      // if (!this.rowsOnPageSet.includes(this.rowCount))\n      //   this.rowsOnPageSet.push(this.rowCount);\n      // if (this.rowsOnPageSet) {\n\n      //   this.rowsOnPage = this.rowsOnPageSet[0];\n      // }\n      this.isDisable = false;\n    }\n    //else {\n\n    // this.rowCount = tempCompany.length;\n    // this.dynamicRows = 10;\n    // this.rowsOnPageSet = [];\n    // while (this.dynamicRows < this.rowCount) {\n    //   this.rowsOnPageSet.push(this.dynamicRows);\n    //   this.dynamicRows = this.dynamicRows + 10;\n    // }\n    // if (!this.rowsOnPageSet.includes(this.rowCount)) {\n    //   this.rowsOnPageSet.push(this.rowCount);\n    //   if (this.rowsOnPageSet)\n    //     this.rowsOnPage = this.rowsOnPageSet[0];\n    // }\n\n    // if (this.rowsOnPageSet.length === 1) {\n    //   if (this.rowsOnPageSet[0] <= 10)\n    //     this.rowsOnPage = this.rowsOnPageSet[0];\n    // }\n    //}\n  }\n\n  exportAsXLSX() {\n    let allData = JSON.parse(JSON.stringify(this.companyData));\n    for (let i = 0; i < allData.length; i++) {\n      allData[i].Company = allData[i].CompanyName;\n      allData[i][\"Email \"] = allData[i].Email;\n      allData[i].Phone = allData[i].Phone1;\n      delete (allData[i].CompanyName);\n      delete (allData[i].Phone1);\n      delete (allData[i].Address1);\n      delete (allData[i].Email);\n      delete (allData[i].Address2);\n      delete (allData[i].Country);\n      delete (allData[i].CIty);\n      delete (allData[i].State);\n      delete (allData[i].Pincode);\n      delete (allData[i].Phone1);\n      delete (allData[i].Phone2);\n      delete (allData[i].ParentID);\n      delete (allData[i].CompanyID);\n      delete (allData[i].UpdatedBy);\n      delete (allData[i].UpdatedDate);\n      delete (allData[i].CreatedBy);\n      delete (allData[i].CreatedDate);\n      delete (allData[i].IsActive);\n    }\n    this.dorseyService.generateExcel(allData, 'entity' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Company', \"Company: \" + this.loginUsername, '', \"Company Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n  }\n\n  enableScoreCardChange(event: MatSlideToggleChange, row): void {\n    var msg = row.EnableScoreCard ? 'enable' : 'disable';\n    const dialogRef = this.dialog.open(CompanyDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: 'Are you sure you want to ' + msg + ' score card for this entity: ' + row.CompanyName + '?æææ' + true,\n    });\n    dialogRef.afterClosed().subscribe(result => {\n      this.companDetails = row;\n      if (result) {\n        this.companDetails.EnableScoreCard = event.checked;\n        this.companyService.UpdateEnableScoreCard(this.companDetails).subscribe(resp => {\n          if (resp.Data) {\n            this.condition = false;\n            this.dialogCall('Updated successfully');\n          }\n        });\n      }\n      else {\n        this.companDetails.EnableScoreCard = !this.companDetails.EnableScoreCard;\n      }\n    });\n  }\n\n  getCompaniesCountByOrganizationId(): void {\n    this.organizationService.getCompaniesCountByOrganizationId(this.organizationId).subscribe(resp => {\n      this.licenseDetails = resp.Data[0];\n      this.organizationService.totalLicenses.next(this.licenseDetails.NotUsedLicenses);\n      this.organizationService.totalLicenses$ = this.organizationService.totalLicenses.asObservable();\n    });\n  }\n\n  OpenCompany(): void {\n    this.searchtext = '';\n    this.errorMessages = [];\n    this.organizationService.getCompaniesCountByOrganizationId(this.organizationId).subscribe(resp => {\n      this.licenseDetails = resp.Data[0];\n\n      if (this.licenseDetails.NotUsedLicenses <= 0) {\n        this.errorMessages.push('Cannot create new entity as there are no licenses');\n        this.dialog.open(ValidationDialogComponent, {\n          data: {\n            errorMessages: this.errorMessages\n          }\n        });\n        return;\n      }\n      this.licenseDetails.NotUsedLicenses = this.licenseDetails.NotUsedLicenses - 1;\n      this.organizationService.totalLicenses.next(this.licenseDetails.NotUsedLicenses);\n      this.organizationService.totalLicenses$ = this.organizationService.totalLicenses.asObservable();\n      this.companDetails = {\n        CompanyID: 0,\n        CompanyName: '',\n        ParentID: null,\n        Address1: '',\n        Address2: '',\n        Country: '',\n        State: '',\n        City: '',\n        Pincode: '',\n        Email: '',\n        Phone1: '',\n        Phone2: '',\n        EnableScoreCard: false,\n        EnableSubCompanies: false,\n        NoOfSubCompanies: 0,\n        OrganizationID: this.organizationId,\n        UserID: 0,\n        UserName: '',\n        Password: '',\n        FirstName: '',\n        LastName: '',\n        EmployeeID: 0,\n        CreatedBy: this.currentUser,\n        UpdatedBy: this.currentUser,\n        RowID: 0,\n        RoleID: 0\n      }\n      this.dialogCall('new');\n    });\n\n  }\n\n  sort(property) {\n    this.arrow = !this.arrow;\n    this.isDesc = !this.isDesc; //change the direction\n    this.column = property;\n    this.direction = this.isDesc ? 1 : -1;\n  }\n\n  getSubCompaniesCountByCompanyId(companyId: number): void {\n    if (companyId) {\n\n    }\n  }\n\n  entityLicenses: number;\n  subCompanyCount: number;\n  remainingEntityLicenses: number;\n  viewSubEntities(element): void {\n    this.currentRow = element.CompanyID;\n    this.parentCompanyId = element.CompanyID;\n    this.subEntityLevel = this.subEntityLevel + 1;\n    this.companyService.getSubCompaniesCountByCompanyId(element.CompanyID).subscribe(resp => {\n      this.companyService.getSubCompanyDetailsByCompanyId(element.CompanyID).subscribe(resp1 => {\n        var subEntitiesAlreadyAssigned = 0;\n        if (resp1.Data) {\n          resp1.Data.forEach(ent => {\n            subEntitiesAlreadyAssigned = subEntitiesAlreadyAssigned + ent.NoOfSubCompanies;\n          });\n        }\n        this.subCompanyCount = resp.Data + subEntitiesAlreadyAssigned;\n        this.entityLicenses = element.NoOfSubCompanies;\n        this.remainingEntityLicenses = this.entityLicenses - this.subCompanyCount;\n        if (this.subEntityLevel > 1) {\n          this.showSubEntities = false;\n          this.entityName = '';\n          setTimeout(() => {\n            this.showSubEntities = true;\n            this.entityName = element.CompanyName;\n          }, 200);\n        } else {\n          this.showSubEntities = true;\n          this.entityName = element.CompanyName;\n        }\n      });\n    });\n  }\n\n  Navigate(element) {\n    this.login.GetTeam(element.CompanyID);\n    this.dorseyService.GetUsersList().subscribe(users => {\n      this.userData = JSON.parse(users['_body']);\n      let tempUser = this.userData.filter(x => x.CompanyID.toString() === element.CompanyID.toString() && x.EmployeeID.toString() === '0');\n      this.login.GetUserRoleAssignment();\n      this.storage.store(\"adminEmail\", this.adminEmail);\n      this.storage.store(\"adminPassword\", this.adminPassword);\n      this.storage.store(\"adminUserName\", this.adminUserName);\n      this.storage.store(\"userData\", this.userData);\n      this.storage.store(\"companyNavigate\", true);\n      var loginLevel = this.storage.retrieve(\"loginLevel\");\n      if (loginLevel) {\n        this.storage.store(\"loginLevel\", loginLevel);\n      }\n      if (tempUser.length > 0) {\n        this.login.LoginWithCompany(tempUser[0].UserName, tempUser[0].Password, true);\n      }\n    });\n  }\n\n  dialogCall(msg: string) {\n    this.GetUsers();\n    const dialogRef = this.dialog.open(CompanyDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: msg + 'æææ' + false,\n    });\n    dialogRef.componentInstance.companyData = this.companyData;\n    dialogRef.componentInstance.companyDetails = this.companDetails;\n    dialogRef.componentInstance.userListData = this.userData;\n    dialogRef.componentInstance.currentUser = this.currentUser;\n    dialogRef.componentInstance.isSuperAdmin = this.isSuperAdmin;\n    dialogRef.componentInstance.entityLicenses = this.entityLicenses;\n    dialogRef.componentInstance.licenseDetails = this.licenseDetails;\n\n    if (msg == 'new') {\n      this.searchtext = '';\n      this.getCompanyDetailsByOrganizationId(this.organizationId);\n    }\n    if (msg === 'edit') {\n      this.searchtext = '';\n    }\n    dialogRef.afterClosed().subscribe(result => {\n      if (this.searchtext !== '' && this.searchtext !== undefined) {\n        this.Searchtext();\n\n      }\n      else {\n        this.getCompanyDetailsByOrganizationId(this.organizationId);\n      }\n      if (result && result.toString() === 'true') {\n        let statusMsg = '';\n        if (msg === 'new') {\n          statusMsg = 'Saved successfully';\n        }\n        else {\n          statusMsg = 'Updated successfully';\n        }\n        // this.dynamicRows = 10;\n        const dialogRefsub = this.dialog.open(CompanyDialogComponent, {\n          panelClass: 'custom-dialog-container',\n          data: statusMsg + 'æææ' + false,\n        });\n        setTimeout(() => {\n          this.getCompanyDetailsByOrganizationId(this.organizationId);\n          this.GetUsers();\n        }, 500);\n\n\n        dialogRefsub.afterClosed().subscribe(result1 => {\n\n          this.getCompaniesCountByOrganizationId();\n          if (this.searchtext !== '') {\n            this.Searchtext();\n          }\n          else {\n            this.getCompanyDetailsByOrganizationId(this.organizationId);\n            this.GetUsers();\n          }\n        });\n      } else {\n        this.getCompaniesCountByOrganizationId();\n      }\n    });\n  }\n\n  EditCompany(companyRow) {\n    this.companDetails = companyRow;\n    this.entityLicenses = this.companDetails.NoOfSubCompanies;\n    this.storage.store('CName', this.companDetails.CompanyName);\n    this.dialogCall('edit');\n  }\n\n  // ifMaxRow() {\n  //   if (this.rowsOnPage == this.companyData.length) {\n  //     this.rowsOnPage = this.rowsOnPage - 1;\n  //   }\n  // }\n\n  DeleteCompany(element) {\n    this.CompanyID = element.CompanyID;\n    this.companyService.getSubCompaniesCountByCompanyId(element.CompanyID).subscribe(resp => {\n      if (resp.Data > 0) {\n        this.dialogCall(\"Delete Failed. This entity has sub entities\");\n        return;\n      } else {\n        const dialogRef = this.dialog.open(CompanyDialogComponent, {\n          panelClass: 'custom-dialog-container',\n          data: 'Are you sure you want to delete entity: ' + element.CompanyName + '?æææ' + true,\n        });\n        dialogRef.afterClosed().subscribe(result => {\n          if (result) {\n            this.companyService.deleteCompany(Number(this.CompanyID)).subscribe(resp => {\n              if (resp.Data) {\n                // this.ifMaxRow();\n                this.condition = false;\n                this.dialogCall('Deleted successfully');\n                this.showSubEntities = false;\n              }\n              // this.dynamicRows = 10;\n              // this.rowsOnPageSet = [];\n              this.getCompanyDetailsByOrganizationId(this.organizationId);\n            });\n          }\n        });\n      }\n    });\n  }\n}\n\n@Component({\n  selector: 'app-dialog',\n  templateUrl: 'dialog.html',\n  providers: [DorseyService],\n})\nexport class CompanyDialogComponent {\n  public breakpoint: number; // Breakpoint observer code\n  saveClick = false;\n  CompanyID: number;\n  dataSelf = '';\n  condition: boolean;\n  addCompany: string;\n  companyData: Array<CompanyDetails> = [];\n  companyDetails: CompanyDetails;\n  currentUser: string;\n  userListData: any;\n  userdata: any;\n  oldCompanyName: string;\n  btnDisabled = false;\n  organizationID: number;\n  parentID: number;\n  isSuperAdmin: boolean;\n  companiesCountForOrganization: number;\n  licenseDetails: OrganizationLicenseDetails;\n  organizationDetails: any;\n  errorMessages: string[] = [];\n  entityLicenses: number;\n  remainingEntityLicenses: number;\n  subEntityLicenses: number;\n  existingLicenses: number;\n  subCompanyCount: number = 0;\n  constructor(\n    public dialogRef: MatDialogRef<CompanyDialogComponent>,\n    @Inject(MAT_DIALOG_DATA) public data: any,\n    public dorseyService: DorseyService,\n    private storage: LocalStorageService,\n    private organizationService: OrganizationService,\n    private companyService: CompanyService,\n    public dialog: MatDialog) {\n    this.data = this.data.split('æææ');\n    if (this.data[1] === 'true') {\n      this.condition = true;\n    } else {\n      this.condition = false;\n    }\n    this.data = this.data[0];\n    this.organizationDetails = this.storage.retrieve(\"OrganizationDetails\");\n  }\n\n  ngOnInit() {\n    this.companyData = JSON.parse(JSON.stringify(this.companyData));\n    if (this.data === 'new') {\n      this.companyDetails.ParentID = this.CompanyID;\n    }\n    this.breakpoint = window.innerWidth <= 1000 ? 1 : 3;\n    this.btnDisabled = this.isSuperAdmin ? true : false;\n    if (this.data !== 'new') {\n      this.getSubCompaniesCountByCompanyId();\n      this.getCompaniesCountByOrganizationId();\n    }\n  }\n\n  getCompaniesCountByOrganizationId(): void {\n    this.organizationService.getCompaniesCountByOrganizationId(this.organizationDetails.OrganizationId).subscribe(resp => {\n      this.licenseDetails = resp.Data[0];\n      this.organizationService.totalLicenses.next(this.licenseDetails.NotUsedLicenses);\n      this.organizationService.totalLicenses$ = this.organizationService.totalLicenses.asObservable();\n    });\n  }\n\n  getSubCompaniesCountByCompanyId(): void {\n    if (this.companyDetails) {\n      this.companyService.getSubCompaniesCountByCompanyId(this.companyDetails.CompanyID).subscribe(resp => {\n        this.subCompanyCount = resp.Data;\n      });\n    }\n  }\n\n  vaidateCompany(): void {\n\n\n    this.btnDisabled = true;\n    setTimeout(() => {\n      this.btnDisabled = false;\n    }, 1000);\n    if (!this.companyDetails.FirstName.trim() ||\n      !this.companyDetails.LastName.trim() ||\n      !this.companyDetails.CompanyName.trim() ||\n      !this.companyDetails.Address1.trim() ||\n      !this.companyDetails.UserName.trim() ||\n      !this.companyDetails.Country.trim() ||\n      !this.companyDetails.State.trim() ||\n      !this.companyDetails.City.trim() ||\n      !this.companyDetails.Pincode ||\n      !this.companyDetails.Phone1 ||\n      !this.companyDetails.Password ||\n      !this.companyDetails.Email ||\n      (this.companyDetails.EnableSubCompanies &&\n        this.companyDetails.NoOfSubCompanies === 0\n      )) {\n      this.dataSelf = 'Please enter mandatory(*) fields';\n      return;\n    }\n    else {\n      var mailformat = /^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/;\n      if (!this.companyDetails.Email.match(mailformat)) {\n        this.dataSelf = 'Please enter valid email';\n        this.saveClick = false;\n        return;\n      }\n    }\n    //for main entity license validation\n    if (this.licenseDetails && (!this.companyDetails.ParentID || this.companyDetails.ParentID === 0)) {\n      if (this.data === 'new') {\n        if (this.companyDetails.NoOfSubCompanies > this.licenseDetails.NotUsedLicenses) {\n          this.dataSelf = 'Cannot provide sub entities as there are no Licenses';\n          return;\n        }\n        this.dorseyService.GetUsersList().subscribe(users => {\n          this.userListData = JSON.parse(users['_body']);\n          this.saveCompany(this.data);\n        });\n      } else {\n        this.companyService.getSubCompanyDetailsByCompanyId(this.companyDetails.CompanyID).subscribe(resp => {\n          var subEntitiesAlreadyAssigned = 0;\n          if (resp.Data) {\n            resp.Data.forEach(ent => {\n              subEntitiesAlreadyAssigned = subEntitiesAlreadyAssigned + ent.NoOfSubCompanies;\n            });\n          }\n          var totalL = this.entityLicenses + this.licenseDetails.NotUsedLicenses;\n          if (this.subCompanyCount + subEntitiesAlreadyAssigned > this.companyDetails.NoOfSubCompanies) {\n            this.dataSelf = 'No. of sub entities cannot be less than already created sub entities';\n            return;\n          }\n          else if (this.companyDetails.NoOfSubCompanies > totalL) {\n            this.dataSelf = 'Cannot provide sub entities as there are no Licenses';\n            return;\n          }\n          this.dorseyService.GetUsersList().subscribe(users => {\n            this.userListData = JSON.parse(users['_body']);\n            this.saveCompany(this.data);\n          });\n        });\n      }\n    } else { //for sub entity license validation\n\n      if (this.data !== 'new') {\n        this.companyService.getSubCompanyDetailsByCompanyId(this.companyDetails.CompanyID).subscribe(resp => {\n          var subEntitiesAlreadyAssigned = 0;\n          if (resp.Data) {\n            resp.Data.forEach(ent => {\n              subEntitiesAlreadyAssigned = subEntitiesAlreadyAssigned + ent.NoOfSubCompanies;\n            });\n          }\n\n          if (this.subCompanyCount + subEntitiesAlreadyAssigned > this.companyDetails.NoOfSubCompanies) {\n            this.dataSelf = 'No. of sub entities cannot be less than already created sub entities';\n            return;\n          } else if (this.companyDetails.NoOfSubCompanies > this.remainingEntityLicenses) {\n            this.dataSelf = 'Cannot provide sub entities as there are no Licenses';\n            return;\n          }\n          this.dorseyService.GetUsersList().subscribe(users => {\n            this.userListData = JSON.parse(users['_body']);\n            this.saveCompany(this.data);\n          });\n        });\n      } else {\n        if (this.companyDetails.NoOfSubCompanies > this.remainingEntityLicenses) {\n          this.dataSelf = 'Cannot provide sub entities as there are no Licenses';\n          return;\n        }\n        this.dorseyService.GetUsersList().subscribe(users => {\n          this.userListData = JSON.parse(users['_body']);\n          this.saveCompany(this.data);\n        });\n      }\n    }\n  }\n\n  enableSubCompanies(event: MatSlideToggleChange, element: CompanyDetails): void {\n\n    // if (element.EnableSubCompanies == false && this.subCompanyCount > 0) {\n    //   this.errorMessages.push('Cannot disable Sub Entites as there are already sub entites created for the entity: ' + element.CompanyName);\n    // }\n    // if (this.errorMessages.length != 0) {\n    //   this.dialog.open(ValidationDialogComponent, {\n    //     data: {\n    //       errorMessages: this.errorMessages\n    //     }\n    //   });\n    //   element.EnableSubCompanies = !event.checked;\n    //   this.companyDetails.EnableSubCompanies = !event.checked;\n    //   console.log(this.companyDetails)\n    //   return;\n    // } else {\n    //   element.NoOfSubCompanies = element.EnableSubCompanies ? element.NoOfSubCompanies : 0;\n    // }\n\n    element.NoOfSubCompanies = element.EnableSubCompanies ? element.NoOfSubCompanies : 0;\n  }\n\n  saveCompany(msg: string) {\n    if (this.companyDetails.Pincode.length < 5) {\n      this.dataSelf = \"Zip code should be 5 digits\";\n      this.saveClick = false;\n      setTimeout(() => {\n        this.dataSelf = \"\";\n      }, 2000);\n      return;\n    }\n    if (this.companyDetails.CompanyID) {\n      this.companyDetails.UpdatedBy = this.currentUser;\n    }\n    if (msg === 'new') {\n      if (this.companyData && this.companyData.find(ent => ent.CompanyName.toLowerCase().trim() == this.companyDetails.CompanyName.toLowerCase().trim())) {\n        this.dataSelf = 'Entity name already exist';\n        return;\n      }\n      if (this.userListData && this.userListData.find(ent => ent.UserName.toLowerCase().trim() == this.companyDetails.UserName.toLowerCase().trim())) {\n        this.dataSelf = 'UserName already exist';\n        return;\n      }\n      this.companyService.saveCompany(this.companyDetails).subscribe(resp => {\n        if (resp.Data) {\n          this.dataSelf = 'Saved successfully';\n          setTimeout(() => {\n            this.dataSelf = '';\n            this.dorseyService.GetUsersList().subscribe(users => {\n              this.userListData = JSON.parse(users['_body']);\n            });\n          }, 2000);\n          this.dialogRef.close(true);\n        } else {\n          this.dataSelf = 'Save failed';\n        }\n      })\n    } else {\n      if (this.companyDetails.CompanyName.toLowerCase().trim() !== this.storage.retrieve('CName').toLowerCase().trim()) {\n        var data = this.companyData.filter(ent => ent.CompanyName.toLowerCase().trim() != this.storage.retrieve('CName').toLowerCase().trim());\n        if (data.find(ent => ent.CompanyName.toLowerCase().trim() == this.companyDetails.CompanyName.toLowerCase().trim())) {\n          this.dataSelf = 'Entity name already exist';\n          return;\n        }\n      }\n\n      if (this.companyDetails.UserName !== this.storage.retrieve('Uname')) {\n        this.userListData = this.userListData.filter(ent => ent.UserID !== this.companyDetails.UserID);\n        if (this.userListData && this.userListData.find(ent => ent.UserName.toLowerCase().trim() == this.companyDetails.UserName.toLowerCase().trim())) {\n          this.dataSelf = 'UserName already exist';\n          return;\n        }\n      }\n      this.companyService.saveCompany(this.companyDetails).subscribe(resp => {\n        if (resp.Data === true) {\n          this.organizationService.getCompaniesCountByOrganizationId(this.organizationDetails.OrganizationId).subscribe(resp => {\n            this.licenseDetails = resp.Data[0];\n            this.organizationService.totalLicenses.next(this.licenseDetails.NotUsedLicenses);\n            this.organizationService.totalLicenses$ = this.organizationService.totalLicenses.asObservable();\n          });\n          this.dialogRef.close(true);\n        } else {\n          this.dataSelf = 'Updated successfully';\n        }\n        this.getCompaniesCountByOrganizationId();\n      });\n    }\n  }\n\n  clear(): void {\n    this.dialogRef.close(false);\n  }\n\n  onResize(event) {\n    this.breakpoint = (event.target.innerWidth <= 1000) ? 1 : 3;\n  }\n  onYesClick() {\n    this.dialogRef.close(true);\n  }\n  onNoClick(): void {\n    this.dialogRef.close();\n  }\n\n  keyPress(event: any) {\n    const pattern = /[0-9\\+\\-\\ ]/;\n\n    let inputChar = String.fromCharCode(event.charCode);\n    if (event.keyCode != 8 && !pattern.test(inputChar)) {\n      event.preventDefault();\n    }\n  }\n\n  isAlpha(evt) {\n    var keyCode = (evt.which) ? evt.which : evt.keyCode\n    if ((keyCode < 65 || keyCode > 90) && (keyCode < 97 || keyCode > 123) && keyCode != 32)\n      return false;\n    return true;\n  }\n\n  validatePhone(event: any) {\n    if ((event.key) == \"Backspace\" || event.key == \"ArrowLeft\" || event.key == \"ArrowRight\") {\n      return;\n    } else {\n      const regexpattern = '^[0-9]\\d*$';\n      if (!event.key.match(regexpattern)) {\n        event.preventDefault();\n      }\n    }\n\n  }\n\n  validateEmail(event: any) {\n    var re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n    if (!this.companyDetails.Email) {\n      if (event.keyCode == 32) {\n        event.preventDefault();\n      }\n    }\n  }\n\n  validate() {\n    this.dataSelf = '';\n    if (this.storage.retrieve('CName'))\n      if (this.companyDetails.CompanyName.toLowerCase().trim() !== this.storage.retrieve('CName').toLowerCase().trim()) {\n        var data = this.companyData.filter(ent => ent.CompanyName.toLowerCase().trim() != this.storage.retrieve('CName').toLowerCase().trim());\n        if (data.find(ent => ent.CompanyName.toLowerCase().trim() == this.companyDetails.CompanyName.toLowerCase().trim())) {\n          this.dataSelf = 'Entity name already exist';\n          return;\n        }\n      }\n  }\n\n  valZero() {\n    var re = /^(?=.*\\d)(?=.*[1-9]).{1,16}$/;\n    if (this.companyDetails.Phone1 !== '') {\n      if (!this.companyDetails.Phone1.match(re)) {\n        this.dataSelf = \"Phone number invalid\";\n        this.saveClick = false;\n        this.companyDetails.Phone1 = \"\";\n\n        setTimeout(() => {\n          this.dataSelf = \"\";\n        }, 2000);\n      }\n    }\n    if (this.companyDetails.Phone2 !== '') {\n      if (!this.companyDetails.Phone2.match(re)) {\n        this.dataSelf = \"Phone number invalid\";\n        this.saveClick = false;\n        this.companyDetails.Phone2 = \"\";\n        setTimeout(() => {\n          this.dataSelf = \"\";\n        }, 2000);\n      }\n    }\n  }\n}\n","export const copyRight = \"© 2022 The Dorsey Group, All rights reserved.\";","module.exports = \".dbHead {\\n  display: flex;\\n  justify-content: space-between;\\n  margin-bottom: 10px;\\n}\\n\\n.card-body {\\n  padding-left: 0;\\n}\\n\\n.squareInActvty {\\n  padding: 0px;\\n  background-color: #3775b5;\\n  color: papayawhip;\\n  text-align: center;\\n  cursor: pointer;\\n  border: 2px solid white;\\n  border-radius: 5px;\\n  font-size: 12px;\\n  word-break: break-word;\\n  min-height: 70px;\\n  width: 100px;\\n  box-shadow: 3px 3px 3px white;\\n  font-family: unset;\\n  font-size: 33px;\\n}\\n\\n.shadow {\\n  box-shadow: 3px 3px 3px black;\\n  background-color: white;\\n}\\n\\n/***************************For Mobile View*********************/\\n\\n@media (max-width: 576px) {\\n  .dbHead {\\n    display: flex;\\n    flex-direction: column;\\n  }\\n\\n  .dbActions {\\n    order: 1;\\n    width: 100%;\\n  }\\n\\n  .dbActions button {\\n    width: 96%;\\n    margin: 0 2% 2% 2%;\\n  }\\n\\n  .dbName {\\n    order: 2;\\n    width: 100%;\\n  }\\n}\\n\\n/***************************END For Mobile View*********************/\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvZGFzaGJvYXJkL0Y6XFxOaWtpbCBXb3JrXFxQcm9qZWN0c1xcRG9yc2V5XFxIaWVyYXJjaHkgU291cmNlIENvZGVcXFdvcmtpbmdcXGRvcnNleUdyb3VwL3NyY1xcYXBwXFxkYXNoYm9hcmRcXGRhc2hib2FyZC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvZGFzaGJvYXJkL2Rhc2hib2FyZC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGFBQUE7RUFDQSw4QkFBQTtFQUNBLG1CQUFBO0FDQ0Y7O0FERUE7RUFDRSxlQUFBO0FDQ0Y7O0FERUE7RUFDSSxZQUFBO0VBQ0EseUJBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLHVCQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0VBQ0Esc0JBQUE7RUFDQSxnQkFBQTtFQUNBLFlBQUE7RUFDQSw2QkFBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtBQ0NKOztBRENFO0VBQ0UsNkJBQUE7RUFFQSx1QkFBQTtBQ0NKOztBRGlCQSxnRUFBQTs7QUFFQTtFQUNFO0lBRUUsYUFBQTtJQUNBLHNCQUFBO0VDaEJGOztFRG1CQTtJQUNFLFFBQUE7SUFDQSxXQUFBO0VDaEJGOztFRG9CQTtJQUNFLFVBQUE7SUFDQSxrQkFBQTtFQ2pCRjs7RURvQkE7SUFDRSxRQUFBO0lBQ0EsV0FBQTtFQ2pCRjtBQUNGOztBRG1CQSxvRUFBQSIsImZpbGUiOiJzcmMvYXBwL2Rhc2hib2FyZC9kYXNoYm9hcmQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZGJIZWFke1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbn1cclxuXHJcbi5jYXJkLWJvZHl7XHJcbiAgcGFkZGluZy1sZWZ0OiAwO1xyXG59XHJcblxyXG4uc3F1YXJlSW5BY3R2dHkge1xyXG4gICAgcGFkZGluZzogMHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzM3NzViNTtcclxuICAgIGNvbG9yOiBwYXBheWF3aGlwO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgYm9yZGVyOiAycHggc29saWQgd2hpdGU7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xyXG4gICAgbWluLWhlaWdodDogNzBweDtcclxuICAgIHdpZHRoOiAxMDBweDtcclxuICAgIGJveC1zaGFkb3c6IDNweCAzcHggM3B4IHdoaXRlO1xyXG4gICAgZm9udC1mYW1pbHk6IHVuc2V0O1xyXG4gICAgZm9udC1zaXplOiAzM3B4O1xyXG4gIH1cclxuICAuc2hhZG93IHtcclxuICAgIGJveC1zaGFkb3c6IDNweCAzcHggM3B4IGJsYWNrO1xyXG4gICAgLy8gYm9yZGVyOiAycHggc29saWQgIzA5MWEzZTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG5cclxuICAgIC8vIHBhZGRpbmc6IDBweDtcclxuICAgIC8vIGJhY2tncm91bmQtY29sb3I6ICN3aGl0ZTtcclxuICAgIC8vIGNvbG9yOiBwYXBheWF3aGlwO1xyXG4gICAgLy8gdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgLy8gY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgLy8gYm9yZGVyOiAycHggc29saWQgIzA5MWEzZTtcclxuICAgIC8vIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIC8vIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIC8vIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XHJcbiAgXHJcbiAgICAvLyBib3gtc2hhZG93OiAzcHggM3B4IDNweCAjMDkxYTNlO1xyXG4gICAgLy8gZm9udC1mYW1pbHk6IHVuc2V0O1xyXG4gICAgLy8gZm9udC1zaXplOiAzM3B4O1xyXG4gIFxyXG4gfVxyXG4gXHJcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKipGb3IgTW9iaWxlIFZpZXcqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDo1NzZweCl7XHJcbiAgLmRiSGVhZHtcclxuICAgIFxyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgfVxyXG5cclxuICAuZGJBY3Rpb25ze1xyXG4gICAgb3JkZXI6IDE7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIFxyXG4gIH1cclxuXHJcbiAgLmRiQWN0aW9ucyBidXR0b257XHJcbiAgICB3aWR0aDogOTYlO1xyXG4gICAgbWFyZ2luOiAwIDIlIDIlIDIlO1xyXG4gIH1cclxuXHJcbiAgLmRiTmFtZXtcclxuICAgIG9yZGVyOiAyO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG59XHJcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKipFTkQgRm9yIE1vYmlsZSBWaWV3KioqKioqKioqKioqKioqKioqKioqL1xyXG4iLCIuZGJIZWFkIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4uY2FyZC1ib2R5IHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG4uc3F1YXJlSW5BY3R2dHkge1xuICBwYWRkaW5nOiAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNzc1YjU7XG4gIGNvbG9yOiBwYXBheWF3aGlwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiAycHggc29saWQgd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICBtaW4taGVpZ2h0OiA3MHB4O1xuICB3aWR0aDogMTAwcHg7XG4gIGJveC1zaGFkb3c6IDNweCAzcHggM3B4IHdoaXRlO1xuICBmb250LWZhbWlseTogdW5zZXQ7XG4gIGZvbnQtc2l6ZTogMzNweDtcbn1cblxuLnNoYWRvdyB7XG4gIGJveC1zaGFkb3c6IDNweCAzcHggM3B4IGJsYWNrO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKkZvciBNb2JpbGUgVmlldyoqKioqKioqKioqKioqKioqKioqKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzZweCkge1xuICAuZGJIZWFkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cblxuICAuZGJBY3Rpb25zIHtcbiAgICBvcmRlcjogMTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5kYkFjdGlvbnMgYnV0dG9uIHtcbiAgICB3aWR0aDogOTYlO1xuICAgIG1hcmdpbjogMCAyJSAyJSAyJTtcbiAgfVxuXG4gIC5kYk5hbWUge1xuICAgIG9yZGVyOiAyO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqRU5EIEZvciBNb2JpbGUgVmlldyoqKioqKioqKioqKioqKioqKioqKi8iXX0= */\"","import { Component, OnInit } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { Router, ActivatedRoute } from '@angular/router';\n\n@Component({\n  selector: 'app-dashboard',\n  templateUrl: './dashboard.component.html',\n  styleUrls: ['./dashboard.component.scss']\n})\nexport class DashboardComponent implements OnInit {\n  totalFrustations = [];\n  totalFCount: any;\n  processData = [];\n  dashBoardJson = [];\n  dashboard = false;\n  dashboardMetric = false;\n  dashboardProcess = false;\n  dashboardProject = false;\n\n  dashboardCat = false;\n  dashboardMe = false;\n  dashboardPr = false;\n  dashboardPro = false;\n  CompanyID: string;\n\n  dashboardSeverity = false;\n  id: any;\n\n  dashboardTeam: any;\n  dashboardTeamCat: any;\n  dashboardTeamPr: any;\n  dashboardTeamSeverity: any;\n  dashboardTeamPro: any;\n  teamData: any\n\n  dashboardSev = false;\n  constructor(private dorsey: DorseyService, private storage: LocalStorageService, private route: ActivatedRoute,\n    private router: Router) {\n    this.id = this.route.snapshot.paramMap.get('TeamID');\n    this.dashboardTeam = this.id;\n    this.dashboardTeamCat = this.id;\n    this.dashboardTeamPr = this.id;\n    this.dashboardTeamSeverity = this.id;\n    this.dashboardTeamPro = this.id;\n\n\n    this.storage.store(\"id\", this.id);\n\n  }\n\n  ngOnInit() {\n    this.CompanyID = this.storage.retrieve('companyID');\n    this.dorsey.GetPointer(this.CompanyID)\n      .subscribe((pointer) => {\n        this.totalFrustations = (JSON.parse(pointer['_body']));\n        let frustrations;\n        if (this.id !== 0) {\n          frustrations = this.totalFrustations.filter(x => x.PointerTypeID === 1 && x.TeamID.toString() === this.id.toString());\n\n        }\n        else {\n          frustrations = this.totalFrustations.filter(x => x.PointerTypeID === 1)\n        }\n\n        this.totalFCount = frustrations.length;\n        this.dorsey.GetProcess(this.CompanyID).subscribe(subData => {\n\n          this.processData = (JSON.parse(subData['_body']));\n          if (this.processData.length < 1) {\n            //  return;\n          }\n          for (let j = 0; j < this.processData.length; j++) {\n            let processCount = 0; let processName = this.processData[j]['ProcessName'];\n            for (let i = 0; i < frustrations.length; i++) {\n\n              if (this.processData[j]['ProcessID'] === frustrations[i]['ProcessID']) {\n                processCount++;\n\n              }\n\n            }\n            let json = {\n              process: processName,\n              Issues: processCount\n            };\n            this.dashBoardJson.push(json);\n            this.dashBoardJson.sort(function (obj1, obj2) {\n\n              return obj2.Issues - obj1.Issues;\n            });\n          }\n        });\n      });\n  }\n\n  GetProcess() {\n    this.dorsey.GetProcess(this.CompanyID).subscribe(subData => {\n      this.processData = JSON.parse(subData['_body']);\n    });\n  }\n\n\n}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2RlcGFydG1lbnRzL2RlcGFydG1lbnRzLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { DorseyService } from '../dorsey.service';\nimport { DepartmentService } from '../services/department.service';\nimport { Department } from './department.model';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n  selector: 'app-departments',\n  templateUrl: './departments.component.html',\n  styleUrls: ['./departments.component.scss']\n})\nexport class DepartmentsComponent implements OnInit {\n\n  companyId: number;\n  p: number = 1;\n  rowsOnPage = 10;\n  rowsOnPageSet = [];\n  rowCount: any;\n  dynamicRows = 10;\n  MenuPermissions: any;\n  menuData: any;\n  menuID: string;\n  menuName: string;\n  DepartmentDescription: string;\n  DepartmentName: string;\n  DepartmentID: number;\n  currentUser: string;\n  departmentData: any;\n  searchtext: string;\n  DepartmentList: Array<Department>;\n  isDisable = false;\n  disableSearch = false;\n  departmentPaging = false;\n  editDepartmentName: string;\n  saveFilter = [];\n  column = \"\";\n  direction: number;\n  arrow = true;\n  isDesc: boolean = false;\n  loginCompanyName: any;\n  condition: boolean;\n  teamList: any;\n  employeeLoginLevel = EmployeeLoginLevel;\n  employeeDetails: any;\n  constructor(public dialog: MatDialog,\n    public departmentService: DepartmentService,\n    private dorseyService: DorseyService,\n    private storage: LocalStorageService) {\n    this.currentUser = this.storage.retrieve('user');\n    this.menuData = this.storage.retrieve('menuData');\n    this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n  }\n\n  ngOnInit(): void {\n    this.companyId = this.storage.retrieve('companyID');\n    this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n\n    this.employeeDetails = this.storage.retrieve('employeeDetails');\n    this.menuData = this.menuData.filter(x => x.MenuName.toString().toLowerCase() === 'departments');\n    if (this.menuData.length > 0) {\n      this.menuName = this.menuData[0][\"MenuName\"];\n      this.menuID = this.menuData[0][\"MenuID\"];\n    }\n    this.getDepartments();\n    this.getTeams();\n  }\n\n  getTeams(): void {\n    this.dorseyService.GetTeam(this.companyId.toString()).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.teamList = subData;\n    });\n  }\n  getDepartments(): void {\n    // this.DepartmentList = [];\n    this.departmentService.getDepartments(this.companyId).subscribe(resp => {\n      this.DepartmentList = resp.Data;\n      if (this.DepartmentList.length === 0) {\n        this.departmentPaging = false;\n        this.isDisable = true;\n        this.disableSearch = true;\n      }\n      else {\n        if (this.employeeDetails) {\n          if ((this.employeeDetails.IsEmployeeLoginLevel == this.employeeLoginLevel.Department) || (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLoginLevel.Team)) {\n            this.DepartmentList = this.DepartmentList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n          }\n          else if (this.employeeDetails.IsEmployeeLoginLevel === this.employeeLoginLevel.Company) {\n            this.DepartmentList = this.DepartmentList;\n          }\n        }\n        this.saveFilter = JSON.parse(JSON.stringify(this.DepartmentList));\n        this.rowCount = this.DepartmentList.length;\n        this.departmentPaging = true;\n        this.isDisable = false;\n        this.disableSearch = false;\n        this.departmentPagination(this.rowCount);\n      }\n    });\n  }\n  /*Set Pagination for departments */\n\n  departmentPagination(RowCount): void {\n    this.dynamicRows = 10;\n    this.rowsOnPageSet = [];\n    this.rowsOnPage = 10;\n    this.rowCount = RowCount;\n    while (this.dynamicRows < this.rowCount) {\n      this.rowsOnPageSet.push(this.dynamicRows);\n      this.dynamicRows = this.dynamicRows + 10;\n    }\n    if (!this.rowsOnPageSet.includes(this.rowCount)) {\n      this.rowsOnPageSet.push(this.rowCount);\n      if (this.rowsOnPageSet.length === 1) {\n        if (this.rowsOnPageSet[0] <= 10)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n    }\n  }\n  /*\n  Search Departments data\n  */\n  searchText(): void {\n    this.DepartmentList = this.saveFilter;\n    let tempListDepartments = this.DepartmentList.filter(\n      (item) => {\n        return (\n          (item.DepartmentName !== null && this.searchtext && item.DepartmentName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.DepartmentDescription !== null && this.searchtext && item.DepartmentDescription.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n        );\n      }\n    );\n    this.DepartmentList = tempListDepartments;\n    if (this.DepartmentList.length == 0) {\n      this.isDisable = true;\n    } else {\n      this.isDisable = false;\n    }\n    if (this.searchtext === '') {\n      this.DepartmentList = this.saveFilter;\n      this.rowCount = this.DepartmentList.length;\n      this.isDisable = false;\n      this.departmentPagination(this.rowCount);\n    }\n    else {\n      this.rowCount = tempListDepartments.length;\n      this.departmentPagination(this.rowCount);\n      if (this.rowsOnPageSet.length === 1) {\n        if (this.rowsOnPageSet[0] <= 10)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n    }\n  }\n\n  sort(property): void {\n    this.arrow = !this.arrow;\n    this.isDesc = !this.isDesc; //change the direction\n    this.column = property;\n    this.direction = this.isDesc ? 1 : -1;\n  }\n\n  newDepartment(): void {\n    this.dialogCall('new');\n  }\n\n  /*\n  Dialog open\n  */\n  dialogCall(msg: string): void {\n    const dialogRef = this.dialog.open(DepartmentDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: msg + 'æææ' + false,\n    });\n\n    dialogRef.componentInstance.currentUser = this.currentUser;\n    dialogRef.componentInstance.DepartmentList = this.DepartmentList;\n    dialogRef.componentInstance.companyId = this.companyId;\n    if (msg === 'new') {\n      this.searchtext = '';\n      this.getDepartments();\n    }\n    if (msg === 'edit') {\n      dialogRef.componentInstance.DepartmentName = this.DepartmentName;\n      dialogRef.componentInstance.DepartmentDescription = this.DepartmentDescription;\n      dialogRef.componentInstance.DepartmentID = this.DepartmentID;\n      dialogRef.componentInstance.editDepartmentName = this.editDepartmentName;\n      //dialogRef.componentInstance.inUse = this.inUse;\n    }\n    dialogRef.afterClosed().subscribe(result => {\n      if (this.searchtext !== '' && this.searchtext !== undefined) {\n        this.searchText();\n      }\n      else {\n        this.getDepartments();\n      }\n      if (result.toString() === 'true') {\n        let statusMsg = '';\n        if (msg === 'new') {\n          statusMsg = 'Saved successfully';\n        }\n        else {\n          statusMsg = 'Updated successfully';\n        }\n        this.getDepartments();\n\n        const dialogRefsub = this.dialog.open(DepartmentDialogComponent, {\n          panelClass: 'custom-dialog-container',\n          data: statusMsg + 'æææ' + false,\n          //  width: '30%'\n        });\n        setTimeout(() => {\n          this.getDepartments();\n        }, 500);\n        dialogRefsub.afterClosed().subscribe(result1 => {\n          this.dynamicRows = 10;\n          if (this.searchtext !== '' && this.searchtext !== undefined) {\n            this.searchText();\n          }\n          else {\n            this.getDepartments();\n          }\n        });\n      }\n    });\n  }\n\n  /*\n  Edit department\n  */\n  editDepartment(departmentRow): void {\n    this.DepartmentID = departmentRow.DepartmentID;\n    this.DepartmentName = departmentRow.DepartmentName;\n    this.editDepartmentName = departmentRow.DepartmentName;\n    this.DepartmentDescription = departmentRow.DepartmentDescription;\n    this.companyId = departmentRow.CompanyID;\n    this.dialogCall('edit');\n  }\n\n  ifMaxRow(): void {\n    if (this.rowsOnPage == this.DepartmentList.length) {\n      this.rowsOnPage = this.rowsOnPage - 1;\n    }\n  }\n\n  /*\n  Delete Department\n  */\n  deleteDepartment(departmentRow: any): void {\n    this.DepartmentID = departmentRow.DepartmentID;\n    const dialogRef = this.dialog.open(DepartmentDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: 'Are you sure you want to delete department: ' + departmentRow.DepartmentName + '?æææ' + true,\n\n    });\n    dialogRef.afterClosed().subscribe(result => {\n      if (result) {\n        if (!this.teamList.find(ent => ent.DepartmentID == this.DepartmentID)) {\n          this.departmentService.deleteDepartment(this.DepartmentID).subscribe(resp => {\n            if (resp.Data) {\n              this.ifMaxRow();\n              this.condition = true;\n              this.dialogCall('Deleted successfully');\n              this.DepartmentList = [];\n              this.getDepartments();\n            } else {\n              this.dialogCall('Delete Failed');\n            }\n            this.dynamicRows = 10;\n            this.rowsOnPageSet = [];\n          });\n        } else {\n          this.dialogCall(\"Delete Failed. This department is associated with Teams\");\n        }\n\n      }\n    });\n  }\n\n  exportAsXLSX(): void {\n    let allData = JSON.parse(JSON.stringify(this.DepartmentList));\n    for (let i = 0; i < allData.length; i++) {\n      allData[i][\"Department Name\"] = allData[i].DepartmentName;\n      allData[i][\"Description\"] = allData[i].DepartmentDescription;\n      delete (allData[i].DepartmentID);\n      delete (allData[i].DepartmentName);\n      delete (allData[i].DepartmentDescription);\n      delete (allData[i].CreatedDate);\n      delete (allData[i].CreatedBy);\n      delete (allData[i].UpdatedDate);\n      delete (allData[i].UpdatedBy);\n      delete (allData[i].IsActive);\n      delete (allData[i].CompanyID);\n    }\n    this.dorseyService.generateExcel(allData, this.loginCompanyName + '_Departments' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Departments', \"Company: \" + this.loginCompanyName, '', \"Departments Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n  }\n}\n\n@Component({\n  selector: 'app-dialog',\n  templateUrl: 'dialog.html'\n})\nexport class DepartmentDialogComponent implements OnInit {\n  condition = false;\n  dataSelf: string;\n  DepartmentName: string;\n  DepartmentID: number;\n  companyId: number;\n  currentUser: string;\n  DepartmentDescription: string;\n  btnDisabled = false;\n  DepartmentList: Array<Department>;\n  editDepartmentName: string;\n  constructor(\n    public dialogRef: MatDialogRef<DepartmentDialogComponent>,\n    @Inject(MAT_DIALOG_DATA) public data: any, public departmentService: DepartmentService) {\n    this.data = this.data.split('æææ');\n    if (this.data[1] === 'true') {\n      this.condition = true;\n    } else {\n      this.condition = false;\n    }\n    this.data = this.data[0];\n  }\n\n  ngOnInit(): void {\n  }\n\n  onYesClick(): void {\n    this.dialogRef.close(true);\n  }\n\n  onNoClick(): void {\n    this.dialogRef.close();\n  }\n\n  validateDepartment(): void {\n    this.dataSelf = '';\n    if (!this.DepartmentName.trim()) {\n      this.dataSelf = 'Please enter mandatory(*) fields';\n      return;\n    }\n    this.saveDepartment(this.data);\n  }\n\n  saveDepartment(msg: string): void {\n    const entity = {\n      DepartmentName: this.DepartmentName,\n      CreatedBy: this.currentUser,\n      DepartmentID: this.DepartmentID,\n      CompanyID: this.companyId,\n      UpdatedBy: this.currentUser,\n      DepartmentDescription: this.DepartmentDescription\n    };\n    if (msg === 'new') {\n\n      if (this.DepartmentList.find(ent => ent.DepartmentName.toLowerCase().trim() == this.DepartmentName.toLowerCase().trim())) {\n        this.dataSelf = \"Department name already exists\";\n        return;\n      }\n      this.departmentService.saveDepartment(entity).subscribe(resp => {\n        if (resp.Data === true) {\n          this.dataSelf = 'Saved successfully';\n          this.DepartmentName = '';\n          this.DepartmentDescription = '';\n          this.DepartmentList.push(entity);\n          setTimeout(() => {\n            this.dataSelf = '';\n          }, 2000);\n        } else {\n          this.dataSelf = 'Save failed';\n        }\n      });\n    } else {\n      if (this.editDepartmentName != this.DepartmentName)\n        if (this.DepartmentList.find(ent => ent.DepartmentName.toLowerCase().trim() == this.DepartmentName.toLowerCase().trim())) {\n          this.dataSelf = \"Department name already exists\";\n          return;\n        }\n      this.departmentService.saveDepartment(entity).subscribe(resp => {\n        if (resp.Data === true) {\n          this.dialogRef.close(true);\n        } else {\n          this.dataSelf = 'Updated successfully';\n        }\n      });\n    }\n  }\n\n\n  Clear() {\n    this.dialogRef.close(false);\n  }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Http, Headers, URLSearchParams } from '@angular/http';\nimport * as FileSaver from 'file-saver';\nimport * as XLSX from 'xlsx';\nimport { Workbook } from 'exceljs';\nimport * as fs from 'file-saver';\nimport { environment } from 'src/environments/environment';\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\nconst EXCEL_EXTENSION = '.rsxlsx';\n@Injectable({\n  providedIn: 'root'\n})\nexport class DorseyService {\n  teamData: any;\n  tempData: any;\n  TeamName: any;\n  private httpUrl: string = environment.API_URL;\n  //  httpUrl = 'https://www.tdgdm.com/DorseyAPI/api/' ;\n  //  httpUrl='http://42.104.96.36:6005/api/';\n  // httpUrl = 'http://localhost:52718/api/';\n  // httpUrl='http://192.168.1.20:8005/api/';\n  //  httpUrl='http://192.168.1.20:6005/api/';\n\n  constructor(private http: Http) {\n\n  }\n\n  public generateExcelForScoreCard(allData, filename, sheetname, title, title1, title2, copyRight, headerForeColor?, headerBgColor?) {\n    const header = [];\n    var data = [];\n    if (allData.length > 0) {\n      var columnsIn = allData[0];\n      for (var key in columnsIn) {\n        header.push(key);\n      }\n      for (let i = 0; i < allData.length; i++) {\n        var columnsIn = allData[i];\n        var innerData = [];\n        for (var val in columnsIn) {\n          innerData.push(allData[i][val] != undefined ? allData[i][val] : '');\n        }\n        data.push(innerData);\n      }\n    }\n    let workbook = new Workbook();\n    let worksheet = workbook.addWorksheet(sheetname);\n    if (title != '') {\n      let titleRow = worksheet.addRow([title]);\n      if (title1 != '') {\n        let titleRow1 = worksheet.addRow([title1]);\n        titleRow1.font = { name: 'Calibri', family: 4, size: 16, underline: 'double', bold: true }\n      }\n      let titleRow2 = worksheet.addRow([title2]);\n      titleRow.font = { name: 'Calibri', family: 4, size: 16, underline: 'double', bold: true }\n      titleRow2.font = { name: 'Calibri', family: 4, size: 16, underline: 'double', bold: true }\n      worksheet.addRow([]);\n      worksheet.addRow([]);\n    }\n    let headerRow = worksheet.addRow(header);\n    headerRow.eachCell((cell, number) => {\n      cell.fill = {\n        type: 'pattern',\n        pattern: 'solid',\n        fgColor: { argb: headerForeColor },\n        bgColor: { argb: headerBgColor }\n      }\n      cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\n    })\n    // for (let i = 0; i < allData.length; i++) {\n    //   let row = worksheet.addRow(data[i]);\n    //   row.eachCell((cell, number) => {\n    //     cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\n    //     cell.alignment = { horizontal: \"left\", wrapText: true };\n    //     var cellBgColor = this.myStyleWeek(data[i], i);\n    //     console.log(\"Background color: \", cellBgColor);\n    //     cell.fill = {\n    //       type: 'pattern',\n    //       pattern: 'solid',\n    //       fgColor: { argb: 'black' },\n    //       bgColor: { argb: cellBgColor['background-color'] }\n    //     }\n    //   })\n    //   for (let i = 1; i <= row.cellCount; i++) {\n    //     worksheet.getColumn(i).width = 35;\n    //   }\n    // }\n\n    data.forEach(d => {\n      let row = worksheet.addRow(d);\n      row.eachCell((cell, number) => {\n        cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\n        cell.alignment = { horizontal: \"left\", wrapText: true };\n        cell.fill = {\n          type: 'pattern',\n          pattern: 'solid',\n          fgColor: { argb: headerForeColor },\n          bgColor: { argb: headerBgColor }\n        }\n      })\n      for (let i = 1; i <= row.cellCount; i++) {\n        worksheet.getColumn(i).width = 35;\n      }\n    });\n\n    worksheet.addRow([]);\n    let copyrt = worksheet.addRow([copyRight]);\n    copyrt.font = { name: 'Calibri', family: 4, size: 10, bold: false }\n\n    workbook.xlsx.writeBuffer().then((data) => {\n      let blob = new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n      fs.saveAs(blob, filename + '.xlsx');\n    })\n\n  }\n\n\n  public generateExcel(allData, filename, sheetname, title, title1, title2, copyRight, headerForeColor?, headerBgColor?) {\n    const header = [];\n    const data = [];\n    if (allData.length > 0) {\n      var columnsIn = allData[0];\n      for (var key in columnsIn) {\n        header.push(key);\n      }\n      for (let i = 0; i < allData.length; i++) {\n        var columnsIn = allData[i];\n        var innerData = [];\n        for (var val in columnsIn) {\n          innerData.push(allData[i][val] != undefined ? allData[i][val] : '');\n        }\n        data.push(innerData);\n      }\n    }\n\n    let workbook = new Workbook();\n    let worksheet = workbook.addWorksheet(sheetname);\n    if (title != '') {\n      let titleRow = worksheet.addRow([title]);\n      if (title1 != '') {\n        let titleRow1 = worksheet.addRow([title1]);\n        titleRow1.font = { name: 'Calibri', family: 4, size: 16, underline: 'double', bold: true }\n      }\n\n      let titleRow2 = worksheet.addRow([title2]);\n      titleRow.font = { name: 'Calibri', family: 4, size: 16, underline: 'double', bold: true }\n\n      titleRow2.font = { name: 'Calibri', family: 4, size: 16, underline: 'double', bold: true }\n\n\n      worksheet.addRow([]);\n      worksheet.addRow([]);\n\n    }\n\n    let headerRow = worksheet.addRow(header);\n\n    headerRow.eachCell((cell, number) => {\n      cell.fill = {\n        type: 'pattern',\n        pattern: 'solid',\n        fgColor: { argb: headerForeColor },\n        bgColor: { argb: headerBgColor }\n        // fgColor: { argb: 'FFFFFF00' },\n        // bgColor: { argb: 'FF0000FF' }\n      }\n      cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\n    })\n\n    data.forEach(d => {\n      let row = worksheet.addRow(d);\n      row.eachCell((cell, number) => {\n        cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\n        cell.alignment = { horizontal: \"left\", wrapText: true };\n      })\n      for (let i = 1; i <= row.cellCount; i++) {\n        worksheet.getColumn(i).width = 35;\n      }\n    });\n\n    worksheet.addRow([]);\n    let copyrt = worksheet.addRow([copyRight]);\n    copyrt.font = { name: 'Calibri', family: 4, size: 10, bold: false }\n\n    workbook.xlsx.writeBuffer().then((data) => {\n      let blob = new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n      fs.saveAs(blob, filename + '.xlsx');\n    })\n\n  }\n\n\n  public generateReportExcel(allData1, allData, image, filename, sheetname, title, title1, title2, copyRight, headerForeColor?, headerBgColor?) {\n    const header = [];\n    const data = [];\n    if (allData.length > 0) {\n      var columnsIn = allData[0];\n      for (var key in columnsIn) {\n        header.push(key);\n      }\n      for (let i = 0; i < allData.length; i++) {\n        var columnsIn = allData[i];\n        var innerData = [];\n        for (var val in columnsIn) {\n          innerData.push(allData[i][val] != undefined ? allData[i][val] : '');\n        }\n        data.push(innerData);\n      }\n    }\n\n    const header1 = [];\n\n    var innerData1 = [];\n    const data1 = [];\n    if (allData1.length > 0) {\n      // var columnsIn = allData1[0];\n      // console.log(columnsIn);\n      // for (var key in columnsIn) {\n      //   console.log(columnsIn[key]);\n      //   header1.push(key);\n      // }\n      let total = 0;\n      for (let i = 0; i < allData1.length; i++) {\n        total = total + allData1[i].value;\n      }\n      header1.push('Total');\n      innerData1.push(total);\n      for (let i = 0; i < allData1.length; i++) {\n        var columnsIn = allData1[i];\n\n        var valuesData = [];\n        // for (var val in columnsIn) {\n\n        header1.push(allData1[i].label);\n        innerData1.push(allData1[i].value);\n        //innerData.push(allData1[i].label != undefined  ? allData1[i].label : '');\n        //  valuesData.push(allData1[i].value != undefined  ? allData1[i].value : '');\n        // }\n        // data1.push(innerData1);\n        // data1.push(valuesData);\n      }\n\n    }\n\n    let workbook = new Workbook();\n    let worksheet = workbook.addWorksheet(sheetname);\n    if (title != '') {\n      let titleRow = worksheet.addRow([title]);\n      if (title1 != '') {\n        let titleRow1 = worksheet.addRow([title1]);\n        titleRow1.font = { name: 'Calibri', family: 4, size: 16, underline: 'double', bold: true }\n      }\n\n      let titleRow2 = worksheet.addRow([title2]);\n      titleRow.font = { name: 'Calibri', family: 4, size: 16, underline: 'double', bold: true }\n\n      titleRow2.font = { name: 'Calibri', family: 4, size: 16, underline: 'double', bold: true }\n\n\n      worksheet.addRow([]);\n      worksheet.addRow([]);\n\n    }\n\n\n\n    let headeRow1COlor = '000000';\n\n\n    let headerRow1 = worksheet.addRow(header1);\n    let headerRow2 = worksheet.addRow(innerData1);\n    worksheet.addRow([]);\n    worksheet.addRow([]);\n    let logo = workbook.addImage({\n      base64: image,\n      extension: 'png',\n    });\n\n    worksheet.addImage(logo, 'B10:D20');\n    worksheet.addRow([]);\n    worksheet.addRow([]);\n    worksheet.addRow([]);\n    worksheet.addRow([]);\n    worksheet.addRow([]);\n    worksheet.addRow([]);\n    worksheet.addRow([]);\n    worksheet.addRow([]);\n    worksheet.addRow([]);\n    worksheet.addRow([]);\n    worksheet.addRow([]);\n    worksheet.addRow([]);\n    worksheet.addRow([]);\n    worksheet.mergeCells('A10:F24');\n\n    let headerRow = worksheet.addRow(header);\n\n    headerRow1.eachCell((cell, number) => {\n      cell.fill = {\n        type: 'pattern',\n        pattern: 'solid',\n        fgColor: { argb: headerForeColor },\n        bgColor: { argb: headerBgColor },\n\n        // fgColor: { argb: 'FFFFFF00' },\n        // bgColor: { argb: 'FF0000FF' }\n      }\n      cell.alignment = { vertical: \"middle\", horizontal: \"center\", wrapText: true };\n      cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\n    })\n\n    headerRow2.eachCell((cell, number) => {\n      cell.fill = {\n        type: 'pattern',\n        pattern: 'solid',\n        fgColor: { argb: headerForeColor },\n        bgColor: { argb: headerBgColor }\n        // fgColor: { argb: 'FFFFFF00' },\n        // bgColor: { argb: 'FF0000FF' }\n      }\n      cell.alignment = { vertical: \"middle\", horizontal: \"center\" };\n      cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\n    })\n\n\n    headerRow.eachCell((cell, number) => {\n      cell.fill = {\n        type: 'pattern',\n        pattern: 'solid',\n        fgColor: { argb: headerForeColor },\n        bgColor: { argb: headerBgColor }\n        // fgColor: { argb: 'FFFFFF00' },\n        // bgColor: { argb: 'FF0000FF' }\n      }\n      cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\n    })\n\n    data.forEach(d => {\n      let row = worksheet.addRow(d);\n      row.eachCell((cell, number) => {\n\n        cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\n        // cell.alignment = { wrapText: true };\n        cell.alignment = { horizontal: \"left\", wrapText: true };\n\n      })\n      if (row.cellCount > allData1.length) {\n        for (let i = 1; i <= row.cellCount; i++) {\n          worksheet.getColumn(i).width = 35;\n        }\n      } else {\n        for (let i = 1; i <= allData1.length; i++) {\n          worksheet.getColumn(i).width = 35;\n        }\n      }\n\n    });\n    data1.forEach(d => {\n      let row1 = worksheet.addRow(d);\n      row1.eachCell((cell, number) => {\n        cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\n        cell.alignment = { wrapText: true };\n\n      })\n      for (let i = 1; i <= row1.cellCount; i++) {\n        worksheet.getColumn(i).width = 35;\n      }\n    });\n\n\n    worksheet.addRow([]);\n    let copyrt = worksheet.addRow([copyRight]);\n    copyrt.font = { name: 'Calibri', family: 4, size: 10, bold: false }\n\n    workbook.xlsx.writeBuffer().then((data) => {\n      let blob = new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n      fs.saveAs(blob, filename + '.xlsx');\n    })\n\n  }\n\n  public exportAsExcelFile(json: any[], excelFileName: string): void {\n    const title = 'Car Sell Report';\n\n    const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json);\n    //  this.wrapAndCenterCell(worksheet.A1);\n    let jsonsheet = {};\n    jsonsheet[excelFileName] = worksheet;\n    const titile = \"Swathi\";\n    const workbook: XLSX.WorkBook = { Sheets: jsonsheet, SheetNames: [excelFileName] };\n\n    this.wrapAndCenterCell(worksheet.A1);\n\n    //     if(!worksheet.A1.c) worksheet.A1.c = [];\n    //     worksheet.A1.c.push({w:\"SheetJS\", t:\"I'm a little comment, short and stout!\"});\n    //     worksheet['A2'].l = { Target:\"#E2\" }; /* link to cell E2 */\n    // console.log(worksheet);\n    // if(!workbook.Props) workbook.Props = {};\n    // workbook.Props.Title = \"Insert Title Here\";\n    // let headerRow = worksheet.addRow(\"Swathi\");\n    // // Cell Style : Fill and Border\n    // headerRow.eachCell((cell, number) => {\n    //   cell.fill = {\n    //     type: 'pattern',\n    //     pattern: 'solid',\n    //     fgColor: { argb: 'FFFFFF00' },\n    //     bgColor: { argb: 'FF0000FF' }\n    //   }\n    //   cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\n    // })\n    //worksheet.getColumn(3).width = 15;\n    const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\n    // const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'buffer' });\n    this.saveAsExcelFile(excelBuffer, excelFileName);\n  }\n\n  private wrapAndCenterCell(cell: XLSX.CellObject) {\n    const wrapAndCenterCellStyle = { font: { bold: true } };\n    this.setCellStyle(cell, wrapAndCenterCellStyle);\n  }\n\n  private setCellStyle(cell, style: {}) {\n    cell.s = style;\n\n\n  }\n\n  // private wrapAndCenterCell(cell: XLSX.CellObject) {\n  //   const wrapAndCenterCellStyle = { alignment: { wrapText: true, vertical: 'center', horizontal: 'center',italic:true } };\n  //   this.setCellStyle(cell, wrapAndCenterCellStyle);\n  // }\n\n  // private setCellStyle(cell: XLSX.CellObject, style: {}) {\n  //   cell.s = style;\n\n  //   console.log(style);\n  // }\n\n  private saveAsExcelFile(buffer: any, fileName: string): void {\n    const data: Blob = new Blob([buffer], {\n      type: EXCEL_TYPE\n    });\n    FileSaver.saveAs(data, fileName + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear() + EXCEL_EXTENSION);\n  }\n\n  public GetCompanyData() {\n    const Weburl = this.httpUrl + 'Dorsey/GetCompanyDetails';\n    return this.FetchData(Weburl);\n  }\n\n  FetchData(Weburl: string) {\n    const params = new URLSearchParams();\n    return this.http.get(Weburl, { search: params });\n  }\n  // posting the data to the respected Weburl\n  // PostData(Weburl: string) {\n  //     const headers = new Headers();\n  //     headers.append('Content-Type', 'application/x-www-form-urlencoded');\n  //     return this.http.post(Weburl, {}, { headers: headers });\n  // }\n  PostData(Weburl: string, body: any) {\n    const headers = new Headers();\n    headers.append('Content-Type', 'application/x-www-form-urlencoded');\n    return this.http.post(Weburl, JSON.stringify(body), { headers: headers });\n  }\n  SaveCompany(body: any) {\n    const Weburl = this.httpUrl + 'Dorsey/SaveCompany';\n    return this.PostData(Weburl, body);\n  }\n\n  Export(body: any, fileName: string, companyName: string, pageName: string) {\n    const Weburl = this.httpUrl + 'Dorsey/ExportAsExcel?FileName=' + fileName + '&CompnayName=' + companyName + '&pageName=' + pageName;\n    return this.PostData(Weburl, body);\n  }\n\n  DownloadPdfFile(fileName: string, filePath: string) {\n    const Weburl = this.httpUrl + 'Dorsey/DownloadPdfFile?fileName=' + fileName + '&filePath=' + filePath;\n    return this.FetchData(Weburl);\n  }\n\n\n\n  public DeleteCompany(companyID: string) {\n    const Weburl = this.httpUrl + 'Dorsey/DeleteCompany?CompanyID=' + companyID;\n    return this.FetchData(Weburl);\n  }\n\n  SaveProcess(body: any, Isversionize: string) {\n    const Weburl = this.httpUrl + 'Dorsey/SaveProcess?isVersioning=' + Isversionize;\n    return this.PostData(Weburl, body);\n  }\n  // http://localhost:56083/api/Sample/GetSample\n  public GetProcess(CompanyID: string) {\n    const Weburl = this.httpUrl + 'Dorsey/GetProcess?CompanyID=' + CompanyID;\n    return this.FetchData(Weburl);\n  }\n\n  public DeleteProcess(processID: string, CompanyID: string, TeamID: number, squence: number) {\n    const Weburl = this.httpUrl + 'Dorsey/DeleteProcess?ProcessID=' + processID + '&CompanyID=' + CompanyID + '&TeamID=' + TeamID + '&squence=' + squence;\n    return this.FetchData(Weburl);\n  }\n\n  // public DeleteProcess(processID: string) {\n  //   const Weburl = this.httpUrl + 'Dorsey/DeleteProcess?ProcessID=' + processID;\n  //   return this.FetchData(Weburl);\n  // }\n  SaveEmployee(body: any) {\n    const Weburl = this.httpUrl + 'Dorsey/SaveEmployee';\n    return this.PostData(Weburl, body);\n  }\n\n  public GetEmployee(CompanyID: string) {\n    const Weburl = this.httpUrl + 'Dorsey/GetEmployee?CompanyID=' + CompanyID;\n    return this.FetchData(Weburl);\n  }\n  public GetCompanyRoleID(CompanyID: string) {\n    const Weburl = this.httpUrl + 'Dorsey/GetCompanyRole?CompanyID=' + CompanyID;\n    return this.FetchData(Weburl);\n  }\n\n  public DeleteEmployee(EmployeeID: string) {\n    const Weburl = this.httpUrl + 'Dorsey/DeleteEmployee?EmployeeID=' + EmployeeID;\n    return this.FetchData(Weburl);\n  }\n\n  public GetRoles(companyID) {\n    const Weburl = this.httpUrl + 'Dorsey/GetRoles?companyID=' + companyID;\n    return this.FetchData(Weburl);\n  }\n\n  public GetDesignation() {\n    const Weburl = this.httpUrl + 'Dorsey/GetDesignation';\n    return this.FetchData(Weburl);\n  }\n\n  public GetDepartment() {\n    const Weburl = this.httpUrl + 'Dorsey/GetDepartment';\n    return this.FetchData(Weburl);\n  }\n\n  SaveActivity(body: any, Isversionize: string) {\n    const Weburl = this.httpUrl + 'Dorsey/SaveActivity?isVersioning=' + Isversionize;\n    return this.PostData(Weburl, body);\n  }\n\n  public GetActivity(CompanyID: string) {\n    const Weburl = this.httpUrl + 'Dorsey/GetActivity?CompanyID=' + CompanyID;\n    return this.FetchData(Weburl);\n  }\n  public DeleteActivity(ActivityID: string, CompanyID: string, TeamID: number, squence: number, ProcessID: string, ParentID: number) {\n    const Weburl = this.httpUrl + 'Dorsey/DeleteActivity?ActivityID=' + ActivityID + '&CompanyID=' + CompanyID + '&TeamID=' + TeamID + '&squence=' + squence + '&ProcessID=' + ProcessID + '&ParentID=' + ParentID;\n    return this.FetchData(Weburl);\n  }\n\n  public GetActivityType() {\n    const Weburl = this.httpUrl + 'Dorsey/GetActivityType';\n    return this.FetchData(Weburl);\n  }\n\n  SaveTeam(body: any) {\n    const Weburl = this.httpUrl + 'Dorsey/SaveTeam';\n    return this.PostData(Weburl, body);\n  }\n\n  public GetTeam(CompanyID: string) {\n    if (CompanyID) {\n      const Weburl = this.httpUrl + 'Dorsey/GetTeam?CompanyID=' + CompanyID;\n      return this.FetchData(Weburl);\n    }\n  }\n  public DeleteTeam(TeamID: string) {\n    const Weburl = this.httpUrl + 'Dorsey/DeleteTeam?TeamID=' + TeamID;\n    return this.FetchData(Weburl);\n  }\n  public GetPointerType() {\n    const Weburl = this.httpUrl + 'Dorsey/GetPointerType';\n    return this.FetchData(Weburl);\n  }\n  public GetFrustrationType(PointerTypeID, CompanyID) {\n    const Weburl = this.httpUrl + 'Dorsey/GetFrustrationType?PointerTypeID=' + PointerTypeID + '&CompanyID=' + CompanyID;\n    return this.FetchData(Weburl);\n  }\n  public GetStatus() {\n    const Weburl = this.httpUrl + 'Dorsey/GetStatus';\n    return this.FetchData(Weburl);\n  }\n  public GetProjectStatus() {\n    const Weburl = this.httpUrl + 'Dorsey/GetProjectStatus';\n    return this.FetchData(Weburl);\n  }\n  public GetSeverity() {\n    const Weburl = this.httpUrl + 'Dorsey/GetSeverity';\n    return this.FetchData(Weburl);\n  }\n  public GetFrustration(ProjectID, CompanyID) {\n    const Weburl = this.httpUrl + 'Dorsey/GetFrustration?ProjectID=' + ProjectID + '&CompanyID=' + CompanyID;\n    return this.FetchData(Weburl);\n  }\n\n\n  SavePointer(body: any, Isversionize: string) {\n    const Weburl = this.httpUrl + 'Dorsey/Savepointer?isVersioning=' + Isversionize;\n    return this.PostData(Weburl, body);\n  }\n\n  public GetPointer(CompanyID: string) {\n    const Weburl = this.httpUrl + 'Dorsey/GetPointer?CompanyID=' + CompanyID;\n    return this.FetchData(Weburl);\n  }\n  public DeletePointer(PointerID: string) {\n    const Weburl = this.httpUrl + 'Dorsey/DeletePointer?PointerID=' + PointerID;\n    return this.FetchData(Weburl);\n  }\n  SaveCase(body: any) {\n    const Weburl = this.httpUrl + 'Dorsey/SaveCase';\n    return this.PostData(Weburl, body);\n  }\n  public GetCase(CompanyID: string) {\n    const Weburl = this.httpUrl + 'Dorsey/GetCase?CompanyID=' + CompanyID;\n    return this.FetchData(Weburl);\n  }\n  public GetCaseData(processID: number, activityID: number, PointerTypeID: number, versionID: number, tableName, tableType) {\n    const Weburl = this.httpUrl + 'Dorsey/GetCaseData?processID=' + processID + '&activityID=' +\n      activityID + '&PointerTypeID=' + PointerTypeID + '&versionID=' + versionID + '&tableName=' + tableName + '&tableType=' + tableType;\n    return this.FetchData(Weburl);\n  }\n\n  public GetVersions(companyID: number, TeamID: number) {\n    //, TeamID\n    // + '&TeamID='+ TeamID\n    const Weburl = this.httpUrl + 'Dorsey/GetVersions?CompanyID=' + companyID + '&TeamID=' + TeamID;\n    return this.FetchData(Weburl);\n  }\n\n  public GetSelectedVersionData(versionID: number, companyID: number, teamId, verTable: String) {\n    const Weburl = this.httpUrl + 'Dorsey/GetSelectedVersionData?versionID=' + versionID + \"&companyID=\" + companyID + \"&TeamID=\" + teamId + \"&VerTableName=\" + verTable;\n    return this.FetchData(Weburl);\n  }\n  public GetSelectedVersionPointerData(versionID: number, companyID: number, teamId, tableName: string) {\n    const Weburl = this.httpUrl + 'Dorsey/GetSelectedVersionPointerData?versionID=' + versionID + '&companyID=' + companyID + \"&TeamID=\" + teamId + '&tableName=' + tableName;\n    return this.FetchData(Weburl);\n  }\n\n  public GetSelectedVersionActivityData(versionID: number, companyID: number, teamId, tableName: string) {\n    const Weburl = this.httpUrl + 'Dorsey/GetSelectedVersionActivityData?versionID=' + versionID + '&companyID=' + companyID + \"&TeamID=\" + teamId + '&tableName=' + tableName;\n    return this.FetchData(Weburl);\n  }\n  SaveProjects(body: any) {\n    const Weburl = this.httpUrl + 'Dorsey/SaveProject';\n    return this.PostData(Weburl, body);\n  }\n  public GetProjects(CompanyID: string) {\n    const Weburl = this.httpUrl + 'Dorsey/GetProjects?CompanyID=' + CompanyID;\n    return this.FetchData(Weburl);\n  }\n  public DeleteProjects(ProjectID: string) {\n    const Weburl = this.httpUrl + 'Dorsey/DeleteProjects?ProjectID=' + ProjectID;\n    return this.FetchData(Weburl);\n  }\n  UpdatePointerProject(body: any, Isversionize: string, statusID: string) {\n    const Weburl = this.httpUrl + 'Dorsey/UpdatePointerProject?isVersioning=' + Isversionize + '&statusID=' + statusID;\n    return this.PostData(Weburl, body);\n  }\n\n  public GetFrustNoProcess(CompanyID: string) {\n    const Weburl = this.httpUrl + 'Dorsey/NoFrustProcesses?CompanyID=' + CompanyID;\n    return this.FetchData(Weburl);\n  }\n\n  public GetNoActionProjects(CompanyID: string) {\n    const Weburl = this.httpUrl + 'Dorsey/NoActionProject?CompanyID=' + CompanyID;\n    return this.FetchData(Weburl);\n  }\n\n  public GetFrustrationWithOther(CompanyID: string) {\n    const Weburl = this.httpUrl + 'Dorsey/GetFrustrationWithOther?CompanyID=' + CompanyID;\n    return this.FetchData(Weburl);\n  }\n\n  public GetCommentsOnFrustration(CompanyID: string) {\n    const Weburl = this.httpUrl + 'Dorsey/GetCommentsOnFrustration?CompanyID=' + CompanyID;\n    return this.FetchData(Weburl);\n  }\n\n  public GetNoMetricProcess(CompanyID: string) {\n    const Weburl = this.httpUrl + 'Dorsey/NoMetricProcesses?CompanyID=' + CompanyID;\n    return this.FetchData(Weburl);\n  }\n\n  public GetUsersList() {\n    const Weburl = this.httpUrl + 'Dorsey/GetUsers';\n    return this.FetchData(Weburl);\n  }\n  public GetReport() {\n    const Weburl = this.httpUrl + 'Dorsey/GetReport';\n    return this.FetchData(Weburl);\n  }\n  public GetUserRoleAssignment() {\n    const Weburl = this.httpUrl + 'Dorsey/GetUserRoleAssignment';\n    return this.FetchData(Weburl);\n  }\n  public GetKeyProcessTeam() {\n    const Weburl = this.httpUrl + 'Dorsey/GetKeyProcessTeam';\n    return this.FetchData(Weburl);\n  }\n  public GetActivitiesTeam() {\n    const Weburl = this.httpUrl + 'Dorsey/GetActivitiesTeam';\n    return this.FetchData(Weburl);\n  }\n  SaveUser(body: any) {\n    const Weburl = this.httpUrl + 'Dorsey/SaveUser';\n    return this.PostData(Weburl, body);\n  }\n  ChangePassword(body: any) {\n    const Weburl = this.httpUrl + 'Dorsey/ChangePassword';\n    return this.PostData(Weburl, body);\n  }\n  SaveRole(body: any) {\n    const Weburl = this.httpUrl + 'Dorsey/SaveRole';\n    return this.PostData(Weburl, body);\n  }\n  public GetSelectedRolesData(companyID: string, TeamID: string, VerTableName: string) {\n    const Weburl = this.httpUrl + 'Dorsey/GetSelectedRolesData?companyID=' + companyID + \"&TeamID=\" + TeamID + \"&VerTableName=\" + VerTableName;\n    return this.FetchData(Weburl);\n  }\n\n  public GetSelectedRolesActivityData(companyID: string, TeamID: string, VerTableName: string) {\n    const Weburl = this.httpUrl + 'Dorsey/GetSelectedRolesActivityData?companyID=' + companyID + \"&teamID=\" + TeamID + \"&tableName=\" + VerTableName;\n    return this.FetchData(Weburl);\n  }\n  public GetMenuMaster() {\n    const Weburl = this.httpUrl + 'Dorsey/GetMenuMaster';\n    return this.FetchData(Weburl);\n  }\n\n  public DeleteRole(RowID: string) {\n    const Weburl = this.httpUrl + 'Dorsey/DeleteRole?RowID=' + RowID;\n    return this.FetchData(Weburl);\n  }\n  SaveTypes(body: any, Isversionize: string) {\n    const Weburl = this.httpUrl + 'Dorsey/SaveTypes?isVersioning=' + Isversionize;\n    return this.PostData(Weburl, body);\n  }\n\n  public DeleteType(FrustrationTypeID: string) {\n    const Weburl = this.httpUrl + 'Dorsey/DeleteType?FrustrationsTypeID=' + FrustrationTypeID;\n    return this.FetchData(Weburl);\n  }\n\n  public GetActivityIssues(CompanyID: string) {\n    const Weburl = this.httpUrl + 'Dorsey/GetActivityIssues?CompanyID=' + CompanyID;\n    return this.FetchData(Weburl);\n  }\n\n  public DeleteCase(CasesID: string, PointerID: string) {\n    const Weburl = this.httpUrl + 'Dorsey/DeleteCase?CasesID=' + CasesID + '&PointerID=' + PointerID;\n    return this.FetchData(Weburl);\n  }\n\n  SaveAlertValue(body: any) {\n    const Weburl = this.httpUrl + 'Dorsey/SaveAlertValues';\n    return this.PostData(Weburl, body);\n  }\n\n  public GetAlertValue(companyID: string, pointerID: Number) {\n    const Weburl = this.httpUrl + 'Dorsey/GetAlertValue?companyID=' + companyID + '&pointerTypeID=' + pointerID;\n    return this.FetchData(Weburl);\n  }\n\n  public GetKpiMain(CompanyID) {\n    const Weburl = this.httpUrl + 'Dorsey/GetKpiMain?CompanyID=' + CompanyID;\n    return this.FetchData(Weburl);\n  }\n\n  public GetKpiSub(CompanyID) {\n    const Weburl = this.httpUrl + 'Dorsey/GetKpiSub?CompanyID=' + CompanyID;\n    return this.FetchData(Weburl);\n  }\n  SaveMetricData(body: any, Isversionize: string) {\n    const Weburl = this.httpUrl + 'Dorsey/SaveMetricData?isVersioning=' + Isversionize;\n    return this.PostData(Weburl, body);\n  }\n  public DeleteMetricData(MainCategoryID: string, RowID: string) {\n    const Weburl = this.httpUrl + 'Dorsey/DeleteMetricData?MainCategoryID=' + MainCategoryID + '&RowID=' + RowID;\n    return this.FetchData(Weburl);\n  }\n\n  public GenerateRandomPasswrd(body: any) {\n    const Weburl = this.httpUrl + 'Dorsey/GenerateRandomPasswrd?fullData=' + body;\n    return this.PostData(Weburl, body);\n  }\n\n  updateEnableScoreCard(body: any) {\n    const Weburl = this.httpUrl + 'Dorsey/UpdateEnableScoreCard';\n    return this.PostData(Weburl, body);\n  }\n}\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatDatepickerInputEvent, MatRadioChange, MatRadioButton } from '@angular/material';\nimport { FormControl } from '@angular/forms';\nimport { DatePipe } from '@angular/common';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { DepartmentService } from '../services/department.service';\nimport { Department } from '../departments/department.model';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n  selector: 'app-employee',\n  templateUrl: './employee.component.html',\n  providers: [DorseyService]\n})\nexport class EmployeeComponent implements OnInit {\n  tempEmpDataFilter: any;\n  teamData: any;\n  employeeData: any;\n  condition = false;\n  EmployeeID: string;\n  rolesData: any;\n  companyData: any;\n  roleID: string;\n  designationID: string;\n  departmentId: number;\n  companyID: string;\n  companyName: string;\n  EmployeeName: string;\n  Gender: string;\n  DOB: string;\n  DOJ: string;\n  Email: string;\n  Phone: string;\n  status = false;\n  employeeLoginLevel: string = null;\n  employeeDetails: any;\n  date = new FormControl(new Date());\n  serializedDate = new FormControl((new Date()).toISOString());\n  serializedDate1 = new FormControl((new Date()).toISOString());\n  p: number = 1;\n  rowsOnPage = 10;\n  rowsOnPageSet = [];\n  rowCount: any;\n  dynamicRows = 10;\n  isDesc: boolean = false;\n  column = \"\";\n  direction: number;\n  arrow = true;\n  searchtext: string;\n  employeePaging = false;\n  saveFilter = [];\n  TeamID: string;\n  userVisible = false;\n  UserName: string;\n  Password: string;\n  isDisable = false;\n  disableSearch = false;\n  userData: any;\n  UserID: string;\n  Designation: string;\n  currentUser: string;\n  MenuPermissions: any;\n  menuData: any;\n  menuID: string;\n  menuName: string;\n  userRoleAssign: any;\n  companyRole: any;\n  CompanyRoleID: string;\n  loginEmployeeID: string;\n  FirstName: string;\n  LastName: string;\n  userTeamID: any;\n  loginCompanyName: any;\n  TeamAdminRoleID: string;\n  TeamMemberRoleID: string;\n  TeamMemberRoleName: string;\n  EmpRoleID: string;\n  EmpTeamName: string;\n  EmpCompanyID: any;\n  UserIDEMp: any;\n  userRoleAssignmentData: any;\n  rolesDataUser: any;\n  isTeamAssigned: boolean = false;\n\n  constructor(private dorseyService: DorseyService,\n    public dialog: MatDialog,\n    private departmentService: DepartmentService,\n    private storage: LocalStorageService) {\n    this.currentUser = this.storage.retrieve('user');\n    this.EmpCompanyID = this.storage.retrieve('companyID');\n    this.userTeamID = this.storage.retrieve('TeamID');\n    this.menuData = this.storage.retrieve('menuData');\n    this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n    this.loginEmployeeID = this.storage.retrieve('EmployeeID');\n    this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n    this.TeamAdminRoleID = this.storage.retrieve('TeamAdminRoleID');\n    this.TeamMemberRoleID = this.storage.retrieve('TeamMemberRoleID');\n    this.TeamMemberRoleName = this.storage.retrieve('TeamMemberRoleName');\n    this.EmpRoleID = this.storage.retrieve('EmpRoleID');\n    this.UserIDEMp = this.storage.retrieve('UserID');\n    this.employeeDetails = this.storage.retrieve('employeeDetails');\n    this.companyID = this.storage.retrieve('companyID');\n  }\n\n  ngOnInit() {\n    this.GetUserRoleAssignment();\n    if (this.loginEmployeeID.toString() !== '0') {\n      this.EmployeeID = this.loginEmployeeID;\n    }\n    else {\n      //this.EmployeeID = \"0\";\n      this.EmployeeID = this.loginEmployeeID = \"0\";\n    }\n    let tempdata = this.menuData;\n    this.menuData = tempdata.filter(x => x.MenuName.toString().toLowerCase() === 'employee');\n    if (this.menuData.length > 0) {\n      this.menuName = this.menuData[0][\"MenuName\"];\n      this.menuID = this.menuData[0][\"MenuID\"];\n    }\n    this.GetUserROleAssignment();\n    this.GetUsers();\n    this.GetEmployee();\n    this.GetRoles();\n    this.GetCompanyDetails();\n    this.GetTeam();\n    this.sort('EmployeeName');\n  }\n\n  OpenEmployee() {\n    this.FirstName = \"\";\n    this.LastName = \"\";\n    this.roleID = '';\n    this.Designation = '';\n    this.UserName = '';\n    this.Password = '';\n    this.employeeLoginLevel = '';\n    this.companyID = this.storage.retrieve('companyID');\n    this.dialogCall('new');\n  }\n\n  GetCompanyDetails() {\n    this.dorseyService.GetCompanyData().subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.companyData = subData;\n    });\n  }\n\n  GetUserRoleAssignment() {\n    this.dorseyService.GetUserRoleAssignment().subscribe(userRoles => {\n      this.userRoleAssignmentData = JSON.parse(userRoles['_body']);\n      this.dorseyService.GetRoles(this.companyID).subscribe(users => {\n        this.rolesDataUser = JSON.parse(users['_body']);\n        if (this.loginEmployeeID.toString() !== '0') {\n          let roles = this.userRoleAssignmentData.filter(x => x.UserID === this.UserIDEMp);\n          if (roles.length > 0) {\n            this.EmpRoleID = roles[0].RoleID;\n            let roleData = this.rolesDataUser.filter(x => x.RoleID === this.EmpRoleID);\n            if (roleData.length > 0) {\n              this.MenuPermissions = JSON.parse(roleData[0].MenuJson);\n            }\n\n          }\n        }\n      });\n    });\n  }\n\n  GetTeam() {\n    this.dorseyService.GetTeam(this.companyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.teamData = subData;\n      let tempData = this.teamData.filter(x => x.TeamID === this.userTeamID);\n      if (tempData.length > 0)\n        this.EmpTeamName = tempData[0].TeamName;\n\n      if (this.EmployeeID.toString() !== \"0\" && this.userTeamID.toString() !== \"0\") {\n        let data = this.teamData.filter(x => x.TeamID === this.userTeamID);\n        this.teamData = data;\n        this.TeamID = data[0].TeamID;\n        //this.isTeamAssigned = this.employeeDetails.IsEmployeeLoginLevel = EmployeeLoginLevel.Team ? true : false;\n        this.TeamID ? this.isTeamAssigned = true : this.isTeamAssigned = false\n      } else {\n        this.TeamID = '0';\n        this.teamData = subData;\n      }\n    });\n  }\n\n  Searchtext() {\n    this.employeeData = this.saveFilter;\n    let tempEmployee = this.employeeData.filter(\n      (item) => {\n        return (\n          (item.CompanyName !== null && this.searchtext && item.CompanyName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.IsEmployeeLoginLevel !== null && this.searchtext && item.IsEmployeeLoginLevel.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.EmployeeName !== null && this.searchtext && item.EmployeeName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.EmailID !== null && this.searchtext && item.EmailID.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.TeamName !== null && this.searchtext && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.DepartmentName !== null && this.searchtext && item.DepartmentName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.RoleName !== null && this.searchtext && item.RoleName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n        );\n      }\n\n    );\n    this.employeeData = tempEmployee;\n    if (this.employeeData.length == 0) {\n      this.isDisable = true;\n    } else {\n      this.isDisable = false;\n    }\n    if (this.searchtext === '') {\n      this.employeeData = this.saveFilter;\n      this.dynamicRows = 10;\n      this.rowsOnPageSet = [];\n      this.rowCount = this.employeeData.length;\n      while (this.dynamicRows < this.rowCount) {\n        this.rowsOnPageSet.push(this.dynamicRows);\n        this.dynamicRows = this.dynamicRows + 10;\n      }\n      if (!this.rowsOnPageSet.includes(this.rowCount))\n        this.rowsOnPageSet.push(this.rowCount);\n      if (this.rowsOnPageSet) {\n\n        this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n      this.isDisable = false;\n    } else {\n      this.rowCount = tempEmployee.length;\n      this.dynamicRows = 10;\n      this.rowsOnPageSet = [];\n      while (this.dynamicRows < this.rowCount) {\n        this.rowsOnPageSet.push(this.dynamicRows);\n        this.dynamicRows = this.dynamicRows + 10;\n      }\n      if (!this.rowsOnPageSet.includes(this.rowCount))\n        this.rowsOnPageSet.push(this.rowCount);\n      this.rowsOnPage = this.rowsOnPageSet[0];\n      if (this.rowsOnPageSet.length === 1) {\n        if (this.rowsOnPageSet[0] <= 10)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n    }\n  }\n\n  GetEmployee() {\n    this.dorseyService.GetEmployee(this.companyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.employeeData = subData;\n      if (this.userTeamID === null || this.userTeamID === undefined) {\n        this.userTeamID = \"0\";\n      }\n      if (this.employeeData.length === 0) {\n        this.employeePaging = false;\n        this.isDisable = true;\n        this.disableSearch = true;\n      }\n      else {\n        this.employeePaging = true;\n        this.isDisable = false;\n        this.disableSearch = false;\n        //if (this.userTeamID.toString() !== \"0\" && this.userTeamID !== null && this.companyID.toString() !== \"0\") {\n        if (this.employeeDetails) {\n          if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n            this.employeeData = [...this.employeeData.filter(x => x.DepartmentID === this.employeeDetails.DepartmentID)];\n          }\n          else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n            this.employeeData = [...this.employeeData.filter(x => x.TeamID === this.employeeDetails.TeamID)];\n          }\n        }\n        // let dtaa = this.employeeData.filter(x => x.TeamID === this.userTeamID && x.CompanyID === this.companyID);\n        // this.employeeData = dtaa;\n        //}\n        // else {\n        //   let dtaa = this.employeeData.filter(x => x.CompanyID === this.companyID);\n        //   this.employeeData = dtaa;\n        // }\n        this.saveFilter = JSON.parse(JSON.stringify(this.employeeData));\n        this.rowsOnPageSet = [];\n        this.dynamicRows = 10;\n        this.rowCount = this.employeeData.length;\n        while (this.dynamicRows < this.rowCount) {\n          this.rowsOnPageSet.push(this.dynamicRows);\n          this.dynamicRows = this.dynamicRows + 10;\n        }\n        if (!this.rowsOnPageSet.includes(this.rowCount)) this.rowsOnPageSet.push(this.rowCount);\n        if (this.rowsOnPageSet.length === 1) {\n          if (this.rowsOnPageSet[0] <= 10)\n            this.rowsOnPage = this.rowsOnPageSet[0];\n        }\n      }\n    });\n  }\n\n  exportAsXLSX() {\n    let allData = JSON.parse(JSON.stringify(this.employeeData));\n    for (let i = 0; i < allData.length; i++) {\n      allData[i].Employee = allData[i].EmployeeName;\n      allData[i][\" Email \"] = allData[i].EmailID;\n      allData[i][\"Employee Level\"] = allData[i].IsEmployeeLoginLevel;\n      allData[i][\"Department\"] = allData[i].DepartmentName;\n      allData[i].Team = allData[i].TeamName;\n      allData[i].Role = allData[i].RoleName;\n\n      delete (allData[i].DepartmentName);\n      delete (allData[i].IsEmployeeLoginLevel);\n      delete (allData[i].UpdatedDate3);\n      delete (allData[i].UpdatedBy3);\n      delete (allData[i].CompanyID3);\n      delete (allData[i].IsActive3);\n      delete (allData[i].CreatedDate3);\n      delete (allData[i].CreatedBy3);\n      delete (allData[i].RowID);\n      delete (allData[i].RoleID1);\n      delete (allData[i].RoleName1);\n      delete (allData[i].RoleDescription);\n      delete (allData[i].PermissionJson);\n      delete (allData[i].MenuJson);\n      delete (allData[i].TeamID1);\n      delete (allData[i].ProcessID);\n      delete (allData[i].TeamName1);\n      delete (allData[i].CompanyID2);\n      delete (allData[i].IsActive2);\n      delete (allData[i].CreatedDate2);\n      delete (allData[i].CreatedBy2);\n      delete (allData[i].UpdatedDate2);\n      delete (allData[i].UpdatedBy2);\n      delete (allData[i].TeamDescription);\n      delete (allData[i].TeamName);\n      delete (allData[i].RoleName);\n      delete (allData[i].CompanyName);\n      delete (allData[i].EmployeeName);\n      delete (allData[i].Gender);\n      delete (allData[i].EmailID);\n      delete (allData[i].DateOfBirth);\n      delete (allData[i].DateOfJoin);\n      delete (allData[i].CompanyName);\n      delete (allData[i].EmployeeName);\n      delete (allData[i].Email);\n      delete (allData[i].TeamID);\n      delete (allData[i].DesignationID);\n      delete (allData[i].RoleID);\n      delete (allData[i].DepartmentID);\n      delete (allData[i].CreatedBy);\n      delete (allData[i].CreatedDate);\n      delete (allData[i].UpdatedBy);\n      delete (allData[i].UpdatedDate);\n      delete (allData[i].ParentID);\n      delete (allData[i].CompanyOwner);\n      delete (allData[i].Description);\n      delete (allData[i].AnnualRevenue);\n      delete (allData[i].EmployeeID);\n      delete (allData[i].IsActive);\n      delete (allData[i].CompanyID1);\n      delete (allData[i].CompanyNumber);\n      delete (allData[i].CompanyCurrency);\n      delete (allData[i].CompanySource);\n      delete (allData[i].Active);\n      delete (allData[i].CustomerPriority);\n      delete (allData[i].Industry);\n      delete (allData[i].NAICSCode);\n      delete (allData[i].NAICSDescription);\n      delete (allData[i].NumberOfLocations);\n      delete (allData[i].OperatingHours);\n      delete (allData[i].Ownership);\n      delete (allData[i].ParentCompany);\n      delete (allData[i].SICCode);\n      delete (allData[i].SICCode);\n      delete (allData[i].SICDescription);\n      delete (allData[i].D_U_N_SNumber);\n      delete (allData[i].Address1);\n      delete (allData[i].Address2);\n      delete (allData[i].Phone);\n      delete (allData[i].CIty);\n      delete (allData[i].Pincode);\n      delete (allData[i].State);\n      delete (allData[i].Country);\n      delete (allData[i].Phone1);\n      delete (allData[i].Phone2);\n      delete (allData[i].Fax);\n      delete (allData[i].Website);\n      delete (allData[i].YearStarted);\n      delete (allData[i].IsActive1);\n      delete (allData[i].CreatedDate1);\n      delete (allData[i].CreatedBy1);\n      delete (allData[i].UpdatedDate1);\n      delete (allData[i].UpdatedBy1);\n      delete (allData[i].CompanyName1);\n      delete (allData[i].CompanyID);\n    }\n\n    this.dorseyService.generateExcel(allData, this.loginCompanyName + '_employee' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Employee', \"Company: \" + this.loginCompanyName, '', \"Employee Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n  }\n\n  sort(property) {\n    this.arrow = !this.arrow;\n    this.isDesc = !this.isDesc; //change the direction    \n    this.column = property;\n    this.direction = this.isDesc ? 1 : -1;\n  }\n\n  GetRoles() {\n    this.dorseyService.GetRoles(this.companyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.rolesData = subData;\n      let temproles = this.rolesData;\n      this.departmentService.getUsersByCompanyId(Number(this.companyID)).subscribe(resp => {\n        this.userData = resp.Data;\n        let data = [...this.userData];\n        this.companyRole = data;\n        if (data.length > 0) {\n          this.dorseyService.GetUserRoleAssignment().subscribe(subData => {\n            subData = JSON.parse(subData['_body']);\n            this.userRoleAssign = subData;\n            let assignROle = this.userRoleAssign.filter(x => x.UserID === data[0].UserID);\n            if (assignROle.length > 0) {\n              let roles = temproles.filter(x => x.RoleID != assignROle[0].RoleID);\n              this.rolesData = roles;\n              if (this.loginEmployeeID.toString() !== \"0\" && (this.employeeDetails && this.employeeDetails.IsEmployeeLoginLevel != EmployeeLoginLevel.Company)) {\n                let adminRole = roles.filter(x => x.RoleID !== this.TeamAdminRoleID);\n                this.rolesData = adminRole;\n                this.rolesData = adminRole.filter(x => x.RoleID !== this.EmpRoleID);\n              }\n            }\n          });\n        }\n      });\n    });\n  }\n\n  GetUserROleAssignment() {\n    this.dorseyService.GetUserRoleAssignment().subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.userRoleAssign = subData;\n    });\n  }\n\n  // GetDesignation() {\n  //   this.dorseyService.GetDesignation().subscribe(subData => {\n  //     subData = JSON.parse(subData['_body']);\n  //     this.designationData = subData;\n  //   });\n  // }\n\n  // GetDepartment() {\n  //   this.dorseyService.GetDepartment().subscribe(subData => {\n  //     subData = JSON.parse(subData['_body']);\n  //     this.departmentData = subData;\n  //   });\n  // }\n\n  dialogCall(msg: string) {\n    this.GetRoles();\n    const dialogRef = this.dialog.open(EmployeeDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: msg + 'æææ' + false,\n    });\n\n    dialogRef.componentInstance.EmployeeID = this.loginEmployeeID;\n    dialogRef.componentInstance.loginEmployeeID = this.loginEmployeeID;\n    dialogRef.componentInstance.currentUser = this.currentUser;\n    dialogRef.componentInstance.userVisible = this.userVisible;\n    dialogRef.componentInstance.roleID = this.roleID;\n    dialogRef.componentInstance.Designation = this.Designation;\n    dialogRef.componentInstance.companyRole = this.companyRole;\n    dialogRef.componentInstance.userData = this.userData;\n    dialogRef.componentInstance.userRoleAssign = this.userRoleAssign;\n    dialogRef.componentInstance.companyRole = this.companyRole;\n    dialogRef.componentInstance.selectedLoginLevel = this.employeeLoginLevel;\n    if (msg === 'user') {\n      this.userVisible = true;\n      dialogRef.componentInstance.companyID = this.companyID;\n      dialogRef.componentInstance.EmployeeName = this.EmployeeName;\n      dialogRef.componentInstance.Email = this.Email;\n      dialogRef.componentInstance.Phone = this.Phone;\n      dialogRef.componentInstance.UserName = this.UserName;\n      dialogRef.componentInstance.Password = this.Password;\n      dialogRef.componentInstance.EmployeeID = this.EmployeeID;\n    }\n    if (msg === 'new') {\n      this.userVisible = false;\n      this.searchtext = '';\n      this.GetEmployee();\n    }\n    dialogRef.componentInstance.companyData = this.companyData;\n    dialogRef.componentInstance.rolesData = this.rolesData;\n    //dialogRef.componentInstance.designationData = this.designationData;\n    //dialogRef.componentInstance.departmentData = this.departmentData;\n    dialogRef.componentInstance.companyID = this.companyID;\n    dialogRef.componentInstance.TeamID = this.TeamID;\n    dialogRef.componentInstance.DOB = null;\n    dialogRef.componentInstance.isTeamAssigned = this.isTeamAssigned;\n    dialogRef.componentInstance.DOJ = null;\n    dialogRef.componentInstance.teamData = this.teamData;\n    dialogRef.componentInstance.selectedLoginLevel = this.employeeLoginLevel;\n\n    if (msg === 'edit') {\n      this.userVisible = false;\n      this.status = true;\n      dialogRef.componentInstance.TeamID = this.TeamID;\n      dialogRef.componentInstance.FirstName = this.FirstName;\n      dialogRef.componentInstance.LastName = this.LastName;\n      dialogRef.componentInstance.Password = this.Password;\n      dialogRef.componentInstance.UserName = this.UserName;\n      dialogRef.componentInstance.UserID = this.UserID;\n      dialogRef.componentInstance.companyName = this.companyName;\n      dialogRef.componentInstance.EmployeeName = this.EmployeeName;\n      dialogRef.componentInstance.Phone = this.Phone;\n      dialogRef.componentInstance.Gender = this.Gender;\n      dialogRef.componentInstance.roleID = this.roleID;\n      dialogRef.componentInstance.designationID = this.designationID;\n      dialogRef.componentInstance.departmentId = this.departmentId;\n      dialogRef.componentInstance.Email = this.Email;\n      dialogRef.componentInstance.selectedLoginLevel = this.employeeLoginLevel;\n      // this.departmentService.getTeamsByDepartmentId(Number(this.companyID), this.departmentId).subscribe(resp => {\n      //   dialogRef.componentInstance.teamList = resp.Data;\n      // });\n\n      if (this.DOB)\n        dialogRef.componentInstance.DOB = new Date(this.DOB);\n      else dialogRef.componentInstance.DOB = null;\n      if (this.DOJ)\n        dialogRef.componentInstance.DOJ = new Date(this.DOJ);\n      else dialogRef.componentInstance.DOJ = null;\n      dialogRef.componentInstance.EmployeeID = this.EmployeeID;\n      dialogRef.componentInstance.companyID = this.companyID;\n    }\n\n    dialogRef.afterClosed().subscribe(result => {\n      if (this.searchtext !== '' && this.searchtext !== undefined) {\n        this.Searchtext();\n      }\n      else {\n\n        this.GetEmployee();\n      }\n      if (result && result.toString() === 'true') {\n        let statusMsg = '';\n        if (msg === 'new') {\n          statusMsg = 'Saved successfully';\n        } else {\n          statusMsg = 'Updated successfully';\n        }\n\n        this.dynamicRows = 10;\n        this.rowsOnPageSet = [];\n        const dialogRefsub = this.dialog.open(EmployeeDialogComponent, {\n          panelClass: 'custom-dialog-container',\n          data: statusMsg + 'æææ' + false,\n        });\n\n        setTimeout(() => {\n          this.GetEmployee();\n          this.GetUsers();\n        }, 500);\n        dialogRefsub.afterClosed().subscribe(result1 => {\n          this.employeeData = [];\n          if (this.searchtext !== '' && this.searchtext !== undefined) {\n            this.Searchtext();\n          }\n          else {\n            this.GetEmployee();\n            this.GetUsers();\n          }\n        });\n      }\n    });\n  }\n\n  GetUsers() {\n    this.departmentService.getUsersByCompanyId(Number(this.companyID)).subscribe(resp => {\n      this.userData = resp.Data;\n    });\n  }\n\n  AddUser(element) {\n    this.EmployeeID = \"\";\n    this.UserID = \"\";\n    this.UserName = \"\";\n    this.Password = \"\";\n    this.EmployeeID = element.EmployeeID;\n    this.companyID = element.CompanyID;\n    this.companyName = element.EmployeeName;\n    this.Email = element.EmailID;\n    this.Phone = element.Phone;\n    this.roleID = element.RoleID;\n    this.userVisible = true;\n    let filterUser = this.userData.filter(x => x.EmployeeID === this.EmployeeID);\n    if (filterUser.length > 0 && filterUser.length === 1) {\n      this.UserID = filterUser[0].UserID;\n      this.UserName = filterUser[0].UserName;\n      this.Password = filterUser[0].Password;\n    } else {\n      this.UserName = \"\";\n      this.Password = \"\";\n    }\n    this.dialogCall('user');\n\n  }\n  EditEmployee(data) {\n    this.EmployeeID = data.EmployeeID;\n    this.companyName = data.CompanyID;\n    this.roleID = data.RoleID;\n    this.designationID = data.DesignationID;\n    this.departmentId = data.DepartmentID;\n    this.Phone = data.Phone;\n    this.Email = data.EmailID;\n    this.EmployeeName = data.EmployeeName;\n    this.companyID = data.CompanyID;\n    this.TeamID = data.TeamID;\n    this.Designation = data.DesignationID;\n    this.employeeLoginLevel = data.IsEmployeeLoginLevel;\n    let tempUsers = this.userData.filter(x => x.CompanyID === this.companyID && x.EmployeeID === this.EmployeeID && x.Email === this.Email);\n    if (tempUsers.length > 0 && tempUsers.length === 1) {\n      this.UserName = tempUsers[0].UserName;\n      this.FirstName = tempUsers[0].FirstName;\n      this.LastName = tempUsers[0].LastName;\n      this.Password = tempUsers[0].Password;\n      this.UserID = tempUsers[0].UserID;\n    }\n    else {\n      this.FirstName = '';\n      this.LastName = '';\n      this.Password = '';\n      this.UserID = '';\n    }\n    this.storage.store(\"Uname\", this.UserName);\n    this.dialogCall('edit');\n  }\n\n  ifMaxRow() {\n    if (this.rowsOnPage == this.employeeData.length) {\n      this.rowsOnPage = this.rowsOnPage - 1;\n    }\n  }\n\n  DeleteEmployee(element) {\n    this.EmployeeID = element.EmployeeID;\n    const dialogRef = this.dialog.open(EmployeeDialogComponent, {\n      data: 'Are you sure you want to delete employee: ' + element.CompanyName + '?æææ' + true,\n    });\n    dialogRef.afterClosed().subscribe(result => {\n      if (result) {\n        this.dorseyService.DeleteEmployee(this.EmployeeID).subscribe(data => {\n          if (data.ok) {\n            this.ifMaxRow();\n            this.condition = false;\n            this.dialogCall('Deleted successfully');\n          }\n          this.dynamicRows = 10;\n          this.rowsOnPageSet = [];\n          this.GetEmployee();\n        });\n      }\n    });\n  }\n}\n\n@Component({\n  selector: 'app-dialog',\n  templateUrl: 'dialog.html',\n  // styleUrls: ['dialog.css'],\n  providers: [DorseyService, DatePipe],\n})\nexport class EmployeeDialogComponent implements OnInit {\n  companyRole: any;\n  userRoleAssign: any;\n  UserName: string;\n  Password: string;\n  userVisible = false;\n  companyName: string;\n  roleID: string;\n  designationID: string;\n  companyID: string;\n  EmployeeName: string;\n  teamData: any;\n  Gender: string;\n  DOB = new Date();\n  DOJ = new Date();\n  Email: string;\n  currentUser: string;\n  Phone: string;\n  EmployeeID: string;\n  TeamID: string;\n  dataSelf = '';\n  condition: boolean;\n  addCompany: string;\n  companyData: any;\n  rolesData: any;\n  //designationData: any;\n  //departmentData: any;\n  startDate = new Date();\n  validDate = new Date();\n  minDate = new Date();\n  UserID: string;\n  Designation: string;\n  loginEmployeeID: string;\n  userData: any;\n  FirstName: string;\n  LastName: string;\n  userListData: any;\n  isTeamAssigned: boolean;\n  btnDisabled = false;\n  employeeLoginLevelList: string[] = [EmployeeLoginLevel.Company, EmployeeLoginLevel.Department, EmployeeLoginLevel.Team];\n  selectedLoginLevel: string = null;\n  departmentList: Array<Department> = [];\n  departmentId: number = 0;\n  employeeLoginLevel = EmployeeLoginLevel;\n  teamList: Array<any> = [];\n  employeeDetails: any;\n\n  constructor(\n    public dialogRef: MatDialogRef<EmployeeDialogComponent>,\n    @Inject(MAT_DIALOG_DATA) public data: any,\n    public dorseyService: DorseyService,\n    private departmentService: DepartmentService,\n    private datepipe: DatePipe,\n    private storage: LocalStorageService) {\n    this.employeeDetails = this.storage.retrieve('employeeDetails');\n    this.data = this.data.split('æææ');\n    if (this.data[1] === 'true') {\n      this.condition = true;\n    } else {\n      this.condition = false;\n    }\n    this.data = this.data[0];\n    if (this.data == 'msg') {\n      this.DOB = null;\n      this.DOJ = null;\n    }\n  }\n\n  ngOnInit() {\n    this.GetUserListData();\n    if (this.companyID) {\n      this.departmentService.getDepartments(Number(this.companyID)).subscribe(resp => {\n        if (resp.Data.length > 0) {\n          this.getTeamsByDepartmentId();\n          this.departmentList = resp.Data;\n          if (this.employeeDetails) {\n            //this.isTeamAssigned = this.employeeDetails.IsEmployeeLoginLevel = EmployeeLoginLevel.Team ? true : false;\n            if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n              this.departmentList = this.departmentList.filter(x => x.DepartmentID === this.employeeDetails.DepartmentID);\n              this.employeeLoginLevelList = [EmployeeLoginLevel.Team];\n            }\n            else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n              this.teamList = this.teamList.filter(x => x.TeamID === this.employeeDetails.TeamID);\n              this.employeeLoginLevelList = [EmployeeLoginLevel.Team];\n            }\n            else {\n              this.employeeLoginLevelList = [EmployeeLoginLevel.Department, EmployeeLoginLevel.Team];\n\n\n            }\n          }\n        }\n      });\n    }\n  }\n\n  loginLevelChange(): void {\n    if (this.data === 'new') {\n      this.TeamID = \"0\";\n      this.departmentId = 0;\n    }\n    if (this.selectedLoginLevel == EmployeeLoginLevel.Company) {\n      this.departmentId = 0;\n      this.TeamID = '0';\n    }\n    else if (this.selectedLoginLevel == EmployeeLoginLevel.Department) {\n      this.TeamID = '0';\n    }\n  }\n\n  departmentChange(): void {\n    this.getTeamsByDepartmentId();\n  }\n\n  getTeamsByDepartmentId(): void {\n    if (this.departmentId && this.companyID) {\n      this.departmentService.getTeamsByDepartmentId(Number(this.companyID), this.departmentId).subscribe(resp => {\n        if (resp.Data.length > 0) {\n          this.teamList = resp.Data;\n        }\n      });\n    }\n  }\n\n  onYesClick() {\n    this.dialogRef.close(true);\n  }\n  onNoClick(): void {\n    this.dialogRef.close();\n  }\n\n  SaveUser() {\n    let count = 0;\n    const Editcount = 0;\n    if (this.UserName === undefined || this.Password === undefined || this.UserName.trim() === '' || this.Password.trim() === '') {\n      this.dataSelf = 'Please enter mandatory(*) fields';\n      if (this.data === 'new') {\n\n      }\n      count++;\n    }\n\n    if (count === 0 && Editcount === 0) {\n      this.dataSelf = '';\n      if (this.data === 'new') {\n\n\n        this.SavingUserDetails(this.data);\n      } else {\n        this.SavingUserDetails(this.data);\n      }\n    }\n  }\n\n\n  SavingUserDetails(msg: string) {\n    const json = {\n      CompanyID: this.companyID,\n      RoleID: this.roleID,\n      roleCreatedBy: this.currentUser,\n      name: this.EmployeeName,\n      email: this.Email,\n      phone1: this.Phone,\n      UserName: this.UserName,\n      Password: this.Password,\n      EmployeeID: this.EmployeeID,\n      userCreatedBy: this.currentUser,\n      UserID: this.UserID\n    }\n\n\n    if (msg === 'new') {\n      this.dorseyService.SaveUser(json).subscribe(data => {\n\n        if (data['_body'].toString() !== '0') {\n\n          this.dialogRef.close(true);\n        } else {\n          this.dataSelf = 'Save failed';\n        }\n\n      });\n    } else {\n\n      this.dorseyService.SaveUser(json).subscribe(data => {\n\n        if (data['_body'].toString() !== '0') {\n\n          this.dialogRef.close(true);\n        } else {\n          this.dataSelf = 'Updated successfully';\n        }\n      });\n    }\n\n  }\n\n  AddEmployee() {\n    this.btnDisabled = true;\n    setTimeout(() => {\n      this.btnDisabled = false;\n    }, 1000);\n    let count = 0;\n    const Editcount = 0;\n    if (this.FirstName == undefined ||\n      this.LastName === undefined ||\n      this.Password === undefined ||\n      this.roleID === undefined ||\n      !this.selectedLoginLevel ||\n      this.Email === undefined ||\n      this.UserName === undefined ||\n      this.roleID === '' ||\n      this.FirstName.trim() === '' ||\n      this.LastName.trim() === '' ||\n      this.Password.trim() === '' ||\n      this.Email.trim() === '' ||\n      this.UserName.trim() === '') {\n      this.dataSelf = 'Please enter mandatory(*) fields';\n      count++;\n    }\n    if (this.selectedLoginLevel === this.employeeLoginLevel.Department && !this.departmentId) {\n      this.dataSelf = 'Please enter mandatory(*) fields';\n      return;\n    }\n\n    if (this.selectedLoginLevel === this.employeeLoginLevel.Team && (this.TeamID === \"0\" || !this.TeamID)) {\n      this.dataSelf = 'Please enter mandatory(*) fields';\n      return;\n    }\n    if (this.Email) {\n      var mailformat = /^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/;\n      if (!this.Email.match(mailformat)) {\n        this.dataSelf = 'Please enter vaild email';\n        return;\n      }\n    }\n\n    if (count === 0 && Editcount === 0) {\n      this.dataSelf = '';\n      if (this.data === 'new') {\n        this.Saving(this.data);\n      } else {\n        this.Saving(this.data);\n      }\n    }\n  }\n\n  GetUserListData() {\n    this.dorseyService.GetUsersList().subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.userListData = subData;\n    });\n  }\n\n  Saving(msg: string) {\n    if (!this.TeamID) {\n      this.TeamID = \"0\";\n    }\n    if (msg === 'new') {\n      this.UserID = '';\n      this.EmployeeID = '';\n    }\n    const json = {\n      EmployeeName: this.FirstName + \" \" + this.LastName,\n      CompanyID: this.companyID,\n      EmailID: this.Email,\n      DesignationID: this.Designation,\n      RoleID: this.roleID,\n      DepartmentID: this.departmentId,\n      Phone: this.Phone,\n      CreatedBy: this.currentUser,\n      EmployeeID: this.EmployeeID,\n      UpdatedBy: this.currentUser,\n      TeamID: this.TeamID,\n      UserName: this.UserName,\n      Password: this.Password,\n      FirstName: this.FirstName,\n      LastName: this.LastName,\n      userCreatedBy: this.currentUser,\n      roleCreatedBy: this.currentUser,\n      UserID: this.UserID,\n      EmployeeLoginLevel: this.selectedLoginLevel\n    };\n\n\n    if (msg === 'new') {\n      this.UserID = '';\n      this.EmployeeID = '';\n      let checkUser = this.userListData.filter(x => x.UserName.toString().toLowerCase().trim() === this.UserName.toString().toLowerCase().trim());\n      if (checkUser.length > 0) {\n        this.dataSelf = \"Username already exist\";\n        return;\n      }\n      this.dorseyService.SaveEmployee(json).subscribe(data => {\n        if (data['_body'].toString() === 'true') {\n          this.dialogRef.close(true);\n        } else {\n          this.dataSelf = 'Save failed';\n        }\n      });\n    } else {\n      if (this.UserName !== this.storage.retrieve('Uname')) {\n        let checkUser = this.userListData.filter(x => x.UserName.toString().toLowerCase().trim() === this.UserName.toString().toLowerCase().trim());\n        if (checkUser.length > 0) {\n          this.dataSelf = \"Username already exist\";\n          return;\n        }\n      }\n      this.dorseyService.SaveEmployee(json).subscribe(data => {\n        if (data['_body'].toString() === 'true') {\n          this.dialogRef.close(true);\n        } else {\n          this.dataSelf = 'Updated successfully';\n\n        }\n      });\n    }\n  }\n\n  Clear() {\n    this.dialogRef.close(false);\n  }\n  company(event) {\n    this.companyID = event.value;\n  }\n\n  role(event) {\n    this.roleID = event.value;\n  }\n\n  designation(event) {\n    this.designationID = event.value;\n  }\n\n  doj(type: string, event: MatDatepickerInputEvent<Date>) {\n    const date = event.value;\n    this.DOJ = date;\n    let latest_date = this.datepipe.transform(this.DOJ, 'MM/dd/yyyy');\n    this.DOJ = new Date(latest_date);\n  }\n\n  dob(type: string, event: MatDatepickerInputEvent<Date>) {\n    const date = event.value;\n    this.DOB = date;\n    let latest_date = this.datepipe.transform(this.DOB, 'MM/dd/yyyy');\n    this.DOB = new Date(latest_date);\n    var year = this.DOB.getFullYear();\n    var month = this.DOB.getMonth();\n    var day = this.DOB.getDate();\n    this.startDate = new Date(year, month, day + 1);\n    this.minDate = this.startDate;\n  }\n\n  IsAlpha(evt) {\n    var keyCode = (evt.which) ? evt.which : evt.keyCode;\n    if ((keyCode < 65 || keyCode > 90) && (keyCode < 97 || keyCode > 123) && keyCode != 32)\n      return false;\n    return true;\n  }\n\n  ValidatePh(event: any) {\n    if (\n      // Allow: Delete, Backspace, Tab, Escape, Enter\n      [46, 8, 9, 27, 13].indexOf(event.keyCode) !== -1 ||\n      (event.keyCode === 65 && event.ctrlKey === true) || // Allow: Ctrl+A\n      (event.keyCode === 67 && event.ctrlKey === true) || // Allow: Ctrl+C\n      (event.keyCode === 86 && event.ctrlKey === true) || // Allow: Ctrl+V\n      (event.keyCode === 88 && event.ctrlKey === true) || // Allow: Ctrl+X\n      (event.keyCode === 65 && event.metaKey === true) || // Cmd+A (Mac)\n      (event.keyCode === 67 && event.metaKey === true) || // Cmd+C (Mac)\n      (event.keyCode === 86 && event.metaKey === true) || // Cmd+V (Mac)\n      (event.keyCode === 88 && event.metaKey === true) || // Cmd+X (Mac)\n      (event.keyCode >= 35 && event.keyCode <= 39)  // Home, End, Left, Right\n    ) {\n      return;\n    }\n\n    if ((event.shiftKey || (event.keyCode < 48 || event.keyCode > 57)) && (event.keyCode < 96 || event.keyCode > 105)) {\n      event.preventDefault();\n    }\n  }\n\n  ValidateEmail(event: any) {\n    var re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n    if (this.Email === undefined || this.Email === \"\") {\n      if (event.keyCode == 32) {\n        event.preventDefault();\n      }\n    }\n  }\n\n  onChange(mrChange: MatRadioChange) {\n    let mrButton: MatRadioButton = mrChange.source;\n  }\n\n\n  team(event) {\n    this.TeamID = event.value;\n  }\n\n  UniqueEmail(event: any) {\n    this.dorseyService.GetUsersList().subscribe(subData => {\n      // tslint:disable-next-line:no-string-literal\n      subData = JSON.parse(subData['_body']);\n      this.userListData = subData;\n    });\n    let checkUser = this.userListData.filter(x => x.UserName.toString().toLowerCase().trim() === this.UserName.toString().toLowerCase().trim());\n    if (checkUser.length > 0) {\n      this.dataSelf = \"Username already exist\";\n      this.Email = \"\";\n      setTimeout(() => {\n        this.dataSelf = '';\n      }, 2000);\n    }\n  }\n\n  valZero() {\n    var re = /^(?=.*\\d)(?=.*[1-9]).{1,16}$/;\n    if (this.Phone) {\n      if (!this.Phone.match(re)) {\n        this.dataSelf = \"Phone number invalid\";\n        this.Phone = \"\";\n        setTimeout(() => {\n          this.dataSelf = \"\";\n        }, 2000);\n      }\n    }\n  }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\n\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n  selector: 'app-frustration-comments',\n  templateUrl: './frustration-comments.component.html',\n})\nexport class FrustrationCommentsComponent implements OnInit {\n  copyRight: string = copyRight;\n  employeeDetails: any;\n  commentData: any;\n  searchtext: string;\n  isDesc: boolean = false;\n  column = \"\";\n  direction: number;\n  arrow = true;\n  p: number = 1;\n  rowsOnPage = 10;\n  rowsOnPageSet = [];\n  rowCount: any;\n  dynamicRows = 10;\n  processPaging = false;\n  description = \"\";\n  descriptionList = [];\n  mainData = [];\n  saveFilter = [];\n  CompanyID: string;\n  isDisable = false;\n  disableSearch = false;\n  wrng: string;\n  teamData: any;\n  TeamID: any;\n  filterData: any;\n  companyName: string;\n  headerDate = new Date();\n  tempTeam = [];\n  TeamName: string;\n  EmployeeID: string;\n  employeeData: any;\n  copyDate: number;\n  constructor(private dorseyService: DorseyService, private storage: LocalStorageService) { }\n\n  ngOnInit() {\n    this.CompanyID = this.storage.retrieve('companyID');\n    this.companyName = this.storage.retrieve('LoginCompanyName');\n    this.TeamID = this.storage.retrieve('TeamID');\n    this.EmployeeID = this.storage.retrieve('EmployeeID');\n    this.employeeDetails = this.storage.retrieve('employeeDetails');\n    this.GetCommentsOnFrustration();\n    this.GetTeam();\n    if (this.employeeDetails) {\n      this.EmployeeID = this.employeeDetails.EmployeeID;\n      this.TeamID = this.employeeDetails.TeamID;\n    }\n    else {\n      this.EmployeeID = '0';\n      this.TeamID = 0;\n    }\n    this.copyDate = (new Date()).getFullYear();\n  }\n\n  GetSelectedReport(event) {\n    this.searchtext = '';\n    this.TeamID = event.value;\n    let teamd = this.teamData.filter(x => x.TeamID === this.TeamID)\n    if (teamd.length > 0) {\n      this.TeamName = teamd[0].TeamName;\n    }\n    this.ConstructReport();\n  }\n\n  GetTeam() {\n    this.TeamName = '';\n    this.dorseyService.GetTeam(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.dorseyService.GetCommentsOnFrustration(this.CompanyID).subscribe(subDat1 => {\n        subDat1 = JSON.parse(subDat1['_body']);\n        this.commentData = subDat1;\n        this.teamData = subData;\n        if (this.employeeDetails) {\n          if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n            this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n          }\n          else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n            this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID);\n            this.TeamID = this.teamData[0].TeamID;\n            this.TeamName = this.teamData[0].TeamName;\n          }\n        }\n        if (this.TeamID == 0) {\n          this.teamData = this.teamData.filter(entity1 => this.commentData.find(entity2 => entity1.TeamID == entity2.TeamID));\n        }\n        if (this.teamData.length > 0 && !this.TeamID) { this.teamData.splice(0, 0, { TeamID: 0, TeamName: 'Aggregate Report' }); }\n        this.ConstructReport();\n      });\n    });\n  }\n\n  ConstructReport() {\n    this.mainData = [];\n    if (this.TeamID == 0)\n      this.filterData = this.commentData.filter(entity1 => this.teamData.find(entity2 => entity1.TeamID == entity2.TeamID));\n    else {\n      this.filterData = this.commentData.filter(entity1 => entity1.TeamID == this.TeamID);\n    }\n    if (this.filterData) {\n      for (let i = 0; i < this.filterData.length; i++) {\n        this.description = '';\n        this.descriptionList = [];\n        if (this.filterData[i].Comment !== null) {\n\n          this.description = this.filterData[i].Comment.split(\",\");\n          if (this.description.toString().trim() != '') {\n            for (let j = 0; j < this.description.length; j++) {\n\n              if (this.description[j].toString().trim() !== '') {\n                this.descriptionList.push(this.description[j]);\n              }\n            }\n          }\n        }\n        if (this.descriptionList.toString() !== '') {\n\n          this.mainData.push({\n            'comment': this.descriptionList,\n            'name': this.filterData[i].FrustrationsTypeName,\n            'TeamID': this.filterData[i].TeamID,\n            'TeamName': this.filterData[i].TeamName\n          });\n        }\n      }\n    }\n    else {\n      this.processPaging = false;\n      this.isDisable = true;\n      this.disableSearch = true;\n      this.wrng = \"No data available\";\n      return;\n    }\n    this.saveFilter = this.mainData;\n    if (this.mainData.length === 0) {\n      this.processPaging = false;\n      this.isDisable = true;\n      this.disableSearch = true;\n      this.wrng = \"No data available\";\n    }\n    else {\n      this.rowCount = this.mainData.length;\n      this.processPaging = true;\n      this.isDisable = false;\n      this.disableSearch = false;\n      this.dynamicRows = 10;\n      this.rowsOnPageSet = [];\n      while (this.dynamicRows < this.rowCount) {\n        this.rowsOnPageSet.push(this.dynamicRows);\n        this.dynamicRows = this.dynamicRows + 10;\n      }\n      if (!this.rowsOnPageSet.includes(this.rowCount)) this.rowsOnPageSet.push(this.rowCount);\n      if (this.rowsOnPageSet.length > 0) {\n        if (this.rowsOnPageSet[0] <= 10)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n    }\n  }\n\n  GetCommentsOnFrustration() {\n    this.mainData = [];\n    this.descriptionList = [];\n    this.dorseyService.GetCommentsOnFrustration(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.commentData = subData;\n    });\n  }\n\n\n  Searchtext() {\n    this.mainData = JSON.parse(JSON.stringify(this.saveFilter));\n    let tempComment = this.mainData.filter(\n      (item) => {\n        return (\n          (item.name != null && item.name.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.TeamName != null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.comment != null && (item.comment.filter(\n            (da) => {\n              return (\n                da != null && da.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1\n              )\n            }\n          )\n          )\n          ).length\n        )\n      });\n    this.mainData = tempComment;\n    if (this.mainData.length == 0) {\n      this.wrng = \"No data available\";\n      this.isDisable = true;\n      return;\n    } else {\n      this.isDisable = false;\n    }\n    if (this.searchtext === '') {\n      this.mainData = this.saveFilter;\n      this.dynamicRows = 10;\n      this.rowsOnPageSet = [];\n      this.rowCount = this.mainData.length;\n      while (this.dynamicRows < this.rowCount) {\n        this.rowsOnPageSet.push(this.dynamicRows);\n        this.dynamicRows = this.dynamicRows + 10;\n      }\n      if (!this.rowsOnPageSet.includes(this.rowCount))\n        this.rowsOnPageSet.push(this.rowCount);\n      if (this.rowsOnPageSet) {\n\n        this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n      this.isDisable = false;\n    } else {\n      this.rowCount = tempComment.length;\n      this.dynamicRows = 10;\n      this.rowsOnPageSet = [];\n      while (this.dynamicRows < this.rowCount) {\n        this.rowsOnPageSet.push(this.dynamicRows);\n        this.dynamicRows = this.dynamicRows + 10;\n      }\n      if (!this.rowsOnPageSet.includes(this.rowCount)) {\n        this.rowsOnPageSet.push(this.rowCount);\n        if (this.rowsOnPageSet)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n\n      if (this.rowsOnPageSet.length === 1) {\n        if (this.rowsOnPageSet[0] <= 10)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n    }\n  }\n\n\n  sort(property) {\n    this.arrow = !this.arrow;\n    this.isDesc = !this.isDesc; //change the direction    \n    this.column = property;\n    this.direction = this.isDesc ? 1 : -1;\n  }\n  exportAsXLSX() {\n    let allData = JSON.parse(JSON.stringify(this.mainData));\n    for (let i = 0; i < allData.length; i++) {\n      allData[i][\" No. \"] = i + 1;\n      allData[i].Team = allData[i].TeamName;\n      allData[i].Frustration = allData[i].name;\n      let comment = '';\n      let Data = allData[i].comment;\n      for (let i = 0; i < Data.length; i++) {\n        comment = comment + Data[i] + '\\n';\n      }\n      allData[i].Comment = comment;\n      delete allData[i].name;\n      delete allData[i].comment;\n      delete allData[i].TeamName;\n      delete allData[i].TeamID;\n    }\n    let name: any;\n    if (this.TeamName) {\n      name = this.TeamName;\n    }\n    else {\n      name = \"Aggregate Report\";\n    }\n    this.dorseyService.generateExcel(allData, this.companyName + '_Comments on frustrations' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Comments on frustrations', \"Company: \" + this.companyName, \"Team: \" + name, \"Comments on frustrations Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n  }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n  selector: 'app-frustration-reports',\n  templateUrl: './frustration-reports.component.html',\n  // styleUrls: ['./frustration-reports.component.scss']\n})\nexport class FrustrationReportsComponent implements OnInit {\n  copyRight: string = copyRight;\n  FrustNoProcessData: any\n  searchtext: string;\n  isDesc: boolean = false;\n  column = \"\";\n  direction: number;\n  arrow = true;\n  p: number = 1;\n  rowsOnPage = 10;\n  rowsOnPageSet = [];\n  rowCount: any;\n  dynamicRows = 10;\n  processPaging = false;\n  saveFilter = [];\n  CompanyID: string;\n  isDisable = false;\n  disableSearch = false;\n  UserTeamID: string;\n  teamData: any;\n  TeamID: any;\n  filterData = [];\n  EmployeeID: string;\n  pointerData: any;\n  tempTeam = [];\n  TeamName: string;\n  companyName: string;\n  headerDate = new Date();\n  employeeData: any;\n  copyDate: number;\n  employeeDetails: any;\n  constructor(public dorseyService: DorseyService, private storage: LocalStorageService) {\n    this.EmployeeID = this.storage.retrieve('EmployeeID');\n    this.companyName = this.storage.retrieve('LoginCompanyName');\n    this.employeeDetails = this.storage.retrieve('employeeDetails');\n    if (this.EmployeeID.toString() === \"0\") {\n\n    }\n    else {\n      this.TeamID = this.storage.retrieve('TeamID');\n    }\n  }\n\n  ngOnInit() {\n    this.TeamID = this.storage.retrieve('TeamID');\n    this.CompanyID = this.storage.retrieve('companyID');\n    this.GetFrustNoProcess();\n    this.GetTeam();\n    this.copyDate = (new Date()).getFullYear();\n    if (this.employeeDetails) {\n      this.EmployeeID = this.employeeDetails.EmployeeID;\n      this.TeamID = this.employeeDetails.TeamID;\n    }\n    else {\n      this.EmployeeID = '0';\n      this.TeamID = 0;\n    }\n  }\n\n  GetSelectedReport(event) {\n    this.searchtext = '';\n    this.TeamID = event.value;\n    let teamd = this.teamData.filter(x => x.TeamID === this.TeamID)\n    if (teamd.length > 0) {\n      this.TeamName = teamd[0].TeamName;\n    }\n    this.ConstructReport();\n  }\n\n  GetTeam() {\n\n    this.TeamName = '';\n    this.dorseyService.GetTeam(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n\n      this.dorseyService.GetFrustNoProcess(this.CompanyID).subscribe(subDat1 => {\n        subDat1 = JSON.parse(subDat1['_body']);\n        this.FrustNoProcessData = subDat1;\n        this.teamData = subData;\n\n        if (this.employeeDetails) {\n          if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n            this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n\n          }\n          else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n            this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID);\n            this.TeamID = this.teamData[0].TeamID;\n            this.TeamName = this.teamData[0].TeamName;\n          }\n        }\n        if (this.TeamID == 0) {\n          this.teamData = this.teamData.filter(entity1 => this.FrustNoProcessData.find(entity2 => entity1.TeamID == entity2.TeamID));\n        }\n        if (this.teamData.length > 0 && !this.TeamID) { this.teamData.splice(0, 0, { TeamID: 0, TeamName: 'Aggregate Report' }); }\n        this.ConstructReport();\n      });\n    });\n  }\n  ConstructReport() {\n\n    this.filterData = [];\n    this.dorseyService.GetFrustNoProcess(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.FrustNoProcessData = subData;\n      if (this.TeamID == 0)\n        this.filterData = this.FrustNoProcessData.filter(entity1 => this.teamData.find(entity2 => entity1.TeamID == entity2.TeamID));\n      else {\n        this.filterData = this.FrustNoProcessData.filter(entity1 => entity1.TeamID == this.TeamID);\n      }\n\n      if (this.filterData.length === 0) {\n        this.processPaging = false;\n        this.isDisable = true;\n        this.disableSearch = true;\n      }\n      else {\n        this.processPaging = true;\n        this.isDisable = false;\n        this.disableSearch = false;\n        this.dynamicRows = 10;\n        this.rowsOnPageSet = [];\n        this.saveFilter = JSON.parse(JSON.stringify(this.filterData));\n\n        this.rowCount = this.filterData.length;\n        while (this.dynamicRows < this.rowCount) {\n          this.rowsOnPageSet.push(this.dynamicRows);\n          this.dynamicRows = this.dynamicRows + 10;\n        }\n        if (!this.rowsOnPageSet.includes(this.rowCount))\n          this.rowsOnPageSet.push(this.rowCount);\n        if (this.rowsOnPageSet.length > 0) {\n          if (this.rowsOnPageSet[0] <= 10)\n            this.rowsOnPage = this.rowsOnPageSet[0];\n        }\n      }\n    });\n  }\n  GetFrustNoProcess() {\n\n    this.dorseyService.GetFrustNoProcess(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.FrustNoProcessData = subData;\n\n    });\n  }\n\n  Searchtext() {\n    this.filterData = this.saveFilter;\n    let tempFrustrationProcess = this.filterData.filter(\n      (item) => {\n        return (\n          (item.ProcessName !== null && item.ProcessName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.CompanyName !== null && item.CompanyName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.ProcessDescription !== null && item.ProcessDescription.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n        );\n      }\n\n    );\n    this.filterData = tempFrustrationProcess;\n    if (this.filterData.length == 0) {\n      // this.GetActivity();\n      this.isDisable = true;\n    } else {\n      this.isDisable = false;\n    }\n    if (this.searchtext === '') {\n      //this.GetFrustNoProcess();\n      this.filterData = this.saveFilter;\n      this.dynamicRows = 10;\n      this.rowsOnPageSet = [];\n      this.rowCount = this.filterData.length;\n      while (this.dynamicRows < this.rowCount) {\n        this.rowsOnPageSet.push(this.dynamicRows);\n        this.dynamicRows = this.dynamicRows + 10;\n      }\n      if (!this.rowsOnPageSet.includes(this.rowCount))\n        this.rowsOnPageSet.push(this.rowCount);\n      if (this.rowsOnPageSet) {\n\n        this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n      this.isDisable = false;\n    } else {\n\n      this.rowCount = tempFrustrationProcess.length;\n      this.dynamicRows = 10;\n      this.rowsOnPageSet = [];\n      while (this.dynamicRows < this.rowCount) {\n        this.rowsOnPageSet.push(this.dynamicRows);\n        this.dynamicRows = this.dynamicRows + 10;\n      }\n      if (!this.rowsOnPageSet.includes(this.rowCount)) {\n        this.rowsOnPageSet.push(this.rowCount);\n        if (this.rowsOnPageSet)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n\n      if (this.rowsOnPageSet.length === 1) {\n        if (this.rowsOnPageSet[0] <= 10)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n    }\n  }\n\n\n  exportAsXLSX() {\n    let allData = JSON.parse(JSON.stringify(this.filterData));\n\n    for (let i = 0; i < allData.length; i++) {\n      allData[i][\" No. \"] = i + 1;\n      allData[i].Company = allData[i].CompanyName;\n      allData[i].Team = allData[i].TeamName;\n      allData[i].Process = allData[i].ProcessName;\n      allData[i].Description = allData[i].ProcessDescription;\n\n      delete (allData[i].ProcessID);\n      delete (allData[i].CompanyName);\n      delete (allData[i].ProcessName);\n      delete (allData[i].ActivityName);\n      delete (allData[i].ProcessDescription);\n      delete (allData[i].TeamName);\n      delete (allData[i].TeamID);\n\n\n    }\n    let name: any;\n    if (this.TeamName) {\n      name = this.TeamName;\n    }\n    else {\n      name = \"Aggregate Report\";\n    }\n\n\n    this.dorseyService.generateExcel(allData, this.companyName + '_Process with no frustrations' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Process with no frustrations', \"Company: \" + this.companyName, \"Team: \" + name, \"Process with no frustrations Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n  }\n\n  sort(property) {\n    this.arrow = !this.arrow;\n    this.isDesc = !this.isDesc; //change the direction    \n    this.column = property;\n    this.direction = this.isDesc ? 1 : -1;\n  }\n\n\n}\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { DorseyService } from '../dorsey.service';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n  selector: 'app-frustrationstype',\n  templateUrl: './frustrationstype.component.html',\n})\nexport class FrustrationstypeComponent implements OnInit {\n  FrustrationsDescription: string;\n  frustTypeData: any;\n  isDisable = false;\n  disableSearch = false;\n  frustPaging = false;\n  p: number = 1;\n  rowsOnPage = 10;\n  rowsOnPageSet = [];\n  rowCount: any;\n  dynamicRows = 10;\n  isDesc: boolean = false;\n  searchtext: string = '';\n  saveFilter = [];\n  FrustrationsTypeName: any;\n  FrustrationsTypeID: any;\n  condition = false;\n  currentUser: string;\n  CompanyID: string;\n  pointerData: any;\n  dataSelf: string;\n  column = \"\";\n  direction: number;\n  arrow = true;\n  menuData: any;\n  menuID: string;\n  menuName: string;\n  empID: string;\n  MenuPermissions: any;\n  loginCompanyName: any;\n  userTeamID: any;\n  TeamName: string;\n  teamData: any;\n  userRoleAssignmentData: any;\n  rolesData: any;\n  UserID: any;\n  EmpROleID: any;\n  inUse = false;\n  constructor(private dorseyService: DorseyService, public dialog: MatDialog, public storage: LocalStorageService) {\n    this.currentUser = this.storage.retrieve('user');\n    this.menuData = this.storage.retrieve('menuData');\n    this.empID = this.storage.retrieve('EmployeeID');\n    this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n    this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n    this.userTeamID = this.storage.retrieve(\"TeamID\");\n    this.UserID = this.storage.retrieve('UserID');\n    this.EmpROleID = this.storage.retrieve('EmpRoleID');\n\n  }\n\n  ngOnInit() {\n    this.CompanyID = this.storage.retrieve('companyID');\n    this.GetFrustrationType();\n    this.GetUserRoleAssignment();\n    let tempdata = this.menuData;\n    this.menuData = tempdata.filter(x => x.MenuName.toString() === 'FrustrationsType');\n    if (this.menuData.length > 0) {\n      this.menuName = this.menuData[0][\"MenuName\"];\n      this.menuID = this.menuData[0][\"MenuID\"];\n    }\n    this.getTeam();\n\n  }\n  GetUserRoleAssignment() {\n    this.dorseyService.GetUserRoleAssignment().subscribe(userRoles => {\n      this.userRoleAssignmentData = JSON.parse(userRoles['_body']);\n      this.dorseyService.GetRoles(this.CompanyID).subscribe(users => {\n        this.rolesData = JSON.parse(users['_body']);\n        if (this.empID.toString() !== '0') {\n          let roles = this.userRoleAssignmentData.filter(x => x.UserID === this.UserID);\n          if (roles.length > 0) {\n            this.EmpROleID = roles[0].RoleID;\n            let roleData = this.rolesData.filter(x => x.RoleID === this.EmpROleID);\n            if (roleData.length > 0) {\n              this.MenuPermissions = JSON.parse(roleData[0].MenuJson);\n            }\n\n          }\n        }\n      });\n    });\n  }\n\n  sort(property) {\n    this.arrow = !this.arrow;\n    this.isDesc = !this.isDesc; //change the direction\n    this.column = property;\n    this.direction = this.isDesc ? 1 : -1;\n  }\n\n  GetFrustrationType() {\n    this.frustTypeData = [];\n    this.dorseyService.GetFrustrationType(\"1\", this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.frustTypeData = subData;\n      this.rowCount = this.frustTypeData.length;\n      if (this.frustTypeData.length === 0) {\n        this.frustPaging = false;\n        this.isDisable = true;\n        this.disableSearch = true;\n      }\n      else {\n        this.saveFilter = JSON.parse(JSON.stringify(this.frustTypeData));\n        this.frustPaging = true;\n        this.isDisable = false;\n        this.disableSearch = false;\n\n        this.dynamicRows = 10;\n        this.rowsOnPageSet = [];\n\n        while (this.dynamicRows < this.rowCount) {\n          this.rowsOnPageSet.push(this.dynamicRows);\n          this.dynamicRows = this.dynamicRows + 10;\n        }\n        if (!this.rowsOnPageSet.includes(this.rowCount))\n          this.rowsOnPageSet.push(this.rowCount);\n        if (this.rowsOnPageSet.length === 1) {\n          if (this.rowsOnPageSet[0] <= 10)\n            this.rowsOnPage = this.rowsOnPageSet[0];\n        }\n      }\n    });\n\n\n  }\n\n  Searchtext() {\n    this.frustTypeData = this.saveFilter;\n    let tempFrustType = this.frustTypeData.filter(\n      (item) => {\n        return (\n          (item.FrustrationsTypeName !== null && item.FrustrationsTypeName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.FrustrationsDescription !== null && item.FrustrationsDescription.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n\n        );\n      }\n    );\n    this.frustTypeData = tempFrustType;\n    if (this.frustTypeData.length == 0) {\n      this.isDisable = true;\n    } else {\n      this.isDisable = false;\n    }\n    if (this.searchtext === '') {\n      this.frustTypeData = this.saveFilter;\n      this.dynamicRows = 10;\n      this.rowsOnPageSet = [];\n      this.rowCount = this.frustTypeData.length;\n      while (this.dynamicRows < this.rowCount) {\n        this.rowsOnPageSet.push(this.dynamicRows);\n        this.dynamicRows = this.dynamicRows + 10;\n      }\n      if (!this.rowsOnPageSet.includes(this.rowCount))\n        this.rowsOnPageSet.push(this.rowCount);\n      if (this.rowsOnPageSet) {\n\n        this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n      this.isDisable = false;\n    } else {\n\n      this.rowCount = tempFrustType.length;\n      this.dynamicRows = 10;\n      this.rowsOnPageSet = [];\n      while (this.dynamicRows < this.rowCount) {\n        this.rowsOnPageSet.push(this.dynamicRows);\n        this.dynamicRows = this.dynamicRows + 10;\n      }\n      if (!this.rowsOnPageSet.includes(this.rowCount)) {\n        this.rowsOnPageSet.push(this.rowCount);\n        if (this.rowsOnPageSet)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n\n      if (this.rowsOnPageSet.length === 1) {\n        if (this.rowsOnPageSet[0] <= 10)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n    }\n  }\n\n\n\n  exportAsXLSX() {\n    let allData = JSON.parse(JSON.stringify(this.frustTypeData));\n    for (let i = 0; i < allData.length; i++) {\n      allData[i][\"Frustration Types\"] = allData[i].FrustrationsTypeName;\n      allData[i][\"Description\"] = allData[i].FrustrationsDescription;\n      delete (allData[i].FrustrationsTypeID);\n      delete (allData[i].FrustrationsTypeName\n      );\n      delete (allData[i].FrustrationsDescription);\n      delete (allData[i].CreatedDate);\n\n      delete (allData[i].CreatedBy);\n      delete (allData[i].UpdatedDate);\n      delete (allData[i].UpdatedBy);\n      delete (allData[i].IsActive);\n\n      delete (allData[i].Process);\n      delete (allData[i].PointerTypeID);\n      delete (allData[i].CompanyID);\n      delete (allData[i].VersionID);\n    }\n\n    this.dorseyService.generateExcel(allData, this.loginCompanyName + '_frustration Types' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Frustration Types', \"Company: \" + this.loginCompanyName, '', \"Frustration Types Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n  }\n\n  getTeam() {\n    this.TeamName = '';\n    this.dorseyService.GetTeam(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.teamData = subData;\n      let tempData = this.teamData.filter(x => x.TeamID === this.userTeamID);\n      if (tempData.length > 0) {\n        this.TeamName = tempData[0].TeamName;\n      }\n    });\n  }\n\n  OpenFrustType() {\n    this.dialogCall('new');\n  }\n\n  dialogCall(msg: string) {\n    const dialogRef = this.dialog.open(FrustTypeDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: msg + 'æææ' + false,\n    });\n    dialogRef.componentInstance.currentUser = this.currentUser;\n    dialogRef.componentInstance.frustTypeData = this.frustTypeData;\n    dialogRef.componentInstance.CompanyID = this.CompanyID;\n    if (msg === 'new') {\n      this.searchtext = '';\n      this.GetFrustrationType();\n    }\n    if (msg === 'edit') {\n\n      dialogRef.componentInstance.FrustrationsTypeName = this.FrustrationsTypeName;\n      dialogRef.componentInstance.FrustrationsTypeID = this.FrustrationsTypeID;\n      dialogRef.componentInstance.FrustrationsDescription = this.FrustrationsDescription;\n      dialogRef.componentInstance.inUse = this.inUse;\n\n    }\n\n    dialogRef.afterClosed().subscribe(result => {\n\n      if (this.searchtext !== '' && this.searchtext !== undefined) {\n        this.Searchtext();\n      }\n      else {\n        this.GetFrustrationType();\n      }\n\n      if (result.toString() === 'true') {\n\n        let statusMsg = '';\n        if (msg === 'new') {\n          statusMsg = 'Saved successfully';\n        }\n        else {\n\n          statusMsg = 'Updated successfully';\n        }\n        this.GetFrustrationType();\n\n        const dialogRefsub = this.dialog.open(FrustTypeDialogComponent, {\n          panelClass: 'custom-dialog-container',\n          data: statusMsg + 'æææ' + false,\n          //  width: '30%'\n        });\n\n        setTimeout(() => {\n          this.GetFrustrationType();\n        }, 500);\n        dialogRefsub.afterClosed().subscribe(result1 => {\n          this.dynamicRows = 10;\n          //  this.rowsOnPageSet=[];\n\n          if (this.searchtext !== '') {\n            this.Searchtext();\n          }\n          else {\n            this.GetFrustrationType();\n          }\n\n\n        });\n\n\n\n      }\n\n    });\n  }\n\n  EditFrustType(element) {\n\n    this.FrustrationsTypeID = element.FrustrationsTypeID;\n\n    this.FrustrationsTypeName = element.FrustrationsTypeName;\n    this.storage.store('FTName', this.FrustrationsTypeName);\n    this.FrustrationsDescription = element.FrustrationsDescription;\n\n    this.GetPointer();\n    let issueCount = 0;\n    setTimeout(() => {\n\n      for (let i = 0; i < this.pointerData.length; i++) {\n\n        if (this.FrustrationsTypeID == this.pointerData[i].FrustrationsTypeID) {\n          issueCount++;\n        }\n      }\n      if (!issueCount) {\n        this.inUse = false;\n        this.dialogCall('edit');\n\n      } else {\n        this.inUse = true;\n        this.dialogCall(\"edit\");\n      }\n    }, 500);\n    //this.dialogCall('edit');\n  }\n\n  GetPointer() {\n    this.pointerData = [];\n    this.dorseyService.GetPointer(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.pointerData = subData;\n    });\n  }\n\n  ifMaxRow() {\n\n    if (this.rowsOnPage == this.frustTypeData.length) {\n      this.rowsOnPage = this.rowsOnPage - 1;\n    }\n  }\n\n  DeleteFrustType(element) {\n    this.FrustrationsTypeID = element.FrustrationsTypeID;\n    this.GetPointer();\n    let issueCount = 0;\n    setTimeout(() => {\n\n      for (let i = 0; i < this.pointerData.length; i++) {\n\n        if (this.FrustrationsTypeID == this.pointerData[i].FrustrationsTypeID) {\n          issueCount++;\n        }\n      }\n\n      if (issueCount) {\n        this.dialogCall(\"This frustration type is in use\");\n      }\n      else {\n\n\n        const dialogRef = this.dialog.open(FrustTypeDialogComponent, {\n          panelClass: 'custom-dialog-container',\n          data: 'Are you sure you want to delete frustration type: ' + element.FrustrationsTypeName + '?æææ' + true,\n          // width: '40%'\n        });\n        //   this.condition = true;\n\n        dialogRef.afterClosed().subscribe(result => {\n          if (result) {\n\n            /// this.condition = true;\n\n            if (!issueCount) {\n              this.dorseyService.DeleteType(this.FrustrationsTypeID).subscribe(data => {\n\n                if (data.ok) {\n                  this.ifMaxRow();\n                  this.condition = true;\n                  this.dialogCall('Deleted successfully');\n                  this.frustTypeData = [];\n                  this.GetFrustrationType();\n                }\n                this.dynamicRows = 10;\n                this.rowsOnPageSet = [];\n\n\n              });\n            } else {\n              //this.dialogCall(\"This frustration type is in use\");\n            }\n\n\n\n          }\n        });\n      }\n    }, 1000);\n\n  }\n\n}\n\n\n@Component({\n  selector: 'app-dialog',\n  templateUrl: 'dialog.html',\n  // styleUrls: ['dialog.css'],\n  providers: [DorseyService]\n})\nexport class FrustTypeDialogComponent implements OnInit {\n  FrustrationsDescription: string;\n  condition = false;\n  dataSelf: string;\n  FrustrationsTypeName: string;\n  FrustrationsTypeID: string;\n  frustTypeData: any;\n  CompanyID: string;\n  currentUser: string;\n  TeamDescription: string;\n  processIDs = [];\n  inUse: boolean;\n  btnDisabled = false;\n  constructor(\n    public dialogRef: MatDialogRef<FrustTypeDialogComponent>,\n    @Inject(MAT_DIALOG_DATA) public data: any, public dorseyService: DorseyService, private storage: LocalStorageService) {\n    //  dialogRef.disableClose=true;\n    this.data = this.data.split('æææ');\n    if (this.data[1] === 'true') {\n      this.condition = true;\n    } else {\n      this.condition = false;\n    }\n    this.data = this.data[0];\n  }\n  ngOnInit() {\n\n\n\n  }\n  onYesClick() {\n    this.dialogRef.close(true);\n  }\n  onNoClick(): void {\n    this.dialogRef.close();\n  }\n  process(event) {\n    this.processIDs = event.value;\n  }\n  AddFrustType() {\n    this.btnDisabled = true;\n\n    setTimeout(() => {\n      this.btnDisabled = false;\n    }, 1000);\n    let count = 0;\n    const Editcount = 0;\n\n    if (this.FrustrationsTypeName == undefined ||\n      this.FrustrationsTypeName.trim() === '') {\n      this.dataSelf = 'Please enter mandatory(*) fields';\n      if (this.data === 'new') {\n      }\n      count++;\n    }\n\n    if (count === 0 && Editcount === 0) {\n      this.dataSelf = '';\n      if (this.data === 'new') {\n        this.Saving(this.data);\n      } else {\n        this.Saving(this.data);\n      }\n    } else {\n    }\n  }\n\n\n  GetFrustrationType() {\n    this.frustTypeData = [];\n    this.dorseyService.GetFrustrationType(\"1\", this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.frustTypeData = subData;\n\n    });\n  }\n  Saving(msg: string) {\n\n\n\n    const json = {\n\n      FrustrationsTypeName: this.FrustrationsTypeName,\n      CreatedBy: this.currentUser,\n      FrustrationsTypeID: this.FrustrationsTypeID,\n      CompanyID: this.CompanyID,\n      PointerTypeID: 1,\n      FrustrationsDescription: this.FrustrationsDescription\n\n    };\n    if (msg === 'new') {\n\n      for (let i = 0; i < this.frustTypeData.length; i++) {\n        if (this.FrustrationsTypeName.toLowerCase().trim() === this.frustTypeData[i].FrustrationsTypeName.toLowerCase().trim()) {\n\n          this.dataSelf = \"Frustration type already exists\";\n          return;\n          setTimeout(() => {\n            this.dataSelf = '';\n            return;\n          }, 2000);\n          //this.companyName = \"\";\n        }\n      }\n\n      this.dorseyService.SaveTypes(json, 'No').subscribe(data => {\n\n\n\n        if (data['_body'].toString() === 'true') {\n          this.dataSelf = 'Saved successfully';\n          this.GetFrustrationType();\n          //this.dialogRef.close(true);\n          this.FrustrationsTypeName = '';\n          setTimeout(() => {\n            this.dataSelf = '';\n          }, 2000);\n        } else {\n          this.dataSelf = 'Save failed';\n        }\n\n      });\n    } else {\n\n      for (let i = 0; i < this.frustTypeData.length; i++) {\n        if (this.FrustrationsTypeName.toLowerCase().trim() === this.frustTypeData[i].FrustrationsTypeName.toLowerCase().trim() && this.FrustrationsTypeName.toLowerCase().trim() !== this.storage.retrieve('FTName').toLowerCase().trim()) {\n\n          this.dataSelf = \"Frustration type already exists\";\n          return;\n          setTimeout(() => {\n            this.dataSelf = '';\n            return;\n          }, 2000);\n          //this.companyName = \"\";\n        }\n      }\n\n      this.dorseyService.SaveTypes(json, 'No').subscribe(data => {\n        if (data['_body'].toString() === 'true') {\n          this.dialogRef.close(true);\n        } else {\n          this.dataSelf = 'Updated successfully';\n        }\n      });\n    }\n  }\n  Clear() {\n    this.dialogRef.close(false);\n  }\n}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2dvYWxzL2dvYWxzLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { GoalService } from '../services/goal.service';\nimport { DorseyService } from '../dorsey.service';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n  selector: 'app-goals',\n  templateUrl: './goals.component.html',\n  styleUrls: ['./goals.component.scss']\n})\nexport class GoalsComponent implements OnInit {\n\n  GoalsList: any;\n  TempGoalsList: any;\n  GoalName: string;\n  GoalDescription: string;\n  GoalID: any;\n  isDisable = false;\n  disableSearch = false;\n  GoalPaging = false;\n  p: number = 1;\n  rowsOnPage = 10;\n  rowsOnPageSet = [];\n  rowCount: any;\n  dynamicRows = 10;\n  isDesc: boolean = false;\n  searchtext: string;\n  saveFilter = [];\n  condition = false;\n  currentUser: string;\n  CompanyID: string;\n  dataSelf: string;\n  column = \"\";\n  direction: number;\n  arrow = true;\n  menuData: any;\n  menuID: string;\n  menuName: string;\n  editGoalName: string;\n  empID: string;\n  MenuPermissions: any;\n  loginCompanyName: any;\n  userTeamID: any;\n  TeamName: string;\n  teamData: any;\n  userRoleAssignmentData: any;\n  rolesData: any;\n  UserID: any;\n  EmpROleID: any;\n  inUse = false;\n  metricData: any;\n  constructor(private dorseyService: DorseyService,\n    public dialog: MatDialog,\n    public storage: LocalStorageService,\n    private goalService: GoalService) {\n    this.currentUser = this.storage.retrieve('user');\n    this.menuData = this.storage.retrieve('menuData');\n    this.empID = this.storage.retrieve('EmployeeID');\n    this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n    this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n    this.userTeamID = this.storage.retrieve(\"TeamID\");\n    this.UserID = this.storage.retrieve('UserID');\n    this.EmpROleID = this.storage.retrieve('EmpRoleID');\n  }\n\n  ngOnInit(): void {\n    this.CompanyID = this.storage.retrieve('companyID');\n    this.menuData = this.menuData.filter(x => x.MenuName.toString() === 'Goals');\n    if (this.menuData.length > 0) {\n      this.menuName = this.menuData[0][\"MenuName\"];\n      this.menuID = this.menuData[0][\"MenuID\"];\n    }\n    this.getGoals();\n    this.getMetrics();\n  }\n\n  getMetrics(): void {\n    this.dorseyService.GetPointer(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.metricData = subData;\n      this.metricData = this.metricData.filter(x => x.PointerTypeID != null && x.PointerTypeID.toString() === \"2\");\n    });\n  }\n\n  sort(property) {\n    this.arrow = !this.arrow;\n    this.isDesc = !this.isDesc; //change the direction\n    this.column = property;\n    this.direction = this.isDesc ? 1 : -1;\n  }\n  /*\n  New Goal Modal open\n  */\n  NewGoal() {\n    this.dialogCall('new');\n  }\n  /*\nRetriving Company Goals\n*/\n  getGoals(): void {\n    this.rowsOnPage = 10;\n    this.goalService.getGoals(parseInt(this.CompanyID)).subscribe(resp => {\n      this.GoalsList = resp.Data;\n      this.TempGoalsList = this.GoalsList;\n      this.rowCount = this.GoalsList.length;\n      if (this.GoalsList.length === 0) {\n        this.GoalPaging = false;\n        this.isDisable = true;\n        this.disableSearch = true;\n      }\n      else {\n        this.saveFilter = this.GoalsList;\n        this.GoalPaging = true;\n        this.isDisable = false;\n        this.disableSearch = false;\n        this.GoalPagination(this.rowCount);\n      }\n    });\n\n\n  }\n  /*Set Pagination for goals */\n\n  GoalPagination(RowCount) {\n    this.dynamicRows = 10;\n    this.rowsOnPageSet = [];\n    this.rowsOnPage = 10;\n    this.rowCount = RowCount;\n    while (this.dynamicRows < this.rowCount) {\n      this.rowsOnPageSet.push(this.dynamicRows);\n      this.dynamicRows = this.dynamicRows + 10;\n    }\n    if (!this.rowsOnPageSet.includes(this.rowCount)) {\n      this.rowsOnPageSet.push(this.rowCount);\n      if (this.rowsOnPageSet.length === 1) {\n        if (this.rowsOnPageSet[0] <= 10)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n    }\n  }\n  /*\n  Search Goals data\n  */\n\n  searchText() {\n    this.GoalsList = this.saveFilter;\n    let tempListGoals = this.GoalsList.filter(\n      (item) => {\n        return (\n          (item.GoalName !== null && item.GoalName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.GoalDescription !== null && item.GoalDescription.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n\n        );\n      }\n    );\n    this.GoalsList = tempListGoals;\n    if (this.GoalsList.length == 0) {\n      this.isDisable = true;\n    } else {\n      this.isDisable = false;\n    }\n    if (this.searchtext === '') {\n      this.GoalsList = this.saveFilter;\n      this.rowCount = this.GoalsList.length;\n      this.isDisable = false;\n      this.GoalPagination(this.rowCount);\n    }\n    else {\n      this.rowCount = tempListGoals.length;\n      this.GoalPagination(this.rowCount);\n      if (this.rowsOnPageSet.length === 1) {\n        if (this.rowsOnPageSet[0] <= 10)\n\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n    }\n  }\n\n  /*\n  Dialog open\n  */\n  dialogCall(msg: string) {\n    const dialogRef = this.dialog.open(GoalDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: msg + 'æææ' + false,\n\n    });\n    dialogRef.componentInstance.currentUser = this.currentUser;\n    dialogRef.componentInstance.GoalsList = this.GoalsList;\n    dialogRef.componentInstance.CompanyID = this.CompanyID;\n    if (msg === 'new') {\n      this.searchtext = '';\n      this.GoalPagination(this.TempGoalsList.length);\n      this.GoalsList = this.TempGoalsList;\n    }\n    if (msg === 'edit') {\n      dialogRef.componentInstance.GoalName = this.GoalName;\n      dialogRef.componentInstance.GoalDescription = this.GoalDescription;\n      dialogRef.componentInstance.GoalID = this.GoalID;\n      dialogRef.componentInstance.editGoalName = this.editGoalName;\n    }\n\n    dialogRef.afterClosed().subscribe(result => {\n      if (this.searchtext !== '' && this.searchtext !== undefined) {\n        this.searchText();\n      }\n      else {\n        this.getGoals();\n      }\n      if (result.toString() === 'true') {\n        let statusMsg = '';\n        if (msg === 'new') {\n          statusMsg = 'Saved successfully';\n        }\n        else {\n          statusMsg = 'Updated successfully';\n        }\n        this.getGoals();\n        const dialogRefsub = this.dialog.open(GoalDialogComponent, {\n          panelClass: 'custom-dialog-container',\n          data: statusMsg + 'æææ' + false,\n          //  width: '30%'\n        });\n\n        setTimeout(() => {\n          this.getGoals();\n        }, 500);\n        dialogRefsub.afterClosed().subscribe(result1 => {\n          this.dynamicRows = 10;\n          if (this.searchtext !== '') {\n            this.searchText();\n          }\n          else {\n            this.getGoals();\n          }\n        });\n      }\n    });\n  }\n\n  /*\n  Edit goal\n  */\n  EditGoal(goalRow) {\n    this.GoalID = goalRow.GoalID;\n    this.GoalName = goalRow.GoalName;\n    this.GoalDescription = goalRow.GoalDescription;\n    this.editGoalName = goalRow.GoalName;\n    this.CompanyID = goalRow.CompanyID;\n    this.dialogCall('edit');\n  }\n\n  ifMaxRow() {\n    if (this.rowsOnPage == this.GoalsList.length) {\n      this.rowsOnPage = this.rowsOnPage - 1;\n    }\n  }\n\n  /*\n  Delete Goal\n  */\n  DeleteGoal(GoalRow: any) {\n    this.GoalID = GoalRow.GoalID;\n    const dialogRef = this.dialog.open(GoalDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: 'Are you sure you want to delete goal: ' + GoalRow.GoalName + '?æææ' + true,\n\n    });\n    dialogRef.afterClosed().subscribe(result => {\n      if (result) {\n        if (this.metricData && !this.metricData.find(ent => ent.GoalID == this.GoalID)) {\n          this.goalService.deleteGoal(this.GoalID).subscribe(resp => {\n            if (resp.Data == true) {\n              this.ifMaxRow();\n              this.condition = true;\n              this.dialogCall('Deleted successfully');\n              this.getGoals();\n            }\n          });\n        } else {\n          this.dialogCall(\"Delete Failed. This Goal is associated with Metrics\");\n        }\n      }\n    });\n  }\n\n  exportAsXLSX() {\n    let allData = JSON.parse(JSON.stringify(this.GoalsList));\n    for (let i = 0; i < allData.length; i++) {\n      allData[i][\"Goal Name\"] = allData[i].GoalName;\n      allData[i][\"Description\"] = allData[i].GoalDescription;\n      delete (allData[i].GoalID);\n      delete (allData[i].GoalName);\n      delete (allData[i].GoalDescription);\n      delete (allData[i].CreatedDate);\n      delete (allData[i].CreatedBy);\n      delete (allData[i].UpdatedDate);\n      delete (allData[i].UpdatedBy);\n      delete (allData[i].IsActive);\n      delete (allData[i].CompanyID);\n    }\n\n\n    this.dorseyService.generateExcel(allData, this.loginCompanyName + '_goals' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Goals', \"Company: \" + this.loginCompanyName, '', \"Goals Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n\n  }\n}\n\n@Component({\n  selector: 'app-dialog',\n  templateUrl: 'dialog.html',\n})\nexport class GoalDialogComponent implements OnInit {\n  GoalDescription: string;\n  condition = false;\n  dataSelf: string;\n  GoalName: string;\n  GoalID: string;\n  GoalsList: any = [];\n  CompanyID: string;\n  currentUser: string;\n\n  editGoalName: string;\n  constructor(\n    public dialogRef: MatDialogRef<GoalDialogComponent>,\n    @Inject(MAT_DIALOG_DATA) public data: any, private goalService: GoalService, private storage: LocalStorageService) {\n    this.data = this.data.split('æææ');\n    if (this.data[1] === 'true') {\n      this.condition = true;\n    } else {\n      this.condition = false;\n    }\n    this.data = this.data[0];\n  }\n\n  ngOnInit(): void {\n  }\n\n  onYesClick(): void {\n    this.dialogRef.close(true);\n  }\n\n  onNoClick(): void {\n    this.dialogRef.close();\n  }\n\n  ValidateGoal(): void {\n    this.dataSelf = '';\n    if (!this.GoalName.trim()) {\n      this.dataSelf = 'Please enter mandatory(*) fields';\n      return;\n    }\n    this.saveGoal(this.data);\n  }\n\n  saveGoal(msg: string): void {\n    const entity = {\n      GoalName: this.GoalName,\n      CreatedBy: this.currentUser,\n      GoalID: this.GoalID,\n      CompanyID: this.CompanyID,\n      UpdatedBy: this.currentUser,\n      GoalDescription: this.GoalDescription\n    };\n    if (msg === 'new') {\n      if (this.GoalsList.find(ent => ent.GoalName.toLowerCase().trim() === this.GoalName.toLowerCase().trim())) {\n        this.dataSelf = \"Goal name already exists\";\n        return;\n      }\n      this.goalService.saveGoal(entity).subscribe(resp => {\n        if (resp.Data === true) {\n          this.dataSelf = 'Saved successfully';\n          this.GoalName = '';\n          this.GoalDescription = '';\n          setTimeout(() => {\n            this.dataSelf = '';\n          }, 2000);\n        } else {\n          this.dataSelf = 'Save failed';\n        }\n      });\n    }\n    else {\n      if (this.editGoalName != this.GoalName)\n        if (this.GoalsList.find(ent => ent.GoalName.toLowerCase().trim() === this.GoalName.toLowerCase().trim())) {\n          this.dataSelf = \"Goal name already exists\";\n          return;\n        }\n      this.goalService.saveGoal(entity).subscribe(resp => {\n        if (resp.Data === true) {\n          this.dialogRef.close(true);\n        } else {\n          this.dataSelf = 'Updated successfully';\n        }\n      });\n    }\n  }\n\n  Clear(): void {\n    this.dialogRef.close(false);\n  }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n  selector: 'app-hipriority',\n  templateUrl: './hipriority.component.html',\n  //styleUrls: ['./hipriority.component.scss']\n})\nexport class HipriorityComponent implements OnInit {\n  copyRight: string = copyRight;\n  CompanyID: string;\n  projectData: any;\n  isDisable = false;\n  disableSearch = false;\n  saveFilter = [];\n  rowCount: any;\n  projectPaging = false;\n  searchtext: string;\n  p: number = 1;\n  rowsOnPage = 10;\n  rowsOnPageSet = [];\n  dynamicRows = 10;\n  companyName: string;\n  headerDate = new Date();\n  TeamName: string;\n  copyDate: number;\n  isDesc: boolean = false;\n  column = \"\";\n  direction: number;\n  arrow = true;\n  EmployeeID: string;\n  TeamID: string;\n  constructor(private dorsey: DorseyService, private storage: LocalStorageService) {\n    this.CompanyID = this.storage.retrieve('companyID');\n    this.companyName = this.storage.retrieve('LoginCompanyName');\n    this.EmployeeID = this.storage.retrieve('EmployeeID');\n    if (this.EmployeeID.toString() === \"0\") {\n\n    }\n    else {\n      this.TeamID = this.storage.retrieve('TeamID');\n    }\n\n  }\n\n  ngOnInit() {\n    this.GetProjects();\n    this.copyDate = (new Date()).getFullYear();\n  }\n  GetProjects() {\n    this.dorsey.GetProjects(this.CompanyID).subscribe(data => {\n      this.projectData = JSON.parse(data[\"_body\"]);\n      let tempProjectsData = this.projectData;\n      this.projectData = tempProjectsData.filter(x => x.StatusID === 2);\n      if (this.projectData.length === 0) {\n        this.projectPaging = false;\n        this.isDisable = true;\n        this.disableSearch = true;\n      }\n      else {\n        this.saveFilter = JSON.parse(JSON.stringify(this.projectData));\n        this.projectPaging = true;\n        this.isDisable = false;\n        this.disableSearch = false;\n        this.rowCount = this.projectData.length;\n        while (this.dynamicRows < this.rowCount) {\n          this.rowsOnPageSet.push(this.dynamicRows);\n          this.dynamicRows = this.dynamicRows + 10;\n        }\n        if (!this.rowsOnPageSet.includes(this.rowCount))\n          this.rowsOnPageSet.push(this.rowCount);\n        if (this.rowsOnPageSet.length === 1) {\n          if (this.rowsOnPageSet[0] <= 10)\n            this.rowsOnPage = this.rowsOnPageSet[0];\n        }\n\n      }\n    });\n  }\n\n  sort(property) {\n    this.arrow = !this.arrow;\n    this.isDesc = !this.isDesc; //change the direction\n    this.column = property;\n    this.direction = this.isDesc ? 1 : -1;\n  }\n\n  Searchtext() {\n    this.projectData = this.saveFilter;\n    let tempProjects = this.projectData.filter(\n      (item) => {\n        return (\n          (item.ProjectName !== null && item.ProjectName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.ProjectDescription !== null && item.ProjectDescription.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.ProjectStatusName !== null && item.ProjectStatusName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n          || (item.ProjectOwner !== null && item.ProjectOwner.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n        );\n      }\n    );\n    this.projectData = tempProjects;\n    if (this.projectData.length == 0) {\n      this.isDisable = true;\n    } else {\n      this.isDisable = false;\n    }\n    if (this.searchtext === '') {\n      this.projectData = this.saveFilter;\n      this.dynamicRows = 10;\n      this.rowsOnPageSet = [];\n      this.rowCount = this.projectData.length;\n      while (this.dynamicRows < this.rowCount) {\n        this.rowsOnPageSet.push(this.dynamicRows);\n        this.dynamicRows = this.dynamicRows + 10;\n      }\n      if (!this.rowsOnPageSet.includes(this.rowCount))\n        this.rowsOnPageSet.push(this.rowCount);\n      if (this.rowsOnPageSet) {\n\n        this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n      this.isDisable = false;\n    } else {\n      this.rowCount = tempProjects.length;\n      this.dynamicRows = 10;\n      this.rowsOnPageSet = [];\n      while (this.dynamicRows < this.rowCount) {\n        this.rowsOnPageSet.push(this.dynamicRows);\n        this.dynamicRows = this.dynamicRows + 10;\n      }\n      if (!this.rowsOnPageSet.includes(this.rowCount)) {\n        this.rowsOnPageSet.push(this.rowCount);\n        if (this.rowsOnPageSet)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n\n      if (this.rowsOnPageSet.length === 1) {\n        if (this.rowsOnPageSet[0] <= 10)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n    }\n  }\n\n\n  exportAsXLSX() {\n\n    let allData = JSON.parse(JSON.stringify(this.projectData));\n    for (let i = 0; i < allData.length; i++) {\n      allData[i][\" No. \"] = i + 1;\n      allData[i].Team = allData[i].TeamName;\n      allData[i].Project = allData[i].ProjectName;\n      allData[i].Description = allData[i].ProjectDescription;\n      allData[i].Status = allData[i].ProjectStatusName;\n      allData[i]['Project Owner'] = allData[i].ProjectOwner;\n      \n      delete (allData[i].DepartmentID);\n      delete (allData[i].ProjectName);\n      delete (allData[i].ProjectStatusName);\n      delete (allData[i].CompanyID);\n      delete (allData[i].ProjectDescription);\n      delete (allData[i].ProjectOwner);\n      delete (allData[i].TeamName);\n\n      delete (allData[i].ProjectID);\n      delete (allData[i].StatusID);\n      delete (allData[i].RowID);\n      delete (allData[i].ProjectStatusID);\n\n      delete (allData[i].IsActive);\n      delete (allData[i].EmployeeID);\n      delete (allData[i].CreatedDate);\n\n      delete (allData[i].CreatedBy);\n      delete (allData[i].UpdatedDate);\n      delete (allData[i].UpdatedBy);\n\n      delete (allData[i].StatusID1);\n      delete (allData[i].IsActive1);\n      delete (allData[i].CreatedDate1);\n\n      delete (allData[i].CreatedBy1);\n      delete (allData[i].UpdatedDate1);\n      delete (allData[i].UpdatedBy1);\n      delete (allData[i].ProjectStatusName1);\n      delete (allData[i].ProjectDueDate);\n\n      delete (allData[i].TeamID);\n      delete (allData[i].TeamID1);\n      delete (allData[i].ProcessID);\n      delete (allData[i].CompanyID1);\n      delete (allData[i].IsActive2);\n      delete (allData[i].CreatedDate2);\n      delete (allData[i].CreatedBy2);\n      delete (allData[i].UpdatedBy2);\n      delete (allData[i].UpdatedDate2);\n      delete (allData[i].TeamDescription);\n      delete (allData[i].TeamName1);\n    }\n    let team: any;\n    team = '';\n    /*if(this.EmployeeID.toString()==='0'){\n      team='';\n    }else{\n    if(this.TeamID.toString()==='0'|| this.TeamID.toString()===null || this.TeamID.toString()===undefined){\n      team='';\n    }else{\n      team= 'Team: '+this.TeamName;\n    }\n  }*/\n    this.dorsey.generateExcel(allData, this.companyName + '_Prioritized Projects' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Prioritized Projects', \"Company: \" + this.companyName, team, \"Prioritized Projects Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n  }\n\n}\n","export const AzureDetails = {\r\n    BaseURL: \"https://login.microsoftonline.com/\",\r\n    TenantId: \"9ee0e6d7-1d0a-423f-8648-15144ef85081\",\r\n    ClientId: '0bf259f0-2b2f-44cf-b74c-586d432fa378',\r\n    RedirectURL: \"https://sugarcreek.tdgdm.com/\",\r\n    scopeUri: ['https://graph.microsoft.com/v1.0/me',['user.Read']]\r\n  };\r\n\r\n\r\n","module.exports = \"\\r\\n@media only screen and (max-width: 600px) {\\r\\n    #changepassword{\\r\\n        width: 100%;\\r\\n    }\\r\\n  }\\r\\n  @media (max-width: 576px)\\r\\n{\\r\\n.closechngbtn {\\r\\n    color: #aaaaaa;\\r\\n    float: right;\\r\\n    font-size: 28px;\\r\\n    font-weight: bold;\\r\\n    cursor: pointer;\\r\\n    margin-right: 0px;\\r\\n    margin-top: -17px;\\r\\n    top: 0;\\r\\n    right: 0;\\r\\n}\\r\\n}\\r\\n  .closechngbtn {\\r\\n    color: #aaaaaa;\\r\\n    float: right;\\r\\n    font-size: 28px;\\r\\n    font-weight: bold;\\r\\n    cursor: pointer;\\r\\n    margin-right: 0px;\\r\\n    margin-top: -17px;\\r\\n    top: 0;\\r\\n    right: 0;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbG9naW4vZGlhbG9nLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSTtRQUNJLFdBQVc7SUFDZjtFQUNGO0VBQ0E7O0FBRUY7SUFDSSxjQUFjO0lBQ2QsWUFBWTtJQUNaLGVBQWU7SUFDZixpQkFBaUI7SUFDakIsZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixpQkFBaUI7SUFDakIsTUFBTTtJQUNOLFFBQVE7QUFDWjtBQUNBO0VBR0E7SUFDSSxjQUFjO0lBQ2QsWUFBWTtJQUNaLGVBQWU7SUFDZixpQkFBaUI7SUFDakIsZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixpQkFBaUI7SUFDakIsTUFBTTtJQUNOLFFBQVE7QUFDWiIsImZpbGUiOiJzcmMvYXBwL2xvZ2luL2RpYWxvZy5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xyXG4gICAgI2NoYW5nZXBhc3N3b3Jke1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gIH1cclxuICBAbWVkaWEgKG1heC13aWR0aDogNTc2cHgpXHJcbntcclxuLmNsb3NlY2huZ2J0biB7XHJcbiAgICBjb2xvcjogI2FhYWFhYTtcclxuICAgIGZsb2F0OiByaWdodDtcclxuICAgIGZvbnQtc2l6ZTogMjhweDtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAwcHg7XHJcbiAgICBtYXJnaW4tdG9wOiAtMTdweDtcclxuICAgIHRvcDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG59XHJcbn1cclxuXHJcblxyXG4uY2xvc2VjaG5nYnRuIHtcclxuICAgIGNvbG9yOiAjYWFhYWFhO1xyXG4gICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgZm9udC1zaXplOiAyOHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDBweDtcclxuICAgIG1hcmdpbi10b3A6IC0xN3B4O1xyXG4gICAgdG9wOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbn1cclxuIl19 */\"","module.exports = \".mat-list {\\n  padding: 0;\\n}\\n\\n#matSetup {\\n  margin-bottom: 35px;\\n}\\n\\n#matPM {\\n  margin-bottom: 25px;\\n}\\n\\n.setUpMenu {\\n  margin: 10px 0 15px 0;\\n}\\n\\n.mainMenu {\\n  margin-bottom: 15px;\\n}\\n\\n/*.subMenu{\\n  margin-bottom: 2px;\\n}*/\\n\\nmat-nav-list .menuStyle {\\n  height: 2.8rem;\\n  line-height: 2.8rem;\\n  margin-left: 10px;\\n}\\n\\nmat-nav-list .childMenu {\\n  height: 2.5rem;\\n  line-height: 2.5rem;\\n  margin-left: 10px;\\n}\\n\\nmat-nav-list .menuStyle {\\n  color: #dedede;\\n  background-color: #404040;\\n  font-family: \\\"Poppins\\\", sans-serif !important;\\n  font-size: 18px;\\n  cursor: pointer;\\n}\\n\\n.subMenu {\\n  color: #dedede;\\n  background-color: #2b2b2b;\\n  font-family: \\\"Poppins\\\", sans-serif !important;\\n  font-size: 14.3px;\\n  cursor: pointer;\\n}\\n\\nmat-nav-list .menuStyle:hover,\\nmat-nav-list .childMenu:hover {\\n  color: #2b2b2b !important;\\n  background-color: white !important;\\n}\\n\\nmat-nav-list .liactive .liactive1 {\\n  color: #2b2b2b !important;\\n  background-color: white !important;\\n}\\n\\nmat-nav-list .has-module:hover,\\nmat-nav-list .has-module:focus {\\n  background-color: #3775b5;\\n  color: #2b2b2b !important;\\n}\\n\\nmat-nav-list .has-module .liactive {\\n  margin-left: 10px;\\n}\\n\\n.muted {\\n  background: #7386D5;\\n}\\n\\n.muted:hover {\\n  background: #3f51b5;\\n}\\n\\n.card {\\n  height: 100%;\\n  text-align: center;\\n  vertical-align: middle;\\n}\\n\\n/* app drawer breakpoint */\\n\\nmat-sidenav-container {\\n  height: 100%;\\n  width: 100%;\\n}\\n\\nmat-drawer {\\n  width: 15%;\\n}\\n\\nmat-sidenav {\\n  overflow: unset !important;\\n}\\n\\n.mat-drawer-inner-container, .mat-drawer-content {\\n  overflow: hidden !important;\\n}\\n\\n.menuPane {\\n  height: 80%;\\n  overflow-y: auto;\\n  scrollbar-width: thin;\\n}\\n\\n.menuPane::-webkit-scrollbar {\\n  width: 8px;\\n}\\n\\n/* Track */\\n\\n.menuPane::-webkit-scrollbar-track {\\n  background: white;\\n  border-radius: 1px;\\n  margin: 0;\\n}\\n\\n/* Handle */\\n\\n.menuPane::-webkit-scrollbar-thumb {\\n  background: #888;\\n  padding: 2px;\\n  border-radius: 2.5px;\\n}\\n\\n/* Handle on hover */\\n\\n.menuPane::-webkit-scrollbar-thumb:hover {\\n  background: black;\\n}\\n\\n.sidebar-header {\\n  display: flex;\\n}\\n\\n.sidebar-header, .sidebar-header h3 {\\n  position: relative;\\n}\\n\\n.sidebar-header h3 {\\n  z-index: 0;\\n}\\n\\n/*.mat-drawer-backdrop.mat-drawer-shown{\\n  background-color: transparent !important;\\n}*/\\n\\n#collapseBtnOnSidenav {\\n  position: absolute;\\n  z-index: 1;\\n}\\n\\n@media (min-width: 1200px) {\\n  #collapseBtnOnSidenav {\\n    display: none;\\n  }\\n}\\n\\n.flexContainer {\\n  display: flex;\\n  height: 74px;\\n  align-items: center;\\n  justify-content: space-between;\\n}\\n\\n#wrapper {\\n  flex: 1;\\n}\\n\\nmat-sidenav #sidebar {\\n  width: 15%;\\n}\\n\\n#mainContent {\\n  display: flex;\\n  width: 100%;\\n  flex-direction: column;\\n}\\n\\n#flexWrapper1 {\\n  display: flex;\\n}\\n\\n#btnGroup1 {\\n  flex: 1;\\n  display: flex;\\n}\\n\\n#dmapp_Logo {\\n  flex: 2;\\n}\\n\\n#logo_img {\\n  padding-top: 2%;\\n  width: 170px;\\n}\\n\\n#companyName {\\n  flex: 1;\\n  word-break: normal;\\n  margin-top: 14px;\\n}\\n\\n#btnGroup2 {\\n  flex: 1;\\n  display: flex;\\n  justify-content: flex-end;\\n}\\n\\n/************************150% Zoom**********************/\\n\\n@media (max-width: 960px) {\\n  .flexContainer {\\n    height: 25%;\\n  }\\n}\\n\\n/***************************************/\\n\\n/*******************For Mobile view************************/\\n\\n@media (max-width: 576px) {\\n  .flexContainer {\\n    display: flex;\\n    flex-direction: column;\\n    width: 100%;\\n    height: 20%;\\n    align-items: center;\\n    justify-content: space-between;\\n  }\\n\\n  #wrapper {\\n    width: 100%;\\n  }\\n\\n  #flexWrapper1 {\\n    width: 100%;\\n    display: flex;\\n  }\\n\\n  #btnGroup1 {\\n    flex: 1;\\n    display: flex;\\n  }\\n\\n  #dmapp_Logo {\\n    flex: 2.2;\\n  }\\n\\n  #logo_img {\\n    padding-top: 2%;\\n    width: 170px;\\n  }\\n\\n  #companyName {\\n    width: 100%;\\n    margin: 2% 2%;\\n    text-align: center;\\n    word-break: break-all;\\n  }\\n\\n  .btnGroup2 {\\n    width: 100%;\\n  }\\n}\\n\\n/*******End mobile view******/\\n\\n/*.mat-sidenav {\\n  width: 360px;\\n}\\n.mat-sidenav-container {\\n  background-color: white !important;\\n  height: 100vh;\\n\\n  .mat-sidenav-content {\\n    display: flex;\\n    flex-direction: column;\\n  }\\n}\\n.sidenav-toolbar {\\n  height: 64px;\\n//   background-color: mat-color($app-primary);\\n  display: flex;\\n  flex-direction: row;\\n\\n  @media (max-width: 600px) {\\n    height: 56px;\\n  }\\n}\\n.mat-nav-list {\\n  padding-top: 0;\\n}*/\\n\\n@media (max-width: 600px) {\\n  .fixed-topnav {\\n    position: fixed;\\n    top: 0;\\n    left: 0;\\n    z-index: 2;\\n    width: 100% !important;\\n  }\\n\\n  .mat-drawer-container,\\n.mat-drawer {\\n    padding-top: 0;\\n  }\\n}\\n\\n.menu-list-item.mat-list-item .mat-list-item-content {\\n  flex: 1 1 100%;\\n}\\n\\n.version-info {\\n  font-size: 8pt;\\n  padding: 8px;\\n  align-self: flex-end;\\n}\\n\\nh1 {\\n  color: #333;\\n  font-family: arial, sans-serif;\\n  margin: 1em auto;\\n  width: 80%;\\n}\\n\\n.tabordion {\\n  color: #333;\\n  display: block;\\n  font-family: arial, sans-serif;\\n  margin: auto;\\n  position: relative;\\n  width: 80%;\\n}\\n\\n.tabordion input[name=sections] {\\n  left: -9999px;\\n  position: absolute;\\n  top: -9999px;\\n}\\n\\n.tabordion section {\\n  display: block;\\n}\\n\\n.tabordion section label {\\n  background: #ccc;\\n  border: 1px solid #fff;\\n  cursor: pointer;\\n  display: block;\\n  font-size: 1.2em;\\n  font-weight: bold;\\n  padding: 15px 20px;\\n  position: relative;\\n  width: 180px;\\n  z-index: 100;\\n}\\n\\n.tabordion section article {\\n  display: none;\\n  left: 230px;\\n  min-width: 300px;\\n  padding: 0 0 0 21px;\\n  position: absolute;\\n  top: 0;\\n}\\n\\n.tabordion section article:after {\\n  background-color: #ccc;\\n  bottom: 0;\\n  content: \\\"\\\";\\n  display: block;\\n  left: -229px;\\n  position: absolute;\\n  top: 0;\\n  width: 220px;\\n  z-index: 1;\\n}\\n\\n.tabordion input[name=sections]:checked + label {\\n  font-size: 16px;\\n}\\n\\n.tabordion input[name=sections]:checked ~ article {\\n  display: block;\\n  font-size: 16px;\\n  background: #eee;\\n  color: #000;\\n}\\n\\n@media (max-width: 533px) {\\n  h1 {\\n    width: 100%;\\n  }\\n\\n  .tabordion {\\n    width: 100%;\\n  }\\n\\n  .tabordion section label {\\n    font-size: 1em;\\n    width: 160px;\\n  }\\n\\n  .tabordion section article {\\n    left: 200px;\\n    min-width: 270px;\\n  }\\n\\n  .tabordion section article:after {\\n    background-color: #ccc;\\n    bottom: 0;\\n    content: \\\"\\\";\\n    display: block;\\n    left: -199px;\\n    position: absolute;\\n    top: 0;\\n    width: 200px;\\n  }\\n}\\n\\n@media print {\\n  .donotprintthis {\\n    display: none;\\n  }\\n}\\n\\n@media print {\\n  @page {\\n    size: auto;\\n    margin: 0mm;\\n  }\\n  a[href]:after {\\n    content: none !important;\\n  }\\n}\\n\\n@media print {\\n  #Header, #Footer {\\n    display: none !important;\\n  }\\n}\\n\\n@media screen {\\n  .donotprintthis {\\n    display: block;\\n  }\\n}\\n\\n.active {\\n  background-color: lightseagreen;\\n}\\n\\na {\\n  color: #dedede;\\n}\\n\\nli {\\n  list-style: none;\\n}\\n\\n.panel-default > .panel-heading {\\n  color: #dedede;\\n  background-color: #7386D5;\\n}\\n\\n.panel-group .panel + .panel {\\n  margin-top: 0px;\\n}\\n\\n.panel-group {\\n  margin-top: 35px;\\n}\\n\\n.panel-collapse {\\n  background-color: #2b2b2b;\\n}\\n\\n.glyphicon {\\n  margin-right: 10px;\\n}\\n\\nul.list-group {\\n  margin: 0px;\\n}\\n\\nul.bulletlist li {\\n  list-style: disc;\\n}\\n\\nul.list-group li a {\\n  display: block;\\n  padding: 5px 0px 5px 15px;\\n  text-decoration: none;\\n}\\n\\nul.list-group .has-module:hover {\\n  background-color: #3775b5;\\n  color: #2b2b2b !important;\\n}\\n\\n.liactive {\\n  color: #2b2b2b !important;\\n  background-color: white !important;\\n}\\n\\n.has-module {\\n  background-color: #3775b5;\\n  color: #2b2b2b !important;\\n}\\n\\n.panel-title a:hover,\\n.panel-title a:active,\\n.panel-title a:focus,\\n.panel-title .open a:hover,\\n.panel-title .open a:active,\\n.panel-title .open a:focus {\\n  text-decoration: none;\\n  color: #dedede;\\n}\\n\\n.panel-title > .small, .panel-title > .small > a, .panel-title > a, .panel-title > small, .panel-title > small > a {\\n  display: block;\\n}\\n\\n@media (min-width: 768px) {\\n  .navbar-collapse.collapse {\\n    display: block !important;\\n    height: auto !important;\\n    padding-bottom: 0;\\n    overflow: visible !important;\\n    padding-left: 0px;\\n  }\\n}\\n\\n@media (min-width: 992px) {\\n  .menu-hide {\\n    display: none;\\n  }\\n}\\n\\n.menu-hide .panel-default > .panel-heading {\\n  color: #dedede;\\n  background-color: #8e8c8c;\\n}\\n\\n/********** END SIDEBAR *************/\\n\\n/********** NAVBAR TOGGLE *************/\\n\\n.navbar-toggle .icon-bar {\\n  background-color: #fff;\\n}\\n\\n.navbar-toggle {\\n  padding: 11px 10px;\\n  margin-top: 8px;\\n  margin-right: 15px;\\n  margin-bottom: 8px;\\n  background-color: #a32638;\\n}\\n\\n#Rowcontainer {\\n  display: flex;\\n  margin: 0;\\n  margin-top: -10px;\\n  margin-bottom: -10px;\\n  padding: 0;\\n  justify-content: space-between;\\n}\\n\\n#Rowheading {\\n  flex: 1;\\n}\\n\\n#Rowwrapper {\\n  flex: 2;\\n}\\n\\n#RowtableActions {\\n  display: flex;\\n  justify-content: center;\\n}\\n\\n#field, #buttonview {\\n  margin: 2%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbG9naW4vRjpcXE5pa2lsIFdvcmtcXFByb2plY3RzXFxEb3JzZXlcXEhpZXJhcmNoeSBTb3VyY2UgQ29kZVxcV29ya2luZ1xcZG9yc2V5R3JvdXAvc3JjXFxhcHBcXGxvZ2luXFxsb2dpbi5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvbG9naW4vbG9naW4uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxVQUFBO0FDQ0Y7O0FERUE7RUFDRSxtQkFBQTtBQ0NGOztBREVBO0VBQ0UsbUJBQUE7QUNDRjs7QURFQTtFQUNFLHFCQUFBO0FDQ0Y7O0FERUE7RUFDRSxtQkFBQTtBQ0NGOztBREVBOztFQUFBOztBQUlBO0VBQ0UsY0FBQTtFQUNBLG1CQUFBO0VBQ0EsaUJBQUE7QUNBRjs7QURHQTtFQUNFLGNBQUE7RUFDQSxtQkFBQTtFQUNBLGlCQUFBO0FDQUY7O0FES0M7RUFDQyxjQUFBO0VBQ0MseUJBQUE7RUFDQSw2Q0FBQTtFQUNBLGVBQUE7RUFDQSxlQUFBO0FDRkg7O0FET0E7RUFDRSxjQUFBO0VBQ0EseUJBQUE7RUFDQSw2Q0FBQTtFQUNBLGlCQUFBO0VBQ0EsZUFBQTtBQ0pGOztBRGVBOztFQUVFLHlCQUFBO0VBQ0Usa0NBQUE7QUNaSjs7QURlQTtFQUVFLHlCQUFBO0VBQ0Esa0NBQUE7QUNiRjs7QURnQkE7O0VBRUUseUJBQUE7RUFDRSx5QkFBQTtBQ2JKOztBRGdCQTtFQUNFLGlCQUFBO0FDYkY7O0FEa0JBO0VBRUUsbUJBQUE7QUNoQkY7O0FEbUJBO0VBRUUsbUJBQUE7QUNqQkY7O0FEb0JBO0VBQ0ksWUFBQTtFQUNBLGtCQUFBO0VBQ0Esc0JBQUE7QUNqQko7O0FEc0JnQiwwQkFBQTs7QUF3QmhCO0VBQ0UsWUFBQTtFQUNBLFdBQUE7QUMxQ0Y7O0FENkNBO0VBQ0UsVUFBQTtBQzFDRjs7QUQ2Q0E7RUFDRSwwQkFBQTtBQzFDRjs7QUQ4Q0E7RUFFRSwyQkFBQTtBQzVDRjs7QUQrQ0M7RUFDRSxX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Y0FBQTtBQ2hGVjs7QURtRkU7RUFDQTtJQUVJLHlCQUFBO0lBQ0EsdUJBQUE7SUFDQSxpQkFBQTtJQUNBLDRCQUFBO0lBQ0YsaUJBQUE7RUNqRkY7QUFDRjs7QURvRkU7RUFDQTtJQUNJLGFBQUE7RUNsRko7QUFDRjs7QURxRkU7RUFDSSxjQUFBO0VBQ0EseUJBQUE7QUNuRk47O0FEdUZFLHFDQUFBOztBQUVBLHVDQUFBOztBQUVBO0VBQ0ksc0JBQUE7QUN0Rk47O0FEd0ZFO0VBQ0ksa0JBQUE7RUFDQSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtFQUNBLHlCQUFBO0FDckZOOztBRHlGRTtFQUNFLGFBQUE7RUFDQSxTQUFBO0VBQ0EsaUJBQUE7RUFDQSxvQkFBQTtFQUNBLFVBQUE7RUFDQSw4QkFBQTtBQ3RGSjs7QUQwRkE7RUFDSSxPQUFBO0FDdkZKOztBRHlGQTtFQUNBLE9BQUE7QUN0RkE7O0FEd0ZBO0VBQ0EsYUFBQTtFQUVBLHVCQUFBO0FDdEZBOztBRDBGQTtFQUNJLFVBQUE7QUN2RkoiLCJmaWxlIjoic3JjL2FwcC9sb2dpbi9sb2dpbi5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tYXQtbGlzdHtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG4jbWF0U2V0dXB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMzVweDtcclxufVxyXG5cclxuI21hdFBNe1xyXG4gIG1hcmdpbi1ib3R0b206IDI1cHg7XHJcbn1cclxuXHJcbi5zZXRVcE1lbnV7XHJcbiAgbWFyZ2luOiAxMHB4IDAgMTVweCAwO1xyXG59XHJcblxyXG4ubWFpbk1lbnV7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcclxufVxyXG5cclxuLyouc3ViTWVudXtcclxuICBtYXJnaW4tYm90dG9tOiAycHg7XHJcbn0qL1xyXG5cclxubWF0LW5hdi1saXN0IC5tZW51U3R5bGV7XHJcbiAgaGVpZ2h0OiAyLjhyZW07XHJcbiAgbGluZS1oZWlnaHQ6IDIuOHJlbTtcclxuICBtYXJnaW4tbGVmdDogMTBweDtcclxufVxyXG5cclxubWF0LW5hdi1saXN0IC5jaGlsZE1lbnV7XHJcbiAgaGVpZ2h0OiAyLjVyZW07XHJcbiAgbGluZS1oZWlnaHQ6IDIuNXJlbTtcclxuICBtYXJnaW4tbGVmdDogMTBweDtcclxufVxyXG5cclxuXHJcblxyXG4gbWF0LW5hdi1saXN0IC5tZW51U3R5bGV7XHJcbiAgY29sb3I6ICNkZWRlZGU7XHJcbiAgIGJhY2tncm91bmQtY29sb3I6ICM0MDQwNDA7XHJcbiAgIGZvbnQtZmFtaWx5OiBcIlBvcHBpbnNcIiwgc2Fucy1zZXJpZiAhaW1wb3J0YW50O1xyXG4gICBmb250LXNpemU6IDE4cHg7XHJcbiAgIGN1cnNvcjogcG9pbnRlcjtcclxuIH1cclxuXHJcblxyXG5cclxuLnN1Yk1lbnV7XHJcbiAgY29sb3I6ICNkZWRlZGU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJiMmIyYjtcclxuICBmb250LWZhbWlseTogXCJQb3BwaW5zXCIsIHNhbnMtc2VyaWYgIWltcG9ydGFudDtcclxuICBmb250LXNpemU6IDE0LjNweDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbi8vIC5jaGlsZE1lbnV7XHJcbi8vICAgY29sb3I6ICNkNGQ0ZDQ7XHJcbi8vICAgYmFja2dyb3VuZC1jb2xvcjogIzQwNDA0MDtcclxuLy8gICBmb250LWZhbWlseTogXCJQb3BwaW5zXCIsIHNhbnMtc2VyaWYgIWltcG9ydGFudDtcclxuLy8gICBmb250LXNpemU6IDE0LjNweDtcclxuLy8gICBjdXJzb3I6IHBvaW50ZXI7XHJcbi8vIH1cclxuXHJcbm1hdC1uYXYtbGlzdCAubWVudVN0eWxlOmhvdmVyLFxyXG5tYXQtbmF2LWxpc3QgLmNoaWxkTWVudTpob3ZlcntcclxuICBjb2xvcjogIzJiMmIyYiAhaW1wb3J0YW50O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDtcclxufVxyXG5cclxubWF0LW5hdi1saXN0IC5saWFjdGl2ZSAubGlhY3RpdmUxe1xyXG4gIFxyXG4gIGNvbG9yOiMyYjJiMmIgIWltcG9ydGFudDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5tYXQtbmF2LWxpc3QgLmhhcy1tb2R1bGU6aG92ZXIsXHJcbm1hdC1uYXYtbGlzdCAuaGFzLW1vZHVsZTpmb2N1c3tcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzc3NWI1O1xyXG4gICAgY29sb3I6ICMyYjJiMmIgIWltcG9ydGFudDtcclxufVxyXG5cclxubWF0LW5hdi1saXN0IC5oYXMtbW9kdWxlIC5saWFjdGl2ZXtcclxuICBtYXJnaW4tbGVmdDogMTBweDtcclxufVxyXG5cclxuXHJcblxyXG4ubXV0ZWQge1xyXG4gIFxyXG4gIGJhY2tncm91bmQ6ICM3Mzg2RDU7XHJcbn1cclxuXHJcbi5tdXRlZDpob3ZlciB7XHJcbiAgXHJcbiAgYmFja2dyb3VuZDogIzNmNTFiNTtcclxufVxyXG5cclxuLmNhcmR7XHJcbiAgICBoZWlnaHQ6MTAwJTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7ICAgIFxyXG59XHJcbi8vIEJyZWFrcG9pbnRzXHJcbiRoYW5kc2V0OiAzNjBweDtcclxuJGxhcmdlLWhhbmRzZXQ6IDQ4MHB4O1xyXG4kdGFibGV0OiA2NDBweDsgLyogYXBwIGRyYXdlciBicmVha3BvaW50ICovXHJcbiRsYXJnZS10YWJsZXQ6IDg0MHB4O1xyXG4kZGVza3RvcDogOTYwcHg7XHJcbiRsYXJnZS1kZXNrdG9wOiAxMjgwcHg7XHJcbiR4LWxhcmdlLWRlc2t0b3A6IDE0NDBweDtcclxuJHh4LWxhcmdlLWRlc2t0b3A6IDE5MjBweDtcclxuXHJcbi8vIGdlbmVyYXRlIG1pbi13aWR0aCBicmVha3BvaW50XHJcbkBtaXhpbiBicmVha3BvaW50KCRwb2ludCkge1xyXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkcG9pbnQpIHsgQGNvbnRlbnQgOyB9XHJcbn1cclxuLy8gZ2VuZXJhdGUgbWF4LXdpZHRoIGJyZWFrcG9pbnQgKHVzZSBzcGFyaW5nbHkpXHJcbkBtaXhpbiBicmVha3BvaW50LW1heCgkcG9pbnQpIHtcclxuICBAbWVkaWEgKG1heC13aWR0aDogJHBvaW50KSB7IEBjb250ZW50IDsgfVxyXG59XHJcbi8vIGdlbmVyYXRlIG1pbi1oZWlnaHQgYnJlYWtwb2ludFxyXG5AbWl4aW4gaGVpZ2h0LWJyZWFrcG9pbnQoJHBvaW50KSB7XHJcbiAgQG1lZGlhIChtaW4taGVpZ2h0OiAkcG9pbnQpIHsgQGNvbnRlbnQgOyB9XHJcbn1cclxuLy8gZ2VuZXJhdGUgbWF4LWhlaWdodCBicmVha3BvaW50ICh1c2Ugc3BhcmluZ2x5KVxyXG5AbWl4aW4gaGVpZ2h0LWJyZWFrcG9pbnQtbWF4KCRwb2ludCkge1xyXG4gIEBtZWRpYSAobWluLWhlaWdodDogJHBvaW50KSB7IEBjb250ZW50IDsgfVxyXG59XHJcblxyXG5tYXQtc2lkZW5hdi1jb250YWluZXJ7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG5tYXQtZHJhd2Vye1xyXG4gIHdpZHRoOiAxNSU7XHJcbiAgXHJcbn1cclxubWF0LXNpZGVuYXZ7XHJcbiAgb3ZlcmZsb3c6IHVuc2V0ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcblxyXG4ubWF0LWRyYXdlci1pbm5lci1jb250YWluZXIsIC5tYXQtZHJhd2VyLWNvbnRlbnR7XHJcbiAgLy8gcG9zaXRpb246IGFic29sdXRlO1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxufVxyXG5cclxuIC5tZW51UGFuZXtcclxuICAgaGVpZ2h0OiA4MCU7XHJcbiAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgIHNjcm9sbGJhci13aWR0aDogdGhpbjtcclxuICAgXHJcbiB9XHJcblxyXG4gIC5tZW51UGFuZTo6LXdlYmtpdC1zY3JvbGxiYXIge1xyXG4gICB3aWR0aDogOHB4O1xyXG4gfVxyXG5cclxuLyogVHJhY2sgKi9cclxuLm1lbnVQYW5lOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XHJcbiAgYmFja2dyb3VuZDogXHQgd2hpdGU7IFxyXG4gIGJvcmRlci1yYWRpdXM6IDFweDtcclxuICBtYXJnaW46IDA7XHJcbn1cclxuIFxyXG4vKiBIYW5kbGUgKi9cclxuLm1lbnVQYW5lOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XHJcbiAgYmFja2dyb3VuZDogIzg4OCA7IFxyXG4gIHBhZGRpbmc6IDJweDtcclxuICBib3JkZXItcmFkaXVzOiAyLjVweDtcclxuICBcclxufVxyXG5cclxuLyogSGFuZGxlIG9uIGhvdmVyICovXHJcbi5tZW51UGFuZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xyXG4gIGJhY2tncm91bmQ6IGJsYWNrOyBcclxufVxyXG5cclxuLnNpZGViYXItaGVhZGVye1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiBcclxufVxyXG5cclxuLnNpZGViYXItaGVhZGVyLCAuc2lkZWJhci1oZWFkZXIgaDN7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIFxyXG59XHJcblxyXG4uc2lkZWJhci1oZWFkZXIgaDN7XHJcbiAgei1pbmRleDogMDtcclxufVxyXG5cclxuLyoubWF0LWRyYXdlci1iYWNrZHJvcC5tYXQtZHJhd2VyLXNob3due1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbn0qL1xyXG5cclxuI2NvbGxhcHNlQnRuT25TaWRlbmF2e1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB6LWluZGV4OiAxO1xyXG59XHJcblxyXG4gIEBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7XHJcbiAgICAjY29sbGFwc2VCdG5PblNpZGVuYXZ7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG4uZmxleENvbnRhaW5lcntcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGhlaWdodDogNzRweDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxufVxyXG5cclxuI3dyYXBwZXJ7XHJcbiAgZmxleDogMTtcclxufVxyXG5cclxubWF0LXNpZGVuYXYgI3NpZGViYXJ7XHJcbiAgd2lkdGg6IDE1JTtcclxuICBcclxufVxyXG5cclxuI21haW5Db250ZW50e1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxufVxyXG5cclxuI2ZsZXhXcmFwcGVyMXtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG59XHJcbiNidG5Hcm91cDF7XHJcbiAgLy8gd2lkdGg6IDEwJTtcclxuICBmbGV4OiAxO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbn1cclxuXHJcbiNkbWFwcF9Mb2dve1xyXG4gIC8vIHdpZHRoOiAxMCU7XHJcbiAgZmxleDogMjtcclxufVxyXG4jbG9nb19pbWd7XHJcbiAgcGFkZGluZy10b3A6IDIlO1xyXG4gIHdpZHRoOiAxNzBweDtcclxufVxyXG5cclxuI2NvbXBhbnlOYW1le1xyXG4gIC8vIHdpZHRoOiAyNSU7XHJcbiAgZmxleDogMTtcclxuICB3b3JkLWJyZWFrOiBub3JtYWw7XHJcbiAgbWFyZ2luLXRvcDogMTRweDtcclxufVxyXG5cclxuI2J0bkdyb3VwMntcclxuICAvLyB3aWR0aDogMjUlO1xyXG4gIGZsZXg6IDE7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG59XHJcblxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKioqKioqKioxNTAlIFpvb20qKioqKioqKioqKioqKioqKioqKioqL1xyXG5AbWVkaWEgKG1heC13aWR0aDo5NjBweCl7XHJcbiAgLmZsZXhDb250YWluZXJ7XHJcbiAgICBoZWlnaHQ6IDI1JTtcclxuICB9XHJcbn1cclxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqKioqKioqKioqRm9yIE1vYmlsZSB2aWV3KioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5AbWVkaWEobWF4LXdpZHRoOjU3NnB4KXtcclxuIFxyXG4gIC5mbGV4Q29udGFpbmVye1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMjAlO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICB9XHJcbiAgXHJcbiAgI3dyYXBwZXJ7XHJcbiAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuICBcclxuICAjZmxleFdyYXBwZXIxe1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gIH1cclxuICAjYnRuR3JvdXAxe1xyXG4gICAgLy8gd2lkdGg6IDEwJTtcclxuICAgIGZsZXg6IDE7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gIH1cclxuICBcclxuICAjZG1hcHBfTG9nb3tcclxuICAgIC8vIHdpZHRoOiAxMCU7XHJcbiAgICBmbGV4OiAyLjI7XHJcbiAgfVxyXG4gICNsb2dvX2ltZ3tcclxuICAgIHBhZGRpbmctdG9wOiAyJTtcclxuICAgIHdpZHRoOiAxNzBweDtcclxuICB9XHJcbiAgXHJcbiAgI2NvbXBhbnlOYW1le1xyXG4gICAgLy8gd2lkdGg6IDI1JTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICBtYXJnaW46IDIlIDIlO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgd29yZC1icmVhazogYnJlYWstYWxsO1xyXG4gICBcclxuICB9XHJcbiAgXHJcbiAgLmJ0bkdyb3VwMntcclxuICAgIC8vIHdpZHRoOiAyNSU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbn1cclxuLyoqKioqKipFbmQgbW9iaWxlIHZpZXcqKioqKiovXHJcblxyXG4vKi5tYXQtc2lkZW5hdiB7XHJcbiAgd2lkdGg6IDM2MHB4O1xyXG59XHJcbi5tYXQtc2lkZW5hdi1jb250YWluZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XHJcbiAgaGVpZ2h0OiAxMDB2aDtcclxuXHJcbiAgLm1hdC1zaWRlbmF2LWNvbnRlbnQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgfVxyXG59XHJcbi5zaWRlbmF2LXRvb2xiYXIge1xyXG4gIGhlaWdodDogNjRweDtcclxuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFwcC1wcmltYXJ5KTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblxyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xyXG4gICAgaGVpZ2h0OiA1NnB4O1xyXG4gIH1cclxufVxyXG4ubWF0LW5hdi1saXN0IHtcclxuICBwYWRkaW5nLXRvcDogMDtcclxufSovXHJcbkBpbmNsdWRlIGJyZWFrcG9pbnQtbWF4KDYwMHB4KSB7XHJcbiAgLmZpeGVkLXRvcG5hdiB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgei1pbmRleDogMjtcclxuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAubWF0LWRyYXdlci1jb250YWluZXIsXHJcbiAgLm1hdC1kcmF3ZXIge1xyXG4gICAgcGFkZGluZy10b3A6IDA7XHJcbiAgfVxyXG59XHJcbi5tZW51LWxpc3QtaXRlbS5tYXQtbGlzdC1pdGVtIHtcclxuICAubWF0LWxpc3QtaXRlbS1jb250ZW50IHtcclxuICAgIGZsZXg6IDEgMSAxMDAlO1xyXG4gIH1cclxufVxyXG4udmVyc2lvbi1pbmZvIHtcclxuICBmb250LXNpemU6IDhwdDtcclxuICBwYWRkaW5nOiA4cHg7XHJcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XHJcbn1cclxuaDEge1xyXG4gICAgY29sb3I6ICMzMzM7XHJcbiAgICBmb250LWZhbWlseTogYXJpYWwsIHNhbnMtc2VyaWY7XHJcbiAgICBtYXJnaW46IDFlbSBhdXRvO1xyXG4gICAgd2lkdGg6IDgwJTtcclxuICB9XHJcbiAgXHJcbiAgLnRhYm9yZGlvbiB7XHJcbiAgICBjb2xvcjogIzMzMztcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgZm9udC1mYW1pbHk6IGFyaWFsLCBzYW5zLXNlcmlmO1xyXG4gICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgd2lkdGg6IDgwJTtcclxuICB9XHJcbiAgXHJcbiAgLnRhYm9yZGlvbiBpbnB1dFtuYW1lPVwic2VjdGlvbnNcIl0ge1xyXG4gICAgbGVmdDogLTk5OTlweDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogLTk5OTlweDtcclxuICB9XHJcbiAgXHJcbiAgLnRhYm9yZGlvbiBzZWN0aW9uIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxuICBcclxuICAudGFib3JkaW9uIHNlY3Rpb24gbGFiZWwge1xyXG4gICAgYmFja2dyb3VuZDogI2NjYztcclxuICAgIGJvcmRlcjoxcHggc29saWQgI2ZmZjtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgZm9udC1zaXplOiAxLjJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgcGFkZGluZzogMTVweCAyMHB4O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgd2lkdGg6IDE4MHB4O1xyXG4gICAgei1pbmRleDoxMDA7XHJcbiAgfVxyXG4gIFxyXG4gIC50YWJvcmRpb24gc2VjdGlvbiBhcnRpY2xlIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICBsZWZ0OiAyMzBweDtcclxuICAgIG1pbi13aWR0aDogMzAwcHg7XHJcbiAgICBwYWRkaW5nOiAwIDAgMCAyMXB4O1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlOyAgXHJcbiAgICB0b3A6IDA7XHJcbiAgfVxyXG4gIFxyXG4gIC50YWJvcmRpb24gc2VjdGlvbiBhcnRpY2xlOmFmdGVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBsZWZ0Oi0yMjlweDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIHdpZHRoOiAyMjBweDtcclxuICAgIHotaW5kZXg6MTtcclxuICB9XHJcbiAgXHJcbiAgLnRhYm9yZGlvbiBpbnB1dFtuYW1lPVwic2VjdGlvbnNcIl06Y2hlY2tlZCArIGxhYmVsIHsgXHJcbiBcclxuICAgIGZvbnQtc2l6ZToxNnB4O1xyXG4gIH1cclxuICBcclxuICAudGFib3JkaW9uIGlucHV0W25hbWU9XCJzZWN0aW9uc1wiXTpjaGVja2VkIH4gYXJ0aWNsZSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGZvbnQtc2l6ZToxNnB4OyAgIGJhY2tncm91bmQ6ICNlZWU7XHJcbiAgICBjb2xvcjogIzAwMDtcclxuICB9XHJcbiAgXHJcbiAgXHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDUzM3B4KSB7XHJcbiAgICBcclxuICAgIGgxIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgXHJcbiAgICAudGFib3JkaW9uIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC50YWJvcmRpb24gc2VjdGlvbiBsYWJlbCB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMWVtO1xyXG4gICAgICB3aWR0aDogMTYwcHg7XHJcbiAgICB9ICBcclxuICBcclxuICAgLnRhYm9yZGlvbiBzZWN0aW9uIGFydGljbGUge1xyXG4gICAgICBsZWZ0OiAyMDBweDtcclxuICAgICAgbWluLXdpZHRoOiAyNzBweDtcclxuICAgIH0gXHJcbiAgICBcclxuICAgIC50YWJvcmRpb24gc2VjdGlvbiBhcnRpY2xlOmFmdGVyIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcclxuICAgICAgYm90dG9tOiAwO1xyXG4gICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgbGVmdDotMTk5cHg7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICB3aWR0aDogMjAwcHg7XHJcbiAgXHJcbiAgICB9ICBcclxuICAgIFxyXG4gIH1cclxuICBcclxuICBcclxuICAgQG1lZGlhIHByaW50XHJcbntcclxuICAgLmRvbm90cHJpbnR0aGlzXHJcbiAgIHtcclxuICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgIH1cclxufVxyXG5AbWVkaWEgcHJpbnQge1xyXG4gICBAcGFnZSB7IHNpemU6IGF1dG87ICBtYXJnaW46IDBtbTsgfVxyXG4gICBhW2hyZWZdOmFmdGVyIHtcclxuICAgICAgIGNvbnRlbnQ6IG5vbmUgIWltcG9ydGFudDtcclxuICAgfVxyXG59XHJcbkBtZWRpYSBwcmludCB7XHJcbiAgICNIZWFkZXIsICNGb290ZXIgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cclxufVxyXG5AbWVkaWEgc2NyZWVuXHJcbntcclxuICAgLmRvbm90cHJpbnR0aGlzXHJcbiAgIHtcclxuICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICB9XHJcbn1cclxuLmFjdGl2ZXtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodHNlYWdyZWVuO1xyXG4gIC8vIGNvbG9yOiBibGFjaztcclxufVxyXG5cclxuXHJcblxyXG5cclxuYSB7XHJcbiAgY29sb3I6I2RlZGVkZTtcclxuICB9XHJcbiAgXHJcbiAgbGkge1xyXG4gIGxpc3Qtc3R5bGU6bm9uZTtcclxuICB9IFxyXG4gIFxyXG4gIC5wYW5lbC1kZWZhdWx0Pi5wYW5lbC1oZWFkaW5nIHtcclxuICAgICAgY29sb3I6ICNkZWRlZGU7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3Mzg2RDU7XHJcbiAgICAgIC8vIGJvcmRlci1jb2xvcjogI2RkZDtcclxuICB9XHJcbiAgXHJcbiAgLnBhbmVsLWdyb3VwIC5wYW5lbCsucGFuZWwge1xyXG4gICAgICBtYXJnaW4tdG9wOiAwcHg7XHJcbiAgfVxyXG4gIC5wYW5lbC1ncm91cCB7XHJcbiAgICBtYXJnaW4tdG9wOiAzNXB4O1xyXG4gIH1cclxuICAucGFuZWwtY29sbGFwc2Uge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjojMmIyYjJiO1xyXG4gIH1cclxuICBcclxuICAuZ2x5cGhpY29uIHsgXHJcbiAgbWFyZ2luLXJpZ2h0OjEwcHg7IFxyXG4gIH1cclxuICBcclxuICBcclxuICB1bC5saXN0LWdyb3VwIHtcclxuICAgIG1hcmdpbjowcHg7XHJcbiAgfVxyXG4gIFxyXG4gIHVsLmJ1bGxldGxpc3QgbGkge1xyXG4gICAgbGlzdC1zdHlsZTpkaXNjO1xyXG4gIH1cclxuICBcclxuICBcclxuICB1bC5saXN0LWdyb3VwICBsaSBhIHtcclxuICAgZGlzcGxheTpibG9jaztcclxuICAgcGFkZGluZzo1cHggMHB4IDVweCAxNXB4O1xyXG4gICB0ZXh0LWRlY29yYXRpb246bm9uZTtcclxuICB9XHJcbiAgXHJcbiAgdWwubGlzdC1ncm91cCAuaGFzLW1vZHVsZTpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzc3NWI1IDtcclxuICAgIGNvbG9yOiMyYjJiMmIgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC8vIHVsLmxpc3QtZ3JvdXAgIGxpIGE6aG92ZXIsIHVsIGxpIGE6Zm9jdXMge1xyXG4gIC8vICBjb2xvcjojMmIyYjJiICFpbXBvcnRhbnQ7XHJcbiAgLy8gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XHJcbiAgLy8gfVxyXG5cclxuLmxpYWN0aXZle1xyXG4gIGNvbG9yOiMyYjJiMmIgIWltcG9ydGFudDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uaGFzLW1vZHVsZXtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzc3NWI1IDtcclxuICBjb2xvcjojMmIyYjJiICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcblxyXG5cclxuXHJcbiAgLnBhbmVsLXRpdGxlIGE6aG92ZXIsXHJcbiAgLnBhbmVsLXRpdGxlIGE6YWN0aXZlLFxyXG4gIC5wYW5lbC10aXRsZSBhOmZvY3VzLFxyXG4gIC5wYW5lbC10aXRsZSAub3BlbiBhOmhvdmVyLFxyXG4gIC5wYW5lbC10aXRsZSAub3BlbiBhOmFjdGl2ZSxcclxuICAucGFuZWwtdGl0bGUgLm9wZW4gYTpmb2N1c1xyXG4gICB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246bm9uZTtcclxuICAgIGNvbG9yOiNkZWRlZGU7XHJcbiAgfVxyXG4gIFxyXG4gIC5wYW5lbC10aXRsZT4uc21hbGwsIC5wYW5lbC10aXRsZT4uc21hbGw+YSwgLnBhbmVsLXRpdGxlPmEsIC5wYW5lbC10aXRsZT5zbWFsbCwgLnBhbmVsLXRpdGxlPnNtYWxsPmEge1xyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG4gIFxyXG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCl7XHJcbiAgLm5hdmJhci1jb2xsYXBzZS5jb2xsYXBzZSBcclxuICAgIHtcclxuICAgICAgZGlzcGxheTogYmxvY2shaW1wb3J0YW50O1xyXG4gICAgICBoZWlnaHQ6IGF1dG8haW1wb3J0YW50O1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICAgICAgb3ZlcmZsb3c6IHZpc2libGUhaW1wb3J0YW50O1xyXG4gICAgcGFkZGluZy1sZWZ0OjBweDsgXHJcbiAgfVxyXG4gIH1cclxuICBcclxuICBAbWVkaWEgKG1pbi13aWR0aDogOTkycHgpe1xyXG4gIC5tZW51LWhpZGUge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuICBcclxuICB9XHJcbiAgLm1lbnUtaGlkZSAucGFuZWwtZGVmYXVsdD4ucGFuZWwtaGVhZGluZyB7XHJcbiAgICAgIGNvbG9yOiAjZGVkZWRlO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGU4YzhjO1xyXG4gICAgICAvLyBib3JkZXItY29sb3I6ICNkZGQ7XHJcbiAgfVxyXG4gIFxyXG4gIC8qKioqKioqKioqIEVORCBTSURFQkFSICoqKioqKioqKioqKiovXHJcbiAgXHJcbiAgLyoqKioqKioqKiogTkFWQkFSIFRPR0dMRSAqKioqKioqKioqKioqL1xyXG4gIFxyXG4gIC5uYXZiYXItdG9nZ2xlIC5pY29uLWJhciB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgfVxyXG4gIC5uYXZiYXItdG9nZ2xlIHtcclxuICAgICAgcGFkZGluZzogMTFweCAxMHB4O1xyXG4gICAgICBtYXJnaW4tdG9wOiA4cHg7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMTVweDtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTMyNjM4O1xyXG4gICAgICAvLyBib3JkZXItcmFkaXVzOiAwcHg7XHJcbiAgfVxyXG5cclxuICAjUm93Y29udGFpbmVye1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIG1hcmdpbi10b3A6IC0xMHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogLTEwcHg7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICBcclxuXHJcbn1cclxuI1Jvd2hlYWRpbmd7XHJcbiAgICBmbGV4OiAxO1xyXG59XHJcbiNSb3d3cmFwcGVye1xyXG5mbGV4OiAyO1xyXG59XHJcbiNSb3d0YWJsZUFjdGlvbnN7XHJcbmRpc3BsYXk6IGZsZXg7XHJcblxyXG5qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHJcbn1cclxuXHJcbiNmaWVsZCwgI2J1dHRvbnZpZXd7XHJcbiAgICBtYXJnaW46IDIlO1xyXG4gICAgXHJcbn1cclxuIiwiLm1hdC1saXN0IHtcbiAgcGFkZGluZzogMDtcbn1cblxuI21hdFNldHVwIHtcbiAgbWFyZ2luLWJvdHRvbTogMzVweDtcbn1cblxuI21hdFBNIHtcbiAgbWFyZ2luLWJvdHRvbTogMjVweDtcbn1cblxuLnNldFVwTWVudSB7XG4gIG1hcmdpbjogMTBweCAwIDE1cHggMDtcbn1cblxuLm1haW5NZW51IHtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cblxuLyouc3ViTWVudXtcbiAgbWFyZ2luLWJvdHRvbTogMnB4O1xufSovXG5tYXQtbmF2LWxpc3QgLm1lbnVTdHlsZSB7XG4gIGhlaWdodDogMi44cmVtO1xuICBsaW5lLWhlaWdodDogMi44cmVtO1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxubWF0LW5hdi1saXN0IC5jaGlsZE1lbnUge1xuICBoZWlnaHQ6IDIuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDIuNXJlbTtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbm1hdC1uYXYtbGlzdCAubWVudVN0eWxlIHtcbiAgY29sb3I6ICNkZWRlZGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MDQwNDA7XG4gIGZvbnQtZmFtaWx5OiBcIlBvcHBpbnNcIiwgc2Fucy1zZXJpZiAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnN1Yk1lbnUge1xuICBjb2xvcjogI2RlZGVkZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJiMmIyYjtcbiAgZm9udC1mYW1pbHk6IFwiUG9wcGluc1wiLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMTQuM3B4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbm1hdC1uYXYtbGlzdCAubWVudVN0eWxlOmhvdmVyLFxubWF0LW5hdi1saXN0IC5jaGlsZE1lbnU6aG92ZXIge1xuICBjb2xvcjogIzJiMmIyYiAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG5tYXQtbmF2LWxpc3QgLmxpYWN0aXZlIC5saWFjdGl2ZTEge1xuICBjb2xvcjogIzJiMmIyYiAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG5tYXQtbmF2LWxpc3QgLmhhcy1tb2R1bGU6aG92ZXIsXG5tYXQtbmF2LWxpc3QgLmhhcy1tb2R1bGU6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzc3NWI1O1xuICBjb2xvcjogIzJiMmIyYiAhaW1wb3J0YW50O1xufVxuXG5tYXQtbmF2LWxpc3QgLmhhcy1tb2R1bGUgLmxpYWN0aXZlIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5tdXRlZCB7XG4gIGJhY2tncm91bmQ6ICM3Mzg2RDU7XG59XG5cbi5tdXRlZDpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICMzZjUxYjU7XG59XG5cbi5jYXJkIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8qIGFwcCBkcmF3ZXIgYnJlYWtwb2ludCAqL1xubWF0LXNpZGVuYXYtY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbn1cblxubWF0LWRyYXdlciB7XG4gIHdpZHRoOiAxNSU7XG59XG5cbm1hdC1zaWRlbmF2IHtcbiAgb3ZlcmZsb3c6IHVuc2V0ICFpbXBvcnRhbnQ7XG59XG5cbi5tYXQtZHJhd2VyLWlubmVyLWNvbnRhaW5lciwgLm1hdC1kcmF3ZXItY29udGVudCB7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLm1lbnVQYW5lIHtcbiAgaGVpZ2h0OiA4MCU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHNjcm9sbGJhci13aWR0aDogdGhpbjtcbn1cblxuLm1lbnVQYW5lOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiA4cHg7XG59XG5cbi8qIFRyYWNrICovXG4ubWVudVBhbmU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDFweDtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiBIYW5kbGUgKi9cbi5tZW51UGFuZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kOiAjODg4O1xuICBwYWRkaW5nOiAycHg7XG4gIGJvcmRlci1yYWRpdXM6IDIuNXB4O1xufVxuXG4vKiBIYW5kbGUgb24gaG92ZXIgKi9cbi5tZW51UGFuZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBibGFjaztcbn1cblxuLnNpZGViYXItaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLnNpZGViYXItaGVhZGVyLCAuc2lkZWJhci1oZWFkZXIgaDMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5zaWRlYmFyLWhlYWRlciBoMyB7XG4gIHotaW5kZXg6IDA7XG59XG5cbi8qLm1hdC1kcmF3ZXItYmFja2Ryb3AubWF0LWRyYXdlci1zaG93bntcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn0qL1xuI2NvbGxhcHNlQnRuT25TaWRlbmF2IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICNjb2xsYXBzZUJ0bk9uU2lkZW5hdiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLmZsZXhDb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6IDc0cHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuI3dyYXBwZXIge1xuICBmbGV4OiAxO1xufVxuXG5tYXQtc2lkZW5hdiAjc2lkZWJhciB7XG4gIHdpZHRoOiAxNSU7XG59XG5cbiNtYWluQ29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4jZmxleFdyYXBwZXIxIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuI2J0bkdyb3VwMSB7XG4gIGZsZXg6IDE7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbiNkbWFwcF9Mb2dvIHtcbiAgZmxleDogMjtcbn1cblxuI2xvZ29faW1nIHtcbiAgcGFkZGluZy10b3A6IDIlO1xuICB3aWR0aDogMTcwcHg7XG59XG5cbiNjb21wYW55TmFtZSB7XG4gIGZsZXg6IDE7XG4gIHdvcmQtYnJlYWs6IG5vcm1hbDtcbiAgbWFyZ2luLXRvcDogMTRweDtcbn1cblxuI2J0bkdyb3VwMiB7XG4gIGZsZXg6IDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioxNTAlIFpvb20qKioqKioqKioqKioqKioqKioqKioqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5mbGV4Q29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDI1JTtcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqRm9yIE1vYmlsZSB2aWV3KioqKioqKioqKioqKioqKioqKioqKioqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDU3NnB4KSB7XG4gIC5mbGV4Q29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAyMCU7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cblxuICAjd3JhcHBlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAjZmxleFdyYXBwZXIxIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG5cbiAgI2J0bkdyb3VwMSB7XG4gICAgZmxleDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG5cbiAgI2RtYXBwX0xvZ28ge1xuICAgIGZsZXg6IDIuMjtcbiAgfVxuXG4gICNsb2dvX2ltZyB7XG4gICAgcGFkZGluZy10b3A6IDIlO1xuICAgIHdpZHRoOiAxNzBweDtcbiAgfVxuXG4gICNjb21wYW55TmFtZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAyJSAyJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICB9XG5cbiAgLmJ0bkdyb3VwMiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbi8qKioqKioqRW5kIG1vYmlsZSB2aWV3KioqKioqL1xuLyoubWF0LXNpZGVuYXYge1xuICB3aWR0aDogMzYwcHg7XG59XG4ubWF0LXNpZGVuYXYtY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxMDB2aDtcblxuICAubWF0LXNpZGVuYXYtY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG59XG4uc2lkZW5hdi10b29sYmFyIHtcbiAgaGVpZ2h0OiA2NHB4O1xuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFwcC1wcmltYXJ5KTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICBAbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICBoZWlnaHQ6IDU2cHg7XG4gIH1cbn1cbi5tYXQtbmF2LWxpc3Qge1xuICBwYWRkaW5nLXRvcDogMDtcbn0qL1xuQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gIC5maXhlZC10b3BuYXYge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAyO1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWF0LWRyYXdlci1jb250YWluZXIsXG4ubWF0LWRyYXdlciB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gIH1cbn1cbi5tZW51LWxpc3QtaXRlbS5tYXQtbGlzdC1pdGVtIC5tYXQtbGlzdC1pdGVtLWNvbnRlbnQge1xuICBmbGV4OiAxIDEgMTAwJTtcbn1cblxuLnZlcnNpb24taW5mbyB7XG4gIGZvbnQtc2l6ZTogOHB0O1xuICBwYWRkaW5nOiA4cHg7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xufVxuXG5oMSB7XG4gIGNvbG9yOiAjMzMzO1xuICBmb250LWZhbWlseTogYXJpYWwsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMWVtIGF1dG87XG4gIHdpZHRoOiA4MCU7XG59XG5cbi50YWJvcmRpb24ge1xuICBjb2xvcjogIzMzMztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBhcmlhbCwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA4MCU7XG59XG5cbi50YWJvcmRpb24gaW5wdXRbbmFtZT1zZWN0aW9uc10ge1xuICBsZWZ0OiAtOTk5OXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTk5OTlweDtcbn1cblxuLnRhYm9yZGlvbiBzZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi50YWJvcmRpb24gc2VjdGlvbiBsYWJlbCB7XG4gIGJhY2tncm91bmQ6ICNjY2M7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAxNXB4IDIwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDE4MHB4O1xuICB6LWluZGV4OiAxMDA7XG59XG5cbi50YWJvcmRpb24gc2VjdGlvbiBhcnRpY2xlIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbGVmdDogMjMwcHg7XG4gIG1pbi13aWR0aDogMzAwcHg7XG4gIHBhZGRpbmc6IDAgMCAwIDIxcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xufVxuXG4udGFib3JkaW9uIHNlY3Rpb24gYXJ0aWNsZTphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIGJvdHRvbTogMDtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGxlZnQ6IC0yMjlweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAyMjBweDtcbiAgei1pbmRleDogMTtcbn1cblxuLnRhYm9yZGlvbiBpbnB1dFtuYW1lPXNlY3Rpb25zXTpjaGVja2VkICsgbGFiZWwge1xuICBmb250LXNpemU6IDE2cHg7XG59XG5cbi50YWJvcmRpb24gaW5wdXRbbmFtZT1zZWN0aW9uc106Y2hlY2tlZCB+IGFydGljbGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxNnB4O1xuICBiYWNrZ3JvdW5kOiAjZWVlO1xuICBjb2xvcjogIzAwMDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDUzM3B4KSB7XG4gIGgxIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC50YWJvcmRpb24ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLnRhYm9yZGlvbiBzZWN0aW9uIGxhYmVsIHtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICB3aWR0aDogMTYwcHg7XG4gIH1cblxuICAudGFib3JkaW9uIHNlY3Rpb24gYXJ0aWNsZSB7XG4gICAgbGVmdDogMjAwcHg7XG4gICAgbWluLXdpZHRoOiAyNzBweDtcbiAgfVxuXG4gIC50YWJvcmRpb24gc2VjdGlvbiBhcnRpY2xlOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICAgIGJvdHRvbTogMDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGxlZnQ6IC0xOTlweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAyMDBweDtcbiAgfVxufVxuQG1lZGlhIHByaW50IHtcbiAgLmRvbm90cHJpbnR0aGlzIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5AbWVkaWEgcHJpbnQge1xuICBAcGFnZSB7XG4gICAgc2l6ZTogYXV0bztcbiAgICBtYXJnaW46IDBtbTtcbiAgfVxuICBhW2hyZWZdOmFmdGVyIHtcbiAgICBjb250ZW50OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSBwcmludCB7XG4gICNIZWFkZXIsICNGb290ZXIge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiB7XG4gIC5kb25vdHByaW50dGhpcyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodHNlYWdyZWVuO1xufVxuXG5hIHtcbiAgY29sb3I6ICNkZWRlZGU7XG59XG5cbmxpIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLnBhbmVsLWRlZmF1bHQgPiAucGFuZWwtaGVhZGluZyB7XG4gIGNvbG9yOiAjZGVkZWRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzM4NkQ1O1xufVxuXG4ucGFuZWwtZ3JvdXAgLnBhbmVsICsgLnBhbmVsIHtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuXG4ucGFuZWwtZ3JvdXAge1xuICBtYXJnaW4tdG9wOiAzNXB4O1xufVxuXG4ucGFuZWwtY29sbGFwc2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmIyYjJiO1xufVxuXG4uZ2x5cGhpY29uIHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xufVxuXG51bC5saXN0LWdyb3VwIHtcbiAgbWFyZ2luOiAwcHg7XG59XG5cbnVsLmJ1bGxldGxpc3QgbGkge1xuICBsaXN0LXN0eWxlOiBkaXNjO1xufVxuXG51bC5saXN0LWdyb3VwIGxpIGEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogNXB4IDBweCA1cHggMTVweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG51bC5saXN0LWdyb3VwIC5oYXMtbW9kdWxlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM3NzViNTtcbiAgY29sb3I6ICMyYjJiMmIgIWltcG9ydGFudDtcbn1cblxuLmxpYWN0aXZlIHtcbiAgY29sb3I6ICMyYjJiMmIgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbn1cblxuLmhhcy1tb2R1bGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzc3NWI1O1xuICBjb2xvcjogIzJiMmIyYiAhaW1wb3J0YW50O1xufVxuXG4ucGFuZWwtdGl0bGUgYTpob3Zlcixcbi5wYW5lbC10aXRsZSBhOmFjdGl2ZSxcbi5wYW5lbC10aXRsZSBhOmZvY3VzLFxuLnBhbmVsLXRpdGxlIC5vcGVuIGE6aG92ZXIsXG4ucGFuZWwtdGl0bGUgLm9wZW4gYTphY3RpdmUsXG4ucGFuZWwtdGl0bGUgLm9wZW4gYTpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICNkZWRlZGU7XG59XG5cbi5wYW5lbC10aXRsZSA+IC5zbWFsbCwgLnBhbmVsLXRpdGxlID4gLnNtYWxsID4gYSwgLnBhbmVsLXRpdGxlID4gYSwgLnBhbmVsLXRpdGxlID4gc21hbGwsIC5wYW5lbC10aXRsZSA+IHNtYWxsID4gYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdmJhci1jb2xsYXBzZS5jb2xsYXBzZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogMHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLm1lbnUtaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLm1lbnUtaGlkZSAucGFuZWwtZGVmYXVsdCA+IC5wYW5lbC1oZWFkaW5nIHtcbiAgY29sb3I6ICNkZWRlZGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4ZThjOGM7XG59XG5cbi8qKioqKioqKioqIEVORCBTSURFQkFSICoqKioqKioqKioqKiovXG4vKioqKioqKioqKiBOQVZCQVIgVE9HR0xFICoqKioqKioqKioqKiovXG4ubmF2YmFyLXRvZ2dsZSAuaWNvbi1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG4ubmF2YmFyLXRvZ2dsZSB7XG4gIHBhZGRpbmc6IDExcHggMTBweDtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2EzMjYzODtcbn1cblxuI1Jvd2NvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLXRvcDogLTEwcHg7XG4gIG1hcmdpbi1ib3R0b206IC0xMHB4O1xuICBwYWRkaW5nOiAwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbiNSb3doZWFkaW5nIHtcbiAgZmxleDogMTtcbn1cblxuI1Jvd3dyYXBwZXIge1xuICBmbGV4OiAyO1xufVxuXG4jUm93dGFibGVBY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbiNmaWVsZCwgI2J1dHRvbnZpZXcge1xuICBtYXJnaW46IDIlO1xufSJdfQ== */\"","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { DorseyService } from '../dorsey.service';\r\nimport { Router } from '@angular/router';\r\nimport { LocalStorageService } from 'ngx-webstorage';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\nimport { BreakpointObserver } from '@angular/cdk/layout';\r\nimport { OrganizationService } from '../services/organization.service';\r\nimport { copyRight } from '../copyRight.model';\r\nimport { MsalUserService } from './msal-user.service';\r\nimport { CompanyService } from '../services/company.service';\r\n\r\n@Component({\r\n  selector: 'app-login',\r\n  templateUrl: './login.component.html',\r\n  styleUrls: ['./login.component.scss']\r\n})\r\nexport class LoginComponent implements OnInit {\r\n  copyRight: string = copyRight;\r\n  userName = '';\r\n  password = '';\r\n  warningMsg = '';\r\n  usersData: any;\r\n  userRoleAssignmentData: any;\r\n  filtercompany = [];\r\n  filterEmployee = [];\r\n  //filterUserRole = [];\r\n  adminDetails = [];\r\n  login = false;\r\n  rolesData: any;\r\n  organizationDetails: any;\r\n  menuData: any;\r\n  MenuPermissions: any;\r\n  PermissionJson: any;\r\n  companyID: string;\r\n  menuOpenStatus = true;\r\n  count = 0;\r\n  menuOpen = false;\r\n  TeamID: string;\r\n  employeeData: any;\r\n  employeeID = 0;\r\n  organizationID: number;\r\n  RoleID: string;\r\n  CompanyName: string = '';\r\n  companyData: any;\r\n  currentUser: any;\r\n  GlobalAdminLogin = false;\r\n  loginUsername: string;\r\n  teamData: any;\r\n  panelOpenState = false;\r\n  step = 0;\r\n  menuVisible = false;\r\n  setupList = false;\r\n  processList = false;\r\n  projects = false;\r\n  reports = false;\r\n  companySetup = false;\r\n  type = false;\r\n  loginCompanyName: string = '';\r\n  copyDate: number;\r\n  opened: any;\r\n  sidenavMode: any;\r\n  backdrop = false;\r\n  smallScrn = false;\r\n  isSuperAdmin: boolean = false;\r\n  companyNavigate: boolean;\r\n  employeeLoginLevel: string;\r\n  isScoreCardEnable: boolean = false;\r\n  showAzureBtn: boolean = false;\r\n\r\n  constructor(private dorsey: DorseyService,\r\n    private router: Router,\r\n    private storage: LocalStorageService,\r\n    private organizationService: OrganizationService,\r\n    private dialog: MatDialog,\r\n    breakpointObserver: BreakpointObserver,\r\n    private companyService: CompanyService,\r\n    private msalService: MsalUserService) {\r\n    const windowSize = breakpointObserver.observe([\r\n      '(max-width: 1200px)'\r\n    ]).subscribe(result => {\r\n      if (result.matches) {\r\n        this.opened = false;\r\n        this.sidenavMode = \"over\";\r\n        this.smallScrn = true;\r\n      } else {\r\n        this.opened = true;\r\n        this.sidenavMode = \"side\";\r\n        this.smallScrn = false;\r\n      }\r\n    });\r\n    if (window.location.href.split('#')[1] === '/' || !window.location.href.split('#')[1]) {\r\n      this.storage.store('Login', false);\r\n      this.login = false;\r\n    }\r\n\r\n  }\r\n  setStep(index: number) {\r\n    this.step = index;\r\n  }\r\n\r\n  nextStep() {\r\n    this.step++;\r\n  }\r\n\r\n  prevStep() {\r\n    this.step--;\r\n  }\r\n\r\n  collapseSidenav() {\r\n    if (this.opened && this.smallScrn) {\r\n      this.opened = !this.opened;\r\n    }\r\n  }\r\n\r\n  menuClick(url, obj) {\r\n    var activeclasses = document.querySelectorAll('.liactive');\r\n    for (let i = 0; i < activeclasses.length; i++) {\r\n      activeclasses[i].setAttribute(\"class\", \"liactive1\");\r\n      activeclasses[i].parentElement.setAttribute(\"class\", \"has-module1\");\r\n    }\r\n    obj.parentNode.setAttribute(\"class\", \"liactive\");\r\n    obj.parentNode.parentNode.setAttribute(\"class\", \"has-module\");\r\n    this.router.navigateByUrl(url);\r\n  }\r\n\r\n  ngOnInit() {\r\n  \r\n    if(window.location.hostname.includes('sugarcreek')){\r\n      this.showAzureBtn = true;\r\n    }\r\n    if(sessionStorage.getItem('msal.urlHash')){\r\n      var token = sessionStorage.getItem('msal.urlHash').split('#')[1].split('&')[0].split('=')[1];\r\n      var azureObject = JSON.parse(atob(token.split('.')[1]));\r\n      //preferred_username\r\n      this.companyService.getUserDetailsByEmailId(azureObject.email).subscribe(resp => {\r\n        if (resp.Data.length == 0) {\r\n          this.warningMsg = \"No user found\";\r\n          this.storage.clear();\r\n          return;\r\n        }\r\n        this.userName = resp.Data[0].UserName;\r\n        this.password = resp.Data[0].Password;\r\n        this.storage.store('Login', true);\r\n        this.loginProcess();\r\n      })\r\n    }else{\r\n     this.loginProcess();\r\n    }\r\n    this.copyDate = (new Date()).getFullYear();\r\n  }\r\n\r\n  loginProcess(): void{\r\n    if (this.storage.retrieve('Login')) {\r\n      this.GetTeamLogin();\r\n      this.GetUserRoleAssignment();\r\n      this.GetMenuMaster();\r\n      this.Login();\r\n      this.MenuPermissions = this.storage.retrieve('MenuPermissions');\r\n      this.companyNavigate = this.storage.retrieve('companyNavigate');\r\n      this.menuData = this.storage.retrieve('menuData');\r\n      this.loginUsername = this.storage.retrieve('loginUsername');\r\n      this.companyID = this.storage.retrieve('companyID');\r\n      this.GlobalAdminLogin = this.storage.retrieve('GlobalAdminLogin');\r\n      this.CompanyName = this.storage.retrieve('CompanyName');\r\n      this.organizationID = this.storage.retrieve('organizationId');\r\n      this.isScoreCardEnable = this.storage.retrieve('isScoreCardEnable');\r\n      this.menuVisible = this.storage.retrieve('menuVisible');\r\n      if (this.GlobalAdminLogin) {\r\n        this.GetUsers();\r\n        this.GetUserRoleAssignment();\r\n        if (this.companyID != '0') {\r\n          this.dorsey.GetCompanyData().subscribe(data => {\r\n            this.companyData = JSON.parse(data['_body']);\r\n            let dataCompany = this.companyData.filter(x => x.CompanyID === this.companyID);\r\n            if (dataCompany.length > 0) {\r\n              this.CompanyName = dataCompany[0].CompanyName;\r\n            }\r\n          });\r\n          this.storage.store('CompanyName', this.CompanyName);\r\n        }\r\n      }\r\n      this.login = true;\r\n    } else {\r\n      this.GetUserRoleAssignment();\r\n      this.GetMenuMaster();\r\n    }\r\n  }\r\n\r\n  loginWithAzure(): void{\r\n    this.msalService.login();\r\n  }\r\n\r\n  GetMenuMaster() {\r\n    this.dorsey.GetMenuMaster().subscribe(subData => {\r\n      subData = JSON.parse(subData['_body']);\r\n      this.menuData = subData;\r\n    });\r\n  }\r\n\r\n  GetUsers() {\r\n    this.dorsey.GetUsersList().subscribe(users => {\r\n      this.usersData = JSON.parse(users['_body']);\r\n    });\r\n  }\r\n  GetUserRoleAssignment() {\r\n    this.dorsey.GetUserRoleAssignment().subscribe(userRoles => {\r\n      this.userRoleAssignmentData = JSON.parse(userRoles['_body']);\r\n    });\r\n  }\r\n\r\n  GetTeamLogin() {\r\n    if (this.companyID) {\r\n      this.dorsey.GetTeam(this.companyID).subscribe(subData => {\r\n        subData = JSON.parse(subData['_body']);\r\n        this.teamData = subData;\r\n\r\n      });\r\n    }\r\n\r\n  }\r\n\r\n  GetTeam(companyID) {\r\n    if (companyID) {\r\n      this.dorsey.GetTeam(companyID).subscribe(subData => {\r\n        subData = JSON.parse(subData['_body']);\r\n        this.teamData = subData;\r\n      });\r\n    }\r\n  }\r\n\r\n  GetRoles(companyID) {\r\n    if (companyID) {\r\n      this.dorsey.GetRoles(companyID).subscribe(users => {\r\n        this.rolesData = JSON.parse(users['_body']);\r\n      });\r\n    }\r\n  }\r\n\r\n  GetEmployee(companyID: string) {\r\n    if (companyID) {\r\n      this.dorsey.GetEmployee(companyID).subscribe(team => {\r\n        this.employeeData = JSON.parse(team['_body']);\r\n      });\r\n    }\r\n  }\r\n\r\n  LoginWithCompany(userName, Password, cID) {\r\n    this.CompanyName = '';\r\n    this.companyID = cID;\r\n    if (cID == 0) {\r\n      this.menuVisible = true;\r\n    }\r\n    else {\r\n      this.menuVisible = false;\r\n    }\r\n    let uName = this.storage.retrieve(\"adminEmail\");\r\n    let Pas = this.storage.retrieve(\"adminPassword\");\r\n    let UserName = this.storage.retrieve('adminUserName');\r\n    this.storage.store(\"adminEmail\", uName);\r\n    this.storage.store(\"adminPassword\", Pas);\r\n    this.storage.store(\"adminUserName\", UserName);\r\n    this.userName = userName;\r\n    this.password = Password;\r\n    this.GlobalAdminLogin = true;\r\n    this.GetUsers();\r\n    this.GetUserRoleAssignment();\r\n    this.Login();\r\n\r\n  }\r\n  backToOrganization() {\r\n    this.Login();\r\n    //this.router.navigate(['/organization']);\r\n  }\r\n\r\n  BackToAdmin() {\r\n    // this.storage.clear(\"id\");\r\n    // this.storage.clear(\"TeamID\");\r\n    // this.GetUsers();\r\n    // this.GetUserRoleAssignment();\r\n    // this.companyID = '';\r\n    // this.menuVisible = true;\r\n    this.CompanyName = '';\r\n    this.GlobalAdminLogin = false;\r\n    this.userName = this.storage.retrieve(\"loginUsername\");\r\n    this.login = this.storage.retrieve(\"Login\");\r\n    this.loginLevel = this.storage.retrieve(\"loginLevel\");\r\n    if (this.loginLevel == 'superadmin') {\r\n      this.password = this.storage.retrieve(\"admintoken\");\r\n    } else if (this.loginLevel == 'organization') {\r\n      this.password = this.storage.retrieve(\"orgtoken\");\r\n    } else if (this.loginLevel == 'entity') {\r\n      this.password = this.storage.retrieve(\"entitytoken\");\r\n    }\r\n\r\n    let userId = this.storage.retrieve('UserID');\r\n    sessionStorage.clear();\r\n    sessionStorage.removeItem(\"loginCompanyName\");\r\n    sessionStorage.removeItem(\"CompanyName\");\r\n    this.storage.clear();\r\n    this.Login();\r\n  }\r\n\r\n  loginLevel: string;\r\n\r\n  Login() {\r\n    let parentId: number;\r\n    if (this.GlobalAdminLogin) {\r\n      this.usersData = this.storage.retrieve('userData');\r\n    }\r\n    this.dorsey.GetUsersList().subscribe(users => {\r\n      this.usersData = JSON.parse(users['_body']);\r\n      let data = this.storage.retrieve('UserID');\r\n\r\n      if (data !== '') {\r\n        let filteruser = this.usersData.filter(x => x.UserID === data);\r\n        if (filteruser.length > 0) {\r\n          this.currentUser = filteruser;\r\n          this.storage.store('CurrentUser', this.currentUser);\r\n        }\r\n      }\r\n      this.warningMsg = '';\r\n      if (!this.userName && !this.password) {\r\n        this.warningMsg = 'Please enter username and password';\r\n        return;\r\n      } else if (!this.userName) {\r\n        this.warningMsg = 'Please enter username';\r\n        return;\r\n      } else if (!this.password) {\r\n        this.warningMsg = 'Please enter password';\r\n        return;\r\n      } else if (this.userName != '' && this.password != '') {\r\n\r\n        let filteruser = this.usersData.filter(x => (x.UserName.toLowerCase() === this.userName.toLowerCase() && x.Password === this.password || (x.AdminUname === this.userName && x.AdminPwd === this.password)));\r\n        if (filteruser.length === 0) {\r\n          this.warningMsg = 'Please enter valid credentials';\r\n          return;\r\n        }\r\n        this.currentUser = filteruser;\r\n        this.dorsey.GetCompanyRoleID(filteruser[0].CompanyID).subscribe(roleData => {\r\n          let compRole = JSON.parse(roleData['_body'])[0]['RoleID'];\r\n          localStorage.setItem('companyRoleID', (compRole));\r\n          let userRoleName = JSON.parse(roleData['_body'])[0]['RoleName'];\r\n          this.storage.store('userRoleName', userRoleName);\r\n        });\r\n\r\n        this.storage.store('CurrentUser', this.currentUser);\r\n        if (filteruser.length > 0) {\r\n          this.userName = filteruser[0].UserName;\r\n          this.storage.store(\"UserID\", filteruser[0].UserID);\r\n\r\n          if (this.GlobalAdminLogin) {\r\n            this.loginUsername = this.storage.retrieve('loginUsername');\r\n            this.companyID = filteruser[0].CompanyID;\r\n            let userName = this.storage.retrieve('adminUserName');\r\n            this.storage.store('user', userName);\r\n          }\r\n          else {\r\n            this.loginUsername = filteruser[0].UserName;\r\n            this.companyID = filteruser[0].CompanyID;\r\n            this.storage.store('user', filteruser[0].UserName);\r\n          }\r\n          this.organizationID = filteruser[0].OrganizationID;\r\n          this.dorsey.GetRoles(this.companyID).subscribe(users => {\r\n            this.rolesData = JSON.parse(users['_body']);\r\n            this.dorsey.GetUserRoleAssignment().subscribe(data => {\r\n              this.userRoleAssignmentData = JSON.parse(data['_body']);\r\n              this.adminDetails = this.userRoleAssignmentData.filter(x => x.UserID === filteruser[0].UserID && x.RoleID === 1);\r\n              this.organizationDetails = this.userRoleAssignmentData.filter(x => x.UserID === filteruser[0].UserID && filteruser[0].CompanyID === 0 && filteruser[0].EmployeeID === 0);\r\n              // this.companyLogin = this.userRoleAssignmentData.filter(x => x.UserID === filteruser[0].UserID && filteruser[0].EmployeeID === 0);\r\n              this.filtercompany = this.userRoleAssignmentData.filter(x => x.UserID === filteruser[0].UserID && filteruser[0].EmployeeID === 0);\r\n              if (this.adminDetails.length > 0) {\r\n                if (!this.storage.retrieve('loginLevel')) {\r\n                  this.loginLevel = 'superadmin';\r\n                  this.storage.store(\"admintoken\", this.password);\r\n                  this.storage.store(\"loginLevel\", this.loginLevel);\r\n                }\r\n                this.menuVisible = true;\r\n                this.storage.store('isCompanyLogin', false);\r\n                this.organizationID = 0;\r\n                let filterPermissons = this.rolesData.filter(x => x.RoleID === this.adminDetails[0].RoleID && x.OrganizationID == 0);\r\n                this.MenuPermissions = JSON.parse(filterPermissons[0].MenuJson);\r\n                this.storage.store(\"username\", this.userName);\r\n\r\n                this.storage.store(\"token\", this.password);\r\n                this.storage.store(\"organizationId\", this.organizationID);\r\n                this.storage.store(\"adminUname\", filteruser[0].UserName);\r\n                this.storage.store(\"GlobalAdminLogin\", this.GlobalAdminLogin);\r\n                this.storage.store('MenuPermissions', this.MenuPermissions);\r\n                this.storage.store('menuData', this.menuData);\r\n                this.storage.store('companyID', filteruser[0].CompanyID);\r\n                this.storage.store('loginUsername', this.loginUsername);\r\n                this.storage.store('Login', true);\r\n                this.isScoreCardEnable = false;\r\n                this.router.navigate(['/organization'],);\r\n                this.login = true;\r\n                return;\r\n              }\r\n              else if (this.organizationDetails.length > 0) {\r\n                if (!this.storage.retrieve('loginLevel')) {\r\n                  this.loginLevel = 'organization';\r\n                  this.storage.store(\"orgtoken\", this.password);\r\n                  this.storage.store(\"loginLevel\", this.loginLevel);\r\n                }\r\n                this.companyNavigate = false;\r\n                this.storage.store(\"companyNavigate\", this.companyNavigate);\r\n                this.isSuperAdmin = false;\r\n                this.organizationID = filteruser[0].OrganizationID;\r\n                this.storage.store(\"organizationId\", this.organizationID);\r\n                var orgDetails;\r\n                this.organizationService.getOrganizations().subscribe(resp => {\r\n                  let organization = resp.Data.find(ent => ent.OrganizationID === this.organizationID);\r\n                  orgDetails = {\r\n                    OrganizationId: organization.OrganizationID,\r\n                    IsSuperAdmin: this.isSuperAdmin,\r\n                    OrganizationName: organization.OrganizationName,\r\n                    NoOfLicenses: organization.NoOfLicenses\r\n                  }\r\n                  this.menuVisible = true;\r\n                  let filterPermissons = this.rolesData.filter(x => x.RoleID === this.filtercompany[0].RoleID);\r\n                  this.MenuPermissions = JSON.parse(filterPermissons[0].MenuJson);\r\n\r\n                  this.storage.store(\"username\", this.userName);\r\n                  this.storage.store(\"token\", this.password);\r\n                  this.storage.store(\"adminUname\", filteruser[0].UserName);\r\n                  this.storage.store(\"GlobalAdminLogin\", this.GlobalAdminLogin);\r\n                  this.storage.store('MenuPermissions', this.MenuPermissions);\r\n                  this.storage.store('menuData', this.menuData);\r\n                  this.storage.store('companyID', filteruser[0].CompanyID);\r\n                  this.storage.store('loginUsername', this.loginUsername);\r\n                  this.storage.store('Login', true);\r\n                  this.isScoreCardEnable = false;\r\n                  this.storage.store('OrganizationDetails', orgDetails);\r\n                  this.router.navigate(['/entity']);\r\n                  this.login = true;\r\n                });\r\n                return;\r\n              }\r\n              else if (this.filtercompany.length > 0) {\r\n                if (!this.storage.retrieve('loginLevel')) {\r\n                  this.loginLevel = 'entity';\r\n                  this.storage.store(\"entitytoken\", this.password);\r\n                  this.storage.store(\"loginLevel\", this.loginLevel);\r\n                }\r\n\r\n                this.companyNavigate = this.storage.retrieve(\"companyNavigate\");\r\n                let role = this.userRoleAssignmentData.filter(x => x.UserID === this.filtercompany[0].UserID)\r\n                let filterPermissons = this.rolesData.filter(x => x.RoleID === role[0].RoleID);\r\n                this.MenuPermissions = JSON.parse(filterPermissons[0].MenuJson);\r\n                this.organizationID = filteruser[0].OrganizationID;\r\n                var orgDetails;\r\n                this.organizationService.getOrganizations().subscribe(resp => {\r\n                  let organization = resp.Data.find(ent => ent.OrganizationID === this.organizationID);\r\n                  orgDetails = {\r\n                    OrganizationId: organization.OrganizationID,\r\n                    IsSuperAdmin: this.isSuperAdmin,\r\n                    OrganizationName: organization.OrganizationName,\r\n                    NoOfLicenses: organization.NoOfLicenses\r\n                  }\r\n                  this.GetTeam(this.companyID);\r\n                  if (this.teamData !== undefined) {\r\n                    for (let i = 0; i < this.teamData.length; i++) {\r\n                      if (this.teamData[i].TeamName === 'Leadership Team' && this.teamData[i].CompanyID === filteruser[0].CompanyID) {\r\n                        this.storage.store('TeamIDLeader', this.teamData[i].TeamID);\r\n                      }\r\n                    }\r\n                  }\r\n                  this.companyID = filteruser[0].CompanyID;\r\n                  let readOnly = this.rolesData.filter(x => x.CompanyID === this.companyID && x.RoleName.toLowerCase() === \"read only\");\r\n                  if (readOnly.length > 0) {\r\n                    this.storage.store(\"ReadOnlyRoleID\", readOnly[0].RoleID);\r\n                  }\r\n                  let TeamAdmin = this.rolesData.filter(x => x.CompanyID === this.companyID && x.RoleName.toLowerCase() === \"team admin\");\r\n                  if (TeamAdmin.length > 0) {\r\n                    this.storage.store(\"TeamAdminRoleID\", TeamAdmin[0].RoleID);\r\n                  }\r\n\r\n                  let teamMember = this.rolesData.filter(x => x.CompanyID === this.companyID && x.RoleName.toLowerCase() === \"team member\");\r\n                  if (teamMember.length > 0) {\r\n                    this.storage.store(\"TeamMemberRoleID\", teamMember[0].RoleID);\r\n                  }\r\n                  if (this.companyID != '0') {\r\n                    this.dorsey.GetCompanyData().subscribe(data => {\r\n                      this.companyData = JSON.parse(data['_body']);\r\n                      let dataCompany = this.companyData.filter(x => x.CompanyID === this.companyID);\r\n                      if (dataCompany.length > 0) {\r\n                        this.CompanyName = dataCompany[0].CompanyName;\r\n                        parentId = dataCompany[0].ParentID;\r\n                        this.isScoreCardEnable = dataCompany[0].EnableScoreCard;\r\n                      }\r\n                      this.storage.store('CompanyName', this.CompanyName);\r\n                      this.storage.store('isScoreCardEnable', this.isScoreCardEnable);\r\n\r\n                      this.storage.store('loginCompanyName', this.CompanyName);\r\n                      sessionStorage.setItem('loginCompanyName', this.CompanyName);\r\n\r\n                    });\r\n                  }\r\n                  this.storage.store(\"GlobalAdminLogin\", this.GlobalAdminLogin);\r\n                  this.storage.store(\"username\", this.userName);\r\n                  this.storage.store(\"token\", this.password);\r\n                  this.RoleID = filterPermissons[0].RoleID;\r\n                  this.storage.store('RoleID', this.RoleID);\r\n                  this.storage.store('loginUsername', this.loginUsername);\r\n                  this.storage.store('EmpRoleID', this.RoleID);\r\n\r\n                  this.storage.store('companyID', filteruser[0].CompanyID);\r\n                  this.storage.store('EmployeeID', filteruser[0].EmployeeID);\r\n                  this.login = true;\r\n                  this.storage.store('Login', true);\r\n                  this.storage.store('MenuPermissions', this.MenuPermissions);\r\n                  this.storage.store('menuData', this.menuData);\r\n                  this.storage.store('isCompanyLogin', true);\r\n\r\n                  if (!parentId) {\r\n                    this.storage.store('isSubCompanyLogin', true);\r\n                  }\r\n\r\n                  this.storage.store('OrganizationDetails', orgDetails);\r\n                  if (!this.companyNavigate) {\r\n                    this.menuVisible = true;\r\n                    this.companyNavigate = false;\r\n                    this.storage.store(\"companyNavigate\", this.companyNavigate);\r\n                    this.router.navigateByUrl('/entity');\r\n                  } else {\r\n                    this.menuVisible = false;\r\n                    this.companyNavigate = true;\r\n                    this.storage.store(\"companyNavigate\", this.companyNavigate);\r\n                    this.router.navigateByUrl('/processMap');\r\n                  }\r\n                });\r\n              }\r\n              else {\r\n                this.menuVisible = false;\r\n                this.companyNavigate = true;\r\n                this.storage.store(\"menuVisible\", this.menuVisible);\r\n                this.storage.store(\"companyNavigate\", this.companyNavigate);\r\n                this.filterEmployee = this.userRoleAssignmentData.filter(x => x.UserID === filteruser[0].UserID && filteruser[0].EmployeeID !== 0);\r\n                if (this.filterEmployee.length > 0) {\r\n                  let filterPermissons = this.rolesData.filter(x => x.RoleID === this.filterEmployee[0].RoleID);\r\n                  this.MenuPermissions = JSON.parse(filterPermissons[0].MenuJson);\r\n                  this.companyID = filteruser[0].CompanyID;\r\n                  this.dorsey.GetEmployee(filteruser[0].CompanyID).subscribe(team => {\r\n                    this.employeeData = JSON.parse(team['_body']);\r\n                    let filterEm = this.employeeData.filter(x => x.EmployeeID === filteruser[0].EmployeeID && filteruser[0].CompanyID === this.companyID);\r\n                    this.employeeID = filteruser[0].EmployeeID;\r\n                    if (filterEm.length > 0) {\r\n                      if (this.teamData !== undefined) {\r\n                        for (let i = 0; i < this.teamData.length; i++) {\r\n                          if (this.teamData[i].TeamID === filterEm[0].TeamID && this.teamData[i].CompanyID === filteruser[0].CompanyID) {\r\n                            this.storage.store('TeamIDLeader', this.teamData[i].TeamID);\r\n                          }\r\n                          else if (this.teamData[i].TeamName === 'Leadership Team' && this.teamData[i].CompanyID === filteruser[0].CompanyID) {\r\n                            this.storage.store('TeamIDLeader', this.teamData[i].TeamID);\r\n                          }\r\n                        }\r\n                      }\r\n                      this.storage.store('TeamID', filterEm[0].TeamID);\r\n                    }\r\n                    this.storage.store(\"employeeDetails\", filterEm[0]);\r\n                    this.RoleID = filterEm[0].RoleID;\r\n                    this.storage.store(\"GlobalAdminLogin\", this.GlobalAdminLogin);\r\n                    this.storage.store(\"username\", this.userName);\r\n                    this.storage.store(\"token\", this.password);\r\n                    this.storage.store('loginUsername', this.loginUsername);\r\n                    let readOnly = this.rolesData.filter(x => x.CompanyID === this.companyID && x.RoleName.toLowerCase() === \"read only\");\r\n                    if (readOnly.length > 0) {\r\n                      this.storage.store(\"ReadOnlyRoleID\", readOnly[0].RoleID);\r\n                    }\r\n                    let TeamAdmin = this.rolesData.filter(x => x.CompanyID === this.companyID && x.RoleName.toLowerCase() === \"team admin\");\r\n                    if (TeamAdmin.length > 0) {\r\n                      this.storage.store(\"TeamAdminRoleID\", TeamAdmin[0].RoleID);\r\n                      this.storage.store(\"TeamMemberRoleName\", TeamAdmin[0].RoleName);\r\n                    }\r\n                    let teamMember = this.rolesData.filter(x => x.CompanyID === this.companyID && x.RoleName.toLowerCase() === \"team member\");\r\n                    if (teamMember.length > 0) {\r\n                      this.storage.store(\"TeamMemberRoleID\", teamMember[0].RoleID);\r\n                    }\r\n                    if (this.companyID != '0') {\r\n                      this.dorsey.GetCompanyData().subscribe(data => {\r\n                        this.companyData = JSON.parse(data['_body']);\r\n                        let dataCompany = this.companyData.filter(x => x.CompanyID === this.companyID);\r\n                        if (dataCompany.length > 0) {\r\n                          this.CompanyName = dataCompany[0].CompanyName;\r\n                          parentId = dataCompany[0].ParentID;\r\n                          this.isScoreCardEnable = dataCompany[0].EnableScoreCard;\r\n                        }\r\n                        this.storage.store('isScoreCardEnable', this.isScoreCardEnable);\r\n                        this.storage.store('CompanyName', this.CompanyName);\r\n                        this.storage.store('loginCompanyName', this.CompanyName);\r\n                        sessionStorage.setItem('loginCompanyName', this.CompanyName);\r\n                      });\r\n                    }\r\n                    this.storage.store('RoleID', \"0\");\r\n                    this.storage.store('EmpRoleID', this.RoleID);\r\n                    this.storage.store('companyID', filteruser[0].CompanyID);\r\n                    this.storage.store('user', filteruser[0].UserName);\r\n                    this.storage.store('EmployeeID', filteruser[0].EmployeeID);\r\n                    this.login = true;\r\n                    this.storage.store('Login', true);\r\n                    this.storage.store('MenuPermissions', this.MenuPermissions);\r\n                    this.storage.store('menuData', this.menuData);\r\n                    this.menuVisible = false;\r\n                    this.router.navigateByUrl('/processMap');\r\n                  });\r\n                }\r\n              }\r\n            })\r\n          });\r\n        }\r\n        else {\r\n          this.warningMsg = 'Please enter valid Credentials';\r\n        }\r\n      }\r\n      else {\r\n        this.warningMsg = 'Please enter valid Credentials';\r\n        return;\r\n      }\r\n    });\r\n    if (this.companyID != '0') {\r\n      this.dorsey.GetCompanyData().subscribe(data => {\r\n        this.companyData = JSON.parse(data['_body']);\r\n\r\n        // let dataCompany = this.companyData.filter(x => x.CompanyID === this.companyID);\r\n        // if (dataCompany.length > 0) {\r\n        //   this.CompanyName = dataCompany[0].CompanyName;\r\n        // }\r\n\r\n        this.storage.store('CompanyName', this.CompanyName);\r\n        this.storage.store('loginCompanyName', this.CompanyName);\r\n        sessionStorage.setItem('loginCompanyName', this.CompanyName);\r\n\r\n      });\r\n    }\r\n\r\n  }\r\n\r\n  GetCompany() {\r\n\r\n  }\r\n  LogOut() {\r\n    this.loginUsername = \"\";\r\n    this.CompanyName = \"\";\r\n    this.menuVisible = false;\r\n    this.userName = '';\r\n    this.password = '';\r\n    this.login = false;\r\n    this.employeeID = 0;\r\n    this.companyID = ''\r\n    this.GlobalAdminLogin = false;\r\n    this.storage.clear('Login');\r\n    this.storage.clear('MenuPermissions');\r\n    this.storage.clear('menuData');\r\n    this.storage.clear('companyID');\r\n    this.storage.clear('TeamID');\r\n    this.storage.clear('EmpRoleID');\r\n    this.storage.clear('id');\r\n    this.storage.clear('userData');\r\n    this.storage.clear('employeeDetails');\r\n    this.storage.clear('CompanyName');\r\n    this.storage.clear('ReadOnlyRoleID');\r\n    this.storage.clear('TeamAdminRoleID');\r\n    this.storage.clear('TeamMemberRoleName');\r\n    this.storage.clear('TeamMemberRoleID');\r\n    this.storage.clear('TeamIDLeader');\r\n    this.storage.clear('username');\r\n    this.storage.clear('token');\r\n    this.storage.clear('adminEmail');\r\n    this.storage.clear('adminPassoword');\r\n    this.storage.clear('adminUserName');\r\n    this.storage.clear('loginUsername');\r\n    this.storage.clear('loginCompanyName');\r\n    this.storage.clear('GlobalAdminLogin');\r\n    this.storage.clear('RoleID');\r\n    this.router.navigateByUrl('/');\r\n    this.filterEmployee = [];\r\n    this.adminDetails = [];\r\n    this.filtercompany = [];\r\n    this.MenuPermissions = null;\r\n    sessionStorage.clear();\r\n    sessionStorage.removeItem(\"loginCompanyName\");\r\n    sessionStorage.removeItem(\"CompanyName\");\r\n    this.storage.clear();\r\n  }\r\n\r\n  CheckEnter(event) {\r\n    event.preventDefault();\r\n    if (event.keyCode === 13) {\r\n      document.getElementById('login').click();\r\n    }\r\n  }\r\n\r\n  onClick(event) {\r\n    if (this.count === 0) {\r\n      this.menuOpen = true;\r\n      this.menuOpenStatus = false;\r\n      this.count++;\r\n    } else {\r\n      this.menuOpen = false;\r\n      this.menuOpenStatus = true;\r\n      this.count = 0;\r\n    }\r\n\r\n  }\r\n  changePassword() {\r\n    this.GetUsers();\r\n    this.Login();\r\n    const dialogRef = this.dialog.open(LoginMetricDialogComponent, {\r\n      panelClass: 'custom-dialog-container',\r\n      data: 'ChangePwd' + 'æææ' + false,\r\n    });\r\n\r\n    dialogRef.componentInstance.userName = this.userName;\r\n    dialogRef.componentInstance.password = this.password;\r\n    dialogRef.componentInstance.currentUser = this.currentUser;\r\n    dialogRef.componentInstance.usersData = this.usersData;\r\n\r\n    dialogRef.afterClosed().subscribe(res => {\r\n      if (res) {\r\n        const dialogRefchid = this.dialog.open(LoginMetricDialogComponent, {\r\n          data: 'Updated succesfully' + 'æææ' + false,\r\n        });\r\n        dialogRefchid.afterClosed().subscribe(data => {\r\n          this.GetUsers();\r\n        });\r\n      }\r\n    });\r\n  }\r\n}\r\n\r\n@Component({\r\n  selector: 'app-dialog',\r\n  templateUrl: 'dialog.html',\r\n  styleUrls: ['dialog.css'],\r\n  providers: [DorseyService],\r\n})\r\nexport class LoginMetricDialogComponent implements OnInit {\r\n  currentUser: any;\r\n  oldPassword: string;\r\n  newPassword: string;\r\n  confirmPassword: string;\r\n  dataSelf: string;\r\n  usersData: any;\r\n  userName: string;\r\n  password: string;\r\n  constructor(\r\n    public dialogRef: MatDialogRef<LoginMetricDialogComponent>,\r\n    @Inject(MAT_DIALOG_DATA) public data: any, public dorseyService: DorseyService, private storage: LocalStorageService) {\r\n    this.data = this.data.split('æææ');\r\n    this.data = this.data[0];\r\n  }\r\n  ngOnInit() {\r\n    this.currentUser = this.storage.retrieve('CurrentUser');\r\n  }\r\n\r\n  Close() {\r\n    this.dialogRef.close(false);\r\n  }\r\n  ChangePassword() {\r\n\r\n    this.dataSelf = '';\r\n    if (!this.oldPassword || !this.newPassword || !this.confirmPassword) {\r\n      this.dataSelf = 'Please enter mandatory fields(*)';\r\n      return;\r\n    } else if (this.oldPassword !== this.currentUser[0].Password) {\r\n      this.dataSelf = 'Please enter the correct current password';\r\n      return;\r\n    } else if (this.newPassword !== this.confirmPassword) {\r\n      this.dataSelf = 'New password and confirm password mismatch';\r\n      return;\r\n    } else if (this.oldPassword === this.confirmPassword) {\r\n      this.dataSelf = 'Current password and new password should not match';\r\n      return;\r\n    }\r\n    else {\r\n      const json = {\r\n        Password: this.confirmPassword,\r\n        UserID: this.currentUser[0].UserID\r\n      };\r\n      this.dorseyService.ChangePassword(json).subscribe(data => {\r\n\r\n        if (data['_body'].toString() !== 'false') {\r\n\r\n          this.dialogRef.close(true);\r\n\r\n        } else {\r\n          this.dataSelf = 'Save failed';\r\n        }\r\n\r\n      });\r\n    }\r\n  }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport * as Msal from \"msal\";\r\nimport { Observable } from \"rxjs\";\r\nimport { AzureDetails } from \"./azure-details.model\";\r\n// @Injectable({\r\n//   providedIn: \"root\",\r\n// })\r\nexport class MsalUserService {\r\n  private accessToken: any;\r\n  public clientApplication: Msal.UserAgentApplication = null;\r\n  constructor() {\r\n    this.clientApplication = new Msal.UserAgentApplication(\r\n      AzureDetails.ClientId,\r\n      \"https://login.microsoftonline.com/\" + AzureDetails.TenantId,\r\n      this.authCallback,\r\n      {\r\n        storeAuthStateInCookie: true,\r\n        //cacheLocation: 'localStorage' ,\r\n      }\r\n    );\r\n  }\r\n  public GetAccessToken(): Observable<any> {\r\n    if (\r\n      sessionStorage.getItem(\"msal.idtoken\") !== undefined &&\r\n      sessionStorage.getItem(\"msal.idtoken\") != null\r\n    ) {\r\n      this.accessToken = sessionStorage.getItem(\"msal.idtoken\");\r\n    }\r\n    return this.accessToken;\r\n  }\r\n\r\n  public authCallback(errorDesc, token, error, tokenType) {\r\n    if (token) {\r\n        console.log(token);\r\n    } else {\r\n      console.log(error + \":\" + errorDesc);\r\n    }\r\n  }\r\n\r\n  public getCurrentUserInfo() {\r\n    const user = this.clientApplication.getUser();\r\n    console.log(user);\r\n  }\r\n\r\n  public logout() {\r\n    this.clientApplication.logout();\r\n  }\r\n\r\n  public login(){\r\n   this.clientApplication.loginRedirect();\r\n  }\r\n}","import {\r\n    Directive,\r\n    Output,\r\n    EventEmitter,\r\n    HostBinding,\r\n    HostListener\r\n  } from '@angular/core';\r\n  \r\n  @Directive({\r\n    selector: '[long-press]'\r\n  })\r\n  export class LongPress {\r\n    pressing: boolean;\r\n    longPressing: boolean;\r\n    timeout: any;\r\n    interval: any;\r\n  \r\n    @Output()\r\n    onLongPress = new EventEmitter();\r\n  \r\n    @Output()\r\n    onLongPressing = new EventEmitter();\r\n  \r\n    @HostBinding('class.press')\r\n    get press() { return this.pressing; }\r\n  \r\n    @HostBinding('class.longpress')\r\n    get longPress() { return this.longPressing; }\r\n  \r\n    @HostListener('touchstart', ['$event'])\r\n    @HostListener('mousedown', ['$event'])\r\n    onMouseDown(event) {\r\n      this.pressing = true;\r\n      this.longPressing = false;\r\n      this.timeout = setTimeout(() => {\r\n        this.longPressing = true;\r\n        this.onLongPress.emit(event);\r\n        this.interval = setInterval(() => {\r\n          this.onLongPressing.emit(event);\r\n        }, 50);\r\n      }, 500);\r\n    }\r\n  \r\n    @HostListener('touchend')\r\n    @HostListener('mouseup')\r\n    @HostListener('mouseleave')\r\n    endPress() {\r\n      clearTimeout(this.timeout);\r\n      clearInterval(this.interval);\r\n      this.longPressing = false;\r\n      this.pressing = false;\r\n    }\r\n  }\r\n  ","import { Component, OnInit, Inject } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { Http } from '@angular/http';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { FormControl } from '@angular/forms';\nimport { DatePipe } from '@angular/common'\nimport { Observable } from 'rxjs';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { GoalService } from '../services/goal.service';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { PerformanceScoreCardService } from '../performance-score-card/performance-score-card.service';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n  selector: 'app-metric',\n  templateUrl: './metric.component.html',\n  providers: [DorseyService]\n})\nexport class MetricComponent implements OnInit {\n  employeeLoginLevel = EmployeeLoginLevel;\n  employeeDetails: any;\n  greenLow: string;\n  greenHigh: string;\n  redLow: string;\n  GoalID: string;\n  redHigh: string;\n  yellowLow: string;\n  yellowHigh: string;\n  condition = false;\n  status = false;\n  employeeData: any;\n  processData: any;\n  activityData: any;\n  pointerTypeData: any;\n  frustrationtypeData: any;\n  departmentData: any;\n  teamData: any;\n  severityData: any;\n  statusData: any;\n  processTeamData: any;\n  EmployeeID: number;\n  ProcessID: string;\n  ActivityID: string;\n  PointerTypeID = \"2\";\n  FrustrationTypeID: string;\n  DepartmentID: string;\n  TeamID: string;\n  StatusID: string;\n  SeverityID: string;\n  Subject: string;\n  Description: string;\n  PointerID: string;\n  pointerData: any;\n  tempActivity = [];\n  tempFrustrationType = [];\n  metricData: any;\n  searchtext: string;\n  p: number = 1;\n  rowsOnPage = 10;\n  rowsOnPageSet = [];\n  rowCount: any;\n  dynamicRows = 10;\n  isDesc: boolean = false;\n  column = \"\";\n  direction: number;\n  arrow = true;\n  metricPaging = false;\n  saveFilter = [];\n  CompanyID: string;\n  isDisable = false;\n  disableSearch = false;\n  tempProcess = [];\n  UOM: string;\n\n  currentUser: string;\n  MenuPermissions: any;\n  menuData: any;\n  menuID: string;\n  menuName: string;\n  ParentID: any;\n  subActivityStatus = false;\n  SubActivityID: string;\n  tempSubActivity = [];\n  userTeamID: string;\n  Source: string;\n  loginCompanyName: any;\n\n  TeamName: any;\n  EmpROleID: any;\n  UserID: any;\n  userRoleAssignmentData: any;\n  rolesData: any;\n  GoalsList: any;\n  constructor(private http: Http, private dorseyService: DorseyService,\n    public dialog: MatDialog, private storage: LocalStorageService,\n    public goalService: GoalService,\n    private scoreCardService: PerformanceScoreCardService) {\n    this.CompanyID = this.storage.retrieve('companyID');\n    this.userTeamID = this.storage.retrieve('TeamID');\n    this.currentUser = this.storage.retrieve('user');\n    this.menuData = this.storage.retrieve('menuData');\n    this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n    this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n\n    this.UserID = this.storage.retrieve('UserID');\n    this.EmpROleID = this.storage.retrieve('EmpRoleID');\n    this.employeeDetails = this.storage.retrieve('employeeDetails');\n    this.GetTeam();\n  }\n\n  ngOnInit() {\n\n    this.GetGoals();\n\n    this.menuData = this.menuData.filter(x => x.MenuName.toString().toLowerCase() === 'metric');\n    if (this.employeeDetails) {\n      this.EmployeeID = this.employeeDetails.EmployeeID;\n      this.TeamID = this.employeeDetails.TeamID;\n    }\n    else {\n      this.EmployeeID = 0;\n    }\n\n    if (this.menuData.length > 0) {\n      this.menuName = this.menuData[0][\"MenuName\"];\n      this.menuID = this.menuData[0][\"MenuID\"];\n    }\n\n    this.GetProcess();\n    this.GetActivity();\n    this.GetPointerType();\n\n    this.GetPointer();\n\n  }\n\n\n  GetGoals() {\n    this.GoalsList = [];\n    this.goalService.getGoals(parseInt(this.CompanyID)).subscribe(resp => {\n\n      this.GoalsList = resp.Data;\n    });\n  }\n\n  OpenPointer() {\n    this.dialogCall('new');\n  }\n  Searchtext() {\n    this.metricData = this.saveFilter;\n    let tempMetric = this.metricData.filter(\n      (item) => {\n        return (\n          (item.ProcessName !== null && item.ProcessName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.ActivityName !== null && item.ActivityName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.GoalName !== null && item.GoalName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.Description !== null && item.Description.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n\n          (item.Source !== null && item.Source.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n\n        );\n      }\n\n    );\n    this.metricData = tempMetric;\n    if (this.metricData.length == 0) {\n      this.isDisable = true;\n    } else {\n      this.isDisable = false;\n    }\n\n    if (this.searchtext === '') {\n      this.GoalsList = this.saveFilter;\n      this.rowCount = this.GoalsList.length;\n      this.isDisable = false;\n      this.getMetricPagination(this.rowCount);\n    }\n    else {\n      this.rowCount = tempMetric.length;\n      this.getMetricPagination(this.rowCount);\n      if (this.rowsOnPageSet.length === 1) {\n        if (this.rowsOnPageSet[0] <= 10)\n\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n    }\n  }\n\n  GetPointer() {\n    this.metricData = [];\n    this.dorseyService.GetPointer(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.pointerData = subData;\n      this.metricData = this.pointerData.filter(x => x.PointerTypeID != null && x.PointerTypeID.toString() === \"2\");\n      let tempMetricData = this.metricData;\n\n      if (this.metricData.length === 0) {\n        this.metricPaging = false;\n        this.isDisable = true;\n        this.disableSearch = true;\n      }\n      else {\n\n        if (this.employeeDetails) {\n          if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLoginLevel.Department) {\n            this.metricData = this.metricData.filter(entity1 => this.teamData.some(entity2 => entity1.TeamID == entity2.TeamID));\n          }\n          else if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLoginLevel.Team) {\n            this.metricData = this.metricData.filter(ent => ent.TeamID == this.employeeDetails.TeamID)\n          }\n          else {\n            let data = this.metricData.filter(x => x.CompanyID === this.CompanyID);\n            this.metricData = data;\n          }\n        }\n\n      }\n\n      this.dynamicRows = 10;\n      this.rowsOnPageSet = [];\n\n      if (this.metricData.length === 0) {\n        this.metricPaging = false;\n        this.isDisable = true;\n        this.disableSearch = true;\n      }\n      else {\n        this.saveFilter = JSON.parse(JSON.stringify(this.metricData));\n        this.rowCount = this.metricData.length;\n        this.getMetricPagination(this.rowCount)\n\n        this.metricPaging = true;\n        this.isDisable = false;\n        this.disableSearch = false;\n\n      }\n    });\n  }\n\n  getMetricPagination(RowCount): void {\n    this.dynamicRows = 10;\n    this.rowsOnPageSet = [];\n    this.rowsOnPage = 10;\n    this.rowCount = RowCount;\n    while (this.dynamicRows < this.rowCount) {\n      this.rowsOnPageSet.push(this.dynamicRows);\n      this.dynamicRows = this.dynamicRows + 10;\n    }\n    if (!this.rowsOnPageSet.includes(this.rowCount)) {\n      this.rowsOnPageSet.push(this.rowCount);\n      if (this.rowsOnPageSet.length === 1) {\n        if (this.rowsOnPageSet[0] <= 10)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n    }\n  }\n  exportAsXLSX() {\n    let allData = JSON.parse(JSON.stringify(this.metricData));\n    for (let i = 0; i < allData.length; i++) {\n      allData[i].Team = allData[i].TeamName;\n      allData[i].Process = allData[i].ProcessName;\n      allData[i].Activity = allData[i].ActivityName;\n      allData[i]['Goal'] = allData[i].GoalName;\n      allData[i]['Metric'] = allData[i].Description;\n      allData[i][' Source'] = allData[i].Source;\n      delete (allData[i].DepartmentName);\n      delete (allData[i].EmployeeName);\n      delete (allData[i].VersionID);\n      delete (allData[i].GoalID);\n      delete (allData[i].Source);\n      delete (allData[i].GoalName);\n      delete (allData[i].Target);\n      delete (allData[i].RedRange);\n      delete (allData[i].GreenRange);\n      delete (allData[i].YellowRange);\n      delete (allData[i].CompanyID);\n      delete (allData[i].ProjectName);\n      delete (allData[i].ProcessName);\n      delete (allData[i].ActivityName);\n\n      delete (allData[i].TeamName);\n      delete (allData[i].PointerID);\n      delete (allData[i].Description);\n\n      delete (allData[i].SeverityID);\n      delete (allData[i].EmployeeID);\n\n      delete (allData[i].Type);\n      delete (allData[i].Subject);\n      delete (allData[i].ActivityID);\n      delete (allData[i].PointerTypeID);\n      delete (allData[i].StatusID);\n      delete (allData[i].DepartmentID);\n      delete (allData[i].ProcessID)\n\n      delete (allData[i].FrustrationsTypeName);\n      delete (allData[i].StatusName);\n      delete (allData[i].SeverityName)\n\n      delete (allData[i].UpdatedDate);\n      delete (allData[i].UpdatedBy);\n      delete (allData[i].ProjectID)\n\n      delete (allData[i].TeamID);\n      delete (allData[i].FrustrationsTypeID);\n      delete (allData[i].Date)\n\n      delete (allData[i].IsActive);\n      delete (allData[i].CreatedDate);\n      delete (allData[i].CreatedBy)\n    }\n\n    this.dorseyService.generateExcel(allData, this.loginCompanyName + '_metric' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Metric', \"Company: \" + this.loginCompanyName, '', \"Metric Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n\n  }\n  sort(property) {\n    this.arrow = !this.arrow;\n    this.isDesc = !this.isDesc; //change the direction    \n    this.column = property;\n    this.direction = this.isDesc ? 1 : -1;\n  }\n  GetPointerType() {\n    this.dorseyService.GetPointerType().subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.pointerTypeData = subData;\n    });\n  }\n  GetTeam() {\n    this.dorseyService.GetTeam(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.teamData = subData;\n\n      if (this.employeeDetails) {\n        if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLoginLevel.Department) {\n          this.teamData = this.teamData.filter(ent => ent.DepartmentID == this.employeeDetails.DepartmentID)\n        }\n        else if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLoginLevel.Team) {\n          this.teamData = this.teamData.filter(ent => ent.DepartmentID == this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID)\n          this.TeamName = this.teamData[0].TeamName;\n        }\n        else {\n          this.teamData = subData;\n        }\n      }\n    });\n  }\n  GetActivity() {\n    this.dorseyService.GetActivity(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.activityData = subData;\n    });\n  }\n  GetProcess() {\n    this.dorseyService.GetProcess(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.processData = subData;\n      if (this.employeeDetails) {\n        if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLoginLevel.Department) {\n          this.processData = this.processData.filter(entity1 => this.teamData.some(entity2 => entity1.TeamID == entity2.TeamID));\n        }\n        else if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLoginLevel.Team) {\n          this.processData = this.processData.filter(ent => ent.TeamID == this.employeeDetails.TeamID)\n        }\n        else {\n          this.processData = subData;\n        }\n      }\n    });\n  }\n\n  dialogCall(msg: string) {\n    const dialogRef = this.dialog.open(MetricDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: msg + 'æææ' + false,\n    });\n    if (msg === 'new') {\n      this.searchtext = '';\n      this.GetPointer();\n    }\n    dialogRef.componentInstance.EmployeeID = this.EmployeeID;\n    dialogRef.componentInstance.currentUser = this.currentUser;\n    dialogRef.componentInstance.GoalsList = this.GoalsList;\n    dialogRef.componentInstance.processData = this.processData;\n\n    dialogRef.componentInstance.activityData = this.activityData;\n    dialogRef.componentInstance.departmentData = this.departmentData;\n    dialogRef.componentInstance.pointerTypeData = this.pointerTypeData;\n    dialogRef.componentInstance.severityData = this.severityData;\n    dialogRef.componentInstance.statusData = this.statusData;\n    dialogRef.componentInstance.teamData = this.teamData;\n    dialogRef.componentInstance.employeeData = this.employeeData;\n    dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n    dialogRef.componentInstance.tempActivity = this.tempActivity;\n    dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n    dialogRef.componentInstance.CompanyID = this.CompanyID;\n    dialogRef.componentInstance.tempSubActivity = this.tempSubActivity;\n    dialogRef.componentInstance.SubActivityID = this.SubActivityID;\n    dialogRef.componentInstance.searchtext = this.searchtext;\n    dialogRef.componentInstance.GoalID = this.GoalID;\n    this.GetPointer();\n    if (msg === 'edit') {\n      this.status = true;\n      let tempProcessData = this.processData.filter(x => x.TeamID === this.TeamID);\n      dialogRef.componentInstance.processData = tempProcessData;\n      dialogRef.componentInstance.EmployeeID = this.EmployeeID;\n      dialogRef.componentInstance.ProcessID = this.ProcessID;\n      dialogRef.componentInstance.ActivityID = this.ActivityID;\n      dialogRef.componentInstance.PointerTypeID = this.PointerTypeID;\n      dialogRef.componentInstance.PointerID = this.PointerID;\n      dialogRef.componentInstance.DepartmentID = this.DepartmentID;\n      dialogRef.componentInstance.FrustrationTypeID = this.FrustrationTypeID;\n      dialogRef.componentInstance.TeamID = this.TeamID;\n      dialogRef.componentInstance.StatusID = this.StatusID;\n      dialogRef.componentInstance.SeverityID = this.SeverityID;\n      dialogRef.componentInstance.GoalID = this.GoalID\n      dialogRef.componentInstance.Subject = this.Subject;\n      dialogRef.componentInstance.Description = this.Description;\n      dialogRef.componentInstance.tempActivity = this.tempActivity;\n      dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n\n      dialogRef.componentInstance.Source = this.Source;\n\n      dialogRef.componentInstance.subActivityStatus = this.subActivityStatus;\n      dialogRef.componentInstance.SubActivityID = this.SubActivityID;\n    }\n   \n    dialogRef.afterClosed().subscribe(result => {\n\n      //  this.rowsOnPageSet=[];\n      this.dynamicRows = 10;\n      if (this.searchtext !== '' && this.searchtext !== undefined) {\n        this.Searchtext();\n      }\n      else {\n\n        this.GetPointer();\n      }\n\n      if (result.toString() === 'true') {\n        ;\n        let statusMsg = '';\n        if (msg === 'new') {\n          statusMsg = 'Saved successfully';\n        } else {\n\n          statusMsg = 'Updated successfully';\n        }\n\n\n        //  this.rowsOnPageSet=[];\n        this.dynamicRows = 10;\n      \n        this.GetPointer();\n\n        const dialogRefsub = this.dialog.open(MetricDialogComponent, {\n          panelClass: 'custom-dialog-container',\n          data: statusMsg + 'æææ' + false,\n          //  width: '30%'\n        });\n\n        setTimeout(() => {\n          this.GetActivity();\n        }, 500);\n        dialogRefsub.afterClosed().subscribe(result1 => {\n        \n          if (this.searchtext !== '') {\n            this.Searchtext();\n          }\n          else {\n            this.GetPointer();\n          }\n        });\n      }\n    });\n  }\n  GetTempActivity(ProcessID: string) {\n    this.tempActivity = [];\n    for (let i = 0; i < this.activityData.length; i++) {\n      if (this.activityData[i].ProcessID === ProcessID && this.activityData[i].ParentID == 0) {\n        this.tempActivity.push(this.activityData[i]);\n      }\n    }\n\n  }\n\n  GetTempSubActivity(ActivityID) {\n    this.tempSubActivity = [];\n    for (let i = 0; i < this.activityData.length; i++) {\n      if (this.activityData[i].ParentID === ActivityID) {\n        this.tempSubActivity.push(this.activityData[i]);\n      }\n    }\n  }\n\n  GetKeyProcessTeam(TeamID) {\n    this.tempProcess = [];\n    for (let i = 0; i < this.processData.length; i++) {\n      if (this.processData[i].TeamID.toString() === TeamID.toString()) {\n        this.TeamID = TeamID;\n      }\n    }\n  }\n\n  EditPointer(element, text) {\n    this.GetTempActivity(element.ProcessID);\n    this.PointerID = element.PointerID;\n    this.ProcessID = element.ProcessID;\n    this.PointerTypeID = element.PointerTypeID;\n    this.EmployeeID = element.EmployeeID;\n    this.SeverityID = element.SeverityID;\n    this.StatusID = element.StatusID;\n    this.Subject = element.Subject;\n    this.Description = element.Description;\n    this.DepartmentID = element.DepartmentID;\n    this.TeamID = element.TeamID;\n    this.FrustrationTypeID = element.FrustrationTypeID;\n    this.GoalID = element.GoalID;\n\n    this.Source = element.Source;\n    for (let i = 0; i < this.activityData.length; i++) {\n      if (element.ActivityID === this.activityData[i].ActivityID) {\n        this.ParentID = this.activityData[i].ParentID;\n      }\n    }\n\n    if (!this.ParentID || this.ParentID.toString() === '0') {\n      this.ActivityID = element.ActivityID;\n      this.subActivityStatus = false;\n    } else {\n      this.subActivityStatus = true;\n      this.SubActivityID = element.ActivityID;\n      this.ActivityID = this.ParentID;\n    }\n    this.dialogCall('edit');\n  }\n\n  ifMaxRow() {\n    if (this.rowsOnPage == this.metricData.length) {\n      this.rowsOnPage = this.rowsOnPage - 1;\n    }\n  }\n  DeletePointer(element) {\n    this.PointerID = element.PointerID;\n    let status: boolean;\n    this.scoreCardService.CheckMetricExistInPSCDetails(element.PointerID).subscribe(resp => {\n      status = resp.Data;\n    })\n    const dialogRef = this.dialog.open(MetricDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: 'Are you sure you want to delete metric: ' + element.Description + '?æææ' + true,\n      width: '400px',\n    });\n    dialogRef.afterClosed().subscribe(result => {\n      if (result) {\n        if (!status) {\n          this.dorseyService.DeletePointer(this.PointerID).subscribe(data => {\n            if (data.ok) {\n              this.ifMaxRow();\n              this.condition = true;\n              this.dialogCall('Deleted successfully');\n            }\n            this.GetPointer();\n          });\n        }\n        else {\n          this.dialogCall(\"Delete Failed. This metric is associated with score card\");\n        }\n      }\n    });\n  }\n}\n\n@Component({\n  selector: 'app-dialog',\n  templateUrl: 'dialog.html',\n  providers: [DorseyService, DatePipe],\n})\nexport class MetricDialogComponent implements OnInit {\n  GoalID: string;\n  GoalsList: any;\n  Source: string;\n  searchtext: string;\n  condition = false;\n  status = false;\n  employeeData: any;\n  processData: any;\n  activityData: any;\n  pointerTypeData: any;\n  frustrationtypeData: any;\n  departmentData: any;\n  teamData: any;\n  severityData: any;\n  statusData: any;\n  dataSelf = '';\n  EmployeeID: number;\n  ProcessID: string;\n  ActivityID: string;\n  PointerTypeID = \"2\";\n  FrustrationTypeID: string;\n  DepartmentID: string;\n  TeamID: string;\n  StatusID: string;\n  SeverityID: string;\n  Subject: string;\n  Description: string;\n  PointerID: string;\n  tempActivity = [];\n  tempFrustrationType = [];\n  conditionActivity = '';\n  processCtrl = new FormControl();\n  currentUser: string;\n  filteredProcess: Observable<any[]>\n  tempDepart: any;\n  tempProcess: any;\n  CompanyID: string;\n  processTeamData: any;\n\n  subActivityStatus = false;\n  SubActivityID: string;\n  tempSubActivity = [];\n  processMap = false;\n  pointerData: any;\n  breakpoint: number;\n  metricData: any;\n  btnDisabled = false;\n  constructor(\n    public dialogRef: MatDialogRef<MetricDialogComponent>,\n    @Inject(MAT_DIALOG_DATA) public data: any, public dorseyService: DorseyService, private datepipe: DatePipe) {\n    // dialogRef.disableClose=true;\n    this.data = this.data.split('æææ');\n    if (this.data[1] === 'true') {\n      this.condition = true;\n    } else if (this.data[1] === 'false') {\n      this.condition = false;\n    }\n    else {\n      if (this.data[1] === '') {\n        this.conditionActivity = 'process';\n      } else {\n        this.conditionActivity = 'activity';\n      }\n\n    }\n    this.data = this.data[0];\n  }\n\n  ngOnInit() {\n    this.breakpoint = window.innerWidth <= 900 ? 1 : 3;\n    if (this.SubActivityID) {\n      this.GetTempSubActivity(this.ActivityID);\n    }\n  }\n\n  onResize(event) {\n    this.breakpoint = (event.target.innerWidth <= 900) ? 1 : 3;\n  }\n\n\n  ValidatePh(event: any) {\n    if (\n      // Allow: Delete, Backspace, Tab, Escape, Enter\n      [46, 8, 9, 27, 13].indexOf(event.keyCode) !== -1 ||\n      (event.keyCode === 65 && event.ctrlKey === true) || // Allow: Ctrl+A\n      (event.keyCode === 67 && event.ctrlKey === true) || // Allow: Ctrl+C\n      (event.keyCode === 86 && event.ctrlKey === true) || // Allow: Ctrl+V\n      (event.keyCode === 88 && event.ctrlKey === true) || // Allow: Ctrl+X\n      (event.keyCode === 65 && event.metaKey === true) || // Cmd+A (Mac)\n      (event.keyCode === 67 && event.metaKey === true) || // Cmd+C (Mac)\n      (event.keyCode === 86 && event.metaKey === true) || // Cmd+V (Mac)\n      (event.keyCode === 88 && event.metaKey === true) || // Cmd+X (Mac)\n      (event.keyCode >= 35 && event.keyCode <= 39)  // Home, End, Left, Right\n    ) {\n      return;\n    }\n\n    if ((event.shiftKey || (event.keyCode < 48 || event.keyCode > 57)) && (event.keyCode < 96 || event.keyCode > 105)) {\n      event.preventDefault();\n    }\n  }\n\n  subactivity(event) {\n    this.SubActivityID = event.value;\n  }\n  onYesClick() {\n    this.dialogRef.close(true);\n  }\n  onNoClick(): void {\n    this.dialogRef.close();\n  }\n  ToggleSubActivity() {\n    this.subActivityStatus = !this.subActivityStatus;\n  }\n  AddPointer() {\n    this.btnDisabled = true;\n\n    setTimeout(() => {\n      this.btnDisabled = false;\n    }, 1000);\n    this.FrustrationTypeID = '0';\n    let count = 0;\n    const Editcount = 0;\n    if (this.ProcessID === undefined || //this.ActivityID === undefined ||\n      //  this.PointerTypeID === undefined || this.FrustrationTypeID === undefined ||    this.DepartmentID === undefined ||this.EmployeeID === undefined ||\n\n      this.TeamID === undefined\n      //  || this.SeverityID ===undefined|| this.Subject ==undefined\n      || this.Description === undefined || this.GoalID == undefined\n      //  || this.StatusID===undefined\n      || this.ProcessID === '' ||  //  this.EmployeeID === '' || this.UOM===''||this.Target==='' this.DepartmentID === '' ||this.PointerTypeID === '' || this.FrustrationTypeID === '' ||  this.SeverityID === '' |||| || this.StatusID === ''  this.Subject === '' ||\n      this.TeamID === '' || this.Description.trim() === '' || this.GoalID == '') {\n      this.dataSelf = 'Please enter mandatory(*) fields';\n      if (this.data === 'new') {\n\n      }\n      count++;\n    }\n\n    if (this.subActivityStatus) {\n      if (this.ActivityID === undefined || this.SubActivityID === undefined ||\n        this.ActivityID === '' || this.SubActivityID === '') {\n        this.dataSelf = 'Please enter mandatory(*) fields';\n        if (this.data === 'new') {\n\n        }\n        count++;\n\n      }\n\n    }\n    if (count === 0 && Editcount === 0) {\n      this.dataSelf = '';\n      if (this.data === 'new') {\n\n        this.Saving(this.data);\n      } else {\n        this.Saving(this.data);\n      }\n    }\n\n  }\n\n  Saving(msg: string) {\n    this.FrustrationTypeID = '0';\n    this.Subject = \"\";\n    this.SeverityID = '1';\n    this.StatusID = '1';\n\n    // if (msg === 'new') {\n    //   this.EmployeeID = 0;\n    // }\n\n    if (!this.ActivityID) {\n      this.ActivityID = \"0\";\n    }\n\n    // if (this.subActivityStatus) {\n    //   this.ActivityID = this.SubActivityID;\n    // }\n\n\n\n    let activityId: string;\n    if (this.subActivityStatus) {\n      activityId = this.SubActivityID\n    }\n    else {\n      activityId = this.ActivityID;\n    }\n    const json = {\n      // CompanyID: '1',\n      CompanyID: this.CompanyID,\n      ProjectID: '0',\n      PointerID: this.PointerID,\n      //EmployeeID: this.EmployeeID,\n      ProessID: this.ProcessID,\n      ActivityID: activityId,\n      PointerTypeID: this.PointerTypeID,\n      FrustrationsTypeID: this.FrustrationTypeID,\n      DepartmentID: \"0\",\n      EmployeeID: this.EmployeeID,\n\n      // DepartmentID: this.DepartmentID,\n      TeamID: this.TeamID,\n      SeverityID: this.SeverityID,\n      StatusID: this.StatusID,\n      Subject: this.Subject,\n      Description: this.Description,\n\n      Target: '0',\n      CreatedBy: this.currentUser,\n      UpdatedBy: this.currentUser,\n      Source: this.Source,\n      GoalID: this.GoalID\n    };\n\n    if (msg === 'new') {\n      this.dorseyService.SavePointer(json, 'No').subscribe(data => {\n\n        if (data['_body'].toString() !== \"0\") {\n\n          // this.dialogRef.close(true);\n          this.dataSelf = 'Saved succesfully';\n          //this.EmployeeID = '';\n          this.DepartmentID = '';\n          this.Description = '';\n          this.PointerID = '';\n\n          this.Source = '';\n          this.GoalID = '';\n          if (this.conditionActivity.toString() == 'process' || this.conditionActivity.toString() === 'activity') {\n            return;\n\n          }\n\n          else if (this.SubActivityID && this.conditionActivity === '') {\n            this.ActivityID = '';\n            this.SubActivityID = '';\n            this.tempSubActivity = [];\n            // this.tempActivity=[];\n          }\n          else {\n            this.ActivityID = '';\n          }\n        }\n        else {\n          this.dataSelf = 'Save failed';\n        }\n      });\n\n    }\n    else {\n\n      this.dorseyService.SavePointer(json, 'No').subscribe(data => {\n\n        if (data['_body'].toString() != '0') {\n\n          this.dataSelf = 'Updated successfully';\n          this.dialogRef.close(true);\n\n\n        } else {\n          this.dataSelf = 'Updated failed';\n        }\n      });\n    }\n\n  }\n\n\n  Clear() {\n\n\n    this.dialogRef.close(false);\n  }\n  employee(event) {\n    this.EmployeeID = event.value;\n\n    let tempEmp = this.employeeData.filter(x => x.EmployeeID === this.EmployeeID);\n\n    if (tempEmp.length > 0 && tempEmp.length === 1) {\n      this.tempDepart = this.departmentData.filter(x => x.DepartmentID === tempEmp[0].DepartmentID);\n      this.DepartmentID = this.tempDepart[0].DepartmentID;\n\n    }\n  }\n  GoalChange(event) {\n    this.GoalID = event.value;\n  }\n\n  process(event) {\n    this.ProcessID = event.value;\n    this.ActivityID = '';\n    this.SubActivityID = '';\n    this.tempActivity = [];\n    this.tempSubActivity = [];\n    this.GetTempActivity(this.ProcessID);\n    for (let i = 0; i < this.processData.length; i++) {\n      if (this.processData[i].ProcessID === this.ProcessID) {\n        this.TeamID = this.processData[i]['TeamID'];\n\n      }\n    }\n  }\n  GetTempActivity(processiD) {\n    this.tempActivity = []\n    for (let i = 0; i < this.activityData.length; i++) {\n      if (this.activityData[i].ProcessID === processiD && this.activityData[i].ParentID === 0) {\n        this.tempActivity.push(this.activityData[i]);\n      }\n    }\n\n  }\n  GetTempSubActivity(ActivityID) {\n    this.tempSubActivity = [];\n    for (let i = 0; i < this.activityData.length; i++) {\n      if (this.activityData[i].ParentID === ActivityID) {\n        this.tempSubActivity.push(this.activityData[i]);\n      }\n    }\n  }\n\n  activity(event) {\n    this.tempSubActivity = [];\n    this.ActivityID = event.value;\n    this.SubActivityID = '';\n    this.GetTempSubActivity(this.ActivityID);\n  }\n\n  pointerType(event) {\n    this.PointerTypeID = event.value;\n    this.tempFrustrationType = [];\n    this.GetTempFrastrations();\n  }\n\n  GetTempFrastrations() {\n    for (let i = 0; i < this.frustrationtypeData.length; i++) {\n      if (this.frustrationtypeData[i].PointerTypeID === this.PointerTypeID) {\n        this.tempFrustrationType.push(this.frustrationtypeData[i]);\n      }\n    }\n  }\n\n  frustrationType(event) {\n    this.FrustrationTypeID = event.value;\n  }\n\n  department(event) {\n    this.DepartmentID = event.value;\n  }\n\n  team(event) {\n    this.TeamID = event.value;\n    this.tempProcess = [];\n  }\n\n  GetKeyProcessTeam(TeamID) {\n    this.dorseyService.GetKeyProcessTeam().subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.processTeamData = subData;\n      for (let i = 0; i < this.processTeamData.length; i++) {\n        if (this.processTeamData[i].TeamID === TeamID) {\n          this.tempProcess.push(this.processTeamData[i]);\n        }\n      }\n\n    });\n  }\n\n  severity(event) {\n    this.SeverityID = event.value;\n  }\n\n  statusChange(event) {\n    this.StatusID = event.value;\n  }\n\n}\n\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { DorseyService } from '../dorsey.service';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n  selector: 'app-metricdata',\n  templateUrl: './metricdata.component.html',\n})\nexport class MetricdataComponent implements OnInit {\n\n  mainCategoryData: any;\n  p: number = 1;\n  rowsOnPage = 5;\n  rowsOnPageSet = [];\n  rowCount: any;\n  dynamicRows = 5;\n  saveFilter = [];\n  isDisable = false;\n  disableSearch = false;\n  kpiPaging = false;\n  subCategoryData: any;\n  mainData = [];\n  searchtext = '';\n  menuData: any;\n  menuID: string;\n  menuName: string;\n  empID: string;\n  MenuPermissions: any;\n  loginCompanyName: any;\n  userTeamID: any;\n  currentUser: string;\n  CompanyID: string;\n  MainCategory: any;\n  SubCategory: any;\n  RowID: any;\n  MainCategoryID: any;\n  condition = false;\n\n  isDesc: boolean = false;\n  column = \"\";\n  direction: number;\n  arrow = true;\n\n  constructor(private dorseyService: DorseyService, public dialog: MatDialog, public storage: LocalStorageService) {\n    this.currentUser = this.storage.retrieve('user');\n    this.menuData = this.storage.retrieve('menuData');\n    this.empID = this.storage.retrieve('EmployeeID');\n    this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n    this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n    this.userTeamID = this.storage.retrieve(\"TeamID\");\n  }\n\n  ngOnInit() {\n    this.CompanyID = this.storage.retrieve('companyID');\n\n    this.getKpiMainData();\n    this.getKpiSubData();\n    let tempdata = this.menuData;\n    this.menuData = tempdata.filter(x => x.MenuName.toString() === 'Metric Table');\n    if (this.menuData.length > 0) {\n      this.menuName = this.menuData[0][\"MenuName\"];\n      this.menuID = this.menuData[0][\"MenuID\"];\n    }\n  }\n\n  getKpiMainData() {\n    this.dorseyService.GetKpiMain(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.mainCategoryData = subData;\n    });\n  }\n\n  getKpiSubData() {\n    this.mainData = [];\n    this.dorseyService.GetKpiSub(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.subCategoryData = subData;\n      setTimeout(() => {\n        this.getKpiMainData();\n      }, 500);\n      for (let i = 0; i < this.mainCategoryData.length; i++) {\n        let dataList = [];\n        let dataId = [];\n        for (let j = 0; j < this.subCategoryData.length; j++) {\n          if (this.mainCategoryData[i].MainCategoryID === this.subCategoryData[j].MainCategoryID) {\n\n            dataList.push(this.subCategoryData[j].SubCategory);\n            dataId.push(this.subCategoryData[j].RowID);\n\n          }\n        }\n        if (dataList.length > 0 && dataId.length > 0) {\n          this.mainData.push({\n            'MainCategory': this.mainCategoryData[i].MainCategory,\n            'MainCategoryID': this.mainCategoryData[i].MainCategoryID,\n            'RowID': dataId,\n            'SubCategory': dataList\n          });\n        }\n\n      }\n      this.rowCount = this.mainData.length;\n      if (this.mainData.length === 0) {\n        this.kpiPaging = false;\n        this.isDisable = true;\n        this.disableSearch = true;\n      }\n      else {\n        this.saveFilter = JSON.parse(JSON.stringify(this.mainData));\n        this.kpiPaging = true;\n        this.isDisable = false;\n        this.disableSearch = false;\n\n        this.dynamicRows = 5;\n        this.rowsOnPageSet = [];\n\n        while (this.dynamicRows < this.rowCount) {\n          this.rowsOnPageSet.push(this.dynamicRows);\n          this.dynamicRows = this.dynamicRows + 5;\n        }\n        if (!this.rowsOnPageSet.includes(this.rowCount))\n          this.rowsOnPageSet.push(this.rowCount);\n        if (this.rowsOnPageSet.length === 1) {\n          if (this.rowsOnPageSet[0] <= 10)\n            this.rowsOnPage = this.rowsOnPageSet[0];\n        }\n      }\n    });\n\n\n\n\n  }\n\n\n  Searchtext() {\n    this.mainData = this.saveFilter;\n    let tempMainData = this.mainData.filter(\n      (item) => {\n        return (\n          (item.MainCategory != null && item.MainCategory.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.SubCategory != null && (item.SubCategory.filter(\n            (da) => {\n              return (\n                da != null && da.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1\n              )\n\n            }\n          )\n          )\n          ).length\n\n\n        )\n\n\n\n      }\n\n    );\n\n\n    this.mainData = tempMainData;\n    if (this.mainData.length == 0) {\n      this.isDisable = true;\n    } else {\n      this.isDisable = false;\n    }\n    if (this.searchtext === '') {\n      this.getKpiMainData();\n      this.dynamicRows = 5;\n      this.rowsOnPageSet = [];\n      this.getKpiSubData();\n      this.isDisable = false;\n    }\n  }\n\n  addData() {\n    this.dialogCall('new');\n  }\n\n  EditMetricData(element, data, ROwiDs) {\n    this.MainCategoryID = element.MainCategoryID;\n    this.RowID = ROwiDs;\n    this.MainCategory = element.MainCategoryID;\n    this.SubCategory = data;\n\n    this.storage.store('MCID', this.MainCategoryID);\n    this.storage.store('subCat', this.SubCategory);\n    this.dialogCall('edit');\n  }\n\n  //  AddSubCategory(element,data,ROwiDs){\n  //    this.MainCategory = element.MainCategory;\n  //    this.dialogCall('subcat');\n  //  }\n\n  ifMaxRow() {\n\n    if (this.rowsOnPage == this.mainData.length) {\n      this.rowsOnPage = this.rowsOnPage - 1;\n    }\n  }\n\n  DeleteMetricData(element, data, ROwiDs) {\n    this.MainCategoryID = element.MainCategoryID;\n    this.RowID = ROwiDs\n\n\n    const dialogRef = this.dialog.open(MetricDataDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: 'Are you sure you want to delete category: ' + element.MainCategory + \",\" + data + '?æææ' + true,\n      // width: '40%'\n    });\n    //   this.condition = true;\n\n    dialogRef.afterClosed().subscribe(result => {\n      if (result) {\n\n\n        this.dorseyService.DeleteMetricData(this.MainCategoryID, this.RowID).subscribe(data => {\n\n          if (data.ok) {\n            this.ifMaxRow();\n            this.condition = true;\n            this.dialogCall('Deleted successfully');\n          }\n          this.dynamicRows = 5;\n          this.rowsOnPageSet = [];\n          this.getKpiMainData();\n          this.getKpiSubData();\n        });\n\n      }\n    });\n  }\n\n  dialogCall(msg: string) {\n    const dialogRef = this.dialog.open(MetricDataDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: msg + 'æææ' + false,\n\n    });\n    dialogRef.componentInstance.currentUser = this.currentUser;\n    dialogRef.componentInstance.mainData = this.mainData;\n    dialogRef.componentInstance.CompanyID = this.CompanyID;\n    dialogRef.componentInstance.mainCategoryData = this.mainCategoryData;\n    dialogRef.componentInstance.subCategoryData = this.subCategoryData;\n\n    if (msg === 'new') {\n\n      this.searchtext = '';\n      //this.getKpiMainData();\n      this.dynamicRows = 5;\n      this.rowsOnPageSet = [];\n      this.getKpiSubData();\n    }\n    if (msg === 'edit') {\n\n      dialogRef.componentInstance.MainCategory = this.MainCategory;\n      dialogRef.componentInstance.RowID = this.RowID;\n      dialogRef.componentInstance.SubCategory = this.SubCategory;\n      dialogRef.componentInstance.MainCategoryID = this.MainCategoryID;\n    }\n\n    dialogRef.afterClosed().subscribe(result => {\n      this.dynamicRows = 5;\n      this.rowsOnPageSet = [];\n      if (this.searchtext !== '') {\n        this.Searchtext();\n      }\n      else {\n        this.getKpiMainData();\n        this.getKpiSubData();\n      }\n\n      if (result.toString() === 'true') {\n\n        let statusMsg = '';\n        if (msg === 'new') {\n          statusMsg = 'Saved successfully';\n        }\n        else {\n\n          statusMsg = 'Updated successfully';\n        }\n        this.dynamicRows = 5;\n        this.rowsOnPageSet = [];\n        this.getKpiMainData();\n        this.getKpiSubData();\n\n        const dialogRefsub = this.dialog.open(MetricDataDialogComponent, {\n          panelClass: 'custom-dialog-container',\n          data: statusMsg + 'æææ' + false,\n          //  width: '30%'\n        });\n\n        setTimeout(() => {\n          this.dynamicRows = 5;\n          this.rowsOnPageSet = [];\n          this.getKpiMainData();\n          this.getKpiSubData();\n        }, 500);\n        dialogRefsub.afterClosed().subscribe(result1 => {\n          this.dynamicRows = 5;\n          this.rowsOnPageSet = [];\n\n          if (this.searchtext !== '') {\n            this.Searchtext();\n          }\n          else {\n            this.getKpiMainData();\n            this.getKpiSubData();\n          }\n\n\n          //  this.GetFrustrationType();\n        });\n      }\n    });\n\n\n  }\n\n  sort(property) {\n    this.arrow = !this.arrow;\n    this.isDesc = !this.isDesc; //change the direction    \n    this.column = property;\n    this.direction = this.isDesc ? 1 : -1;\n  }\n\n  exportAsXLSX() {\n    let allData: any;\n    let subcat = '';\n    allData = JSON.parse(JSON.stringify(this.mainData));\n    for (let i = 0; i < allData.length; i++) {\n      let subcat = '';\n      for (let j = 0; j < allData[i].SubCategory.length; j++) {\n        subcat = subcat + allData[i].SubCategory[j] + '\\n';\n      }\n      allData[i].SubCategory = subcat;\n\n      delete allData[i].MainCategoryID;\n      delete allData[i].RowID;\n    }\n\n\n    this.dorseyService.generateExcel(allData, this.loginCompanyName + '_metric' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Metric', \"Company: \" + this.loginCompanyName, '', \"Metric Table Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n    // const json = {\n    //   data:allData\n    //       }\n    //       this.dorseyService.Export(json,this.loginCompanyName+'_metric',this.loginCompanyName,'Metric').subscribe(data=>{\n\n    //       });\n  }\n\n}\n\n@Component({\n  selector: 'app-dialog',\n  templateUrl: 'dialog.html',\n  // styleUrls: ['dialog.css'],\n  providers: [DorseyService, MetricdataComponent]\n})\nexport class MetricDataDialogComponent implements OnInit {\n  SubCategory: string;\n  condition = false;\n  dataSelf: string;\n  MainCategory: string;\n  RowID: string;\n  MainCategoryID: string;\n  mainData: any;\n  CompanyID: string;\n  currentUser: string;\n  mainCategoryData: any;\n  subCategoryData: any;\n  editSubData: any;\n  btnDisabled = false;\n  constructor(\n    public dialogRef: MatDialogRef<MetricDataDialogComponent>,\n    @Inject(MAT_DIALOG_DATA) public data: any, public dorseyService: DorseyService, private storage: LocalStorageService) {\n    //  dialogRef.disableClose=true;\n    this.data = this.data.split('æææ');\n    if (this.data[1] === 'true') {\n      this.condition = true;\n    } else {\n      this.condition = false;\n    }\n    this.data = this.data[0];\n  }\n  ngOnInit() {\n  }\n  onYesClick() {\n    this.dialogRef.close(true);\n  }\n  onNoClick(): void {\n    this.dialogRef.close();\n  }\n\n\n  getKpiMainData() {\n    this.dorseyService.GetKpiMain(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.mainCategoryData = subData;\n    });\n  }\n\n  getKpiSubData() {\n    this.mainData = [];\n    this.dorseyService.GetKpiSub(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.subCategoryData = subData;\n    });\n  }\n  AddMetCategory() {\n    this.btnDisabled = true;\n\n    setTimeout(() => {\n      this.btnDisabled = false;\n    }, 1000);\n    let count = 0;\n    const Editcount = 0;\n\n    if (this.MainCategory == undefined ||\n      this.MainCategory === '' || this.SubCategory == undefined ||\n      this.SubCategory.trim() === '') {\n      this.dataSelf = 'Please enter mandatory(*) fields';\n      if (this.data === 'new') {\n      }\n      count++;\n    }\n\n    if (count === 0 && Editcount === 0) {\n      this.dataSelf = '';\n      if (this.data === 'new') {\n        this.Saving(this.data);\n      } else {\n        this.Saving(this.data);\n      }\n    } else {\n    }\n  }\n  Saving(msg: string) {\n    const json = {\n      MainCategoryID: this.MainCategoryID,\n      MainCategory: this.MainCategory,\n      CreatedBy: this.currentUser,\n      RowID: this.RowID,\n      CompanyID: this.CompanyID,\n      SubCategory: this.SubCategory,\n      UpdatedBy: this.currentUser\n    };\n    if (msg === 'new') {\n      let subData = this.subCategoryData.filter(x => x.MainCategoryID === this.MainCategoryID);\n      for (let i = 0; i < subData.length; i++) {\n        if (subData[i].SubCategory.toLowerCase().trim() === this.SubCategory.toLowerCase().trim()) {\n          this.dataSelf = 'Subcategory already exists';\n          return;\n        }\n      }\n\n      this.dorseyService.SaveMetricData(json, 'No').subscribe(data => {\n        if (data['_body'].toString() === 'true') {\n          this.dataSelf = 'Saved successfully';\n          this.getKpiSubData();\n          this.getKpiMainData();\n          this.MainCategory = '';\n          this.SubCategory = '';\n          setTimeout(() => {\n            this.dataSelf = '';\n          }, 2000);\n        } else {\n          this.dataSelf = 'Save failed';\n        }\n\n      });\n    } else {\n      this.editSubData = this.subCategoryData.filter(x => x.MainCategoryID === this.MainCategoryID);\n      for (let i = 0; i < this.editSubData.length; i++) {\n        if (this.MainCategoryID === this.storage.retrieve('MCID')) {\n          if (this.editSubData[i].SubCategory.toLowerCase().trim() === this.SubCategory.toLowerCase().trim() && this.editSubData[i].SubCategory.toLowerCase().trim() !== this.storage.retrieve('subCat').toLowerCase().trim()) {\n            this.dataSelf = 'Subcategory already exists';\n            return;\n          }\n        } else {\n          if (this.editSubData[i].SubCategory.toLowerCase().trim() === this.SubCategory.toLowerCase().trim()) {\n            this.dataSelf = 'Subcategory already exists';\n            return;\n          }\n        }\n\n      }\n      this.dorseyService.SaveMetricData(json, 'No').subscribe(data => {\n        if (data['_body'].toString() === 'true') {\n          this.dialogRef.close(true);\n        } else {\n          this.dataSelf = 'Updated successfully';\n          this.getKpiSubData();\n          this.getKpiMainData();\n        }\n      });\n    }\n  }\n  Clear() {\n    this.dialogRef.close(false);\n  }\n  mainChange(event) {\n    this.MainCategoryID = event.value;\n  }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { Department } from '../departments/department.model';\nimport { ScoreCardTypeEnum } from '../performance-score-card/performance-score-card.model';\nimport { DepartmentService } from '../services/department.service';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n  selector: 'app-nometric-process',\n  templateUrl: './nometric-process.component.html',\n  // styleUrls: ['./nometric-process.component.scss']\n})\nexport class NometricProcessComponent implements OnInit {\n  copyRight: string = copyRight;\n  employeeDetails: any;\n  NometricData: any;\n  searchtext: string;\n  isDesc: boolean = false;\n  column = \"\";\n  direction: number;\n  arrow = true;\n  p: number = 1;\n  rowsOnPage = 10;\n  departmentList: Array<Department> = [];\n  selectedDepartmentId: number;\n  toggleTeam: boolean = false;\n  scoreCardTypes: string[] = [ScoreCardTypeEnum.Department, ScoreCardTypeEnum.Team];\n  rowsOnPageSet = [];\n  rowCount: any;\n  selectedReportType: string;\n  departmentName: string;\n  dynamicRows = 10;\n  processPaging = false;\n  saveFilter = [];\n  CompanyID: string;\n  isDisable = false;\n  disableSearch = false;\n  teamData: any;\n  TeamID: any;\n  filterData: any;\n  EmployeeID: string;\n  tempTeam = [];\n  companyName: string;\n  headerDate = new Date();\n  TeamName: string;\n  employeeData: any;\n  copyDate: number;\n  loginCompanyName: string;\n  constructor(public dorseyService: DorseyService,\n    private departmentService: DepartmentService, private storage: LocalStorageService) {\n\n    this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n    this.EmployeeID == this.storage.retrieve('EmployeeID');\n    this.EmployeeID = this.storage.retrieve('EmployeeID');\n    this.companyName = this.storage.retrieve('LoginCompanyName');\n    this.employeeDetails = this.storage.retrieve('employeeDetails');\n    if (this.EmployeeID.toString() === \"0\") {\n    }\n    else {\n      this.TeamID = this.storage.retrieve('TeamID');\n    }\n\n  }\n\n  ngOnInit() {\n    this.CompanyID = this.storage.retrieve('companyID');\n    if (this.employeeDetails) {\n      if ((this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) || (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team)) {\n        this.toggleTeam = true;\n        this.getTeamsByDepartmentId(this.employeeDetails.DepartmentID)\n      }\n      else {\n        this.reportTypeChange(ScoreCardTypeEnum.Department)\n      }\n    }\n    else {\n      this.reportTypeChange(ScoreCardTypeEnum.Department)\n    }\n    this.copyDate = (new Date()).getFullYear();\n  }\n\n  teamChange(event): void {\n    this.searchtext = '';\n    this.selectedDepartmentId = 0;\n    this.TeamID = event.value;\n    let teamd = this.teamData.filter(x => x.TeamID === this.TeamID)\n    if (teamd.length > 0) {\n      this.TeamName = teamd[0].TeamName;\n    }\n    this.ConstructReport();\n  }\n  reportTypeChange(scoreCardType: string): void {\n    this.searchtext = '';\n    this.departmentList = [];\n    this.teamData = [];\n    this.filterData = [];\n    this.selectedDepartmentId = 0;\n    this.TeamID = 0;\n    this.selectedReportType = scoreCardType;\n    this.toggleTeam = scoreCardType === ScoreCardTypeEnum.Department ? false : true;\n    this.getDepartments();\n    this.getTeamsByDepartmentId(this.selectedDepartmentId);\n  }\n\n  departmentChange(selectedDepartmentId): void {\n    this.searchtext = '';\n    this.getTeamsByDepartmentId(selectedDepartmentId);\n    this.departmentName = this.departmentList.find(ent => ent.DepartmentID === selectedDepartmentId).DepartmentName;\n  }\n\n  private getDepartments(): void {\n    this.departmentService.getDepartments(Number(this.CompanyID)).subscribe(resp => {\n      this.departmentList = resp.Data;\n      if (this.employeeDetails) {\n        if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n          this.departmentList = this.departmentList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n        }\n        else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n          this.departmentList = this.departmentList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n          this.getTeamsByDepartmentId(this.employeeDetails.DepartmentID);\n        }\n      }\n      this.departmentList.splice(0, 0, { DepartmentID: 0, DepartmentName: 'Aggregate Report', DepartmentDescription: '0', CompanyID: Number(this.CompanyID), CreatedBy: '', UpdatedBy: '' });\n    });\n  }\n\n  private getTeamsByDepartmentId(selectedDepartmentId): void {\n    this.dorseyService.GetTeam(this.CompanyID.toString()).subscribe(resp => {\n      var companyTeamList = JSON.parse(resp['_body']);\n      this.teamData = companyTeamList;\n      if (this.employeeDetails && companyTeamList) {\n        if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n          this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID)\n        }\n        else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n          this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID);\n          this.selectedDepartmentId = this.teamData[0].DepartmentID;\n          this.TeamID = this.teamData[0].TeamID;\n          this.TeamName = this.teamData[0].TeamName;\n        }\n        else {\n          if (!selectedDepartmentId) {\n            this.selectedDepartmentId = 0;\n            this.teamData = companyTeamList;\n          }\n          else if (selectedDepartmentId == 0) {\n            this.teamData = companyTeamList;\n          }\n          else {\n            this.teamData = this.teamData.filter(ent => ent.DepartmentID === selectedDepartmentId);\n          }\n        }\n      }\n      else {\n        if (selectedDepartmentId == 0)\n          this.teamData = companyTeamList;\n        else\n          this.teamData = companyTeamList.filter(ent => ent.DepartmentID === selectedDepartmentId);\n      }\n      this.dorseyService.GetNoMetricProcess(this.CompanyID).subscribe(pointer => {\n        this.NometricData = JSON.parse(pointer['_body']);\n\n        if (!this.TeamID)\n          this.TeamID = 0;\n        if (this.TeamID == 0) {\n          this.teamData = this.teamData.filter(entity1 => this.NometricData.find(entity2 => entity1.TeamID == entity2.TeamID));\n          if (this.teamData.length > 0)\n            this.teamData.splice(0, 0, { TeamID: 0, TeamName: 'Aggregate Report' });\n        }\n\n        this.ConstructReport();\n\n      });\n\n    });\n  }\n\n  ConstructReport() {\n    this.filterData = [];\n    this.NometricData = [];\n    this.dorseyService.GetNoMetricProcess(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.NometricData = subData;\n      if (!this.TeamID)\n        this.filterData = this.NometricData.filter(entity1 => this.teamData.find(entity2 => entity1.TeamID == entity2.TeamID));\n\n      else {\n        this.filterData = this.NometricData.filter(entity1 => entity1.TeamID == this.TeamID);\n      }\n\n      if (this.filterData.length === 0) {\n        this.processPaging = false;\n        this.isDisable = true;\n        this.disableSearch = true;\n      }\n      else {\n        this.processPaging = true;\n        this.isDisable = false;\n        this.disableSearch = false;\n        this.saveFilter = JSON.parse(JSON.stringify(this.filterData));\n\n        this.dynamicRows = 10;\n        this.rowsOnPageSet = [];\n        this.rowCount = this.filterData.length;\n\n        while (this.dynamicRows < this.rowCount) {\n          this.rowsOnPageSet.push(this.dynamicRows);\n          this.dynamicRows = this.dynamicRows + 10;\n        }\n        if (!this.rowsOnPageSet.includes(this.rowCount))\n          this.rowsOnPageSet.push(this.rowCount);\n        if (this.rowsOnPageSet.length > 0) {\n          if (this.rowsOnPageSet[0] <= 10)\n            this.rowsOnPage = this.rowsOnPageSet[0];\n        }\n      }\n    });\n  }\n\n  Searchtext() {\n    this.filterData = this.saveFilter;\n\n    let tempNoMetric = this.filterData.filter(\n      (item) => {\n        return (\n          (item.ProcessName !== null && item.ProcessName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.CompanyName !== null && item.CompanyName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.DepartmentName !== null && item.DepartmentName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.ProcessDescription !== null && item.ProcessDescription.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n          || (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n        );\n      }\n\n    );\n    this.filterData = tempNoMetric;\n    if (this.filterData.length == 0) {\n      this.isDisable = true;\n    } else {\n      this.isDisable = false;\n    }\n    if (this.searchtext === '') {\n      this.ConstructReport();\n      this.isDisable = false;\n    }\n  }\n\n  sort(property) {\n    this.arrow = !this.arrow;\n    this.isDesc = !this.isDesc; //change the direction    \n    this.column = property;\n    this.direction = this.isDesc ? 1 : -1;\n  }\n  exportAsXLSX() {\n    let allData = JSON.parse(JSON.stringify(this.filterData));\n    for (let i = 0; i < this.filterData.length; i++) {\n      allData[i][\"No \"] = i + 1;\n\n      allData[i].Company = this.filterData[i].CompanyName;\n      if (this.selectedReportType === ScoreCardTypeEnum.Department) {\n        allData[i][\"Department\"] = this.filterData[i].DepartmentName;\n      }\n      allData[i].Team = this.filterData[i].TeamName;\n      allData[i].Process = this.filterData[i].ProcessName;\n      allData[i].Description = this.filterData[i].ProcessDescription;\n\n      delete (allData[i].DepartmentName);\n      delete (allData[i].ProcessID);\n      delete (allData[i].CompanyName);\n      delete (allData[i].ProcessName);\n      delete (allData[i].ProcessDescription);\n      delete (allData[i].TeamName);\n      delete (allData[i].TeamID);\n    }\n\n\n    let name: any;\n    if (this.selectedReportType == ScoreCardTypeEnum.Department && this.departmentName) {\n      name = this.departmentName;\n    } else if ((!this.selectedReportType || this.selectedReportType == ScoreCardTypeEnum.Team) && this.TeamName) {\n      name = this.TeamName;\n    } else {\n      name = \"Aggregate Report\";\n    }\n    this.dorseyService.generateExcel(allData,\n      this.loginCompanyName + '_Process with no metrics' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(),\n      'Process with no metrics',\n      \"Company: \" + this.loginCompanyName,\n      this.selectedReportType ? this.selectedReportType + \": \" + name : 'Team' + \": \" + name,\n      \"Process with no metrics Report\",\n      copyRight,\n      'FFFFFF00',\n      'FF0000FF');\n  }\n}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL29yZ2FuaXphdGlvbi9vcmdhbml6YXRpb24uY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, Inject, OnInit } from '@angular/core';\nimport { OrganizationDetails } from './organization.model';\nimport { OrganizationService } from '../services/organization.service'\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\nimport { DorseyService } from '../dorsey.service';\nimport { Router } from '@angular/router';\nimport { OrganizationLicenseDetails } from '../company/company.model';\nimport { LocationStrategy } from '@angular/common';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n  selector: 'app-organization',\n  templateUrl: './organization.component.html',\n  styleUrls: ['./organization.component.scss']\n})\nexport class OrganizationComponent implements OnInit {\n  [x: string]: any;\n  organizationID: number;\n  isSearchDisable = false;\n  saveFilter: Array<OrganizationDetails> = [];\n  isDisable = false;\n  condition: boolean;\n  searchtext: string = '';\n  p: number = 1;\n  rowsOnPage = 10;\n  rowsOnPageSet = [];\n  rowCount: any;\n  dynamicRows = 10;\n  isDesc: boolean = false;\n  column = '';\n  direction: number;\n  arrow = true;\n  licenseDetails: OrganizationLicenseDetails;\n  companyPaging = false;\n  MenuPermissions: any;\n  organizationDetails: OrganizationDetails;\n  currentUser: string;\n  companyID: number;\n  emailUnique: any;\n  menuData: any;\n  menuID: string;\n  menuName: string;\n  organization: Array<OrganizationDetails> = []; rolesData: any;\n  userData: any;\n  userRoleData: any;\n  adminUserName: any;\n  adminEmail: any;\n  adminPassword: any;\n  userRoleName: string;\n  loginUsername: any;\n  isSuperAdmin: boolean = true;\n  loginLevel: string;\n  constructor(\n    private router: Router,\n    private storage: LocalStorageService,\n    public dialog: MatDialog,\n    public organizationService: OrganizationService,\n    private location: LocationStrategy,\n    private dorseyService: DorseyService) {\n    this.currentUser = this.storage.retrieve('user');\n    this.menuData = this.storage.retrieve('menuData');\n    this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n    this.adminUserName = this.storage.retrieve('adminUname');\n    this.adminEmail = this.storage.retrieve('username');\n    this.adminPassword = this.storage.retrieve('password');\n    this.loginUsername = this.storage.retrieve('loginUsername');\n    this.loginLevel = this.storage.retrieve(\"loginLevel\");\n\n    //to disable back button\n    history.pushState(null, null, window.location.href);\n    this.location.onPopState(() => {\n      history.pushState(null, null, window.location.href);\n    });\n  }\n\n  ngOnInit(): void {\n    if (this.menuData) {\n      this.menuData = this.menuData.find(x => x.MenuName.toString().toLowerCase() === 'organization');\n      if (this.menuData) {\n        this.menuName = this.menuData[\"MenuName\"];\n        this.menuID = this.menuData[\"MenuID\"];\n      }\n    }\n    this.getRoles(0);\n    this.getUsers();\n    this.getUserRoleAssignment();\n    this.getOrganizations();\n  }\n\n  getRoles(companyID) {\n    this.dorseyService.GetRoles(companyID).subscribe(users => {\n      this.rolesData = JSON.parse(users['_body']);\n    });\n\n  }\n\n  getUsers() {\n    this.dorseyService.GetUsersList().subscribe(users => {\n      this.userData = JSON.parse(users['_body']);\n    });\n  }\n\n  getUserRoleAssignment() {\n    this.dorseyService.GetUserRoleAssignment().subscribe(userRoles => {\n      this.userRoleData = JSON.parse(userRoles['_body']);\n    });\n  }\n\n  getOrganizations(): void {\n    this.organizationService.getOrganizations().subscribe(resp => {\n      this.organization = resp.Data;\n      this.rowsOnPageSet = [];\n      this.dynamicRows = 10;\n      this.rowCount = this.organization.length;\n      if (this.organization.length === 0) {\n        this.companyPaging = false;\n        this.isDisable = true;\n        this.isSearchDisable = true;\n      }\n      else {\n        this.saveFilter = JSON.parse(JSON.stringify(this.organization));\n        this.companyPaging = true;\n        this.isDisable = false;\n        this.isSearchDisable = false;\n        this.organizationPagination(this.rowCount);\n      }\n    });\n  }\n\n  newOrganiation(): void {\n    this.organizationDetails = {\n      OrganizationID: 0,\n      OrganizationName: '',\n      OrganizationDescription: '',\n      Address1: '',\n      Address2: '',\n      Country: '',\n      State: '',\n      City: '',\n      Pincode: '',\n      Email: '',\n      Phone: '',\n      CreatedBy: this.currentUser,\n      UpdatedBy: this.currentUser,\n      NoOfLicenses: 0,\n      UserID: 0,\n      UserName: '',\n      Password: '',\n      FirstName: '',\n      LastName: '',\n      EmployeeID: 0,\n      CompanyID: 0,\n      RowID: 0,\n      RoleID: 0,\n    }\n    this.dialogCall('new');\n  }\n\n  sort(property) {\n    this.arrow = !this.arrow;\n    this.isDesc = !this.isDesc; //change the direction\n    this.column = property;\n    this.direction = this.isDesc ? 1 : -1;\n  }\n  editOrganization(organization): void {\n    this.organizationDetails = organization;\n    this.storage.store('OName', this.organizationDetails.OrganizationName);\n    this.storage.store('UName', this.organizationDetails.UserName);\n    this.getCompaniesCountByOrganizationId();\n  }\n\n  getCompaniesCountByOrganizationId(): void {\n    this.organizationService.getCompaniesCountByOrganizationId(this.organizationDetails.OrganizationID).subscribe(resp => {\n      this.licenseDetails = resp.Data[0];\n      this.dialogCall('edit');\n    });\n  }\n\n  deleteOrganization(organizationROw: any): void {\n    this.organizationID = organizationROw.OrganizationID;\n    const dialogRef = this.dialog.open(OrganizationDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: 'Are you sure you want to delete organization: ' + organizationROw.OrganizationName + '?æææ' + true,\n    });\n    dialogRef.afterClosed().subscribe(result => {\n      if (result) {\n        this.organizationService.deleteOrganization(this.organizationID).subscribe(resp => {\n          if (resp.Data) {\n            this.condition = true;\n            this.dialogCall('Deleted successfully');\n            this.organization = [];\n            this.getOrganizations();\n          } else {\n            this.dialogCall('Delete Failed');\n          }\n          this.dynamicRows = 10;\n          this.rowsOnPageSet = [];\n        });\n      }\n    });\n\n  }\n\n\n  exportAsXLSX(): void {\n    let allData = JSON.parse(JSON.stringify(this.organization));\n    for (let i = 0; i < allData.length; i++) {\n      allData[i][\"Organization\"] = allData[i].OrganizationName;\n      allData[i][\"Email \"] = allData[i].Email;\n      allData[i][\"Phone \"] = allData[i].Phone;\n      allData[i][\"No Of Licenses\"] = allData[i].NoOfLicenses;\n\n      delete (allData[i].Email);\n      delete (allData[i].Phone);\n      delete (allData[i].OrganizationID);\n      delete (allData[i].CompanyID);\n      delete (allData[i].UserID);\n      delete (allData[i].UserName);\n      delete (allData[i].FirstName);\n      delete (allData[i].LastName);\n      delete (allData[i].EmployeeID);\n      delete (allData[i].Password);\n      delete (allData[i].OrganizationID);\n      delete (allData[i].OrganizationName);\n      delete (allData[i].OrganizationDescription);\n      delete (allData[i].Address1);\n      delete (allData[i].Address2);\n      delete (allData[i].Country);\n      delete (allData[i].City);\n      delete (allData[i].State);\n      delete (allData[i].Pincode);\n      delete (allData[i].NoOfLicenses);\n      delete (allData[i].UpdatedBy);\n      delete (allData[i].UpdatedDate);\n      delete (allData[i].CreatedBy);\n      delete (allData[i].CreatedDate);\n      delete (allData[i].IsActive);\n    }\n\n    this.dorseyService.generateExcel(allData, 'Organization' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Organization', \"Organization: \" + this.loginUsername, '', \"Organization Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n\n  }\n  searchText(): void {\n    this.organization = this.saveFilter;\n    let orgList = this.organization.filter(\n      (item) => {\n        return (\n          (item.OrganizationName !== null && item.OrganizationName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.Email !== null && item.Email.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.Phone !== null && item.Phone.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n\n        );\n      }\n    );\n    this.organization = orgList;\n    if (this.organization.length == 0) {\n      this.isDisable = true;\n    } else {\n      this.isDisable = false;\n    }\n    if (this.searchtext === '') {\n      this.organization = this.saveFilter;\n      this.rowCount = this.organization.length;\n      this.isDisable = false;\n      this.organizationPagination(this.rowCount);\n    }\n    else {\n      this.rowCount = orgList.length;\n      this.organizationPagination(this.rowCount);\n      if (this.rowsOnPageSet.length === 1) {\n        if (this.rowsOnPageSet[0] <= 10)\n\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n    }\n  }\n\n  organizationPagination(RowCount) {\n    this.dynamicRows = 10;\n    this.rowsOnPageSet = [];\n    this.rowsOnPage = 10;\n    this.rowCount = RowCount;\n    while (this.dynamicRows < this.rowCount) {\n      this.rowsOnPageSet.push(this.dynamicRows);\n      this.dynamicRows = this.dynamicRows + 10;\n    }\n    if (!this.rowsOnPageSet.includes(this.rowCount)) {\n      this.rowsOnPageSet.push(this.rowCount);\n      if (this.rowsOnPageSet.length === 1) {\n        if (this.rowsOnPageSet[0] <= 10)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n    }\n  }\n\n  viewCompanies(element): void {\n    let orgDetails = {\n      OrganizationId: element.OrganizationID,\n      OrganizationName: element.OrganizationName,\n      NoOfLicenses: element.NoOfLicenses,\n      IsSuperAdmin: this.isSuperAdmin\n    }\n    this.storage.store(\"OrganizationDetails\", orgDetails);\n    this.router.navigate(['/entity']);\n  }\n\n  dialogCall(msg: string) {\n    this.getUsers();\n    const dialogRef = this.dialog.open(OrganizationDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: msg + 'æææ' + false,\n    });\n    dialogRef.componentInstance.organizationDetails = this.organizationDetails;\n    dialogRef.componentInstance.organizationID = this.organizationID;\n    dialogRef.componentInstance.currentUser = this.currentUser;\n    dialogRef.componentInstance.organization = this.saveFilter;\n    dialogRef.componentInstance.saveFilter = this.saveFilter;\n    dialogRef.componentInstance.licenseDetails = this.licenseDetails;\n    dialogRef.componentInstance.userListData = this.userData;\n\n    if (msg == 'edit' || msg == 'new') {\n      this.searchtext = '';\n    }\n    dialogRef.afterClosed().subscribe(result => {\n      if (this.searchtext !== '' && this.searchtext !== undefined) {\n        this.searchText();\n      }\n      else {\n        this.getOrganizations();\n      }\n\n\n      if (result && result.toString() === 'true') {\n        let statusMsg = '';\n        if (msg === 'new') {\n          statusMsg = 'Saved successfully';\n        }\n        else {\n          statusMsg = 'Updated successfully';\n        }\n        const dialogRefsub = this.dialog.open(OrganizationDialogComponent, {\n          panelClass: 'custom-dialog-container',\n          data: statusMsg + 'æææ' + false,\n          //  width: '30%'\n        });\n        setTimeout(() => {\n          this.getOrganizations();\n        }, 500);\n        dialogRefsub.afterClosed().subscribe(result1 => {\n          this.dynamicRows = 10;\n          if (this.searchtext !== '') {\n            this.searchText();\n          }\n          else {\n            this.getOrganizations();\n          }\n        });\n      } else {\n        this.getOrganizations();\n      }\n    });\n  }\n}\n@Component({\n  selector: 'app-dialog',\n  templateUrl: 'dialog.html',\n  providers: [DorseyService],\n})\nexport class OrganizationDialogComponent {\n\n  organizationDetails: OrganizationDetails;\n  organizationID: number;\n  public breakpoint: number; // Breakpoint observer code\n  dataSelf = '';\n  condition: boolean;\n  currentUser: string;\n  organization: Array<OrganizationDetails> = [];\n  saveFilter: Array<OrganizationDetails> = [];\n  btnDisabled = false;\n  licenseDetails: OrganizationLicenseDetails;\n  userListData: any;\n\n  constructor(\n    public dialogRef: MatDialogRef<OrganizationDialogComponent>,\n    @Inject(MAT_DIALOG_DATA) public data: any, public dorseyService: DorseyService, private storage: LocalStorageService, private orgService: OrganizationService) {\n    //  dialogRef.disableClose=true;\n    this.data = this.data.split('æææ');\n\n    if (this.data[1] === 'true') {\n      this.condition = true;\n\n    } else {\n      this.condition = false;\n    }\n    this.data = this.data[0];\n\n  }\n\n  ngOnInit() {\n    this.breakpoint = window.innerWidth <= 1000 ? 1 : 3;\n  }\n\n  onResize(event): void {\n    this.breakpoint = (event.target.innerWidth <= 1000) ? 1 : 3;\n  }\n  onYesClick() {\n    this.dialogRef.close(true);\n  }\n  onNoClick(): void {\n    this.dialogRef.close();\n  }\n\n  validateOrganization(): void {\n    this.dataSelf = '';\n    if (!this.organizationDetails.OrganizationName.trim()\n      || !this.organizationDetails.FirstName.trim()\n      || !this.organizationDetails.LastName.trim()\n      || !this.organizationDetails.Address1.trim()\n      || !this.organizationDetails.Country.trim()\n      || !this.organizationDetails.State.trim()\n      || !this.organizationDetails.City.trim()\n      || !this.organizationDetails.Pincode\n      || !this.organizationDetails.Phone\n      || !this.organizationDetails.Email\n      || !this.organizationDetails.UserName.trim()\n      || !this.organizationDetails.Password\n    ) {\n      this.dataSelf = 'Please enter mandatory(*) fields';\n      return;\n    }\n    else {\n      var mailformat = /^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/;\n      if (!this.organizationDetails.Email.match(mailformat)) {\n        this.dataSelf = 'Please enter valid email';\n\n        return;\n      }\n    }\n    if (this.organizationDetails.NoOfLicenses == 0) {\n      this.dataSelf = 'Please enter No. of Licenses';\n      return;\n    }\n    this.saveOrganization(this.data);\n\n  }\n\n\n  saveOrganization(msg: string): void {\n    if (this.organizationDetails.OrganizationID) {\n      this.organizationDetails.UpdatedBy = this.currentUser;\n    }\n    if (msg == 'new') {\n      if (this.organization.find(ent => ent.OrganizationName.toLowerCase().trim() === this.organizationDetails.OrganizationName.toLowerCase().trim())) {\n        this.dataSelf = \"Organization name already exists\";\n        return;\n      }\n\n      if (this.userListData.find(ent => ent.UserName.toLowerCase().trim() === this.organizationDetails.UserName.toLowerCase().trim())) {\n        this.dataSelf = \"UserName already exists\";\n        return;\n      }\n      this.orgService.saveOrganization(this.organizationDetails).subscribe(resp => {\n        if (resp.Data) {\n          this.dataSelf = 'Saved successfully';\n          setTimeout(() => {\n            this.dataSelf = '';\n          }, 2000);\n\n\n          this.dialogRef.close(true);\n\n        } else {\n          this.dataSelf = 'Save failed';\n        }\n      });\n    }\n    else {\n      this.organization = this.organization.filter(ent => ent.OrganizationID !== this.organizationDetails.OrganizationID);\n      if (this.organization.find(ent => ent.OrganizationName.toLowerCase().trim() == this.organizationDetails.OrganizationName.toLowerCase().trim())) {\n        this.dataSelf = 'Organization name already exists';\n        return;\n      }\n\n      this.userListData = this.userListData.filter(ent => ent.UserID !== this.organizationDetails.UserID);\n      if (this.userListData.find(ent => ent.UserName.toLowerCase().trim() == this.organizationDetails.UserName.toLowerCase().trim())) {\n        this.dataSelf = 'UserName already exist';\n        return;\n      }\n      if (this.organizationDetails.NoOfLicenses < Number(this.licenseDetails.UsedLicenses)) {\n        this.dataSelf = 'Cannot update licenses as entities exist for this organization';\n        return;\n      }\n      this.orgService.saveOrganization(this.organizationDetails).subscribe(resp => {\n        if (resp.Data === true) {\n          this.dialogRef.close(true);\n        } else {\n          this.dataSelf = 'Updated successfully';\n        }\n      });\n    }\n  }\n  clear(): void {\n    this.dialogRef.close(false);\n  }\n  keyPress(event: any): void {\n    const pattern = /[0-9\\+\\-\\ ]/;\n\n    let inputChar = String.fromCharCode(event.charCode);\n    if (event.keyCode != 8 && !pattern.test(inputChar)) {\n      event.preventDefault();\n    }\n  }\n\n  isAlpha(evt: any) {\n    var keyCode = (evt.which) ? evt.which : evt.keyCode\n    if ((keyCode < 65 || keyCode > 90) && (keyCode < 97 || keyCode > 123) && keyCode != 32)\n      return false;\n    return true;\n  }\n\n  validatePhone(event: any): void {\n    if ((event.key) == \"Backspace\" || event.key == \"ArrowLeft\" || event.key == \"ArrowRight\") {\n      return;\n    } else {\n      const regexpattern = '^[0-9]\\d*$';\n      if (!event.key.match(regexpattern)) {\n        event.preventDefault();\n      }\n    }\n\n  }\n\n  validateEmail(event: any): void {\n    var re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n\n    if (!this.organizationDetails.Email) {\n      if (event.keyCode == 32) {\n        event.preventDefault();\n      }\n    }\n  }\n\n\n  valZero(): void {\n    var re = /^(?=.*\\d)(?=.*[1-9]).{1,16}$/;\n    if (this.organizationDetails.Phone !== '') {\n      if (!this.organizationDetails.Phone.match(re)) {\n        this.dataSelf = \"Phone number invalid\";\n\n        this.organizationDetails.Phone = \"\";\n\n        setTimeout(() => {\n          this.dataSelf = \"\";\n        }, 2000);\n      }\n    }\n\n  }\n\n  validate() {\n\n  }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { Department } from '../departments/department.model';\nimport { ScoreCardTypeEnum } from '../performance-score-card/performance-score-card.model';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { DepartmentService } from '../services/department.service';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n  selector: 'app-other-frustration',\n  templateUrl: './other-frustration.component.html',\n  // styleUrls: ['./other-frustration.component.scss']\n})\nexport class OtherFrustrationComponent implements OnInit {\n  copyRight: string = copyRight;\n  frustrationOtherData: any;\n  searchtext: string;\n  isDesc: boolean = false;\n  column = \"\";\n  direction: number;\n  arrow = true;\n  p: number = 1;\n  rowsOnPage = 10;\n  rowsOnPageSet = [];\n  rowCount: any;\n  dynamicRows = 10;\n  processPaging = false;\n  saveFilter = [];\n  departmentName: string;\n  CompanyID: string;\n  isDisable = false;\n  selectedReportType: string;\n  disableSearch = false;\n  teamData: any;\n  TeamID: any;\n  filterData: any;\n  EmployeeID: string;\n  tempTeam = [];\n  companyName: string;\n  headerDate = new Date();\n  TeamName: string;\n  employeeData: any;\n  copyDate: number;\n  employeeDetails: any;\n  departmentList: Array<Department> = [];\n  selectedDepartmentId: number;\n  toggleTeam: boolean = false;\n  scoreCardTypes: string[] = [ScoreCardTypeEnum.Department, ScoreCardTypeEnum.Team];\n  constructor(public dorseyService: DorseyService,\n    private departmentService: DepartmentService, private storage: LocalStorageService) {\n    this.EmployeeID = this.storage.retrieve('EmployeeID');\n    this.employeeDetails = this.storage.retrieve('employeeDetails');\n    this.companyName = this.storage.retrieve('LoginCompanyName');\n\n    if (this.EmployeeID.toString() === \"0\") {\n\n    }\n    else {\n      this.TeamID = this.storage.retrieve('TeamID');\n    }\n  }\n\n  ngOnInit() {\n    this.CompanyID = this.storage.retrieve('companyID');\n\n    if (this.employeeDetails) {\n\n      if ((this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) || (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team)) {\n        this.toggleTeam = true;\n\n        this.getTeamsByDepartmentId(this.employeeDetails.DepartmentID)\n      }\n      else {\n        this.reportTypeChange(ScoreCardTypeEnum.Department)\n      }\n    }\n    else {\n      this.reportTypeChange(ScoreCardTypeEnum.Department)\n    }\n\n    this.copyDate = (new Date()).getFullYear();\n\n  }\n\n  private getTeamsByDepartmentId(selectedDepartmentId): void {\n\n    this.dorseyService.GetTeam(this.CompanyID.toString()).subscribe(resp => {\n      var companyTeamList = JSON.parse(resp['_body']);\n      this.teamData = companyTeamList;\n\n      if (this.employeeDetails && companyTeamList) {\n        if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n          this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n        }\n        else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n          this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID);\n          this.selectedDepartmentId = this.teamData[0].DepartmentID;\n          this.TeamID = this.teamData[0].TeamID;\n          this.TeamName = this.teamData[0].TeamName;\n        }\n        else {\n          if (!selectedDepartmentId) {\n            this.selectedDepartmentId = 0;\n            this.teamData = companyTeamList;\n          }\n          else if (selectedDepartmentId == 0) {\n            this.teamData = companyTeamList;\n          }\n          else {\n            this.teamData = this.teamData.filter(ent => ent.DepartmentID === selectedDepartmentId);\n          }\n\n        }\n      }\n      else {\n        if (selectedDepartmentId == 0)\n          this.teamData = companyTeamList;\n        else\n          this.teamData = companyTeamList.filter(ent => ent.DepartmentID === selectedDepartmentId);\n      }\n      this.dorseyService.GetFrustrationWithOther(this.CompanyID).subscribe(pointer => {\n        this.frustrationOtherData = JSON.parse(pointer['_body']);\n\n        if (!this.TeamID)\n          this.TeamID = 0;\n\n        if (this.TeamID == 0) {\n          this.teamData = this.teamData.filter(entity1 => this.frustrationOtherData.find(entity2 => entity1.TeamID == entity2.TeamID));\n          if (this.teamData.length > 0)\n            this.teamData.splice(0, 0, { TeamID: 0, TeamName: 'Aggregate Report' });\n        }\n        this.ConstructReport();\n\n      });\n\n    });\n  }\n\n  teamChange(event): void {\n    this.searchtext = '';\n    this.selectedDepartmentId = 0;\n    this.TeamID = event.value;\n    let teamd = this.teamData.filter(x => x.TeamID === this.TeamID)\n    if (teamd.length > 0) {\n      this.TeamName = teamd[0].TeamName;\n    }\n    this.ConstructReport();\n  }\n  reportTypeChange(scoreCardType: string): void {\n    this.searchtext = '';\n\n    this.departmentList = [];\n    this.teamData = [];\n    this.filterData = [];\n    this.selectedDepartmentId = 0;\n    this.TeamID = 0;\n    this.selectedReportType = scoreCardType;\n    this.toggleTeam = scoreCardType === ScoreCardTypeEnum.Department ? false : true;\n    this.getDepartments();\n    this.getTeamsByDepartmentId(this.selectedDepartmentId);\n    this.ConstructReport();\n  }\n\n  departmentChange(selectedDepartmentId): void {\n    this.searchtext = '';\n    this.getTeamsByDepartmentId(selectedDepartmentId)\n    this.departmentName = this.departmentList.find(ent => ent.DepartmentID === selectedDepartmentId).DepartmentName;\n  }\n\n  private getDepartments(): void {\n    this.departmentService.getDepartments(Number(this.CompanyID)).subscribe(resp => {\n      this.departmentList = resp.Data;\n      if (this.employeeDetails) {\n        if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n          this.departmentList = this.departmentList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n        }\n        else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n          this.departmentList = this.departmentList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n          this.getTeamsByDepartmentId(this.employeeDetails.DepartmentID);\n        }\n\n      }\n      this.departmentList.splice(0, 0, { DepartmentID: 0, DepartmentName: 'Aggregate Report', DepartmentDescription: '0', CompanyID: Number(this.CompanyID), CreatedBy: '', UpdatedBy: '' });\n    });\n  }\n\n\n  ConstructReport() {\n    this.filterData = [];\n    if (!this.TeamID) {\n      this.filterData = this.frustrationOtherData.filter(entity1 => this.teamData.find(entity2 => entity1.TeamID == entity2.TeamID));\n    }\n    else {\n      this.filterData = this.frustrationOtherData.filter(entity1 => entity1.TeamID == this.TeamID);\n    }\n\n    if (this.filterData.length === 0) {\n      this.processPaging = false;\n      this.isDisable = true;\n      this.disableSearch = true;\n    }\n    else {\n      this.processPaging = true;\n      this.isDisable = false;\n      this.disableSearch = false;\n\n      this.saveFilter = JSON.parse(JSON.stringify(this.filterData));\n      this.rowCount = this.filterData.length;\n      this.getOtherPagination(this.rowCount)\n    }\n\n\n\n  }\n\n  Searchtext() {\n    this.filterData = this.saveFilter;\n    let tempfrustOther = this.filterData.filter(\n      (item) => {\n        return (\n          (item.ProcessName !== null && item.ProcessName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.DepartmentName !== null && item.DepartmentName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.ActivityName !== null && item.ActivityName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.Subject !== null && item.Subject.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.Description !== null && item.Description.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.ProjectName !== null && item.ProjectName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n          || (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n          || (item.StatusName !== null && item.StatusName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.SeverityName !== null && item.SeverityName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n        );\n      }\n\n    );\n    this.filterData = tempfrustOther;\n    if (this.filterData.length == 0) {\n\n      this.isDisable = true;\n    } else {\n      this.isDisable = false;\n    }\n\n    if (this.searchtext === '') {\n      this.filterData = this.saveFilter;\n      this.rowCount = this.filterData.length;\n      this.isDisable = false;\n      this.getOtherPagination(this.rowCount);\n    }\n    else {\n      this.rowCount = tempfrustOther.length;\n      this.getOtherPagination(this.rowCount);\n      if (this.rowsOnPageSet.length === 1) {\n        if (this.rowsOnPageSet[0] <= 10)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n    }\n  }\n  getOtherPagination(RowCount): void {\n    this.dynamicRows = 10;\n    this.rowsOnPageSet = [];\n    this.rowsOnPage = 10;\n    this.rowCount = RowCount;\n    while (this.dynamicRows < this.rowCount) {\n      this.rowsOnPageSet.push(this.dynamicRows);\n      this.dynamicRows = this.dynamicRows + 10;\n    }\n    if (!this.rowsOnPageSet.includes(this.rowCount)) {\n      this.rowsOnPageSet.push(this.rowCount);\n      if (this.rowsOnPageSet.length === 1) {\n        if (this.rowsOnPageSet[0] <= 10)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n    }\n  }\n  sort(property) {\n    this.arrow = !this.arrow;\n    this.isDesc = !this.isDesc; //change the direction    \n    this.column = property;\n    this.direction = this.isDesc ? 1 : -1;\n  }\n  exportAsXLSX() {\n    let allData = JSON.parse(JSON.stringify(this.filterData));\n    for (let i = 0; i < allData.length; i++) {\n      allData[i][\" No. \"] = i + 1;\n      if (this.selectedReportType === ScoreCardTypeEnum.Department) {\n        allData[i][\"Department\"] = this.filterData[i].DepartmentName;\n      }\n      allData[i].Team = this.filterData[i].TeamName;\n      allData[i].Process = this.filterData[i].ProcessName;\n      allData[i].Activity = this.filterData[i].ActivityName;\n      allData[i][\" Type \"] = this.filterData[i].FrustrationsTypeName;\n      allData[i][\" Frustration \"] = this.filterData[i].Subject;\n      allData[i][\" Description \"] = this.filterData[i].Description;\n      allData[i][\" Project Name\"] = this.filterData[i].ProjectName;\n      allData[i].Status = this.filterData[i].StatusName;\n      allData[i][\" Severity \"] = this.filterData[i].SeverityName;\n\n      delete (allData[i].DepartmentName);\n      delete (allData[i].SeverityName);\n\n      delete (allData[i].GreenRange);\n      delete (allData[i].RedRange);\n      delete (allData[i].YellowRange);\n      delete (allData[i].TeamName);\n      delete (allData[i].ProcessName);\n      delete (allData[i].ActivityName);\n      delete (allData[i].PointerID);\n      delete (allData[i].ActivityID);\n      delete (allData[i].PointerTypeID);\n      delete (allData[i].Subject);\n      delete (allData[i].Description);\n      delete (allData[i].EmployeeID);\n      delete (allData[i].Type);\n      delete (allData[i].StatusID);\n      delete (allData[i].SeverityID);\n      delete (allData[i].ProcessID);\n      delete (allData[i].DepartmentID);\n      delete (allData[i].TeamID);\n      delete (allData[i].FrustrationsTypeID);\n      delete (allData[i].Date);\n      delete (allData[i].IsActive);\n      delete (allData[i].CreatedDate);\n      delete (allData[i].CreatedBy);\n      delete (allData[i].UpdatedDate);\n      delete (allData[i].UpdatedBy);\n      delete (allData[i].FrustrationsTypeName);\n      delete (allData[i].ProjectName);\n      delete (allData[i].StatusName);\n      delete (allData[i].ProjectID);\n\n      delete (allData[i].SeverityName);\n      delete (allData[i].PointerID);\n\n    }\n\n\n    let name: any;\n    if (this.selectedReportType == ScoreCardTypeEnum.Department && this.departmentName) {\n      name = this.departmentName;\n    } else if ((!this.selectedReportType || this.selectedReportType == ScoreCardTypeEnum.Team) && this.TeamName) {\n      name = this.TeamName;\n    } else {\n      name = \"Aggregate Report\";\n    }\n    this.dorseyService.generateExcel(allData, this.companyName + '_Other category frustrations' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Other category frustrations', \"Company: \" + this.companyName, this.selectedReportType ? this.selectedReportType + \": \" + name : 'Team' + \": \" + name, \"Other category frustrations Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n  }\n}\n\n","module.exports = \".field {\\n  margin-left: 2%;\\n}\\n\\n#tableActions {\\n  justify-content: flex-start !important;\\n}\\n\\ntable {\\n  width: 100%;\\n  font-size: smaller;\\n  border-collapse: collapse;\\n}\\n\\nth, td {\\n  text-align: center;\\n  font-size: smaller;\\n}\\n\\nth {\\n  color: white;\\n  background-color: #474747;\\n  height: 35px;\\n  font-size: 13px;\\n}\\n\\ntd {\\n  height: 35px;\\n  font-size: 13px;\\n}\\n\\ntable, th, td {\\n  border: 1px solid #e1e1e1;\\n  overflow: hidden;\\n  word-wrap: break-word;\\n}\\n\\ntable.fixed {\\n  table-layout: fixed;\\n}\\n\\ntable.fixed td {\\n  overflow: hidden;\\n}\\n\\n.highlight td {\\n  background: #C0C0C0;\\n}\\n\\n.warningMsg {\\n  text-align: center;\\n  color: red;\\n}\\n\\n.fa-arrow-down, .fa-arrow-up {\\n  font-size: 10px;\\n}\\n\\n.margin-5 {\\n  margin: 5px;\\n}\\n\\n.text-underline {\\n  text-decoration: underline;\\n}\\n\\n.btnWrapper button {\\n  margin: 2.5% 1% 0% 0.5% !important;\\n}\\n\\n.current-quarter {\\n  background-color: #9cd99c;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGVyZm9ybWFuY2Utc2NvcmUtY2FyZC9GOlxcTmlraWwgV29ya1xcUHJvamVjdHNcXERvcnNleVxcSGllcmFyY2h5IFNvdXJjZSBDb2RlXFxXb3JraW5nXFxkb3JzZXlHcm91cC9zcmNcXGFwcFxccGVyZm9ybWFuY2Utc2NvcmUtY2FyZFxccGVyZm9ybWFuY2Utc2NvcmUtY2FyZC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvcGVyZm9ybWFuY2Utc2NvcmUtY2FyZC9wZXJmb3JtYW5jZS1zY29yZS1jYXJkLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksZUFBQTtBQ0NKOztBREVBO0VBQ0ksc0NBQUE7QUNDSjs7QURFQTtFQUNJLFdBQUE7RUFDQSxrQkFBQTtFQUNBLHlCQUFBO0FDQ0o7O0FEQ0E7RUFDSSxrQkFBQTtFQUNBLGtCQUFBO0FDRUo7O0FEQ0E7RUFDSSxZQUFBO0VBQ0EseUJBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtBQ0VKOztBRENBO0VBQ0ksWUFBQTtFQUNBLGVBQUE7QUNFSjs7QURDQTtFQUNJLHlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxxQkFBQTtBQ0VKOztBRENBO0VBQWMsbUJBQUE7QUNHZDs7QUREQTtFQUFpQixnQkFBQTtBQ0tqQjs7QURIQTtFQUFlLG1CQUFBO0FDT2Y7O0FETEE7RUFDSSxrQkFBQTtFQUNBLFVBQUE7QUNRSjs7QURMQTtFQUNJLGVBQUE7QUNRSjs7QURMQTtFQUNJLFdBQUE7QUNRSjs7QURMQTtFQUNJLDBCQUFBO0FDUUo7O0FETEE7RUFDSSxrQ0FBQTtBQ1FKOztBRExBO0VBQ0kseUJBQUE7QUNRSiIsImZpbGUiOiJzcmMvYXBwL3BlcmZvcm1hbmNlLXNjb3JlLWNhcmQvcGVyZm9ybWFuY2Utc2NvcmUtY2FyZC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5maWVsZHtcclxuICAgIG1hcmdpbi1sZWZ0OiAyJTtcclxufVxyXG5cclxuI3RhYmxlQWN0aW9uc3tcclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG50YWJsZSB7XHJcbiAgICB3aWR0aDoxMDAlO1xyXG4gICAgZm9udC1zaXplOiBzbWFsbGVyO1xyXG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcclxufVxyXG50aCx0ZHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcclxufVxyXG5cclxudGgge1xyXG4gICAgY29sb3I6d2hpdGU7ICAgICBcclxuICAgIGJhY2tncm91bmQtY29sb3I6IzQ3NDc0NztcclxuICAgIGhlaWdodDogMzVweDtcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxufVxyXG5cclxudGQge1xyXG4gICAgaGVpZ2h0OiAzNXB4O1xyXG4gICAgZm9udC1zaXplOiAxM3B4O1xyXG59XHJcblxyXG50YWJsZSwgdGgsIHRkIHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMWUxZTE7XHJcbiAgICBvdmVyZmxvdzpoaWRkZW47XHJcbiAgICB3b3JkLXdyYXA6YnJlYWstd29yZDtcclxufVxyXG5cclxudGFibGUuZml4ZWQgeyB0YWJsZS1sYXlvdXQ6Zml4ZWQ7IH1cclxuXHJcbnRhYmxlLmZpeGVkIHRkIHsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxyXG5cclxuLmhpZ2hsaWdodCB0ZCB7YmFja2dyb3VuZDogI0MwQzBDMDt9XHJcblxyXG4ud2FybmluZ01zZyB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjb2xvcjogcmVkO1xyXG59XHJcblxyXG4uZmEtYXJyb3ctZG93biwgLmZhLWFycm93LXVwe1xyXG4gICAgZm9udC1zaXplOiAxMHB4XHJcbn1cclxuXHJcbi5tYXJnaW4tNXtcclxuICAgIG1hcmdpbjogNXB4O1xyXG59XHJcblxyXG4udGV4dC11bmRlcmxpbmV7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxufVxyXG5cclxuLmJ0bldyYXBwZXIgYnV0dG9uIHtcclxuICAgIG1hcmdpbjogMi41JSAxJSAwJSAwLjUlICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5jdXJyZW50LXF1YXJ0ZXJ7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWNkOTljO1xyXG59IiwiLmZpZWxkIHtcbiAgbWFyZ2luLWxlZnQ6IDIlO1xufVxuXG4jdGFibGVBY3Rpb25zIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG59XG5cbnRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cblxudGgsIHRkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IHNtYWxsZXI7XG59XG5cbnRoIHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDc0NzQ3O1xuICBoZWlnaHQ6IDM1cHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cblxudGQge1xuICBoZWlnaHQ6IDM1cHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cblxudGFibGUsIHRoLCB0ZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMWUxZTE7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cblxudGFibGUuZml4ZWQge1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xufVxuXG50YWJsZS5maXhlZCB0ZCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5oaWdobGlnaHQgdGQge1xuICBiYWNrZ3JvdW5kOiAjQzBDMEMwO1xufVxuXG4ud2FybmluZ01zZyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6IHJlZDtcbn1cblxuLmZhLWFycm93LWRvd24sIC5mYS1hcnJvdy11cCB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbn1cblxuLm1hcmdpbi01IHtcbiAgbWFyZ2luOiA1cHg7XG59XG5cbi50ZXh0LXVuZGVybGluZSB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4uYnRuV3JhcHBlciBidXR0b24ge1xuICBtYXJnaW46IDIuNSUgMSUgMCUgMC41JSAhaW1wb3J0YW50O1xufVxuXG4uY3VycmVudC1xdWFydGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzljZDk5Yztcbn0iXX0= */\"","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Router } from '@angular/router';\r\nimport { LocalStorageService } from 'ngx-webstorage';\r\nimport { ValidationDialogComponent } from '../add-score-card/validation-dialog';\r\nimport { Department } from '../departments/department.model';\r\nimport { DorseyService } from '../dorsey.service';\r\nimport { DepartmentService } from '../services/department.service';\r\nimport { ScoreCard, ScoreCardTypeEnum } from './performance-score-card.model';\r\nimport { PerformanceScoreCardService } from './performance-score-card.service';\r\nimport { BsDatepickerConfig } from 'ngx-bootstrap/datepicker';\r\nimport { ScoreCardMaster, PSCMetricDetails } from '../add-score-card/add-score-card.model';\r\nimport { ResponseDialogComponent } from '../add-score-card/response-dialog';\r\nimport { QuarterService } from '../services/quarter.service';\r\nconst Moment = require('moment');\r\nimport { extendMoment } from 'moment-range';\r\nconst moment = extendMoment(Moment);\r\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\r\n@Component({\r\n  selector: 'app-performance-score-card',\r\n  templateUrl: './performance-score-card.component.html',\r\n  styleUrls: ['./performance-score-card.component.scss']\r\n})\r\nexport class PerformanceScoreCardComponent implements OnInit {\r\n\r\n  employeeDetails: any;\r\n  isViewScoreCard: boolean = false;\r\n  pscMetricDetails: Array<PSCMetricDetails>;\r\n  selectedMetrics: Array<PSCMetricDetails> = [];\r\n  departmentList: Array<Department> = [];\r\n  companyId: number;\r\n  selectedDepartmentId: number;\r\n  selectedTeamId: number;\r\n  teamList: any = [];\r\n  scoreCardTypes: string[] = [ScoreCardTypeEnum.Department, ScoreCardTypeEnum.Team];\r\n  toggleTeam: boolean = false;\r\n  selectedScoreCardType: string;\r\n  scoreCard: ScoreCard;\r\n  YearPickerConfig: Partial<BsDatepickerConfig>;\r\n  masterScoreCards: Array<ScoreCardMaster> = [];\r\n\r\n  MenuPermissions: any;\r\n  menuData: any;\r\n  menuID: string;\r\n  menuName: string;\r\n  column = \"\";\r\n  direction: number;\r\n  arrow = true;\r\n  isDesc: boolean = false;\r\n  isDisable = false;\r\n  disableSearch = false;\r\n  p: number = 1;\r\n  rowsOnPage = 10;\r\n  rowsOnPageSet = [];\r\n  rowCount: any;\r\n  dynamicRows = 10;\r\n  scoreCardMasterId: number;\r\n  masterScoreCard: ScoreCardMaster;\r\n  WeekDateList = [];\r\n  latestScoreCardId: number;\r\n  isScoreCardEnable: boolean = false;\r\n  constructor(private departmentService: DepartmentService,\r\n    private dorseyService: DorseyService,\r\n    private storage: LocalStorageService,\r\n    private scoreCardService: PerformanceScoreCardService,\r\n    private quarterService: QuarterService,\r\n    private router: Router,\r\n    public dialog: MatDialog) {\r\n    this.menuData = this.storage.retrieve('menuData');\r\n    this.MenuPermissions = this.storage.retrieve('MenuPermissions');\r\n    this.employeeDetails = this.storage.retrieve('employeeDetails');\r\n    this.isScoreCardEnable = this.storage.retrieve('isScoreCardEnable');\r\n\r\n    this.YearPickerConfig = Object.assign({},\r\n      { containerClass: 'theme-dark-blue', showWeekNumbers: false, dateInputFormat: 'YYYY' });\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.companyId = this.storage.retrieve('companyID');\r\n    this.menuData = this.menuData.filter(x => x.MenuName.toString().toLowerCase() === 'score card');\r\n    if (this.menuData.length > 0) {\r\n      this.menuName = this.menuData[0][\"MenuName\"];\r\n      this.menuID = this.menuData[0][\"MenuID\"];\r\n    }\r\n    if (this.employeeDetails) {\r\n      if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\r\n        this.selectedScoreCardType = EmployeeLoginLevel.Team;\r\n        this.scoreCardTypeChange(this.selectedScoreCardType);\r\n      }\r\n    }\r\n  }\r\n\r\n  /*Set Pagination for score cards */\r\n\r\n  scoreCardPagination(RowCount): void {\r\n    this.dynamicRows = 10;\r\n    this.rowsOnPageSet = [];\r\n    this.rowsOnPage = 10;\r\n    this.rowCount = RowCount;\r\n    while (this.dynamicRows < this.rowCount) {\r\n      this.rowsOnPageSet.push(this.dynamicRows);\r\n      this.dynamicRows = this.dynamicRows + 10;\r\n    }\r\n    if (!this.rowsOnPageSet.includes(this.rowCount)) {\r\n      this.rowsOnPageSet.push(this.rowCount);\r\n      if (this.rowsOnPageSet.length === 1) {\r\n        if (this.rowsOnPageSet[0] <= 10)\r\n          this.rowsOnPage = this.rowsOnPageSet[0];\r\n      }\r\n    }\r\n  }\r\n\r\n  scoreCardTypeChange(scoreCardType: string): void {\r\n    this.masterScoreCards = [];\r\n    this.toggleTeam = scoreCardType === ScoreCardTypeEnum.Department ? false : true;\r\n    this.getDepartments();\r\n    this.getTeamsByDepartmentId(this.selectedDepartmentId);\r\n  }\r\n\r\n  departmentChange(selectedDepartmentId): void {\r\n    this.masterScoreCards = [];\r\n    if (this.selectedScoreCardType === ScoreCardTypeEnum.Team) {\r\n      this.getTeamsByDepartmentId(selectedDepartmentId);\r\n    }\r\n  }\r\n\r\n  teamChange(teamId: number): void {\r\n    this.masterScoreCards = [];\r\n  }\r\n\r\n  showMasterScoreCards(): void {\r\n    if (!this.validateFields()) {\r\n      return;\r\n    }\r\n    this.masterScoreCards = [];\r\n    this.scoreCardService.GetScoreCardMasterByDepartmentId(this.selectedDepartmentId, this.companyId).subscribe(resp => {\r\n      this.masterScoreCards = resp.Data;\r\n      if (this.selectedScoreCardType === ScoreCardTypeEnum.Team) {\r\n        this.masterScoreCards = this.masterScoreCards.filter(ent => ent.TeamID === this.selectedTeamId);\r\n      } else {\r\n        this.masterScoreCards = this.masterScoreCards.filter(ent => ent.TeamID === 0);\r\n      }\r\n\r\n      this.rowCount = this.masterScoreCards.length;\r\n      if (this.masterScoreCards.length === 0) {\r\n        this.isDisable = true;\r\n        this.disableSearch = true;\r\n      }\r\n      else {\r\n        this.latestScoreCardId = this.masterScoreCards[0].Id;\r\n        this.isDisable = false;\r\n        this.disableSearch = false;\r\n        this.scoreCardPagination(this.rowCount);\r\n      }\r\n      this.masterScoreCards = this.masterScoreCards.map(ele => {\r\n        return {\r\n          Id: ele.Id,\r\n          CompanyID: ele.CompanyID,\r\n          ScoreCardType: ele.ScoreCardType,\r\n          DepartmentID: ele.DepartmentID,\r\n          TeamID: ele.TeamID,\r\n          QuarterId: ele.QuarterId,\r\n          Year: ele.Year,\r\n          ScoreCardName: ele.ScoreCardName,\r\n          CreatedBy: ele.CreatedBy,\r\n          UpdatedBy: ele.UpdatedBy,\r\n          QuarterName: 'Quarter ' + ele.QuarterId,//ele.ScoreCardName.split('_')[1],\r\n          CompanyName: ele.CompanyName,\r\n          DepartmentName: ele.DepartmentName,\r\n          TeamName: ele.TeamName\r\n        }\r\n      });\r\n    });\r\n  }\r\n\r\n  openScoreCard(): void {\r\n    if (!this.validateFields()) {\r\n      return;\r\n    }\r\n    this.assignScoreCardValues();\r\n    this.router.navigate(['add-score-card', 0, 0]);\r\n  }\r\n\r\n  editScoreCard(scoreCard): void {\r\n    this.assignScoreCardValues();\r\n    this.router.navigate(['add-score-card', scoreCard.Id, 0]);\r\n  }\r\n\r\n  deleteScoreCard(scoreCard): void {\r\n    const dialogRef = this.dialog.open(PerformanceScoreCardDialogComponent, {\r\n      panelClass: 'custom-dialog-container',\r\n      data: 'Are you sure you want to delete score card : ' + scoreCard.ScoreCardName + '?æææ' + true,\r\n    });\r\n\r\n    dialogRef.afterClosed().subscribe(result => {\r\n      if (result) {\r\n        this.scoreCardService.DeleteScoreCardMaster(scoreCard.Id).subscribe(resp => {\r\n          if (resp.Data == true) {\r\n            this.dialog.open(ResponseDialogComponent, {\r\n              data: {\r\n                message: 'Delete successful'\r\n              }\r\n            });\r\n            this.showMasterScoreCards();\r\n          }\r\n        });\r\n      }\r\n    });\r\n  }\r\n\r\n  ///private methods\r\n  private validateFields(): boolean {\r\n    var errorMessages = [];\r\n    if (!this.selectedScoreCardType) {\r\n      errorMessages.push(\"Please select Type\");\r\n    }\r\n    if (!this.selectedDepartmentId) {\r\n      errorMessages.push(\"Please select Department\");\r\n    }\r\n    if (this.selectedScoreCardType === ScoreCardTypeEnum.Team) {\r\n      if (!this.selectedTeamId) {\r\n        errorMessages.push(\"Please select Team\");\r\n      }\r\n    }\r\n\r\n    if (errorMessages.length != 0) {\r\n      this.dialog.open(ValidationDialogComponent, {\r\n        data: {\r\n          errorMessages: errorMessages\r\n        }\r\n      });\r\n      return false;\r\n    }\r\n    return true;\r\n  }\r\n\r\n  private getDepartments(): void {\r\n    this.departmentService.getDepartments(this.companyId).subscribe(resp => {\r\n      this.departmentList = resp.Data;\r\n      if (this.employeeDetails) {\r\n\r\n        if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\r\n          this.departmentList = this.departmentList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\r\n        }\r\n        else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\r\n          this.departmentList = this.departmentList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\r\n          this.getTeamsByDepartmentId(this.employeeDetails.DepartmentID);\r\n\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  private getTeamsByDepartmentId(selectedDepartmentId): void {\r\n    this.dorseyService.GetTeam(this.companyId.toString()).subscribe(resp => {\r\n      var companyTeamList = JSON.parse(resp['_body']);\r\n      this.teamList = companyTeamList;\r\n      if (this.employeeDetails && companyTeamList) {\r\n        if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\r\n          this.teamList = this.teamList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\r\n        }\r\n        else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\r\n          this.teamList = this.teamList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID);\r\n          this.selectedDepartmentId = this.teamList[0].DepartmentID;\r\n          this.selectedTeamId = this.teamList[0].TeamID;\r\n        }\r\n      }\r\n      else {\r\n        this.teamList = companyTeamList.filter(ent => ent.DepartmentID === selectedDepartmentId);\r\n      }\r\n    });\r\n  }\r\n\r\n  private assignScoreCardValues() {\r\n    var department = this.departmentList.find(ent => ent.DepartmentID === this.selectedDepartmentId);\r\n    var team = this.teamList.find(ent => ent.TeamID === this.selectedTeamId);\r\n    this.scoreCard = {\r\n      ScoreCardType: this.selectedScoreCardType,\r\n      DepartmentId: this.selectedDepartmentId,\r\n      DepartmentName: department ? department.DepartmentName : '',\r\n      TeamId: (this.selectedScoreCardType == ScoreCardTypeEnum.Team && this.selectedTeamId) ? this.selectedTeamId : 0,\r\n      TeamName: (this.selectedScoreCardType == ScoreCardTypeEnum.Team && team) ? team.TeamName : ''\r\n    };\r\n    this.scoreCardService.scoreCard.next(this.scoreCard);\r\n  }\r\n\r\n  viewScoreCard(scoreCard): void {\r\n    this.scoreCardMasterId = scoreCard.Id;\r\n    this.scoreCardService.GetPerformanceScoreCardDetails(scoreCard.CompanyID, scoreCard.DepartmentID, scoreCard.TeamID, scoreCard.Id).subscribe(resp => {\r\n      this.pscMetricDetails = resp.AdditionalData.PSCDetails;\r\n      this.selectedMetrics = this.pscMetricDetails.filter(ent => ent.IsSelected === true);\r\n      this.processData();\r\n      var quarter = resp.AdditionalData.QuarterDetails;\r\n      var months = quarter.filter(val => val.QuarterID == scoreCard.QuarterId);\r\n      if (months.length > 0)\r\n        this.WeekDateList = this.quarterService.getWeekMonths(months, Number(scoreCard.Year), quarter[0].QuarterWeekDay, quarter[0].QuarterWeekDate);\r\n      this.scoreCard = scoreCard;\r\n      this.isViewScoreCard = true;\r\n    });\r\n  }\r\n\r\n  private processData(): void {\r\n    const goalSeen = {};\r\n    this.selectedMetrics = this.selectedMetrics.sort((a, b) => {\r\n      return a.GoalName.localeCompare(b.GoalName);\r\n    }).map(x => {\r\n      const goalSpan = goalSeen[x.GoalName] ? 0 :\r\n        this.selectedMetrics.filter(y => y.GoalName === x.GoalName).length;\r\n      goalSeen[x.GoalName] = true;\r\n      return { ...x, goalSpan };\r\n    });\r\n  }\r\n\r\n  viewScoreCardChangedHandler(value: boolean): void {\r\n    this.isViewScoreCard = value;\r\n  }\r\n\r\n  goToAddScoreCardChangedHandler(event): void {\r\n    this.assignScoreCardValues();\r\n    this.router.navigate(['add-score-card', this.scoreCardMasterId, 3]);\r\n  }\r\n\r\n  sort(property): void {\r\n    this.arrow = !this.arrow;\r\n    this.isDesc = !this.isDesc; //change the direction\r\n    this.column = property;\r\n    this.direction = this.isDesc ? 1 : -1;\r\n  }\r\n\r\n}\r\n\r\n\r\n@Component({\r\n  selector: 'app-dialog',\r\n  templateUrl: 'dialog.html',\r\n})\r\nexport class PerformanceScoreCardDialogComponent implements OnInit {\r\n\r\n  condition = false;\r\n\r\n  constructor(\r\n    public dialogRef: MatDialogRef<PerformanceScoreCardDialogComponent>,\r\n    @Inject(MAT_DIALOG_DATA) public data: any) {\r\n    this.data = this.data.split('æææ');\r\n    if (this.data[1] === 'true') {\r\n      this.condition = true;\r\n    } else {\r\n      this.condition = false;\r\n    }\r\n    this.data = this.data[0];\r\n  }\r\n\r\n  ngOnInit(): void { }\r\n\r\n  onYesClick(): void {\r\n    this.dialogRef.close(true);\r\n  }\r\n\r\n  onNoClick(): void {\r\n    this.dialogRef.close();\r\n  }\r\n}\r\n","export enum ScoreCardTypeEnum {\r\n    Department = \"Department\",\r\n    Team = \"Team\"\r\n}\r\n\r\nexport interface ScoreCard {\r\n    ScoreCardType: string,\r\n    DepartmentId: number,\r\n    TeamId: number,\r\n    DepartmentName: string,\r\n    TeamName: string\r\n}","import { HttpClient, HttpErrorResponse } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject, Observable, throwError } from \"rxjs\";\r\nimport { catchError } from \"rxjs/operators\";\r\nimport { environment } from \"src/environments/environment\";\r\nimport { PerformanceScoreCard } from \"../add-score-card/add-score-card.model\";\r\nimport { IResponsePackage } from \"../models/response-package.model\";\r\nimport { ScoreCard } from \"./performance-score-card.model\";\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class PerformanceScoreCardService {\r\n\r\n    httpUrl = environment.API_URL;\r\n    public scoreCard: BehaviorSubject<ScoreCard> = new BehaviorSubject<ScoreCard>(null);\r\n\r\n    constructor(private http: HttpClient) { }\r\n\r\n    GetScoreCardMasterByDepartmentId(departmentId: number, companyId: number): Observable<IResponsePackage> {\r\n        return this.http.get<IResponsePackage>(`${this.httpUrl}Dorsey/GetScoreCardMasterByDepartmentId?departmentId=${departmentId}&companyId=${companyId}`)\r\n            .pipe(\r\n                catchError(this.handleError)\r\n            );\r\n    }\r\n\r\n    GetPerformanceScoreCardDetails(companyId: number, departmentId: number, teamId: number, scoreCardMasterId: number): Observable<IResponsePackage> {\r\n        return this.http.get<IResponsePackage>(`${this.httpUrl}Dorsey/GetPerformanceScoreCardDetails?departmentId=${departmentId}&teamId=${teamId}&companyId=${companyId}&pscMasterId=${scoreCardMasterId}`)\r\n            .pipe(\r\n                catchError(this.handleError)\r\n            );\r\n    }\r\n\r\n    SavePerformanceScoreCardDetails(entity: PerformanceScoreCard): Observable<any> {\r\n        return this.http.post(`${this.httpUrl}Dorsey/SavePerformanceScoreCardDetails`, entity).pipe(\r\n            catchError(this.handleError)\r\n        );\r\n    }\r\n\r\n    GetPSCDetailIdsByPSCMasterId(scoreCardMasterId: number): Observable<IResponsePackage> {\r\n        return this.http.get<IResponsePackage>(`${this.httpUrl}Dorsey/GetPSCDetailIdsByPSCMasterId?pscMasterId=${scoreCardMasterId}`)\r\n            .pipe(\r\n                catchError(this.handleError)\r\n            );\r\n    }\r\n\r\n    DeleteScoreCardMaster(scoreCardID: number): Observable<any> {\r\n        return this.http.get(`${this.httpUrl}Dorsey/DeleteScoreCardMaster?scoreCardID=${scoreCardID}`).pipe(\r\n            catchError(this.handleError)\r\n        );\r\n    }\r\n    CheckMetricExistInPSCDetails(pointerId: number): Observable<any> {\r\n        return this.http.get(`${this.httpUrl}Dorsey/CheckMetricExistInPSCDetails?pointerId=${pointerId}`).pipe(\r\n            catchError(this.handleError)\r\n        );\r\n    }\r\n\r\n    private handleError(err: HttpErrorResponse) {\r\n        let errorMessage = '';\r\n        if (err.error instanceof ErrorEvent) {\r\n            errorMessage = `An error occured: ${err.error.message}`;\r\n        }\r\n        else {\r\n            errorMessage = `Server returned code: ${err.status}, error message is ${err.message}`\r\n        }\r\n        return throwError(errorMessage);\r\n    }\r\n\r\n}\r\n","module.exports = \"button{\\r\\n    background-color: gray;\\r\\n    color: white;\\r\\n}\\r\\n.Logheader {\\r\\n    background-color: #474747;\\r\\n    color: #ffffff;\\r\\n    height: 30px;\\r\\n     \\r\\n}\\r\\nimg {\\r\\n    height:25px;\\r\\n    width: 25px;\\r\\n    cursor: pointer;\\r\\n    float: left;\\r\\n        margin-top: -3px;\\r\\n\\r\\n}\\r\\n[mat-fab] {\\r\\n   cursor: pointer;\\r\\n  background-color: darkgray;\\r\\n max-height:47px;\\r\\n max-width: 47px;\\r\\n}\\r\\n.search {\\r\\n    float: right;\\r\\n}\\r\\n[user] {\\r\\n        /*margin-left: 18px;*/\\r\\n\\r\\n}\\r\\n[record]{\\r\\n    /*min-width: 200px;*/\\r\\n    text-align: left;\\r\\n    /*padding-left: 13px;*/\\r\\n}\\r\\n[recordheader]{\\r\\n    /*min-width: 200px;    */\\r\\n}\\r\\nth,td{\\r\\n    /*min-width: 160px;*/\\r\\n    height: 30px;\\r\\n    text-align: center;\\r\\n}\\r\\n.logheight{\\r\\n    white-space: nowrap;\\r\\n    height: 400px;\\r\\n}\\r\\n.mappings {\\r\\n min-width: 900px;\\r\\n min-height: 350px;\\r\\n}\\r\\n.mappings1{\\r\\n    min-width: 400px;\\r\\n    min-height: 150px;\\r\\n}\\r\\n.logwidth {\\r\\n      min-width: 300px;\\r\\n}\\r\\ndiv,button,mat-form-field,mat-table{\\r\\n     font-family: Open sans;\\r\\n}\\r\\n.tableClass {\\r\\n  min-height: 350px;\\r\\n  max-height: 350px;\\r\\n}\\r\\n.tableWithNoHeight {\\r\\n  min-height: 40px;\\r\\n  max-height: 40px;\\r\\n}\\r\\n.warningMsg{\\r\\ncolor: #ef5350;\\r\\ntext-align: center;\\r\\n}\\r\\n.mat-table {\\r\\n  overflow: auto;\\r\\n   /*min-height: 350px;\\r\\n  max-height: 350px;*/\\r\\n  max-width: 1000px;\\r\\n  min-width: 1000px;\\r\\n}\\r\\nmat-header-row{\\r\\nbackground-color: \\t#474747;\\r\\nmin-height: 35px;\\r\\n  position: -webkit-sticky;\\r\\n  position: sticky;\\r\\n  top: 0;\\r\\n}\\r\\nmat-row {\\r\\n    border: 1;\\r\\n    min-height: 30px;\\r\\n \\r\\n\\r\\n}\\r\\nmat-header-cell {\\r\\n    margin-left: 10px;\\r\\n    font-size: 14px;\\r\\n    font-weight: 600;\\r\\n  text-align: center;\\r\\n  color: #FFFFFF;\\r\\n}\\r\\nmat-cell {\\r\\n    /*margin-right: -24px;*/\\r\\n     /*border-right: 1px solid #e1e1e1;;*/\\r\\n    align-self: stretch;\\r\\n    margin-left: 10px;\\r\\n    /*text-align: center;*/\\r\\n    padding-top:9px;\\r\\n}\\r\\n.close {\\r\\n    color: #aaaaaa;\\r\\n    float: right;\\r\\n    font-size: 28px;\\r\\n    font-weight: bold;\\r\\n    cursor: pointer;\\r\\n      margin-right: -2px;\\r\\n    margin-top: -34px;\\r\\n     top:0;\\r\\n     right:0;\\r\\n}\\r\\nlabel{\\r\\n    font-weight: 600;\\r\\n    font-size: 15px;\\r\\n    text-align: right;\\r\\n    display: block;\\r\\n}\\r\\n.drpdownlabel{\\r\\n        margin-top: 30px;\\r\\n}\\r\\n.top {\\r\\n    margin-top:5px;\\r\\n}\\r\\n.aligntop {\\r\\n    /* margin-top: -10px; */\\r\\n}\\r\\n.alignheader {\\r\\n    text-align: center;\\r\\n    margin-bottom:20px;\\r\\n}\\r\\n.successMsg{\\r\\ncolor: green;\\r\\ntext-align: center;\\r\\n}\\r\\n.asterik{\\r\\n  color: #ef5350;\\r\\n  font-size: 15px;  \\r\\n}\\r\\n/*input.mat-input-element {\\r\\n   margin-top: 0.20em;\\r\\n}*/\\r\\n.mat-column-Action {    \\r\\n     border-right: 1px solid #e1e1e1;\\r\\n    /*align-self: stretch;*/\\r\\n    text-align: center;\\r\\n}\\r\\n.mat-column-Previous {\\r\\n     border-right: 1px solid #e1e1e1;\\r\\n    /*align-self: stretch;*/\\r\\n    /*text-align: center;*/\\r\\n}\\r\\n.mat-column-Current {\\r\\n     border-right: 1px solid #e1e1e1;\\r\\n    /*align-self: stretch;*/\\r\\n    /*text-align: center;*/\\r\\n}\\r\\n.mat-column-User {\\r\\n     border-right: 1px solid #e1e1e1;\\r\\n    /*align-self: stretch;*/\\r\\n    text-align: center;\\r\\n    max-width: 130px;\\r\\n}\\r\\n.mat-column-Date {\\r\\n     /*border-right: 1px solid #e1e1e1;*/\\r\\n    /*align-self: stretch;*/\\r\\n    text-align: center;\\r\\n}\\r\\nlabel\\r\\n    {\\r\\n        margin-top: 20px;\\r\\n        font-size:smaller;\\r\\n    }\\r\\n[matInput]{\\r\\n        font-size: smaller;\\r\\n    }\\r\\n.Addcolor {\\r\\n        color: #ef5350 !important ;\\r\\n        cursor: pointer !important ;  \\r\\n     }\\r\\n.removeColor {\\r\\n        color: #ccc !important ;\\r\\n        cursor: none !important ;\\r\\n     }\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcG9pbnRlci9kaWFsb2cuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksc0JBQXNCO0lBQ3RCLFlBQVk7QUFDaEI7QUFDQTtJQUNJLHlCQUF5QjtJQUN6QixjQUFjO0lBQ2QsWUFBWTs7QUFFaEI7QUFDQTtJQUNJLFdBQVc7SUFDWCxXQUFXO0lBQ1gsZUFBZTtJQUNmLFdBQVc7UUFDUCxnQkFBZ0I7O0FBRXhCO0FBQ0E7R0FDRyxlQUFlO0VBQ2hCLDBCQUEwQjtDQUMzQixlQUFlO0NBQ2YsZUFBZTtBQUNoQjtBQUVBO0lBQ0ksWUFBWTtBQUNoQjtBQUNBO1FBQ1EscUJBQXFCOztBQUU3QjtBQUNBO0lBQ0ksb0JBQW9CO0lBQ3BCLGdCQUFnQjtJQUNoQixzQkFBc0I7QUFDMUI7QUFDQTtJQUNJLHdCQUF3QjtBQUM1QjtBQUNBO0lBQ0ksb0JBQW9CO0lBQ3BCLFlBQVk7SUFDWixrQkFBa0I7QUFDdEI7QUFDQTtJQUNJLG1CQUFtQjtJQUNuQixhQUFhO0FBQ2pCO0FBQ0E7Q0FDQyxnQkFBZ0I7Q0FDaEIsaUJBQWlCO0FBQ2xCO0FBQ0E7SUFDSSxnQkFBZ0I7SUFDaEIsaUJBQWlCO0FBQ3JCO0FBQ0E7TUFDTSxnQkFBZ0I7QUFDdEI7QUFDQTtLQUNLLHNCQUFzQjtBQUMzQjtBQUNBO0VBQ0UsaUJBQWlCO0VBQ2pCLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGdCQUFnQjtBQUNsQjtBQUdBO0FBQ0EsY0FBYztBQUNkLGtCQUFrQjtBQUNsQjtBQUNBO0VBQ0UsY0FBYztHQUNiO3FCQUNrQjtFQUNuQixpQkFBaUI7RUFDakIsaUJBQWlCO0FBQ25CO0FBQ0E7QUFDQSwwQkFBMEI7QUFDMUIsZ0JBQWdCO0VBQ2Qsd0JBQWdCO0VBQWhCLGdCQUFnQjtFQUNoQixNQUFNO0FBQ1I7QUFDQTtJQUNJLFNBQVM7SUFDVCxnQkFBZ0I7OztBQUdwQjtBQUNBO0lBQ0ksaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZixnQkFBZ0I7RUFDbEIsa0JBQWtCO0VBQ2xCLGNBQWM7QUFDaEI7QUFDQTtJQUNJLHVCQUF1QjtLQUN0QixvQ0FBb0M7SUFDckMsbUJBQW1CO0lBQ25CLGlCQUFpQjtJQUNqQixzQkFBc0I7SUFDdEIsZUFBZTtBQUNuQjtBQUVBO0lBQ0ksY0FBYztJQUNkLFlBQVk7SUFDWixlQUFlO0lBQ2YsaUJBQWlCO0lBQ2pCLGVBQWU7TUFDYixrQkFBa0I7SUFDcEIsaUJBQWlCO0tBQ2hCLEtBQUs7S0FDTCxPQUFPO0FBQ1o7QUFDQTtJQUNJLGdCQUFnQjtJQUNoQixlQUFlO0lBQ2YsaUJBQWlCO0lBQ2pCLGNBQWM7QUFDbEI7QUFDQTtRQUNRLGdCQUFnQjtBQUN4QjtBQUNBO0lBQ0ksY0FBYztBQUNsQjtBQUNBO0lBQ0ksdUJBQXVCO0FBQzNCO0FBQ0E7SUFDSSxrQkFBa0I7SUFDbEIsa0JBQWtCO0FBQ3RCO0FBQ0E7QUFDQSxZQUFZO0FBQ1osa0JBQWtCO0FBQ2xCO0FBQ0E7RUFDRSxjQUFjO0VBQ2QsZUFBZTtBQUNqQjtBQUNBOztFQUVFO0FBQ0Y7S0FDSywrQkFBK0I7SUFDaEMsdUJBQXVCO0lBQ3ZCLGtCQUFrQjtBQUN0QjtBQUNBO0tBQ0ssK0JBQStCO0lBQ2hDLHVCQUF1QjtJQUN2QixzQkFBc0I7QUFDMUI7QUFDQTtLQUNLLCtCQUErQjtJQUNoQyx1QkFBdUI7SUFDdkIsc0JBQXNCO0FBQzFCO0FBQ0E7S0FDSywrQkFBK0I7SUFDaEMsdUJBQXVCO0lBQ3ZCLGtCQUFrQjtJQUNsQixnQkFBZ0I7QUFDcEI7QUFDQTtLQUNLLG1DQUFtQztJQUNwQyx1QkFBdUI7SUFDdkIsa0JBQWtCO0FBQ3RCO0FBQ0k7O1FBRUksZ0JBQWdCO1FBQ2hCLGlCQUFpQjtJQUNyQjtBQUVBO1FBQ0ksa0JBQWtCO0lBQ3RCO0FBRUE7UUFDSSwwQkFBMEI7UUFDMUIsMkJBQTJCO0tBQzlCO0FBQ0E7UUFDRyx1QkFBdUI7UUFDdkIsd0JBQXdCO0tBQzNCIiwiZmlsZSI6InNyYy9hcHAvcG9pbnRlci9kaWFsb2cuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiYnV0dG9ue1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogZ3JheTtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxufVxyXG4uTG9naGVhZGVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM0NzQ3NDc7XHJcbiAgICBjb2xvcjogI2ZmZmZmZjtcclxuICAgIGhlaWdodDogMzBweDtcclxuICAgICBcclxufVxyXG5pbWcge1xyXG4gICAgaGVpZ2h0OjI1cHg7XHJcbiAgICB3aWR0aDogMjVweDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgIG1hcmdpbi10b3A6IC0zcHg7XHJcblxyXG59XHJcblttYXQtZmFiXSB7XHJcbiAgIGN1cnNvcjogcG9pbnRlcjtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZ3JheTtcclxuIG1heC1oZWlnaHQ6NDdweDtcclxuIG1heC13aWR0aDogNDdweDtcclxufVxyXG5cclxuLnNlYXJjaCB7XHJcbiAgICBmbG9hdDogcmlnaHQ7XHJcbn1cclxuW3VzZXJdIHtcclxuICAgICAgICAvKm1hcmdpbi1sZWZ0OiAxOHB4OyovXHJcblxyXG59XHJcbltyZWNvcmRde1xyXG4gICAgLyptaW4td2lkdGg6IDIwMHB4OyovXHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgLypwYWRkaW5nLWxlZnQ6IDEzcHg7Ki9cclxufVxyXG5bcmVjb3JkaGVhZGVyXXtcclxuICAgIC8qbWluLXdpZHRoOiAyMDBweDsgICAgKi9cclxufVxyXG50aCx0ZHtcclxuICAgIC8qbWluLXdpZHRoOiAxNjBweDsqL1xyXG4gICAgaGVpZ2h0OiAzMHB4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcbi5sb2doZWlnaHR7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgaGVpZ2h0OiA0MDBweDtcclxufVxyXG4ubWFwcGluZ3Mge1xyXG4gbWluLXdpZHRoOiA5MDBweDtcclxuIG1pbi1oZWlnaHQ6IDM1MHB4O1xyXG59XHJcbi5tYXBwaW5nczF7XHJcbiAgICBtaW4td2lkdGg6IDQwMHB4O1xyXG4gICAgbWluLWhlaWdodDogMTUwcHg7XHJcbn1cclxuLmxvZ3dpZHRoIHtcclxuICAgICAgbWluLXdpZHRoOiAzMDBweDtcclxufVxyXG5kaXYsYnV0dG9uLG1hdC1mb3JtLWZpZWxkLG1hdC10YWJsZXtcclxuICAgICBmb250LWZhbWlseTogT3BlbiBzYW5zO1xyXG59XHJcbi50YWJsZUNsYXNzIHtcclxuICBtaW4taGVpZ2h0OiAzNTBweDtcclxuICBtYXgtaGVpZ2h0OiAzNTBweDtcclxufVxyXG4udGFibGVXaXRoTm9IZWlnaHQge1xyXG4gIG1pbi1oZWlnaHQ6IDQwcHg7XHJcbiAgbWF4LWhlaWdodDogNDBweDtcclxufVxyXG5cclxuXHJcbi53YXJuaW5nTXNne1xyXG5jb2xvcjogI2VmNTM1MDtcclxudGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcbi5tYXQtdGFibGUge1xyXG4gIG92ZXJmbG93OiBhdXRvO1xyXG4gICAvKm1pbi1oZWlnaHQ6IDM1MHB4O1xyXG4gIG1heC1oZWlnaHQ6IDM1MHB4OyovXHJcbiAgbWF4LXdpZHRoOiAxMDAwcHg7XHJcbiAgbWluLXdpZHRoOiAxMDAwcHg7XHJcbn1cclxubWF0LWhlYWRlci1yb3d7XHJcbmJhY2tncm91bmQtY29sb3I6IFx0IzQ3NDc0NztcclxubWluLWhlaWdodDogMzVweDtcclxuICBwb3NpdGlvbjogc3RpY2t5O1xyXG4gIHRvcDogMDtcclxufVxyXG5tYXQtcm93IHtcclxuICAgIGJvcmRlcjogMTtcclxuICAgIG1pbi1oZWlnaHQ6IDMwcHg7XHJcbiBcclxuXHJcbn1cclxubWF0LWhlYWRlci1jZWxsIHtcclxuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgY29sb3I6ICNGRkZGRkY7XHJcbn1cclxubWF0LWNlbGwge1xyXG4gICAgLyptYXJnaW4tcmlnaHQ6IC0yNHB4OyovXHJcbiAgICAgLypib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZTFlMWUxOzsqL1xyXG4gICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcclxuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gICAgLyp0ZXh0LWFsaWduOiBjZW50ZXI7Ki9cclxuICAgIHBhZGRpbmctdG9wOjlweDtcclxufVxyXG5cclxuLmNsb3NlIHtcclxuICAgIGNvbG9yOiAjYWFhYWFhO1xyXG4gICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgZm9udC1zaXplOiAyOHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogLTJweDtcclxuICAgIG1hcmdpbi10b3A6IC0zNHB4O1xyXG4gICAgIHRvcDowO1xyXG4gICAgIHJpZ2h0OjA7XHJcbn1cclxubGFiZWx7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgZm9udC1zaXplOiAxNXB4O1xyXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxufVxyXG4uZHJwZG93bmxhYmVse1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDMwcHg7XHJcbn1cclxuLnRvcCB7XHJcbiAgICBtYXJnaW4tdG9wOjVweDtcclxufVxyXG4uYWxpZ250b3Age1xyXG4gICAgLyogbWFyZ2luLXRvcDogLTEwcHg7ICovXHJcbn1cclxuLmFsaWduaGVhZGVyIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIG1hcmdpbi1ib3R0b206MjBweDtcclxufVxyXG4uc3VjY2Vzc01zZ3tcclxuY29sb3I6IGdyZWVuO1xyXG50ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuLmFzdGVyaWt7XHJcbiAgY29sb3I6ICNlZjUzNTA7XHJcbiAgZm9udC1zaXplOiAxNXB4OyAgXHJcbn1cclxuLyppbnB1dC5tYXQtaW5wdXQtZWxlbWVudCB7XHJcbiAgIG1hcmdpbi10b3A6IDAuMjBlbTtcclxufSovXHJcbi5tYXQtY29sdW1uLUFjdGlvbiB7ICAgIFxyXG4gICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlMWUxZTE7XHJcbiAgICAvKmFsaWduLXNlbGY6IHN0cmV0Y2g7Ki9cclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG4ubWF0LWNvbHVtbi1QcmV2aW91cyB7XHJcbiAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2UxZTFlMTtcclxuICAgIC8qYWxpZ24tc2VsZjogc3RyZXRjaDsqL1xyXG4gICAgLyp0ZXh0LWFsaWduOiBjZW50ZXI7Ki9cclxufVxyXG4ubWF0LWNvbHVtbi1DdXJyZW50IHtcclxuICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZTFlMWUxO1xyXG4gICAgLyphbGlnbi1zZWxmOiBzdHJldGNoOyovXHJcbiAgICAvKnRleHQtYWxpZ246IGNlbnRlcjsqL1xyXG59XHJcbi5tYXQtY29sdW1uLVVzZXIge1xyXG4gICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlMWUxZTE7XHJcbiAgICAvKmFsaWduLXNlbGY6IHN0cmV0Y2g7Ki9cclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIG1heC13aWR0aDogMTMwcHg7XHJcbn1cclxuLm1hdC1jb2x1bW4tRGF0ZSB7XHJcbiAgICAgLypib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZTFlMWUxOyovXHJcbiAgICAvKmFsaWduLXNlbGY6IHN0cmV0Y2g7Ki9cclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG4gICAgbGFiZWxcclxuICAgIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gICAgICAgIGZvbnQtc2l6ZTpzbWFsbGVyO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBbbWF0SW5wdXRde1xyXG4gICAgICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcclxuICAgIH1cclxuXHJcbiAgICAuQWRkY29sb3Ige1xyXG4gICAgICAgIGNvbG9yOiAjZWY1MzUwICFpbXBvcnRhbnQgO1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50IDsgIFxyXG4gICAgIH1cclxuICAgICAucmVtb3ZlQ29sb3Ige1xyXG4gICAgICAgIGNvbG9yOiAjY2NjICFpbXBvcnRhbnQgO1xyXG4gICAgICAgIGN1cnNvcjogbm9uZSAhaW1wb3J0YW50IDtcclxuICAgICB9XHJcbiJdfQ== */\"","import { Component, OnInit, Inject } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { Http, Response } from '@angular/http';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { IfStmt } from '@angular/compiler';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MatButton, MatDatepickerInputEvent } from '@angular/material';\nimport { FormControl } from '@angular/forms';\nimport { DatePipe } from '@angular/common'\nimport { strictEqual } from 'assert';\nimport { Observable } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n  selector: 'app-pointer',\n  templateUrl: './pointer.component.html',\n  // styleUrls: ['./pointer.component.scss'],\n  providers: [DorseyService]\n})\nexport class PointerComponent implements OnInit {\n  ErrorMessage: string;\n  projectData: any;\n  condition = false;\n  status = false;\n  employeeData: any;\n  processData: any;\n  activityData: any;\n  pointerTypeData: any;\n  frustrationtypeData: any;\n  departmentData: any;\n  teamData: any;\n  severityData: any;\n  statusData: any;\n\n  EmployeeID: string;\n  ProcessID: string;\n  ActivityID: string;\n  PointerTypeID = \"1\";\n  FrustrationTypeID: string;\n  DepartmentID: string;\n  TeamID: string;\n  StatusID: string;\n  SeverityID: string;\n  Subject: string;\n  Description: string;\n  PointerID: string;\n  pointerData: any;\n  tempActivity = [];\n  tempFrustrationType = [];\n  pointerFrustration: any;\n  FrustrationTypeIDs = [];\n  newPointer = false;\n  ProjectID: string;\n  searchtext: string\n\n  p: number = 1;\n  rowsOnPage = 10;\n  rowsOnPageSet = [];\n  rowCount: any;\n  dynamicRows = 10;\n  isDesc: boolean = false;\n  column = \"\";\n  direction: number;\n  arrow = true;\n  frustPaging = false;\n  saveFilter = [];\n  CompanyID: string;\n  isDisable = false;\n  disableSearch = false;\n  currentUser: string;\n  MenuPermissions: any;\n  menuData: any;\n  menuID: string;\n  menuName: string;\n  ParentID: any;\n  subActivityStatus = false;\n  SubActivityID: string;\n  tempSubActivity = [];\n  userTeamID: string;\n\n  suggestionAssignTypes = false;\n  loginCompanyName: any;\n  empID: string;\n  updatedDate = new Date();\n  updatedBy: any;\n  constructor(private http: Http, private dorseyService: DorseyService,\n    public dialog: MatDialog, private storage: LocalStorageService) {\n    this.CompanyID = this.storage.retrieve('companyID');\n    this.userTeamID = this.storage.retrieve('TeamID');\n    this.currentUser = this.storage.retrieve('user');\n    this.menuData = this.storage.retrieve('menuData');\n    this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n    this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n\n    this.empID = this.storage.retrieve('EmployeeID');\n  }\n\n  ngOnInit() {\n\n    let tempdata = this.menuData;\n    if (this.empID.toString() !== '0') {\n      this.EmployeeID = this.empID;\n    }\n    else {\n      this.EmployeeID = \"0\";\n    }\n    this.menuData = tempdata.filter(x => x.MenuName.toString().toLowerCase() === 'frustration');\n    if (this.menuData.length > 0) {\n      this.menuName = this.menuData[0][\"MenuName\"];\n      this.menuID = this.menuData[0][\"MenuID\"];\n    }\n\n    this.GetProcess();\n    this.GetActivity();\n    this.GetEmployee();\n    this.GetDepartment();\n    this.GetPointerType();\n    this.GetSeverity();\n    this.GetStatus();\n    this.GetTeam();\n    this.GetFrustrationType();\n    this.GetPointer();\n    this.GetProjects();\n\n  }\n  OpenPointer() {\n    this.newPointer = true;\n    this.dialogCall('new');\n  }\n\n\n  Searchtext() {\n    this.pointerFrustration = this.saveFilter;\n\n    let tempFrust = this.pointerFrustration.filter(\n      (item) => {\n        return (\n          (item.ProcessName !== null && item.ProcessName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.ActivityName !== null && item.ActivityName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.Subject !== null && item.Subject.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.Description !== null && item.Description.toLowerCase().indexOf(this.searchtext.toLowerCase()).trim() > -1) ||\n          (item.ProjectName !== null && item.ProjectName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n        );\n      }\n\n    );\n    this.pointerFrustration = tempFrust;\n    if (this.pointerFrustration.length == 0) {\n      // this.GetActivity();\n      this.isDisable = true;\n    }\n    if (this.searchtext === '') {\n      this.GetPointer();\n      this.isDisable = false;\n    }\n  }\n\n  GetPointer() {\n    this.dorseyService.GetPointer(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.pointerData = subData;\n      this.pointerFrustration = this.pointerData.filter(x => x.PointerTypeID != null && x.PointerTypeID.toString() === \"1\")\n      let tempFrustData = this.pointerFrustration;\n      this.saveFilter = JSON.parse(JSON.stringify(this.pointerFrustration));\n      this.rowCount = this.pointerFrustration.length;\n\n      if (this.pointerFrustration.length === 0) {\n        this.frustPaging = false;\n        this.isDisable = true;\n        this.disableSearch = true;\n      }\n      else {\n        this.frustPaging = true;\n        this.isDisable = false;\n        this.disableSearch = false;\n        if (this.userTeamID != '0' && this.userTeamID !== null && this.CompanyID !== '0') {\n          this.pointerFrustration = tempFrustData.filter(x => x.TeamID.toString() === this.userTeamID.toString() && x.CompanyID === this.CompanyID);\n        }\n        else {\n          this.pointerFrustration = tempFrustData.filter(x => x.CompanyID === this.CompanyID);\n        }\n\n\n        while (this.dynamicRows < this.rowCount) {\n          this.rowsOnPageSet.push(this.dynamicRows);\n          this.dynamicRows = this.dynamicRows + 10;\n        }\n        if (!this.rowsOnPageSet.includes(this.rowCount)) this.rowsOnPageSet.push(this.rowCount);\n        if (this.rowsOnPageSet.length === 1) {\n          if (this.rowsOnPageSet[0] <= 10)\n            this.rowsOnPage = this.rowsOnPageSet[0];\n        }\n      }\n    });\n  }\n\n  sort(property) {\n    this.arrow = !this.arrow;\n    this.isDesc = !this.isDesc; //change the direction    \n    this.column = property;\n    this.direction = this.isDesc ? 1 : -1;\n  }\n\n  GetProjects() {\n    this.dorseyService.GetProjects(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.projectData = subData;\n\n    });\n  }\n  GetEmployee() {\n    this.dorseyService.GetEmployee(this.CompanyID).subscribe(subData => {\n\n      subData = JSON.parse(subData['_body']);\n      this.employeeData = subData;\n      let temmEmployee = this.employeeData;\n\n      if (this.TeamID != '0') {\n        this.employeeData = temmEmployee.filter(x => x.TeamID === this.TeamID || x.CompanyID == this.CompanyID);\n      } else {\n        this.employeeData = temmEmployee.filter(x => x.CompanyID === this.CompanyID);\n      }\n    });\n  }\n  AddToProject() {\n    this.newPointer = false;\n    this.dialogCall('assign');\n  }\n\n  exportAsXLSX() {\n    let allData = JSON.parse(JSON.stringify(this.pointerFrustration));\n    for (let i = 0; i < allData.length; i++) {\n\n      allData[i].Process = allData[i].ProcessName;\n      allData[i].Activity = allData[i].ActivityName;\n      allData[i].Team = allData[i].TeamName;\n      allData[i][\"Issue ID\"] = allData[i].PointerID;\n      allData[i].Type = allData[i].FrustrationsTypeName;\n      allData[i].Project = allData[i].ProjectName;\n      allData[i][\"Status\"] = allData[i].StatusName;\n      allData[i][\"Severity\"] = allData[i].SeverityName;\n\n      allData[i].Subject = allData[i].Subject;\n      allData[i].Description = allData[i].Description;\n      delete (allData[i].PointerID);\n      delete (allData[i].ProcessName);\n      delete (allData[i].ActivityName);\n      delete (allData[i].TeamName);\n      delete (allData[i].PointerID);\n      delete (allData[i].FrustrationsTypeName);\n      delete (allData[i].ProjectName);\n      delete (allData[i].StatusName);\n      delete (allData[i].SeverityName);\n      delete (allData[i].SeverityID);\n      delete (allData[i].EmployeeID);\n      delete (allData[i].ActivityID);\n      delete (allData[i].PointerTypeID);\n      delete (allData[i].StatusID);\n      delete (allData[i].DepartmentID);\n      delete (allData[i].ProcessID)\n      delete (allData[i].UpdatedDate);\n      delete (allData[i].UpdatedBy);\n      delete (allData[i].ProjectID)\n      delete (allData[i].TeamID);\n      delete (allData[i].FrustrationsTypeID);\n      delete (allData[i].Date)\n\n      delete (allData[i].IsActive);\n      delete (allData[i].CreatedDate);\n      delete (allData[i].CreatedBy)\n    }\n\n    // const json = {\n    //   data:allData\n    //       }\n    //       this.dorseyService.Export(json,this.loginCompanyName+'_frustration',this.loginCompanyName,'Frustration').subscribe(data=>{\n\n    //       });\n\n    this.dorseyService.generateExcel(allData, this.loginCompanyName + '_frustration' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Frustration', new Date(), this.loginCompanyName + \" Frustration Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n\n\n    //  this.dorseyService.exportAsExcelFile(allData,this.loginCompanyName+'_frustration');\n  }\n\n\n  GetFrustrationType() {\n    this.dorseyService.GetFrustrationType(\"1\", this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n\n      let tempType: any;\n      tempType = subData;\n      if (tempType.length === 0) {\n        this.suggestionAssignTypes = false;\n        this.dorseyService.GetFrustrationType('1', \"0\").subscribe(subData => {\n          subData = JSON.parse(subData['_body']);\n          this.frustrationtypeData = subData;\n        });\n      }\n      else {\n        this.frustrationtypeData = tempType;\n        this.suggestionAssignTypes = true;\n      }\n\n    });\n\n\n  }\n  GetDepartment() {\n    this.dorseyService.GetDepartment().subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.departmentData = subData;\n    });\n  }\n\n  GetPointerType() {\n    this.dorseyService.GetPointerType().subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.pointerTypeData = subData;\n    });\n  }\n  GetStatus() {\n    this.dorseyService.GetStatus().subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.statusData = subData;\n      this.StatusID = this.statusData[0].StatusID;\n    });\n  }\n  GetSeverity() {\n    this.dorseyService.GetSeverity().subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.severityData = subData;\n    });\n  }\n\n  GetTeam() {\n    this.dorseyService.GetTeam(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.teamData = subData;\n    });\n  }\n  GetActivity() {\n    this.dorseyService.GetActivity(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.activityData = subData;\n    });\n  }\n  GetProcess() {\n    this.dorseyService.GetProcess(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.processData = subData;\n      let processTemp = this.processData;\n      this.processData = processTemp.filter(x => x.TeamID !== 0);\n    });\n  }\n\n\n  dialogCall(msg: string) {\n    const dialogRef = this.dialog.open(PointerDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: msg + 'æææ' + false,\n    });\n    if (msg === 'new') {\n      this.searchtext = '';\n      this.GetPointer();\n    }\n    dialogRef.componentInstance.EmployeeID = this.EmployeeID;\n\n    dialogRef.componentInstance.currentUser = this.currentUser;\n    dialogRef.componentInstance.processData = this.processData;\n    dialogRef.componentInstance.activityData = this.activityData;\n    dialogRef.componentInstance.departmentData = this.departmentData;\n    dialogRef.componentInstance.pointerTypeData = this.pointerTypeData;\n    dialogRef.componentInstance.severityData = this.severityData;\n    dialogRef.componentInstance.statusData = this.statusData;\n    dialogRef.componentInstance.teamData = this.teamData;\n    dialogRef.componentInstance.employeeData = this.employeeData;\n    dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n    dialogRef.componentInstance.tempActivity = this.tempActivity;\n    dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n    dialogRef.componentInstance.CompanyID = this.CompanyID;\n    dialogRef.componentInstance.tempSubActivity = this.tempSubActivity;\n    dialogRef.componentInstance.SubActivityID = this.SubActivityID;\n    dialogRef.componentInstance.updatedBy = this.updatedBy;\n    dialogRef.componentInstance.updatedDate = this.updatedDate\n    if (msg === 'edit') {\n      this.status = true;\n      dialogRef.componentInstance.EmployeeID = this.EmployeeID;\n      dialogRef.componentInstance.ProcessID = this.ProcessID;\n      dialogRef.componentInstance.ActivityID = this.ActivityID;\n      dialogRef.componentInstance.PointerTypeID = this.PointerTypeID;\n      dialogRef.componentInstance.PointerID = this.PointerID;\n      dialogRef.componentInstance.DepartmentID = this.DepartmentID;\n      dialogRef.componentInstance.FrustrationTypeIDs = this.FrustrationTypeIDs;\n      dialogRef.componentInstance.TeamID = this.TeamID;\n      dialogRef.componentInstance.StatusID = this.StatusID;\n      dialogRef.componentInstance.SeverityID = this.SeverityID;\n      dialogRef.componentInstance.Subject = this.Subject;\n      dialogRef.componentInstance.Description = this.Description;\n      dialogRef.componentInstance.tempActivity = this.tempActivity;\n      dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n      dialogRef.componentInstance.ProjectID = this.ProjectID;\n      dialogRef.componentInstance.subActivityStatus = this.subActivityStatus;\n      dialogRef.componentInstance.SubActivityID = this.SubActivityID;\n      dialogRef.componentInstance.updatedBy = this.updatedBy\n      dialogRef.componentInstance.updatedDate = this.updatedDate\n    }\n\n    dialogRef.afterClosed().subscribe(result => {\n\n\n      if (this.searchtext !== '') {\n        this.Searchtext();\n      }\n      else {\n        this.GetFrustrationType();\n        this.GetPointer();\n      }\n\n      if (result.toString() === 'true') {\n        let statusMsg = '';\n        if (msg === 'new' || msg != 'assign') {\n          statusMsg = 'Saved successfully';\n          this.dynamicRows = 10;\n          this.rowsOnPageSet = [];\n          this.GetPointer();\n        }\n        else {\n          statusMsg = 'Updated successfully';\n\n        }\n        const dialogRefsub = this.dialog.open(PointerDialogComponent, {\n          panelClass: 'custom-dialog-container',\n          data: statusMsg + 'æææ' + false,\n          //  width: '30%'\n        });\n        dialogRefsub.afterClosed().subscribe(result1 => {\n          this.GetPointer();\n          this.GetFrustrationType();\n          //  this.Searchtext();\n        });\n      }\n    });\n  }\n  GetTempActivity(ProcessID: string) {\n    this.tempActivity = [];\n    for (let i = 0; i < this.activityData.length; i++) {\n      if (this.activityData[i].ProcessID === ProcessID) {\n        this.tempActivity.push(this.activityData[i]);\n      }\n    }\n  }\n  // GetFrustrations(PointerTypeID:string){\n  //   for(let i=0;i<this.frustrationtypeData.length;i++){\n  //     if(this.frustrationtypeData[i].PointerTypeID===PointerTypeID){\n  //       this.tempFrustrationType.push(this.frustrationtypeData[i]);\n  //     }\n  //   }\n\n  // }\n  GetTempSubActivity(ActivityID) {\n    this.tempSubActivity = [];\n    for (let i = 0; i < this.activityData.length; i++) {\n      if (this.activityData[i].ParentID === ActivityID) {\n        this.tempSubActivity.push(this.activityData[i]);\n      }\n    }\n  }\n  EditPointer(element, text) {\n\n    this.newPointer = true;\n    this.GetTempActivity(element.ProcessID);\n\n\n    for (let i = 0; i < this.processData.length; i++) {\n      if (this.processData[i].ProcessID === element.ProcessID) {\n        this.TeamID = this.processData[i]['TeamID'];\n\n      }\n    }\n\n    //this.GetFrustrations(element.PointerTypeID);\n    this.ProjectID = element.ProjectID\n    this.PointerID = element.PointerID;\n    this.ProcessID = element.ProcessID;\n    this.ActivityID = element.ActivityID;\n    this.PointerTypeID = element.PointerTypeID;\n    this.EmployeeID = element.EmployeeID;\n    this.SeverityID = element.SeverityID;\n    this.StatusID = element.StatusID;\n    this.Subject = element.Subject;\n    this.Description = element.Description;\n    this.DepartmentID = element.DepartmentID;\n    this.TeamID = element.TeamID;\n    this.updatedDate = element.UpdatedDate;\n    this.updatedBy = element.UpdatedBy;\n    this.FrustrationTypeIDs.push(element.FrustrationsTypeID);\n\n    for (let i = 0; i < this.activityData.length; i++) {\n      if (element.ActivityID === this.activityData[i].ActivityID) {\n        this.ParentID = this.activityData[i].ParentID;\n      }\n\n    }\n    if (this.ParentID.toString() === '0') {\n      this.ActivityID = element.ActivityID;\n      this.subActivityStatus = false;\n    } else {\n      this.subActivityStatus = true;\n      this.SubActivityID = element.ActivityID;\n      this.ActivityID = this.ParentID;\n    }\n\n    this.dialogCall('edit');\n  }\n\n\n  ifMaxRow() {\n\n    if (this.rowsOnPage == this.pointerData.length) {\n      this.rowsOnPage = this.rowsOnPage - 1;\n    }\n  }\n\n  DeletePointer(element) {\n\n    this.newPointer = true;\n    this.PointerID = element.PointerID;\n\n\n    const dialogRef = this.dialog.open(PointerDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: 'Are you sure you want to delete frustation: ' + element.PointerID + '?æææ' + true,\n      // width: '40%'\n    });\n    //   this.condition = true;\n\n    dialogRef.afterClosed().subscribe(result => {\n      if (result) {\n\n        /// this.condition = true;\n        this.dorseyService.DeletePointer(this.PointerID).subscribe(data => {\n\n          if (data.ok) {\n            this.ifMaxRow();\n            this.condition = true;\n            this.dialogCall('Deleted successfully');\n          }\n          this.dynamicRows = 10;\n          this.rowsOnPageSet = [];\n          this.GetPointer();\n        });\n      }\n    });\n  }\n\n\n\n}\n\n\n\n@Component({\n  selector: 'app-dialog',\n  templateUrl: 'dialog.html',\n  // styleUrls: ['dialog.css'],\n  providers: [DorseyService, DatePipe],\n})\nexport class PointerDialogComponent implements OnInit {\n  suggestionAssignTypes = false;\n  projectData: any;\n  ProjectID: string;\n  condition = false;\n  status = false;\n  employeeData: any;\n  processData: any;\n  activityData: any;\n  pointerTypeData: any;\n  frustrationtypeData: any;\n  departmentData: any;\n  teamData: any;\n  severityData: any;\n  statusData: any;\n  dataSelf = '';\n  EmployeeID: string;\n  currentUser: string;\n  ProcessID: string;\n  ActivityID: string;\n  PointerTypeID = \"1\";\n  FrustrationTypeID: string;\n  DepartmentID: string;\n  TeamID: string;\n  StatusID: string;\n  SeverityID: string;\n  Subject: string;\n  Description: string;\n  PointerID: string;\n  tempActivity = [];\n  tempFrustrationType = [];\n  processCtrl = new FormControl();\n  conditionActivity = '';\n  filteredProcess: Observable<any[]>;\n  tempProcess: any;\n  tempDepart: any;\n  CompanyID: string;\n  processTeamData: any;\n  subActivityStatus = false;\n  tempSubActivity = [];\n  SubActivityID: string;\n  typeAvai = false;\n  FTextBoxType: string;\n  FTextBoxType2: any;\n  FrustrationTypeIDs = [];\n  typeEdit = false;\n  showDd = false;\n  TypeIDS: any;\n  pointerData: any;\n  frustTypeName: any;\n  editClick = false;\n  notEdit = true;\n  enableEdit = true;\n  disableFrustType = false;\n  updatedBy: any;\n  updatedDate = new Date();\n  constructor(public dialog: MatDialog,\n    public dialogRef: MatDialogRef<PointerDialogComponent>,\n    @Inject(MAT_DIALOG_DATA) public data: any, public dorseyService: DorseyService, private datepipe: DatePipe) {\n    this.data = this.data.split('æææ');\n    if (this.data[1] === 'true') {\n      this.condition = true;\n    } else if (this.data[1] === 'false') {\n      this.condition = false;\n    }\n    else {\n      if (this.data[1] === '') {\n        this.conditionActivity = 'process';\n      } else {\n        this.conditionActivity = 'activity';\n      }\n      //  if (this.data[1] === '') {\n      //    this.conditionActivity = 'process';\n      //  } else {\n      //    this.conditionActivity = 'activity';\n      //  }\n      // }\n\n      // else {\n      //   if(this.data[1]=='issue')\n      //   {\n      //     this.conditionActivity = '';\n      //   }\n    }\n    if (this.data[0] === 'new') {\n      this.disableFrustType = false;\n    } else {\n      this.disableFrustType = true;\n    }\n    this.data = this.data[0];\n  }\n\n  ngOnInit() {\n    let data = this.frustrationtypeData.filter(x => x.CompanyID.toString() === this.CompanyID.toString());\n    if (data.length == 0) {\n      this.suggestionAssignTypes = true;\n    }\n    else {\n      this.typeAvai = false;\n      this.suggestionAssignTypes = false;\n    }\n    this.GetStatus();\n    if (this.SubActivityID) {\n      this.GetTempSubActivity(this.ActivityID);\n    }\n  }\n  GetStatus() {\n    this.dorseyService.GetStatus().subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.statusData = subData;\n    });\n  }\n  onYesClick() {\n    this.dialogRef.close(true);\n  }\n  onNoClick(): void {\n    this.dialogRef.close();\n  }\n  ToggleSubActivity() {\n    this.subActivityStatus = !this.subActivityStatus;\n  }\n\n  AddPointer() {\n    let count = 0;\n    const Editcount = 0;\n\n    if (this.ProcessID === undefined || //this.ActivityID === undefined ||this.EmployeeID === undefined ||  this.Description===''|| this.Description === undefined ||\n      this.PointerTypeID === undefined || this.FrustrationTypeID === undefined ||\n      this.TeamID === undefined || this.SeverityID === undefined || this.Subject == undefined || this.StatusID === undefined ||\n\n      this.ProcessID === '' || // this.ActivityID === '' || this.EmployeeID === '' ||\n      this.PointerTypeID === '' ||\n      //this.FrustrationTypeIDs.length === 0 ||  \n      this.TeamID === '' || this.SeverityID === '' || this.Subject.trim() === '' || this.StatusID === '' || this.FrustrationTypeID.length === 0) {\n\n      this.dataSelf = 'Please enter mandatory(*) fields';\n      if (this.data === 'new') {\n\n      }\n      count++;\n    }\n\n    if (count === 0 && Editcount === 0) {\n      this.dataSelf = '';\n      if (this.data === 'new') {\n\n        this.Saving(this.data);\n      } else {\n        this.Saving(this.data);\n      }\n    }\n  }\n  frustrationTypesDa(event) {\n    this.FrustrationTypeID = event.value;\n  }\n  Saving(msg: string) {\n    if (this.ActivityID === '' || this.ActivityID === undefined) {\n      this.ActivityID = \"0\";\n    }\n\n    if (this.ProjectID === '' || this.ProjectID === undefined || this.ProjectID === null) {\n      this.ProjectID = \"0\";\n    }\n    let activityId: string;\n    if (this.subActivityStatus) {\n      activityId = this.SubActivityID\n    }\n    else {\n      activityId = this.ActivityID;\n    }\n    const json = {\n      CompanyID: this.CompanyID,\n      PointerID: this.PointerID,\n      EmployeeID: \"0\",\n      ProessID: this.ProcessID,\n      ActivityID: activityId,\n      PointerTypeID: this.PointerTypeID,\n      FrustrationsTypeID: this.FrustrationTypeID,\n      DepartmentID: \"0\",\n      TeamID: this.TeamID,\n      SeverityID: this.SeverityID,\n      StatusID: this.StatusID,\n      Subject: this.Subject,\n      Description: this.Description,\n      CreatedBy: this.currentUser,\n      UpdatedBy: this.currentUser,\n      ProjectID: this.ProjectID,\n    }\n    if (msg === 'new') {\n\n      this.dorseyService.SavePointer(json, 'No').subscribe(data => {\n\n        if (data['_body'].toString() !== \"0\") {\n\n          if (this.PointerTypeID.toString() === \"1\") {\n            this.PointerID = data['_body'].toString();\n            const caseData = {\n              PointerID: this.PointerID,\n              CreatedBy: this.currentUser,\n              UpdatedBy: this.currentUser\n            };\n            this.dorseyService.SaveCase(caseData).subscribe(data => {\n              if (data['_body'].toString() !== '0') {\n                {\n\n                }\n              }\n            });\n\n            // this.dialogRef.close(true);\n            this.dataSelf = 'Saved succesfully';\n            // this.FrustrationTypeIDs=[];\n            this.EmployeeID = '';\n            this.DepartmentID = '';\n            this.FrustrationTypeID = '';\n            this.Subject = '';\n            this.Description = '';\n            this.SeverityID = '';\n            this.StatusID = this.statusData[0].StatusID;\n            this.PointerID = '';\n            this.FTextBoxType2 = '';\n            this.showDd = true;\n            this.FrustrationTypeIDs = [];\n\n          }\n          else {\n            this.dataSelf = 'Updated successfully';\n          }\n        }\n\n      });\n    } else {\n\n      this.dorseyService.SavePointer(json, 'No').subscribe(data => {\n\n        if (data['_body'].toString() !== '0') {\n          this.dataSelf = 'Updated successfully';\n          setTimeout(() => {\n            this.dialogRef.close(true);\n          }, 1000);\n        } else {\n          this.dataSelf = 'Updated failed';\n        }\n      });\n    }\n  }\n\n\n  Clear() {\n    this.dialogRef.close(false);\n  }\n  employee(event) {\n    this.EmployeeID = event.value;\n    let tempEmp = this.employeeData.filter(x => x.EmployeeID === this.EmployeeID);\n\n    if (tempEmp.length > 0 && tempEmp.length === 1) {\n      this.tempDepart = this.departmentData.filter(x => x.DepartmentID === tempEmp[0].DepartmentID);\n      this.DepartmentID = this.tempDepart[0].DepartmentID;\n\n    }\n  }\n  process(event) {\n    this.ProcessID = event.value;\n    this.tempActivity = [];\n    this.GetTempActivity(this.ProcessID);\n\n\n    for (let i = 0; i < this.processData.length; i++) {\n      if (this.processData[i].ProcessID === this.ProcessID) {\n        this.TeamID = this.processData[i]['TeamID'];\n\n      }\n    }\n\n  }\n  GetTempActivity(processID) {\n    this.tempSubActivity = [];\n    for (let i = 0; i < this.activityData.length; i++) {\n      if (this.activityData[i].ProcessID === processID) {\n        this.tempActivity.push(this.activityData[i]);\n      }\n    }\n  }\n  activity(event) {\n    this.tempSubActivity = [];\n    this.ActivityID = event.value;\n    this.GetTempSubActivity(this.ActivityID);\n  }\n\n  GetTempSubActivity(ActivityID) {\n    this.tempSubActivity = [];\n    for (let i = 0; i < this.activityData.length; i++) {\n\n      if (this.activityData[i].ParentID === ActivityID) {\n        this.tempSubActivity.push(this.activityData[i]);\n      }\n    }\n  }\n  pointerType(event) {\n    this.PointerTypeID = event.value;\n    this.tempFrustrationType = [];\n    this.GetTempFrastrations();\n  }\n\n  GetTempFrastrations() {\n    for (let i = 0; i < this.frustrationtypeData.length; i++) {\n      if (this.frustrationtypeData[i].PointerTypeID === this.PointerTypeID) {\n        this.tempFrustrationType.push(this.frustrationtypeData[i]);\n      }\n    }\n  }\n\n  frustrationType(event) {\n    this.FrustrationTypeIDs = event.value;\n\n    let data = this.frustrationtypeData.filter(x => x.FrustrationsTypeID === this.FrustrationTypeIDs);\n    if (data.length > 0) {\n      this.FrustrationTypeIDs = data[0];\n    }\n\n    this.enableEdit = false;\n    if (!this.notEdit) {\n      this.typeEdit = true;\n    }\n  }\n  frustrationTypes(event) {\n    this.FrustrationTypeIDs = event.value;\n  }\n  department(event) {\n    this.DepartmentID = event.value;\n  }\n\n  team(event) {\n    this.TeamID = event.value;\n\n  }\n\n  GetKeyProcessTeam(TeamID) {\n    this.dorseyService.GetKeyProcessTeam().subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.processTeamData = subData;\n      for (let i = 0; i < this.processTeamData.length; i++) {\n        if (this.processTeamData[i].TeamID === TeamID) {\n          this.tempProcess.push(this.processTeamData[i]);\n        }\n      }\n    });\n  }\n\n  severity(event) {\n    this.SeverityID = event.value;\n  }\n\n  statusChange(event) {\n    this.StatusID = event.value;\n  }\n\n  AddType() {\n    // console.log(\"addtype\");\n    this.typeAvai = true;\n  }\n  CancelType() {\n    this.FTextBoxType = '';\n    this.typeAvai = false;\n    // this.suggestionAssignTypes=false;\n    // this.GetFrustrationType();\n    this.typeEdit = false;\n    // this.notEdit = true;\n    // this.enableEdit=true;\n  }\n  SaveType() {\n    // console.log(this.PointerTypeID);\n    let count = 0;\n    const Editcount = 0;\n\n    if (this.FTextBoxType === undefined || this.FTextBoxType.trim() === '') {\n\n      this.dataSelf = 'Please enter mandatory(*) fields';\n      if (this.data === 'new') {\n\n      }\n      count++;\n    }\n\n    if (count === 0 && Editcount === 0) {\n      this.dataSelf = '';\n      if (this.data === 'new') {\n\n        this.SaveTypeDetails(this.data);\n      } else {\n        this.SaveTypeDetails(this.data);\n      }\n    } else {\n\n    }\n\n  }\n\n  SaveTypeDetails(msg: string) {\n    // console.log(this.FrustrationTypeIDs);\n    if (this.FTextBoxType !== undefined || this.FTextBoxType !== '') {\n      this.FrustrationTypeIDs = [];\n      if (msg === 'new') {\n        this.FrustrationTypeIDs.push(this.FTextBoxType);\n        // console.log(this.FrustrationTypeIDs);\n        this.TypeIDS = this.FrustrationTypeIDs\n      }\n\n      if (msg === 'edit') {\n        // console.log(this.frustrationtypeData);\n        // console.log(this.FTextBoxType2);\n        this.FrustrationTypeIDs.push(this.FTextBoxType2.FrustrationsTypeName);\n        // console.log(this.FrustrationTypeIDs);\n        this.TypeIDS = this.FrustrationTypeIDs[0].FrustrationsTypeName;\n      }\n    }\n\n    const json = {\n      FrustrationsTypeID: this.FrustrationTypeIDs[0].FrustrationsTypeID,\n      CompanyID: this.CompanyID,\n      TypeIDS: this.TypeIDS,\n      CreatedBy: this.currentUser,\n      PointerTypeID: 1\n    }\n    if (msg === 'new') {\n      // console.log(json);\n      this.dorseyService.SaveTypes(json, 'No').subscribe(data => {\n        //  console.log(data['_body'].toString());\n        if (data['_body'].toString() === 'true') {\n          // console.log(data['_body']);\n          this.GetFrustrationType();\n          this.FTextBoxType = '';\n          this.enableEdit = true;\n          this.dataSelf = 'Frustration type saved successfully';\n          this.typeAvai = false;\n          // this.suggestionAssignTypes=false;\n          // this.dialogRef.close(true);\n\n        } else {\n          this.dataSelf = 'Frustration type saved failed';\n        }\n\n      });\n    }\n    else {\n      this.dorseyService.SaveTypes(json, 'No').subscribe(data => {\n        // console.log(data['_body']);\n        if (data['_body'].toString() === 'true') {\n\n\n          this.dataSelf = 'Frustration type updated successfully';\n          setTimeout(() => {\n            this.dataSelf = '';\n          }, 2000);\n          this.typeAvai = false;\n          this.GetFrustrationType();\n          // this.FTextBoxType='';\n\n        } else {\n          this.dataSelf = 'Frustration type updated failed';\n        }\n      });\n    }\n\n  }\n\n  EditableType() {\n    this.typeEdit = true;\n\n\n    // if(this.FTextBoxType2 === undefined || this.FTextBoxType2 === ''){\n    //   this.dataSelf = \"Select Frustration Type in dropdown\";\n    //   setTimeout(() => {\n    //     this.dataSelf='';\n    //   }, 2000);\n    // }else{\n    //   this.notEdit = false;\n    //   this.editClick=true;\n    //  // this.EditType();\n    //   this.dataSelf='';\n    // }\n  }\n\n  EditType() {\n\n    if (this.FTextBoxType2.FrustrationsTypeName === undefined || this.FTextBoxType2.FrustrationsTypeName === '') {\n      this.dataSelf = \"Please enter mandatory(*) fields\"\n    } else {\n      //console.log(element);\n      // console.log(this.FrustrationTypeIDs);\n      //this.showDd=true;\n      this.SaveTypeDetails('edit');\n      this.typeEdit = false;\n      // this.FTextBoxType= ''\n    }\n\n\n  }\n\n  GetPointer() {\n    this.dorseyService.GetPointer(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.pointerData = subData;\n    });\n  }\n\n\n  DeleteType(element, name) {\n\n    const dialogRef = this.dialog.open(PointerDialogComponent2, {\n\n      panelClass: 'custom-dialog-container',\n      data: 'Are you sure you want to delete frustation type:' + name + '?æææ' + true,\n      // width: '40%'\n    });\n    //   this.condition = true;\n\n    dialogRef.afterClosed().subscribe(result => {\n      if (result) {\n        // console.log(this.FrustrationTypeIDs);\n        // console.log(element);\n        for (let i = 0; i < this.FrustrationTypeIDs.length; i++) {\n          this.FrustrationTypeID = this.FrustrationTypeIDs[i].FrustrationsTypeID;\n          // console.log(this.FrustrationTypeID);\n        }\n        this.GetPointer();\n        let issueCount = 0;\n        setTimeout(() => {\n          // console.log(this.pointerData);\n          for (let i = 0; i < this.pointerData.length; i++) {\n            //  console.log(element, this.pointerData[i].FrustrationsTypeID);\n            if (element == this.pointerData[i].FrustrationsTypeID) {\n              issueCount++;\n            }\n\n\n          }\n\n          /// this.condition = true;\n          // console.log(!issueCount);\n          if (!issueCount) {\n            // console.log(\"****\");\n            this.dorseyService.DeleteType(element).subscribe(data => {\n              //alert('Are you sure ');\n              this.notEdit = true;\n              this.dataSelf = \"Deleted successfully\";\n              if (data.ok) {\n                this.condition = true;\n                // this.dialogCall('Deleted successfully');\n              }\n              this.GetFrustrationType();\n              this.FTextBoxType = '';\n            });\n\n          } else {\n            this.dataSelf = \"This frustration type is in use\";\n          }\n\n        }, 500);\n\n\n      }\n    });\n\n\n\n\n\n    this.typeEdit = false;\n  }\n  Tranfer() {\n\n    const json = {\n      CompanyID: this.CompanyID,\n      TypeIDS: JSON.stringify(this.FrustrationTypeIDs),\n      CreatedBy: this.currentUser,\n      PointerTypeID: 1\n    }\n\n    this.dorseyService.SaveTypes(json, 'No').subscribe(data => {\n      // console.log(data['_body'].toString());\n      if (data['_body'].toString() === 'true') {\n\n\n        this.GetFrustrationType();\n        // this.dialogRef.close(true);\n        this.dataSelf = 'Frustration type saved successfully';\n        setTimeout(() => {\n          this.dataSelf = '';\n        }, 2000);\n      } else {\n        this.dataSelf = 'Frustration type saved failed';\n        setTimeout(() => {\n          this.dataSelf = '';\n        }, 2000);\n      }\n\n    });\n  }\n  GetFrustrationType() {\n    this.dorseyService.GetFrustrationType(\"1\", this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n\n      let tempType: any;\n      tempType = subData;\n      //  console.log(tempType);\n      if (tempType.length === 0) {\n        this.suggestionAssignTypes = true;\n        this.dorseyService.GetFrustrationType('1', \"0\").subscribe(subData => {\n          subData = JSON.parse(subData['_body']);\n          this.frustrationtypeData = subData;\n          //  console.log(this.frustrationtypeData)\n        });\n      }\n      else {\n        this.frustrationtypeData = tempType;\n        this.suggestionAssignTypes = false;\n      }\n\n    });\n\n\n  }\n\n}\n\n\n@Component({\n  selector: 'app-dialog',\n  templateUrl: 'dialog.html',\n  styleUrls: ['dialog.css'],\n  providers: [DorseyService]\n})\nexport class PointerDialogComponent2 implements OnInit {\n  condition = false;\n  processData: any;\n  //ProcessID:string;\n  dataSelf: string;\n  TeamName: string;\n  TeamID: string;\n  teamData: any;\n  CompanyID: string;\n  currentUser: string;\n  TeamDescription: string;\n  processIDs = [];\n  updatedBy: any;\n  updatedDate = new Date();\n  constructor(\n    public dialogRef: MatDialogRef<PointerDialogComponent2>,\n    @Inject(MAT_DIALOG_DATA) public data: any, public dorseyService: DorseyService) {\n    // dialogRef.disableClose=true;\n    this.data = this.data.split('æææ');\n    if (this.data[1] === 'true') {\n      this.condition = true;\n    } else {\n      this.condition = false;\n    }\n    this.data = this.data[0];\n  }\n  ngOnInit() {\n\n  }\n  onYesClick() {\n    this.dialogRef.close(true);\n  }\n  onNoClick(): void {\n    this.dialogRef.close();\n  }\n\n  Clear() {\n    this.dialogRef.close(false);\n  }\n\n}\n","module.exports = \".dialogHead{\\r\\n  display: flex;\\r\\n  width: 100%;\\r\\n  margin: 0;\\r\\n  padding: 0;\\r\\n  justify-content: space-between;\\r\\n}\\r\\n\\r\\n.infoHead{\\r\\nflex:2;\\r\\ndisplay:flex;\\r\\n}\\r\\n\\r\\n.companyInfo{\\r\\nflex: 2;\\r\\n}\\r\\n\\r\\n.teamInfo{\\r\\n  flex: 1;\\r\\n  }\\r\\n\\r\\n.teamInfo{\\r\\n    padding-left: 10px;\\r\\n  }\\r\\n\\r\\n.ActionButton{\\r\\n  flex: 1;\\r\\n  display: flex;\\r\\n  justify-content: flex-end;\\r\\n}\\r\\n\\r\\n.ActionButton div{\\r\\nmargin: 10px;\\r\\n}\\r\\n\\r\\n.XBtn{\\r\\n  display: flex;\\r\\n  justify-content: flex-end;\\r\\n  position: relative;\\r\\n  padding: 0;\\r\\n  margin-top: -15px;\\r\\n  cursor: pointer;\\r\\n}\\r\\n\\r\\n.Xbtn .close{\\r\\ncursor: pointer !important;\\r\\n}\\r\\n\\r\\n@media (max-width:916px){\\r\\n.dialogHead{\\r\\n  flex-direction: column;\\r\\n}\\r\\n.ActionButton{\\r\\n  flex: 1;\\r\\n  display: flex;\\r\\n  justify-content: center;\\r\\n}\\r\\n\\r\\n}\\r\\n\\r\\n@media (max-width:916px){\\r\\n  .dialogHead{\\r\\n    flex-direction: column;\\r\\n  }\\r\\n  .ActionButton{\\r\\n    flex: 1;\\r\\n    display: flex;\\r\\n    justify-content: center;\\r\\n  }\\r\\n  \\r\\n  }\\r\\n\\r\\n@media (max-width:576px){\\r\\n  \\r\\n  .dialogHead, .ActionButton, .infoHead{\\r\\n    flex-direction: column;\\r\\n  }\\r\\n\\r\\n  .teamInfo{\\r\\n    padding-left: 0;\\r\\n  }\\r\\n\\r\\n  .ActionButton {\\r\\n    margin-top: 10px;\\r\\n  }\\r\\n\\r\\n  .ActionButton div{\\r\\n    margin: 0;\\r\\n    }\\r\\n  \\r\\n}\\r\\n\\r\\n.mappings, .mappings1 {\\r\\n min-width: 700px;\\r\\n min-height: 200px;\\r\\n}\\r\\n\\r\\n[tble] table {\\r\\n    width:100%;\\r\\n    font-size: smaller;\\r\\n}\\r\\n\\r\\n[tble] th,td{\\r\\n  align-content: center;\\r\\n    text-align: left;\\r\\n    font-size: smaller;\\r\\n}\\r\\n\\r\\n.btn-info{\\r\\n  background-color:#3775b5 !important;\\r\\n}\\r\\n\\r\\n.redstar{\\r\\n  margin-right: 3px;\\r\\n}\\r\\n\\r\\n.circlelg {\\r\\n    width: 17px;\\r\\n    height: 17px;\\r\\n    border-radius: 50%;\\r\\n    font-size: 10px;\\r\\n    font-weight: bold;\\r\\n    color: white;\\r\\n    border: 2px solid white;\\r\\n    text-align: center;\\r\\n  \\r\\n}\\r\\n\\r\\n.frustrationbg {\\r\\n  background-color: #d55632;\\r\\n}\\r\\n\\r\\n.metricsbg {\\r\\n  background-color: #4aabe7;\\r\\n}\\r\\n\\r\\n[tble] th {\\r\\n color:white;     \\r\\nbackground-color: \\t#474747;\\r\\nheight: 35px;\\r\\n font-size: 13px;\\r\\n}\\r\\n\\r\\n[tble] td {\\r\\n    height: 35px;\\r\\n     font-size: 13px;\\r\\n}\\r\\n\\r\\n[tble] table {\\r\\n    border-collapse: collapse;\\r\\n    \\r\\n}\\r\\n\\r\\n[tble] table, th, td {\\r\\n    border: 0px solid #e1e1e1;\\r\\n    overflow:hidden;\\r\\n    word-wrap:break-word;\\r\\n}\\r\\n\\r\\n[tble] table.fixed { table-layout:fixed; }\\r\\n\\r\\n[tble] table.fixed td { overflow: hidden; }\\r\\n\\r\\n[tble1] table {\\r\\n  width:100%;\\r\\n  font-size: smaller;\\r\\n}\\r\\n\\r\\n[tble1] th,td{\\r\\nalign-content: center;\\r\\n  text-align: left;\\r\\n  font-size: smaller;\\r\\n}\\r\\n\\r\\n[tble1] th {\\r\\ncolor:white;     \\r\\nbackground-color: \\t#474747;\\r\\nheight: 35px;\\r\\nfont-size: 13px;\\r\\n}\\r\\n\\r\\n[tble1] td {\\r\\n  height: 35px;\\r\\n   font-size: 13px;\\r\\n}\\r\\n\\r\\n[tble1] table {\\r\\n  border-collapse: collapse;\\r\\n  \\r\\n}\\r\\n\\r\\n[tble1] table, th, td {\\r\\n  border: 0px solid #e1e1e1;\\r\\n  overflow:hidden;\\r\\n  word-wrap:break-word;\\r\\n}\\r\\n\\r\\n[tble1] table.fixed { table-layout:fixed; }\\r\\n\\r\\n[tble1] table.fixed td { overflow: hidden; }\\r\\n\\r\\n.highlight td {background: #C0C0C0;}\\r\\n\\r\\n.fa{\\r\\n     font-size: 18px; \\r\\n}\\r\\n\\r\\n.fa-square-o{\\r\\n  font-size:24px\\r\\n}\\r\\n\\r\\n.fa-plus{\\r\\nfont-size: 13px;\\r\\n}\\r\\n\\r\\n.dots {\\r\\n    flex-wrap: wrap;\\r\\n}\\r\\n\\r\\ninput {\\r\\n  width: 181%;\\r\\n}\\r\\n\\r\\n.square {\\r\\n  padding: 0px;\\r\\n  background-color: #3775b5;\\r\\n  color: white;\\r\\n  text-align: center;\\r\\n  cursor: pointer;\\r\\n  border-radius: 5px;\\r\\n  border: 2px solid #3775b5;\\r\\n  font-size: 13px;\\r\\n  font-weight: bold;\\r\\n  box-shadow: 0px 8px 3px 0px #265382;\\r\\n  font-family: unset;\\r\\n}\\r\\n\\r\\n.squareActvty {\\r\\n    padding: 0px;\\r\\n    background-color: #FFFFCC;\\r\\n    color: black;\\r\\n    text-align: center;\\r\\n    cursor: pointer;\\r\\n    border: 2px solid #FFFFCC;\\r\\n    border-radius: 5px;\\r\\n    word-break: break-word;\\r\\n    width: 100px;\\r\\n    box-shadow: 3px 3px 3px\\r\\n  }\\r\\n\\r\\n[squareBox] {\\r\\n    padding-top: 6%;\\r\\n    padding-right: 2%;\\r\\n  }\\r\\n\\r\\n.squareInActvty {\\r\\n    padding: 3px;\\r\\n    background-color: #e2e3e4;\\r\\n    color: black;\\r\\n    text-align: left;\\r\\n    cursor: pointer;\\r\\n    border: 2px solid #e2e3e4;\\r\\n    border-radius: 5px;\\r\\n    font-size: 12px;\\r\\n    word-break: break-word;\\r\\n    font-family: unset;\\r\\n   \\r\\n  }\\r\\n\\r\\n.squareExActvty {\\r\\n    padding: 3px;\\r\\n    background-color: #a3cda2;\\r\\n    color: black;\\r\\n    text-align: left;\\r\\n    cursor: pointer;\\r\\n    border: 2px solid #a3cda2;\\r\\n    border-radius: 5px;\\r\\n    font-size: 12px;\\r\\n    word-break: break-word;\\r\\n   \\r\\n  }\\r\\n\\r\\n.squareKPI {\\r\\n  padding-left: 9%;\\r\\n  padding-right: 7px;\\r\\n  background-color: #6ADAFF;\\r\\n  color: white;\\r\\n  text-align: center;\\r\\n  border-radius: 5px;\\r\\n  font-size: 17px;\\r\\n  width: 25px;\\r\\n  cursor: pointer;\\r\\n  }\\r\\n\\r\\n.squareKPI1 {\\r\\n    background-color: #6ADAFF;\\r\\n    color: white;\\r\\n    text-align: center;\\r\\n    border-radius: 5px;\\r\\n    font-size: 11px;\\r\\n    border-radius: 5px;\\r\\n    cursor: pointer;\\r\\n  }\\r\\n\\r\\n.squareKPI2 {\\r\\n    border: 2px solid white;\\r\\n    height: 17px;\\r\\n    width: 17px;\\r\\n    background-color: #4aabe7;\\r\\n    border-radius: 50%;\\r\\n    display: inline-block;\\r\\n    text-align: center;\\r\\n    color: white;\\r\\n    font-size: 10px;\\r\\n    margin-left: 6px;\\r\\n    font-weight:bold;\\r\\n    /* margin-top: 29px; */\\r\\n    margin-left: 1px;\\r\\n  }\\r\\n\\r\\n.squareIssue {\\r\\n    background-color: #FFAAE3;\\r\\n    color: white;\\r\\n    text-align: center;\\r\\n    cursor: pointer;\\r\\n    width: 25px;\\r\\n    word-wrap: break-word;\\r\\n    word-break: break-all;\\r\\n    border-radius: 5px;\\r\\n    font-size: 17px;\\r\\n  }\\r\\n\\r\\n.squareIssue1 {\\r\\n    border: 2px solid white;\\r\\n    height: 17px;\\r\\n    width: 17px;\\r\\n    background-color: #d55632;\\r\\n    border-radius: 50%;\\r\\n    display: inline-block;\\r\\n    text-align: center;\\r\\n    color: white;\\r\\n    font-size: 10px;\\r\\n    margin-left: 6px;\\r\\n    font-weight:bold;\\r\\n    /* margin-top: 29px; */\\r\\n  }\\r\\n\\r\\n.circleM {\\r\\n    height: 10%;\\r\\n    width: 10%;\\r\\n    background-color: #6ADAFF;\\r\\n    border-radius: 50%;\\r\\n    text-align: center;\\r\\n    color: white;\\r\\n    padding: 0px 5px;\\r\\n  }\\r\\n\\r\\n.circleI {\\r\\n    height: 40%;\\r\\n    width: 5%;\\r\\n    /* background-color: #EF74FC; */\\r\\n    border-radius: 50%;\\r\\n    text-align: center;\\r\\n    padding: 0px 0px;\\r\\n    font-size: 12px;\\r\\n    margin-left: 5px;\\r\\n  }\\r\\n\\r\\n.circleI .fa-lg{\\r\\n    margin-left: -8px;\\r\\n  }\\r\\n\\r\\ntable td,\\r\\n  th {\\r\\n    font-size: 10px;\\r\\n  }\\r\\n\\r\\n.squareIssues {\\r\\n    background-color:  #f7aaa3;\\r\\n    border: 2px solid #f7aaa3;\\r\\n    color: black;\\r\\n    text-align: center;\\r\\n    cursor: pointer;\\r\\n    border-radius: 5px;\\r\\n    font-size: 11px;\\r\\n    word-break: break-word;\\r\\n    box-shadow: 0 3px 3px 0px #d55632;\\r\\n    width: 270px;\\r\\n  }\\r\\n\\r\\n.squareM {\\r\\n    background-color: #4aabe7;\\r\\n    border: 2px solid #4aabe7;\\r\\n    color: black;\\r\\n    text-align: center;\\r\\n    cursor: pointer;\\r\\n    border-radius: 5px;\\r\\n    font-size: 11px;\\r\\n    word-break: break-word;\\r\\n    box-shadow:  0 3px 3px 0px  #4aabe7;\\r\\n    /* width:100px; */\\r\\n    width: 270px;\\r\\n  }\\r\\n\\r\\n.circleS {\\r\\n    background-color: #d9c25a;\\r\\n    border-radius: 15px;\\r\\n    text-align: center;\\r\\n    color: white;\\r\\n    padding: 0px 5px;\\r\\n    width: 12px;\\r\\n    height: 12px;\\r\\n    border: 1px solid white;\\r\\n    margin-top: 3px;\\r\\n  }\\r\\n\\r\\n.warningMsg{\\r\\n  color: red;\\r\\n  text-align: center;\\r\\n}\\r\\n\\r\\n.Addcolor {\\r\\n  color: #ef5350 !important ;\\r\\n  cursor: pointer !important ;  \\r\\n}\\r\\n\\r\\n.removeColor {\\r\\n  color: #ccc !important ;\\r\\n  cursor: none !important ;\\r\\n}\\r\\n\\r\\n#Rowcontainer{\\r\\n  display: flex;\\r\\n  margin: 0;\\r\\n  margin-top: -10px;\\r\\n  margin-bottom: -10px;\\r\\n  padding: 0;\\r\\n  justify-content: space-between;\\r\\n \\r\\n\\r\\n}\\r\\n\\r\\n.tableDiv{\\r\\n  overflow: auto;\\r\\n  max-height: 70vh;\\r\\n}\\r\\n\\r\\n.tableDiv td{\\r\\n  padding-right: 5px;\\r\\n}\\r\\n\\r\\n.tableDiv th{\\r\\n  min-width: 100px !important;\\r\\n  cursor: pointer;\\r\\n}\\r\\n\\r\\n.tableDiv::-webkit-scrollbar {\\r\\n  width: 4px;\\r\\n}\\r\\n\\r\\n.offset-1{\\r\\n  margin-left: 0%;\\r\\n}\\r\\n\\r\\n#Rowheading{\\r\\n  flex: 1;\\r\\n  text-align: center;\\r\\n  flex-basis: 30%;\\r\\n}\\r\\n\\r\\n#Rowwrapper{\\r\\nflex: 2;\\r\\n}\\r\\n\\r\\n#RowtableActions{\\r\\ndisplay: flex;\\r\\n\\r\\njustify-content: center;\\r\\n\\r\\n}\\r\\n\\r\\n#field, #buttonview{\\r\\n  margin: 2%;\\r\\n  \\r\\n}\\r\\n\\r\\n#Rowheadingsmap{\\r\\n  flex: 1;\\r\\n  text-align: center;\\r\\n  flex-basis: 30%;\\r\\n  font-size: 14px;\\r\\n  margin-left: -3%;\\r\\n}\\r\\n\\r\\n#buttonviewsmap{\\r\\n  margin-right: 2%;\\r\\n  \\r\\n}\\r\\n\\r\\n/* #searchField{\\r\\n  width: 100%;\\r\\n} */\\r\\n\\r\\n/********For Mobile view ********/\\r\\n\\r\\n@media (max-width:576px){\\r\\n  *{\\r\\n      box-sizing: border-box;\\r\\n  }\\r\\n\\r\\n  table{\\r\\n      margin: 2%;\\r\\n  }\\r\\n\\r\\n #Rowcontainer{\\r\\n     display: flex;\\r\\n     margin: 0;\\r\\n     padding: 0;\\r\\n     flex-direction: column;\\r\\n     justify-content: left;\\r\\n    \\r\\n     margin: 2%;\\r\\n \\r\\n }\\r\\n\\r\\n #Rowwrapper{\\r\\n     width: 100%;\\r\\n }\\r\\n \\r\\n #RowtableActions{\\r\\n display: flex;\\r\\n width: 100%;\\r\\n flex-direction: column;\\r\\n justify-content: center;\\r\\n \\r\\n }\\r\\n  #Rowheading{\\r\\n     \\r\\n    \\r\\n }\\r\\n \\r\\n\\r\\n.btn{\\r\\n     width: 100%;\\r\\n     \\r\\n }\\r\\n .mappings {\\r\\n  min-width: 280px;\\r\\n  min-height: 75px;\\r\\n }\\r\\n #btnmob{\\r\\n   margin: 2%;\\r\\n }\\r\\n  \\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcHJvY2Vzcy1tYXAvZGlhbG9nLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGFBQWE7RUFDYixXQUFXO0VBQ1gsU0FBUztFQUNULFVBQVU7RUFDViw4QkFBOEI7QUFDaEM7O0FBRUE7QUFDQSxNQUFNO0FBQ04sWUFBWTtBQUNaOztBQUVBO0FBQ0EsT0FBTztBQUNQOztBQUVBO0VBQ0UsT0FBTztFQUNQOztBQUVBO0lBQ0Usa0JBQWtCO0VBQ3BCOztBQUVGO0VBQ0UsT0FBTztFQUNQLGFBQWE7RUFDYix5QkFBeUI7QUFDM0I7O0FBRUE7QUFDQSxZQUFZO0FBQ1o7O0FBRUE7RUFDRSxhQUFhO0VBQ2IseUJBQXlCO0VBQ3pCLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1YsaUJBQWlCO0VBQ2pCLGVBQWU7QUFDakI7O0FBQ0E7QUFDQSwwQkFBMEI7QUFDMUI7O0FBRUE7QUFDQTtFQUNFLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0UsT0FBTztFQUNQLGFBQWE7RUFDYix1QkFBdUI7QUFDekI7O0FBRUE7O0FBRUE7RUFDRTtJQUNFLHNCQUFzQjtFQUN4QjtFQUNBO0lBQ0UsT0FBTztJQUNQLGFBQWE7SUFDYix1QkFBdUI7RUFDekI7O0VBRUE7O0FBRUY7O0VBRUU7SUFDRSxzQkFBc0I7RUFDeEI7O0VBRUE7SUFDRSxlQUFlO0VBQ2pCOztFQUVBO0lBQ0UsZ0JBQWdCO0VBQ2xCOztFQUVBO0lBQ0UsU0FBUztJQUNUOztBQUVKOztBQUdBO0NBQ0MsZ0JBQWdCO0NBQ2hCLGlCQUFpQjtBQUNsQjs7QUFDQTtJQUNJLFVBQVU7SUFDVixrQkFBa0I7QUFDdEI7O0FBQ0E7RUFDRSxxQkFBcUI7SUFDbkIsZ0JBQWdCO0lBQ2hCLGtCQUFrQjtBQUN0Qjs7QUFDQTtFQUNFLG1DQUFtQztBQUNyQzs7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjs7QUFHRTtJQUNFLFdBQVc7SUFDWCxZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLGVBQWU7SUFDZixpQkFBaUI7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QixvQkFBb0I7RUFDcEIsVUFBVTtFQUNWLDhCQUE4Qjs7O0FBR2hDOztBQUVBO0VBQ0UsY0FBYztFQUNkLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLDJCQUEyQjtFQUMzQixlQUFlO0FBQ2pCOztBQUVBO0VBQ0UsVUFBVTtBQUNaOztBQU1BO0VBQ0UsZUFBZTtBQUNqQjs7QUFDQTtFQUNFLE9BQU87RUFDUCxrQkFBa0I7RUFDbEIsZUFBZTtBQUNqQjs7QUFDQTtBQUNBLE9BQU87QUFDUDs7QUFDQTtBQUNBLGFBQWE7O0FBRWIsdUJBQXVCOztBQUV2Qjs7QUFFQTtFQUNFLFVBQVU7O0FBRVo7O0FBRUE7RUFDRSxPQUFPO0VBQ1Asa0JBQWtCO0VBQ2xCLGVBQWU7RUFDZixlQUFlO0VBQ2YsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsZ0JBQWdCOztBQUVsQjs7QUFFQTs7R0FFRzs7QUFFSCxpQ0FBaUM7O0FBQ2pDO0VBQ0U7TUFDSSxzQkFBc0I7RUFDMUI7O0VBRUE7TUFDSSxVQUFVO0VBQ2Q7O0NBRUQ7S0FDSSxhQUFhO0tBQ2IsU0FBUztLQUNULFVBQVU7S0FDVixzQkFBc0I7S0FDdEIscUJBQXFCOztLQUVyQixVQUFVOztDQUVkOztDQUVBO0tBQ0ksV0FBVztDQUNmOztDQUVBO0NBQ0EsYUFBYTtDQUNiLFdBQVc7Q0FDWCxzQkFBc0I7Q0FDdEIsdUJBQXVCOztDQUV2QjtFQUNDOzs7Q0FHRDs7O0FBR0Q7S0FDSyxXQUFXOztDQUVmO0NBQ0E7RUFDQyxnQkFBZ0I7RUFDaEIsZ0JBQWdCO0NBQ2pCO0NBQ0E7R0FDRSxVQUFVO0NBQ1o7O0FBRUQiLCJmaWxlIjoic3JjL2FwcC9wcm9jZXNzLW1hcC9kaWFsb2cuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmRpYWxvZ0hlYWR7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbn1cclxuXHJcbi5pbmZvSGVhZHtcclxuZmxleDoyO1xyXG5kaXNwbGF5OmZsZXg7XHJcbn1cclxuXHJcbi5jb21wYW55SW5mb3tcclxuZmxleDogMjtcclxufVxyXG5cclxuLnRlYW1JbmZve1xyXG4gIGZsZXg6IDE7XHJcbiAgfVxyXG5cclxuICAudGVhbUluZm97XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgfVxyXG5cclxuLkFjdGlvbkJ1dHRvbntcclxuICBmbGV4OiAxO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxufVxyXG5cclxuLkFjdGlvbkJ1dHRvbiBkaXZ7XHJcbm1hcmdpbjogMTBweDtcclxufVxyXG5cclxuLlhCdG57XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBwYWRkaW5nOiAwO1xyXG4gIG1hcmdpbi10b3A6IC0xNXB4O1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG4uWGJ0biAuY2xvc2V7XHJcbmN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDo5MTZweCl7XHJcbi5kaWFsb2dIZWFke1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbn1cclxuLkFjdGlvbkJ1dHRvbntcclxuICBmbGV4OiAxO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbn1cclxuXHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOjkxNnB4KXtcclxuICAuZGlhbG9nSGVhZHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgfVxyXG4gIC5BY3Rpb25CdXR0b257XHJcbiAgICBmbGV4OiAxO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIH1cclxuICBcclxuICB9XHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDo1NzZweCl7XHJcbiAgXHJcbiAgLmRpYWxvZ0hlYWQsIC5BY3Rpb25CdXR0b24sIC5pbmZvSGVhZHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgfVxyXG5cclxuICAudGVhbUluZm97XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgfVxyXG5cclxuICAuQWN0aW9uQnV0dG9uIHtcclxuICAgIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgfVxyXG5cclxuICAuQWN0aW9uQnV0dG9uIGRpdntcclxuICAgIG1hcmdpbjogMDtcclxuICAgIH1cclxuICBcclxufVxyXG5cclxuXHJcbi5tYXBwaW5ncywgLm1hcHBpbmdzMSB7XHJcbiBtaW4td2lkdGg6IDcwMHB4O1xyXG4gbWluLWhlaWdodDogMjAwcHg7XHJcbn1cclxuW3RibGVdIHRhYmxlIHtcclxuICAgIHdpZHRoOjEwMCU7XHJcbiAgICBmb250LXNpemU6IHNtYWxsZXI7XHJcbn1cclxuW3RibGVdIHRoLHRke1xyXG4gIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBmb250LXNpemU6IHNtYWxsZXI7XHJcbn1cclxuLmJ0bi1pbmZve1xyXG4gIGJhY2tncm91bmQtY29sb3I6IzM3NzViNSAhaW1wb3J0YW50O1xyXG59XHJcbi5yZWRzdGFye1xyXG4gIG1hcmdpbi1yaWdodDogM3B4O1xyXG59XHJcblxyXG5cclxuICAuY2lyY2xlbGcge1xyXG4gICAgd2lkdGg6IDE3cHg7XHJcbiAgICBoZWlnaHQ6IDE3cHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICBmb250LXNpemU6IDEwcHg7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIGJvcmRlcjogMnB4IHNvbGlkIHdoaXRlO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIFxyXG59XHJcblxyXG4uZnJ1c3RyYXRpb25iZyB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q1NTYzMjtcclxufVxyXG5cclxuLm1ldHJpY3NiZyB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRhYWJlNztcclxufVxyXG5cclxuW3RibGVdIHRoIHtcclxuIGNvbG9yOndoaXRlOyAgICAgXHJcbmJhY2tncm91bmQtY29sb3I6IFx0IzQ3NDc0NztcclxuaGVpZ2h0OiAzNXB4O1xyXG4gZm9udC1zaXplOiAxM3B4O1xyXG59XHJcblt0YmxlXSB0ZCB7XHJcbiAgICBoZWlnaHQ6IDM1cHg7XHJcbiAgICAgZm9udC1zaXplOiAxM3B4O1xyXG59XHJcblt0YmxlXSB0YWJsZSB7XHJcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xyXG4gICAgXHJcbn1cclxuW3RibGVdIHRhYmxlLCB0aCwgdGQge1xyXG4gICAgYm9yZGVyOiAwcHggc29saWQgI2UxZTFlMTtcclxuICAgIG92ZXJmbG93OmhpZGRlbjtcclxuICAgIHdvcmQtd3JhcDpicmVhay13b3JkO1xyXG59XHJcblt0YmxlXSB0YWJsZS5maXhlZCB7IHRhYmxlLWxheW91dDpmaXhlZDsgfVxyXG5bdGJsZV0gdGFibGUuZml4ZWQgdGQgeyBvdmVyZmxvdzogaGlkZGVuOyB9XHJcblxyXG5cclxuXHJcblxyXG5bdGJsZTFdIHRhYmxlIHtcclxuICB3aWR0aDoxMDAlO1xyXG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcclxufVxyXG5bdGJsZTFdIHRoLHRke1xyXG5hbGlnbi1jb250ZW50OiBjZW50ZXI7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxuICBmb250LXNpemU6IHNtYWxsZXI7XHJcbn1cclxuXHJcblt0YmxlMV0gdGgge1xyXG5jb2xvcjp3aGl0ZTsgICAgIFxyXG5iYWNrZ3JvdW5kLWNvbG9yOiBcdCM0NzQ3NDc7XHJcbmhlaWdodDogMzVweDtcclxuZm9udC1zaXplOiAxM3B4O1xyXG59XHJcblt0YmxlMV0gdGQge1xyXG4gIGhlaWdodDogMzVweDtcclxuICAgZm9udC1zaXplOiAxM3B4O1xyXG59XHJcblt0YmxlMV0gdGFibGUge1xyXG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XHJcbiAgXHJcbn1cclxuW3RibGUxXSB0YWJsZSwgdGgsIHRkIHtcclxuICBib3JkZXI6IDBweCBzb2xpZCAjZTFlMWUxO1xyXG4gIG92ZXJmbG93OmhpZGRlbjtcclxuICB3b3JkLXdyYXA6YnJlYWstd29yZDtcclxufVxyXG5bdGJsZTFdIHRhYmxlLmZpeGVkIHsgdGFibGUtbGF5b3V0OmZpeGVkOyB9XHJcblt0YmxlMV0gdGFibGUuZml4ZWQgdGQgeyBvdmVyZmxvdzogaGlkZGVuOyB9XHJcblxyXG5cclxuLmhpZ2hsaWdodCB0ZCB7YmFja2dyb3VuZDogI0MwQzBDMDt9XHJcblxyXG4uZmF7XHJcbiAgICAgZm9udC1zaXplOiAxOHB4OyBcclxufVxyXG5cclxuLmZhLXNxdWFyZS1ve1xyXG4gIGZvbnQtc2l6ZToyNHB4XHJcbn1cclxuLmZhLXBsdXN7XHJcbmZvbnQtc2l6ZTogMTNweDtcclxufVxyXG4uZG90cyB7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbn1cclxuICBcclxuaW5wdXQge1xyXG4gIHdpZHRoOiAxODElO1xyXG59XHJcbiAgXHJcbi5zcXVhcmUge1xyXG4gIHBhZGRpbmc6IDBweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzc3NWI1O1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICBib3JkZXI6IDJweCBzb2xpZCAjMzc3NWI1O1xyXG4gIGZvbnQtc2l6ZTogMTNweDtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBib3gtc2hhZG93OiAwcHggOHB4IDNweCAwcHggIzI2NTM4MjtcclxuICBmb250LWZhbWlseTogdW5zZXQ7XHJcbn1cclxuICAuc3F1YXJlQWN0dnR5IHtcclxuICAgIHBhZGRpbmc6IDBweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkZGQ0M7XHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjRkZGRkNDO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcclxuICAgIHdpZHRoOiAxMDBweDtcclxuICAgIGJveC1zaGFkb3c6IDNweCAzcHggM3B4XHJcbiAgfVxyXG5cclxuICBcclxuICBbc3F1YXJlQm94XSB7XHJcbiAgICBwYWRkaW5nLXRvcDogNiU7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAyJTtcclxuICB9XHJcbiAgXHJcbiAgLnNxdWFyZUluQWN0dnR5IHtcclxuICAgIHBhZGRpbmc6IDNweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNlMmUzZTQ7XHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgYm9yZGVyOiAycHggc29saWQgI2UyZTNlNDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XHJcbiAgICBmb250LWZhbWlseTogdW5zZXQ7XHJcbiAgIFxyXG4gIH1cclxuICBcclxuICAuc3F1YXJlRXhBY3R2dHkge1xyXG4gICAgcGFkZGluZzogM3B4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2EzY2RhMjtcclxuICAgIGNvbG9yOiBibGFjaztcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjYTNjZGEyO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcclxuICAgXHJcbiAgfVxyXG4gIFxyXG4gIC5zcXVhcmVLUEkge1xyXG4gIHBhZGRpbmctbGVmdDogOSU7XHJcbiAgcGFkZGluZy1yaWdodDogN3B4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM2QURBRkY7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgZm9udC1zaXplOiAxN3B4O1xyXG4gIHdpZHRoOiAyNXB4O1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICB9XHJcbiAgXHJcbiAgLnNxdWFyZUtQSTEge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzZBREFGRjtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIGZvbnQtc2l6ZTogMTFweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICB9XHJcblxyXG4gIC5zcXVhcmVLUEkyIHtcclxuICAgIGJvcmRlcjogMnB4IHNvbGlkIHdoaXRlO1xyXG4gICAgaGVpZ2h0OiAxN3B4O1xyXG4gICAgd2lkdGg6IDE3cHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGFhYmU3O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgZm9udC1zaXplOiAxMHB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDZweDtcclxuICAgIGZvbnQtd2VpZ2h0OmJvbGQ7XHJcbiAgICAvKiBtYXJnaW4tdG9wOiAyOXB4OyAqL1xyXG4gICAgbWFyZ2luLWxlZnQ6IDFweDtcclxuICB9XHJcbiAgXHJcbiAgLnNxdWFyZUlzc3VlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkFBRTM7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB3aWR0aDogMjVweDtcclxuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcclxuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIGZvbnQtc2l6ZTogMTdweDtcclxuICB9XHJcbiAgXHJcbiAgLnNxdWFyZUlzc3VlMSB7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCB3aGl0ZTtcclxuICAgIGhlaWdodDogMTdweDtcclxuICAgIHdpZHRoOiAxN3B4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Q1NTYzMjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgIG1hcmdpbi1sZWZ0OiA2cHg7XHJcbiAgICBmb250LXdlaWdodDpib2xkO1xyXG4gICAgLyogbWFyZ2luLXRvcDogMjlweDsgKi9cclxuICB9XHJcbiAgXHJcbiAgLmNpcmNsZU0ge1xyXG4gICAgaGVpZ2h0OiAxMCU7XHJcbiAgICB3aWR0aDogMTAlO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzZBREFGRjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIHBhZGRpbmc6IDBweCA1cHg7XHJcbiAgfVxyXG4gIFxyXG4gIC5jaXJjbGVJIHtcclxuICAgIGhlaWdodDogNDAlO1xyXG4gICAgd2lkdGg6IDUlO1xyXG4gICAgLyogYmFja2dyb3VuZC1jb2xvcjogI0VGNzRGQzsgKi9cclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDBweCAwcHg7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xyXG4gIH1cclxuXHJcbiAgLmNpcmNsZUkgLmZhLWxne1xyXG4gICAgbWFyZ2luLWxlZnQ6IC04cHg7XHJcbiAgfVxyXG4gIFxyXG4gIHRhYmxlIHRkLFxyXG4gIHRoIHtcclxuICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICB9XHJcbiAgXHJcbiAgLnNxdWFyZUlzc3VlcyB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAgI2Y3YWFhMztcclxuICAgIGJvcmRlcjogMnB4IHNvbGlkICNmN2FhYTM7XHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICBmb250LXNpemU6IDExcHg7XHJcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xyXG4gICAgYm94LXNoYWRvdzogMCAzcHggM3B4IDBweCAjZDU1NjMyO1xyXG4gICAgd2lkdGg6IDI3MHB4O1xyXG4gIH1cclxuICBcclxuICAuc3F1YXJlTSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGFhYmU3O1xyXG4gICAgYm9yZGVyOiAycHggc29saWQgIzRhYWJlNztcclxuICAgIGNvbG9yOiBibGFjaztcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIGZvbnQtc2l6ZTogMTFweDtcclxuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XHJcbiAgICBib3gtc2hhZG93OiAgMCAzcHggM3B4IDBweCAgIzRhYWJlNztcclxuICAgIC8qIHdpZHRoOjEwMHB4OyAqL1xyXG4gICAgd2lkdGg6IDI3MHB4O1xyXG4gIH1cclxuICAuY2lyY2xlUyB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDljMjVhO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTVweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIHBhZGRpbmc6IDBweCA1cHg7XHJcbiAgICB3aWR0aDogMTJweDtcclxuICAgIGhlaWdodDogMTJweDtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xyXG4gICAgbWFyZ2luLXRvcDogM3B4O1xyXG4gIH1cclxuLndhcm5pbmdNc2d7XHJcbiAgY29sb3I6IHJlZDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuLkFkZGNvbG9yIHtcclxuICBjb2xvcjogI2VmNTM1MCAhaW1wb3J0YW50IDtcclxuICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudCA7ICBcclxufVxyXG4ucmVtb3ZlQ29sb3Ige1xyXG4gIGNvbG9yOiAjY2NjICFpbXBvcnRhbnQgO1xyXG4gIGN1cnNvcjogbm9uZSAhaW1wb3J0YW50IDtcclxufVxyXG4jUm93Y29udGFpbmVye1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIG1hcmdpbi10b3A6IC0xMHB4O1xyXG4gIG1hcmdpbi1ib3R0b206IC0xMHB4O1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gXHJcblxyXG59XHJcblxyXG4udGFibGVEaXZ7XHJcbiAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgbWF4LWhlaWdodDogNzB2aDtcclxufVxyXG5cclxuLnRhYmxlRGl2IHRke1xyXG4gIHBhZGRpbmctcmlnaHQ6IDVweDtcclxufVxyXG5cclxuLnRhYmxlRGl2IHRoe1xyXG4gIG1pbi13aWR0aDogMTAwcHggIWltcG9ydGFudDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbi50YWJsZURpdjo6LXdlYmtpdC1zY3JvbGxiYXIge1xyXG4gIHdpZHRoOiA0cHg7XHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG4ub2Zmc2V0LTF7XHJcbiAgbWFyZ2luLWxlZnQ6IDAlO1xyXG59XHJcbiNSb3doZWFkaW5ne1xyXG4gIGZsZXg6IDE7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGZsZXgtYmFzaXM6IDMwJTtcclxufVxyXG4jUm93d3JhcHBlcntcclxuZmxleDogMjtcclxufVxyXG4jUm93dGFibGVBY3Rpb25ze1xyXG5kaXNwbGF5OiBmbGV4O1xyXG5cclxuanVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblxyXG59XHJcblxyXG4jZmllbGQsICNidXR0b252aWV3e1xyXG4gIG1hcmdpbjogMiU7XHJcbiAgXHJcbn1cclxuXHJcbiNSb3doZWFkaW5nc21hcHtcclxuICBmbGV4OiAxO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBmbGV4LWJhc2lzOiAzMCU7XHJcbiAgZm9udC1zaXplOiAxNHB4O1xyXG4gIG1hcmdpbi1sZWZ0OiAtMyU7XHJcbn1cclxuXHJcbiNidXR0b252aWV3c21hcHtcclxuICBtYXJnaW4tcmlnaHQ6IDIlO1xyXG4gIFxyXG59XHJcblxyXG4vKiAjc2VhcmNoRmllbGR7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn0gKi9cclxuXHJcbi8qKioqKioqKkZvciBNb2JpbGUgdmlldyAqKioqKioqKi9cclxuQG1lZGlhIChtYXgtd2lkdGg6NTc2cHgpe1xyXG4gICp7XHJcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgfVxyXG5cclxuICB0YWJsZXtcclxuICAgICAgbWFyZ2luOiAyJTtcclxuICB9XHJcblxyXG4gI1Jvd2NvbnRhaW5lcntcclxuICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgIG1hcmdpbjogMDtcclxuICAgICBwYWRkaW5nOiAwO1xyXG4gICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAganVzdGlmeS1jb250ZW50OiBsZWZ0O1xyXG4gICAgXHJcbiAgICAgbWFyZ2luOiAyJTtcclxuIFxyXG4gfVxyXG5cclxuICNSb3d3cmFwcGVye1xyXG4gICAgIHdpZHRoOiAxMDAlO1xyXG4gfVxyXG4gXHJcbiAjUm93dGFibGVBY3Rpb25ze1xyXG4gZGlzcGxheTogZmxleDtcclxuIHdpZHRoOiAxMDAlO1xyXG4gZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gXHJcbiB9XHJcbiAgI1Jvd2hlYWRpbmd7XHJcbiAgICAgXHJcbiAgICBcclxuIH1cclxuIFxyXG5cclxuLmJ0bntcclxuICAgICB3aWR0aDogMTAwJTtcclxuICAgICBcclxuIH1cclxuIC5tYXBwaW5ncyB7XHJcbiAgbWluLXdpZHRoOiAyODBweDtcclxuICBtaW4taGVpZ2h0OiA3NXB4O1xyXG4gfVxyXG4gI2J0bm1vYntcclxuICAgbWFyZ2luOiAyJTtcclxuIH1cclxuICBcclxufVxyXG4iXX0= */\"","module.exports = \"/**************************Process Map Top Buttons and dropdown*******************************/\\n#topContainer {\\n  width: 100%;\\n  margin: 0;\\n  padding: 0;\\n}\\n.label-style {\\n  text-align: center;\\n  vertical-align: middle;\\n  color: #c5c0ab;\\n  padding-top: 15px;\\n}\\n.screenActions {\\n  display: flex;\\n}\\n.selectDropDowns {\\n  width: 33%;\\n}\\n.actionBtns {\\n  width: 67%;\\n}\\n.selectWrapper, .btnWrapper {\\n  display: flex;\\n}\\n.mapTypeSelect {\\n  width: 25%;\\n  margin: 2%;\\n}\\n.teamSelect {\\n  width: 32%;\\n  margin: 2%;\\n}\\n.versionSelect {\\n  width: 32%;\\n  margin: 2%;\\n}\\n.btnWrapper button {\\n  margin: 2.5% 1% 0 1%;\\n}\\n/**************************      END       Process Map Top Buttons and dropdown*******************************/\\n/************************** For Mobile View   Process Map Top Buttons and dropdown*******************************/\\n@media (max-width: 576px) {\\n  #topContainer {\\n    width: 100%;\\n    margin: 0;\\n    padding: 0;\\n  }\\n\\n  .screenActions {\\n    display: flex;\\n    flex-direction: column;\\n    justify-content: space-betaween;\\n  }\\n\\n  .selectDropDowns {\\n    width: 100%;\\n  }\\n\\n  .actionBtns {\\n    width: 100%;\\n  }\\n\\n  .selectWrapper, .btnWrapper {\\n    display: flex;\\n    flex-direction: column;\\n  }\\n\\n  .mapTypeSelect, .versionSelect, .teamSelect {\\n    width: 100%;\\n    display: flex;\\n    margin: 2%;\\n  }\\n\\n  .mapTypeSelect mat-form-field, .versionSelect mat-form-field, .teamSelect mat-form-field {\\n    width: 100%;\\n    margin: 0 2%;\\n  }\\n\\n  .btnWrapper button {\\n    margin: 2.5% 1% 0 1%;\\n  }\\n\\n  .offset-1 {\\n    margin-left: 0%;\\n  }\\n}\\n/**************************      END   For Mobile View    Process Map Top Buttons and dropdown*******************************/\\n.mat-form-field-appearance-legacy .mat-form-field-wrapper {\\n  padding-bottom: 1.25em;\\n  width: 42% !important;\\n}\\nmat-form-field {\\n  display: initial;\\n}\\n@media print {\\n  .donotprintthis {\\n    display: none;\\n  }\\n}\\n@media print {\\n  @page {\\n    size: auto;\\n    margin: 0mm !important;\\n  }\\n  a[href]:after {\\n    content: none !important;\\n  }\\n}\\n@media print {\\n  #Header, #Footer {\\n    display: none !important;\\n    margin: 0mm !important;\\n  }\\n}\\n@media screen {\\n  .donotprintthis {\\n    display: block;\\n  }\\n}\\n.Addcolor {\\n  cursor: pointer !important;\\n}\\n.removeColor {\\n  cursor: pointer !important;\\n}\\n.removeColor1 {\\n  color: #ccc !important;\\n  cursor: pointer !important;\\n}\\n.dots {\\n  flex-wrap: wrap;\\n}\\nhtml,\\nbody {\\n  overflow-x: hidden;\\n}\\ninput {\\n  width: 181%;\\n}\\n.square {\\n  padding: 0px;\\n  background-color: #FFFF99;\\n  color: black;\\n  text-align: center;\\n  cursor: pointer;\\n  border-radius: 5px;\\n  border: 2px solid #C9C927;\\n  font-size: 13px;\\n  font-weight: bold;\\n  box-shadow: 3px 3px 3px #C9C927;\\n  font-family: unset;\\n}\\n.squareActvty {\\n  padding: 0px;\\n  background-color: #FFFFCC;\\n  color: black;\\n  text-align: center;\\n  cursor: pointer;\\n  border: 2px solid #C9C927;\\n  border-radius: 5px;\\n  /*font-size: 11px;*/\\n  word-break: break-word;\\n  /*height: 51px;*/\\n  width: 100px;\\n  box-shadow: 3px 3px 3px;\\n}\\n/*#activity {\\nfont-size: .5vw;\\n  }*/\\n[squareBox] {\\n  padding-top: 6%;\\n  padding-right: 2%;\\n}\\n.squareInActvty {\\n  padding: 0px;\\n  background-color: #e2e3e4;\\n  color: black;\\n  text-align: center;\\n  cursor: pointer;\\n  border: 2px solid #e2e3e4;\\n  border-radius: 5px;\\n  font-size: 12px;\\n  word-break: break-word;\\n  min-height: 51px;\\n  width: 100px;\\n  font-family: unset;\\n}\\n.squareExActvty {\\n  padding: 0px;\\n  background-color: #a3cda2;\\n  color: black;\\n  text-align: center;\\n  cursor: pointer;\\n  border: 2px solid #a3cda2;\\n  border-radius: 5px;\\n  font-size: 12px;\\n  word-break: break-word;\\n  min-height: 51px;\\n  width: 100px;\\n}\\n.squareKPI {\\n  /*border: 2px solid #10BCF5;*/\\n  background-color: #6ADAFF;\\n  color: white;\\n  text-align: center;\\n  border-radius: 5px;\\n  /*border: 1px solid #10BCF5;*/\\n  font-size: 17px;\\n  /* margin-left:-21px; */\\n  width: 25px;\\n  /* height: 21px; */\\n  cursor: pointer;\\n  /* box-shadow: 3px 3px 3px #1EBFF4; */\\n  /* padding-left: 7%;\\n  padding-right: 6%; */\\n}\\n.squareKPI1 {\\n  /*border: 2px solid #10BCF5;*/\\n  background-color: #6ADAFF;\\n  color: white;\\n  text-align: center;\\n  border-radius: 5px;\\n  /*border: 1px solid #10BCF5;*/\\n  font-size: 11px;\\n  /* margin-left:-21px; */\\n  width: 20px;\\n  /*height: 21px;*/\\n  border-radius: 5px;\\n  cursor: pointer;\\n  /*box-shadow: 3px 3px 3px #1EBFF4;*/\\n}\\n.squareIssue {\\n  /*border: 2px solid #FF5DCA;*/\\n  background-color: #FFAAE3;\\n  color: white;\\n  text-align: center;\\n  cursor: pointer;\\n  width: 25px;\\n  /* padding: 14%; */\\n  /*height: 21px;*/\\n  border-radius: 5px;\\n  font-size: 17px;\\n  /* box-shadow: 3px 3px 3px #FF5DCA; */\\n  /* margin-left:-11px; */\\n}\\n.squareIssue1 {\\n  /*border: 2px solid #FF5DCA;*/\\n  background-color: #FFAAE3;\\n  color: white;\\n  text-align: center;\\n  cursor: pointer;\\n  width: 25px;\\n  /* padding: 14%; */\\n  /*height: 21px;*/\\n  border-radius: 5px;\\n  font-size: 17px;\\n  /* box-shadow: 3px 3px 3px #FF5DCA; */\\n  /* margin-left:-11px; */\\n}\\n.circleM {\\n  height: 10%;\\n  width: 10%;\\n  background-color: #6ADAFF;\\n  border-radius: 50%;\\n  text-align: center;\\n  color: white;\\n  padding: 0px 5px;\\n}\\n.circleI {\\n  height: 10%;\\n  width: 10%;\\n  border-radius: 50%;\\n  text-align: center;\\n  color: white;\\n  padding: 0px 5px;\\n}\\ntable td,\\nth {\\n  font-size: 10px;\\n}\\n@media print {\\n  .donotprintthis {\\n    display: none;\\n  }\\n}\\n@media print {\\n  @page {\\n    size: auto;\\n    margin: 0mm;\\n  }\\n  a[href]:after {\\n    content: none !important;\\n  }\\n}\\n@media print {\\n  #Header,\\n#Footer {\\n    display: none !important;\\n  }\\n}\\n@media screen {\\n  .donotprintthis {\\n    display: block;\\n  }\\n}\\n@media (max-width: 576px) {\\n  #moblgd {\\n    margin-left: -2%;\\n  }\\n\\n  .alignment {\\n    margin-bottom: 1px;\\n  }\\n\\n  .alignment1 {\\n    margin-bottom: -3px;\\n  }\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcHJvY2Vzcy1tYXAvRjpcXE5pa2lsIFdvcmtcXFByb2plY3RzXFxEb3JzZXlcXEhpZXJhcmNoeSBTb3VyY2UgQ29kZVxcV29ya2luZ1xcZG9yc2V5R3JvdXAvc3JjXFxhcHBcXHByb2Nlc3MtbWFwXFxwcm9jZXNzLW1hcC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvcHJvY2Vzcy1tYXAvcHJvY2Vzcy1tYXAuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsOEZBQUE7QUFDQTtFQUVFLFdBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtBQ0FGO0FESUE7RUFDRSxrQkFBQTtFQUNBLHNCQUFBO0VBQ0EsY0FBQTtFQUNBLGlCQUFBO0FDREY7QURJQTtFQUNFLGFBQUE7QUNERjtBRElBO0VBQ0UsVUFBQTtBQ0RGO0FESUE7RUFDRSxVQUFBO0FDREY7QURJQTtFQUNFLGFBQUE7QUNERjtBRElBO0VBQ0UsVUFBQTtFQUNBLFVBQUE7QUNERjtBRElBO0VBQ0UsVUFBQTtFQUNBLFVBQUE7QUNERjtBRElBO0VBQ0UsVUFBQTtFQUNBLFVBQUE7QUNERjtBRElBO0VBQ0Usb0JBQUE7QUNERjtBREtBLDhHQUFBO0FBRUEsaUhBQUE7QUFDQTtFQUNFO0lBRUUsV0FBQTtJQUNBLFNBQUE7SUFDQSxVQUFBO0VDSkY7O0VEUUE7SUFDRSxhQUFBO0lBQ0Esc0JBQUE7SUFDQSwrQkFBQTtFQ0xGOztFRFFBO0lBQ0UsV0FBQTtFQ0xGOztFRFFBO0lBQ0UsV0FBQTtFQ0xGOztFRFFBO0lBQ0UsYUFBQTtJQUNBLHNCQUFBO0VDTEY7O0VEUUE7SUFDRSxXQUFBO0lBQ0EsYUFBQTtJQUNBLFVBQUE7RUNMRjs7RURRQTtJQUNFLFdBQUE7SUFDQSxZQUFBO0VDTEY7O0VEVUE7SUFDRSxvQkFBQTtFQ1BGOztFRFVBO0lBQ0UsZUFBQTtFQ1BGO0FBQ0Y7QURTQSw2SEFBQTtBQUlBO0VBQ0ksc0JBQUE7RUFDQSxxQkFBQTtBQ1ZKO0FEWUE7RUFFSSxn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NkRFO0VBQ0U7SUFDRSxjQUFBO0VDM0RKO0FBQ0Y7QUQ4REU7RUFDRTtJQUNFLGdCQUFBO0VDNURKOztFRDhERTtJQUNFLGtCQUFBO0VDM0RKOztFRDZERTtJQUNFLG1CQUFBO0VDMURKO0FBQ0YiLCJmaWxlIjoic3JjL2FwcC9wcm9jZXNzLW1hcC9wcm9jZXNzLW1hcC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqKioqKioqKioqKioqKioqKlByb2Nlc3MgTWFwIFRvcCBCdXR0b25zIGFuZCBkcm9wZG93bioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbiN0b3BDb250YWluZXJ7XHJcbiBcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICBcclxufVxyXG5cclxuLmxhYmVsLXN0eWxlIHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICBjb2xvcjogI2M1YzBhYjtcclxuICBwYWRkaW5nLXRvcDogMTVweDtcclxufVxyXG5cclxuLnNjcmVlbkFjdGlvbnN7XHJcbiAgZGlzcGxheTogZmxleDtcclxufVxyXG5cclxuLnNlbGVjdERyb3BEb3duc3sgXHJcbiAgd2lkdGg6IDMzJTtcclxufVxyXG5cclxuLmFjdGlvbkJ0bnN7ICBcclxuICB3aWR0aDogNjclO1xyXG59XHJcblxyXG4uc2VsZWN0V3JhcHBlciwgLmJ0bldyYXBwZXJ7XHJcbiAgZGlzcGxheTogZmxleDtcclxufVxyXG5cclxuLm1hcFR5cGVTZWxlY3R7XHJcbiAgd2lkdGg6IDI1JTtcclxuICBtYXJnaW46IDIlO1xyXG59XHJcblxyXG4udGVhbVNlbGVjdHtcclxuICB3aWR0aDogMzIlO1xyXG4gIG1hcmdpbjogMiU7XHJcbn1cclxuXHJcbi52ZXJzaW9uU2VsZWN0e1xyXG4gIHdpZHRoOiAzMiU7XHJcbiAgbWFyZ2luOiAyJTtcclxufVxyXG5cclxuLmJ0bldyYXBwZXIgYnV0dG9ue1xyXG4gIG1hcmdpbjogMi41JSAxJSAwIDElO1xyXG4gIFxyXG59XHJcblxyXG4vKioqKioqKioqKioqKioqKioqKioqKioqKiogICAgICBFTkQgICAgICAgUHJvY2VzcyBNYXAgVG9wIEJ1dHRvbnMgYW5kIGRyb3Bkb3duKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKiBGb3IgTW9iaWxlIFZpZXcgICBQcm9jZXNzIE1hcCBUb3AgQnV0dG9ucyBhbmQgZHJvcGRvd24qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5AbWVkaWEgKG1heC13aWR0aDogNTc2cHgpe1xyXG4gICN0b3BDb250YWluZXJ7XHJcbiBcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIFxyXG4gIH1cclxuICBcclxuICAuc2NyZWVuQWN0aW9uc3tcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXRhd2VlbjtcclxuICB9XHJcbiAgXHJcbiAgLnNlbGVjdERyb3BEb3duc3sgXHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbiAgXHJcbiAgLmFjdGlvbkJ0bnN7ICBcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuICBcclxuICAuc2VsZWN0V3JhcHBlciwgLmJ0bldyYXBwZXJ7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICB9XHJcbiAgXHJcbiAgLm1hcFR5cGVTZWxlY3QsIC52ZXJzaW9uU2VsZWN0LCAudGVhbVNlbGVjdHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIG1hcmdpbjogMiU7XHJcbiAgfVxyXG5cclxuICAubWFwVHlwZVNlbGVjdCBtYXQtZm9ybS1maWVsZCwgLnZlcnNpb25TZWxlY3QgbWF0LWZvcm0tZmllbGQsIC50ZWFtU2VsZWN0IG1hdC1mb3JtLWZpZWxke1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXJnaW46MCAyJTtcclxuICB9XHJcbiAgXHJcbiAgXHJcblxyXG4gIC5idG5XcmFwcGVyIGJ1dHRvbntcclxuICAgIG1hcmdpbjogMi41JSAxJSAwIDElO1xyXG4gICAgXHJcbiAgfVxyXG4gIC5vZmZzZXQtMXtcclxuICAgIG1hcmdpbi1sZWZ0OiAwJTtcclxuICB9XHJcbn1cclxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqICAgICAgRU5EICAgRm9yIE1vYmlsZSBWaWV3ICAgIFByb2Nlc3MgTWFwIFRvcCBCdXR0b25zIGFuZCBkcm9wZG93bioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cclxuXHJcbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMS4yNWVtO1xyXG4gICAgd2lkdGg6IDQyJSAhaW1wb3J0YW50O1xyXG59XHJcbm1hdC1mb3JtLWZpZWxkIHtcclxuIFxyXG4gICAgZGlzcGxheTogaW5pdGlhbDtcclxuXHJcbn1cclxuQG1lZGlhIHByaW50XHJcbntcclxuICAgIC5kb25vdHByaW50dGhpc1xyXG4gICAge1xyXG4gICAgICBcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgXHJcbiAgICB9XHJcbn1cclxuQG1lZGlhIHByaW50IHtcclxuICAgIEBwYWdlIHsgc2l6ZTogYXV0bzsgIG1hcmdpbjogMG1tICFpbXBvcnRhbnQ7ICB9XHJcblxyXG4gICAgYVtocmVmXTphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWVkaWEgcHJpbnQge1xyXG4gICAgI0hlYWRlciwgI0Zvb3RlciB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgbWFyZ2luOiAwbW0gICFpbXBvcnRhbnR9XHJcbn1cclxuQG1lZGlhIHNjcmVlblxyXG57XHJcbiAgICAuZG9ub3RwcmludHRoaXNcclxuICAgIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxufVxyXG4uQWRkY29sb3Ige1xyXG4gICAgLy8gY29sb3I6ICNlZjUzNTAgIWltcG9ydGFudCA7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudCA7ICBcclxuIH1cclxuIC5yZW1vdmVDb2xvciB7XHJcbiAgICAvLyBjb2xvcjogI2NjYyAhaW1wb3J0YW50IDtcclxuICAgIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50IDtcclxuIH1cclxuXHJcbiAucmVtb3ZlQ29sb3IxIHtcclxuICBjb2xvcjogI2NjYyAhaW1wb3J0YW50IDtcclxuICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudCA7XHJcbn1cclxuXHJcbiAuZG90cyB7XHJcblxyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG5cclxuICB9XHJcblxyXG4gIGh0bWwsXHJcbiAgYm9keSB7XHJcblxyXG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gIH1cclxuXHJcbiAgaW5wdXQge1xyXG4gICAgd2lkdGg6IDE4MSU7XHJcbiAgfVxyXG5cclxuICAuc3F1YXJlIHtcclxuICAgIHBhZGRpbmc6IDBweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkZGOTk7XHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjQzlDOTI3O1xyXG4gICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBib3gtc2hhZG93OiAzcHggM3B4IDNweCAjQzlDOTI3O1xyXG4gICAgZm9udC1mYW1pbHk6IHVuc2V0O1xyXG4gIH1cclxuXHJcbiAgLnNxdWFyZUFjdHZ0eSB7XHJcbiAgICBwYWRkaW5nOiAwcHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkNDO1xyXG4gICAgY29sb3I6IGJsYWNrO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgYm9yZGVyOiAycHggc29saWQgI0M5QzkyNztcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIC8qZm9udC1zaXplOiAxMXB4OyovXHJcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xyXG4gICAgLypoZWlnaHQ6IDUxcHg7Ki9cclxuICAgIHdpZHRoOiAxMDBweDtcclxuICAgIGJveC1zaGFkb3c6IDNweCAzcHggM3B4XHJcbiAgfVxyXG5cclxuICAvKiNhY3Rpdml0eSB7XHJcbmZvbnQtc2l6ZTogLjV2dztcclxuICB9Ki9cclxuXHJcbiAgW3NxdWFyZUJveF0ge1xyXG4gICAgcGFkZGluZy10b3A6IDYlO1xyXG4gICAgcGFkZGluZy1yaWdodDogMiU7XHJcbiAgfVxyXG5cclxuICAuc3F1YXJlSW5BY3R2dHkge1xyXG4gICAgcGFkZGluZzogMHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2UyZTNlNDtcclxuICAgIGNvbG9yOiBibGFjaztcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGJvcmRlcjogMnB4IHNvbGlkICNlMmUzZTQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xyXG4gICAgbWluLWhlaWdodDogNTFweDtcclxuICAgIHdpZHRoOiAxMDBweDtcclxuICAgIC8vIGJveC1zaGFkb3c6IDNweCAzcHggM3B4ICNDOUM5Mjc7XHJcbiAgICBmb250LWZhbWlseTogdW5zZXQ7XHJcblxyXG4gIH1cclxuXHJcbiAgLnNxdWFyZUV4QWN0dnR5IHtcclxuICAgIHBhZGRpbmc6IDBweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNhM2NkYTI7XHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjYTNjZGEyO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcclxuICAgIG1pbi1oZWlnaHQ6IDUxcHg7XHJcbiAgICB3aWR0aDogMTAwcHg7XHJcbiAgICAvLyBib3gtc2hhZG93OiAzcHggM3B4IDNweCAjNzNBRDIxO1xyXG4gIH1cclxuXHJcbiAgLnNxdWFyZUtQSSB7XHJcbiAgICAvKmJvcmRlcjogMnB4IHNvbGlkICMxMEJDRjU7Ki9cclxuICAgIC8vIHBhZGRpbmctbGVmdDogOSU7XHJcbiAgICAvLyBwYWRkaW5nLXJpZ2h0OiA3cHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNkFEQUZGO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgLypib3JkZXI6IDFweCBzb2xpZCAjMTBCQ0Y1OyovXHJcbiAgICBmb250LXNpemU6IDE3cHg7XHJcbiAgICAvKiBtYXJnaW4tbGVmdDotMjFweDsgKi9cclxuICAgIHdpZHRoOiAyNXB4O1xyXG4gICAgLyogaGVpZ2h0OiAyMXB4OyAqL1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgLyogYm94LXNoYWRvdzogM3B4IDNweCAzcHggIzFFQkZGNDsgKi9cclxuICAgIC8qIHBhZGRpbmctbGVmdDogNyU7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiA2JTsgKi9cclxuICB9XHJcblxyXG4gIC5zcXVhcmVLUEkxIHtcclxuICAgIC8qYm9yZGVyOiAycHggc29saWQgIzEwQkNGNTsqL1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzZBREFGRjtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIC8qYm9yZGVyOiAxcHggc29saWQgIzEwQkNGNTsqL1xyXG4gICAgZm9udC1zaXplOiAxMXB4O1xyXG4gICAgLyogbWFyZ2luLWxlZnQ6LTIxcHg7ICovXHJcbiAgICB3aWR0aDogMjBweDtcclxuICAgIC8qaGVpZ2h0OiAyMXB4OyovXHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAvKmJveC1zaGFkb3c6IDNweCAzcHggM3B4ICMxRUJGRjQ7Ki9cclxuICB9XHJcblxyXG4gIC5zcXVhcmVJc3N1ZSB7XHJcbiAgICAvKmJvcmRlcjogMnB4IHNvbGlkICNGRjVEQ0E7Ki9cclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkFBRTM7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB3aWR0aDogMjVweDtcclxuICAgIC8qIHBhZGRpbmc6IDE0JTsgKi9cclxuICAgIC8qaGVpZ2h0OiAyMXB4OyovXHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICBmb250LXNpemU6IDE3cHg7XHJcbiAgICAvKiBib3gtc2hhZG93OiAzcHggM3B4IDNweCAjRkY1RENBOyAqL1xyXG4gICAgLyogbWFyZ2luLWxlZnQ6LTExcHg7ICovXHJcbiAgfVxyXG5cclxuICAuc3F1YXJlSXNzdWUxIHtcclxuICAgIC8qYm9yZGVyOiAycHggc29saWQgI0ZGNURDQTsqL1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQUFFMztcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHdpZHRoOiAyNXB4O1xyXG4gICAgLyogcGFkZGluZzogMTQlOyAqL1xyXG4gICAgLypoZWlnaHQ6IDIxcHg7Ki9cclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIGZvbnQtc2l6ZTogMTdweDtcclxuICAgIC8vIHBhZGRpbmctbGVmdDogNnB4O1xyXG4gICAgLy8gcGFkZGluZy1yaWdodDogNnB4O1xyXG4gICAgLyogYm94LXNoYWRvdzogM3B4IDNweCAzcHggI0ZGNURDQTsgKi9cclxuICAgIC8qIG1hcmdpbi1sZWZ0Oi0xMXB4OyAqL1xyXG4gIH1cclxuXHJcbiAgLmNpcmNsZU0ge1xyXG4gICAgaGVpZ2h0OiAxMCU7XHJcbiAgICB3aWR0aDogMTAlO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzZBREFGRjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIHBhZGRpbmc6IDBweCA1cHg7XHJcbiAgfVxyXG5cclxuICAuY2lyY2xlSSB7XHJcbiAgICBoZWlnaHQ6IDEwJTtcclxuICAgIHdpZHRoOiAxMCU7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICBwYWRkaW5nOiAwcHggNXB4O1xyXG4gIH1cclxuXHJcbiAgdGFibGUgdGQsXHJcbiAgdGgge1xyXG4gICAgZm9udC1zaXplOiAxMHB4O1xyXG4gIH1cclxuXHJcbiAgLy8gLnNxdWFyZUlzc3VlcyB7XHJcbiAgLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZBQUUzO1xyXG4gIC8vICAgYm9yZGVyOiAycHggc29saWQgI0ZGNURDQTtcclxuICAvLyAgIGNvbG9yOiBibGFjaztcclxuICAvLyAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAvLyAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAvLyAgIGZvbnQtc2l6ZTogMTFweDtcclxuICAvLyAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XHJcbiAgLy8gICBtaW4td2lkdGg6IDYwcHg7XHJcbiAgLy8gICB3aWR0aDogMTUwcHg7XHJcbiAgLy8gICBtYXJnaW4tbGVmdDogMnB4O1xyXG4gIC8vICAgYm94LXNoYWRvdzogM3B4IDNweCAzcHggI0ZGNURDQTtcclxuICAvLyB9XHJcblxyXG4gIC8vIC5zcXVhcmVNIHtcclxuICAvLyAgIGJhY2tncm91bmQtY29sb3I6ICM2QURBRkY7XHJcbiAgLy8gICBib3JkZXI6IDJweCBzb2xpZCAjMTBCQ0Y1O1xyXG4gIC8vICAgY29sb3I6IGJsYWNrO1xyXG4gIC8vICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIC8vICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gIC8vICAgZm9udC1zaXplOiAxMXB4O1xyXG4gIC8vICAgd29yZC1icmVhazogYnJlYWstd29yZDtcclxuICAvLyAgIG1pbi13aWR0aDogNjBweDtcclxuICAvLyAgIHdpZHRoOiAxNDZweDtcclxuICAvLyAgIG1hcmdpbi1sZWZ0OiAycHg7XHJcbiAgLy8gICBib3gtc2hhZG93OiAzcHggM3B4IDNweCAjMTBCQ0Y1O1xyXG4gIC8vIH1cclxuXHJcbiAgQG1lZGlhIHByaW50IHtcclxuICAgIC5kb25vdHByaW50dGhpcyB7XHJcblxyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBtZWRpYSBwcmludCB7XHJcbiAgICBAcGFnZSB7XHJcbiAgICAgIHNpemU6IGF1dG87XHJcbiAgICAgIG1hcmdpbjogMG1tO1xyXG4gICAgfVxyXG5cclxuICAgIGFbaHJlZl06YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgcHJpbnQge1xyXG5cclxuICAgICNIZWFkZXIsXHJcbiAgICAjRm9vdGVyIHtcclxuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQG1lZGlhIHNjcmVlbiB7XHJcbiAgICAuZG9ub3RwcmludHRoaXMge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBtZWRpYSAobWF4LXdpZHRoOjU3NnB4KXtcclxuICAgICNtb2JsZ2R7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMiU7XHJcbiAgICB9XHJcbiAgICAuYWxpZ25tZW50e1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAxcHg7XHJcbiAgICB9XHJcbiAgICAuYWxpZ25tZW50MXtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogLTNweDtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuXHJcbiIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKlByb2Nlc3MgTWFwIFRvcCBCdXR0b25zIGFuZCBkcm9wZG93bioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4jdG9wQ29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLmxhYmVsLXN0eWxlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBjb2xvcjogI2M1YzBhYjtcbiAgcGFkZGluZy10b3A6IDE1cHg7XG59XG5cbi5zY3JlZW5BY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLnNlbGVjdERyb3BEb3ducyB7XG4gIHdpZHRoOiAzMyU7XG59XG5cbi5hY3Rpb25CdG5zIHtcbiAgd2lkdGg6IDY3JTtcbn1cblxuLnNlbGVjdFdyYXBwZXIsIC5idG5XcmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLm1hcFR5cGVTZWxlY3Qge1xuICB3aWR0aDogMjUlO1xuICBtYXJnaW46IDIlO1xufVxuXG4udGVhbVNlbGVjdCB7XG4gIHdpZHRoOiAzMiU7XG4gIG1hcmdpbjogMiU7XG59XG5cbi52ZXJzaW9uU2VsZWN0IHtcbiAgd2lkdGg6IDMyJTtcbiAgbWFyZ2luOiAyJTtcbn1cblxuLmJ0bldyYXBwZXIgYnV0dG9uIHtcbiAgbWFyZ2luOiAyLjUlIDElIDAgMSU7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKiAgICAgIEVORCAgICAgICBQcm9jZXNzIE1hcCBUb3AgQnV0dG9ucyBhbmQgZHJvcGRvd24qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqIEZvciBNb2JpbGUgVmlldyAgIFByb2Nlc3MgTWFwIFRvcCBCdXR0b25zIGFuZCBkcm9wZG93bioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5AbWVkaWEgKG1heC13aWR0aDogNTc2cHgpIHtcbiAgI3RvcENvbnRhaW5lciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAuc2NyZWVuQWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0YXdlZW47XG4gIH1cblxuICAuc2VsZWN0RHJvcERvd25zIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5hY3Rpb25CdG5zIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5zZWxlY3RXcmFwcGVyLCAuYnRuV3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG5cbiAgLm1hcFR5cGVTZWxlY3QsIC52ZXJzaW9uU2VsZWN0LCAudGVhbVNlbGVjdCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW46IDIlO1xuICB9XG5cbiAgLm1hcFR5cGVTZWxlY3QgbWF0LWZvcm0tZmllbGQsIC52ZXJzaW9uU2VsZWN0IG1hdC1mb3JtLWZpZWxkLCAudGVhbVNlbGVjdCBtYXQtZm9ybS1maWVsZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIDIlO1xuICB9XG5cbiAgLmJ0bldyYXBwZXIgYnV0dG9uIHtcbiAgICBtYXJnaW46IDIuNSUgMSUgMCAxJTtcbiAgfVxuXG4gIC5vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKiogICAgICBFTkQgICBGb3IgTW9iaWxlIFZpZXcgICAgUHJvY2VzcyBNYXAgVG9wIEJ1dHRvbnMgYW5kIGRyb3Bkb3duKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAxLjI1ZW07XG4gIHdpZHRoOiA0MiUgIWltcG9ydGFudDtcbn1cblxubWF0LWZvcm0tZmllbGQge1xuICBkaXNwbGF5OiBpbml0aWFsO1xufVxuXG5AbWVkaWEgcHJpbnQge1xuICAuZG9ub3RwcmludHRoaXMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbkBtZWRpYSBwcmludCB7XG4gIEBwYWdlIHtcbiAgICBzaXplOiBhdXRvO1xuICAgIG1hcmdpbjogMG1tICFpbXBvcnRhbnQ7XG4gIH1cbiAgYVtocmVmXTphZnRlciB7XG4gICAgY29udGVudDogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgcHJpbnQge1xuICAjSGVhZGVyLCAjRm9vdGVyIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwbW0gIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiB7XG4gIC5kb25vdHByaW50dGhpcyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbi5BZGRjb2xvciB7XG4gIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xufVxuXG4ucmVtb3ZlQ29sb3Ige1xuICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbn1cblxuLnJlbW92ZUNvbG9yMSB7XG4gIGNvbG9yOiAjY2NjICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xufVxuXG4uZG90cyB7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuaHRtbCxcbmJvZHkge1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG5cbmlucHV0IHtcbiAgd2lkdGg6IDE4MSU7XG59XG5cbi5zcXVhcmUge1xuICBwYWRkaW5nOiAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGOTk7XG4gIGNvbG9yOiBibGFjaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm9yZGVyOiAycHggc29saWQgI0M5QzkyNztcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgYm94LXNoYWRvdzogM3B4IDNweCAzcHggI0M5QzkyNztcbiAgZm9udC1mYW1pbHk6IHVuc2V0O1xufVxuXG4uc3F1YXJlQWN0dnR5IHtcbiAgcGFkZGluZzogMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkNDO1xuICBjb2xvcjogYmxhY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IDJweCBzb2xpZCAjQzlDOTI3O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIC8qZm9udC1zaXplOiAxMXB4OyovXG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIC8qaGVpZ2h0OiA1MXB4OyovXG4gIHdpZHRoOiAxMDBweDtcbiAgYm94LXNoYWRvdzogM3B4IDNweCAzcHg7XG59XG5cbi8qI2FjdGl2aXR5IHtcbmZvbnQtc2l6ZTogLjV2dztcbiAgfSovXG5bc3F1YXJlQm94XSB7XG4gIHBhZGRpbmctdG9wOiA2JTtcbiAgcGFkZGluZy1yaWdodDogMiU7XG59XG5cbi5zcXVhcmVJbkFjdHZ0eSB7XG4gIHBhZGRpbmc6IDBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UyZTNlNDtcbiAgY29sb3I6IGJsYWNrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiAycHggc29saWQgI2UyZTNlNDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIG1pbi1oZWlnaHQ6IDUxcHg7XG4gIHdpZHRoOiAxMDBweDtcbiAgZm9udC1mYW1pbHk6IHVuc2V0O1xufVxuXG4uc3F1YXJlRXhBY3R2dHkge1xuICBwYWRkaW5nOiAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhM2NkYTI7XG4gIGNvbG9yOiBibGFjaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNhM2NkYTI7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICBtaW4taGVpZ2h0OiA1MXB4O1xuICB3aWR0aDogMTAwcHg7XG59XG5cbi5zcXVhcmVLUEkge1xuICAvKmJvcmRlcjogMnB4IHNvbGlkICMxMEJDRjU7Ki9cbiAgYmFja2dyb3VuZC1jb2xvcjogIzZBREFGRjtcbiAgY29sb3I6IHdoaXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgLypib3JkZXI6IDFweCBzb2xpZCAjMTBCQ0Y1OyovXG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgLyogbWFyZ2luLWxlZnQ6LTIxcHg7ICovXG4gIHdpZHRoOiAyNXB4O1xuICAvKiBoZWlnaHQ6IDIxcHg7ICovXG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLyogYm94LXNoYWRvdzogM3B4IDNweCAzcHggIzFFQkZGNDsgKi9cbiAgLyogcGFkZGluZy1sZWZ0OiA3JTtcbiAgcGFkZGluZy1yaWdodDogNiU7ICovXG59XG5cbi5zcXVhcmVLUEkxIHtcbiAgLypib3JkZXI6IDJweCBzb2xpZCAjMTBCQ0Y1OyovXG4gIGJhY2tncm91bmQtY29sb3I6ICM2QURBRkY7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIC8qYm9yZGVyOiAxcHggc29saWQgIzEwQkNGNTsqL1xuICBmb250LXNpemU6IDExcHg7XG4gIC8qIG1hcmdpbi1sZWZ0Oi0yMXB4OyAqL1xuICB3aWR0aDogMjBweDtcbiAgLypoZWlnaHQ6IDIxcHg7Ki9cbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC8qYm94LXNoYWRvdzogM3B4IDNweCAzcHggIzFFQkZGNDsqL1xufVxuXG4uc3F1YXJlSXNzdWUge1xuICAvKmJvcmRlcjogMnB4IHNvbGlkICNGRjVEQ0E7Ki9cbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQUFFMztcbiAgY29sb3I6IHdoaXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDI1cHg7XG4gIC8qIHBhZGRpbmc6IDE0JTsgKi9cbiAgLypoZWlnaHQ6IDIxcHg7Ki9cbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBmb250LXNpemU6IDE3cHg7XG4gIC8qIGJveC1zaGFkb3c6IDNweCAzcHggM3B4ICNGRjVEQ0E7ICovXG4gIC8qIG1hcmdpbi1sZWZ0Oi0xMXB4OyAqL1xufVxuXG4uc3F1YXJlSXNzdWUxIHtcbiAgLypib3JkZXI6IDJweCBzb2xpZCAjRkY1RENBOyovXG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkFBRTM7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHdpZHRoOiAyNXB4O1xuICAvKiBwYWRkaW5nOiAxNCU7ICovXG4gIC8qaGVpZ2h0OiAyMXB4OyovXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgZm9udC1zaXplOiAxN3B4O1xuICAvKiBib3gtc2hhZG93OiAzcHggM3B4IDNweCAjRkY1RENBOyAqL1xuICAvKiBtYXJnaW4tbGVmdDotMTFweDsgKi9cbn1cblxuLmNpcmNsZU0ge1xuICBoZWlnaHQ6IDEwJTtcbiAgd2lkdGg6IDEwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzZBREFGRjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogMHB4IDVweDtcbn1cblxuLmNpcmNsZUkge1xuICBoZWlnaHQ6IDEwJTtcbiAgd2lkdGg6IDEwJTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogMHB4IDVweDtcbn1cblxudGFibGUgdGQsXG50aCB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbn1cblxuQG1lZGlhIHByaW50IHtcbiAgLmRvbm90cHJpbnR0aGlzIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5AbWVkaWEgcHJpbnQge1xuICBAcGFnZSB7XG4gICAgc2l6ZTogYXV0bztcbiAgICBtYXJnaW46IDBtbTtcbiAgfVxuICBhW2hyZWZdOmFmdGVyIHtcbiAgICBjb250ZW50OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSBwcmludCB7XG4gICNIZWFkZXIsXG4jRm9vdGVyIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4ge1xuICAuZG9ub3RwcmludHRoaXMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTc2cHgpIHtcbiAgI21vYmxnZCB7XG4gICAgbWFyZ2luLWxlZnQ6IC0yJTtcbiAgfVxuXG4gIC5hbGlnbm1lbnQge1xuICAgIG1hcmdpbi1ib3R0b206IDFweDtcbiAgfVxuXG4gIC5hbGlnbm1lbnQxIHtcbiAgICBtYXJnaW4tYm90dG9tOiAtM3B4O1xuICB9XG59Il19 */\"","import { Component, OnInit, Inject, OnChanges } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { GoalService } from '../services/goal.service';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { PointerDialogComponent } from '../pointer/pointer.component';\nimport { MetricDialogComponent } from '../metric/metric.component';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { ProcessDialogComponent } from '../process/process.component';\nimport { ActivityDialogComponent } from '../activity/activity.component';\nimport { trigger, state, style, animate, transition } from '@angular/animations';\nimport { CdkDragDrop, transferArrayItem } from '@angular/cdk/drag-drop';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { PerformanceScoreCardService } from '../performance-score-card/performance-score-card.service';\nimport { HostListener } from '@angular/core';\nimport { LoginComponent } from '../login/login.component';\nimport { LocationStrategy } from '@angular/common'\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n  selector: 'app-process-map',\n  templateUrl: './process-map.component.html',\n  styleUrls: ['./process-map.component.scss'],\n  providers: [DorseyService, ProcessMapComponent],\n  animations: [\n    trigger('changeDivSize', [\n      state('initial', style({\n        width: '100%',\n        height: '100%',\n      })),\n      state('final', style({\n        // width: '50%',\n        height: '100%'\n      })),\n      transition('initial=>final', animate('1500ms')),\n      transition('final=>initial', animate('1000ms'))\n    ]),\n\n    trigger('changeTextSize', [\n      state('initial', style({\n        fontSize: '13px'\n      })),\n      state('final', style({\n        fontSize: '6px'\n      })),\n      transition('initial=>final', animate('1500ms')),\n      transition('final=>initial', animate('1000ms'))\n    ]),\n    trigger('changeBoxSize', [\n      state('initial', style({\n        fontSize: '17px',\n        padding: '0px 6px 0px 6px'\n      })),\n      state('final', style({\n        fontSize: '10px',\n        padding: '0px 2px 0px 2px'\n      })),\n      transition('initial=>final', animate('1500ms')),\n      transition('final=>initial', animate('1000ms'))\n    ]),\n    trigger('changeActBoxSize', [\n      state('initial', style({\n        fontSize: '17px',\n        height: '26px',\n        width: '26px'\n      })),\n      state('final', style({\n        fontSize: '6px',\n        height: '11px',\n        width: '11px'\n      })),\n      transition('initial=>final', animate('1500ms')),\n      transition('final=>initial', animate('1000ms'))\n    ]),\n    trigger('changeActBoxSize1', [\n      state('initial', style({\n        fontSize: '17px',\n        height: '26px',\n        width: '26px'\n      })),\n      state('final', style({\n        fontSize: '8px',\n        height: '11px',\n        width: '11px'\n      })),\n      transition('initial=>final', animate('1500ms')),\n      transition('final=>initial', animate('1000ms'))\n    ]),\n    trigger('changeMFDivSize', [\n      state('initial', style({\n        // width: '100%',\n        // height: '100%',\n      })),\n      state('final', style({\n        // width: '90%',\n        // height: '50%'\n      })),\n      transition('initial=>final', animate('1500ms')),\n      transition('final=>initial', animate('1000ms'))\n    ]),\n    trigger('changeAlertBoxSize', [\n      state('initial', style({\n        // fontSize:'12px',\n        // height:'40%px',\n        width: '20px'\n      })),\n      state('final', style({\n        //  fontSize:'6px',\n        //  height:'20%',\n        width: '11px'\n      })),\n      transition('initial=>final', animate('1500ms')),\n      transition('final=>initial', animate('1000ms'))\n    ])\n  ]\n})\nexport class ProcessMapComponent implements OnInit, OnChanges {\n  copyRight: string = copyRight;\n  isDisabledTeamId: boolean = false\n  menuCCheck = false;\n  menuReadCheck = false;\n  menuCreateCheck = false;\n  activityTemp: any;\n  menuUpdateCheck = false;\n  menuDeleteCheck = false;\n  RoleData: any;\n  readOnly = false;\n  TeamName: string;\n  empID: number;\n  granualActivity = [];\n  granualProcess = [];\n  granualTeam = [];\n  versions = [];\n  currentVersion = '';\n  showPrintData: boolean = false;\n\n  filterDropProcess: any;\n  filterDropActivity: any;\n  MapType: string;\n  CompanyID: string;\n\n  processLists = [];\n  pointerList = [];\n  activityLists: any;\n  ActiveActivities = {};\n  tempSubList = [];\n  ProcessFinalList = [];\n  IssuesLists = {\n\n  };\n\n  granulProcessLists = {\n\n  };\n\n  granualTempProcess = [];\n  employeeData: any;\n  processData: any;\n  connectedTo = [];\n  activityData: any;\n  pointerTypeData: any;\n  frustrationtypeData: any;\n  departmentData: any;\n  teamData: any;\n  severityData: any;\n  statusData: any;\n  ProcessType: string;\n  EmployeeID: string;\n  ProcessID: string;\n  ActivityID: string;\n  PointerTypeID: string;\n  FrustrationTypeID: string;\n  DepartmentID: string;\n  TeamID: any;\n  StatusID: string;\n  SeverityID: string;\n  Subject: string;\n  Description: string;\n  PointerID: string;\n  pointerData: any;\n  tempActivity = [];\n  tempFrustrationType = [];\n  CaseData = [];\n  processIDs = [];\n  expandMap = false;\n  cased: any;\n  IsVersion = false;\n  condition = false;\n  pocessSepecficActivity = [];\n  subProcessMap = {};\n  headerDate = new Date();\n  metricData: any;\n  expandProcess = false;\n  selcetdProcessId = [];\n  errorMessage: string;\n  Permissons: any;\n  showDiv = true;\n  companyData: any;\n  CompanyName: string;\n  subTeam = false;\n  MenuPermissions: any;\n  menuData: any;\n  menuID: string;\n  activityTypeData: any;\n  menuName: string;\n  ParentID: string;\n  VersionNumber: number;\n  childTableName: string;\n  childTableNameType: string;\n  currentVersionFileds = true;\n  currentUser: string;\n  EmpROleID: string;\n  hideButton = true;\n  dashboardTeamID: any;\n  typeName: any;\n  alertData: any;\n  alertPTypeID: any;\n  alertMTypeID: any;\n  alertValue: any;\n\n  alertMetricValue: any;\n  alertMetricPointer: any;\n  ifMetricAlert = false;\n  //showMetricAlert=false;\n  showMetricAlert = {};\n  AlertMetricStatus: any;\n  copyDate: number;\n  childTablePointers: any;\n  squence: any;\n  parentID: any;\n\n  currentZoomLevel: number;\n  width = 100;\n  height = 100;\n  currentState = 'initial';\n  changeSize = false;\n  previousVersionID: string;\n  sequenceList = [];\n  lastSequence: any;\n  GoalsList: any;\n  employeeDetails: any;\n  employeeLoginLevel = EmployeeLoginLevel;\n  constructor(private dorseyService: DorseyService, private location: LocationStrategy,\n    private dialog: MatDialog, private storage: LocalStorageService,\n    private goalService: GoalService\n  ) {\n    history.pushState(null, null, window.location.href);\n    this.location.onPopState(() => {\n      history.pushState(null, null, window.location.href);\n    });\n\n    this.currentUser = this.storage.retrieve('user');\n    this.menuData = this.storage.retrieve('menuData');\n    this.CompanyID = this.storage.retrieve('companyID');\n    this.EmployeeID = this.storage.retrieve('EmployeeID');\n    this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n    this.EmpROleID = this.storage.retrieve(\"EmpRoleID\");\n    this.empID = this.storage.retrieve(\"EmployeeID\");\n    this.dashboardTeamID = this.storage.retrieve(\"id\");\n    this.CompanyName = this.storage.retrieve('CompanyName');\n    if (this.dashboardTeamID !== null) {\n      this.TeamID = Number(this.dashboardTeamID);\n    }\n    else if (this.EmployeeID.toString() === \"0\") {\n      this.TeamID = Number(this.storage.retrieve('TeamIDLeader'));\n    }\n    else {\n      this.TeamID = (this.storage.retrieve('TeamID'));\n    }\n    this.employeeDetails = this.storage.retrieve(\"employeeDetails\");\n    this.GetEmployee();\n    this.MapType = \"3\";\n    this.typeName = 'Both';\n    this.GetTeam();\n  }\n\n  ngOnChanges() {\n\n  }\n\n  // @HostListener('window:popstate', ['$event'])\n  // onPopState(event) {\n  //   console.log('Back button pressed');\n  //   var loginLevel = this.storage.retrieve(\"loginLevel\");\n  //   if (loginLevel === 'organization' || loginLevel === 'superadmin' || loginLevel === 'entity') {\n  //     this.login.BackToAdmin();\n  //   }\n  // }\n\n  ngOnInit() {\n    this.GetRoles();\n    this.GetGoals();\n    let tempdata = this.menuData;\n    this.menuData = tempdata.filter(x => x.MenuName.toString().toLowerCase() === 'processmap');\n    if (this.menuData.length > 0) {\n      this.menuName = this.menuData[0][\"MenuName\"];\n      this.menuID = this.menuData[0][\"MenuID\"];\n    }\n\n    if ((this.MenuPermissions[this.menuName][this.menuID]['C'] && this.MenuPermissions[this.menuName][this.menuID]['R']) || (this.MenuPermissions[this.menuName][this.menuID]['U'] && this.MenuPermissions[this.menuName][this.menuID]['R']) || (this.MenuPermissions[this.menuName][this.menuID]['D'] && this.MenuPermissions[this.menuName][this.menuID]['R'])) {\n      this.readOnly = false;\n    }\n    else {\n      this.readOnly = true;\n    }\n    this.GetActivityType();\n    this.GetCompany();\n    this.GetPointer();\n    this.GetActivities();\n    this.GetDepartment();\n    this.GetPointerType();\n    this.GetSeverity();\n    this.GetStatus();\n    this.GetFrustrationType();\n    this.GetAlertValues();\n    this.GetMetricAlert();\n    setTimeout(() => {\n      this.checkForMetricAlert();\n    }, 500);\n\n    this.copyDate = (new Date()).getFullYear();\n  }\n\n\n  GetGoals() {\n    this.GoalsList = [];\n    this.goalService.getGoals(parseInt(this.CompanyID)).subscribe(resp => {\n\n      this.GoalsList = resp.Data;\n    });\n  }\n  changeState() {\n    this.changeSize = !this.changeSize;\n    this.currentState = this.currentState === 'initial' ? 'final' : 'initial';\n  }\n  GetCompany() {\n    this.dorseyService.GetCompanyData().subscribe(company => {\n      this.companyData = JSON.parse(company['_body']);\n      let filterCompanyName = this.companyData.filter(x => x.CompanyID === this.CompanyID);\n      if (filterCompanyName.length === 1) {\n        this.CompanyName = filterCompanyName[0].CompanyName;\n\n      }\n    });\n\n  }\n  isOverflown(element) {\n    return element.scrollHeight > element.clientHeight || element.scrollWidth > element.clientWidth;\n  }\n\n  AutoFit() {\n    let el = document.getElementsByClassName('squareInActvty');\n\n    for (let index = 0; index < el.length; ++index) {\n      var div = el[index];\n\n\n    }\n  }\n  GetVersions() {\n\n    this.errorMessage = \"\";\n\n    this.dorseyService.GetVersions(Number(this.CompanyID), this.TeamID).subscribe(versions => {\n      this.versions = JSON.parse(versions['_body']);\n      if (this.versions.length > 0) {\n        if (this.TeamID) {\n          this.currentVersion = this.versions[this.versions.length - 1];\n          this.DepartmentID = this.versions[this.versions.length - 1]['VersionID'];\n        }\n        this.ConstructMap();\n      }\n      else {\n        this.ProcessFinalList = [];\n        this.granualActivity = [];\n        this.granualProcess = [];\n        this.pointerList = [];\n\n        this.processLists = [];\n        this.TeamID = this.TeamID;\n      }\n\n    });\n  }\n  GetSelectedVersion(event) {\n    this.processLists = [];\n    this.activityLists = [];\n    this.pointerList = [];\n    this.previousVersionID = event.value;\n    for (let i = 0; i < this.versions.length; i++) {\n      if (this.versions[i].VersionID === event.value) {\n        this.currentVersion = this.versions[i];\n        if (this.versions[i].VersionName.split('_').length !== 1) {\n          this.headerDate = new Date(this.versions[i].VersionName.split('_')[1]);\n          this.currentVersionFileds = false;\n        }\n        else {\n          this.headerDate = new Date();\n          this.currentVersionFileds = false;\n        }\n      }\n    }\n    this.ConstructMap();\n  }\n  GetSelectedProcessMap(event) {\n\n    this.selcetdProcessId = [];\n    this.activityLists = [];\n    this.ActiveActivities = [];\n    this.TeamID = event.value;\n\n    this.subTeam = true;\n\n    this.GetVersions();\n    for (let i = 0; i < this.teamData.length; i++) {\n\n      if (this.teamData[i].TeamID === event.value) {\n\n      }\n    }\n  }\n\n  GetRoles() {\n    this.dorseyService.GetRoles(this.CompanyID).subscribe(data => {\n\n      let roledata = JSON.parse(data[\"_body\"]);\n      this.RoleData = roledata;\n\n      let tempData = roledata.filter(x => x.RoleID === this.EmpROleID);\n      if (tempData.length == 0) {\n\n        return;\n      }\n\n      else {\n        if (!tempData[0].PermissionJson) {\n          return;\n        }\n        else {\n          this.Permissons = JSON.parse(tempData[0].PermissionJson);\n        }\n      }\n\n    });\n  }\n\n\n  ConstructMap() {\n    if (!this.TeamID)\n      return;\n    this.connectedTo = [];\n    this.IssuesLists = [];\n    this.ActiveActivities = [];\n    this.ProcessFinalList = [];\n\n    this.dorseyService.GetVersions(Number(this.CompanyID), this.TeamID).subscribe(versions => {\n      this.versions = JSON.parse(versions['_body']);\n      let CurrentVersionNumber;\n      this.processLists = [];\n      this.processIDs = [];\n      this.granualProcess = [];\n      this.granualActivity = [];\n      this.hideButton = true;\n\n      let tableName;\n      let tableAct;\n      let tablePointers;\n      let tableKeyProcessTeam;\n      let tableActivitiesTeam;\n      let tablefrustrationType;\n      this.CompanyID = this.CompanyID;\n      if (this.TeamID !== '0') {\n        let data = this.teamData.filter(x => x.TeamID === this.TeamID);\n        if (data.length > 0) {\n          this.TeamName = data[0].TeamName;\n        }\n\n\n      }\n      CurrentVersionNumber = this.currentVersion['VersionID'];\n      this.VersionNumber = CurrentVersionNumber;\n\n      if (this.currentVersion['VersionName'] != undefined)\n        if (this.currentVersion['VersionName'].split('_').length === 1) {\n          this.IsVersion = false;\n        }\n\n\n      if (this.currentVersion['VersionName'] != undefined)\n        if (!(this.currentVersion['VersionName'].split('_').length === 1)) {\n\n          this.IsVersion = true;\n          tableName = 'Ver_KeyProcess';\n          tableAct = 'Ver_Activities';\n          tablePointers = 'Ver_Pointers';\n          tablefrustrationType = 'Ver_FrustrationsType';\n\n        }\n        else {\n          this.IsVersion = false;\n          tableName = 'KeyProcess';\n          tableAct = 'Activities';\n          tablePointers = 'Pointers';\n\n          tablefrustrationType = 'FrustrationsType';\n        }\n      this.childTableName = tablePointers;\n      this.childTablePointers = tablePointers;\n      this.childTableNameType = tableAct;\n      this.dorseyService.GetSelectedVersionData(Number(CurrentVersionNumber), Number(this.CompanyID), Number(this.TeamID), tableName).subscribe(process => {\n\n        process = JSON.parse(process['_body']);\n\n        let Prcesses: any = process;\n\n        this.dorseyService.GetSelectedVersionPointerData(CurrentVersionNumber, Number(this.CompanyID), Number(this.TeamID), tablePointers).subscribe(pointer => {\n          this.pointerList = JSON.parse(pointer['_body']);\n\n          for (let i = 0; i < Prcesses.length; i++) {\n\n            let PmCount = 0; let PfCount = 0;\n            let smCount = 0, sfCount = 0;\n\n            let subActiCount = 0;\n            if (Prcesses[i]['CompanyID'].toString() === this.CompanyID.toString() || this.CompanyID.toString() == \"0\") {\n\n\n              this.processLists.push(Prcesses[i]);\n\n\n              if (!this.Permissons) {\n                this.granualProcess = this.processLists;\n\n              }\n              else {\n\n\n                if (this.Permissons[\"Process\"] !== undefined) {\n                  let ProcessPer = this.Permissons[\"Process\"];\n\n                  let processKeys = Object.keys(ProcessPer);\n\n                  this.granualProcess = [];\n\n                  for (let i = 0; i < processKeys.length; i++) {\n\n                    let prsData = this.processLists.filter(x => x.ProcessID.toString() === processKeys[i].toString());\n\n                    if (prsData.length > 0) {\n                      let permissonKeys = Object.keys(ProcessPer[processKeys[i]]);\n\n                      if (permissonKeys.indexOf('R') > -1)\n                        prsData[0]['R'] = ProcessPer[processKeys[i]]['R'];\n                      else\n                        prsData[0]['R'] = false;\n\n\n                      if (permissonKeys.indexOf('C') > -1)\n                        prsData[0]['C'] = ProcessPer[processKeys[i]]['C'];\n                      else\n                        prsData[0]['C'] = false;\n\n\n                      if (permissonKeys.indexOf('U') > -1)\n                        prsData[0]['U'] = ProcessPer[processKeys[i]]['U'];\n                      else\n                        prsData[0]['U'] = false;\n\n\n                      if (permissonKeys.indexOf('D') > -1)\n                        prsData[0]['D'] = ProcessPer[processKeys[i]]['D'];\n                      else\n                        prsData[0]['D'] = false;\n\n                      this.granualProcess.push(prsData[0]);\n                    }\n                    else {\n\n                    }\n\n\n\n                  }\n\n                  if (this.granualProcess.length === 0) {\n                    this.granualProcess = this.processLists;\n                  }\n                }\n                else {\n\n                  if (this.TeamID != \"0\" && this.CompanyID != \"0\") {\n                    let data = this.processLists.filter(x => x.TeamID === this.TeamID && x.CompanyID === this.CompanyID);\n                    this.processLists = data;\n                    this.granualProcess = this.processLists;\n\n                  }\n                  else {\n                    let data = this.processLists.filter(x => x.CompanyID === this.CompanyID);\n                    this.processLists = data;\n                    this.granualProcess = this.processLists;\n                  }\n\n\n                }\n              }\n\n\n              this.dorseyService.GetSelectedVersionActivityData(CurrentVersionNumber, Number(this.CompanyID), Number(this.TeamID), tableAct).subscribe(activity => {\n\n                activity = JSON.parse(activity['_body']);\n\n                this.activityLists = activity;\n\n\n\n\n\n                // let filter=this.activityLists.filter(x=>x.ProcessID=== this.granualProcess[i].ProcessID);\n                // if(filter.length>0){\n                //   this.activityTemp=filter;\n                // }\n\n                // else{\n                //   this.activityTemp=[];\n                // }\n\n\n\n                if (!this.Permissons) {\n                  this.granualActivity = this.activityLists;\n\n                }\n                else {\n\n                  if (this.Permissons[\"Activity\"] !== undefined) {\n\n\n                    let ActPer = this.Permissons[\"Activity\"];\n\n                    let activityKeys = Object.keys(ActPer);\n\n                    this.granualActivity = [];\n                    for (let i = 0; i < activityKeys.length; i++) {\n\n\n                      let actData = this.activityLists.filter(x => x.ActivityID.toString() === activityKeys[i].toString());\n                      if (actData.length > 0) {\n                        let permissonKeys = Object.keys(ActPer[activityKeys[i]]);\n\n                        if (permissonKeys.indexOf('R') > -1)\n                          actData[0]['R'] = ActPer[activityKeys[i]]['R'];\n                        else\n                          actData[0]['R'] = false;\n\n\n                        if (permissonKeys.indexOf('C') > -1)\n                          actData[0]['C'] = ActPer[activityKeys[i]]['C'];\n                        else\n                          actData[0]['C'] = false;\n\n\n                        if (permissonKeys.indexOf('U') > -1)\n                          actData[0]['U'] = ActPer[activityKeys[i]]['U'];\n                        else\n                          actData[0]['U'] = false;\n\n\n                        if (permissonKeys.indexOf('D') > -1)\n                          actData[0]['D'] = ActPer[activityKeys[i]]['D'];\n                        else\n                          actData[0]['D'] = false;\n\n                        this.granualActivity.push(actData[0]);\n                      }\n\n                    }\n                    if (this.granualActivity.length === 0) {\n                      this.granualActivity = this.activityLists;\n                    }\n\n                  }\n                  else {\n\n                    if (this.TeamID != \"0\" && this.CompanyID != \"0\") {\n                      let data = this.activityLists.filter(x => x.TeamID === this.TeamID && x.CompanyID === this.CompanyID);\n                      this.activityLists = data;\n                      this.granualActivity = this.activityLists;\n\n                    }\n                    else {\n                      let data = this.activityLists.filter(x => x.CompanyID === this.CompanyID);\n                      this.activityLists = data;\n                      this.granualActivity = this.activityLists;\n                    }\n\n                  }\n                }\n\n                const ActivityJson = [];\n                let ActiDummyM = {}; const ActiDummyI = {}; let procesDummy = {};\n                let issueDummy = {}; let metricDummy = {};\n                let issueProcess = {}; let metricProcess = {};\n                let metricMoreThanDummy = {};\n                let issueProbool = {};\n                let metricProbool = {};\n\n                for (let j = 0; j < this.granualActivity.length; j++) {\n                  let frustationCount = []; let fCount = 0;\n                  let metricCount = []; let mCount = 0;\n\n\n                  if (this.granualActivity[j]['ProcessID'].toString() === this.granualProcess[i].ProcessID.toString() && this.granualActivity[j].ParentID === 0) {\n\n\n                    this.metricData = this.pointerList.filter(x => x.PointerTypeID != null && x.PointerTypeID.toString() === '2');\n                    this.pointerList.forEach(element => {\n\n\n                      if (element['ProcessID'] === this.granualProcess[i].ProcessID && element['ActivityID'] === this.granualActivity[j]['ActivityID']) {\n                        if (element['PointerTypeID'] === 2) {\n                          mCount++;\n                          this.expandProcess = false;\n                          let metric = this.metricData.filter(x => x.ProcessID === this.granualProcess[i].ProcessID && x.ActivityID === this.granualActivity[j].ActivityID)\n                          metricDummy[this.granualActivity[j]['ActivityID']] = metric;\n                        } else {\n\n                          fCount++;\n                          this.expandProcess = false;\n                          this.dorseyService.GetCaseData(this.granualProcess[i].ProcessID, this.granualActivity[j].ActivityID, 1, CurrentVersionNumber, this.childTableName, this.childTableNameType).subscribe(cases => {\n                            cases = JSON.parse(cases['_body']);\n                            this.cased = cases;\n                            issueDummy[this.granualActivity[j]['ActivityID']] = this.cased;\n                          });\n                        }\n                      }\n                      else {\n                        if (element['PointerTypeID'] === 2) {\n                          let metric = this.metricData.filter(x => x.ProcessID === this.granualProcess[i].ProcessID && x.ActivityID === this.granualActivity[j].ActivityID)\n\n                          metricMoreThanDummy[this.granualActivity[j]['ActivityID']] = metric.length;\n                        }\n                      }\n                    });\n\n\n                    let subActData = this.granualActivity.filter(x => x.ProcessID === this.granualProcess[i].ProcessID && x.ParentID !== 0);\n\n                    for (let n = 0; n < subActData.length; n++) {\n\n                      if (subActData[n]['ProcessID'].toString() === this.granualProcess[i].ProcessID.toString()) {\n\n                        for (let a = 0; a < this.pointerList.length; a++) {\n                          if (subActData[n].ActivityID === this.pointerList[a].ActivityID && this.pointerList[a].PointerTypeID === 2) {\n\n                            smCount++;\n                          } else if (subActData[n].ActivityID === this.pointerList[a].ActivityID && this.pointerList[a].PointerTypeID === 1) {\n\n                            sfCount++;\n                          }\n                        }\n\n                      }\n                    }\n\n                    this.granualProcess[i].SubMetricCount = smCount;\n                    this.granualProcess[i].SubIssueCount = sfCount;\n\n                    if (this.granualProcess[i].MetricCount) {\n                      this.granualProcess[i].MetricCount = +this.granualProcess[i].MetricCount + mCount;\n                    }\n                    else { this.granualProcess[i].MetricCount = mCount; }\n                    if (this.granualProcess[i].IssueCount) {\n                      this.granualProcess[i].IssueCount = +this.granualProcess[i].IssueCount + fCount;\n                    }\n                    else { this.granualProcess[i].IssueCount = fCount; }\n\n                    if (mCount !== 0) {\n                      ActiDummyM[this.granualActivity[j]['ActivityID']] = mCount;\n                    }\n\n\n                    if (fCount !== 0) {\n                      ActiDummyI[this.granualActivity[j]['ActivityID']] = fCount;\n                    }\n\n                    let element = document.getElementById('metric');\n\n                    procesDummy['Metric'] = ActiDummyM;\n                    procesDummy['MetricCount'] = this.granualProcess[i].MetricCount;\n                    procesDummy['Issue'] = ActiDummyI;\n                    procesDummy['IssueCount'] = this.granualProcess[i].IssueCount;\n\n                    ActivityJson.push(this.granualActivity[j]);\n                    ActivityJson.sort(function (a, b) {\n                      return a.squence - b.squence;\n                    });\n\n                    this.ActiveActivities[this.granualProcess[i].ProcessID] = ActivityJson;\n\n                    this.tempSubList[this.granualActivity[j]];\n\n\n                  } if (this.granualActivity[j]['ProcessID'].toString() === this.granualProcess[i].ProcessID.toString() && this.granualActivity[j].ParentID !== 0) {\n\n                    subActiCount++;\n                  }\n                  procesDummy['SubActivity'] = subActiCount;\n\n                }\n\n                this.pointerList.forEach(element => {\n                  if (element['ProcessID'] === this.granualProcess[i].ProcessID && element['ActivityID'] === 0) {\n                    if (this.processIDs.indexOf(this.granualProcess[i].ProcessID) > -1) {\n                    } else {\n                      if (element['StatusID'] !== 4 || element['StatusID'] !== 5) {\n                        if (element['PointerTypeID'] === 2) {\n                          PmCount++;\n                          this.metricData = this.pointerList.filter(x => x.PointerTypeID != null && x.PointerTypeID.toString() === '2');\n                          let metricd = this.metricData.filter(x => x.ProcessID === this.granualProcess[i].ProcessID && x.ActivityID === 0)\n                          metricProcess[Prcesses[i]['ProcessID']] = metricd;\n                          metricProbool[Prcesses[i]['ProcessID']] = true;\n                          this.expandProcess = true;\n\n                        } else {\n                          PfCount++;\n                          this.dorseyService.GetCaseData(this.granualProcess[i].ProcessID, 0, 1, CurrentVersionNumber, this.childTableName, this.childTableNameType).subscribe(cases => {\n                            cases = JSON.parse(cases['_body']);\n\n                            issueProcess[Prcesses[i]['ProcessID']] = cases;\n                            this.expandProcess = true;\n                            issueProbool[Prcesses[i]['ProcessID']] = true;\n\n                          });\n                        }\n                      }\n                    }\n                  }\n                });\n\n                this.granualProcess.forEach(elementProcess => {\n                  this.granualTempProcess = [];\n                  this.granulProcessLists = [];\n                  this.granualActivity.forEach(elementActivity => {\n\n\n                    if (elementProcess.ProcessID == elementActivity.ProcessID && elementActivity.ParentID == 0) {\n                      this.granualTempProcess.push(elementActivity);\n                    }\n\n                  });\n\n\n                  this.granualTempProcess.sort(function (a, b) {\n                    return a.squence - b.squence;\n                  });\n                  // this.granulProcessLists['weeklist'] = this.granualTempProcess;\n                  if (this.granualProcess.length == this.ProcessFinalList.length) {\n                    return;\n                  }\n                  else {\n                    this.ProcessFinalList.push({\n                      'ProcessID': elementProcess.ProcessName,\n                      'ActivityList': this.granualTempProcess,\n                      'Process': elementProcess\n                    });\n\n                    this.connectedTo.push(elementProcess.ProcessName);\n                  }\n                })\n\n                if (this.processIDs.indexOf(this.granualProcess[i].ProcessID) > -1) { }\n                else { this.processIDs.push(this.granualProcess[i].ProcessID); }\n                procesDummy['IssueProcess'] = issueProcess;\n                procesDummy['MetricProcess'] = metricProcess;\n                Prcesses[i].pMetricCount = PmCount;\n                Prcesses[i].pIssueCount = PfCount;\n                Prcesses[i].SubMetricCount = smCount;\n                Prcesses[i].SubIssueCount = sfCount;\n                procesDummy['pMetricCount'] = PmCount;\n                procesDummy['pIssueCount'] = PfCount;\n                procesDummy['SubMetricCount'] = smCount;\n                procesDummy['SubIssueCount'] = sfCount;\n                procesDummy['IssueList'] = issueDummy;\n                procesDummy['MetricList'] = metricDummy;\n                procesDummy['MetricMoreThan'] = metricMoreThanDummy;\n                procesDummy['TeamID'] = Prcesses[i].TeamID;\n                if (Object.keys(procesDummy).length > 0) {\n                  this.IssuesLists[this.granualProcess[i].ProcessID] = procesDummy;\n                }\n\n\n                let datatemp = this.chunk(this.tempSubList, 3);\n                this.checkForMetricAlert();\n\n\n              });\n            }\n          }\n        });\n      });\n    });\n  }\n  chunk(arr, size) {\n    var newArr = [];\n    for (var i = 0; i < arr.length; i += size) {\n      newArr.push(arr.slice(i, i + size));\n    }\n    return newArr;\n  }\n  Print1() {\n    var id = document.getElementById('Map');\n    var prt = document.getElementById('printMap');\n    // prt.style.height ='1000px';\n    //  id.classList.remove('donotprintthis');\n    var printContents = document.getElementById('printMap').innerHTML;\n    var originalContents = document.body.innerHTML;\n    document.body.innerHTML = printContents;\n    window.print();\n\n    //prt.style.height ='440px';\n    // document.body.innerHTML = originalContents;\n  }\n\n  Print() {\n    //  var id = document.getElementById('Map');\n    //  var prt = document.getElementById('printMap');\n    //  prt.style.height ='1000px';\n    //id.classList.remove('donotprintthis');\n    var printContents = document.getElementById('printMap').innerHTML;\n    document.body.innerHTML = printContents;\n    window.print();\n    //prt.style.height ='440px';\n    // document.body.innerHTML = originalContents;\n  }\n\n\n  Versioning(menuPer) {\n    if (!menuPer) {\n      return;\n    }\n    const json = {\n      CompanyID: this.CompanyID,\n      TeamID: this.TeamID,\n      createdby: this.currentUser\n    };\n    const dialogRef = this.dialog.open(ProcessMapDialogComponent, {\n      data: 'Are you sure you want to version it ' + '?æææ' + true,\n    });\n    dialogRef.afterClosed().subscribe(result => {\n      if (result) {\n        this.dorseyService.SaveProcess(json, 'Yes').subscribe(data => {\n          if (data.ok) {\n            this.condition = true;\n            this.dialogCall('Version saved successfully');\n          }\n          // this.GetProcess();\n          //  this.GetActivities();\n          //  this.GetPointer();\n          this.GetVersions();\n        });\n      }\n    });\n  }\n\n  ExpandMap() {\n    this.processLists = [];\n    this.IssuesLists = {};\n    this.processIDs = [];\n    this.pointerList = [];\n    this.ConstructMap()\n    this.expandMap = true;\n\n  }\n  HideMap() {\n    this.expandMap = false;\n  }\n\n  GetPointer() {\n    this.dorseyService.GetPointer(this.CompanyID).subscribe(subData => {\n\n      subData = JSON.parse(subData['_body']);\n      this.pointerData = subData;\n      this.metricData = this.pointerData.filter(x => x.PointerTypeID != null && x.PointerTypeID.toString() === '2');\n\n    });\n  }\n  GetEmployee() {\n    this.dorseyService.GetEmployee(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.employeeData = subData;\n      let temmEmployee = this.employeeData;\n\n      if (this.TeamID != '0') {\n        this.employeeData = temmEmployee.filter(x => x.TeamID === this.TeamID || x.CompanyID == this.CompanyID);\n      } else {\n        this.employeeData = temmEmployee.filter(x => x.CompanyID === this.CompanyID);\n      }\n\n\n\n      if (this.empID.toString() !== '0') {\n        let filterEmp = this.employeeData.filter(x => x.EmployeeID === this.empID);\n        if (filterEmp.length > 0) {\n          if (filterEmp[0].TeamID !== '0') {\n            this.TeamID = filterEmp[0].TeamID;\n          }\n\n        }\n\n\n      }\n    });\n  }\n\n\n  GetDepartment() {\n    this.dorseyService.GetDepartment().subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.departmentData = subData;\n    });\n  }\n\n  GetPointerType() {\n    this.dorseyService.GetPointerType().subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.pointerTypeData = subData;\n    });\n  }\n  GetStatus() {\n    this.dorseyService.GetStatus().subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.statusData = subData;\n    });\n  }\n  GetSeverity() {\n    this.dorseyService.GetSeverity().subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.severityData = subData;\n    });\n  }\n\n  GetTeam() {\n    this.GetRoles();\n    this.ProcessFinalList = []; ``\n    this.granualProcess = [];\n    this.granualActivity = [];\n    this.IssuesLists = [];\n    this.processLists = [];\n    this.pointerList = [];\n    this.activityLists = [];\n\n    this.dorseyService.GetTeam(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.teamData = subData;\n      if (!this.Permissons) {\n\n        if (this.EmployeeID.toString() !== \"0\") {\n          if (this.employeeLoginLevel.Department == this.employeeDetails.IsEmployeeLoginLevel) {\n            this.teamData = this.teamData.filter(ent => ent.DepartmentID == this.employeeDetails.DepartmentID);\n          }\n          else if (this.employeeLoginLevel.Team == this.employeeDetails.IsEmployeeLoginLevel) {\n            this.teamData = this.teamData.filter(ent => ent.DepartmentID == this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID);\n          }\n          else {\n            this.teamData = subData;\n          }\n          // if (this.TeamID.toString() !== \"0\" && this.CompanyID.toString() !== \"0\") {\n          //   let data = this.teamData.filter(x => x.TeamID === this.TeamID && x.CompanyID === this.CompanyID);\n\n          //   this.teamData = data;\n          //   this.TeamID = this.teamData[0].TeamID;\n          // }\n          // else {\n          //   let data = this.teamData.filter(x => x.CompanyID === this.CompanyID);\n          //   this.teamData = data;\n          // }\n        }\n        else {\n          this.teamData = subData;\n        }\n\n      }\n      else if (this.Permissons[\"Team\"] !== undefined) {\n\n        let TeamPer = this.Permissons[\"Team\"];\n        let TeamKeys = Object.keys(TeamPer);\n        let teamTemp = TeamKeys;\n\n        if (!TeamKeys) {\n          this.teamData = subData;\n        }\n        else {\n\n          let tempList = [];\n          for (let k = 0; k < TeamKeys.length; k++) {\n            let data = this.teamData.filter(x => x.TeamID.toString() === TeamKeys[k].toString());\n            if (data.length > 0) {\n              tempList[k] = (data[0]);\n            }\n          }\n          this.teamData = tempList;\n        }\n      }\n      else {\n        if (this.employeeLoginLevel.Department == this.employeeDetails.IsEmployeeLoginLevel) {\n          this.teamData = this.teamData.filter(ent => ent.DepartmentID == this.employeeDetails.DepartmentID);\n        }\n        else if (this.employeeLoginLevel.Team == this.employeeDetails.IsEmployeeLoginLevel) {\n          this.teamData = this.teamData.filter(ent => ent.DepartmentID == this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID);\n        }\n        else {\n          this.teamData = subData;\n        }\n        // if (this.TeamID.toString() !== \"0\" && this.CompanyID.toString() !== \"0\") {\n        //   let data = this.teamData.filter(x => x.TeamID === this.TeamID && x.CompanyID === this.CompanyID);\n\n        //   this.teamData = data;\n        // }\n        // else {\n        //   let data = this.teamData.filter(x => x.CompanyID === this.CompanyID);\n        //   this.teamData = data;\n        //   this.TeamID = this.teamData[0].TeamID;\n        // }\n      }\n\n      if (this.TeamID.toString() === '0') {\n        if (this.teamData !== undefined) {\n          for (let i = 0; i < this.teamData.length; i++) {\n            if (this.teamData[i].TeamName === 'Leadership Team') {\n              this.TeamID = this.teamData[i].TeamID;\n            }\n          }\n        }\n      }\n      this.GetVersions();\n    });\n\n  }\n\n  //drag drop activity\n  dropActivity(event: CdkDragDrop<string[]>, ProcessData: any) {\n    this.sequenceList = [];\n    this.filterDropActivity = [];\n\n    if (event.previousContainer === event.container) {\n      // moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n\n      this.filterDropActivity = event.container.data;\n      let filterArrayActivity = this.filterDropActivity.filter(x => x.squence == event.previousIndex + 1);\n\n      if (filterArrayActivity.length > 0 && filterArrayActivity.length == 1) {\n        this.SaveActivity(filterArrayActivity, event.currentIndex + 1, filterArrayActivity[0].ProcessID, 'move');\n      }\n    }\n    else {\n\n      transferArrayItem(event.previousContainer.data,\n        event.container.data,\n        event.previousIndex,\n        event.currentIndex);\n\n\n      this.filterDropActivity = event.container.data;\n      for (let i = 0; i < this.filterDropActivity.length; i++) {\n\n        if (this.filterDropActivity[i].ProcessID === ProcessData.ProcessID && this.filterDropActivity[i].ParentID === 0 && this.TeamID === this.filterDropActivity[i].TeamID) {\n          this.sequenceList.push(this.filterDropActivity[i].squence);\n        }\n\n\n      }\n\n      let filterArrayActivity = this.filterDropActivity.filter(x => x.squence == event.previousIndex + 1 && x.ProcessID !== ProcessData.ProcessID);\n\n      this.SaveActivity(filterArrayActivity, event.currentIndex + 1, ProcessData.ProcessID, 'transfer');\n    }\n\n\n  }\n  //drag drop process\n  dropProcess(event: CdkDragDrop<string[]>) {\n\n    if (event.previousContainer === event.container) {\n      this.filterDropProcess = event.container.data;\n      let filterArrayProcess = this.filterDropProcess.filter(x => x['Process'].squence == event.previousIndex + 1);\n\n      if (filterArrayProcess.length > 0 && filterArrayProcess.length == 1) {\n        this.SaveProcess(filterArrayProcess[0]['Process'], event.currentIndex + 1);\n      }\n    }\n    // moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n  }\n  SaveProcess(processData: any, currentIndex) {\n\n    const json = {\n      CompanyID: processData.CompanyID,\n\n      processName: processData.ProcessName,\n      createdby: processData.CreatedBy,\n      processID: processData.ProcessID,\n      updatedby: processData.CreatedBy,\n      ProcessDescription: processData.ProcessDescription,\n\n      DepartmentID: \"0\",\n      EmployeeID: processData.EmployeeID,\n\n      type: 'edit',\n      TeamID: processData.TeamID,\n      squence: currentIndex,\n      lastSequence: processData.squence\n    };\n\n    this.dorseyService.SaveProcess(json, 'No').subscribe(data => {\n      if (data['_body'].toString() === 'true') {\n\n      } else {\n\n      }\n      this.ConstructMap();\n    });\n\n\n  }\n\n  SaveActivity(currentAct: any, currentIndex, ProcessID, typeOf) {\n    this.lastSequence = [];\n\n\n    if (typeOf.toString() == 'transfer') {\n      if (ProcessID != currentAct[0].ProcessID) {\n        let seq = this.sequenceList.length + 1;\n\n        if (this.sequenceList.length !== 0) {\n          this.sequenceList.push(seq);\n        }\n        else this.sequenceList.push(1);\n      }\n\n      if (currentAct[0].ParentID === 0) {\n        this.squence = this.sequenceList[this.sequenceList.length - 1];\n        this.lastSequence = this.sequenceList.length;\n      }\n    }\n\n    for (let i = 0; i < currentAct.length; i++) {\n\n      if (typeOf.toString() == 'move') {\n        this.lastSequence = currentAct[i].squence;\n\n      }\n      const json = {\n        CompanyID: this.CompanyID,\n        ActivityID: currentAct[i].ActivityID,\n        ParentID: currentAct[i].ParentID,\n        ActivityName: currentAct[i].ActivityName,\n        ProcessID: ProcessID,\n        ActivityTypeID: currentAct[i].ActivityTypeID,\n        DepartmentID: currentAct[i].DepartmentID,\n        EmployeeID: currentAct[i].EmployeeID,\n        CreatedBy: this.currentUser,\n        UpdatedBy: this.currentUser,\n        TeamIDs: this.TeamID,\n        squence: currentIndex,\n        type: 'edit',\n        lastSequence: this.lastSequence\n      };\n\n      // return;\n      this.dorseyService.SaveActivity(json, 'No').subscribe(data => {\n        if (data['_body'].toString() === 'true') {\n          this.ConstructMap();\n\n        } else {\n\n        }\n        this.GetActivities();\n\n      });\n    }\n  }\n\n\n  GetActivities() {\n    this.dorseyService.GetActivity(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.activityData = subData;\n\n    });\n  }\n  GetProcess() {\n    this.dorseyService.GetProcess(this.CompanyID).subscribe(subData => {\n      this.processLists = JSON.parse(subData['_body']);\n      if (this.processLists.length === 0) {\n        this.showDiv = true;\n\n      }\n\n    });\n  }\n  GetActivity() {\n\n    this.dorseyService.GetActivity(this.CompanyID).subscribe(activity => {\n      activity = JSON.parse(activity['_body']);\n      this.activityLists = activity;\n      this.activityData = this.activityLists;\n    });\n  }\n\n  GetPointers() {\n\n    this.dorseyService.GetPointer(this.CompanyID).subscribe(pointer => {\n      this.pointerList = JSON.parse(pointer['_body']);\n\n    });\n\n  }\n  getCase(processID, activityID, pointerID, menuUpdate, menuDelete) {\n\n    this.menuUpdateCheck = menuUpdate;\n    this.menuDeleteCheck = menuDelete;\n\n    if (this.expandMap === true) {\n      this.expandMap = true;\n    }\n\n    let activityName = '';\n\n    if (activityID !== 0) {\n      activityName = activityID.ActivityName;\n      activityID = activityID.ActivityID;\n\n    }\n\n    this.dorseyService.GetCaseData(processID.ProcessID, activityID, pointerID, this.currentVersion['VersionID'], this.childTableName, this.childTableNameType).subscribe(cases => {\n      cases = JSON.parse(cases['_body']);\n\n      const dialogRef = this.dialog.open(ProcessMapDialogComponent, {\n        panelClass: 'custom-dialog-container',\n        data: 'new' + 'æææ' + true + 'æææ' + pointerID,\n        width: '800px',\n      });\n\n      let filterROle = this.RoleData.filter(x => x.RoleName === \"Read Only\" && x.RoleID === this.EmpROleID);\n\n      if (filterROle.length > 0) {\n        this.readOnly = true;\n      }\n      else {\n        this.readOnly = false;\n\n      }\n\n\n\n\n\n      dialogRef.componentInstance.IsVersion = this.IsVersion;\n      dialogRef.componentInstance.readOnly = this.readOnly;\n      dialogRef.componentInstance.GoalsList = this.GoalsList;\n\n      dialogRef.componentInstance.menuDeleteCheck = this.menuDeleteCheck;\n      dialogRef.componentInstance.menuUpdateCheck = this.menuUpdateCheck;\n\n      dialogRef.componentInstance.childTablePointers = this.childTablePointers;\n      dialogRef.componentInstance.currentVersion = this.currentVersion;\n      dialogRef.componentInstance.versionID = this.currentVersion['VersionID'];\n      dialogRef.componentInstance.childTableNameType = this.childTableNameType;\n      dialogRef.componentInstance.CaseData = cases;\n      dialogRef.componentInstance.Process = processID.ProcessName;\n      dialogRef.componentInstance.Activity = activityName;\n      dialogRef.componentInstance.pointerList = this.pointerList;\n      dialogRef.componentInstance.processData = this.processData;\n\n      dialogRef.componentInstance.childTableName = this.childTableName;\n\n      dialogRef.componentInstance.processData = this.processLists;\n      dialogRef.componentInstance.activityData = this.activityData;\n      dialogRef.componentInstance.departmentData = this.departmentData;\n      dialogRef.componentInstance.pointerTypeData = this.pointerTypeData;\n      dialogRef.componentInstance.severityData = this.severityData;\n      //  dialogRef.componentInstance.statusData = this.statusData;\n      dialogRef.componentInstance.teamData = this.teamData;\n      dialogRef.componentInstance.employeeData = this.employeeData;\n      dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n      dialogRef.componentInstance.tempActivity = this.tempActivity;\n      dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n      dialogRef.componentInstance.statusData = this.statusData;\n      dialogRef.componentInstance.ActivityID = activityID;\n      dialogRef.componentInstance.ProcessID = processID;\n      dialogRef.componentInstance.IssuesLists = this.IssuesLists;\n      dialogRef.componentInstance.ProcessFinalList = this.ProcessFinalList;\n      dialogRef.afterClosed().subscribe(result => {\n        this.ConstructMap();\n      })\n\n\n    });\n\n\n  }\n\n  getCaseData(processID, activityID, pointerID, versionID) {\n    this.dorseyService.GetCaseData(processID.ProcessID, activityID.ActivityID, pointerID, versionID, this.childTableName, this.childTableNameType).subscribe(cases => {\n      cases = JSON.parse(cases['_body']);\n      this.cased = cases;\n\n    });\n\n\n  }\n\n\n  GetFrustrationType() {\n    this.dorseyService.GetFrustrationType('1', this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.frustrationtypeData = subData;\n\n    });\n\n\n  }\n  ChooseMatricOrIssue(processID, activityID, menuPer, isver, read, menuUpdate, menuDelete) {\n\n    this.ActivityID = activityID;\n\n\n\n\n    //  if(isver){\n    //   let filter=this.activityData.filter(x=>x.ProcessID===processID && x.VersionID===this.currentVersion['VersionID']);\n    //   if(filter.length>0){\n    //     this.activityTemp=filter;\n    //   }\n\n    //   else{\n    //     this.activityTemp=[];\n    //   }\n\n    //  }\n    // else{\n\n    // }\n\n\n\n    let filter = this.granualActivity.filter(x => x.ProcessID === processID);\n    if (filter.length > 0) {\n      this.activityTemp = filter;\n    }\n\n    else {\n      this.activityTemp = [];\n    }\n\n\n\n\n\n    let filterROle = this.RoleData.filter(x => x.RoleName === \"Read Only\" && x.RoleID === this.EmpROleID);\n\n    if (filterROle.length > 0) {\n      this.readOnly = true;\n    }\n    else {\n      this.readOnly = false;\n\n    }\n\n\n    if (!this.TeamID) {\n      return;\n    }\n\n\n    this.menuReadCheck = read;\n\n    this.menuUpdateCheck = menuUpdate;\n\n    this.menuDeleteCheck = menuDelete;\n    //   if(!this.readOnly){\n    // this.readOnly=read;\n    //   }\n    this.menuCreateCheck = menuPer;\n\n\n    if (this.menuCreateCheck && this.menuReadCheck) {\n      this.menuCreateCheck = this.menuCreateCheck;\n      this.menuUpdateCheck = this.menuUpdateCheck;\n      this.menuDeleteCheck = this.menuDeleteCheck;\n    }\n    else if (this.menuDeleteCheck && this.menuReadCheck) {\n      this.menuDeleteCheck = this.menuDeleteCheck;\n      this.menuUpdateCheck = this.menuUpdateCheck;\n\n    }\n    else if (this.menuUpdateCheck && this.menuReadCheck) {\n      this.menuUpdateCheck = this.menuUpdateCheck;\n      this.menuDeleteCheck = this.menuDeleteCheck;\n    }\n    else if (!this.menuCreateCheck && this.menuReadCheck) {\n      this.menuCCheck = this.menuReadCheck;\n    }\n\n\n    if (activityID != 0 && (this.readOnly || this.IsVersion || this.menuCCheck)) {\n      return;\n    }\n\n\n\n    //     if(processID!=0 && activityID!=0 && this.readOnly || this.IsVersion)\n    //     {\n    // return;\n    //     }\n\n    this.subProcessMap = {};\n\n    const dialogRef = this.dialog.open(ProcessMapDialogComponent, {\n      data: 'choose' + 'æææ' + true,\n\n    });\n    dialogRef.componentInstance.isSub = activityID;\n    dialogRef.componentInstance.ActivityID = activityID;\n    dialogRef.componentInstance.ProcessID = processID;\n    dialogRef.componentInstance.isProcess = processID;\n    dialogRef.componentInstance.IsVersion = isver;\n    dialogRef.componentInstance.readOnly = this.readOnly;\n    dialogRef.componentInstance.menuDeleteCheck = this.menuDeleteCheck;\n    dialogRef.componentInstance.menuUpdateCheck = this.menuUpdateCheck;\n    dialogRef.componentInstance.menuCreateCheck = this.menuCreateCheck;\n    dialogRef.componentInstance.menuReadCheck = this.menuReadCheck;\n    dialogRef.componentInstance.menuCCheck = this.menuCCheck;\n    dialogRef.componentInstance.activityTemp = this.activityTemp;\n\n    dialogRef.componentInstance.GoalsList = this.GoalsList;\n\n    dialogRef.afterClosed().subscribe(pointerType => {\n\n      dialogRef.componentInstance.isSub = activityID;\n      if (pointerType === 'Issue') {\n\n        this.AddIssue(processID, activityID);\n      } else if (pointerType === 'Metric') {\n        this.AddMetric(processID, activityID);\n      } else if (pointerType === 'processView') {\n\n        this.DisplaySubMap(processID);\n\n      }\n      else if (pointerType === 'Activity') {\n        dialogRef.componentInstance.isActivity = activityID;\n        this.AddActivity(processID, activityID);\n      }\n      else if (pointerType === 'SubActivity') {\n        this.AddActivity(processID, activityID);\n      }\n\n      else if (pointerType === 'subAct') {\n\n        this.DisplaySubActivityMap(processID, activityID);\n\n\n      }\n      else if (pointerType === 'changSquence' && activityID != 0) {\n\n        const subDialogref = this.dialog.open(ActivityDialogComponent, {\n          panelClass: 'custom-dialog-container',\n          data: 'rearrange' + 'æææ' + true,\n        });\n\n        let activityFilter = this.activityData.filter(x =>\n          x.ProcessID.toString() == processID.toString() && x.ActivityID.toString() == activityID.toString()\n        );\n        subDialogref.componentInstance.ProcessID = processID;\n        subDialogref.componentInstance.ActivityID = activityID;\n        subDialogref.componentInstance.ActivityName = activityFilter[0].ActivityName;\n        subDialogref.componentInstance.ParentActivityID = activityFilter[0].ParentID;\n        subDialogref.componentInstance.DepartmentID = activityFilter[0].DepartmentID;\n        subDialogref.componentInstance.EmployeeID = activityFilter[0].EmployeeID;\n        subDialogref.componentInstance.ActivityTypeID = activityFilter[0].ActivityTypeID;\n        subDialogref.componentInstance.tempActivity = this.activityData;\n        subDialogref.componentInstance.squence = activityFilter[0].squence;\n        subDialogref.componentInstance.processData = this.processLists;\n        subDialogref.componentInstance.TeamID = activityFilter[0].TeamID;\n\n        subDialogref.componentInstance.teamData = this.teamData;\n        subDialogref.componentInstance.ActivityTypeID = activityFilter[0].ActivityTypeID;\n        subDialogref.componentInstance.activityTypeData = this.activityTypeData;\n        subDialogref.componentInstance.ParentActivityID = activityFilter[0].ParentID;\n        subDialogref.componentInstance.activityData = this.activityData;\n        subDialogref.componentInstance.CompanyID = this.CompanyID;\n        subDialogref.afterClosed().subscribe(result => {\n          // this.GetActivity();\n          this.dorseyService.GetActivity(this.CompanyID).subscribe(subData => {\n            this.activityData = JSON.parse(subData['_body']);\n\n            this.processLists = [];\n            this.IssuesLists = {};\n            this.processIDs = [];\n            this.pointerList = [];\n            this.granualProcess = [];\n            this.ProcessFinalList = [];\n\n            this.GetActivities();\n            //  this.ngOnInit();\n            // this.dialogCall('Updated Successfully');\n            this.ConstructMap();\n\n            this.checkForMetricAlert();\n\n          });\n        });\n      } else if (pointerType === 'changSquence' && processID != 0) {\n\n        this.dorseyService.GetProcess(this.CompanyID).subscribe(subData => {\n          this.processData = JSON.parse(subData['_body']);\n          const processDialogref = this.dialog.open(ProcessDialogComponent, {\n            panelClass: 'custom-dialog-container',\n            data: 'rearrange' + 'æææ' + true,\n          });\n\n          let processFilter = this.processData.filter(x =>\n            x.ProcessID.toString() == processID.toString()\n          );\n          processDialogref.componentInstance.processID = processID;\n          processDialogref.componentInstance.TeamID = this.TeamID;\n          processDialogref.componentInstance.teamData = this.teamData;\n          processDialogref.componentInstance.CompanyID = this.CompanyID;\n          processDialogref.componentInstance.ProcessName = processFilter[0].ProcessName;\n          processDialogref.componentInstance.TeamID = processFilter[0].TeamID;\n          processDialogref.componentInstance.EmployeeID = processFilter[0].EmployeeID;\n          processDialogref.componentInstance.DepartmentID = processFilter[0].DepartmentID;\n          processDialogref.componentInstance.ProcessDescription = processFilter[0].ProcessDescription;\n          processDialogref.componentInstance.squence = processFilter[0].squence;\n          processDialogref.componentInstance.processData = this.processData;\n\n          processDialogref.afterClosed().subscribe(res => {\n            dialogRef.close(false);\n            this.ConstructMap();\n          });\n        });\n\n      }\n\n      else if (pointerType === 'edit' && activityID != 0) {\n\n        let activityFilter = this.activityData.filter(x => x.ProcessID === processID && x.ActivityID === activityID);\n        if (activityFilter.length > 0) {\n          const dialogRef = this.dialog.open(ActivityDialogComponent, {\n            panelClass: 'custom-dialog-container',\n            data: 'edit' + 'æææ' + true,\n          });\n\n          if (activityFilter[0].ActivityID === 0) {\n            dialogRef.componentInstance.ParentActivityID = 0;\n          }\n          else {\n            dialogRef.componentInstance.ParentActivityID = activityFilter[0].ActivityID;\n          }\n\n          this.activityData.sort(function (a, b) {\n            return a.squence - b.squence;\n          });\n\n\n          let tempProcessData = this.processLists.filter(x => x.TeamID === activityFilter[0].TeamID);\n\n          dialogRef.componentInstance.processData = tempProcessData;\n\n          dialogRef.componentInstance.ActivityID = activityFilter[0].ActivityID;\n\n          dialogRef.componentInstance.ParentActivityID = activityFilter[0].ParentID;\n          dialogRef.componentInstance.DepartmentID = activityFilter[0].DepartmentID;\n          dialogRef.componentInstance.EmployeeID = activityFilter[0].EmployeeID;\n          dialogRef.componentInstance.tempActivity = this.activityData;\n\n          dialogRef.componentInstance.oldProcessID = activityFilter[0].ProcessID;\n\n          dialogRef.componentInstance.oldActivityID = this.ParentID;\n\n          dialogRef.componentInstance.ActivityTypeID = activityFilter[0].ActivityTypeID;\n          dialogRef.componentInstance.ActivityName = activityFilter[0].ActivityName;\n          dialogRef.componentInstance.squence = activityFilter[0].squence;\n          dialogRef.componentInstance.activityData = this.activityData;\n          dialogRef.componentInstance.processData = this.processLists;\n          dialogRef.componentInstance.TeamID = activityFilter[0].TeamID;\n          dialogRef.componentInstance.departmentData = this.departmentData;\n          dialogRef.componentInstance.teamData = this.teamData;\n          dialogRef.componentInstance.employeeData = this.employeeData;\n\n          dialogRef.componentInstance.actData = this.activityData;\n\n          dialogRef.componentInstance.ProcessID = activityFilter[0].ProcessID;\n          dialogRef.componentInstance.CompanyID = activityFilter[0].CompanyID;\n          dialogRef.componentInstance.activityTypeData = this.activityTypeData;\n\n          dialogRef.componentInstance.currentUser = this.currentUser;\n          dialogRef.afterClosed().subscribe(result => {\n            if (result) {\n              this.dialogCall(\"Updated successfully\");\n              this.processLists = [];\n              this.IssuesLists = {};\n              this.processIDs = [];\n              //this.pointerList=[];\n\n              this.GetActivities();\n              //  this.ngOnInit();\n              this.ConstructMap()\n            }\n\n\n          });\n        }\n\n      }\n\n      else if (pointerType === 'edit' && processID != 0) {\n\n\n        const dialogRef = this.dialog.open(ProcessDialogComponent, {\n          panelClass: 'custom-dialog-container',\n          data: 'edit' + 'æææ' + true,\n        });\n\n        let processFilter = this.processLists.filter(x => x.ProcessID === processID);\n        if (processFilter.length > 0) {\n          dialogRef.componentInstance.EmployeeID = processFilter[0].EmployeeID;\n          dialogRef.componentInstance.TeamID = processFilter[0].TeamID;\n          dialogRef.componentInstance.teamData = this.teamData;\n          dialogRef.componentInstance.CompanyID = processFilter[0].CompanyID;\n          dialogRef.componentInstance.processData = this.processLists;\n          dialogRef.componentInstance.procData = this.processLists;\n\n          dialogRef.componentInstance.processID = processFilter[0].ProcessID;\n          dialogRef.componentInstance.ProcessName = processFilter[0].ProcessName;\n          dialogRef.componentInstance.ProcessDescription = processFilter[0].ProcessDescription;\n          dialogRef.componentInstance.squence = processFilter[0].squence;\n          dialogRef.afterClosed().subscribe(result => {\n\n            if (result)\n              this.dialogCall(\"Updated successfully\");\n\n            this.processLists = [];\n            this.IssuesLists = {};\n            this.processIDs = [];\n            this.pointerList = [];\n            this.GetTeam();\n\n          });\n        }\n\n      }\n      else if (pointerType === 'delete' && activityID != 0) {\n        let activityFilter = this.activityData.filter(x => x.ProcessID === processID && x.ActivityID === activityID);\n        if (activityFilter.length > 0) {\n\n          this.ActivityID = activityFilter[0].ActivityID;\n          this.CompanyID = activityFilter[0].CompanyID;\n          this.TeamID = activityFilter[0].TeamID;\n          this.squence = activityFilter[0].squence;\n          this.ProcessID = activityFilter[0].ProcessID;\n          this.parentID = activityFilter[0].ParentID;\n\n          const dialogRef = this.dialog.open(ActivityDialogComponent, {\n            panelClass: 'custom-dialog-container',\n            data: 'Are you sure you want to delete activity: ' + activityFilter[0].ActivityName + '?æææ' + true,\n\n          });\n\n          dialogRef.afterClosed().subscribe(result => {\n            if (result) {\n\n\n              this.dorseyService.DeleteActivity(this.ActivityID, this.CompanyID, this.TeamID, this.squence, this.ProcessID, this.parentID).subscribe(data => {\n\n                if (data.ok) {\n                  this.condition = true;\n                  this.dialogCall('Deleted successfully');\n                }\n                this.GetActivities();\n                this.ConstructMap();\n              });\n\n            }\n          });\n\n        }\n      }\n\n      else if (pointerType === 'delete' && processID != 0) {\n        let processFilter = this.processLists.filter(x => x.ProcessID === processID);\n        if (processFilter.length > 0) {\n\n          this.ProcessID = processFilter[0].ProcessID;\n          this.CompanyID = processFilter[0].CompanyID;\n          this.TeamID = processFilter[0].TeamID;\n          this.squence = processFilter[0].squence;\n\n          const dialogRef = this.dialog.open(ProcessDialogComponent, {\n            panelClass: 'custom-dialog-container',\n            data: 'Are you sure you want to delete process: ' + processFilter[0].ProcessName + '?æææ' + true,\n          });\n\n          dialogRef.afterClosed().subscribe(result => {\n            if (result) {\n\n\n              this.dorseyService.DeleteProcess(this.ProcessID, this.CompanyID, this.TeamID, this.squence).subscribe(data => {\n                if (data.ok) {\n                  this.condition = true;\n                  this.dialogCall('Deleted successfully');\n\n                  this.GetProcess();\n                  setTimeout(() => {\n                    this.ConstructMap();\n                  }, 100);\n                }\n              });\n\n            }\n          });\n        }\n      }\n    });\n\n  }\n\n  onChange(event) {\n    this.MapType = event.value.toString();\n\n    if (this.MapType === '0') {\n      this.typeName = \"Only Frustrations\";\n    } else if (this.MapType === '1') {\n      this.typeName = \"Only Metrics\";\n    } else if (this.MapType === '2') {\n      this.typeName = \"No Frustrations & Metrics\";\n    } else {\n      this.typeName = \"Both\";\n    }\n  }\n  DisplaySubActivityMap(processID, activityID) {\n\n    this.granualActivity = [];\n    this.activityLists = [];\n    let CurrentVersionNumber;\n    CurrentVersionNumber = this.currentVersion['VersionID'];\n    this.dorseyService.GetSelectedVersionActivityData(CurrentVersionNumber, Number(this.CompanyID), Number(this.TeamID), this.childTableNameType).subscribe(activity => {\n\n      activity = JSON.parse(activity['_body']);\n      this.activityLists = activity;\n      this.granualActivity = this.activityLists;\n\n      this.subProcessMap = {};\n      var procssName = '';\n      let activitys = [];\n      let subActivities = [];\n      let subactTemp = {};\n      if (this.TeamID === 0) {\n        for (let i = 0; i < this.granualActivity.length; i++) {\n          if (this.granualActivity[i].ProcessID === processID && this.granualActivity[i].ParentID === 0) {\n            activitys.push(this.granualActivity[i]);\n          }\n        }\n      }\n      else {\n        for (let i = 0; i < this.granualActivity.length; i++) {\n          if (this.granualActivity[i].ProcessID === processID && this.granualActivity[i].TeamID === this.TeamID && this.granualActivity[i].ParentID === 0) {\n            activitys.push(this.granualActivity[i]);\n          }\n        }\n      }\n\n      for (let i = 0; i < this.processLists.length; i++) {\n\n        if (this.processLists[i].ProcessID === processID) {\n          procssName = this.processLists[i].ProcessName;\n\n        }\n      }\n      let tempSub;\n\n\n      let subact = this.granualActivity.filter(x => x.ParentID != 0);\n      subActivities = [];\n      let metricDummy = {};\n      let issueDummy = {};\n      let SubFsCounts = {};\n      activitys.forEach(actElement => {\n        tempSub = subact.filter(x => x.ParentID.toString() === actElement['ActivityID'].toString() && x.ProcessID.toString() === processID.toString());\n        if (tempSub.length > 0) {\n          subActivities = tempSub;\n          subactTemp[actElement['ActivityID']] = subActivities;\n        }\n        subActivities.sort(function (a, b) {\n          return a.squence - b.squence;\n        });\n        this.granualActivity = this.activityLists;\n\n\n        tempSub.forEach(subAct => {\n          this.dorseyService.GetSelectedVersionPointerData(CurrentVersionNumber, Number(this.CompanyID), Number(this.TeamID), this.childTableName).subscribe(pointer => {\n            this.pointerData = JSON.parse(pointer['_body']);\n            let fSCount = 0;\n            let mSCount = 0;\n            let procesDummy = {};\n            let ActiDummyM = {}; const ActiDummyI = {};\n            this.metricData = this.pointerData.filter(x => x.PointerTypeID != null && x.PointerTypeID.toString() === '2');\n            this.pointerData.forEach(element => {\n\n              if (element['ProcessID'] === processID && element['ActivityID'] === subAct['ActivityID']) {\n\n                if (element['PointerTypeID'] === 2) {\n                  mSCount++;\n                  this.expandProcess = false;\n                  let metric = this.metricData.filter(x => x.ProcessID === processID && x.ActivityID === element['ActivityID'])\n                  metricDummy[subAct['ActivityID']] = metric;\n\n                } else {\n                  fSCount++;\n                  this.expandProcess = false;\n                  this.dorseyService.GetCaseData(processID, element['ActivityID'], 1, CurrentVersionNumber, this.childTableName, this.childTableNameType).subscribe(cases => {\n                    cases = JSON.parse(cases['_body']);\n                    this.cased = cases;\n                    issueDummy[subAct['ActivityID']] = this.cased;\n                  });\n                }\n              }\n            });\n            if (mSCount !== 0) {\n              ActiDummyM[subAct['ActivityID']] = mSCount;\n            }\n            if (fSCount !== 0) {\n              ActiDummyI[subAct['ActivityID']] = fSCount;\n            }\n            procesDummy['SubMetric'] = ActiDummyM;\n            procesDummy['SubIssue'] = ActiDummyI;\n            SubFsCounts[subAct['ActivityID']] = procesDummy;\n          });\n        });\n\n      });\n\n      this.IssuesLists[processID]['SubMCount'] = SubFsCounts;\n      let data = [];\n      const ActivityJson = [];\n      for (let i = 0; i < activitys.length; i++) {\n        if (activitys[i].ParentID === 0) {\n          data.push(activitys[i]);\n        }\n      }\n      activitys.sort(function (a, b) {\n        return a.squence - b.squence;\n      });\n      this.IssuesLists[processID]['Activity'] = activitys;\n      this.IssuesLists[processID]['SubActivity'] = subactTemp;\n      this.IssuesLists[processID]['SubActivityMetric'] = metricDummy;\n      this.IssuesLists[processID]['SubActivityIssues'] = issueDummy;\n\n      this.subProcessMap[processID] = this.IssuesLists[processID];\n      const dialogRef = this.dialog.open(ProcessMapDialogComponent, {\n        panelClass: ['custom-dialog-containerSub'],\n        data: 'subAct' + 'æææ',\n        maxWidth: '90vw'\n      });\n      dialogRef.componentInstance.copyRight = this.copyRight;\n      dialogRef.componentInstance.currentVersion = this.currentVersion;\n      dialogRef.componentInstance.IsVersion = this.IsVersion;\n      dialogRef.componentInstance.readOnly = this.readOnly;\n      dialogRef.componentInstance.GoalsList = this.GoalsList;\n      dialogRef.componentInstance.menuDeleteCheck = this.menuDeleteCheck;\n      dialogRef.componentInstance.menuUpdateCheck = this.menuUpdateCheck;\n      dialogRef.componentInstance.menuCreateCheck = this.menuCreateCheck;\n      dialogRef.componentInstance.menuReadCheck = this.menuReadCheck;\n      dialogRef.componentInstance.menuCCheck = this.menuCCheck;\n      dialogRef.componentInstance.IssuesLists = this.subProcessMap;\n      dialogRef.componentInstance.MapType = this.MapType;\n      dialogRef.componentInstance.isProcess = processID;\n      dialogRef.componentInstance.isActivity = activityID;\n      dialogRef.componentInstance.ProcessName = procssName;\n      dialogRef.componentInstance.TeamID = this.TeamID\n      dialogRef.componentInstance.tempProcess = this.processLists;\n      dialogRef.componentInstance.activityData = this.activityData;\n      dialogRef.componentInstance.departmentData = this.departmentData;\n      dialogRef.componentInstance.pointerTypeData = this.pointerTypeData;\n      dialogRef.componentInstance.severityData = this.severityData;\n      dialogRef.componentInstance.statusData = this.statusData;\n      dialogRef.componentInstance.teamData = this.teamData;\n      dialogRef.componentInstance.employeeData = this.employeeData;\n      dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n      dialogRef.componentInstance.tempActivity = this.activityData;\n      dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n      dialogRef.componentInstance.ProcessID = processID;\n      dialogRef.componentInstance.CompanyID = this.CompanyID;\n      dialogRef.componentInstance.VersionNumber = this.VersionNumber;\n      dialogRef.componentInstance.childTable = this.childTableName;\n      dialogRef.componentInstance.childFrustType = this.childTableNameType;\n      dialogRef.componentInstance.pointerList = this.pointerList;\n      dialogRef.componentInstance.CompanyName = this.CompanyName;\n      dialogRef.componentInstance.TeamName = this.TeamName;\n      dialogRef.componentInstance.alertValue = this.alertValue;\n      dialogRef.componentInstance.alertMetricValue = this.alertMetricValue;\n      dialogRef.componentInstance.alertPTypeID = this.alertPTypeID;\n      dialogRef.componentInstance.alertMTypeID = this.alertMTypeID;\n      dialogRef.componentInstance.alertMetricPointer = this.alertMetricPointer;\n      dialogRef.componentInstance.TeamID = this.TeamID\n      dialogRef.componentInstance.processData = this.processLists;\n      dialogRef.componentInstance.activityData = this.activityData;\n      dialogRef.componentInstance.departmentData = this.departmentData;\n      dialogRef.componentInstance.pointerTypeData = this.pointerTypeData;\n      dialogRef.componentInstance.severityData = this.severityData;\n      dialogRef.componentInstance.statusData = this.statusData;\n      dialogRef.componentInstance.teamData = this.teamData;\n      dialogRef.componentInstance.employeeData = this.employeeData;\n      dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n      dialogRef.componentInstance.tempActivity = this.activityData;\n      dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n      dialogRef.componentInstance.ProcessID = processID;\n      dialogRef.componentInstance.ActivityID = activityID;\n      dialogRef.componentInstance.CompanyID = this.CompanyID;\n      this.StatusID = this.statusData[0].StatusID;\n      dialogRef.componentInstance.StatusID = this.StatusID;\n      dialogRef.componentInstance.currentUser = this.currentUser;\n      dialogRef.componentInstance.childTablePointers = this.childTablePointers;\n      dialogRef.componentInstance.childTableName = this.childTableName;\n      dialogRef.componentInstance.activityTypeData = this.activityTypeData;\n      dialogRef.componentInstance.RoleData = this.RoleData;\n      dialogRef.componentInstance.EmpROleID = this.EmpROleID;\n      dialogRef.componentInstance.CurrentVersionNumber = CurrentVersionNumber;\n      dialogRef.componentInstance.childTableNameType = this.childTableNameType;\n      dialogRef.componentInstance.alertMetricPointer = this.alertMetricPointer;\n      dialogRef.afterClosed().subscribe(res => {\n        this.GetActivity();\n        this.GetFrustrationType();\n        this.ConstructMap();\n      });\n    });\n\n  }\n  DisplaySubMap(processID) {\n    this.subProcessMap = {};\n    var procssName = '';\n    let process = \"\";\n    let activitys = [];\n    if (this.TeamID === 0) {\n      for (let i = 0; i < this.granualActivity.length; i++) {\n        if (this.granualActivity[i].ProcessID === processID && this.granualActivity[i].ParentID === 0) {\n          activitys.push(this.granualActivity[i]);\n        }\n      }\n    }\n    else {\n      for (let i = 0; i < this.granualActivity.length; i++) {\n        if (this.granualActivity[i].ProcessID === processID && this.granualActivity[i].TeamID === this.TeamID && this.granualActivity[i].ParentID === 0) {\n          activitys.push(this.granualActivity[i]);\n        }\n      }\n    }\n    activitys.sort(function (a, b) {\n      return a.squence - b.squence;\n    });\n    for (let i = 0; i < this.processLists.length; i++) {\n\n      if (this.processLists[i].ProcessID === processID) {\n        procssName = this.processLists[i].ProcessID;\n        process = this.processLists[i].ProcessName;\n      }\n    }\n    let data = [];\n    for (let i = 0; i < activitys.length; i++) {\n\n      if (activitys[i].ParentID === 0) {\n        data.push(activitys[i]);\n      }\n    }\n    this.IssuesLists[procssName]['Activity'] = activitys;\n    this.subProcessMap[procssName] = this.IssuesLists[procssName];\n    const dialogRef = this.dialog.open(ProcessMapDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: 'subMap' + 'æææ',\n      width: '800px'\n    });\n    dialogRef.componentInstance.currentVersion = this.currentVersion;\n    dialogRef.componentInstance.IssuesLists = this.subProcessMap;\n    dialogRef.componentInstance.MapType = this.MapType;\n    dialogRef.componentInstance.ProcessName = process;\n    dialogRef.componentInstance.pointerList = this.pointerList;\n    dialogRef.componentInstance.CompanyName = this.CompanyName;\n    dialogRef.componentInstance.TeamName = this.TeamName;\n    dialogRef.componentInstance.alertValue = this.alertValue;\n    dialogRef.componentInstance.alertMetricValue = this.alertMetricValue;\n    dialogRef.componentInstance.alertPTypeID = this.alertPTypeID;\n    dialogRef.componentInstance.GoalsList = this.GoalsList;\n    dialogRef.componentInstance.alertMTypeID = this.alertMTypeID;\n    dialogRef.componentInstance.alertMetricPointer = this.alertMetricPointer;\n    dialogRef.afterClosed().subscribe(res => {\n      this.GetActivity();\n    });\n  }\n\n\n  AddIssue(processID, activityID) {\n    const dialogRef = this.dialog.open(PointerDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: 'new' + 'æææ' + activityID,\n    });\n    dialogRef.componentInstance.TeamID = this.TeamID\n    dialogRef.componentInstance.processData = this.processLists;\n    dialogRef.componentInstance.activityData = this.activityData;\n    dialogRef.componentInstance.departmentData = this.departmentData;\n    dialogRef.componentInstance.pointerTypeData = this.pointerTypeData;\n    dialogRef.componentInstance.severityData = this.severityData;\n    dialogRef.componentInstance.statusData = this.statusData;\n    dialogRef.componentInstance.teamData = this.teamData;\n    dialogRef.componentInstance.employeeData = this.employeeData;\n    dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n    dialogRef.componentInstance.tempActivity = this.activityData;\n    dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n    dialogRef.componentInstance.ProcessID = processID;\n    dialogRef.componentInstance.ActivityID = activityID;\n    dialogRef.componentInstance.CompanyID = this.CompanyID;\n    this.StatusID = this.statusData[0].StatusID;\n    dialogRef.componentInstance.StatusID = this.StatusID;\n    dialogRef.componentInstance.currentUser = this.currentUser;\n    dialogRef.afterClosed().subscribe(result => {\n      this.processLists = [];\n      this.GetFrustrationType();\n      this.IssuesLists = {};\n      this.processIDs = [];\n      this.pointerList = [];\n      this.ConstructMap()\n    });\n\n  }\n  AddProcess(menuPer, vers) {\n    if (!menuPer || vers) {\n      return;\n    }\n    const dialogRef = this.dialog.open(ProcessDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: 'new' + 'æææ' + 'process',\n    });\n    dialogRef.componentInstance.EmployeeID = this.empID;\n    dialogRef.componentInstance.TeamID = this.TeamID;\n    dialogRef.componentInstance.teamData = this.teamData;\n    dialogRef.componentInstance.CompanyID = this.CompanyID;\n    dialogRef.componentInstance.processData = this.processLists;\n    dialogRef.afterClosed().subscribe(result => {\n      this.processLists = [];\n      this.IssuesLists = {};\n      this.processIDs = [];\n      this.pointerList = [];\n      this.GetTeam();\n    });\n  }\n  GetActivityType() {\n    this.dorseyService.GetActivityType().subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.activityTypeData = subData;\n    });\n  }\n\n  AddActivity(processID, activityID) {\n    const dialogRef = this.dialog.open(ActivityDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: 'new' + 'æææ' + 'process',\n    });\n\n    if (activityID === 0) {\n      dialogRef.componentInstance.ParentActivityID = 0;\n    }\n    else {\n      dialogRef.componentInstance.ParentActivityID = activityID;\n    }\n    this.activityData.sort(function (a, b) {\n      return a.squence - b.squence;\n    });\n    dialogRef.componentInstance.activityData = this.activityData;\n    dialogRef.componentInstance.processData = this.processLists;\n    dialogRef.componentInstance.TeamID = this.TeamID;\n    dialogRef.componentInstance.tempActivity = this.activityData;\n    dialogRef.componentInstance.departmentData = this.departmentData;\n    dialogRef.componentInstance.teamData = this.teamData;\n    dialogRef.componentInstance.employeeData = this.employeeData;\n    dialogRef.componentInstance.tempActivity = this.activityData;\n    dialogRef.componentInstance.ProcessID = processID;\n    dialogRef.componentInstance.CompanyID = this.CompanyID;\n    dialogRef.componentInstance.activityTypeData = this.activityTypeData;\n\n    dialogRef.componentInstance.currentUser = this.currentUser;\n    dialogRef.afterClosed().subscribe(result => {\n      this.processLists = [];\n      this.IssuesLists = {};\n      this.processIDs = [];\n      this.pointerList = [];\n      this.GetActivities();\n      this.ConstructMap()\n\n    });\n\n  }\n\n  AddMetric(processID, activityID) {\n    const dialogRef = this.dialog.open(MetricDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: 'new' + 'æææ' + activityID,\n    });\n\n    dialogRef.componentInstance.processData = this.processLists;\n    dialogRef.componentInstance.TeamID = this.TeamID;\n    dialogRef.componentInstance.GoalsList = this.GoalsList;\n    dialogRef.componentInstance.tempActivity = this.activityData;\n    dialogRef.componentInstance.departmentData = this.departmentData;\n    dialogRef.componentInstance.pointerTypeData = this.pointerTypeData;\n    dialogRef.componentInstance.severityData = this.severityData;\n    dialogRef.componentInstance.statusData = this.statusData;\n    dialogRef.componentInstance.teamData = this.teamData;\n    dialogRef.componentInstance.employeeData = this.employeeData;\n    dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n    dialogRef.componentInstance.tempActivity = this.activityData;\n    dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n    dialogRef.componentInstance.ProcessID = processID;\n    dialogRef.componentInstance.ActivityID = activityID;\n    dialogRef.componentInstance.CompanyID = this.CompanyID;\n    dialogRef.componentInstance.currentUser = this.currentUser;\n    dialogRef.afterClosed().subscribe(result => {\n      this.processLists = [];\n      this.IssuesLists = {};\n      this.processIDs = [];\n      this.pointerList = [];\n      this.GetFrustrationType();\n\n      this.ConstructMap()\n      this.checkForMetricAlert();\n    });\n\n  }\n  dialogCall(msg: string) {\n\n    const dialogRef = this.dialog.open(ProcessMapDialogComponent, {\n      data: msg + 'æææ' + false,\n    });\n    dialogRef.afterClosed().subscribe(result => {\n\n      if (result.toString() === 'true') {\n\n        let statusMsg = '';\n        if (msg === 'new') {\n          statusMsg = 'Saved successfully';\n        }\n      }\n    });\n  }\n\n  GetAlertValues() {\n    this.dorseyService.GetAlertValue(this.CompanyID, 1).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.alertData = subData;\n\n      for (let i = 0; i < this.alertData.length; i++) {\n\n        if (this.alertData[i].AlertStatus === true) {\n          this.alertPTypeID = this.alertData[i].PointerTypeID;\n          this.alertValue = this.alertData[i].AlertValue;\n        }\n      }\n    });\n\n  }\n\n  GetMetricAlert() {\n    this.dorseyService.GetAlertValue(this.CompanyID, 2).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.alertData = subData;\n\n      for (let i = 0; i < this.alertData.length; i++) {\n\n        if (this.alertData[i].AlertStatus === true) {\n          this.alertMetricPointer = this.alertData[i].PointerTypeID;\n          this.alertMetricValue = this.alertData[i].AlertValue;\n          this.AlertMetricStatus = this.alertData[i].AlertStatus;\n          this.alertMTypeID = this.alertData[i].PointerTypeID;\n\n        }\n\n      }\n    });\n\n  }\n\n  checkForMetricAlert() {\n    this.showMetricAlert = [];\n    if (this.AlertMetricStatus) {\n      for (let i = 0; i < this.granualProcess.length; i++) {\n\n        if (this.ActiveActivities[this.granualProcess[i].ProcessID] !== undefined) {\n          for (let j = 0; j < this.ActiveActivities[this.granualProcess[i].ProcessID].length; j++) {\n            let id = this.ActiveActivities[this.granualProcess[i].ProcessID][j].ActivityID;\n\n            this.showMetricAlert[id] = false;\n\n            if (this.IssuesLists[this.granualProcess[i].ProcessID]['MetricList'][this.ActiveActivities[this.granualProcess[i].ProcessID][j].ActivityID.toString()] != undefined) {\n\n              j = j + this.alertMetricValue - (j % this.alertMetricValue) - 1;\n\n            } else {\n\n              if ((j + 1) % this.alertMetricValue == 0) {\n                this.showMetricAlert[id] = true;\n\n              } else {\n\n                this.showMetricAlert[id] = false;\n\n              }\n            }\n\n          }\n        }\n\n\n\n      }\n    }\n  }\n\n}\n@Component({\n  selector: 'app-dialog',\n  templateUrl: 'dialog.html',\n  styleUrls: ['dialog.css'],\n  providers: [DorseyService, ProcessMapComponent]\n})\nexport class ProcessMapDialogComponent implements OnInit {\n  readOnly = false;\n  copyRight: string;\n  IsVersion = false;\n  ActivityTypeID: string;\n  condition = false;\n  isActivity: any;\n  dataSelf: string;\n  processID: string;\n  headerText: string;\n  PointerType: string;\n  CaseData: any;\n  Process = '';\n  Activity = '';\n  toggle = '';\n  IssuesLists = {};\n  ProcessFinalList = [];\n  subKey = '';\n  MapType: string;\n  TeamID: any;\n  tempProcess = [];\n  activityData: any;\n  departmentData: any;\n  pointerTypeData: any\n  severityData: any;\n  statusData: any;\n  teamData: any;\n  employeeData: any;\n  frustrationtypeData: any;\n  tempActivity: any;\n  tempFrustrationType: any;\n  ProcessID: string\n  ActivityID: string\n  CompanyID: string;\n  ParentID: string;\n  SubActivityID: string;\n  tempSubActivity = [];\n  subActivityStatus = false;\n  ProcessName = '';\n  GoalsList: any;\n  VersionNumber: number;\n  childTable: string;\n\n  childFrustType: string;\n  pointerList = [];\n  ActivityName: string;\n  activityTypeData: any;\n  SubactivityData: any;\n  isSub: any;\n  isProcess: any;\n  processData: any;\n  expandMap = false;\n  parentActivityName: string;\n  CompanyName: string;\n  TeamName: string;\n  headerDate = new Date();\n  versionID: any;\n  childTableName: any;\n  currentVersion = '';\n  StatusID: string;\n  alertPTypeID: any;\n  alertValue: any;\n  alertMetricValue: any;\n  alertMetricPointer: any;\n  showMetricAlert = {};\n  alertMTypeID: any;\n  copyDate: number;\n  currentUser: string;\n  childTablePointers: any;\n  RoleData: any;\n  EmpROleID: string;\n  CurrentVersionNumber: any;\n  childTableNameType: string;\n\n  redLow: string;\n  redHigh: string;\n  yellowLow: string;\n  yellowHigh: any;\n  PointerID: any;\n  //title=false;\n  editSubActiibiyt = false;\n  parentId: any;\n  menuDeleteCheck: boolean;\n  menuUpdateCheck: boolean;\n  menuCreateCheck: boolean;\n  menuReadCheck: boolean;\n  menuCCheck: boolean;\n  EmployeeID: any;\n  subActivity: any;\n  FrustrationTypeID: any;\n  SeverityID: any;\n  Subject: any;\n  Description: any;\n  Source: any;\n  DepartmentID: string;\n  conditionActivity: any;\n  activityTemp: any;\n  constructor(private parent: ProcessMapComponent,\n    public dialogRef: MatDialogRef<ProcessMapDialogComponent>,\n    @Inject(MAT_DIALOG_DATA) public data: any, public dorseyService: DorseyService,\n    private dialog: MatDialog, private storage: LocalStorageService,\n    private scoreCardService: PerformanceScoreCardService) {\n    //    dialogRef.disableClose=true;\n\n    this.data = this.data.split('æææ');\n\n    if (this.data[1] === 'true') {\n      this.condition = true;\n    } else {\n      this.condition = false;\n    }\n    this.toggle = this.data[2];\n    this.data = this.data[0];\n\n  }\n  ngOnInit() {\n\n    this.currentUser = this.storage.retrieve('user');\n    this.CompanyID = this.storage.retrieve('companyID');\n\n    this.subKey = Object.keys(this.IssuesLists)[0];\n    this.checkForMetricAlert();\n\n    this.copyDate = (new Date()).getFullYear();\n\n  }\n\n  ExpandMap() {\n    let open = document.getElementById('open');\n    ;\n    if (open !== null) {\n      open.style.marginTop = '8px'\n    }\n    this.expandMap = true;\n\n  }\n  HideMap() {\n    let open = document.getElementById('open');\n    if (open !== null) {\n      open.style.marginTop = '30px';\n    }\n\n    this.expandMap = false;\n  }\n\n  Print() {\n    window.print();\n    var printContents = document.getElementById('Map').innerHTML;\n    var popupWin = window.open('', '_blank', 'width=300,height=300');\n    popupWin.document.open();\n    popupWin.document.write(printContents);\n\n    popupWin.window.print();\n    popupWin.document.close();\n    return true;\n\n  }\n  closeChoose() {\n    this.dialogRef.close(this.PointerType);\n  }\n  Clear() {\n    this.dialogRef.close(false);\n  }\n  onYesClick() {\n\n    this.dialogRef.close(true);\n  }\n  onNoClick(): void {\n    this.dialogRef.close();\n  }\n  PrintMap() {\n    var id = document.getElementById('Map');\n    id.className = 'donotprintthis';\n    window.print();\n    //this.title=true;\n  }\n  GetPointerData() {\n\n  }\n  GetActivityType() {\n    this.dorseyService.GetActivityType().subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.activityTypeData = subData;\n    });\n\n  }\n\n\n  dialogCall(msg: string) {\n\n    const dialogRef = this.dialog.open(ProcessMapDialogComponent, {\n      data: msg + 'æææ' + false,\n    });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n    dialogRef.afterClosed().subscribe(result => {\n\n      if (result.toString() === 'true') {\n\n        let statusMsg = '';\n        if (msg === 'new') {\n          statusMsg = 'Saved successfully';\n        }\n        // else {\n\n        //   statusMsg = 'Updated successfully';\n        // }\n\n      }\n\n    });\n  }\n  AddMetricOrIssue(activityID, parentID) {\n\n    if (this.IsVersion && this.readOnly) {\n      return;\n    }\n    else if (this.readOnly) {\n      return;\n    }\n    else if (this.IsVersion && !this.readOnly) {\n      return;\n    }\n    else if (this.menuCCheck) {\n      return;\n    }\n\n\n    this.GetActivityType();\n    this.GetProcess();\n    const dialogRef = this.dialog.open(ProcessMapDialogComponent2, {\n      data: 'chooseChild' + 'æææ' + true,\n    });\n\n\n    let processTemp = this.activityData.filter(x => x.ActivityID === activityID);\n    if (processTemp.length > 0) {\n      this.processID = processTemp[0].ProcessID;\n\n      this.ActivityName = processTemp[0].ActivityName;\n      this.ActivityID = processTemp[0].ActivityID;\n    }\n\n    dialogRef.componentInstance.isProcess = 0;\n    dialogRef.componentInstance.IsVersion = this.IsVersion;\n    dialogRef.componentInstance.readOnly = this.readOnly;\n\n\n    dialogRef.componentInstance.menuDeleteCheck = this.menuDeleteCheck;\n    dialogRef.componentInstance.menuUpdateCheck = this.menuUpdateCheck;\n\n    dialogRef.componentInstance.GoalsList = this.GoalsList;\n    dialogRef.componentInstance.menuCreateCheck = this.menuCreateCheck;\n    dialogRef.componentInstance.menuReadCheck = this.menuReadCheck;\n\n    dialogRef.componentInstance.menuCCheck = this.menuCCheck;\n\n    let activityFilter1 = this.activityData.filter(x =>\n      x.ProcessID.toString() === this.processID.toString() && x.ActivityID.toString() === activityID.toString());\n\n    dialogRef.componentInstance.isSub = activityFilter1[0].ParentID;\n    dialogRef.componentInstance.activityProcess = activityFilter1[0].ParentID;\n    dialogRef.componentInstance.ActivityTypeID = activityFilter1[0].ActivityTypeID;\n\n    dialogRef.componentInstance.isActivity = activityFilter1[0].Act;\n\n    dialogRef.afterClosed().subscribe(pointerType => {\n\n      if (pointerType === 'Issue') {\n        this.AddIssue(activityID);\n      }\n      else if (pointerType === 'SubActivity') {\n\n        this.AddSubActivity(activityID, this.processID);\n\n      }\n      else if (pointerType === 'Metric') {\n\n        this.AddMetric(activityID);\n\n      } else if (pointerType === 'changSquence') {\n\n        const subDialogref = this.dialog.open(ActivityDialogComponent, {\n          panelClass: 'custom-dialog-container',\n          data: 'rearrange' + 'æææ' + true,\n        });\n\n        this.ActivityID = activityID;\n        let processTemp = this.activityData.filter(x => x.ActivityID === activityID);\n        if (processTemp.length > 0) {\n          this.processID = processTemp[0].ProcessID;\n          this.ActivityName = processTemp[0].ActivityName;\n        }\n        let activityFilter = this.activityData.filter(x =>\n          x.ProcessID.toString() === this.processID.toString() && x.ActivityID.toString() === activityID.toString()\n        );\n\n        subDialogref.componentInstance.ProcessID = this.processID;\n        subDialogref.componentInstance.ActivityID = activityID;\n        subDialogref.componentInstance.ActivityName = activityFilter[0].ActivityName;\n        subDialogref.componentInstance.ParentActivityID = activityFilter[0].ParentID;\n        subDialogref.componentInstance.DepartmentID = activityFilter[0].DepartmentID;\n        subDialogref.componentInstance.EmployeeID = activityFilter[0].EmployeeID;\n        subDialogref.componentInstance.ActivityTypeID = activityFilter[0].ActivityTypeID;\n        subDialogref.componentInstance.tempActivity = this.activityData;\n        subDialogref.componentInstance.squence = activityFilter[0].squence;\n        subDialogref.componentInstance.processData = this.tempProcess;\n        subDialogref.componentInstance.TeamID = activityFilter[0].TeamID;\n        subDialogref.componentInstance.teamData = this.teamData;\n        subDialogref.componentInstance.ActivityTypeID = activityFilter[0].ActivityTypeID;\n        subDialogref.componentInstance.activityTypeData = this.activityTypeData;\n        subDialogref.componentInstance.ParentActivityID = activityFilter[0].ParentID;\n        subDialogref.componentInstance.activityData = this.activityData;\n        subDialogref.componentInstance.CompanyID = this.CompanyID;\n        subDialogref.afterClosed().subscribe(result => {\n\n          this.dorseyService.GetActivity(this.CompanyID).subscribe(subData => {\n            this.activityData = JSON.parse(subData['_body']);\n\n            subData = JSON.parse(subData['_body']);\n\n            this.SubactivityData = subData;\n\n            this.SubactivityData = this.SubactivityData.filter(x => x.ParentID === activityFilter[0].ParentID && x.ProcessID === this.processID);\n            let sQuen = this.SubactivityData.filter(x => x.ActivityID === activityID);\n\n            let ParentName = this.activityData.filter(x => x.ActivityID === activityFilter[0].ParentID);\n            this.SubactivityData.sort(function (a, b) {\n              return a.squence - b.squence;\n            });\n\n            if (ParentName.length)\n              this.IssuesLists[this.processID]['SubActivity'][ParentName[0].ActivityID] = this.SubactivityData;\n            else this.IssuesLists[this.processID]['Activity'] = this.SubactivityData;\n\n          });\n\n\n        });\n      }\n\n      else if (pointerType === 'edit' && parentID === 0) {\n        this.editSubActiibiyt = true;\n        let activityFilter = this.activityData.filter(x => x.ActivityID === activityID);\n\n        if (activityFilter.length > 0) {\n\n          const dialogRef = this.dialog.open(ActivityDialogComponent, {\n            panelClass: 'custom-dialog-container',\n            data: 'edit' + 'æææ' + true,\n          });\n\n          if (activityFilter[0].ActivityID === 0) {\n            dialogRef.componentInstance.ParentActivityID = 0;\n          }\n          else {\n            dialogRef.componentInstance.ParentActivityID = activityFilter[0].ActivityID;\n          }\n\n          this.activityData.sort(function (a, b) {\n            return a.squence - b.squence;\n          });\n\n          let tempProcessData = this.tempProcess.filter(x => x.TeamID === activityFilter[0].TeamID);\n\n          dialogRef.componentInstance.processData = tempProcessData;\n\n          dialogRef.componentInstance.ActivityID = activityFilter[0].ActivityID;\n\n          dialogRef.componentInstance.ProcessID = activityFilter[0].ProcessID;\n          dialogRef.componentInstance.ParentActivityID = activityFilter[0].ParentID;\n          dialogRef.componentInstance.DepartmentID = activityFilter[0].DepartmentID;\n          dialogRef.componentInstance.EmployeeID = activityFilter[0].EmployeeID;\n\n          dialogRef.componentInstance.tempActivity = this.activityData;\n\n\n          dialogRef.componentInstance.oldProcessID = activityFilter[0].ProcessID;\n\n          dialogRef.componentInstance.oldActivityID = activityFilter[0].ParentID;\n\n          dialogRef.componentInstance.ActivityID = activityFilter[0].ActivityID;\n          dialogRef.componentInstance.ActivityTypeID = activityFilter[0].ActivityTypeID;\n          dialogRef.componentInstance.ActivityName = activityFilter[0].ActivityName;\n          dialogRef.componentInstance.squence = activityFilter[0].squence;\n          dialogRef.componentInstance.activityData = this.activityData;\n          // dialogRef.componentInstance.processData = this.processLists;\n          dialogRef.componentInstance.TeamID = activityFilter[0].TeamID;\n          dialogRef.componentInstance.tempActivity = this.activityData;\n          dialogRef.componentInstance.departmentData = this.departmentData;\n          dialogRef.componentInstance.teamData = this.teamData;\n          dialogRef.componentInstance.employeeData = this.employeeData;\n\n          dialogRef.componentInstance.actData = this.activityData;\n          dialogRef.componentInstance.tempActivity = this.activityData;\n\n          dialogRef.componentInstance.ProcessID = activityFilter[0].ProcessID;\n          dialogRef.componentInstance.CompanyID = activityFilter[0].CompanyID;\n          dialogRef.componentInstance.activityTypeData = this.activityTypeData;\n\n          dialogRef.componentInstance.currentUser = this.currentUser;\n          dialogRef.afterClosed().subscribe(result => {\n            if (result)\n              this.dialogCall(\"Updated successfully\");\n\n            this.processData = [];\n            // this.pointerList=[];\n            //   this.GetFrustrations();\n\n            let filAct = this.activityData;\n            this.dorseyService.GetActivity(this.CompanyID).subscribe(subData => {\n              this.activityData = JSON.parse(subData['_body']);\n\n              subData = JSON.parse(subData['_body']);\n\n              this.SubactivityData = subData;\n\n\n\n              this.SubactivityData = this.SubactivityData.filter(x => x.ParentID === activityFilter[0].ParentID && x.ProcessID === activityFilter[0].ProcessID);\n              let sQuen = this.SubactivityData.filter(x => x.ActivityID === activityFilter[0].ActivityID);\n\n\n              let data = this.activityData.filter(x => x.ParentID === activityFilter[0].ActivityID);\n              this.SubactivityData.sort(function (a, b) {\n                return a.squence - b.squence;\n              });\n\n\n              let tempAct = this.activityData.filter(x => x.ActivityID === activityFilter[0].ActivityID);\n\n              let temfilAct = filAct.filter(x => x.ActivityID === activityFilter[0].ActivityID);\n\n\n\n              this.IssuesLists[activityFilter[0].ProcessID]['Activity'] = this.SubactivityData;\n              this.ParentID = parentID.toString();;\n\n              if (!(Object.keys(this.IssuesLists[this.processID]['SubActivity']).indexOf(this.SubactivityData[0].ActivityID.toString()) > -1)) {\n\n                this.IssuesLists[activityFilter[0].ProcessID]['SubActivity'][tempAct[0].ActivityID] = data;\n                this.ActivityName = this.SubactivityData[0].ActivityName;\n                this.ActivityID = this.SubactivityData[0].ActivityID;\n                this.ProcessID = this.SubactivityData[0].ProcessID;\n\n                //this.GetFrustrations();\n\n              }\n\n              else {\n                this.ActivityName = activityFilter[0].ActivityName;\n                this.ActivityID = activityFilter[0].ActivityID;\n                this.ProcessID = activityFilter[0].ProcessID;\n                //  this.GetFrustrations();\n              }\n\n              //this.pointerList=[];\n            });\n\n\n          });\n        }\n      }\n      else if (pointerType === 'edit' && parentID != 0) {\n        this.editSubActiibiyt = true;\n        let filterAct = this.activityData.filter(x => x.ParentID === parentID && x.ActivityID === activityID);\n\n        if (filterAct.length > 0) {\n\n\n          const dialogRef = this.dialog.open(ActivityDialogComponent, {\n            panelClass: 'custom-dialog-container',\n            data: 'edit' + 'æææ' + true,\n          });\n\n          this.activityData.sort(function (a, b) {\n            return a.squence - b.squence;\n          });\n\n\n          let tempProcessData = this.tempProcess.filter(x => x.TeamID === this.TeamID);\n\n          dialogRef.componentInstance.processData = tempProcessData;\n\n\n          dialogRef.componentInstance.ParentActivityID = filterAct[0].ParentID;\n          dialogRef.componentInstance.DepartmentID = filterAct[0].DepartmentID;\n          dialogRef.componentInstance.EmployeeID = filterAct[0].EmployeeID;\n\n\n          dialogRef.componentInstance.tempActivity = this.activityData;\n\n\n\n          dialogRef.componentInstance.oldProcessID = this.ProcessID;\n\n          dialogRef.componentInstance.oldActivityID = this.ParentID;\n\n          dialogRef.componentInstance.ActivityID = filterAct[0].ActivityID;\n          dialogRef.componentInstance.ActivityTypeID = filterAct[0].ActivityTypeID;\n          dialogRef.componentInstance.ActivityName = filterAct[0].ActivityName;\n\n          dialogRef.componentInstance.squence = filterAct[0].squence;\n          dialogRef.componentInstance.activityData = this.activityData;\n          // dialogRef.componentInstance.processData = this.processLists;\n          dialogRef.componentInstance.TeamID = filterAct[0].TeamID;\n          dialogRef.componentInstance.tempActivity = this.activityData;\n          dialogRef.componentInstance.departmentData = this.departmentData;\n          dialogRef.componentInstance.teamData = this.teamData;\n          dialogRef.componentInstance.employeeData = this.employeeData;\n\n          dialogRef.componentInstance.actData = this.activityData;\n          dialogRef.componentInstance.tempActivity = this.activityData;\n\n          dialogRef.componentInstance.ProcessID = filterAct[0].ProcessID;\n          dialogRef.componentInstance.CompanyID = filterAct[0].CompanyID;\n          dialogRef.componentInstance.activityTypeData = this.activityTypeData;\n\n          dialogRef.componentInstance.currentUser = this.currentUser;\n          dialogRef.afterClosed().subscribe(result => {\n            if (result)\n\n              this.dialogCall(\"Updated successfully\");\n            this.processData = [];\n            let activityFilter = this.activityData.filter(x =>\n              x.ProcessID.toString() === filterAct[0].ProcessID.toString() && x.ActivityID.toString() === filterAct[0].ActivityID.toString()\n            );\n\n            this.dorseyService.GetActivity(this.CompanyID).subscribe(subData => {\n              this.activityData = JSON.parse(subData['_body']);\n              subData = JSON.parse(subData['_body']);\n              this.SubactivityData = subData;\n              this.SubactivityData = this.SubactivityData.filter(x => x.ParentID === activityFilter[0].ParentID && x.ProcessID === filterAct[0].ProcessID);\n              let sQuen = this.SubactivityData.filter(x => x.ActivityID === filterAct[0].ActivityID);\n              let ParentName = this.activityData.filter(x => x.ActivityID === activityFilter[0].ParentID);\n              this.SubactivityData.sort(function (a, b) {\n                return a.squence - b.squence;\n              });\n              if (ParentName.length)\n                this.IssuesLists[filterAct[0].ProcessID]['SubActivity'][ParentName[0].ActivityID] = this.SubactivityData;\n              else this.IssuesLists[filterAct[0].ProcessID]['Activity'] = this.SubactivityData;\n            });\n          });\n        }\n      }\n      else if (pointerType === 'delete' && parentID === 0) {\n        let activityFilter = this.activityData.filter(x => x.ProcessID === this.processID && x.ActivityID === activityID);\n        if (activityFilter.length > 0) {\n          this.ActivityID = activityFilter[0].ActivityID;\n          this.CompanyID = activityFilter[0].CompanyID;\n          this.TeamID = activityFilter[0].TeamID;\n          this.ProcessID = activityFilter[0].ProcessID;\n          const dialogRef = this.dialog.open(ActivityDialogComponent, {\n            panelClass: 'custom-dialog-container',\n            data: 'Are you sure you want to delete activity: ' + activityFilter[0].ActivityName + '?æææ' + true,\n          });\n          dialogRef.afterClosed().subscribe(result => {\n            if (result) {\n              this.dorseyService.DeleteActivity(this.ActivityID, this.CompanyID, this.TeamID, activityFilter[0].squence, activityFilter[0].ProcessID, activityFilter[0].ParentID).subscribe(data => {\n                if (data.ok) {\n                  this.condition = true;\n                  this.dialogCall('Deleted successfully');\n                }\n                this.processData = [];\n                let filAct = this.activityData;\n                this.dorseyService.GetActivity(this.CompanyID).subscribe(subData => {\n                  this.activityData = JSON.parse(subData['_body']);\n                  subData = JSON.parse(subData['_body']);\n                  this.SubactivityData = subData;\n                  this.SubactivityData = this.SubactivityData.filter(x => x.ParentID === activityFilter[0].ParentID && x.ProcessID === activityFilter[0].ProcessID);\n                  let sQuen = this.SubactivityData.filter(x => x.ActivityID === activityFilter[0].ActivityID);\n                  let data = this.activityData.filter(x => x.ParentID === activityFilter[0].ActivityID);\n                  this.SubactivityData.sort(function (a, b) {\n                    return a.squence - b.squence;\n                  });\n                  let tempAct = this.activityData.filter(x => x.ActivityID === activityFilter[0].ActivityID);\n                  let temfilAct = filAct.filter(x => x.ActivityID === activityFilter[0].ActivityID);\n                  this.IssuesLists[activityFilter[0].ProcessID]['Activity'] = this.SubactivityData;\n                  this.ParentID = parentID.toString();;\n                  if (!(Object.keys(this.IssuesLists[this.processID]['SubActivity']).indexOf(this.SubactivityData[0].ActivityID.toString()) > -1)) {\n                    this.IssuesLists[activityFilter[0].ProcessID]['SubActivity'][tempAct[0].ActivityID] = data;\n                    this.ActivityName = this.SubactivityData[0].ActivityName;\n                    this.ActivityID = this.SubactivityData[0].ActivityID;\n                    this.ProcessID = this.SubactivityData[0].ProcessID;\n                  }\n                  else {\n                    this.ActivityName = activityFilter[0].ActivityName;\n                    this.ActivityID = activityFilter[0].ActivityID;\n                    this.ProcessID = activityFilter[0].ProcessID;\n                  }\n                });\n              });\n            }\n          });\n        }\n      }\n\n      else if (pointerType === 'delete' && parentID !== 0) {\n        let filterAct = this.activityData.filter(x => x.ParentID === parentID && x.ActivityID === activityID);\n        if (filterAct.length > 0) {\n          this.ActivityID = filterAct[0].ActivityID;\n          this.CompanyID = filterAct[0].CompanyID;\n          this.TeamID = filterAct[0].TeamID;\n          this.ProcessID = filterAct[0].ProcessID;\n          const dialogRef = this.dialog.open(ActivityDialogComponent, {\n            panelClass: 'custom-dialog-container',\n            data: 'Are you sure you want to delete activity: ' + filterAct[0].ActivityName + '?æææ' + true,\n          });\n          dialogRef.afterClosed().subscribe(result => {\n            if (result) {\n              this.dorseyService.DeleteActivity(this.ActivityID, this.CompanyID, this.TeamID, filterAct[0].squence, filterAct[0].ProcessID, filterAct[0].ParentID).subscribe(data => {\n                if (data.ok) {\n                  this.condition = true;\n                  this.dialogCall('Deleted successfully');\n                }\n                let tempFilter = this.activityData.filter(x =>\n                  x.ProcessID.toString() === filterAct[0].ProcessID.toString() && x.ActivityID.toString() === filterAct[0].ActivityID.toString()\n                );\n                this.dorseyService.GetActivity(this.CompanyID).subscribe(subData => {\n                  this.activityData = JSON.parse(subData['_body']);\n                  subData = JSON.parse(subData['_body']);\n                  this.SubactivityData = subData;\n                  this.SubactivityData = this.SubactivityData.filter(x => x.ParentID === filterAct[0].ParentID && x.ProcessID === filterAct[0].ProcessID);\n                  let sQuen = this.SubactivityData.filter(x => x.ActivityID === filterAct[0].ActivityID);\n                  let ParentName = this.activityData.filter(x => x.ActivityID === filterAct[0].ParentID);\n                  this.SubactivityData.sort(function (a, b) {\n                    return a.squence - b.squence;\n                  });\n                  if (ParentName.length)\n                    this.IssuesLists[filterAct[0].ProcessID]['SubActivity'][ParentName[0].ActivityID] = this.SubactivityData;\n                  else this.IssuesLists[filterAct[0].ProcessID]['Activity'] = this.SubactivityData;\n                });\n              });\n            }\n          });\n        }\n      }\n    });\n  }\n\n  EditPointer(element) {\n    let tempP = this.pointerList.filter(x => x.PointerID === element.PointerID);\n    if (tempP.length > 0) {\n      this.TeamID = tempP[0].TeamID;\n    }\n\n    this.dorseyService.GetSelectedVersionPointerData(this.versionID, Number(this.CompanyID), Number(this.TeamID), this.childTablePointers).subscribe(pointer => {\n      this.pointerList = JSON.parse(pointer['_body']);\n\n      let filterPointer = this.pointerList.filter(x => x.PointerID === element.PointerID);\n      if (filterPointer.length > 0) {\n        if (filterPointer[0].PointerTypeID === 1) {\n          const dialogRef = this.dialog.open(PointerDialogComponent, {\n            panelClass: 'custom-dialog-container',\n            data: 'edit' + 'æææ' + 'process',\n          });\n\n\n\n\n          //   this.GetTempActivity(filterPointer[0].ProcessID);\n          dialogRef.componentInstance.processData = this.processData;\n          dialogRef.componentInstance.activityData = this.activityData;\n          dialogRef.componentInstance.departmentData = this.departmentData;\n          dialogRef.componentInstance.pointerTypeData = this.pointerTypeData;\n          dialogRef.componentInstance.severityData = this.severityData;\n          dialogRef.componentInstance.statusData = this.statusData;\n\n\n          dialogRef.componentInstance.teamData = this.teamData;\n          dialogRef.componentInstance.employeeData = this.employeeData;\n          dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n          dialogRef.componentInstance.tempActivity = this.tempActivity;\n          dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n          dialogRef.componentInstance.EmployeeID = filterPointer[0].EmployeeID;\n          dialogRef.componentInstance.ProcessID = filterPointer[0].ProcessID;\n          dialogRef.componentInstance.ActivityID = filterPointer[0].ActivityID;\n          dialogRef.componentInstance.PointerTypeID = filterPointer[0].PointerTypeID;\n          dialogRef.componentInstance.PointerID = filterPointer[0].PointerID;\n          dialogRef.componentInstance.DepartmentID = filterPointer[0].DepartmentID;\n          dialogRef.componentInstance.FrustrationTypeIDs = filterPointer[0].FrustrationsTypeID;\n          dialogRef.componentInstance.FrustrationTypeID = filterPointer[0].FrustrationsTypeID;\n          dialogRef.componentInstance.TeamID = filterPointer[0].TeamID;\n          dialogRef.componentInstance.StatusID = filterPointer[0].StatusID;\n          dialogRef.componentInstance.SeverityID = filterPointer[0].SeverityID;\n          dialogRef.componentInstance.Subject = filterPointer[0].Subject;\n          dialogRef.componentInstance.Description = filterPointer[0].Description;\n          //  dialogRef.componentInstance.tempFrustrationType = element.tempFrustrationType;\n\n          dialogRef.componentInstance.ProjectID = filterPointer[0].ProjectID;\n          dialogRef.componentInstance.CompanyID = filterPointer[0].CompanyID;\n          dialogRef.componentInstance.updatedBy = filterPointer[0].UpdatedBy;\n          dialogRef.componentInstance.updatedDate = filterPointer[0].UpdatedDate;\n          dialogRef.componentInstance.currentUser = this.currentUser;\n          this.tempActivity = [];\n          for (let i = 0; i < this.activityData.length; i++) {\n            if (this.activityData[i].ProcessID === filterPointer[0].ProcessID && this.activityData[i].ParentID == 0) {\n              this.tempActivity.push(this.activityData[i]);\n            }\n          }\n          dialogRef.componentInstance.tempActivity = this.tempActivity;\n\n          dialogRef.afterClosed().subscribe(result => {\n            if (result)\n              this.dialogCall(\"Updated successfully\");\n            this.dorseyService.GetCaseData(filterPointer[0].ProcessID, filterPointer[0].ActivityID, filterPointer[0].PointerTypeID, this.versionID, this.childTableName, this.childTableNameType).subscribe(cases => {\n              cases = JSON.parse(cases['_body']);\n              this.CaseData = cases;\n            })\n          });\n        } else {\n          const dialogRef = this.dialog.open(MetricDialogComponent, {\n            panelClass: 'custom-dialog-container',\n            data: 'edit' + 'æææ' + 'process',\n          });\n\n\n          let tempProcessData = this.processData.filter(x => x.TeamID === filterPointer[0].TeamID);\n\n          dialogRef.componentInstance.processData = tempProcessData;\n          dialogRef.componentInstance.GoalsList = this.GoalsList;\n\n          dialogRef.componentInstance.activityData = this.activityData;\n          dialogRef.componentInstance.departmentData = this.departmentData;\n          dialogRef.componentInstance.pointerTypeData = this.pointerTypeData;\n          dialogRef.componentInstance.severityData = this.severityData;\n          dialogRef.componentInstance.statusData = this.statusData;\n          dialogRef.componentInstance.GoalID = filterPointer[0].GoalID\n\n          dialogRef.componentInstance.teamData = this.teamData;\n          dialogRef.componentInstance.employeeData = this.employeeData;\n          dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n\n          dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n          //  dialogRef.componentInstance.tempProcess = this.tempProcess;\n          dialogRef.componentInstance.EmployeeID = filterPointer[0].EmployeeID;\n          dialogRef.componentInstance.ProcessID = filterPointer[0].ProcessID;\n\n\n          dialogRef.componentInstance.ActivityID = filterPointer[0].ActivityID;\n          dialogRef.componentInstance.PointerTypeID = filterPointer[0].PointerTypeID;\n          dialogRef.componentInstance.PointerID = filterPointer[0].PointerID;\n          dialogRef.componentInstance.DepartmentID = filterPointer[0].DepartmentID;\n          dialogRef.componentInstance.FrustrationTypeID = filterPointer[0].FrustrationTypeID;\n          dialogRef.componentInstance.TeamID = filterPointer[0].TeamID;\n          dialogRef.componentInstance.StatusID = filterPointer[0].StatusID;\n          dialogRef.componentInstance.SeverityID = filterPointer[0].SeverityID;\n          dialogRef.componentInstance.Subject = filterPointer[0].Subject;\n          dialogRef.componentInstance.Description = filterPointer[0].Description;\n\n          dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n\n          dialogRef.componentInstance.Source = element.Source;\n          dialogRef.componentInstance.CompanyID = filterPointer[0].CompanyID;\n          dialogRef.componentInstance.subActivityStatus = this.subActivityStatus;\n          dialogRef.componentInstance.SubActivityID = this.SubActivityID;\n\n          this.tempActivity = [];\n          for (let i = 0; i < this.activityData.length; i++) {\n            if (this.activityData[i].ProcessID === filterPointer[0].ProcessID && this.activityData[i].ParentID == 0) {\n              this.tempActivity.push(this.activityData[i]);\n            }\n          }\n          dialogRef.componentInstance.tempActivity = this.tempActivity;\n\n          dialogRef.afterClosed().subscribe(result => {\n            if (result)\n              this.dialogCall(\"Updated successfully\");\n\n            this.dorseyService.GetCaseData(filterPointer[0].ProcessID, filterPointer[0].ActivityID, filterPointer[0].PointerTypeID, this.versionID, this.childTableName, this.childTableNameType).subscribe(cases => {\n              cases = JSON.parse(cases['_body']);\n              this.CaseData = cases;\n\n              let filter = this.CaseData.filter(x => x.PointerID === element.PointerID);\n\n\n            })\n\n          });\n\n        }\n\n\n      }\n    });\n  }\n\n  DeletePointer(element) {\n    let filterPointer = this.pointerList.filter(x => x.PointerID === element.PointerID);\n    if (filterPointer.length > 0) {\n      if (filterPointer[0].PointerTypeID === 2) {\n        this.PointerID = filterPointer[0].PointerID;\n        let status: boolean;\n        this.scoreCardService.CheckMetricExistInPSCDetails(this.PointerID).subscribe(resp => {\n          status = resp.Data;\n        })\n        const dialogRef = this.dialog.open(MetricDialogComponent, {\n          panelClass: 'custom-dialog-container',\n          data: 'Are you sure you want to delete metric: ' + element.Description + '?æææ' + true,\n          width: '400px',\n        });\n        dialogRef.componentInstance.CompanyID = element.CompanyID;\n        dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n        dialogRef.afterClosed().subscribe(result => {\n          if (result) {\n            if (!status) {\n              this.dorseyService.DeletePointer(this.PointerID).subscribe(data => {\n                if (data.ok) {\n                  this.condition = true;\n                  const dialogRef = this.dialog.open(MetricDialogComponent, {\n                    panelClass: 'custom-dialog-container',\n                    data: 'Deleted Successfully '\n                  });\n                  dialogRef.afterClosed().subscribe(result => {\n                    this.dorseyService.GetCaseData(filterPointer[0].ProcessID, filterPointer[0].ActivityID, filterPointer[0].PointerTypeID, this.versionID, this.childTableName, this.childTableNameType).subscribe(cases => {\n                      cases = JSON.parse(cases['_body']);\n                      this.CaseData = cases;\n                    })\n                  });\n                }\n              });\n            }\n            else {\n              this.dialogCall(\"Delete Failed. This metric is associated with scorecard\");\n            }\n          }\n        });\n      } else {\n        this.PointerID = filterPointer[0].PointerID;\n\n        const dialogRef = this.dialog.open(PointerDialogComponent, {\n          panelClass: 'custom-dialog-container',\n          data: 'Are you sure you want to delete frustration: ' + element.Subject + '?æææ' + true,\n          width: '400px',\n\n          // width: '40%'\n        });\n\n        dialogRef.componentInstance.CompanyID = element.CompanyID;\n        dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n        //   this.condition = true;\n\n        dialogRef.afterClosed().subscribe(result => {\n          if (result) {\n\n            /// this.condition = true;\n            this.dorseyService.DeletePointer(this.PointerID).subscribe(data => {\n\n              if (data.ok) {\n                this.condition = true;\n                const dialogRef = this.dialog.open(PointerDialogComponent, {\n                  panelClass: 'custom-dialog-container',\n                  data: 'Deleted Successfully '\n\n\n                  // width: '40%'\n                });\n                dialogRef.afterClosed().subscribe(result => {\n\n\n                  this.dorseyService.GetCaseData(filterPointer[0].ProcessID, filterPointer[0].ActivityID, filterPointer[0].PointerTypeID, this.versionID, this.childTableName, this.childTableNameType).subscribe(cases => {\n                    cases = JSON.parse(cases['_body']);\n                    this.CaseData = cases;\n\n                  })\n\n                });\n              }\n\n            });\n          }\n        });\n      }\n    }\n  }\n  GetSubActivities(activityID) {\n    this.dorseyService.GetActivity(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n\n      this.SubactivityData = subData;\n\n      this.SubactivityData = this.SubactivityData.filter(x => x.ParentID === activityID);\n\n    });\n  }\n\n  GetProcess() {\n    this.dorseyService.GetProcess(this.CompanyID).subscribe(subData => {\n      this.processData = JSON.parse(subData['_body']);\n\n    });\n  }\n\n  AddSubActivity(activityID, processID) {\n\n    this.GetActivityType();\n    this.GetProcess();\n    this.ActivityID = activityID;\n    let processTemp = this.activityData.filter(x => x.ActivityID === activityID);\n    if (processTemp.length > 0) {\n      this.processID = processTemp[0].ProcessID;\n      this.ActivityName = processTemp[0].ActivityName;\n      this.ActivityID = processTemp[0].ActivityID;\n    }\n    let activityFilter = this.activityData.filter(x =>\n      x.ProcessID.toString() === this.processID.toString() && x.ActivityID.toString() === activityID.toString()\n    );\n\n    let tempAct = this.activityData;\n\n    this.activityData.sort(function (a, b) {\n      return a.squence - b.squence;\n    });\n\n\n    const dialogRef = this.dialog.open(ActivityDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: 'new' + 'æææ' + 'process',\n    });\n\n    if (activityID === 0) {\n      dialogRef.componentInstance.ParentActivityID = 0;\n    }\n    else {\n      dialogRef.componentInstance.ParentActivityID = activityID;\n    }\n    dialogRef.componentInstance.activityData = this.activityData;\n    dialogRef.componentInstance.processData = this.processData;\n    dialogRef.componentInstance.ProcessID = this.processID;\n    dialogRef.componentInstance.TeamID = this.TeamID;\n    dialogRef.componentInstance.tempActivity = this.activityData;\n    dialogRef.componentInstance.departmentData = this.departmentData;\n    dialogRef.componentInstance.teamData = this.teamData;\n    dialogRef.componentInstance.employeeData = this.employeeData;\n\n    dialogRef.componentInstance.tempActivity = this.activityData;\n    //  dialogRef.componentInstance.ActivityID = activityID;\n    // dialogRef.componentInstance.ActivityTypeID = activityFilter[0].ActivityTypeID;\n    dialogRef.componentInstance.CompanyID = this.CompanyID;\n    dialogRef.componentInstance.activityTypeData = this.activityTypeData;\n\n    //dialogRef.componentInstance.currentUser = this.currentUser;\n    dialogRef.afterClosed().subscribe(result => {\n\n      let actLen = this.activityData.filter(x => x.ParentID === activityID);;\n\n      this.dorseyService.GetActivity(this.CompanyID).subscribe(subData => {\n        this.activityData = JSON.parse(subData['_body']);\n\n        let tempAct = this.activityData.filter(x => x.ParentID === activityID);\n\n        if (tempAct.length > 0 && tempAct.length > actLen.length) {\n          for (let k = actLen.length; k < tempAct.length; k++) {\n            if (!(Object.keys(this.IssuesLists[this.processID]['SubActivity']).indexOf(activityFilter[0].ActivityID.toString()) > -1)) {\n              let st = {};\n              st[activityFilter[0].ActivityID] = [];\n              st[activityFilter[0].ActivityID].push(tempAct[k]);\n\n              this.IssuesLists[this.processID]['SubActivity'][activityFilter[0].ActivityID] = st[activityFilter[0].ActivityID];\n\n              this.IssuesLists[this.processID]['SubMCount'][tempAct[k].ActivityID] = {};\n              this.IssuesLists[this.processID]['SubMCount'][tempAct[k].ActivityID]['SubMetric'] = {};\n              this.IssuesLists[this.processID]['SubMCount'][tempAct[k].ActivityID] = {};\n              this.IssuesLists[this.processID]['SubMCount'][tempAct[k].ActivityID]['SubIssue'] = {}\n            }\n            else {\n              this.IssuesLists[this.processID]['SubActivity'][activityFilter[0].ActivityID].push(tempAct[k]);\n              this.IssuesLists[this.processID]['SubMCount'][tempAct[k].ActivityID] = {};\n              this.IssuesLists[this.processID]['SubMCount'][tempAct[k].ActivityID]['SubMetric'] = {};\n              this.IssuesLists[this.processID]['SubMCount'][tempAct[k].ActivityID] = {};\n              this.IssuesLists[this.processID]['SubMCount'][tempAct[k].ActivityID]['SubIssue'] = {}\n\n            }\n          }\n\n        }\n\n        this.GetFrustrations();\n\n      });\n\n    });\n\n  }\n\n\n  GetFrustrationType() {\n    this.dorseyService.GetFrustrationType('1', this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n\n      let tempType: any;\n      tempType = subData;\n\n      if (tempType.length === 0) {\n\n        this.dorseyService.GetFrustrationType('1', \"0\").subscribe(subData => {\n          subData = JSON.parse(subData['_body']);\n          this.frustrationtypeData = subData;\n\n        });\n      }\n      else {\n        this.frustrationtypeData = tempType;\n      }\n\n    });\n\n\n  }\n\n\n\n\n  GetFrustrations() {\n    this.editSubActiibiyt = true;\n    let tempData = this.pointerList.filter(x => x.ProcessID === this.ProcessID && x.ActivityID === this.ActivityID);\n\n    let lengthptns = this.pointerList.length;\n\n    this.dorseyService.GetSelectedVersionPointerData(this.VersionNumber, Number(this.CompanyID), Number(this.TeamID), this.childTable).subscribe(pointer => {\n      this.pointerList = JSON.parse(pointer['_body']);\n\n      if (this.pointerList.length === lengthptns) {\n\n        return;\n      }\n\n      this.pointerList = this.pointerList.filter(x => x.ProcessID === this.ProcessID && x.ActivityID === this.ActivityID);\n\n      let metricFilter = this.pointerList.filter(x => x.PointerTypeID === 2);\n      let issueFilter = this.pointerList.filter(x => x.PointerTypeID === 1);\n\n\n      let filterSubMetric = metricFilter.filter(x => x.ActivityID === this.ActivityID);\n\n      let filterSubIssue = issueFilter.filter(x => x.ActivityID === this.ActivityID);\n\n      let putjson;\n      if (this.pointerList.length > 0 && this.pointerList.length > tempData.length) {\n        for (let k = tempData.length; k < this.pointerList.length; k++) {\n          putjson = {\n            PointerID: this.pointerList[k].PointerID,\n            PointerType: this.pointerList[k].PointerType,\n            SeverityName: this.pointerList[k].SeverityName,\n            StatusID: this.pointerList[k].StatusID,\n            StatusName: this.pointerList[k].StatusName,\n            Description: this.pointerList[k].Description,\n            Subject: this.pointerList[k].Subject\n          };\n\n          if (this.pointerList[k].PointerTypeID === 2) {\n            if (this.ParentID !== '0') {\n\n              if (!(Object.keys(this.IssuesLists[this.processID]['SubActivityMetric']).indexOf(this.ActivityID.toString()) > -1)) {\n                let st = {};\n                st[this.ActivityID] = [];\n                st[this.ActivityID].push(putjson);\n\n                if (!this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]) {\n                  this.IssuesLists[this.processID]['SubMCount'][this.ActivityID] = {};\n\n                }\n                if (!this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubMetric']) {\n                  this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubMetric'] = {};\n                }\n                if (!this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubMetric'][this.ActivityID]) {\n\n                  this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubMetric'][this.ActivityID] = 0;\n                }\n\n                this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubMetric'][this.ActivityID] = Number(this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubMetric'][this.ActivityID]) + 1;\n\n                this.IssuesLists[this.processID]['SubActivityMetric'][this.ActivityID] = st[this.ActivityID];\n              }\n              else {\n                if (this.editSubActiibiyt) {\n                  this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubMetric'][this.ActivityID] = filterSubMetric.length;\n                  this.IssuesLists[this.processID]['SubActivityMetric'][this.ActivityID] = filterSubMetric;\n                }\n                else\n                //    if(this.pointerList[k].PointerType!==undefined)\n                {\n                  this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubMetric'][this.ActivityID] = Number(this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubMetric'][this.ActivityID]) + 1;\n\n                  this.IssuesLists[this.processID]['SubActivityMetric'][this.ActivityID].push(putjson);\n                }\n\n              }\n\n            } else {\n\n              if (!(Object.keys(this.IssuesLists[this.processID]['MetricList']).indexOf(this.ActivityID.toString()) > -1)) {\n                let st = {};\n                st[this.ActivityID] = [];\n                st[this.ActivityID].push(putjson);\n\n                if (!this.IssuesLists[this.processID]['Metric'][this.ActivityID]) {\n\n                  this.IssuesLists[this.processID]['Metric'][this.ActivityID] = 0;\n                }\n                this.IssuesLists[this.processID]['Metric'][this.ActivityID] = Number(this.IssuesLists[this.processID]['Metric'][this.ActivityID]) + 1;\n                this.IssuesLists[this.processID]['MetricList'][this.ActivityID] = st[this.ActivityID];\n              }\n              else {\n\n                if (this.editSubActiibiyt) {\n                  this.IssuesLists[this.processID]['Metric'][this.ActivityID] = metricFilter.length;\n                  this.IssuesLists[this.processID]['MetricList'][this.ActivityID] = metricFilter;\n\n                }\n                else {\n                  this.IssuesLists[this.processID]['MetricList'][this.ActivityID].push(putjson);\n                  this.IssuesLists[this.processID]['Metric'][this.ActivityID] = Number(this.IssuesLists[this.processID]['Metric'][this.ActivityID]) + 1;\n\n                }\n\n              }\n\n            }\n          }\n          else {\n\n            if (this.ParentID === '0') {\n\n\n              if (!(Object.keys(this.IssuesLists[this.processID]['IssueList']).indexOf(this.ActivityID.toString()) > -1)) {\n                let st = {};\n                st[this.ActivityID] = [];\n                st[this.ActivityID].push(putjson);\n\n                if (!this.IssuesLists[this.processID]['Issue'][this.ActivityID]) {\n\n                  this.IssuesLists[this.processID]['Issue'][this.ActivityID] = 0;\n                }\n\n                this.IssuesLists[this.processID]['Issue'][this.ActivityID] = Number(this.IssuesLists[this.processID]['Issue'][this.ActivityID]) + 1;\n\n                this.IssuesLists[this.processID]['IssueList'][this.ActivityID] = st[this.ActivityID];\n              }\n              else {\n                if (this.editSubActiibiyt) {\n                  this.IssuesLists[this.processID]['Issue'][this.ActivityID] = issueFilter.length;\n                  this.IssuesLists[this.processID]['IssueList'][this.ActivityID] = issueFilter;\n                }\n                else {\n                  this.IssuesLists[this.processID]['Issue'][this.ActivityID] = Number(this.IssuesLists[this.processID]['Issue'][this.ActivityID]) + 1;\n                  this.IssuesLists[this.processID]['IssueList'][this.ActivityID].push(putjson);\n                }\n\n\n              }\n\n            }\n            else {\n\n              if (!(Object.keys(this.IssuesLists[this.processID]['SubActivityIssues']).indexOf(this.ActivityID.toString()) > -1)) {\n\n                let st = {};\n                st[this.ActivityID] = [];\n                st[this.ActivityID].push(putjson);\n\n                if (!this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubIssue'][this.ActivityID]) {\n                  this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubIssue'][this.ActivityID] = 0;\n                }\n\n                this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubIssue'][this.ActivityID] = Number(this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubIssue'][this.ActivityID]) + 1;\n\n\n                this.IssuesLists[this.processID]['SubActivityIssues'][this.ActivityID] = st[this.ActivityID];\n              }\n              else {\n                if (this.editSubActiibiyt) {\n                  this.IssuesLists[this.processID]['SubActivityIssues'][this.ActivityID] = filterSubIssue;\n                  this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubIssue'][this.ActivityID] = filterSubIssue.length;\n                }\n                else\n                // if(this.pointerList[k].PointerType!==undefined)\n                {\n                  this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubIssue'][this.ActivityID] = Number(this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubIssue'][this.ActivityID]) + 1;\n\n                  this.IssuesLists[this.processID]['SubActivityIssues'][this.ActivityID].push(putjson);\n                }\n              }\n\n            }\n          }\n        }\n      }\n      if (this.IssuesLists[this.subKey]) {\n        if (this.IssuesLists[this.subKey]['Activity']) {\n          for (let j = 0; j < this.IssuesLists[this.subKey]['Activity'].length; j++) {\n            let id = this.IssuesLists[this.subKey]['Activity'][j].ActivityID;\n            this.showMetricAlert[id] = false;\n            if (this.IssuesLists[this.subKey]['MetricList'][this.IssuesLists[this.subKey]['Activity'][j].ActivityID.toString()] != undefined) {\n              j = j + this.alertMetricValue - (j % this.alertMetricValue) - 1;\n            } else {\n              if ((j + 1) % this.alertMetricValue == 0) {\n                this.showMetricAlert[id] = true;\n              } else {\n                this.showMetricAlert[id] = false;\n              }\n            }\n          }\n        }\n\n      }\n\n    });\n  }\n  AddIssue(activityID) {\n    this.ParentID = '0';\n\n    const dialogRef = this.dialog.open(PointerDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: 'new' + 'æææ' + activityID,\n    });\n    this.ActivityID = activityID;\n    let processTemp = this.activityData.filter(x => x.ActivityID === activityID);\n    if (processTemp.length > 0) {\n      this.processID = processTemp[0].ProcessID;\n      this.ActivityName = processTemp[0].ActivityName;\n      this.ActivityID = processTemp[0].ActivityID;\n    }\n\n    this.StatusID = this.statusData[0].StatusID;\n\n    dialogRef.componentInstance.TeamID = this.TeamID\n    dialogRef.componentInstance.processData = this.tempProcess;\n    dialogRef.componentInstance.activityData = this.activityData;\n    dialogRef.componentInstance.departmentData = this.departmentData;\n    dialogRef.componentInstance.pointerTypeData = this.pointerTypeData;\n    dialogRef.componentInstance.severityData = this.severityData;\n    dialogRef.componentInstance.statusData = this.statusData;\n    dialogRef.componentInstance.StatusID = this.StatusID;\n    dialogRef.componentInstance.teamData = this.teamData;\n    dialogRef.componentInstance.employeeData = this.employeeData;\n    dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n    dialogRef.componentInstance.tempActivity = this.activityData;\n    dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n    dialogRef.componentInstance.subActivityStatus = this.subActivityStatus;\n\n    dialogRef.componentInstance.ProcessID = this.processID;\n\n    dialogRef.componentInstance.ActivityID = activityID;\n    dialogRef.componentInstance.CompanyID = this.CompanyID;\n\n\n    let tempActivityes = this.activityData;\n    let subAct = tempActivityes.filter(x => x.ParentID != 0);\n\n    let tempAct = subAct.filter(x => x.ActivityID === activityID);\n\n    if (tempAct.length === 1 && tempAct.length > 0) {\n\n      this.ParentID = tempAct[0].ParentID;\n    }\n\n    if (this.ParentID.toString() === '0') {\n\n      dialogRef.componentInstance.subActivityStatus = false;\n      dialogRef.componentInstance.ActivityID = activityID;\n\n    } else {\n\n      dialogRef.componentInstance.subActivityStatus = true;\n      dialogRef.componentInstance.SubActivityID = activityID;\n      dialogRef.componentInstance.ActivityID = this.ParentID;\n\n    }\n\n    dialogRef.afterClosed().subscribe(result => {\n      // this.parent.ConstructMap();\n      this.GetFrustrations();\n      this.GetFrustrationType();\n\n      this.pointerList = [];\n\n    });\n\n  }\n\n\n  AddMetric(activityID) {\n\n    this.ParentID = '0';\n\n    const dialogRef = this.dialog.open(MetricDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: 'new' + 'æææ' + activityID,\n    });\n\n    let processTemp = this.activityData.filter(x => x.ActivityID === activityID);\n    if (processTemp.length > 0) {\n      this.processID = processTemp[0].ProcessID;\n      this.ActivityName = processTemp[0].ActivityName;\n      this.ActivityID = processTemp[0].ActivityID;\n    }\n    this.ActivityID = activityID;\n\n    dialogRef.componentInstance.GoalsList = this.GoalsList;\n    dialogRef.componentInstance.processData = this.tempProcess;\n    dialogRef.componentInstance.TeamID = this.TeamID;\n    dialogRef.componentInstance.tempActivity = this.activityData;\n    dialogRef.componentInstance.departmentData = this.departmentData;\n    dialogRef.componentInstance.pointerTypeData = this.pointerTypeData;\n    dialogRef.componentInstance.severityData = this.severityData;\n    dialogRef.componentInstance.statusData = this.statusData;\n    dialogRef.componentInstance.teamData = this.teamData;\n    dialogRef.componentInstance.employeeData = this.employeeData;\n    dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n    dialogRef.componentInstance.activityData = this.activityData;\n    dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n    dialogRef.componentInstance.ProcessID = this.processID;\n    // dialogRef.componentInstance.subActivityStatus = false;\n    dialogRef.componentInstance.CompanyID = this.CompanyID;\n\n    let tempActivityes = this.activityData;\n    let subAct = tempActivityes.filter(x => x.ParentID != 0);\n\n    let tempAct = subAct.filter(x => x.ActivityID === activityID);\n\n    if (tempAct.length === 1 && tempAct.length > 0) {\n\n      this.ParentID = tempAct[0].ParentID;\n      this.parentActivityName = tempAct[0].ActivityName\n\n    }\n\n\n    if (this.ParentID.toString() === '0') {\n      dialogRef.componentInstance.ActivityID = activityID;\n      dialogRef.componentInstance.subActivityStatus = false;\n    } else {\n\n      dialogRef.componentInstance.subActivityStatus = true;\n      dialogRef.componentInstance.SubActivityID = activityID;\n      dialogRef.componentInstance.ActivityID = this.ParentID;\n      // dialogRef.componentInstance.parentActivityName = this.parentActivityName;\n\n\n    }\n\n    dialogRef.afterClosed().subscribe(result => {\n      // if(this.editSubActiibiyt){\n      //   this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubMetric'][this.ActivityID]={};\n      // }\n\n\n      this.GetFrustrations();\n      this.GetFrustrationType();\n\n\n\n      this.checkForMetricAlert();\n\n    });\n\n  }\n\n\n  getCase(activityID, pointerID) {\n\n    let activityName = '';\n\n    if (activityID !== 0) {\n      activityName = activityID.ActivityName;\n\n      this.parentId = activityID.ParentID;\n    }\n\n    this.dorseyService.GetCaseData(this.isProcess, activityID.ActivityID, pointerID, this.VersionNumber, this.childTable, this.childFrustType).subscribe(cases => {\n      cases = JSON.parse(cases['_body']);\n\n      const dialogRef = this.dialog.open(ProcessMapDialogComponent2, {\n        data: 'new1' + 'æææ' + true + 'æææ' + pointerID,\n        width: '800px',\n      });\n\n      let filterROle = this.RoleData.filter(x => x.RoleName === \"Read Only\" && x.RoleID === this.EmpROleID);\n\n      if (filterROle.length > 0) {\n        this.readOnly = true;\n      }\n      else {\n        this.readOnly = false;\n\n      }\n\n      let activityFilter = this.activityData.filter(x => x.ActivityID === activityID.ActivityID);\n\n      dialogRef.componentInstance.IsVersion = this.IsVersion;\n      dialogRef.componentInstance.readOnly = this.readOnly;\n\n\n      dialogRef.componentInstance.menuDeleteCheck = this.menuDeleteCheck;\n      dialogRef.componentInstance.menuUpdateCheck = this.menuUpdateCheck;\n\n      dialogRef.componentInstance.GoalsList = this.GoalsList;\n      dialogRef.componentInstance.menuCreateCheck = this.menuCreateCheck;\n      dialogRef.componentInstance.menuReadCheck = this.menuReadCheck;\n\n      dialogRef.componentInstance.menuCCheck = this.menuCCheck;\n      dialogRef.componentInstance.CaseData = cases;\n      dialogRef.componentInstance.Process = this.isProcess.ProcessName;\n      dialogRef.componentInstance.Activity = activityName;\n      dialogRef.componentInstance.pointerList = this.pointerList;\n      dialogRef.componentInstance.processData = this.processData;\n      dialogRef.componentInstance.versionID = this.VersionNumber;\n      dialogRef.componentInstance.childTableName = this.childTableName;\n      dialogRef.componentInstance.childTablePointers = this.childTablePointers;\n\n\n      dialogRef.componentInstance.TeamID = this.TeamID\n      dialogRef.componentInstance.processData = this.processData;\n      dialogRef.componentInstance.activityData = this.activityData;\n      dialogRef.componentInstance.departmentData = this.departmentData;\n      dialogRef.componentInstance.pointerTypeData = this.pointerTypeData;\n      dialogRef.componentInstance.severityData = this.severityData;\n      dialogRef.componentInstance.statusData = this.statusData;\n      dialogRef.componentInstance.teamData = this.teamData;\n      dialogRef.componentInstance.employeeData = this.employeeData;\n      dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n      dialogRef.componentInstance.tempActivity = this.activityData;\n      dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n      dialogRef.componentInstance.ProcessID = this.processID;\n      dialogRef.componentInstance.ActivityID = activityID.ActivityID;\n      dialogRef.componentInstance.CompanyID = this.CompanyID;\n      this.StatusID = this.statusData[0].StatusID;\n      dialogRef.componentInstance.StatusID = this.StatusID;\n      dialogRef.componentInstance.currentUser = this.currentUser;\n      dialogRef.componentInstance.childTablePointers = this.childTablePointers;\n\n      dialogRef.afterClosed().subscribe(result => {\n        // if(result !== undefined)\n        this.dorseyService.GetSelectedVersionPointerData(this.CurrentVersionNumber, Number(this.CompanyID), Number(this.TeamID), this.childTablePointers).subscribe(pointer => {\n          this.pointerList = JSON.parse(pointer['_body']);\n\n\n\n          this.ActivityID = activityID.ActivityID;\n\n\n\n          let filterSubMetric = this.pointerList.filter(x => x.PointerTypeID === 2 && x.ActivityID === activityID.ActivityID);\n          let filterSubIssue = this.pointerList.filter(x => x.PointerTypeID === 1 && x.ActivityID === activityID.ActivityID);\n\n\n          let filterMetric = this.pointerList.filter(x => x.PointerTypeID === 2 && x.ActivityID === activityFilter[0].ActivityID);\n          let filterIssue = this.pointerList.filter(x => x.PointerTypeID === 1 && x.ActivityID === activityFilter[0].ActivityID);\n\n\n          this.processID = activityFilter[0].ProcessID;\n\n          if (pointerID === 2) {\n            if (activityFilter[0].ParentID === 0) {\n              this.IssuesLists[this.processID]['Metric'][activityFilter[0].ActivityID] = filterMetric.length;\n\n              if (filterMetric.length > 0) {\n                this.IssuesLists[this.processID]['MetricList'][activityFilter[0].ActivityID] = filterMetric;\n              }\n              else {\n\n                delete this.IssuesLists[this.processID]['MetricList'][activityFilter[0].ActivityID];\n              }\n\n            }\n            else if (this.ActivityID === activityFilter[0].ActivityID) {\n\n              if (filterSubMetric.length > 0) {\n                this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubMetric'][this.ActivityID] = filterSubMetric.length;\n                this.IssuesLists[this.processID]['SubActivityMetric'][this.ActivityID] = filterSubMetric;\n              }\n              else {\n                this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubMetric'] = {};\n                delete this.IssuesLists[this.processID]['SubActivityMetric'][this.ActivityID];\n\n              }\n\n            }\n\n          }\n          else {\n            if (activityFilter[0].ParentID === 0) {\n              this.IssuesLists[this.processID]['Issue'][activityFilter[0].ActivityID] = filterIssue.length;\n              if (filterIssue.length > 0) {\n                this.IssuesLists[this.processID]['IssueList'][activityFilter[0].ActivityID] = filterIssue;\n              }\n              else {\n\n                delete this.IssuesLists[this.processID]['IssueList'][activityFilter[0].ActivityID];\n              }\n            }\n            else if (this.ActivityID === activityFilter[0].ActivityID) {\n              {\n\n                if (filterSubIssue.length > 0) {\n                  this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubIssue'][this.ActivityID] = filterSubIssue.length;\n                  this.IssuesLists[this.processID]['SubActivityIssues'][this.ActivityID] = filterSubIssue;\n\n                }\n\n                else {\n                  this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubIssue'] = {};\n                  delete this.IssuesLists[this.processID]['SubActivityIssues'][this.ActivityID];\n                }\n\n              }\n\n            }\n\n          }\n\n          this.GetFrustrations();\n\n          this.checkForMetricAlert();\n        })\n      });\n    });\n  }\n  checkForMetricAlert() {\n    if (this.IssuesLists[this.subKey]) {\n      if (this.IssuesLists[this.subKey]['Activity']) {\n        for (let j = 0; j < this.IssuesLists[this.subKey]['Activity'].length; j++) {\n          let id = this.IssuesLists[this.subKey]['Activity'][j].ActivityID;\n          this.showMetricAlert[id] = false;\n          if (this.IssuesLists[this.subKey]['MetricList'][this.IssuesLists[this.subKey]['Activity'][j].ActivityID.toString()] != undefined) {\n\n            j = j + this.alertMetricValue - (j % this.alertMetricValue) - 1;\n          } else {\n            if ((j + 1) % this.alertMetricValue == 0) {\n              this.showMetricAlert[id] = true;\n            } else {\n              this.showMetricAlert[id] = false;\n            }\n          }\n\n        }\n      }\n\n    }\n  }\n\n}\n\n@Component({\n  selector: 'app-dialog',\n  templateUrl: 'dialog.html',\n  styleUrls: ['dialog.css'],\n  providers: [DorseyService]\n})\nexport class ProcessMapDialogComponent2 implements OnInit {\n  readOnly = false;\n  IsVersion = false;\n  ActivityTypeID: string;\n  isProcess: any;\n  isSub: any;\n  condition = false;\n  isActivity: any;\n  dataSelf: string;\n  processID: string;\n  headerText: string;\n  GoalsList: any;\n  PointerType: string;\n  CaseData: any;\n  Process = '';\n  Activity = '';\n  toggle = '';\n  IssuesLists = {};\n  subKey = '';\n  MapType: string;\n  show = true;\n  SubActivityID: string;\n  activityProcess: number;\n  pointerList: any;\n  processData: any;\n  versionID: any;\n  childTableName: any;\n  childTablePointers: any;\n  TeamID: any;\n  activityData: any;\n  departmentData: any;\n  severityData: any;\n  statusData: any;\n  pointerTypeData: any;\n  StatusID: string;\n  frustrationtypeData: any;\n  employeeData: any;\n  teamData: any;\n  tempFrustrationType: any;\n  CompanyID: string;\n  ActivityID: any;\n  tempActivity: any;\n  ProcessID: string;\n  currentUser: string;\n  greenLow: string;\n  greenHigh: string;\n  redLow: string;\n  redHigh: string;\n  yellowLow: string;\n  yellowHigh: string;\n  PointerID: any;\n  childTableNameType: string;\n  subActivityStatus: boolean;\n  menuDeleteCheck: boolean;\n  menuUpdateCheck: boolean;\n  menuReadCheck: boolean;\n  menuCreateCheck: boolean;\n  menuCCheck: boolean;\n  FrustrationTypeID: string;\n  Subject: string;\n  SeverityID: string;\n  EmployeeID: string;\n  Description: any;\n  Source: any;\n  DepartmentID: string;\n  conditionActivity: any;\n  tempSubActivity: any[];\n\n  constructor(\n    public dialogRef: MatDialogRef<ProcessMapDialogComponent2>,\n    @Inject(MAT_DIALOG_DATA) public data: any, public dorseyService: DorseyService,\n    private dialog: MatDialog, private scoreCardService: PerformanceScoreCardService) {\n    //    dialogRef.disableClose=true;\n    this.data = this.data.split('æææ');\n\n    if (this.data[1] === 'true') {\n      this.condition = true;\n    } else {\n      this.condition = false;\n    }\n    this.toggle = this.data[2];\n    this.data = this.data[0];\n\n  }\n  ngOnInit() {\n    this.subKey = Object.keys(this.IssuesLists)[0];\n  }\n\n  closeChoose() {\n    this.dialogRef.close(this.PointerType);\n  }\n\n  dialogCall(msg: string) {\n    const dialogRef = this.dialog.open(ProcessMapDialogComponent, {\n      data: msg + 'æææ' + false,\n    });\n  }\n\n  Clear() {\n    this.dialogRef.close(false);\n  }\n  onYesClick() {\n    this.dialogRef.close(true);\n  }\n  onNoClick(): void {\n    this.dialogRef.close();\n  }\n\n\n  EditPointer(element) {\n\n    if (!this.menuDeleteCheck && !this.menuUpdateCheck) {\n      return;\n    }\n\n    let tempP = this.pointerList.filter(x => x.PointerID === element.PointerID);\n    if (tempP.length > 0) {\n      this.TeamID = tempP[0].TeamID;\n    }\n\n    this.dorseyService.GetSelectedVersionPointerData(this.versionID, Number(this.CompanyID), Number(this.TeamID), this.childTablePointers).subscribe(pointer => {\n      this.pointerList = JSON.parse(pointer['_body']);\n\n      let filterPointer = this.pointerList.filter(x => x.PointerID === element.PointerID);\n      if (filterPointer.length > 0) {\n        if (filterPointer[0].PointerTypeID === 1) {\n          const dialogRef = this.dialog.open(PointerDialogComponent, {\n            panelClass: 'custom-dialog-container',\n            data: 'edit' + 'æææ' + 'process',\n          });\n\n          dialogRef.componentInstance.processData = this.processData;\n          dialogRef.componentInstance.activityData = this.activityData;\n          dialogRef.componentInstance.departmentData = this.departmentData;\n          dialogRef.componentInstance.pointerTypeData = this.pointerTypeData;\n          dialogRef.componentInstance.severityData = this.severityData;\n          dialogRef.componentInstance.statusData = this.statusData;\n          dialogRef.componentInstance.teamData = this.teamData;\n          dialogRef.componentInstance.employeeData = this.employeeData;\n          dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n          dialogRef.componentInstance.tempActivity = this.tempActivity;\n          dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n          dialogRef.componentInstance.EmployeeID = filterPointer[0].EmployeeID;\n          dialogRef.componentInstance.ProcessID = filterPointer[0].ProcessID;\n          dialogRef.componentInstance.ActivityID = filterPointer[0].ActivityID;\n          dialogRef.componentInstance.PointerTypeID = filterPointer[0].PointerTypeID;\n          dialogRef.componentInstance.PointerID = filterPointer[0].PointerID;\n          dialogRef.componentInstance.DepartmentID = filterPointer[0].DepartmentID;\n          dialogRef.componentInstance.FrustrationTypeIDs = filterPointer[0].FrustrationsTypeID;\n          dialogRef.componentInstance.FrustrationTypeID = filterPointer[0].FrustrationsTypeID;\n          dialogRef.componentInstance.TeamID = filterPointer[0].TeamID;\n          dialogRef.componentInstance.StatusID = filterPointer[0].StatusID;\n          dialogRef.componentInstance.SeverityID = filterPointer[0].SeverityID;\n          dialogRef.componentInstance.Subject = filterPointer[0].Subject;\n          dialogRef.componentInstance.Description = filterPointer[0].Description;\n          dialogRef.componentInstance.ProjectID = filterPointer[0].ProjectID;\n          dialogRef.componentInstance.CompanyID = filterPointer[0].CompanyID;\n          dialogRef.componentInstance.updatedBy = filterPointer[0].UpdatedBy;\n          dialogRef.componentInstance.updatedDate = filterPointer[0].UpdatedDate;\n          dialogRef.componentInstance.currentUser = this.currentUser;\n\n          let tempActivityes = this.activityData;\n          let subAct = tempActivityes.filter(x => x.ParentID != 0);\n\n          let tempAct = subAct.filter(x => x.ActivityID === filterPointer[0].ActivityID);\n\n          let ParentID: string;\n          let parentActivityName: string;\n          if (tempAct.length === 1 && tempAct.length > 0) {\n\n            ParentID = tempAct[0].ParentID;\n            parentActivityName = tempAct[0].ActivityName\n          }\n          if (ParentID.toString() === '0') {\n            dialogRef.componentInstance.ActivityID = filterPointer[0].ActivityID;\n            dialogRef.componentInstance.subActivityStatus = false;\n          } else {\n            dialogRef.componentInstance.subActivityStatus = true;\n            dialogRef.componentInstance.SubActivityID = filterPointer[0].ActivityID;\n            dialogRef.componentInstance.ActivityID = ParentID;\n          }\n          dialogRef.afterClosed().subscribe(result => {\n            if (result)\n              this.dialogCall(\"Updated successfully\");\n            this.dorseyService.GetCaseData(filterPointer[0].ProcessID, filterPointer[0].ActivityID, filterPointer[0].PointerTypeID, this.versionID, this.childTableName, this.childTableNameType).subscribe(cases => {\n              cases = JSON.parse(cases['_body']);\n              this.CaseData = cases;\n            })\n          });\n        } else {\n          const dialogRef = this.dialog.open(MetricDialogComponent, {\n            panelClass: 'custom-dialog-container',\n            data: 'edit' + 'æææ' + 'process',\n          });\n\n          let tempProcessData = this.processData.filter(x => x.TeamID === filterPointer[0].TeamID);\n          dialogRef.componentInstance.processData = tempProcessData;\n          dialogRef.componentInstance.activityData = this.activityData;\n          dialogRef.componentInstance.departmentData = this.departmentData;\n          dialogRef.componentInstance.pointerTypeData = this.pointerTypeData;\n          dialogRef.componentInstance.severityData = this.severityData;\n          dialogRef.componentInstance.statusData = this.statusData;\n          dialogRef.componentInstance.GoalID = filterPointer[0].GoalID;\n          dialogRef.componentInstance.GoalsList = this.GoalsList;\n          dialogRef.componentInstance.teamData = this.teamData;\n          dialogRef.componentInstance.employeeData = this.employeeData;\n          dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n          dialogRef.componentInstance.tempActivity = this.tempActivity;\n          dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n          dialogRef.componentInstance.EmployeeID = filterPointer[0].EmployeeID;\n          dialogRef.componentInstance.ProcessID = filterPointer[0].ProcessID;\n          dialogRef.componentInstance.ActivityID = filterPointer[0].ActivityID;\n          dialogRef.componentInstance.PointerTypeID = filterPointer[0].PointerTypeID;\n          dialogRef.componentInstance.PointerID = filterPointer[0].PointerID;\n          dialogRef.componentInstance.DepartmentID = filterPointer[0].DepartmentID;\n          dialogRef.componentInstance.FrustrationTypeID = filterPointer[0].FrustrationTypeID;\n          dialogRef.componentInstance.TeamID = filterPointer[0].TeamID;\n          dialogRef.componentInstance.StatusID = filterPointer[0].StatusID;\n          dialogRef.componentInstance.SeverityID = filterPointer[0].SeverityID;\n          dialogRef.componentInstance.Subject = filterPointer[0].Subject;\n          dialogRef.componentInstance.Description = filterPointer[0].Description;\n          dialogRef.componentInstance.tempActivity = this.tempActivity;\n          dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n          dialogRef.componentInstance.Source = element.Source;\n          dialogRef.componentInstance.CompanyID = filterPointer[0].CompanyID;\n          let tempActivityes = this.activityData;\n          let subAct = tempActivityes.filter(x => x.ParentID != 0);\n          let tempAct = subAct.filter(x => x.ActivityID === filterPointer[0].ActivityID);\n\n          let ParentID: string;\n          let parentActivityName: string;\n          if (tempAct.length === 1 && tempAct.length > 0) {\n\n            ParentID = tempAct[0].ParentID;\n            parentActivityName = tempAct[0].ActivityName\n          }\n          if (ParentID.toString() === '0') {\n            dialogRef.componentInstance.ActivityID = filterPointer[0].ActivityID;\n            dialogRef.componentInstance.subActivityStatus = false;\n          } else {\n\n            dialogRef.componentInstance.subActivityStatus = true;\n            dialogRef.componentInstance.SubActivityID = filterPointer[0].ActivityID;\n            dialogRef.componentInstance.ActivityID = ParentID;\n          }\n          dialogRef.afterClosed().subscribe(result => {\n            if (result)\n              this.dialogCall(\"Updated successfully\");\n\n            this.dorseyService.GetCaseData(filterPointer[0].ProcessID, filterPointer[0].ActivityID, filterPointer[0].PointerTypeID, this.versionID, this.childTableName, this.childTableNameType).subscribe(cases => {\n              cases = JSON.parse(cases['_body']);\n              this.CaseData = cases;\n              let filter = this.CaseData.filter(x => x.PointerID === element.PointerID);\n            })\n          });\n        }\n      }\n    });\n  }\n\n  DeletePointer(element) {\n\n    let filterPointer = this.pointerList.filter(x => x.PointerID === element.PointerID);\n    if (filterPointer.length > 0) {\n      if (filterPointer[0].PointerTypeID === 2) {\n        this.PointerID = filterPointer[0].PointerID;\n\n        let status: boolean;\n        this.scoreCardService.CheckMetricExistInPSCDetails(this.PointerID).subscribe(resp => {\n          status = resp.Data;\n        })\n        const dialogRef = this.dialog.open(MetricDialogComponent, {\n          panelClass: 'custom-dialog-container',\n          data: 'Are you sure you want to delete metric: ' + element.Description + '?æææ' + true,\n          width: '400px',\n        });\n\n        dialogRef.afterClosed().subscribe(result => {\n          if (result) {\n            if (!status) {\n              this.dorseyService.DeletePointer(this.PointerID).subscribe(data => {\n                if (data.ok) {\n                  this.condition = true;\n                  const dialogRef = this.dialog.open(MetricDialogComponent, {\n                    panelClass: 'custom-dialog-container',\n                    data: 'Deleted Successfully '\n                  });\n                  dialogRef.afterClosed().subscribe(result => {\n                    this.dorseyService.GetCaseData(filterPointer[0].ProcessID, filterPointer[0].ActivityID, filterPointer[0].PointerTypeID, this.versionID, this.childTableName, this.childTableNameType).subscribe(cases => {\n                      cases = JSON.parse(cases['_body']);\n                      this.CaseData = cases;\n                    })\n                  });\n                }\n              });\n            }\n            else {\n              this.dialogCall(\"Delete Failed. This metric is associated with scorecard\");\n            }\n          }\n        });\n      } else {\n        this.PointerID = filterPointer[0].PointerID;\n\n        const dialogRef = this.dialog.open(PointerDialogComponent, {\n          panelClass: 'custom-dialog-container',\n          data: 'Are you sure you want to delete frustration: ' + element.Subject + '?æææ' + true,\n          width: '400px',\n\n          // width: '40%'\n        });\n        dialogRef.afterClosed().subscribe(result => {\n          if (result) {\n            this.dorseyService.DeletePointer(this.PointerID).subscribe(data => {\n\n              if (data.ok) {\n                this.condition = true;\n                const dialogRef = this.dialog.open(PointerDialogComponent, {\n                  panelClass: 'custom-dialog-container',\n                  data: 'Deleted Successfully '\n                });\n                dialogRef.afterClosed().subscribe(result => {\n\n\n                  this.dorseyService.GetCaseData(filterPointer[0].ProcessID, filterPointer[0].ActivityID, filterPointer[0].PointerTypeID, this.versionID, this.childTableName, this.childTableNameType).subscribe(cases => {\n                    cases = JSON.parse(cases['_body']);\n                    this.CaseData = cases;\n\n                  })\n\n                });\n              }\n            });\n          }\n        });\n      }\n    }\n\n  }\n\n}\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { DorseyService } from '../dorsey.service';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n  selector: 'app-process',\n  templateUrl: './process.component.html',\n  providers: [DorseyService]\n})\nexport class ProcessComponent implements OnInit {\n  employeeLevelLogin = EmployeeLoginLevel;\n  status = false;\n  processData: any;\n  granualProcess = [];\n  teamData: any;\n  saveFilter = [];\n  procData: any;\n  employeeDetails: any;\n  Permissons: any;\n  CompanyID: string;\n  ProcessID: string;\n  ProcessName: string;\n  DepartmentID: string;\n  EmployeeID: number;\n  ProcessDescription: string;\n  TeamID: number;\n  condition = false;\n  headerText: string;\n  searchtext: string;\n  p: number = 1;\n  rowsOnPage = 10;\n  rowsOnPageSet = [];\n  rowCount: any;\n  dynamicRows = 10;\n  isDesc: boolean = false;\n  column = \"\";\n  direction: number;\n  arrow = true;\n  processPaging = false;\n  isDisable = false;\n  disableSearch = false;\n\n  CurrentUser: string;\n\n  MenuPermissions: any;\n  menuData: any;\n  menuID: string;\n  menuName: string;\n  empID: string;\n  sequenceList = [];\n  squence = null;\n\n  loginCompanyName: any;\n  lastSequence: number;\n  TeamName: any;\n  UserID: any;\n\n  constructor(public dialog: MatDialog, public dorseyService: DorseyService, private storage: LocalStorageService) {\n    this.empID = this.storage.retrieve('EmployeeID');\n    this.CompanyID = this.storage.retrieve('companyID');\n    this.CurrentUser = this.storage.retrieve('user');\n    this.menuData = this.storage.retrieve('menuData');\n    this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n    this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n    this.UserID = this.storage.retrieve('UserID');\n    this.employeeDetails = this.storage.retrieve('employeeDetails');\n    this.getTeam();\n  }\n\n  ngOnInit() {\n    if (this.employeeDetails) {\n      this.EmployeeID = this.employeeDetails.EmployeeID;\n      this.TeamID = this.employeeDetails.TeamID;\n    }\n    else {\n      this.EmployeeID = 0;\n    }\n    this.menuData = this.menuData.filter(x => x.MenuName.toString().toLowerCase() === 'process');\n    if (this.menuData.length > 0) {\n      this.menuName = this.menuData[0][\"MenuName\"];\n      this.menuID = this.menuData[0][\"MenuID\"];\n    }\n    this.getProcess();\n\n  }\n  openProcess(): void {\n    this.TeamID = 0;\n    this.squence = '';\n    this.sequenceList = [];\n    this.dialogCall('new');\n  }\n  getTeam(): void {\n    this.dorseyService.GetTeam(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.teamData = subData;\n      if (this.employeeDetails) {\n        if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLevelLogin.Department) {\n          this.teamData = this.teamData.filter(ent => ent.DepartmentID == this.employeeDetails.DepartmentID)\n        }\n        else if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLevelLogin.Team) {\n          this.teamData = this.teamData.filter(ent => ent.DepartmentID == this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID)\n          this.TeamName = this.teamData[0].TeamName;\n        }\n        else {\n          this.teamData = subData;\n        }\n      }\n\n    });\n  }\n  searchText(): void {\n    this.processData = this.saveFilter;\n    let tempProcess = this.processData.filter(\n      (item) => {\n        return (\n          (item.ProcessName !== null && item.ProcessName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.CompanyName !== null && item.CompanyName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.ProcessDescription !== null && item.ProcessDescription.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n        );\n      }\n\n    );\n\n    this.processData = tempProcess;\n    if (this.processData.length == 0) {\n      this.isDisable = true;\n    } else {\n      this.isDisable = false;\n    }\n\n\n    if (this.searchtext === '') {\n      this.processData = this.saveFilter;\n      this.rowCount = this.processData.length;\n      this.isDisable = false;\n      this.getProcessPagination(this.rowCount);\n    }\n    else {\n      this.rowCount = tempProcess.length;\n      this.getProcessPagination(this.rowCount);\n      if (this.rowsOnPageSet.length === 1) {\n        if (this.rowsOnPageSet[0] <= 10)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n    }\n\n\n  }\n  getProcess(): void {\n\n    this.processData = [];\n    this.dorseyService.GetProcess(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.processData = subData;\n      this.storage.store(\"procData\", this.processData);\n      this.rowCount = this.processData.length;\n      if (this.processData.length === 0) {\n        this.processPaging = false;\n        this.isDisable = true;\n        this.disableSearch = true;\n      }\n      else {\n\n        this.processPaging = true;\n        this.isDisable = false;\n        for (let i = 0; i < this.processData.length; i++) {\n          this.sequenceList.push(Number(this.processData[i].squence));\n        }\n        this.disableSearch = false;\n        this.rowsOnPageSet = [];\n        this.dynamicRows = 10;\n        if (this.employeeDetails) {\n          if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLevelLogin.Department) {\n            this.processData = this.processData.filter(entity1 => this.teamData.find(entity2 => entity1.TeamID == entity2.TeamID));\n          }\n          else if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLevelLogin.Team) {\n            this.processData = this.processData.filter(ent => ent.TeamID == this.employeeDetails.TeamID)\n          }\n          else {\n            let data = this.processData.filter(x => x.CompanyID === this.CompanyID);\n            this.processData = data;\n          }\n\n          if (!this.employeeDetails.PermissionJson) {\n            this.rowCount = this.processData.length;\n            this.saveFilter = JSON.parse(JSON.stringify(this.processData));\n            this.getProcessPagination(this.rowCount)\n            return;\n          }\n          this.Permissons = JSON.parse(this.employeeDetails.PermissionJson);\n          this.Permissons = this.Permissons[\"Process\"];\n          if (this.Permissons != undefined) {\n            let processKeys = Object.keys(this.Permissons);\n\n            for (let i = 0; i < processKeys.length; i++) {\n              let actData = this.processData.filter(x => x.ProcessID.toString() === processKeys[i].toString());\n\n              if (actData.length > 0) {\n                let permissonKeys = Object.keys(this.Permissons[processKeys[i]]);\n\n                if (permissonKeys.indexOf('R') > -1)\n                  actData[0]['R'] = this.Permissons[processKeys[i]]['R'];\n                else\n                  actData[0]['R'] = false;\n\n\n                if (permissonKeys.indexOf('C') > -1)\n                  actData[0]['C'] = this.Permissons[processKeys[i]]['C'];\n                else\n                  actData[0]['C'] = false;\n\n\n                if (permissonKeys.indexOf('U') > -1)\n                  actData[0]['U'] = this.Permissons[processKeys[i]]['U'];\n                else\n                  actData[0]['U'] = false;\n\n\n                if (permissonKeys.indexOf('D') > -1)\n                  actData[0]['D'] = this.Permissons[processKeys[i]]['D'];\n                else\n                  actData[0]['D'] = false;\n\n                this.granualProcess.push(actData[0]);\n              }\n            }\n            this.processData = this.granualProcess;\n          }\n        }\n        else {\n          let data = this.processData.filter(x => x.CompanyID === this.CompanyID);\n          this.processData = data;\n        }\n        if (this.processData.length > 0) {\n          this.rowCount = this.processData.length;\n          this.processPaging = true;\n          this.isDisable = false;\n          this.disableSearch = false;\n          this.saveFilter = JSON.parse(JSON.stringify(this.processData));\n\n          this.getProcessPagination(this.rowCount)\n        }\n        else if (this.processData.length === 0) {\n          this.processPaging = false;\n          this.isDisable = true;\n          this.disableSearch = true;\n        }\n\n      }\n    });\n  }\n\n  getProcessPagination(RowCount): void {\n    this.dynamicRows = 10;\n    this.rowsOnPageSet = [];\n    this.rowsOnPage = 10;\n    this.rowCount = RowCount;\n    while (this.dynamicRows < this.rowCount) {\n      this.rowsOnPageSet.push(this.dynamicRows);\n      this.dynamicRows = this.dynamicRows + 10;\n    }\n    if (!this.rowsOnPageSet.includes(this.rowCount)) {\n      this.rowsOnPageSet.push(this.rowCount);\n      if (this.rowsOnPageSet.length === 1) {\n        if (this.rowsOnPageSet[0] <= 10)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n    }\n  }\n\n\n\n  sort(property) {\n    this.arrow = !this.arrow;\n    this.isDesc = !this.isDesc; //change the direction    \n    this.column = property;\n    this.direction = this.isDesc ? 1 : -1;\n  }\n\n\n  exportAsXLSX(): void {\n    let allData = JSON.parse(JSON.stringify(this.processData));\n\n    for (let i = 0; i < allData.length; i++) {\n      // allData[i].Company=allData[i].CompanyName;\n      allData[i].Team = allData[i].TeamName;\n      allData[i].Process = allData[i].ProcessName;\n      allData[i].Description = allData[i].ProcessDescription;\n      allData[i].Sequence = allData[i].squence;\n      delete (allData[i].VersionID);\n      delete (allData[i].TeamName);\n      delete (allData[i].CompanyName);\n      delete (allData[i].ProcessName);\n      delete (allData[i].ProcessDescription);\n      delete (allData[i].DepartmentName);\n      delete (allData[i].EmployeeName);\n      delete (allData[i].ProcessDescription);\n      delete (allData[i].ProcessID);\n      delete (allData[i].IsActive);\n      delete (allData[i].CreatedDate);\n      delete (allData[i].CreatedBy);\n      delete (allData[i].squence);\n      delete (allData[i].UpdatedDate);\n      delete (allData[i].UpdatedBy);\n      delete (allData[i].CompanyID);\n      delete (allData[i].DepartmentID);\n      delete (allData[i].EmployeeID);\n      delete (allData[i].TeamID);\n      delete (allData[i].R);\n      delete (allData[i].C);\n      delete (allData[i].U);\n      delete (allData[i].D);\n\n    }\n\n    this.dorseyService.generateExcel(allData, this.loginCompanyName + '_process' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Process', \"Company: \" + this.loginCompanyName, '', \"Process Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n  }\n  dialogCall(msg: string): void {\n\n    const dialogRef = this.dialog.open(ProcessDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: msg + 'æææ' + false,\n    });\n\n    dialogRef.componentInstance.EmployeeID = this.EmployeeID;\n    dialogRef.componentInstance.CurrentUser = this.CurrentUser;\n    dialogRef.componentInstance.teamData = this.teamData;\n    dialogRef.componentInstance.CompanyID = this.CompanyID;\n    dialogRef.componentInstance.processData = this.processData;\n\n    if (msg === 'new') {\n      this.searchtext = '';\n      this.getProcess();\n      dialogRef.componentInstance.TeamID = this.TeamID;\n    }\n\n    if (msg === 'edit') {\n      this.status = true;\n      this.headerText = 'Edit Process';\n\n      dialogRef.componentInstance.CompanyID = this.CompanyID;\n      dialogRef.componentInstance.ProcessName = this.ProcessName;\n      dialogRef.componentInstance.processID = this.ProcessID;\n      dialogRef.componentInstance.TeamID = this.TeamID;\n      dialogRef.componentInstance.EmployeeID = this.EmployeeID;\n      dialogRef.componentInstance.TeamName = this.TeamName;\n      dialogRef.componentInstance.DepartmentID = this.DepartmentID;\n      dialogRef.componentInstance.ProcessDescription = this.ProcessDescription;\n      dialogRef.componentInstance.squence = this.squence;\n      dialogRef.componentInstance.sequenceList = this.sequenceList;\n      dialogRef.componentInstance.procData = this.procData;\n      dialogRef.componentInstance.oldTeamId = this.TeamID;\n\n    }\n\n    dialogRef.afterClosed().subscribe(result => {\n      if (this.searchtext !== '' && this.searchtext !== undefined) {\n        this.searchText();\n      }\n      else {\n        this.getProcess();\n      }\n\n      if (result.toString() === 'true') {\n\n        let statusMsg = '';\n        if (msg === 'new') {\n          statusMsg = 'Saved successfully';\n        }\n        else {\n          statusMsg = 'Updated successfully';\n        }\n\n        this.getProcess();\n        const dialogRefsub = this.dialog.open(ProcessDialogComponent, {\n          panelClass: 'custom-dialog-container',\n          data: statusMsg + 'æææ' + false,\n          //  width: '30%'\n        });\n        setTimeout(() => {\n          this.getProcess();\n        }, 500);\n        dialogRefsub.afterClosed().subscribe(result1 => {\n          this.dynamicRows = 10;\n          if (this.searchtext !== '' && this.searchtext !== undefined) {\n            this.searchText();\n          }\n          else {\n            this.getProcess();\n          }\n        });\n      }\n\n    });\n  }\n\n  editProcess(process): void {\n    this.CompanyID = process.CompanyID;\n    this.ProcessID = process.ProcessID;\n    this.ProcessName = process.ProcessName;\n    this.DepartmentID = process.DepartmentID;\n    this.EmployeeID = process.EmployeeID;\n    this.ProcessDescription = process.ProcessDescription;\n    this.squence = process.squence;\n    this.TeamID = process.TeamID;\n\n    this.procData = this.storage.retrieve(\"procData\");\n    for (let i = 0; i < this.procData.length; i++) {\n      if (this.TeamID === this.procData[i].TeamID) {\n        this.sequenceList.push(Number(this.procData[i].squence));\n      }\n    }\n    this.dialogCall('edit');\n  }\n\n  equals(objOne, objTwo) {\n    if (typeof objOne !== 'undefined' && typeof objTwo !== 'undefined') {\n      return objOne.id === objTwo.id;\n    }\n  }\n\n\n\n\n  ifMaxRow() {\n\n    if (this.rowsOnPage == this.processData.length) {\n      this.rowsOnPage = this.rowsOnPage - 1;\n    }\n  }\n\n  deleteProcess(process): void {\n    this.ProcessID = process.ProcessID;\n    this.CompanyID = process.CompanyID;\n    this.TeamID = process.TeamID;\n    this.squence = process.squence;\n\n    const dialogRef = this.dialog.open(ProcessDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: 'Are you sure you want to delete process: ' + process.ProcessName + '?æææ' + true,\n      // width: '40%'\n    });\n    //   this.condition = true;\n\n    dialogRef.afterClosed().subscribe(result => {\n      if (result) {\n        this.dorseyService.DeleteProcess(this.ProcessID, this.CompanyID, this.TeamID, this.squence).subscribe(data => {\n\n          if (data.ok) {\n            this.ifMaxRow();\n            this.condition = true;\n            this.dialogCall('Deleted successfully');\n\n          }\n          this.dynamicRows = 10;\n          this.rowsOnPageSet = [];\n          this.getProcess();\n        });\n      }\n    });\n\n\n\n  }\n\n\n}\n\n@Component({\n  selector: 'app-dialog',\n  templateUrl: 'dialog.html',\n  //  styleUrls: ['dialog.css'],\n  providers: [DorseyService]\n})\nexport class ProcessDialogComponent implements OnInit {\n  CurrentUser: string;\n  condition = false;\n  dataSelf: string;\n  headerText: string;\n\n  TeamID: number;\n  ProcessName: string;\n  CompanyID: string;\n  processID: string;\n  ProcessDescription: string;\n  DepartmentID: string;\n  EmployeeID: number;\n  TeamName: any;\n\n  processData: any;\n  teamData: any[];\n  squence = null;\n  sequenceList: number[] = [];\n  conditionActivity = '';\n  lastSequence: number;\n  disableTeam = false;\n  procData: any;\n  oldTeamId: any;\n  btnDisabled = false;\n  constructor(\n    public dialogRef: MatDialogRef<ProcessDialogComponent>,\n    @Inject(MAT_DIALOG_DATA) public data: any, public dorseyService: DorseyService) {\n    this.data = this.data.split('æææ');\n\n    if (this.data[1] === 'true') {\n      this.condition = true;\n    } else if (this.data[1] === 'false') {\n      this.condition = false;\n    }\n    else {\n      if (this.data[1] === '') {\n        this.conditionActivity = 'process';\n      } else {\n        this.conditionActivity = 'process';\n      }\n    }\n    this.data = this.data[0];\n  }\n  ngOnInit() {\n\n    if (this.TeamID !== 0 && this.data === 'new') {\n      this.sequenceList = [];\n      if (this.processData.length > 0) {\n        for (let i = 0; i < this.processData.length; i++) {\n          if (this.processData[i].TeamID === this.TeamID) {\n            this.sequenceList.push(Number(this.processData[i].squence));\n          }\n        }\n      }\n      let seq = this.sequenceList.length + 1;\n      if (this.sequenceList.length !== 0) {\n        this.sequenceList.push(seq);\n      }\n      else {\n        this.sequenceList.push(1);\n      }\n\n      if (this.sequenceList.length !== 0) {\n        this.squence = this.sequenceList[this.sequenceList.length - 1];\n      }\n      this.sequenceList.sort();\n      this.sequenceList.sort(this.sortNumber);\n    }\n    if (this.TeamID !== 0 && this.conditionActivity === 'process') {\n      this.sequenceList = [];\n      if (this.processData.length > 0) {\n        for (let i = 0; i < this.processData.length; i++) {\n          if (this.processData[i].TeamID === this.TeamID) {\n\n            this.sequenceList.push(Number(this.processData[i].squence));\n          }\n        }\n      }\n\n      let seq = this.sequenceList.length + 1;\n\n      if (this.sequenceList.length !== 0) {\n\n        this.sequenceList.push(seq);\n      }\n      else this.sequenceList.push(1);\n      this.squence = this.sequenceList[this.sequenceList.length - 1]\n        ;\n\n      this.sequenceList.sort();\n      this.sequenceList.sort(this.sortNumber);\n    }\n\n    if (!this.TeamID) {\n      this.squence = '';\n      this.sequenceList = [];\n    }\n\n    if (this.data === 'edit' || this.data === 'rearrange') {\n      this.sequenceList = [];\n      if (this.data === 'edit') {\n        this.processData = this.procData;\n      }\n      for (let i = 0; i < this.processData.length; i++) {\n        if (this.processData[i].TeamID === this.TeamID) {\n          this.sequenceList.push(this.processData[i].squence);\n        }\n      }\n    }\n\n    this.sequenceList.sort();\n    this.sequenceList.sort(this.sortNumber);\n    if (this.data === 'edit') {\n      if (this.TeamID !== 0) {\n        this.disableTeam = true;\n      }\n    }\n\n  }\n\n  sortNumber(a, b) {\n    return a - b;\n  }\n\n  getProcess() {\n    this.dorseyService.GetProcess(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.processData = subData;\n\n    });\n  }\n  addProcess(): void {\n    this.btnDisabled = true;\n\n    setTimeout(() => {\n      this.btnDisabled = false;\n    }, 1000);\n    if (!this.ProcessName.trim()) {\n      this.dataSelf = '';\n      this.dataSelf = 'Please enter mandatory(*) fields';\n      return;\n    }\n    this.saving(this.data);\n\n  }\n  teamChange(event) {\n    this.TeamID = Number(event.value);\n    this.sequenceList = [];\n    this.squence = '';\n\n    this.processData.sort(function (a, b) {\n      return a.squence - b.squence;\n    });\n    if (this.processData.length > 0) {\n      for (let i = 0; i < this.processData.length; i++) {\n        if (this.processData[i].TeamID.toString() === this.TeamID.toString()) {\n          this.sequenceList.push(Number(this.processData[i].squence));\n        }\n      }\n    }\n\n    if (this.TeamID != this.oldTeamId) {\n      let seq = this.sequenceList.length + 1;\n\n      if (this.sequenceList.length !== 0) {\n        this.sequenceList.push(seq);\n      }\n      else this.sequenceList.push(1);\n    }\n\n    this.squence = this.sequenceList[this.sequenceList.length - 1];\n    this.sequenceList.sort();\n    this.sequenceList.sort(this.sortNumber);\n    this.lastSequence = this.sequenceList.length;\n\n  }\n  onYesClick() {\n    this.dialogRef.close(true);\n  }\n  onNoClick(): void {\n    this.dialogRef.close();\n  }\n  saving(msg: string): void {\n\n    const json = {\n      CompanyID: this.CompanyID,\n      processName: this.ProcessName,\n      createdby: this.CurrentUser,\n      processID: this.processID,\n      updatedby: this.CurrentUser,\n      ProcessDescription: this.ProcessDescription,\n      DepartmentID: \"0\",\n      EmployeeID: this.EmployeeID,\n      type: msg,\n      TeamID: this.TeamID,\n      squence: this.squence,\n      lastSequence: this.lastSequence\n    };\n\n    if (msg === 'new') {\n      this.dorseyService.SaveProcess(json, 'No').subscribe(data => {\n        if (data['_body'].toString() === 'true') {\n          this.dataSelf = 'Saved successfully';\n          this.DepartmentID = '';\n          this.processID = '';\n          this.ProcessName = '';\n          this.ProcessDescription = '';\n\n          if (!this.TeamID) {\n            this.squence = '';\n            this.sequenceList = [];\n          }\n          else {\n            this.squence = this.sequenceList[this.sequenceList.length - 1] + 1;\n            this.sequenceList.push(this.squence);\n          }\n          this.getProcess();\n        } else {\n          this.dataSelf = 'Save failed';\n        }\n\n      });\n    } else {\n      this.dorseyService.SaveProcess(json, 'No').subscribe(data => {\n        if (data['_body'].toString() === 'true') {\n          this.dialogRef.close(true);\n        } else {\n          this.dataSelf = 'Updated successfully';\n        }\n      });\n    }\n  }\n  clear(): void {\n    this.dialogRef.close(false);\n  }\n}\n","import { Component, OnInit, Inject, ViewChild, ElementRef } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatDatepickerInputEvent } from '@angular/material';\nimport { DorseyService } from '../dorsey.service';\nimport { PointerDialogComponent } from '../pointer/pointer.component';\nimport { CdkDragDrop, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { DatePipe } from '@angular/common';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n  selector: 'app-project',\n  templateUrl: './project.component.html',\n  //styleUrls: ['./project.component.scss'],\n  providers: [DorseyService, DatePipe]\n})\nexport class ProjectComponent implements OnInit {\n  copyRight = copyRight;\n  employeeDetails: any;\n  ProjectID: string;\n  ProjectName: string;\n  ProjectDescription: string;\n  projectData: any;\n  headerText: string;\n  condition = false;\n  showDiv = false;\n\n  frustData: any;\n  rowSelected: number;\n  errorMsg: string;\n  sortedData: [];\n  searchtext: string;\n  companyData: any;\n  StatusID: string;\n  statusData: any;\n  p: number = 1;\n  rowsOnPage = 10;\n  rowsOnPageSet = [];\n  rowCount: any;\n  dynamicRows = 10;\n  isDesc: boolean = false;\n  column = \"\";\n  direction: number;\n  arrow = true;\n  tempFrustData = [];\n  processData: any;\n  activityData: any;\n\n  pointerTypeData: any;\n  severityData: any;\n  teamData: any;\n  employeeData: any;\n  frustrationtypeData: any;\n  tempFrustrationType: any;\n  pointerData: any;\n  ProcessID: string;\n  tempActivity = [];\n  ActivityID: string;\n  FrustrationTypeID: string;\n  pointerFrustration: any;\n  tableFormat = false;\n  kenbanFormat = false;\n  displayAs: string;\n  kenvanView = [];\n  kenvan = {};\n  weeks = [];\n  connectedTo = [];\n  showpgtn = true;\n  statusidlist = \"\";\n  StatusDic = {};\n  statusname = \"\";\n  projectPaging = false;\n  saveFilter = [];\n  CompanyID: string;\n  isDisable = false;\n  disableSearch = false;\n  disableKenban = false;\n  CurrentUser: string;\n  MenuPermissions: any;\n  menuData: any;\n  menuID: string;\n  menuName: string;\n  ProjectDueDate: Date;\n  loginCompanyName: any;\n  Date = new Date();\n  userTeamID: any;\n  TeamName: any;\n  empID: any;\n  userRoleAssignmentData: any;\n\n  UserID: any;\n\n  updatedDate = new Date();\n  updatedBy: any;\n  TeamID: string;\n  ProjectOwner: string;\n  ifTouchDevice = false;\n  @ViewChild('button', { static: false }) button: ElementRef;\n  longPress = 'first state';\n  longPressing = 0;\n  isLongPressed = false;\n  ifLongPress = true;\n  constructor(private dorseyService: DorseyService, public dialog: MatDialog, private storage: LocalStorageService, private datepipe: DatePipe) {\n    this.CurrentUser = this.storage.retrieve('user');\n    this.menuData = this.storage.retrieve('menuData');\n    this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n    this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n    this.userTeamID = this.storage.retrieve('TeamID');\n    this.CompanyID = this.storage.retrieve('companyID');\n    this.empID = this.storage.retrieve('EmployeeID');\n    // console.log(this.CurrentUser,this.loginCompanyName);\n\n    this.UserID = this.storage.retrieve('UserID');\n    this.employeeDetails = this.storage.retrieve('employeeDetails');\n    this.GetTeam();\n    this.GetStatus();\n\n  }\n  ngOnInit() {\n\n\n    this.tableFormat = true;\n\n    this.menuData = this.menuData.filter(x => x.MenuName.toString().toLowerCase() === 'projects');\n    if (this.menuData.length > 0) {\n      this.menuName = this.menuData[0][\"MenuName\"];\n      this.menuID = this.menuData[0][\"MenuID\"];\n    }\n\n\n    this.GetActivity();\n    // this.GetProcess();\n    setTimeout(() => {\n\n\n      this.GetProjects();\n    }, 100);\n    this.GetPointer();\n    this.GetEmployee();\n\n    this.GetPointerType();\n    this.GetSeverity();\n\n\n    this.GetFrustrationType();\n\n\n  }\n\n  onLongPress() {\n    // this.longPressing = null;\n    // if (this.isLongPressed) this.button.nativeElement.style.backgroundColor = 'green';\n    // else this.button.nativeElement.style.backgroundColor = 'orange';\n    // this.isLongPressed = !this.isLongPressed;\n    // this.longPress = this.isLongPressed ? 'second state' : 'first state';\n  }\n\n  onLongPressing() {\n    // console.log(\"method called\" + this.ifLongPress);\n\n    this.longPressing += 1;\n    // console.log(this.longPressing);\n    if (this.longPressing > 20) {\n      this.ifLongPress = false;\n      //  console.log(this.ifLongPress);\n    } else {\n      this.ifLongPress = true;\n      // console.log(this.ifLongPress);\n    }\n  }\n  onMouseUp() {\n    // console.log(\"mouseup\");\n    this.longPressing = 0;\n    this.ifLongPress = true;\n  }\n\n  onDblClick() {\n    // console.log(\"double click\");\n    this.ifLongPress = false;\n  }\n\n\n  GetPointer() {\n    this.dorseyService.GetPointer(this.CompanyID).subscribe(subData => {\n\n      subData = JSON.parse(subData['_body']);\n      this.pointerData = subData;\n      this.pointerFrustration = this.pointerData.filter(x => x.PointerTypeID != null && x.PointerTypeID.toString() === \"1\")\n\n    });\n  }\n\n  exportAsXLSX() {\n    this.tableFormat = true;\n    this.kenbanFormat = false;\n    let allData = JSON.parse(JSON.stringify(this.projectData));\n    //console(allData);\n    for (let i = 0; i < allData.length; i++) {\n      allData[i][\"Project Team\"] = allData[i].TeamName;\n      allData[i].Project = allData[i].ProjectName;\n      allData[i].Description = allData[i].ProjectDescription;\n      allData[i].Status = allData[i].ProjectStatusName;\n      allData[i][\"Project Owner\"] = allData[i].ProjectOwner;\n\n\n      if (allData[i].ProjectDueDate !== null) {\n        allData[i][\" Due Date \"] = this.datepipe.transform(allData[i].ProjectDueDate, 'MM/dd/yyyy');\n      } else {\n        allData[i][\" Due Date \"] = null;\n      }\n\n\n      delete (allData[i].DepartmentID);\n      delete (allData[i].ProcessID);\n      delete (allData[i].CompanyID1);\n      delete (allData[i].IsActive2);\n      delete (allData[i].CreatedDate2);\n      delete (allData[i].CreatedBy2);\n      delete (allData[i].UpdatedBy2);\n      delete (allData[i].UpdatedDate2);\n      delete (allData[i].TeamDescription);\n      delete (allData[i].TeamName1);\n\n      delete (allData[i].TeamID);\n      delete (allData[i].TeamID1);\n      delete (allData[i].ProjectName);\n      delete (allData[i].ProjectStatusName);\n      delete (allData[i].CompanyID);\n      delete (allData[i].ProjectDescription);\n      delete (allData[i].ProjectDueDate);\n      delete (allData[i].ProjectOwner);\n      delete (allData[i].TeamName);\n      delete (allData[i].ProjectID);\n      delete (allData[i].StatusID);\n      delete (allData[i].RowID);\n      delete (allData[i].ProjectStatusID);\n      delete (allData[i].UpdatedBy);\n      delete (allData[i].UpdatedDate);\n      delete (allData[i].IsActive);\n      delete (allData[i].EmployeeID);\n      delete (allData[i].CreatedDate);\n\n      delete (allData[i].CreatedBy);\n      delete (allData[i].UpdatedDate);\n      delete (allData[i].UpdatedBy);\n\n      delete (allData[i].StatusID1);\n      delete (allData[i].IsActive1);\n      delete (allData[i].CreatedDate1);\n\n      delete (allData[i].CreatedBy1);\n      delete (allData[i].UpdatedDate1);\n      delete (allData[i].UpdatedBy1);\n      delete (allData[i].ProjectStatusName1);\n    }\n\n    this.dorseyService.generateExcel(allData, this.loginCompanyName + '_project' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Project', \"Company: \" + this.loginCompanyName, '', \"Project Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n\n    // this.dorseyService.exportAsExcelFile(allData,this.loginCompanyName+'_project');\n  }\n  table() {\n    this.tableFormat = true;\n    this.kenbanFormat = false;\n    this.displayAs = \"Table View\";\n  }\n  kenban() {\n    this.kenbanFormat = true;\n    this.tableFormat = false;\n    this.displayAs = \"Status view\";\n    this.GetProjects();\n  }\n\n  GetEmployee() {\n    this.dorseyService.GetEmployee(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.employeeData = subData;\n    });\n  }\n\n  GetPointerType() {\n    this.dorseyService.GetPointerType().subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.pointerTypeData = subData;\n    });\n  }\n\n  GetSeverity() {\n    this.dorseyService.GetSeverity().subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.severityData = subData;\n    });\n  }\n\n  GetTeam() {\n    this.dorseyService.GetTeam(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.teamData = subData;\n      if (this.employeeDetails) {\n        if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n          this.teamData = this.teamData.filter(ent => ent.DepartmentID == this.employeeDetails.DepartmentID)\n        }\n        else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n          this.teamData = this.teamData.filter(ent => ent.DepartmentID == this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID)\n          this.TeamName = this.teamData[0].TeamName;\n        }\n        else {\n          this.teamData = subData;\n        }\n      }\n    });\n  }\n\n  GetProcess() {\n    this.dorseyService.GetProcess(this.CompanyID).subscribe(subData => {\n\n      subData = JSON.parse(subData['_body']);\n      this.processData = subData;\n    });\n  }\n  GetActivity() {\n\n    this.dorseyService.GetActivity(this.CompanyID).subscribe(activity => {\n      activity = JSON.parse(activity['_body']);\n      this.activityData = activity;\n\n    });\n  }\n\n  GetPointers() {\n    this.dorseyService.GetPointer(this.CompanyID).subscribe(pointer => {\n      this.pointerTypeData = JSON.parse(pointer['_body']);\n    });\n  }\n\n  Searchtext() {\n    this.projectData = this.saveFilter;\n    let tempProjects = this.projectData.filter(\n      (item) => {\n        return (\n          (item.ProjectName !== null && item.ProjectName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.ProjectDescription !== null && item.ProjectDescription.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.ProjectStatusName !== null && item.ProjectStatusName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.ProjectOwner !== null && item.ProjectOwner.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n        );\n      }\n    );\n    this.projectData = tempProjects;\n    if (this.projectData.length == 0) {\n      this.isDisable = true;\n      this.disableKenban = true;\n      this.projectPaging = false;\n    } else {\n      this.isDisable = false;\n    }\n    if (this.searchtext === '') {\n      this.weeks = [];\n      this.kenvan = [];\n      this.kenvanView = [];\n      this.projectData = this.saveFilter;\n      this.dynamicRows = 10;\n      this.rowsOnPageSet = [];\n      this.rowCount = this.projectData.length;\n      while (this.dynamicRows < this.rowCount) {\n        this.rowsOnPageSet.push(this.dynamicRows);\n        this.dynamicRows = this.dynamicRows + 10;\n      }\n      if (!this.rowsOnPageSet.includes(this.rowCount))\n        this.rowsOnPageSet.push(this.rowCount);\n      if (this.rowsOnPageSet) {\n\n        this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n      this.isDisable = false;\n      this.disableKenban = false;\n      this.projectPaging = true;\n    } else {\n      // console.log(tempProjects.length);\n      this.rowCount = tempProjects.length;\n      this.dynamicRows = 10;\n      this.rowsOnPageSet = [];\n      while (this.dynamicRows < this.rowCount) {\n        this.rowsOnPageSet.push(this.dynamicRows);\n        this.dynamicRows = this.dynamicRows + 10;\n      }\n      if (!this.rowsOnPageSet.includes(this.rowCount)) {\n        this.rowsOnPageSet.push(this.rowCount);\n        if (this.rowsOnPageSet)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n\n      if (this.rowsOnPageSet.length === 1) {\n        if (this.rowsOnPageSet[0] <= 10)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n    }\n  }\n  OpenProject() {\n    this.dialogCall('new');\n  }\n\n  GetProjects() {\n    this.weeks = [];\n    this.kenvan = [];\n    this.kenvanView = [];\n\n    this.dynamicRows = 10;\n    this.rowsOnPageSet = [];\n\n\n    //console(this.weeks);\n    //console(this.kenvan);\n    //console(this.kenvanView);\n\n    this.dorseyService.GetProjects(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.projectData = subData;\n      let tempProjectData = this.projectData;\n      // if(this.userTeamID===null || this.userTeamID===undefined)\n      // {\n      // this.userTeamID=\"0\";\n      // }\n\n      if (this.projectData.length === 0) {\n        this.projectPaging = false;\n        this.isDisable = true;\n        this.disableSearch = true;\n        this.disableKenban = true;\n      }\n\n      else {\n        this.saveFilter = JSON.parse(JSON.stringify(this.projectData));\n        this.projectPaging = true;\n        this.isDisable = false;\n        this.disableSearch = false;\n        this.disableKenban = false;\n\n        // if (this.userTeamID.toString() !== \"0\" && this.userTeamID !== null && this.CompanyID.toString() !== \"0\") {\n        //   let dtaa = this.projectData.filter(x => x.TeamID === this.userTeamID && x.CompanyID === this.CompanyID);\n        //   this.projectData = dtaa;\n        // }\n        // else {\n        //   let dtaa = this.projectData.filter(x => x.CompanyID === this.CompanyID);\n        //   this.projectData = dtaa;\n        // }\n        // this.saveFilter = JSON.parse(JSON.stringify(this.projectData));\n        this.rowsOnPageSet = [];\n        this.dynamicRows = 10;\n        this.rowCount = this.projectData.length;\n        if (this.projectData == \"\") {\n          this.showpgtn = false;\n        }\n\n        while (this.dynamicRows < this.rowCount) {\n          this.rowsOnPageSet.push(this.dynamicRows);\n          this.dynamicRows = this.dynamicRows + 10;\n        }\n        if (!this.rowsOnPageSet.includes(this.rowCount))\n          this.rowsOnPageSet.push(this.rowCount);\n        if (this.rowsOnPageSet.length === 1) {\n          if (this.rowsOnPageSet[0] <= 10)\n            this.rowsOnPage = this.rowsOnPageSet[0];\n        }\n\n      }\n      //console(this.projectData);\n      if (!this.projectData)\n        return;\n      for (let k = 0; k < this.statusData.length; k++) {\n        this.kenvanView = [];\n\n        for (let j = 0; j < this.projectData.length; j++) {\n\n          if (this.statusData[k].StatusID === this.projectData[j].StatusID) {\n\n            this.kenvanView.push(this.projectData[j]);\n          }\n        }\n        this.kenvan['id'] = this.statusData[k].ProjectStatusName;\n        this.kenvan['weeklist'] = this.kenvanView;\n\n        // console.log(this.kenvanView);\n        this.weeks.push({\n          'id': this.statusData[k].ProjectStatusName,\n          'weeklist': this.kenvanView,\n          'statusID': this.statusData[k].ProjectStatusID,\n\n          'count': this.kenvanView.length\n        });\n      }\n      //console(this.weeks);\n\n      for (let week of this.weeks) {\n        this.connectedTo.push(week.id);\n      };\n\n\n\n    });\n    // console.log(this.weeks);\n  }\n\n\n  drop(event: CdkDragDrop<string[]>, statusID: string) {\n    //console(statusID);\n    if (event.previousContainer === event.container) {\n      moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n\n    } else {\n      transferArrayItem(event.previousContainer.data,\n        event.container.data,\n        event.previousIndex,\n        event.currentIndex);\n      this.SaveProjects(event.container.data, statusID);\n\n    }\n    // this.GetCase();\n  }\n\n\n  SaveProjects(dataSave: any, statusID: string) {\n    this.ProjectID = dataSave[0].ProjectID;\n    const json = {\n      ProjectID: dataSave[0].ProjectID,\n      ProjectName: dataSave[0].ProjectName,\n      ProjectDescription: dataSave[0].ProjectDescription,\n      CreatedBy: this.CurrentUser,\n      UpdatedBy: this.CurrentUser,\n      StatusID: statusID,\n      CompanyID: dataSave[0].CompanyID,\n      ProjectDueDate: dataSave[0].ProjectDueDate,\n      TeamID: dataSave[0].TeamID,\n      ProjectOwner: dataSave[0].ProjectOwner\n    };\n\n    this.dorseyService.SaveProjects(json).subscribe(data => {\n      if (data['_body'].toString() === 'true') {\n        this.dorseyService.GetFrustration(this.ProjectID, this.CompanyID).subscribe(subData => {\n          subData = JSON.parse(subData['_body']);\n          this.frustData = subData;\n          const json = {\n            ProjectID: this.ProjectID,\n            CompanyID: this.CompanyID,\n            pointerData: this.frustData,\n            ProjectDescription: dataSave[0].ProjectDescription,\n            ProjectName: dataSave[0].ProjectName,\n            ProjectDueDate: dataSave[0].ProjectDueDate,\n            UpdatedBy: this.CurrentUser\n          }\n          this.dorseyService.UpdatePointerProject(json, 'No', statusID).subscribe(data => {\n            this.weeks = [];\n            this.kenvan = [];\n            this.kenvanView = [];\n            this.GetProjects();\n          });\n        });\n      }\n      else {\n\n      }\n    });\n    this.weeks = [];\n    this.kenvan = [];\n    this.kenvanView = [];\n    this.GetPointer();\n    this.GetProjects();\n  }\n  sort(property) {\n    this.arrow = !this.arrow;\n    this.isDesc = !this.isDesc; //change the direction    \n    this.column = property;\n    this.direction = this.isDesc ? 1 : -1;\n  }\n\n  GetStatus() {\n    this.weeks = [];\n    this.kenvan = [];\n    this.kenvanView = [];\n\n    this.dorseyService.GetProjectStatus().subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.statusData = subData;\n      this.StatusID = this.statusData[0].ProjectStatusID;\n      this.dorseyService.GetPointer(this.CompanyID).subscribe(subData => {\n\n        subData = JSON.parse(subData['_body']);\n        this.pointerData = subData;\n\n        this.dorseyService.GetProjects(this.CompanyID).subscribe(subData => {\n          subData = JSON.parse(subData['_body']);\n          this.projectData = subData;\n          for (let k = 0; k < this.statusData.length; k++) {\n            let statuslist = this.statusData[k].StatusName;\n            let ststuList = [];\n            ststuList.push(this.statusData[k].StatusID);\n            for (let i = 0; i < this.projectData.length; i++) {\n              for (let j = 0; j < this.pointerData.length; j++) {\n                if (this.pointerData[j].ProjectID) {\n                  if (this.projectData[i].ProjectID == this.pointerData[j].ProjectID) {\n                    this.statusname = this.pointerData[j].StatusName;\n                    for (let t = 0; t < ststuList.length; t++) {\n                      if (this.pointerData[j].StatusID == ststuList[t]) {\n                        const json = {\n                          ProjectID: this.projectData[i].ProjectID,\n                          ProjectName: this.projectData[i].ProjectName,\n                          ProjectDescription: this.projectData[i].ProjectDescription,\n                          CreatedBy: this.CurrentUser,\n                          UpdatedBy: this.CurrentUser,\n                          StatusID: this.statusData[k].ProjectStatusID,\n                          ProjectDueDate: this.projectData[i].ProjectDueDate,\n                          TeamID: this.projectData[i].TeamID,\n                          ProjectOwner: this.projectData[i].ProjectOwner,\n                        };\n                        this.dorseyService.SaveProjects(json).subscribe(data => {\n                        });\n                        break;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        });\n      });\n    });\n  }\n  dialogCall(msg: string) {\n    const dialogRef = this.dialog.open(ProjectDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: msg + 'æææ' + false,\n    });\n    dialogRef.componentInstance.CurrentUser = this.CurrentUser;\n    dialogRef.componentInstance.projectData = this.projectData;\n    dialogRef.componentInstance.statusData = this.statusData;\n    dialogRef.componentInstance.CompanyID = this.CompanyID;\n    dialogRef.componentInstance.teamData = this.teamData;\n    dialogRef.componentInstance.ProjectDueDate = null;\n\n    if (msg === 'edit') {\n\n      this.headerText = 'Edit Project';\n      dialogRef.componentInstance.ProjectID = this.ProjectID;\n      dialogRef.componentInstance.ProjectName = this.ProjectName;\n      dialogRef.componentInstance.ProjectDescription = this.ProjectDescription;\n      dialogRef.componentInstance.StatusID = this.StatusID;\n      dialogRef.componentInstance.updatedBy = this.updatedBy;\n      dialogRef.componentInstance.updatedDate = this.updatedDate;\n      dialogRef.componentInstance.TeamID = this.TeamID;\n      dialogRef.componentInstance.ProjectOwner = this.ProjectOwner;\n\n      if (this.ProjectDueDate)\n        dialogRef.componentInstance.ProjectDueDate = this.ProjectDueDate;\n      else dialogRef.componentInstance.ProjectDueDate = null;\n\n    }\n    if (msg === 'new') {\n      this.StatusID = '';\n      this.searchtext = '';\n      this.rowsOnPageSet = [];\n      this.weeks = [];\n      this.kenvan = [];\n      this.kenvanView = [];\n      if (this.statusData.length > 0) {\n        this.StatusID = this.statusData[0].ProjectStatusID;\n        dialogRef.componentInstance.StatusID = this.StatusID;\n      }\n      this.GetProjects();\n    }\n\n    dialogRef.afterClosed().subscribe(result => {\n      if (this.searchtext !== '') {\n        //   this.Searchtext();\n      }\n      else {\n        this.weeks = [];\n        this.kenvan = [];\n        this.kenvanView = [];\n        this.GetProjects();\n      }\n\n      if (result.toString() === 'true') {\n        let statusMsg = '';\n        if (msg === 'new') {\n          statusMsg = 'Saved successfully';\n        }\n        else {\n          statusMsg = 'Updated successfully';\n        }\n        const dialogRefsub = this.dialog.open(ProjectDialogComponent, {\n          panelClass: 'custom-dialog-container',\n          data: statusMsg + 'æææ' + false,\n        });\n        setTimeout(() => {\n          this.GetProjects();\n        }, 500);\n        dialogRefsub.afterClosed().subscribe(result1 => {\n          this.dynamicRows = 10;\n          this.weeks = [];\n          this.kenvan = [];\n          this.kenvanView = [];\n          if (this.searchtext !== '') {\n            this.Searchtext();\n          }\n          else {\n            this.GetProjects();\n          }\n        });\n      }\n\n    });\n  }\n  EditProject(element) {\n\n    this.ProjectID = element.ProjectID;\n    this.ProjectName = element.ProjectName;\n    this.ProjectDescription = element.ProjectDescription;\n    this.StatusID = element.StatusID;\n    this.ProjectDueDate = element.ProjectDueDate;\n    this.updatedDate = element.UpdatedDate;\n    this.updatedBy = element.UpdatedBy;\n    this.TeamID = element.TeamID;\n    this.ProjectOwner = element.ProjectOwner;\n    this.dialogCall('edit');\n  }\n  updatePointer(msg: string) {\n    this.dorseyService.GetFrustration(this.ProjectID, this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.frustData = subData;\n      const json = {\n        ProjectID: this.ProjectID,\n        CompanyID: this.CompanyID,\n        pointerData: this.frustData,\n        ProjectDueDate: this.ProjectDueDate,\n        UpdatedBy: this.CurrentUser\n      }\n      this.dorseyService.UpdatePointerProject(json, 'No', this.StatusID).subscribe(data => {\n      });\n    });\n  }\n\n  GetFrustrationType() {\n    this.dorseyService.GetFrustrationType(\"1\", this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.frustrationtypeData = subData;\n    });\n  }\n  AddIssue(element) {\n    const dialogRef = this.dialog.open(PointerDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: 'edit' + 'æææ' + 'issue',\n    });\n    this.GetTempActivity(element.ProcessID);\n    dialogRef.componentInstance.processData = this.processData;\n    dialogRef.componentInstance.activityData = this.activityData;\n    dialogRef.componentInstance.pointerTypeData = this.pointerTypeData;\n    dialogRef.componentInstance.severityData = this.severityData;\n    dialogRef.componentInstance.teamData = this.teamData;\n    dialogRef.componentInstance.employeeData = this.employeeData;\n    dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n    dialogRef.componentInstance.tempActivity = this.tempActivity;\n    dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n    dialogRef.componentInstance.EmployeeID = element.EmployeeID;\n    dialogRef.componentInstance.ProcessID = element.ProcessID;\n    dialogRef.componentInstance.ActivityID = element.ActivityID;\n    dialogRef.componentInstance.PointerTypeID = element.PointerTypeID;\n    dialogRef.componentInstance.PointerID = element.PointerID;\n    dialogRef.componentInstance.DepartmentID = element.DepartmentID;\n    dialogRef.componentInstance.FrustrationTypeIDs = element.FrustrationsTypeID;\n    dialogRef.componentInstance.FrustrationTypeID = element.FrustrationsTypeID;\n    dialogRef.componentInstance.TeamID = element.TeamID;\n    dialogRef.componentInstance.StatusID = element.StatusID;\n    dialogRef.componentInstance.SeverityID = element.SeverityID;\n    dialogRef.componentInstance.Subject = element.Subject;\n    dialogRef.componentInstance.Description = element.Description;\n    dialogRef.componentInstance.tempFrustrationType = element.tempFrustrationType;\n    dialogRef.componentInstance.ProjectID = element.ProjectID;\n    dialogRef.componentInstance.CompanyID = element.CompanyID;\n    dialogRef.componentInstance.updatedBy = element.UpdatedBy;\n    dialogRef.componentInstance.updatedDate = element.UpdatedDate;\n    dialogRef.componentInstance.currentUser = this.CurrentUser;\n    dialogRef.afterClosed().subscribe(result => {\n      this.GetPointer();\n      this.dorseyService.GetFrustration(this.ProjectID, this.CompanyID).subscribe(subData => {\n        subData = JSON.parse(subData['_body']);\n        this.frustData = subData;\n      });\n    });\n  }\n  GetTempActivity(processID) {\n    for (let i = 0; i < this.activityData.length; i++) {\n      if (this.activityData[i].ProcessID.toString() === processID.toString()) {\n        this.tempActivity.push(this.activityData[i]);\n      }\n    }\n  }\n\n  ForceClose(element) {\n    const dialogRef = this.dialog.open(ProjectDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: 'Are you sure you want to force close project: ' + element.ProjectName + '?æææ' + true,\n    });\n    dialogRef.afterClosed().subscribe(result => {\n      if (result) {\n        this.dorseyService.GetFrustration(element.ProjectID, this.CompanyID).subscribe(subData => {\n          subData = JSON.parse(subData['_body']);\n          this.frustData = subData;\n          for (let i = 0; i < this.frustData.length; i++) {\n            if (this.frustData[i].StatusID.toString() != '4' && this.frustData[i].StatusID.toString() != '5') {\n              this.tempFrustData.push(this.frustData[i]);\n            }\n          }\n          const json = {\n            ProjectID: element.ProjectID,\n            CompanyID: element.CompanyID,\n            pointerData: this.tempFrustData,\n            ProjectName: element.ProjectName,\n            ProjectDescription: element.ProjectDescription,\n            CreatedBy: this.CurrentUser,\n            UpdatedBy: this.CurrentUser,\n            StatusID: \"5\",\n            ProjectDueDate: element.ProjectDueDate\n          }\n\n          this.dorseyService.UpdatePointerProject(json, 'No', \"5\").subscribe(data => {\n            this.weeks = [];\n            this.kenvan = [];\n            this.kenvanView = [];\n            this.GetProjects();\n            if (data.ok) {\n              this.condition = true;\n              this.dialogCall('Save successfully');\n            }\n            this.weeks = [];\n            this.kenvan = [];\n            this.kenvanView = [];\n            this.GetProjects();\n\n            const json1 = {\n              ProjectID: element.ProjectID,\n              ProjectName: element.ProjectName,\n              ProjectDescription: element.ProjectDescription,\n              CreatedBy: this.CurrentUser,\n              UpdatedBy: this.CurrentUser,\n              StatusID: \"5\",\n              CompanyID: this.CompanyID,\n              ProjectDueDate: element.ProjectDueDate,\n              TeamID: element.TeamID,\n              ProjectOwner: element.ProjectOwner\n            };\n\n            this.dorseyService.SaveProjects(json1).subscribe(data => {\n              if (data['_body'].toString() === 'true') {\n                this.weeks = [];\n                this.kenvan = [];\n                this.kenvanView = [];\n                this.GetProjects();\n              } else {\n              }\n            });\n          });\n        });\n      }\n    });\n  }\n\n  ifMaxRow() {\n\n    if (this.rowsOnPage == this.projectData.length) {\n      this.rowsOnPage = this.rowsOnPage - 1;\n    }\n  }\n  DeleteProject(element) {\n    this.ProjectID = element.ProjectID;\n    const dialogRef = this.dialog.open(ProjectDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: 'Are you sure you want to delete project: ' + element.ProjectName + '?æææ' + true,\n    });\n\n    dialogRef.afterClosed().subscribe(result => {\n      if (result) {\n        this.dorseyService.DeleteProjects(this.ProjectID).subscribe(data => {\n          if (data.ok) {\n            this.ifMaxRow();\n            this.condition = true;\n            this.dialogCall('Deleted successfully');\n          }\n          this.weeks = [];\n          this.kenvan = [];\n          this.kenvanView = [];\n          this.GetProjects();\n        });\n      }\n    });\n  }\n  showFrust(element) {\n    if (this.rowSelected === -1) {\n      this.rowSelected = element.ProjectID;\n    }\n    else {\n      if (this.rowSelected == element.ProjectID) {\n        this.rowSelected = -1\n      }\n      else {\n        this.rowSelected = element.ProjectID;\n      }\n    }\n    this.ProjectID = element.ProjectID;\n    this.dorseyService.GetFrustration(this.ProjectID, this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.frustData = subData;\n      if (this.employeeDetails) {\n        if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n          this.frustData = this.frustData.filter(entity1 => this.teamData.some(entity2 => entity1.TeamID == entity2.TeamID));\n        }\n        else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n          this.frustData = this.frustData.filter(ent => ent.TeamID == this.employeeDetails.TeamID)\n        }\n        else {\n          let data = this.frustData.filter(x => x.CompanyID === this.CompanyID);\n          this.frustData = data;\n        }\n      }\n    });\n  }\n}\n@Component({\n  selector: 'app-dialog',\n  templateUrl: 'dialog.html',\n  // styleUrls: ['dialog.css'],\n  providers: [DorseyService, DatePipe],\n})\nexport class ProjectDialogComponent implements OnInit {\n  Date = new Date();\n  startDate = new Date();\n  validDate = new Date();\n  minDate = new Date();\n  ProjectID: string;\n  ProjectName: string;\n  ProjectDescription: string;\n  projectData: any;\n  condition = false;\n  dataSelf: string;\n  StatusID: string\n  statusData: any;\n  frustData: any;\n  CompanyID: string;\n  CurrentUser: string;\n  ProjectDueDate = new Date();\n  updatedDate = new Date();\n  updatedBy: any;\n  teamData: any;\n  TeamID: any;\n  ProjectOwner: any;\n  btnDisabled = false;\n  constructor(\n    public dialogRef: MatDialogRef<ProjectDialogComponent>,\n    @Inject(MAT_DIALOG_DATA) public data: any, public dorseyService: DorseyService, private datepipe: DatePipe) {\n    this.data = this.data.split('æææ');\n    if (this.data[1] === 'true') {\n      this.condition = true;\n    } else {\n      this.condition = false;\n    }\n    this.data = this.data[0];\n  }\n  ngOnInit() {\n  }\n  Clear() {\n    this.dialogRef.close(false);\n  }\n  dob(type: string, event: MatDatepickerInputEvent<Date>) {\n    const date = event.value;\n    this.ProjectDueDate = date;\n    let latest_date = this.datepipe.transform(this.ProjectDueDate, 'MM/dd/yyyy' + \" \" + new Date().getHours() + \":\" + new Date().getMinutes() + \":\" + new Date().getSeconds());\n    this.ProjectDueDate = new Date(latest_date);\n  }\n\n  AddProjects() {\n    this.btnDisabled = true;\n\n    setTimeout(() => {\n      this.btnDisabled = false;\n    }, 1000);\n    let count = 0;\n    const Editcount = 0;\n    if (this.ProjectName === undefined || this.StatusID === undefined ||\n      this.ProjectName.trim() === '' || this.StatusID.toString() === '' || this.TeamID === null || this.TeamID === undefined || this.TeamID.toString() === '') {\n      this.dataSelf = 'Please enter mandatory(*) fields';\n      if (this.data === 'new') {\n      }\n      count++;\n    }\n    if (count === 0 && Editcount === 0) {\n      this.dataSelf = '';\n      if (this.data === 'new') {\n        this.Saving(this.data);\n      } else {\n        this.Saving(this.data);\n      }\n    } else {\n    }\n  }\n  onYesClick() {\n    this.dialogRef.close(true);\n  }\n  onNoClick(): void {\n    this.dialogRef.close();\n  }\n  Saving(msg: string) {\n    const json = {\n      ProjectID: this.ProjectID,\n      ProjectName: this.ProjectName,\n      ProjectDescription: this.ProjectDescription,\n      CreatedBy: this.CurrentUser,\n      UpdatedBy: this.CurrentUser,\n      StatusID: this.StatusID,\n      CompanyID: this.CompanyID,\n      ProjectDueDate: this.ProjectDueDate,\n      TeamID: this.TeamID,\n      ProjectOwner: this.ProjectOwner\n    };\n\n    let date = this.Date.getFullYear() + '/' + (this.Date.getMonth() + 1) + '/' + this.Date.getDate();\n    let date2 = new Date(date)\n    if (this.ProjectDueDate !== null) {\n      if (this.ProjectDueDate < date2) {\n        this.dataSelf = 'Invalid date';\n        return;\n      }\n    }\n    if (msg === 'new') {\n      this.dorseyService.SaveProjects(json).subscribe(data => {\n        if (data['_body'].toString() === 'true') {\n          this.updatePointer(msg);\n          this.dialogRef.close(true);\n        } else {\n          this.dataSelf = 'Save failed';\n        }\n      });\n    } else {\n      this.dorseyService.SaveProjects(json).subscribe(data => {\n        if (data['_body'].toString() === 'true') {\n          this.updatePointer(msg);\n          this.dialogRef.close(true);\n        } else {\n          this.dataSelf = 'Updated successfully';\n        }\n      });\n    }\n  }\n  updatePointer(msg: string) {\n    let statusRow = this.statusData.filter(x => x.ProjectStatusID === this.StatusID);\n    this.StatusID = statusRow[0].StatusID;\n\n    this.dorseyService.GetFrustration(this.ProjectID, this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.frustData = subData;\n      const json = {\n        ProjectID: this.ProjectID,\n        CompanyID: this.CompanyID,\n        pointerData: this.frustData,\n        ProjectName: this.ProjectName,\n        ProjectDescription: this.ProjectDescription,\n        ProjectDueDate: this.ProjectDueDate,\n        UpdatedBy: this.CurrentUser\n      }\n      this.dorseyService.UpdatePointerProject(json, 'No', this.StatusID).subscribe(data => {\n        this.GetIssues(this.ProjectID);\n      });\n    });\n  }\n  GetIssues(id: string) {\n    this.dorseyService.GetFrustration(id, this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.frustData = subData;\n    });\n  }\n  statusChange(event) {\n    this.StatusID = event.value;\n  }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n  selector: 'app-projects-noactions',\n  templateUrl: './projects-noactions.component.html',\n  // styleUrls: ['./projects-noactions.component.scss']\n})\nexport class ProjectsNoactionsComponent implements OnInit {\n\n  NoActionProjectData: any;\n  searchtext: string;\n  isDesc: boolean = false;\n  column = \"\";\n  direction: number;\n  arrow = true;\n  p: number = 1;\n  rowsOnPage = 10;\n  rowsOnPageSet = [];\n  rowCount: any;\n  dynamicRows = 10;\n  processPaging = false;\n  saveFilter = [];\n  CompanyID: string;\n  isDisable = false;\n  disableSearch = false;\n  companyName: string;\n  headerDate = new Date();\n  copyDate: number;\n  EmployeeID: string;\n  TeamID: string;\n  TeamName: string;\n\n  constructor(public dorseyService: DorseyService, private storage: LocalStorageService) {\n    this.EmployeeID = this.storage.retrieve('EmployeeID');\n    if (this.EmployeeID.toString() === \"0\") {\n\n    }\n    else {\n      this.TeamID = this.storage.retrieve('TeamID');\n    }\n  }\n\n  ngOnInit() {\n    this.CompanyID = this.storage.retrieve('companyID');\n    this.companyName = this.storage.retrieve('LoginCompanyName');\n    this.GetNoActionProjects();\n    this.copyDate = (new Date()).getFullYear();\n  }\n\n  GetNoActionProjects() {\n    this.dorseyService.GetNoActionProjects(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.NoActionProjectData = subData;\n      this.saveFilter = JSON.parse(JSON.stringify(this.NoActionProjectData));\n      this.rowCount = this.NoActionProjectData.length;\n      if (this.NoActionProjectData.length === 0) {\n        this.processPaging = false;\n        this.isDisable = true;\n        this.disableSearch = true;\n      }\n      else {\n        this.processPaging = true;\n        this.isDisable = false;\n        this.disableSearch = false;\n\n        while (this.dynamicRows < this.rowCount) {\n          this.rowsOnPageSet.push(this.dynamicRows);\n          this.dynamicRows = this.dynamicRows + 10;\n        }\n        if (!this.rowsOnPageSet.includes(this.rowCount)) this.rowsOnPageSet.push(this.rowCount);\n        if (this.rowsOnPageSet.length > 0) {\n          if (this.rowsOnPageSet[0] <= 10)\n            this.rowsOnPage = this.rowsOnPageSet[0];\n        }\n      }\n    });\n  }\n\n\n  Searchtext() {\n    this.NoActionProjectData = this.saveFilter;\n    let tempNoActionProject = this.NoActionProjectData.filter(\n      (item) => {\n        return (\n          (item.ProjectName !== null && item.ProjectName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.ProjectDescription !== null && item.ProjectDescription.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.ProjectStatusName !== null && item.ProjectStatusName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.ProjectOwner !== null && item.ProjectOwner.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n        );\n      }\n\n    );\n    this.NoActionProjectData = tempNoActionProject;\n    if (this.NoActionProjectData.length == 0) {\n      // this.GetActivity();\n      this.isDisable = true;\n    } else {\n      this.isDisable = false;\n    }\n    if (this.searchtext === '') {\n      this.NoActionProjectData = this.saveFilter;\n      this.dynamicRows = 10;\n      this.rowsOnPageSet = [];\n      this.rowCount = this.NoActionProjectData.length;\n      while (this.dynamicRows < this.rowCount) {\n        this.rowsOnPageSet.push(this.dynamicRows);\n        this.dynamicRows = this.dynamicRows + 10;\n      }\n      if (!this.rowsOnPageSet.includes(this.rowCount))\n        this.rowsOnPageSet.push(this.rowCount);\n      if (this.rowsOnPageSet) {\n\n        this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n      this.isDisable = false;\n    } else {\n      this.rowCount = tempNoActionProject.length;\n      this.dynamicRows = 10;\n      this.rowsOnPageSet = [];\n      while (this.dynamicRows < this.rowCount) {\n        this.rowsOnPageSet.push(this.dynamicRows);\n        this.dynamicRows = this.dynamicRows + 10;\n      }\n      if (!this.rowsOnPageSet.includes(this.rowCount)) {\n        this.rowsOnPageSet.push(this.rowCount);\n        if (this.rowsOnPageSet)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n\n      if (this.rowsOnPageSet.length === 1) {\n        if (this.rowsOnPageSet[0] <= 10)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n    }\n  }\n\n\n  sort(property) {\n    this.arrow = !this.arrow;\n    this.isDesc = !this.isDesc; //change the direction    \n    this.column = property;\n    this.direction = this.isDesc ? 1 : -1;\n  }\n\n  exportAsXLSX() {\n    let allData = JSON.parse(JSON.stringify(this.NoActionProjectData));\n\n\n    for (let i = 0; i < this.NoActionProjectData.length; i++) {\n      allData[i][\" No. \"] = i + 1;\n      allData[i].Team = this.NoActionProjectData[i].TeamName;\n      allData[i].Project = this.NoActionProjectData[i].ProjectName;\n\n      allData[i].Description = this.NoActionProjectData[i].ProjectDescription;\n      allData[i].Status = this.NoActionProjectData[i].ProjectStatusName;\n      allData[i]['Project Owner'] = this.NoActionProjectData[i].ProjectOwner;\n\n      \n      delete (allData[i].DepartmentID);\n      delete (allData[i].ProjectName);\n      delete (allData[i].TeamName);\n      delete (allData[i].ProjectOwner);\n      delete (allData[i].ProjectDescription);\n\n      delete (allData[i].ProjectStatusName);\n      delete (allData[i].CompanyID);\n      delete (allData[i].ProjectID);\n      delete (allData[i].EmployeeID);\n      delete (allData[i].StatusID);\n      delete (allData[i].IsActive);\n      delete (allData[i].CreatedDate);\n\n      delete (allData[i].CreatedBy);\n      delete (allData[i].UpdatedDate);\n      delete (allData[i].UpdatedBy);\n      delete (allData[i].ProjectDueDate);\n\n      delete (allData[i].RowID);\n      delete (allData[i].ProjectStatusID);\n      delete (allData[i].StatusID1);\n      delete (allData[i].IsActive1);\n      delete (allData[i].CreatedDate1);\n      delete (allData[i].CreatedBy1);\n\n      delete (allData[i].UpdatedDate1);\n      delete (allData[i].UpdatedBy1);\n      delete (allData[i].ProjectStatusName1);\n\n      delete (allData[i].TeamID);\n      delete (allData[i].TeamID1);\n      delete (allData[i].ProcessID);\n      delete (allData[i].CompanyID1);\n      delete (allData[i].IsActive2);\n      delete (allData[i].CreatedDate2);\n      delete (allData[i].CreatedBy2);\n      delete (allData[i].UpdatedBy2);\n      delete (allData[i].UpdatedDate2);\n      delete (allData[i].TeamDescription);\n      delete (allData[i].TeamName1);\n    }\n    let team: any;\n    team = '';\n    /*if(this.EmployeeID.toString()==='0'){\n      team='';\n    }else{\n    if(this.TeamID.toString()==='0'|| this.TeamID.toString()===null || this.TeamID.toString()===undefined){\n      team='';\n    }else{\n      team= 'Team: '+this.TeamName;\n    }\n  }*/\n    this.dorseyService.generateExcel(allData, this.companyName + '_Projects in backlog' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Projects in backlog', \"Company: \" + this.companyName, team, \"Projects in backlog Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n  }\n\n}\n","module.exports = \".text-center {\\n  text-align: center;\\n}\\n\\n.m-b-10 {\\n  margin-bottom: 1rem;\\n}\\n\\n.alert-info-sm {\\n  padding: 10px;\\n  margin-left: 1rem;\\n}\\n\\n.field {\\n  margin-left: 2%;\\n}\\n\\n#tableActions {\\n  justify-content: flex-start !important;\\n}\\n\\ntable {\\n  width: 100%;\\n  font-size: smaller;\\n  border-collapse: collapse;\\n}\\n\\nth, td {\\n  text-align: center;\\n  font-size: smaller;\\n}\\n\\nth {\\n  color: white;\\n  background-color: #474747;\\n  height: 35px;\\n  font-size: 13px;\\n}\\n\\ntd {\\n  height: 35px;\\n  font-size: 13px;\\n}\\n\\ntable, th, td {\\n  border: 1px solid #e1e1e1;\\n  overflow: hidden;\\n  word-wrap: break-word;\\n}\\n\\ntable.fixed {\\n  table-layout: fixed;\\n}\\n\\ntable.fixed td {\\n  overflow: hidden;\\n}\\n\\n.highlight td {\\n  background: #C0C0C0;\\n}\\n\\n.warningMsg {\\n  text-align: center;\\n  color: red;\\n}\\n\\n.fa-arrow-down, .fa-arrow-up {\\n  font-size: 10px;\\n}\\n\\n.margin-5 {\\n  margin: 5px;\\n}\\n\\n.text-underline {\\n  text-decoration: underline;\\n}\\n\\n.btnWrapper button {\\n  margin: 2.5% 1% 0% 0.5% !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcXVhcnRlci9GOlxcTmlraWwgV29ya1xcUHJvamVjdHNcXERvcnNleVxcSGllcmFyY2h5IFNvdXJjZSBDb2RlXFxXb3JraW5nXFxkb3JzZXlHcm91cC9zcmNcXGFwcFxccXVhcnRlclxccXVhcnRlci5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvcXVhcnRlci9xdWFydGVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksa0JBQUE7QUNDSjs7QURFQTtFQUNJLG1CQUFBO0FDQ0o7O0FERUE7RUFDSSxhQUFBO0VBQ0EsaUJBQUE7QUNDSjs7QURFQTtFQUNJLGVBQUE7QUNDSjs7QURFQTtFQUNJLHNDQUFBO0FDQ0o7O0FERUE7RUFDSSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSx5QkFBQTtBQ0NKOztBRENBO0VBQ0ksa0JBQUE7RUFDQSxrQkFBQTtBQ0VKOztBRENBO0VBQ0ksWUFBQTtFQUNBLHlCQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7QUNFSjs7QURDQTtFQUNJLFlBQUE7RUFDQSxlQUFBO0FDRUo7O0FEQ0E7RUFDSSx5QkFBQTtFQUNBLGdCQUFBO0VBQ0EscUJBQUE7QUNFSjs7QURDQTtFQUFjLG1CQUFBO0FDR2Q7O0FEREE7RUFBaUIsZ0JBQUE7QUNLakI7O0FESEE7RUFBZSxtQkFBQTtBQ09mOztBRExBO0VBQ0ksa0JBQUE7RUFDQSxVQUFBO0FDUUo7O0FETEE7RUFDSSxlQUFBO0FDUUo7O0FETEE7RUFDSSxXQUFBO0FDUUo7O0FETEE7RUFDSSwwQkFBQTtBQ1FKOztBRExBO0VBQ0ksa0NBQUE7QUNRSiIsImZpbGUiOiJzcmMvYXBwL3F1YXJ0ZXIvcXVhcnRlci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi50ZXh0LWNlbnRlcntcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLm0tYi0xMHtcclxuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbn1cclxuXHJcbi5hbGVydC1pbmZvLXNte1xyXG4gICAgcGFkZGluZzogMTBweDtcclxuICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xyXG59XHJcblxyXG4uZmllbGR7XHJcbiAgICBtYXJnaW4tbGVmdDogMiU7XHJcbn1cclxuXHJcbiN0YWJsZUFjdGlvbnN7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcclxufVxyXG5cclxudGFibGUge1xyXG4gICAgd2lkdGg6MTAwJTtcclxuICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcclxuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XHJcbn1cclxudGgsdGR7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBmb250LXNpemU6IHNtYWxsZXI7XHJcbn1cclxuXHJcbnRoIHtcclxuICAgIGNvbG9yOndoaXRlOyAgICAgXHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiM0NzQ3NDc7XHJcbiAgICBoZWlnaHQ6IDM1cHg7XHJcbiAgICBmb250LXNpemU6IDEzcHg7XHJcbn1cclxuXHJcbnRkIHtcclxuICAgIGhlaWdodDogMzVweDtcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxufVxyXG5cclxudGFibGUsIHRoLCB0ZCB7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTFlMWUxO1xyXG4gICAgb3ZlcmZsb3c6aGlkZGVuO1xyXG4gICAgd29yZC13cmFwOmJyZWFrLXdvcmQ7XHJcbn1cclxuXHJcbnRhYmxlLmZpeGVkIHsgdGFibGUtbGF5b3V0OmZpeGVkOyB9XHJcblxyXG50YWJsZS5maXhlZCB0ZCB7IG92ZXJmbG93OiBoaWRkZW47IH1cclxuXHJcbi5oaWdobGlnaHQgdGQge2JhY2tncm91bmQ6ICNDMEMwQzA7fVxyXG5cclxuLndhcm5pbmdNc2cge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgY29sb3I6IHJlZDtcclxufVxyXG5cclxuLmZhLWFycm93LWRvd24sIC5mYS1hcnJvdy11cHtcclxuICAgIGZvbnQtc2l6ZTogMTBweFxyXG59XHJcblxyXG4ubWFyZ2luLTV7XHJcbiAgICBtYXJnaW46IDVweDtcclxufVxyXG5cclxuLnRleHQtdW5kZXJsaW5le1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbn1cclxuXHJcbi5idG5XcmFwcGVyIGJ1dHRvbiB7XHJcbiAgICBtYXJnaW46IDIuNSUgMSUgMCUgMC41JSAhaW1wb3J0YW50O1xyXG59XHJcbiIsIi50ZXh0LWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm0tYi0xMCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5hbGVydC1pbmZvLXNtIHtcbiAgcGFkZGluZzogMTBweDtcbiAgbWFyZ2luLWxlZnQ6IDFyZW07XG59XG5cbi5maWVsZCB7XG4gIG1hcmdpbi1sZWZ0OiAyJTtcbn1cblxuI3RhYmxlQWN0aW9ucyB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50O1xufVxuXG50YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IHNtYWxsZXI7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG5cbnRoLCB0ZCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiBzbWFsbGVyO1xufVxuXG50aCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ3NDc0NztcbiAgaGVpZ2h0OiAzNXB4O1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbnRkIHtcbiAgaGVpZ2h0OiAzNXB4O1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbnRhYmxlLCB0aCwgdGQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTFlMWUxO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbnRhYmxlLmZpeGVkIHtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbn1cblxudGFibGUuZml4ZWQgdGQge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uaGlnaGxpZ2h0IHRkIHtcbiAgYmFja2dyb3VuZDogI0MwQzBDMDtcbn1cblxuLndhcm5pbmdNc2cge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiByZWQ7XG59XG5cbi5mYS1hcnJvdy1kb3duLCAuZmEtYXJyb3ctdXAge1xuICBmb250LXNpemU6IDEwcHg7XG59XG5cbi5tYXJnaW4tNSB7XG4gIG1hcmdpbjogNXB4O1xufVxuXG4udGV4dC11bmRlcmxpbmUge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLmJ0bldyYXBwZXIgYnV0dG9uIHtcbiAgbWFyZ2luOiAyLjUlIDElIDAlIDAuNSUgIWltcG9ydGFudDtcbn0iXX0= */\"","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { MessageDialogComponent } from '../common/dialog';\nimport { PerformanceScoreCardService } from '../performance-score-card/performance-score-card.service';\nimport { QuarterService } from '../services/quarter.service';\nimport { Month, WeekDay, QuarterStartDay } from './quarter.model';\n\n@Component({\n  selector: 'app-quarter',\n  templateUrl: './quarter.component.html',\n  styleUrls: ['./quarter.component.scss']\n})\nexport class QuarterComponent implements OnInit {\n  errorMsg: string = '';\n  months: Array<Month>;\n  selectedMonthId: number;\n  selectedWeekDayId: number;\n  quarterList: any;\n  currentUser: string;\n  companyId: number;\n  quarterWeekDays: Array<WeekDay>;\n  selectedWeekDate: string;\n  isScoreCardsExist: boolean = false\n\n  quarterWeekStartDate: string[] = [QuarterStartDay.StartDate, QuarterStartDay.EndDate];\n  MenuPermissions: any;\n  menuData: any;\n  menuID: string;\n  menuName: string;\n  employeeDetails: any;\n  constructor(private storage: LocalStorageService,\n    private quarterService: QuarterService,\n    public dialog: MatDialog) {\n    this.currentUser = this.storage.retrieve('user');\n    this.menuData = this.storage.retrieve('menuData');\n    this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n    this.employeeDetails = this.storage.retrieve('employeeDetails');\n  }\n\n  ngOnInit(): void {\n    this.menuData = this.menuData.filter(x => x.MenuName.toString().toLowerCase() === 'score card');\n    if (this.menuData.length > 0) {\n      this.menuName = this.menuData[0][\"MenuName\"];\n      this.menuID = this.menuData[0][\"MenuID\"];\n    }\n\n    this.companyId = this.storage.retrieve('companyID');\n    this.months = this.quarterService.getMonths();\n    this.quarterWeekDays = this.quarterService.getQuarterWeekDays();\n\n    this.selectedWeekDayId = this.quarterWeekDays.find(val => val.WeekDayId == 1).WeekDayId;\n    this.selectedWeekDate = this.quarterWeekStartDate.find(val => val == 'Start Date');\n    this.quarterService.getQuarters(this.companyId).subscribe(resp => {\n      if (resp.Data.length > 0) {\n        this.selectedMonthId = this.months.find(val => val.MonthName == resp.Data[0].MonthName).MonthId;\n        this.selectedWeekDayId = this.quarterWeekDays.find(val => val.WeekDayId == resp.Data[0].QuarterWeekDay).WeekDayId;\n        this.selectedWeekDate = this.quarterWeekStartDate.find(val => val == resp.Data[0].QuarterWeekDate);\n        this.quarterList = this.quarterService.generateQuarters(this.selectedMonthId, this.companyId, this.currentUser, this.selectedWeekDayId, this.selectedWeekDate);\n      }\n      this.isScoreCardsExist = resp.AdditionalData.ScoreCardExistForCompany;\n    });\n  }\n\n  saveQuarters(): void {\n    if (!this.selectedMonthId) {\n      this.errorMsg = 'Please enter mandatory(*) fields';\n      return;\n    }\n    this.errorMsg = '';\n    this.quarterList = this.quarterService.generateQuarters(this.selectedMonthId, this.companyId, this.currentUser, this.selectedWeekDayId, this.selectedWeekDate);\n    this.quarterService.saveQuarters(this.quarterList).subscribe(resp => {\n      if (resp.Data) {\n        this.dialog.open(MessageDialogComponent);\n      }\n    });\n  }\n\n  monthChange(selectedMonthId): void {\n    this.selectedMonthId = selectedMonthId;\n    this.quarterList = this.quarterService.generateQuarters(selectedMonthId, this.companyId, this.currentUser, this.selectedWeekDayId, this.selectedWeekDate);\n  }\n\n  weekDayChange(selectedWeekDayID): void {\n    this.selectedWeekDayId = selectedWeekDayID;\n  }\n\n  weekDateChange(selecteweekDate): void {\n    this.selectedWeekDate = selecteweekDate;\n  }\n}\n","export interface Month {\r\n    MonthId: number,\r\n    MonthName: string\r\n}\r\n\r\nexport interface Quater {\r\n    QuarterId: number,\r\n    month: Month\r\n}\r\n\r\nexport interface WeekDay {\r\n    WeekDayId: number;\r\n    WeekDay: string,\r\n\r\n}\r\n\r\nexport enum QuarterStartDay {\r\n    SelectStartDate = \"Select Quarter Start Date\",\r\n    StartDate = \"Start Date\",\r\n    EndDate = \"End Date\"\r\n}\r\n","module.exports = \"table {\\n  width: 100%;\\n  font-size: smaller;\\n}\\n\\nth, td {\\n  text-align: center;\\n  font-size: smaller;\\n}\\n\\nth {\\n  color: white;\\n  background-color: #474747;\\n  height: 35px;\\n  font-size: 13px;\\n}\\n\\ntd {\\n  height: 35px;\\n  font-size: 13px;\\n}\\n\\ntable {\\n  border-collapse: collapse;\\n}\\n\\ntable, th, td {\\n  border: 1px solid #e1e1e1;\\n  overflow: hidden;\\n  word-wrap: break-word;\\n}\\n\\ntable.fixed {\\n  table-layout: fixed;\\n}\\n\\ntable.fixed td {\\n  overflow: hidden;\\n}\\n\\n.highlight td {\\n  background: #C0C0C0;\\n}\\n\\n.fa {\\n  font-size: 18px;\\n}\\n\\n.fa-trash-o {\\n  color: red;\\n}\\n\\n.warningMsg {\\n  text-align: center;\\n  color: red;\\n}\\n\\n.fa-arrow-down, .fa-arrow-up {\\n  font-size: 10px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcmVwb3J0LWFjdGl2aXR5LWlzc3Vlcy9GOlxcTmlraWwgV29ya1xcUHJvamVjdHNcXERvcnNleVxcSGllcmFyY2h5IFNvdXJjZSBDb2RlXFxXb3JraW5nXFxkb3JzZXlHcm91cC9zcmNcXGFwcFxccmVwb3J0LWFjdGl2aXR5LWlzc3Vlc1xccmVwb3J0LWFjdGl2aXR5LWlzc3Vlcy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvcmVwb3J0LWFjdGl2aXR5LWlzc3Vlcy9yZXBvcnQtYWN0aXZpdHktaXNzdWVzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0VBQ0ksV0FBQTtFQUNBLGtCQUFBO0FDREo7O0FER0E7RUFDSSxrQkFBQTtFQUNBLGtCQUFBO0FDQUo7O0FER0E7RUFDQyxZQUFBO0VBQ0QseUJBQUE7RUFDQSxZQUFBO0VBQ0MsZUFBQTtBQ0FEOztBREVBO0VBQ0ksWUFBQTtFQUNDLGVBQUE7QUNDTDs7QURDQTtFQUNJLHlCQUFBO0FDRUo7O0FEQUE7RUFDSSx5QkFBQTtFQUNBLGdCQUFBO0VBQ0EscUJBQUE7QUNHSjs7QUREQTtFQUFjLG1CQUFBO0FDS2Q7O0FESkE7RUFBaUIsZ0JBQUE7QUNRakI7O0FEUEE7RUFBZSxtQkFBQTtBQ1dmOztBRFRBO0VBQ0ssZUFBQTtBQ1lMOztBRFRBO0VBQ0ksVUFBQTtBQ1lKOztBRFZBO0VBQ0ksa0JBQUE7RUFBbUIsVUFBQTtBQ2N2Qjs7QURaQTtFQUNJLGVBQUE7QUNlSiIsImZpbGUiOiJzcmMvYXBwL3JlcG9ydC1hY3Rpdml0eS1pc3N1ZXMvcmVwb3J0LWFjdGl2aXR5LWlzc3Vlcy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5cclxudGFibGUge1xyXG4gICAgd2lkdGg6MTAwJTtcclxuICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcclxufVxyXG50aCx0ZHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcclxufVxyXG5cclxudGgge1xyXG4gY29sb3I6d2hpdGU7ICAgICBcclxuYmFja2dyb3VuZC1jb2xvcjogXHQjNDc0NzQ3O1xyXG5oZWlnaHQ6IDM1cHg7XHJcbiBmb250LXNpemU6IDEzcHg7XHJcbn1cclxudGQge1xyXG4gICAgaGVpZ2h0OiAzNXB4O1xyXG4gICAgIGZvbnQtc2l6ZTogMTNweDtcclxufVxyXG50YWJsZSB7XHJcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xyXG59XHJcbnRhYmxlLCB0aCwgdGQge1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UxZTFlMTtcclxuICAgIG92ZXJmbG93OmhpZGRlbjtcclxuICAgIHdvcmQtd3JhcDpicmVhay13b3JkO1xyXG59XHJcbnRhYmxlLmZpeGVkIHsgdGFibGUtbGF5b3V0OmZpeGVkOyB9XHJcbnRhYmxlLmZpeGVkIHRkIHsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxyXG4uaGlnaGxpZ2h0IHRkIHtiYWNrZ3JvdW5kOiAjQzBDMEMwO31cclxuXHJcbi5mYXtcclxuICAgICBmb250LXNpemU6IDE4cHg7IFxyXG59XHJcblxyXG4uZmEtdHJhc2gtb3tcclxuICAgIGNvbG9yOnJlZDtcclxufVxyXG4ud2FybmluZ01zZyB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Y29sb3I6IHJlZDtcclxufVxyXG4uZmEtYXJyb3ctZG93biwgLmZhLWFycm93LXVwe1xyXG4gICAgZm9udC1zaXplOiAxMHB4XHJcbn1cclxuIiwidGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiBzbWFsbGVyO1xufVxuXG50aCwgdGQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcbn1cblxudGgge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NzQ3NDc7XG4gIGhlaWdodDogMzVweDtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuXG50ZCB7XG4gIGhlaWdodDogMzVweDtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG5cbnRhYmxlLCB0aCwgdGQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTFlMWUxO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbnRhYmxlLmZpeGVkIHtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbn1cblxudGFibGUuZml4ZWQgdGQge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uaGlnaGxpZ2h0IHRkIHtcbiAgYmFja2dyb3VuZDogI0MwQzBDMDtcbn1cblxuLmZhIHtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4uZmEtdHJhc2gtbyB7XG4gIGNvbG9yOiByZWQ7XG59XG5cbi53YXJuaW5nTXNnIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogcmVkO1xufVxuXG4uZmEtYXJyb3ctZG93biwgLmZhLWFycm93LXVwIHtcbiAgZm9udC1zaXplOiAxMHB4O1xufSJdfQ== */\"","\nimport { Component, OnInit } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { Local } from 'protractor/built/driverProviders';\n\n@Component({\n  selector: 'app-report-activity-issues',\n  templateUrl: './report-activity-issues.component.html',\n  styleUrls: ['./report-activity-issues.component.scss']\n})\nexport class ReportActivityIssuesComponent implements OnInit {\n  loginCompanyName: any;\n  companyID: string;\n  processData: any;\n  activityData: any;\n  pointersData: any;\n  finalList = [];\n  frust = [];\n  isDesc: boolean = false;\n  column = \"\";\n  direction: number;\n  arrow = true;\n  p: number = 1;\n  rowsOnPage = 10;\n  rowsOnPageSet = [];\n  rowCount: any;\n  dynamicRows = 10;\n  processPaging = false;\n  searchtext: string;\n  saveFilter = [];\n  CompanyID: string;\n  isDisable = false;\n  disableSearch = false;\n  companyName: string;\n  headerDate = new Date();\n  searchFilter: any;\n\n  constructor(private dorseyService: DorseyService, private storage: LocalStorageService) {\n\n    this.companyID = this.storage.retrieve('companyID');\n    this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n\n  }\n\n  ngOnInit() {\n    //  this.GetProcess();\n    //  this.GetActivity();\n    this.GetActivityIssues();\n\n  }\n\n  GetActivityIssues() {\n    this.dorseyService.GetActivityIssues(this.companyID).subscribe(process => {\n      this.pointersData = JSON.parse(process['_body']);\n      if (this.pointersData.length === 0) {\n        this.isDisable = true;\n        this.disableSearch = true;\n        this.processPaging = false;\n      }\n      else {\n        this.processPaging = true;\n        this.isDisable = false;\n        this.disableSearch = false;\n        this.saveFilter = JSON.parse(JSON.stringify(this.pointersData));\n        this.rowCount = this.pointersData.length;\n        this.processPaging = true;\n        while (this.dynamicRows < this.rowCount) {\n          this.rowsOnPageSet.push(this.dynamicRows);\n          this.dynamicRows = this.dynamicRows + 10;\n        }\n        if (!this.rowsOnPageSet.includes(this.rowCount))\n          this.rowsOnPageSet.push(this.rowCount);\n        if (this.rowsOnPageSet.length === 1) {\n          if (this.rowsOnPageSet[0] <= 10)\n            this.rowsOnPage = this.rowsOnPageSet[0];\n        }\n      }\n    });\n\n\n  }\n\n  sort(property) {\n    this.arrow = !this.arrow;\n    this.isDesc = !this.isDesc; //change the direction    \n    this.column = property;\n    this.direction = this.isDesc ? 1 : -1;\n  }\n\n  Searchtext() {\n    this.pointersData = this.saveFilter;\n\n    let tempFrustrations = this.pointersData.filter(\n      (item) => {\n        return (\n          (item.ProcessName !== null && item.ProcessName.toLowerCase().indexOf(this.searchtext.toLowerCase()) > -1) ||\n          (item.ActivityName !== null && item.ActivityName.toLowerCase().indexOf(this.searchtext.toLowerCase()) > -1)\n        );\n      }\n\n    );\n    this.pointersData = tempFrustrations;\n    if (this.pointersData.length == 0) {\n      // this.GetActivity();\n      this.isDisable = true;\n    } else {\n      this.isDisable = false;\n    }\n    if (this.searchtext === '') {\n      this.GetActivityIssues();\n      this.isDisable = false;\n    }\n  }\n\n\n}\n","import { Component, OnInit, Inject, AfterViewInit } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\nimport { ChartOptions, ChartType, ChartDataSets } from 'chart.js';\nimport { Label } from 'ng2-charts';\nimport * as c3 from 'c3';\nimport * as d3 from 'd3';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport htmlToImage from 'html-to-image';\nimport { Department } from '../departments/department.model';\nimport { ScoreCardTypeEnum } from '../performance-score-card/performance-score-card.model';\nimport { DepartmentService } from '../services/department.service';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n  selector: 'app-report-category',\n  templateUrl: './report-category.component.html',\n  // styleUrls: ['./report-category.component.scss'],\n  providers: [DorseyService],\n  inputs: ['dashboard', 'dashboardCat', 'dashboardTeamCat']\n})\nexport class ReportCategoryComponent implements OnInit {\n  departmentName: string;\n  departmentList: Array<Department> = [];\n  employeeDetails: any;\n  scoreCardTypes: string[] = [ScoreCardTypeEnum.Department, ScoreCardTypeEnum.Team];\n  selectedReportType: string;\n  toggleTeam: boolean = false;\n\n\n  pointerData: any;\n  frustrationData: any;\n  frustData = [];\n  frust = [];\n  view = {};\n  ProcessName = '';\n  SeverityName = '';\n  StatusName = '';\n  totalCount = 0;\n  dashboard = true;\n  searchtext: string;\n  disableSearch = false;\n\n  // tslint:disable-next-line:ban-types\n  dataSource: Object;\n  categories = [];\n  valueBar: (string | any[])[];\n  warningMsg = '';\n  frustrationbyCategory: any;\n\n  dashboardCat = true;\n  p: number = 1;\n  rowsOnPage = 5;\n  rowsOnPageSet = [];\n  rowCount: any;\n  dynamicRows = 5;\n  activityPaging = false;\n  metricList = [];\n  CompanyID: string;\n  isDisable = false;\n  saveFilter = [];\n  wrng: string;\n  UserTeamID: string;\n  teamData: any;\n  TeamID: any;\n  EmployeeID: string;\n  dashboardTeamCat: any;\n  tempTeam = [];\n  companyName: string;\n  TeamName: string;\n  headerDate = new Date();\n  employeeData: any;\n  copyDate: number;\n  isDesc: boolean = false;\n  column = \"\";\n  direction: number;\n  arrow = true;\n  selectedDepartmentId: number;\n  copyRight: string = copyRight;\n  constructor(private dorseyService: DorseyService,\n    private departmentService: DepartmentService, private dialog: MatDialog, private storage: LocalStorageService) {\n    this.metricList = [];\n    this.CompanyID = this.storage.retrieve('companyID');\n    this.EmployeeID = this.storage.retrieve('EmployeeID');\n    this.companyName = sessionStorage.getItem('loginCompanyName');\n    this.employeeDetails = this.storage.retrieve('employeeDetails');\n\n    if (this.EmployeeID.toString() === \"0\") {\n\n    }\n    else {\n      this.TeamID = this.storage.retrieve('TeamID');\n    }\n\n  }\n\n\n\n  ngOnInit() {\n\n\n    this.GetFrustrationType();\n\n    if (this.dashboardTeamCat !== undefined) {\n      this.TeamID = this.dashboardTeamCat;\n    }\n    else {\n      this.TeamID = 0;\n    }\n\n    if (this.employeeDetails) {\n      if ((this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) || (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team)) {\n        this.toggleTeam = true;\n        this.getTeamsByDepartmentId(this.employeeDetails.DepartmentID)\n      }\n      else {\n        if (!this.dashboardTeamCat) {\n\n          this.reportTypeChange(ScoreCardTypeEnum.Department)\n        }\n        else\n          this.getTeamsByDepartmentId(0)\n\n      }\n\n    }\n    else {\n      if (!this.dashboardTeamCat)\n\n        this.reportTypeChange(ScoreCardTypeEnum.Department)\n\n      else\n        this.getTeamsByDepartmentId(0)\n    }\n\n    this.copyDate = (new Date()).getFullYear();\n\n  }\n\n  teamChange(event): void {\n    this.searchtext = '';\n    this.selectedDepartmentId = 0;\n    this.TeamID = event.value;\n    let teamd = this.teamData.filter(x => x.TeamID === this.TeamID)\n    if (teamd.length > 0) {\n      this.TeamName = teamd[0].TeamName;\n    }\n    this.ConstructReport();\n  }\n  reportTypeChange(scoreCardType: string): void {\n    this.searchtext = '';\n    this.departmentList = [];\n    this.teamData = [];\n    this.selectedDepartmentId = 0;\n    this.selectedReportType = scoreCardType;\n    this.toggleTeam = scoreCardType === ScoreCardTypeEnum.Department ? false : true;\n\n    this.getDepartments();\n    this.getTeamsByDepartmentId(this.selectedDepartmentId);\n\n  }\n\n  departmentChange(selectedDepartmentId): void {\n    this.searchtext = '';\n    this.getTeamsByDepartmentId(selectedDepartmentId);\n    this.departmentName = this.departmentList.find(ent => ent.DepartmentID === selectedDepartmentId).DepartmentName;\n  }\n\n  private getDepartments(): void {\n    this.departmentService.getDepartments(Number(this.CompanyID)).subscribe(resp => {\n      this.departmentList = resp.Data;\n      if (this.employeeDetails) {\n\n        if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n          this.departmentList = this.departmentList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n        }\n        else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n          this.departmentList = this.departmentList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n          this.getTeamsByDepartmentId(this.employeeDetails.DepartmentID);\n        }\n\n      }\n      this.departmentList.splice(0, 0, { DepartmentID: 0, DepartmentName: 'Aggregate Report', DepartmentDescription: '0', CompanyID: Number(this.CompanyID), CreatedBy: '', UpdatedBy: '' });\n    });\n  }\n\n  private getTeamsByDepartmentId(selectedDepartmentId): void {\n    this.dorseyService.GetTeam(this.CompanyID.toString()).subscribe(resp => {\n      var companyTeamList = JSON.parse(resp['_body']);\n      this.teamData = companyTeamList;\n\n      if (this.employeeDetails && companyTeamList) {\n        if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n          this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n        }\n        else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n          this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID);\n          this.selectedDepartmentId = this.teamData[0].DepartmentID;\n          this.TeamID = this.teamData[0].TeamID;\n        }\n        else {\n          if (!selectedDepartmentId) {\n            this.selectedDepartmentId = 0;\n            this.teamData = companyTeamList;\n          }\n          else if (selectedDepartmentId == 0) {\n            this.teamData = companyTeamList;\n          }\n          else {\n            this.teamData = this.teamData.filter(ent => ent.DepartmentID === selectedDepartmentId);\n          }\n\n        }\n      }\n      else {\n        if (selectedDepartmentId == 0)\n          this.teamData = companyTeamList;\n        else\n          this.teamData = companyTeamList.filter(ent => ent.DepartmentID === selectedDepartmentId);\n      }\n\n      if (this.dashboardTeamCat != undefined) {\n        this.TeamID = this.dashboardTeamCat;\n      }\n      else if (this.employeeDetails && this.employeeDetails.IsEmployeeLoginLevel === EmployeeLoginLevel.Team) {\n        this.TeamID = this.TeamID;\n      }\n      else {\n        this.TeamID = 0;\n      }\n\n      this.dorseyService.GetPointer(this.CompanyID).subscribe(pointer => {\n        this.pointerData = JSON.parse(pointer['_body']);\n        if (this.TeamID == 0) {\n          this.teamData = this.teamData.filter(entity1 => this.pointerData.find(entity2 => entity1.TeamID == entity2.TeamID && entity2.PointerTypeID == 1));\n          this.teamData.splice(0, 0, { TeamID: 0, TeamName: 'Aggregate Report' });\n        }\n        this.ConstructReport();\n      });\n\n    });\n  }\n\n  sort(property) {\n    this.arrow = !this.arrow;\n    this.isDesc = !this.isDesc; //change the direction\n    this.column = property;\n    this.direction = this.isDesc ? 1 : -1;\n  }\n\n\n  ConstructReport() {\n    this.metricList = [];\n    this.frust = [];\n    this.frustrationData = [];\n    this.categories = [];\n    this.rowsOnPageSet = [];\n    this.rowsOnPage = 5;\n    this.dynamicRows = 5;\n    this.warningMsg = '';\n\n    var values = [];\n    var perito = [];\n    var sum = 0;\n    // let procData: any;\n    this.dorseyService.GetPointer(this.CompanyID).subscribe(pointer => {\n      this.pointerData = JSON.parse(pointer['_body']);\n\n      if (this.TeamID == 0)\n        this.pointerData = this.pointerData.filter(entity1 => this.teamData.find(entity2 => entity1.TeamID == entity2.TeamID) && entity1.PointerTypeID == 1);\n      else {\n        this.pointerData = this.pointerData.filter(entity1 => entity1.TeamID == this.TeamID && entity1.PointerTypeID == 1);\n      }\n\n      this.totalCount = this.pointerData.length;\n\n      this.dorseyService.GetFrustrationType('1', this.CompanyID).subscribe(frustration => {\n        this.frustrationData = JSON.parse(frustration['_body']);\n        if (this.totalCount) {\n          for (let i = 0; i < this.frustrationData.length; i++) {\n            let data = this.pointerData.filter(x => x.PointerTypeID === 1 && x.FrustrationsTypeID === this.frustrationData[i].FrustrationsTypeID);\n\n            if (data.length > 0) {\n              //   this.totalCount = data.length;\n\n              this.frustData.push(data);\n              this.view['CategoryName'] = this.frustrationData[i].FrustrationsTypeName;\n              this.categories[this.frustrationData[i].FrustrationsTypeName] = data.length;\n              for (let li = 0; li < data.length; li++) {\n                this.metricList.push(data[li]);\n              }\n              // values.push(data.length);\n              sum = sum + data.length;\n\n              this.frust.push({\n                data: data,\n                label: this.frustrationData[i].FrustrationsTypeName,\n                value: data.length\n              });\n\n              this.frust.sort(function (obj1, obj2) {\n\n                return obj2.value - obj1.value;\n              });\n            }\n\n\n          }\n        } else {\n          this.warningMsg = 'No data available';\n          if (!this.metricList.length) {\n            this.isDisable = false;\n            this.disableSearch = false;\n          }\n          else {\n            this.isDisable = true;\n            this.disableSearch = true;\n          }\n          return;\n        }\n        if (this.metricList.length === 0) {\n          this.isDisable = false;\n          this.disableSearch = false;\n          return;\n        }\n        else {\n          this.isDisable = true;\n          this.disableSearch = true;\n\n        }\n        let sortOrder = this.sortByValue(this.categories);\n        let perVal = 0;\n        this.categories = [];\n\n        for (let v = 0; v < sortOrder.length; v++) {\n\n          values.push(sortOrder[v][1]);\n\n          this.categories.push(sortOrder[v][0])\n          perVal = perVal + sortOrder[v][1];\n          perito.push((perVal / sum));\n        }\n\n        var obj = {\n          'Frustration Count': values,\n          'Cumulative percentage': perito\n        };\n\n        let chart = c3.generate({\n          bindto: '#chartcategory',\n          data: {\n            json: obj,\n            axes: {\n\n              'Cumulative percentage': 'y2'\n            },\n            type: 'bar',\n            types: {\n\n              'Cumulative percentage': 'line',\n\n            }, groups: [\n              ['Frustrations Count', 'Cumulative percentage']\n            ]\n\n\n          },\n\n          title: {\n            text: \"Frustration Categories\",\n            padding: {\n              top: 20,\n              right: 20,\n              bottom: 40,\n              left: 50\n            }\n          },\n          color: {\n            pattern: ['#4aabe7', '#d55632']\n          },\n          legend: {\n            show: true,\n            position: \"right\"\n\n          },\n\n          axis: {\n            x: {\n              type: 'category',\n              //   label: 'Frustration Categories',\n              // label: {\n              //   text: 'Frustration Categories',\n              //   position: 'outer-center'\n              // },\n              categories: this.categories,\n              tick: {\n                rotate: 50,\n                multiline: false\n\n              },\n\n\n              height: 100,\n\n            },\n            y: {\n              //max :10,\n              label: 'Frustrations Count',\n              tick: {\n                format: d3.format('d'),\n                values: d3.ticks(0, sortOrder[0][1], sortOrder[0][1])\n                //values: d3.ticks(0,values[0],values[0]/5)\n              }\n            },\n            y2: {\n              show: true,\n              label: 'Cumulative percentage',\n              max: 1,\n              min: 0,\n              padding: { top: 3, bottom: 0 },\n              tick: {\n                format: d3.format(',.0%')\n              }\n\n            },\n\n          }\n\n        });\n        this.rowCount = this.metricList.length;\n        let tempmetricList = this.metricList;\n        if (this.metricList.length === 0) {\n          this.activityPaging = false;\n        }\n        else {\n          this.saveFilter = JSON.parse(JSON.stringify(this.metricList));\n\n          this.activityPaging = true;\n          while (this.dynamicRows < this.rowCount) {\n            this.rowsOnPageSet.push(this.dynamicRows);\n            this.dynamicRows = this.dynamicRows + 10;\n          }\n          if (!this.rowsOnPageSet.includes(this.rowCount)) this.rowsOnPageSet.push(this.rowCount);\n          if (this.rowsOnPageSet.length > 0) {\n            if (this.rowsOnPageSet[0] <= 10)\n              this.rowsOnPage = this.rowsOnPageSet[0];\n          }\n        }\n\n      });\n\n    });\n  }\n  GetFrustrationType() {\n\n    this.dorseyService.GetPointer(this.CompanyID).subscribe(pointer => {\n      this.pointerData = JSON.parse(pointer['_body']);\n\n    });\n  }\n  Searchtext() {\n    this.frustrationbyCategory = this.saveFilter;\n\n    let tempfrustrationbycategory = this.frustrationbyCategory.filter(\n      (item) => {\n        return (\n          (item.ProcessName !== null && item.ProcessName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.ActivityName !== null && item.ActivityName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.FrustrationsTypeName !== null && item.FrustrationsTypeName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.Subject !== null && item.Subject.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.Description !== null && item.Description.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.StatusName !== null && item.StatusName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)) ||\n          (item.SeverityName !== null && item.SeverityName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.ProjectName !== null && item.ProjectName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n\n          || (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1);\n      }\n\n    );\n    this.metricList = tempfrustrationbycategory;\n    if (this.metricList.length == 0) {\n      setTimeout(() => {\n        this.wrng = \"No data available\";\n      }, 100);\n      this.isDisable = false;\n\n    } else {\n      this.isDisable = true;\n    }\n    if (this.searchtext === '') {\n      this.frustrationbyCategory = this.saveFilter;\n      this.dynamicRows = 5;\n      this.rowsOnPageSet = [];\n      this.rowCount = this.frustrationbyCategory.length;\n      while (this.dynamicRows < this.rowCount) {\n        this.rowsOnPageSet.push(this.dynamicRows);\n        this.dynamicRows = this.dynamicRows + 5;\n      }\n      if (!this.rowsOnPageSet.includes(this.rowCount))\n        this.rowsOnPageSet.push(this.rowCount);\n      if (this.rowsOnPageSet) {\n\n        this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n      this.isDisable = true;\n    } else {\n\n      this.rowCount = tempfrustrationbycategory.length;\n      this.dynamicRows = 5;\n      this.rowsOnPageSet = [];\n      while (this.dynamicRows < this.rowCount) {\n        this.rowsOnPageSet.push(this.dynamicRows);\n        this.dynamicRows = this.dynamicRows + 5;\n      }\n      if (!this.rowsOnPageSet.includes(this.rowCount)) {\n        this.rowsOnPageSet.push(this.rowCount);\n        if (this.rowsOnPageSet)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n\n      if (this.rowsOnPageSet.length === 1) {\n        if (this.rowsOnPageSet[0] <= 5)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n    }\n  }\n\n\n  exportAsXLSX(): void {\n    let allData = JSON.parse(JSON.stringify(this.metricList));\n\n    for (let i = 0; i < allData.length; i++) {\n      allData[i][\" No. \"] = i + 1;\n      if (this.selectedReportType === ScoreCardTypeEnum.Department) {\n        allData[i][\"Department\"] = this.metricList[i].DepartmentName;\n      }\n      allData[i].Team = this.metricList[i].TeamName;\n      allData[i].Process = this.metricList[i].ProcessName;\n      allData[i].Activity = this.metricList[i].ActivityName;\n\n      allData[i][\" Type \"] = this.metricList[i].FrustrationsTypeName;\n      allData[i][\" Frustration \"] = this.metricList[i].Subject;\n      allData[i][\" Description \"] = this.metricList[i].Description;\n      allData[i].Status = this.metricList[i].StatusName;\n\n      allData[i].Severity = this.metricList[i].SeverityName;\n      allData[i].Project = this.metricList[i].ProjectName;\n\n      delete (allData[i].DepartmentName);\n      delete (allData[i].EmployeeName);\n      delete (allData[i].VersionID);\n      delete (allData[i].GoalID);\n      delete (allData[i].GoalName);\n      delete (allData[i].GreenRange);\n      delete (allData[i].RedRange);\n\n      delete (allData[i].YellowRange);\n      delete (allData[i].Source);\n\n\n      delete (allData[i].ProcessName);\n      delete (allData[i].ActivityName);\n\n      delete (allData[i].TeamName);\n      delete (allData[i].FrustrationsTypeName);\n\n      delete (allData[i].Subject);\n      delete (allData[i].Description);\n\n      delete (allData[i].StatusName);\n      delete (allData[i].SeverityName);\n      delete (allData[i].ProjectName);\n\n\n      delete (allData[i].PointerID);\n      delete (allData[i].ActivityID);\n      delete (allData[i].PointerTypeID);\n      delete (allData[i].CompanyID);\n      delete (allData[i].EmployeeID);\n      delete (allData[i].UOM);\n      delete (allData[i].Target);\n      delete (allData[i].Type);\n      delete (allData[i].StatusID);\n\n      delete (allData[i].SeverityID);\n      delete (allData[i].ProcessID);\n      delete (allData[i].DepartmentID);\n      delete (allData[i].TeamID);\n\n\n      delete (allData[i].FrustrationsTypeID);\n      delete (allData[i].Date);\n      delete (allData[i].IsActive);\n      delete (allData[i].CreatedDate);\n\n      delete (allData[i].CreatedBy);\n      delete (allData[i].UpdatedDate);\n      delete (allData[i].UpdatedBy);\n      delete (allData[i].ProjectID);\n\n\n    }\n\n    let allData1 = JSON.parse(JSON.stringify(this.frust));\n\n    for (let i = 0; i < allData1.length; i++) {\n      // this.frust[i].label = this.frust[i].value;\n      allData1[i].label = this.frust[i].label;\n      allData1[i].value = this.frust[i].value;\n      delete (allData1[i].data);\n    }\n\n    let Cumulative = document.getElementById('chartcategory').querySelector('svg').querySelectorAll('.c3-target-Cumulative-percentage');\n    let Cumulativecircle = document.getElementById('chartcategory').querySelector('svg').querySelectorAll('.c3-circle');\n\n    let circle = Array.from(Cumulativecircle);\n    circle.forEach(function (element) {\n      element.setAttribute(\"style\", \"fill:#e75632\")\n    })\n\n    let cumulativegraph = Array.from(Cumulative)\n    cumulativegraph.forEach(function (element) {\n      element.setAttribute(\"style\", \"fill:none\")\n    })\n\n    let image = '';\n\n    htmlToImage.toPng(document.getElementById('chartcategory'),)\n      .then(function (dataUrl) {\n        var img = new Image();\n        img.src = dataUrl;\n\n        image = dataUrl;\n\n\n      });\n    setTimeout(() => {\n\n    }, 500);\n\n\n    let name: any;\n    if (this.selectedReportType == ScoreCardTypeEnum.Department && this.departmentName) {\n      name = this.departmentName;\n    } else if ((!this.selectedReportType || this.selectedReportType == ScoreCardTypeEnum.Team) && this.TeamName) {\n      name = this.TeamName;\n    } else {\n      name = \"Aggregate Report\";\n    }\n    setTimeout(() => {\n      this.dorseyService.generateReportExcel(allData1, allData, image, this.companyName + '_Frustrations report by type' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Frustrations report by type', \"Company: \" + this.companyName, this.selectedReportType ? this.selectedReportType + \": \" + name : 'Team' + \": \" + name, \"Frustrations report by type Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n    }, 2000);\n\n  }\n\n  sortByValue(jsObj) {\n    var items = Object.keys(jsObj).map(function (key) {\n      return [key, jsObj[key]];\n    });\n\n    // Sort the array based on the second element\n    items.sort(function (first, second) {\n      return second[1] - first[1];\n    });\n    return items;\n\n  }\n  getData(data) {\n\n    const dialogRef = this.dialog.open(DialogComponent, {\n      width: '650px',\n      data: { data: data }\n    });\n\n    dialogRef.afterClosed().subscribe(result => {\n\n    });\n\n  }\n}\n\n\n@Component({\n  selector: 'app-dialog',\n  templateUrl: './dialog.html',\n  // styleUrls: ['dialog.css']\n})\nexport class DialogComponent implements OnInit {\n\n  data: any;\n  constructor(\n    public dialogRef: MatDialogRef<DialogComponent>,\n    @Inject(MAT_DIALOG_DATA) public dialogData: any) { }\n\n  ngOnInit() {\n    this.data = this.dialogData.data;\n  }\n\n  close(): void {\n    this.dialogRef.close();\n  }\n\n}\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { ChartOptions, ChartType, ChartDataSets } from 'chart.js';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\nimport * as c3 from 'c3';\nimport * as d3 from 'd3';\nimport htmlToImage from 'html-to-image';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n  selector: 'app-report-hipriority',\n  templateUrl: './report-hipriority.component.html',\n  // styleUrls: ['./report-hipriority.component.scss'],\n  providers: [DorseyService],\n  inputs: ['dashboardSeverity', 'dashboardSev', 'dashboardTeamSeverity']\n})\n\nexport class ReportHipriorityComponent implements OnInit {\n  copyRight: string = copyRight;\n  employeeDetails: any;\n  wrng: any;\n  searchtext: string = '';\n  severityData: any;\n  pointerData: any;\n  CompanyID: string;\n  totalCount = 0;\n  frustData = [];\n  frust = [];\n  view = {};\n  categories = [];\n  metricList = [];\n  warningMsg = '';\n  isDisable = false;\n  disableSearch = false;\n  p: number = 1;\n  rowsOnPage = 5;\n  rowsOnPageSet = [];\n  rowCount: any;\n  dynamicRows = 5;\n  activityPaging = false;\n  saveFilter = [];\n  dashboardSeverity = true;\n  dashboardSev = true;\n  metricbykeyprocess = [];\n  UserTeamID: string;\n  teamData: any;\n  TeamID: any;\n  EmployeeID: string;\n  dashboardTeamSeverity: any;\n  tempTeam = [];\n  companyName: string;\n  headerDate = new Date();\n  TeamName: string;\n  employeeData: any;\n  copyDate: number;\n  isDesc: boolean = false;\n  column = \"\";\n  direction: number;\n  arrow = true;\n\n  constructor(private dorsey: DorseyService, private storage: LocalStorageService, private dialog: MatDialog) {\n    this.CompanyID = this.storage.retrieve('companyID');\n    this.EmployeeID = this.storage.retrieve('EmployeeID');\n    this.companyName = this.storage.retrieve('LoginCompanyName');\n    this.employeeDetails = this.storage.retrieve('employeeDetails');\n    if (this.EmployeeID.toString() === \"0\") {\n\n    }\n    else {\n      this.TeamID = this.storage.retrieve('TeamID');\n    }\n  }\n\n  ngOnInit() {\n    this.GetSeverity();\n    this.GetTeam();\n    if (this.employeeDetails) {\n      this.EmployeeID = this.employeeDetails.EmployeeID;\n      this.TeamID = this.employeeDetails.TeamID;\n    }\n    else {\n      this.EmployeeID = '0';\n      this.TeamID = 0;\n    }\n    this.copyDate = (new Date()).getFullYear();\n  }\n\n  GetSeverity() {\n    this.dorsey.GetSeverity().subscribe(severity => {\n      this.severityData = JSON.parse(severity['_body']);\n    });\n  }\n  sortByValue(jsObj) {\n    var items = Object.keys(jsObj).map(function (key) {\n      return [key, jsObj[key]];\n    });\n\n    // Sort the array based on the second element\n    items.sort(function (first, second) {\n      return second[1] - first[1];\n    });\n    return items;\n  }\n\n  sort(property) {\n    this.arrow = !this.arrow;\n    this.isDesc = !this.isDesc; //change the direction\n    this.column = property;\n    this.direction = this.isDesc ? 1 : -1;\n  }\n\n  GetSelectedReport(event) {\n    this.searchtext = '';\n    this.TeamID = event.value;\n    let teamd = this.teamData.filter(x => x.TeamID === this.TeamID)\n    if (teamd.length > 0) {\n      this.TeamName = teamd[0].TeamName;\n    }\n    this.ConstructReport();\n  }\n\n  GetTeam() {\n    this.TeamName = '';\n    this.dorsey.GetTeam(this.CompanyID).subscribe(team => {\n      team = JSON.parse(team['_body']);\n      this.teamData = team;\n      this.dorsey.GetPointer(this.CompanyID).subscribe(frustrations => {\n        frustrations = JSON.parse(frustrations['_body']);\n        this.pointerData = frustrations;\n        if (this.employeeDetails) {\n          if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n            this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n\n          }\n          else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n            this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID);\n            this.TeamID = this.teamData[0].TeamID;\n          }\n        }\n        if (this.dashboardTeamSeverity != undefined) {\n          this.TeamID = this.dashboardTeamSeverity;\n        }\n        else if (this.employeeDetails && this.employeeDetails.IsEmployeeLoginLevel === EmployeeLoginLevel.Team) {\n          this.TeamID = this.TeamID;\n        }\n        else {\n          this.TeamID = 0;\n        }\n        if (this.TeamID == 0) {\n          this.teamData = this.teamData.filter(entity1 => this.pointerData.find(entity2 => entity1.TeamID == entity2.TeamID && entity2.PointerTypeID == 1));\n        }\n        if (this.teamData.length > 0 && !this.TeamID) {\n          this.teamData.splice(0, 0, { TeamID: 0, TeamName: 'Aggregate Report' });\n        }\n        this.ConstructReport();\n\n      });\n    });\n  }\n  ConstructReport() {\n    this.metricList = [];\n    this.frustData = [];\n    this.categories = [];\n    this.frust = [];\n    this.rowsOnPageSet = [];\n    this.rowsOnPage = 5;\n    this.dynamicRows = 5;\n    this.warningMsg = '';\n    var sum = 0;\n    this.dorsey.GetPointer(this.CompanyID).subscribe(pointer => {\n      this.pointerData = JSON.parse(pointer['_body']);\n      if (this.TeamID == 0)\n        this.pointerData = this.pointerData.filter(entity1 => this.teamData.find(entity2 => entity1.TeamID == entity2.TeamID) && entity1.PointerTypeID == 1);\n      else {\n        this.pointerData = this.pointerData.filter(entity1 => entity1.TeamID == this.TeamID && entity1.PointerTypeID == 1);\n      }\n      this.totalCount = this.pointerData.length;\n      if (this.totalCount) {\n        for (let i = 0; i < this.severityData.length; i++) {\n          let data = this.pointerData.filter(x => x.SeverityID === this.severityData[i].SeverityID);\n          if (data.length > 0) {\n            this.frustData.push(data);\n            this.view['CategoryName'] = this.severityData[i].SeverityName;\n            this.categories[this.severityData[i].SeverityName] = data.length;\n            for (let li = 0; li < data.length; li++) {\n              this.metricList.push(data[li]);\n            }\n            sum = sum + data.length;\n            this.frust.push({\n              data: data,\n              label: this.severityData[i].SeverityName,\n              value: data.length\n            });\n            this.frust.sort(function (obj1, obj2) {\n              return obj2.value - obj1.value;\n            });\n          }\n        }\n      }\n      else {\n        this.warningMsg = 'No data available';\n        if (!this.metricList.length) {\n          this.isDisable = false;\n          this.disableSearch = false;\n        }\n        else {\n          this.isDisable = true;\n          this.disableSearch = true;\n        }\n        return;\n      }\n      if (this.metricList.length === 0) {\n        this.isDisable = false;\n        this.disableSearch = false;\n        return;\n      }\n      else {\n        this.isDisable = true;\n        this.disableSearch = true;\n      }\n      let sortOrder = [];\n      sortOrder = this.sortByValue(this.categories);\n\n      let chart = c3.generate({\n        bindto: '#chatSeverity',//\n\n        data: {\n          json: this.categories,\n          type: 'pie',\n\n        },\n        color: {\n          pattern: ['#9f3e23', '#d55632', '#f4954f', '#f4c04f']\n        },\n        pie: {\n          label: {\n            format: function (value, ratio, id) {\n              return value;\n            }\n          }\n        },\n      });\n\n      setTimeout(function () {\n        chart.data.colors({ Critical: '#9f3e23', High: '#d55632', Medium: '#f4954f', Low: '#f4c04f' });\n      }, 0);\n\n      this.rowCount = this.metricList.length;\n      let tempmetricList = this.metricList;\n      if (this.metricList.length === 0) {\n        this.activityPaging = false;\n      }\n      else {\n        this.saveFilter = JSON.parse(JSON.stringify(this.metricList));\n        this.activityPaging = true;\n        while (this.dynamicRows < this.rowCount) {\n          this.rowsOnPageSet.push(this.dynamicRows);\n          this.dynamicRows = this.dynamicRows + 10;\n        }\n        if (!this.rowsOnPageSet.includes(this.rowCount)) this.rowsOnPageSet.push(this.rowCount);\n        if (this.rowsOnPageSet.length > 0) {\n          if (this.rowsOnPageSet[0] <= 10)\n            this.rowsOnPage = this.rowsOnPageSet[0];\n        }\n      }\n    });\n  }\n  Searchtext() {\n    this.metricbykeyprocess = this.saveFilter;\n    let tempmetricbykeyprocess = this.metricbykeyprocess.filter(\n      (item) => {\n        return (\n          (item.ProcessName !== null && item.ProcessName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.ActivityName !== null && item.ActivityName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.FrustrationsTypeName !== null && item.FrustrationsTypeName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.Subject !== null && item.Subject.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.Description !== null && item.Description.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.StatusName !== null && item.StatusName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.SeverityName !== null && item.SeverityName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.ProjectName !== null && item.ProjectName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1))\n      }\n    );\n    this.metricList = tempmetricbykeyprocess;\n    if (this.metricList.length == 0) {\n      setTimeout(() => {\n        this.wrng = \"No data available\";\n      }, 100);\n      this.isDisable = false;\n      return;\n    } else {\n      this.isDisable = true;\n    }\n    if (this.searchtext === '') {\n      this.metricbykeyprocess = this.saveFilter;\n      this.dynamicRows = 5;\n      this.rowsOnPageSet = [];\n      this.rowCount = this.metricbykeyprocess.length;\n      while (this.dynamicRows < this.rowCount) {\n        this.rowsOnPageSet.push(this.dynamicRows);\n        this.dynamicRows = this.dynamicRows + 5;\n      }\n      if (!this.rowsOnPageSet.includes(this.rowCount))\n        this.rowsOnPageSet.push(this.rowCount);\n      if (this.rowsOnPageSet) {\n        this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n      this.isDisable = true;\n    } else {\n      this.rowCount = tempmetricbykeyprocess.length;\n      this.dynamicRows = 5;\n      this.rowsOnPageSet = [];\n      while (this.dynamicRows < this.rowCount) {\n        this.rowsOnPageSet.push(this.dynamicRows);\n        this.dynamicRows = this.dynamicRows + 5;\n      }\n      if (!this.rowsOnPageSet.includes(this.rowCount)) {\n        this.rowsOnPageSet.push(this.rowCount);\n        if (this.rowsOnPageSet)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n      if (this.rowsOnPageSet.length === 1) {\n        if (this.rowsOnPageSet[0] <= 5)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n    }\n  }\n  exportAsXLSX(): void {\n    let allData = JSON.parse(JSON.stringify(this.metricList));\n    for (let i = 0; i < allData.length; i++) {\n      allData[i][\" No. \"] = i + 1;\n      allData[i].Team = this.metricList[i].TeamName;\n      allData[i].Process = this.metricList[i].ProcessName;\n      allData[i].Activity = this.metricList[i].ActivityName;\n      allData[i][\" Type \"] = this.metricList[i].FrustrationsTypeName;\n      allData[i][\" Frustration \"] = this.metricList[i].Subject;\n      allData[i][\" Description \"] = this.metricList[i].Description;\n      allData[i].Status = this.metricList[i].StatusName;\n      allData[i].Severity = this.metricList[i].SeverityName;\n      allData[i].Project = this.metricList[i].ProjectName;\n\n      delete (allData[i].DepartmentName);\n      delete (allData[i].EmployeeName);\n      delete (allData[i].VersionID);\n      delete (allData[i].GoalID);\n      delete (allData[i].GoalName);\n\n      delete (allData[i].GreenRange);\n      delete (allData[i].RedRange);\n      delete (allData[i].Source);\n      delete (allData[i].YellowRange);\n      delete (allData[i].ProcessName);\n      delete (allData[i].ActivityName);\n      delete (allData[i].TeamName);\n      delete (allData[i].FrustrationsTypeName);\n      delete (allData[i].Subject);\n      delete (allData[i].Description);\n      delete (allData[i].StatusName);\n      delete (allData[i].SeverityName);\n      delete (allData[i].ProjectName);\n      delete (allData[i].PointerID);\n      delete (allData[i].ActivityID);\n      delete (allData[i].PointerTypeID);\n      delete (allData[i].CompanyID);\n      delete (allData[i].EmployeeID);\n      delete (allData[i].UOM);\n      delete (allData[i].Target);\n      delete (allData[i].Type);\n      delete (allData[i].StatusID);\n      delete (allData[i].SeverityID);\n      delete (allData[i].ProcessID);\n      delete (allData[i].DepartmentID);\n      delete (allData[i].TeamID);\n      delete (allData[i].FrustrationsTypeID);\n      delete (allData[i].Date);\n      delete (allData[i].IsActive);\n      delete (allData[i].CreatedDate);\n\n      delete (allData[i].CreatedBy);\n      delete (allData[i].UpdatedDate);\n      delete (allData[i].UpdatedBy);\n      delete (allData[i].ProjectID);\n    }\n\n    let allData1 = JSON.parse(JSON.stringify(this.frust));\n    for (let i = 0; i < allData1.length; i++) {\n      allData1[i].label = this.frust[i].label;\n      allData1[i].value = this.frust[i].value;\n      delete (allData1[i].data);\n    }\n    var node = document.getElementById('chatSeverity');\n    let image\n    htmlToImage.toPng(node)\n      .then(function (dataUrl) {\n        var img = new Image();\n        img.src = dataUrl;\n        image = dataUrl;\n      });\n    setTimeout(() => {\n\n    }, 500);\n    let name: any;\n    if (this.TeamName) {\n      name = this.TeamName;\n    }\n    else {\n      name = \"Aggregate Report\";\n    }\n    setTimeout(() => {\n      this.dorsey.generateReportExcel(allData1, allData, image, this.companyName + '_Frustrations severity' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Frustrations severity', \"Company: \" + this.companyName, \"Team: \" + name, \"Frustrations severity Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n    }, 2000);\n\n  }\n\n  getData(data) {\n    const dialogRef = this.dialog.open(ReportSeverityDialogComponent, {\n      width: '650px',\n      data: { data: data }\n    });\n    dialogRef.afterClosed().subscribe(result => {\n    });\n  }\n}\n\n@Component({\n  selector: 'app-dialog',\n  templateUrl: './dialog.html',\n  // styleUrls: ['dialog.css']\n})\nexport class ReportSeverityDialogComponent implements OnInit {\n\n  data: any;\n  constructor(\n    public dialogRef: MatDialogRef<ReportSeverityDialogComponent>,\n    @Inject(MAT_DIALOG_DATA) public dialogData: any) { }\n  ngOnInit() {\n    this.data = this.dialogData.data;\n  }\n  close(): void {\n    this.dialogRef.close();\n  }\n}\n","import { Component, OnInit, Inject, ElementRef, ViewChild } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\nimport * as c3 from 'c3';\nimport * as d3 from 'd3';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport htmlToImage from 'html-to-image';\nimport { toBase64String } from '@angular/compiler/src/output/source_map';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model'\nimport { ScoreCardTypeEnum } from '../performance-score-card/performance-score-card.model';\nimport { Department } from '../departments/department.model';\nimport { DepartmentService } from '../services/department.service';\nimport { copyRight } from '../copyRight.model';\n@Component({\n  selector: 'app-report-metric-process',\n  templateUrl: './report-metric-process.component.html',\n  // styleUrls: ['./report-metric-process.component.scss'],\n  providers: [DorseyService],\n  inputs: ['dashboardMetric', 'dashboardMe', 'dashboardTeam']\n\n})\nexport class ReportMetricProcessComponent implements OnInit {\n  copyRight: string = copyRight;\n  isDisable = false;\n  disableSearch = false;\n  processData: any;\n  pointerData: any;\n  frustrationData: any;\n  frustData = [];\n  frust = [];\n  view = {};\n  dataSource: Object;\n  searchtext: string = '';\n  totalCount = 0;\n  dashboardMetric = true;\n  dashboardMe = true;\n  categories = [];\n  warningMsg = '';\n  p: number = 1;\n  rowsOnPage = 5;\n  rowsOnPageSet = [];\n  rowCount: any;\n  dynamicRows = 5;\n  activityPaging = false;\n\n  metricList = [];\n  CompanyID: string;\n  selectedDepartmentId: number;\n  saveFilter: any;\n  metricbykeyprocess: any;\n  wrng: any;\n  UserTeamID: string;\n  teamData: any;\n  EmployeeID: string;\n  TeamID: any;\n  dashboardTeam: any;\n  tempTeam = [];\n  companyName: string;\n  TeamName: string;\n  headerDate = new Date();\n  employeeData: any;\n  copyDate: number;\n  isDesc: boolean = false;\n  column = \"\";\n  direction: number;\n  arrow = true;\n  loginCompanyName: string;\n  image: any;\n  imageurl: string;\n  departmentName: string;\n\n  departmentList: Array<Department> = [];\n  employeeDetails: any;\n  scoreCardTypes: string[] = [ScoreCardTypeEnum.Department, ScoreCardTypeEnum.Team];\n  selectedReportType: string;\n  toggleTeam: boolean = false;\n  constructor(\n    private dorseyService: DorseyService,\n    private dialog: MatDialog,\n    private storage: LocalStorageService,\n    private departmentService: DepartmentService) {\n\n    this.loginCompanyName = sessionStorage.getItem('loginCompanyName');\n    this.metricList = [];\n    this.EmployeeID = this.storage.retrieve('EmployeeID');\n    this.companyName = this.storage.retrieve('LoginCompanyName');\n    this.employeeDetails = this.storage.retrieve('employeeDetails');\n    if (this.EmployeeID === undefined) {\n      this.EmployeeID = \"0\";\n    }\n    if (this.EmployeeID.toString() === \"0\") {\n\n    }\n    else {\n      this.TeamID = this.storage.retrieve('TeamID');\n    }\n  }\n\n\n  ngOnInit() {\n    this.CompanyID = this.storage.retrieve('companyID');\n    this.warningMsg = '';\n    if (this.employeeDetails) {\n      if ((this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) || (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team)) {\n        this.toggleTeam = true;\n        this.getTeamsByDepartmentId(this.employeeDetails.DepartmentID)\n      }\n      else {\n        if (!this.dashboardTeam)\n          this.reportTypeChange(ScoreCardTypeEnum.Department)\n        else\n          this.getTeamsByDepartmentId(0)\n      }\n    }\n\n    else {\n      if (!this.dashboardTeam)\n        this.reportTypeChange(ScoreCardTypeEnum.Department)\n      else\n        this.getTeamsByDepartmentId(0)\n    }\n    this.copyDate = (new Date()).getFullYear();\n  }\n  private getDepartments(): void {\n    this.departmentService.getDepartments(Number(this.CompanyID)).subscribe(resp => {\n      this.departmentList = resp.Data;\n      if (this.employeeDetails) {\n\n        if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n          this.departmentList = this.departmentList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n        }\n        else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n          this.departmentList = this.departmentList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n          this.getTeamsByDepartmentId(this.employeeDetails.DepartmentID);\n        }\n      }\n      this.departmentList.splice(0, 0, { DepartmentID: 0, DepartmentName: 'Aggregate Report', DepartmentDescription: '0', CompanyID: Number(this.CompanyID), CreatedBy: '', UpdatedBy: '' });\n    });\n  }\n  private getTeamsByDepartmentId(selectedDepartmentId): void {\n    this.dorseyService.GetTeam(this.CompanyID.toString()).subscribe(resp => {\n      var companyTeamList = JSON.parse(resp['_body']);\n      this.teamData = companyTeamList;\n      if (this.employeeDetails && companyTeamList) {\n        if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n          this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n        }\n        else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n          this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID);\n          this.selectedDepartmentId = this.teamData[0].DepartmentID;\n          this.TeamID = this.teamData[0].TeamID;\n          this.TeamName = this.teamData[0].TeamName;\n        }\n        else {\n          if (!selectedDepartmentId) {\n            this.selectedDepartmentId = 0;\n            this.teamData = companyTeamList;\n          }\n          else if (selectedDepartmentId == 0) {\n            this.teamData = companyTeamList;\n          }\n          else {\n            this.teamData = this.teamData.filter(ent => ent.DepartmentID === selectedDepartmentId);\n          }\n        }\n      }\n      else {\n        if (selectedDepartmentId == 0)\n          this.teamData = companyTeamList;\n        else\n          this.teamData = companyTeamList.filter(ent => ent.DepartmentID === selectedDepartmentId);\n      }\n\n      if (this.dashboardTeam !== undefined) {\n        this.TeamID = this.dashboardTeam;\n      }\n      else if (this.employeeDetails && this.employeeDetails.IsEmployeeLoginLevel === EmployeeLoginLevel.Team) {\n        this.TeamID = this.TeamID;\n      }\n      else {\n        this.TeamID = 0;\n      }\n\n      this.dorseyService.GetPointer(this.CompanyID).subscribe(pointer => {\n        this.pointerData = JSON.parse(pointer['_body']);\n        if (this.TeamID == 0) {\n          this.teamData = this.teamData.filter(entity1 => this.pointerData.find(entity2 => entity1.TeamID == entity2.TeamID && entity2.PointerTypeID == 2));\n          this.teamData.splice(0, 0, { TeamID: 0, TeamName: 'Aggregate Report' });\n        }\n        this.ConstructReport();\n      });\n    });\n  }\n  sort(property) {\n    this.arrow = !this.arrow;\n    this.isDesc = !this.isDesc; //change the direction\n    this.column = property;\n    this.direction = this.isDesc ? 1 : -1;\n  }\n  ConstructReport() {\n    this.metricList = [];\n    this.frustData = [];\n    this.categories = [];\n    this.frust = [];\n    this.rowsOnPageSet = [];\n    this.rowsOnPage = 5;\n    this.dynamicRows = 5;\n    this.warningMsg = '';\n    var values = [];\n    var perito = [];\n    var sum = 0;\n    this.dorseyService.GetPointer(this.CompanyID).subscribe(pointer => {\n      this.pointerData = JSON.parse(pointer['_body']);\n      if (this.TeamID == 0)\n        this.pointerData = this.pointerData.filter(entity1 => this.teamData.find(entity2 => entity1.TeamID == entity2.TeamID) && entity1.PointerTypeID == 2);\n      else {\n        this.pointerData = this.pointerData.filter(entity1 => entity1.TeamID == this.TeamID && entity1.PointerTypeID == 2);\n      }\n      this.totalCount = this.pointerData.length;\n      this.dorseyService.GetProcess(this.CompanyID).subscribe(process => {\n        this.processData = JSON.parse(process['_body'])\n        if (this.TeamID == 0)\n          this.processData = this.processData.filter(entity1 => this.teamData.find(entity2 => entity1.TeamID == entity2.TeamID));\n        else {\n          this.processData = this.processData.filter(entity1 => entity1.TeamID == this.TeamID);\n        }\n        if (this.totalCount) {\n          for (let i = 0; i < this.processData.length; i++) {\n            let data = this.pointerData.filter(x => x.ProcessID === this.processData[i].ProcessID);\n            if (data.length > 0) {\n              if (Object.keys(this.categories).indexOf(this.processData[i].ProcessName) > -1) {\n                this.categories[this.processData[i].ProcessID] = data.length;\n              }\n              else {\n                this.categories[this.processData[i].ProcessName] = data.length;\n              }\n              for (let li = 0; li < data.length; li++) {\n                this.metricList.push(data[li]);\n              }\n              sum = sum + data.length;\n              this.frustData.push(data);\n              this.view['CategoryName'] = this.processData[i].ProcessName;\n              this.frust.push({\n                'data': data,\n                'label': this.processData[i].ProcessName,\n                'value': data.length\n              });\n              this.frust.sort(function (obj1, obj2) {\n\n                return obj2.value - obj1.value;\n              });\n            }\n          }\n        } else {\n          this.warningMsg = 'No data available';\n          if (!this.metricList.length || this.metricList.length == 0) {\n            this.isDisable = false;\n            this.disableSearch = false;\n          }\n          else {\n            this.isDisable = true;\n            this.disableSearch = true;\n          }\n          return;\n        }\n\n        if (this.metricList.length === 0) {\n          this.isDisable = false;\n          this.disableSearch = false;\n          return;\n        }\n        else {\n          this.isDisable = true;\n          this.disableSearch = true;\n        }\n\n        let sortOrder = this.sortByValue(this.categories);\n        let perVal = 0;\n        this.categories = [];\n        for (let v = 0; v < sortOrder.length; v++) {\n          values.push(sortOrder[v][1]);\n\n          let processFilter = this.processData.filter(x => x.ProcessID.toString() === sortOrder[v][0].toString());\n\n          if (processFilter.length > 0) {\n            this.categories.push(processFilter[0].ProcessName);\n          }\n          else {\n            this.categories.push(sortOrder[v][0]);\n          }\n          perVal = perVal + sortOrder[v][1];\n          perito.push((perVal / sum));\n        }\n        var obj = {\n          'Metric Count': values,\n          'Cumulative percentage': perito\n        };\n\n\n\n        let chart = c3.generate({\n          bindto: '#chartMetric',\n          data: {\n            json: obj,\n            axes: {\n\n              'Cumulative percentage': 'y2'\n            },\n            type: 'bar',\n            types: {\n\n              'Cumulative percentage': 'line',\n\n            }, groups: [\n              ['Metric Count', 'Cumulative percentage']\n            ]\n          },\n\n          title: {\n            text: \"Key Process\",\n            padding: {\n              top: 20,\n              right: 20,\n              bottom: 40,\n              left: 50\n            }\n          },\n          color: {\n            pattern: ['#4aabe7', '#d55632']\n          },\n          legend: {\n            show: true,\n            position: \"right\"\n\n          },\n          axis: {\n            x: {\n              type: 'category',\n              categories: this.categories,\n              tick: {\n                rotate: 50,\n                multiline: false\n              },\n              height: 100\n            },\n            y: {\n              label: 'Metric Count',\n              tick: {\n                format: d3.format('d'),\n                values: d3.ticks(0, sortOrder[0][1], sortOrder[0][1])\n              }\n            },\n            y2: {\n              show: true,\n              label: 'Cumulative percentage',\n              max: 1,\n              min: 0,\n              padding: { top: 3, bottom: 0 },\n              tick: {\n                format: d3.format(',.0%')\n              }\n            },\n          }\n        });\n        this.rowCount = this.metricList.length;\n        if (this.metricList.length === 0) {\n          this.activityPaging = false;\n        }\n        else {\n          this.saveFilter = JSON.parse(JSON.stringify(this.metricList));\n          this.activityPaging = true;\n          this.rowsOnPageSet = [];\n          while (this.dynamicRows < this.rowCount) {\n            this.rowsOnPageSet.push(this.dynamicRows);\n            this.dynamicRows = this.dynamicRows + 10;\n          }\n          if (!this.rowsOnPageSet.includes(this.rowCount)) this.rowsOnPageSet.push(this.rowCount);\n          if (this.rowsOnPageSet.length === 1) {\n            if (this.rowsOnPageSet[0] <= 10)\n              this.rowsOnPage = this.rowsOnPageSet[0];\n          }\n        }\n      });\n    });\n\n  }\n\n  Searchtext() {\n    this.metricbykeyprocess = this.saveFilter;\n    let tempmetricbykeyprocess = this.metricbykeyprocess.filter(\n      (item) => {\n        return (\n          (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.DepartmentName !== null && item.DepartmentName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.ProcessName !== null && item.ProcessName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.ActivityName !== null && item.ActivityName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.GoalName !== null && item.GoalName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)) ||\n          (item.Description != null && item.Description.toLowerCase().indexOf(this.searchtext.toLowerCase()) > -1)\n      }\n    );\n\n    this.metricList = tempmetricbykeyprocess;\n    if (this.metricList.length == 0) {\n      setTimeout(() => {\n        this.wrng = \"No data available\";\n      }, 100);\n      this.isDisable = false;\n      return;\n    } else {\n      this.isDisable = true;\n    }\n    if (this.searchtext === '') {\n      this.metricbykeyprocess = this.saveFilter;\n      this.dynamicRows = 5;\n      this.rowsOnPageSet = [];\n      this.rowCount = this.metricbykeyprocess.length;\n      while (this.dynamicRows < this.rowCount) {\n        this.rowsOnPageSet.push(this.dynamicRows);\n        this.dynamicRows = this.dynamicRows + 5;\n      }\n      if (!this.rowsOnPageSet.includes(this.rowCount))\n        this.rowsOnPageSet.push(this.rowCount);\n      if (this.rowsOnPageSet) {\n\n        this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n      this.isDisable = true;\n    } else {\n      this.rowCount = tempmetricbykeyprocess.length;\n      this.dynamicRows = 5;\n      this.rowsOnPageSet = [];\n      while (this.dynamicRows < this.rowCount) {\n        this.rowsOnPageSet.push(this.dynamicRows);\n        this.dynamicRows = this.dynamicRows + 5;\n      }\n      if (!this.rowsOnPageSet.includes(this.rowCount)) {\n        this.rowsOnPageSet.push(this.rowCount);\n        if (this.rowsOnPageSet)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n      if (this.rowsOnPageSet.length === 1) {\n        if (this.rowsOnPageSet[0] <= 5)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n    }\n  }\n\n  exportAsXLSX(): void {\n    let allData = JSON.parse(JSON.stringify(this.metricList));\n    for (let i = 0; i < allData.length; i++) {\n      allData[i][\" No. \"] = i + 1;\n      if (this.selectedReportType === ScoreCardTypeEnum.Department) {\n        allData[i][\"Department\"] = this.metricList[i].DepartmentName;\n      }\n      allData[i].Team = this.metricList[i].TeamName;\n      allData[i].Process = this.metricList[i].ProcessName;\n      allData[i].Activity = this.metricList[i].ActivityName;\n      allData[i][\" Goal \"] = this.metricList[i].GoalName;\n      allData[i][\" Metric \"] = this.metricList[i].Description;\n\n      delete (allData[i].DepartmentName);\n      delete (allData[i].EmployeeName);\n      delete (allData[i].VersionID);\n      delete (allData[i].GoalID);\n      delete (allData[i].GoalName);\n      delete (allData[i].GreenRange);\n      delete (allData[i].RedRange);\n      delete (allData[i].YellowRange);\n      delete (allData[i].ProcessName);\n      delete (allData[i].ActivityName);\n      delete (allData[i].Target);\n      delete (allData[i].Source);\n      delete (allData[i].TeamName);\n      delete (allData[i].FrustrationsTypeName);\n      delete (allData[i].Subject);\n      delete (allData[i].Description);\n      delete (allData[i].UOM);\n      delete (allData[i].Target);\n      delete (allData[i].StatusName);\n      delete (allData[i].SeverityName);\n      delete (allData[i].ProjectName);\n      delete (allData[i].PointerID);\n      delete (allData[i].ActivityID);\n      delete (allData[i].PointerTypeID);\n      delete (allData[i].CompanyID);\n      delete (allData[i].EmployeeID);\n      delete (allData[i].Type);\n      delete (allData[i].StatusID);\n      delete (allData[i].SeverityID);\n      delete (allData[i].ProcessID);\n      delete (allData[i].DepartmentID);\n      delete (allData[i].TeamID);\n      delete (allData[i].FrustrationsTypeID);\n      delete (allData[i].Date);\n      delete (allData[i].IsActive);\n      delete (allData[i].CreatedDate);\n      delete (allData[i].CreatedBy);\n      delete (allData[i].UpdatedDate);\n      delete (allData[i].UpdatedBy);\n      delete (allData[i].ProjectID);\n    }\n    let allData1 = JSON.parse(JSON.stringify(this.frust));\n    for (let i = 0; i < allData1.length; i++) {\n      allData1[i].label = this.frust[i].label;\n      allData1[i].value = this.frust[i].value;\n      delete (allData1[i].data);\n    }\n    let Cumulative = document.getElementById('chartMetric').querySelector('svg').querySelectorAll('.c3-target-Cumulative-percentage');\n    let Cumulativecircle = document.getElementById('chartMetric').querySelector('svg').querySelectorAll('.c3-circle');\n    let circle = Array.from(Cumulativecircle);\n    circle.forEach(function (element) {\n      element.setAttribute(\"style\", \"fill:#e75632\")\n    })\n    let cumulativegraph = Array.from(Cumulative)\n    cumulativegraph.forEach(function (element) {\n      element.setAttribute(\"style\", \"fill:none\")\n    })\n\n    let image = '';\n    htmlToImage.toPng(document.getElementById('chartMetric'),)\n      .then(function (dataUrl) {\n        var img = new Image();\n        img.src = dataUrl;\n\n        image = dataUrl;\n      });\n\n\n    let name: any;\n    if (this.selectedReportType == ScoreCardTypeEnum.Department && this.departmentName) {\n      name = this.departmentName;\n    } else if ((!this.selectedReportType || this.selectedReportType == ScoreCardTypeEnum.Team) && this.TeamName) {\n      name = this.TeamName;\n    } else {\n      name = \"Aggregate Report\";\n    }\n    setTimeout(() => {\n      this.dorseyService.generateReportExcel(allData1,\n        allData,\n        image,\n        this.loginCompanyName + '_Metric by process' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(),\n        'Metric by process',\n        \"Company: \" + this.loginCompanyName,\n        this.selectedReportType ? this.selectedReportType + \": \" + name : 'Team' + \": \" + name,\n        \"Metric by process Report\",\n        copyRight,\n        'FFFFFF00',\n        'FF0000FF');\n    }, 2000);\n  }\n  teamChange(event): void {\n    this.searchtext = '';\n    this.selectedDepartmentId = 0;\n    this.TeamID = event.value;\n    let teamd = this.teamData.filter(x => x.TeamID === this.TeamID)\n    if (teamd.length > 0) {\n      this.TeamName = teamd[0].TeamName;\n    }\n    this.ConstructReport();\n  }\n  reportTypeChange(scoreCardType: string): void {\n    this.searchtext = '';\n    this.departmentList = [];\n    this.teamData = [];\n    this.selectedDepartmentId = 0;\n    this.selectedReportType = scoreCardType;\n    this.toggleTeam = scoreCardType === ScoreCardTypeEnum.Department ? false : true;\n    this.getDepartments();\n    this.getTeamsByDepartmentId(this.selectedDepartmentId);\n  }\n\n  departmentChange(selectedDepartmentId): void {\n    this.searchtext = '';\n    this.getTeamsByDepartmentId(selectedDepartmentId);\n\n    this.departmentName = this.departmentList.find(ent => ent.DepartmentID === selectedDepartmentId).DepartmentName;\n  }\n\n  sortByValue(jsObj) {\n    var items = Object.keys(jsObj).map(function (key) {\n      return [key, jsObj[key]];\n    });\n    // Sort the array based on the second element\n    items.sort(function (first, second) {\n      return second[1] - first[1];\n    });\n    return items;\n  }\n  getData(data) {\n    const dialogRef = this.dialog.open(ReportMetricDialogComponent, {\n      width: '650px',\n      data: { data: data }\n    });\n    dialogRef.afterClosed().subscribe(result => {\n\n    });\n  }\n}\n\n@Component({\n  selector: 'app-dialog',\n  templateUrl: './dialog.html',\n  // styleUrls: ['dialog.css']\n})\nexport class ReportMetricDialogComponent implements OnInit {\n  data: any;\n  constructor(\n    public dialogRef: MatDialogRef<ReportMetricDialogComponent>,\n    @Inject(MAT_DIALOG_DATA) public dialogData: any) { }\n\n  ngOnInit() {\n    this.data = this.dialogData.data;\n  }\n  close(): void {\n    this.dialogRef.close();\n  }\n}\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\nimport * as c3 from 'c3';\nimport * as d3 from 'd3';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { tickStep } from 'd3';\nimport htmlToImage from 'html-to-image';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { Department } from '../departments/department.model';\nimport { ScoreCardTypeEnum } from '../performance-score-card/performance-score-card.model';\nimport { DepartmentService } from '../services/department.service';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n  selector: 'app-report-process',\n  templateUrl: './report-process.component.html',\n  // styleUrls: ['./report-process.component.scss'],\n  providers: [DorseyService],\n  inputs: ['dashboardProcess', 'dashboardPr', 'dashboardTeamPr']\n})\nexport class ReportProcessComponent implements OnInit {\n  copyRight: string = copyRight;\n  departmentList: Array<Department> = [];\n  employeeDetails: any;\n  scoreCardTypes: string[] = [ScoreCardTypeEnum.Department, ScoreCardTypeEnum.Team];\n\n  processData: any;\n  activityData: any;\n  pointerData: any;\n  frustrationData: any;\n  selectedDepartmentId: number;\n  frustData = [];\n  frust = [];\n  view = {};\n  dataSource: Object;\n  totalCount = 0;\n  dashboardProcess = true;\n  dashboard = true;\n  categories = [];\n  warningMsg = '';\n  dashboardPr = true;\n  departmentName: string;\n  p: number = 1;\n  rowsOnPage = 5;\n  rowsOnPageSet = [];\n  rowCount: any;\n  dynamicRows = 5;\n  activityPaging = false;\n  metricList = [];\n  selectedReportType: string;\n  CompanyID: string;\n  isDisable = false;\n  saveFilter = [];\n  searchtext: string = '';\n  frustrationbyprocess: any[];\n  wrng: string;\n  disableSearch = false;\n  toggleTeam: boolean = false;\n  UserTeamID: string;\n  teamData: any;\n  TeamID: any;\n  selected: any;\n  dashboardTeamPr: any;\n  EmployeeID: string;\n  tempTeam = [];\n  companyName: string;\n  headerDate = new Date();\n  TeamName: string;\n  employeeData: any;\n  copyDate: number;\n  isDesc: boolean = false;\n  column = \"\";\n  direction: number;\n  arrow = true;\n  constructor(private dorseyService: DorseyService,\n    private departmentService: DepartmentService, private dialog: MatDialog, private storage: LocalStorageService) {\n\n    this.metricList = [];\n    this.companyName = sessionStorage.getItem('loginCompanyName');\n    this.EmployeeID = this.storage.retrieve('EmployeeID');\n    this.employeeDetails = this.storage.retrieve('employeeDetails');\n\n    if (this.EmployeeID.toString() === \"0\") {\n\n    }\n    else {\n      this.TeamID = this.storage.retrieve('TeamID');\n    }\n\n  }\n\n\n  ngOnInit() {\n\n    this.CompanyID = this.storage.retrieve('companyID');\n    this.warningMsg = '';\n\n    if (this.employeeDetails) {\n\n      if ((this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) || (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team)) {\n        this.toggleTeam = true;\n\n        this.getTeamsByDepartmentId(this.employeeDetails.DepartmentID)\n      }\n      else {\n        if (!this.dashboardTeamPr)\n\n          this.reportTypeChange(ScoreCardTypeEnum.Department)\n\n        else\n          this.getTeamsByDepartmentId(0)\n\n\n      }\n    }\n    else {\n      if (!this.dashboardTeamPr)\n\n        this.reportTypeChange(ScoreCardTypeEnum.Department)\n\n      else\n        this.getTeamsByDepartmentId(0)\n\n    }\n\n\n    this.copyDate = (new Date()).getFullYear();\n\n  }\n  teamChange(event): void {\n    this.searchtext = '';\n    this.selectedDepartmentId = 0;\n\n    this.TeamID = event.value;\n\n    let teamd = this.teamData.filter(x => x.TeamID === this.TeamID)\n\n    if (teamd.length > 0) {\n      this.TeamName = teamd[0].TeamName;\n    }\n    this.ConstructReport();\n  }\n  reportTypeChange(scoreCardType: string): void {\n    this.searchtext = '';\n    this.departmentList = [];\n    this.teamData = [];\n    this.selectedDepartmentId = 0;\n    this.selectedReportType = scoreCardType;\n    this.toggleTeam = scoreCardType === ScoreCardTypeEnum.Department ? false : true;\n    this.getDepartments();\n    this.getTeamsByDepartmentId(this.selectedDepartmentId);\n\n  }\n\n  departmentChange(selectedDepartmentId): void {\n    this.searchtext = '';\n    this.getTeamsByDepartmentId(selectedDepartmentId);\n\n    this.departmentName = this.departmentList.find(ent => ent.DepartmentID === selectedDepartmentId).DepartmentName;\n  }\n\n  private getDepartments(): void {\n    this.departmentService.getDepartments(Number(this.CompanyID)).subscribe(resp => {\n      this.departmentList = resp.Data;\n      if (this.employeeDetails) {\n\n        if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n          this.departmentList = this.departmentList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n        }\n        else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n          this.departmentList = this.departmentList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n          this.getTeamsByDepartmentId(this.employeeDetails.DepartmentID);\n        }\n\n      }\n      this.departmentList.splice(0, 0, { DepartmentID: 0, DepartmentName: 'Aggregate Report', DepartmentDescription: '0', CompanyID: Number(this.CompanyID), CreatedBy: '', UpdatedBy: '' });\n    });\n  }\n\n  private getTeamsByDepartmentId(selectedDepartmentId): void {\n\n    this.dorseyService.GetTeam(this.CompanyID.toString()).subscribe(resp => {\n      var companyTeamList = JSON.parse(resp['_body']);\n      this.teamData = companyTeamList;\n\n      if (this.employeeDetails && companyTeamList) {\n        if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n          this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n        }\n        else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n          this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID);\n          this.selectedDepartmentId = this.teamData[0].DepartmentID;\n          this.TeamID = this.teamData[0].TeamID;\n        }\n        else {\n\n          if (!selectedDepartmentId) {\n            this.selectedDepartmentId = 0;\n            this.teamData = companyTeamList;\n          }\n          else if (selectedDepartmentId == 0) {\n            this.teamData = companyTeamList;\n          }\n          else {\n            this.teamData = this.teamData.filter(ent => ent.DepartmentID === selectedDepartmentId);\n          }\n\n        }\n      }\n      else {\n        if (selectedDepartmentId == 0)\n          this.teamData = companyTeamList;\n        else\n\n          this.teamData = companyTeamList.filter(ent => ent.DepartmentID === selectedDepartmentId);\n      }\n\n      if (this.dashboardTeamPr !== undefined) {\n        this.TeamID = this.dashboardTeamPr;\n      }\n      else if (this.employeeDetails && this.employeeDetails.IsEmployeeLoginLevel === EmployeeLoginLevel.Team) {\n        this.TeamID = this.TeamID;\n      }\n      else {\n        this.TeamID = 0;\n\n      }\n\n      this.dorseyService.GetPointer(this.CompanyID).subscribe(pointer => {\n        this.pointerData = JSON.parse(pointer['_body']);\n\n        if (this.TeamID == 0) {\n          this.teamData = this.teamData.filter(entity1 => this.pointerData.find(entity2 => entity1.TeamID == entity2.TeamID && entity2.PointerTypeID == 1));\n\n          this.teamData.splice(0, 0, { TeamID: 0, TeamName: 'Aggregate Report' });\n        }\n\n        this.ConstructReport();\n\n      });\n\n    });\n  }\n\n\n  sort(property) {\n    this.arrow = !this.arrow;\n    this.isDesc = !this.isDesc; //change the direction\n    this.column = property;\n    this.direction = this.isDesc ? 1 : -1;\n  }\n\n\n  Searchtext() {\n    this.frustrationbyprocess = this.saveFilter;\n\n    let tempfrustrationbyprocess = this.frustrationbyprocess.filter(\n      (item) => {\n        return (\n          (item.ProcessName !== null && item.ProcessName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.ActivityName !== null && item.ActivityName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.FrustrationsTypeName !== null && item.FrustrationsTypeName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.Subject !== null && item.Subject.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.Description !== null && item.Description.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.StatusName !== null && item.StatusName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.SeverityName !== null && item.SeverityName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.ProjectName !== null && item.ProjectName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1))\n          || (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n\n\n      }\n\n    );\n\n    this.metricList = tempfrustrationbyprocess;\n    if (this.metricList.length == 0) {\n      this.isDisable = false;\n      setTimeout(() => {\n        this.wrng = \"No data available\";\n      }, 100);\n\n    }\n    else {\n      this.isDisable = true;\n    }\n    if (this.searchtext === '') {\n      this.frustrationbyprocess = this.saveFilter;\n      this.dynamicRows = 5;\n      this.rowsOnPageSet = [];\n      this.rowCount = this.frustrationbyprocess.length;\n      while (this.dynamicRows < this.rowCount) {\n        this.rowsOnPageSet.push(this.dynamicRows);\n        this.dynamicRows = this.dynamicRows + 5;\n      }\n      if (!this.rowsOnPageSet.includes(this.rowCount))\n        this.rowsOnPageSet.push(this.rowCount);\n      if (this.rowsOnPageSet) {\n\n        this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n      this.isDisable = true;\n    } else {\n      this.rowCount = tempfrustrationbyprocess.length;\n      this.dynamicRows = 5;\n      this.rowsOnPageSet = [];\n      while (this.dynamicRows < this.rowCount) {\n        this.rowsOnPageSet.push(this.dynamicRows);\n        this.dynamicRows = this.dynamicRows + 5;\n      }\n      if (!this.rowsOnPageSet.includes(this.rowCount)) {\n        this.rowsOnPageSet.push(this.rowCount);\n        if (this.rowsOnPageSet)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n\n      if (this.rowsOnPageSet.length === 1) {\n        if (this.rowsOnPageSet[0] <= 5)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n    }\n  }\n  exportAsXLSX(): void {\n    let allData = JSON.parse(JSON.stringify(this.metricList));\n\n    for (let i = 0; i < allData.length; i++) {\n\n      allData[i][\" No. \"] = i + 1;\n      if (this.selectedReportType === ScoreCardTypeEnum.Department) {\n        allData[i][\"Department\"] = this.metricList[i].DepartmentName;\n      }\n\n      allData[i].Team = this.metricList[i].TeamName;\n      allData[i].Process = this.metricList[i].ProcessName;\n      allData[i].Activity = this.metricList[i].ActivityName;\n      allData[i].Team = this.metricList[i].TeamName;\n      allData[i][\" Type \"] = this.metricList[i].FrustrationsTypeName;\n      allData[i][\" Frustration \"] = this.metricList[i].Subject;\n      allData[i][\" Description \"] = this.metricList[i].Description;\n      allData[i].Status = this.metricList[i].StatusName;\n\n      allData[i].Severity = this.metricList[i].SeverityName;\n      allData[i].Project = this.metricList[i].ProjectName;\n\n\n      delete (allData[i].DepartmentName);\n      delete (allData[i].EmployeeName);\n      delete (allData[i].VersionID);\n      delete (allData[i].GoalName);\n      delete (allData[i].GoalID);\n      delete (allData[i].GreenRange);\n      delete (allData[i].RedRange);\n\n      delete (allData[i].YellowRange);\n\n      delete (allData[i].ProcessName);\n      delete (allData[i].ActivityName);\n      delete (allData[i].Source);\n      delete (allData[i].TeamName);\n      delete (allData[i].FrustrationsTypeName);\n\n      delete (allData[i].Subject);\n      delete (allData[i].Description);\n\n      delete (allData[i].StatusName);\n      delete (allData[i].SeverityName);\n      delete (allData[i].ProjectName);\n\n\n      delete (allData[i].PointerID);\n      delete (allData[i].ActivityID);\n      delete (allData[i].PointerTypeID);\n      delete (allData[i].CompanyID);\n      delete (allData[i].EmployeeID);\n      delete (allData[i].UOM);\n      delete (allData[i].Target);\n      delete (allData[i].Type);\n      delete (allData[i].StatusID);\n\n      delete (allData[i].SeverityID);\n      delete (allData[i].ProcessID);\n      delete (allData[i].DepartmentID);\n      delete (allData[i].TeamID);\n\n\n      delete (allData[i].FrustrationsTypeID);\n      delete (allData[i].Date);\n      delete (allData[i].IsActive);\n      delete (allData[i].CreatedDate);\n\n      delete (allData[i].CreatedBy);\n      delete (allData[i].UpdatedDate);\n      delete (allData[i].UpdatedBy);\n      delete (allData[i].ProjectID);\n\n\n    }\n\n    let allData1 = JSON.parse(JSON.stringify(this.frust));\n\n    for (let i = 0; i < allData1.length; i++) {\n      // this.frust[i].label = this.frust[i].value;\n      allData1[i].label = this.frust[i].label;\n      allData1[i].value = this.frust[i].value;\n      delete (allData1[i].data);\n    }\n\n    let Cumulative = document.getElementById('chartProcess').querySelector('svg').querySelectorAll('.c3-target-Cumulative-percentage');\n    let Cumulativecircle = document.getElementById('chartProcess').querySelector('svg').querySelectorAll('.c3-circle');\n    let circle = Array.from(Cumulativecircle);\n    circle.forEach(function (element) {\n      element.setAttribute(\"style\", \"fill:#e75632\")\n    })\n\n    let cumulativegraph = Array.from(Cumulative)\n    cumulativegraph.forEach(function (element) {\n      element.setAttribute(\"style\", \"fill:none\")\n    })\n\n    let image = '';\n\n    htmlToImage.toPng(document.getElementById('chartProcess'),)\n      .then(function (dataUrl) {\n        var img = new Image();\n        img.src = dataUrl;\n\n        image = dataUrl;\n      });\n    setTimeout(() => {\n\n    }, 500);\n\n    let name: any;\n    if (this.selectedReportType == ScoreCardTypeEnum.Department && this.departmentName) {\n      name = this.departmentName;\n    } else if ((!this.selectedReportType || this.selectedReportType == ScoreCardTypeEnum.Team) && this.TeamName) {\n      name = this.TeamName;\n    } else {\n      name = \"Aggregate Report\";\n    }\n\n    setTimeout(() => {\n      this.dorseyService.generateReportExcel(allData1, allData, image, this.companyName + '_Frustrations report by process' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Frustrations report by process', \"Company: \" + this.companyName, this.selectedReportType ? this.selectedReportType + \": \" + name : 'Team' + \": \" + name, \"Frustrations report by process Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n    }, 2000);\n\n  }\n\n  ConstructReport() {\n    this.metricList = [];\n    this.frustData = [];\n    this.categories = [];\n    this.frust = [];\n    this.rowsOnPageSet = [];\n    this.rowsOnPage = 5;\n    this.warningMsg = '';\n    this.dynamicRows = 5;\n    var values = [];\n    var perito = [];\n    var sum = 0;\n    let procData: any;\n    this.dorseyService.GetPointer(this.CompanyID).subscribe(pointer => {\n      this.pointerData = JSON.parse(pointer['_body']);\n\n      if (this.TeamID == 0)\n        this.pointerData = this.pointerData.filter(entity1 => this.teamData.find(entity2 => entity1.TeamID == entity2.TeamID) && entity1.PointerTypeID == 1);\n      else {\n        this.pointerData = this.pointerData.filter(entity1 => entity1.TeamID == this.TeamID && entity1.PointerTypeID == 1);\n      }\n\n      this.totalCount = this.pointerData.length;\n\n      this.dorseyService.GetProcess(this.CompanyID).subscribe(process => {\n        this.processData = JSON.parse(process['_body'])\n        if (this.TeamID == 0)\n          this.processData = this.processData.filter(entity1 => this.teamData.find(entity2 => entity1.TeamID == entity2.TeamID));\n        else {\n          this.processData = this.processData.filter(entity1 => entity1.TeamID == this.TeamID);\n        }\n\n        if (this.totalCount) {\n\n          for (let i = 0; i < this.processData.length; i++) {\n            let data = this.pointerData.filter(x => x.ProcessID === this.processData[i].ProcessID);\n            if (data.length > 0) {\n\n              if (this.totalCount) {\n                this.frustData.push(data);\n                this.view['CategoryName'] = this.processData[i].ProcessName;\n                if (Object.keys(this.categories).indexOf(this.processData[i].ProcessName) > -1) {\n                  this.categories[this.processData[i].ProcessID] = data.length;\n                }\n                else {\n                  this.categories[this.processData[i].ProcessName] = data.length;\n                }\n\n                for (let li = 0; li < data.length; li++) {\n                  this.metricList.push(data[li]);\n                }\n                sum = sum + data.length;\n                this.frust.push({\n                  data: data,\n                  label: this.processData[i].ProcessName,\n                  value: data.length\n                });\n\n                this.frust.sort(function (obj1, obj2) {\n\n                  return obj2.value - obj1.value;\n                });\n\n              }\n\n            }\n          }\n        } else {\n          this.warningMsg = 'No data available';\n\n          if (!this.metricList.length) {\n            this.isDisable = false;\n            this.disableSearch = false;\n          }\n          else {\n            this.isDisable = true;\n            this.disableSearch = true;\n          }\n          return;\n        }\n\n        if (this.metricList.length === 0) {\n          this.isDisable = false;\n          this.disableSearch = false;\n          return;\n        }\n        else {\n          this.isDisable = true;\n          this.disableSearch = true;\n        }\n\n        let sortOrder = this.sortByValue(this.categories);\n\n        let perVal = 0;\n        this.categories = [];\n\n        for (let v = 0; v < sortOrder.length; v++) {\n          values.push(sortOrder[v][1]);\n\n          let processFilter = this.processData.filter(x => x.ProcessID.toString() === sortOrder[v][0].toString());\n          if (processFilter.length > 0) {\n            this.categories.push(processFilter[0].ProcessName);\n          }\n          else {\n            this.categories.push(sortOrder[v][0]);\n          }\n          perVal = perVal + sortOrder[v][1];\n          perito.push((perVal / sum));\n        }\n\n\n        var obj = {\n          'Frustration Count': values,\n          'Cumulative percentage': perito\n        };\n\n        let chart = c3.generate({\n          bindto: '#chartProcess',\n          data: {\n            json: obj,\n            axes: {\n              'Cumulative percentage': 'y2'\n            },\n            type: 'bar',\n            types: {\n\n              'Cumulative percentage': 'line',\n\n            }, groups: [\n              ['Frustration Count', 'Cumulative percentage']\n            ]\n\n\n          },\n\n          title: {\n            text: \"Processes\",\n            padding: {\n              top: 20,\n              right: 20,\n              bottom: 40,\n              left: 50\n            }\n          },\n          color: {\n            pattern: ['#4aabe7', '#d55632']\n          },\n          legend: {\n            show: true,\n            position: \"right\"\n\n          },\n\n          axis: {\n            x: {\n              type: 'category',\n              // label: 'Processes',\n\n              //  label: {\n              //   text: 'Processes',\n              //   position: 'outer-center'\n              // },\n              categories: this.categories,\n              tick: {\n                rotate: 50,\n                multiline: false\n                // multiline: true,\n                // multilineMax:2\n              },\n\n              height: 100,\n            },\n\n            y: {\n              //max :10,\n              label: 'Frustration Count',\n              tick: {\n\n\n                format: d3.format('d'),\n                //values: d3.ticks(0,values[0],values[0]/5)\n                values: d3.ticks(0, sortOrder[0][1], sortOrder[0][1])\n              }\n            },\n            y2: {\n              show: true,\n              label: 'Cumulative percentage',\n              max: 1,\n              min: 0,\n              padding: { top: 3, bottom: 0 },\n              tick: {\n                format: d3.format(',.0%')\n              }\n\n            },\n\n          }\n\n        });\n        this.rowCount = this.metricList.length;\n        if (this.metricList.length === 0) {\n          this.activityPaging = false;\n        }\n        else {\n          this.saveFilter = JSON.parse(JSON.stringify(this.metricList));\n\n          this.activityPaging = true;\n\n          while (this.dynamicRows < this.rowCount) {\n            this.rowsOnPageSet.push(this.dynamicRows);\n            this.dynamicRows = this.dynamicRows + 10;\n          }\n          if (!this.rowsOnPageSet.includes(this.rowCount)) this.rowsOnPageSet.push(this.rowCount);\n          if (this.rowsOnPageSet.length === 1) {\n            if (this.rowsOnPageSet[0] <= 10)\n              this.rowsOnPage = this.rowsOnPageSet[0];\n          }\n\n        }\n\n      });\n\n\n    });\n\n  }\n\n\n  sortByValue(jsObj) {\n    var items = Object.keys(jsObj).map(function (key) {\n      return [key, jsObj[key]];\n    });\n    items.sort(function (first, second) {\n      return second[1] - first[1];\n    });\n\n    return items;\n\n  }\n  getData(data) {\n\n    const dialogRef = this.dialog.open(ReportProcessDialogComponent, {\n      width: '650px',\n      data: { data: data }\n    });\n\n    dialogRef.afterClosed().subscribe(result => {\n\n    });\n\n  }\n}\n\n\n@Component({\n  selector: 'app-dialog',\n  templateUrl: './dialog.html',\n  // styleUrls: ['dialog.css']\n})\nexport class ReportProcessDialogComponent implements OnInit {\n\n  data: any;\n  constructor(\n    public dialogRef: MatDialogRef<ReportProcessDialogComponent>,\n    @Inject(MAT_DIALOG_DATA) public dialogData: any) { }\n\n  ngOnInit() {\n    this.data = this.dialogData.data;\n\n  }\n\n  close(): void {\n    this.dialogRef.close();\n  }\n\n}\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\nimport * as c3 from 'c3';\nimport * as d3 from 'd3';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport htmlToImage from 'html-to-image';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n  selector: 'app-report-project',\n  templateUrl: './report-project.component.html',\n  // styleUrls: ['./report-project.component.scss'],\n  providers: [DorseyService],\n  inputs: ['dashboardProject', 'dashboardPro']\n})\nexport class ReportProjectComponent implements OnInit {\n  copyRight: string = copyRight;\n  pointerData: any;\n  projectData: any;\n  projectStatusData: any;\n\n  frustData = [];\n  frust = [];\n  view = {};\n  dataSource: Object;\n  filterProjectData = [];\n  searchtext: string = '';\n  issueData: any;\n  issueList = [];\n  finalList = [];\n  categories = [];\n  totalCount = 0;\n  dashboardProject = true;\n  dashboardPro = true;\n  warningMsg = '';\n  p: number = 1;\n  rowsOnPage = 10;\n  rowsOnPageSet = [];\n  rowCount: any;\n  dynamicRows = 10;\n  activityPaging = false;\n  CompanyID: string;\n  saveFilter: any;\n  isDisable = false;\n  projectbyStatus: any;\n  wrng: string;\n  disableSearch = false;\n  UserTeamID: string;\n  companyName: string;\n  headerDate = new Date();\n  copyDate: number;\n  isDesc: boolean = false;\n  column = \"\";\n  direction: number;\n  arrow = true;\n\n  TeamName: string;\n  EmployeeID: string;\n  constructor(private dorseyService: DorseyService, private dialog: MatDialog, private storage: LocalStorageService) {\n    this.UserTeamID = this.storage.retrieve('TeamID');\n    this.companyName = sessionStorage.getItem('loginCompanyName');\n    this.EmployeeID = this.storage.retrieve('EmployeeID');\n  }\n\n  ngOnInit() {\n    this.CompanyID = this.storage.retrieve('companyID');\n    this.GetPointer();\n    this.GetProjects();\n    this.GetProjectStatus();\n    this.copyDate = (new Date()).getFullYear();\n  }\n  GetPointer() {\n    this.finalList = [];\n    this.GetProjects();\n    this.dorseyService.GetPointer(this.CompanyID).subscribe(pointer => {\n      this.pointerData = JSON.parse(pointer['_body']);\n      if (this.pointerData.length > 0) {\n        this.issueData = this.pointerData.filter(x => x.PointerTypeID === 1);\n      }\n\n      if (this.projectData) {\n        for (let i = 0; i < this.projectData.length; i++) {\n          if (this.issueData != undefined) {\n            let data = this.issueData.filter(x => x.ProjectID != null && x.ProjectID === this.projectData[i].ProjectID);\n            if (data.length > 0) {\n              this.finalList.push({\n                'id': this.projectData[i].ProjectID,\n                'name': this.projectData[i].ProjectName,\n                'data': data,\n                'status': this.projectData[i].ProjectStatusName,\n                'team': this.projectData[i].TeamName,\n                'owner': this.projectData[i].ProjectOwner\n              });\n            } else {\n              this.finalList.push({\n                'id': this.projectData[i].ProjectID,\n                'name': this.projectData[i].ProjectName,\n                'data': data,\n                'status': this.projectData[i].ProjectStatusName,\n                'team': this.projectData[i].TeamName,\n                'owner': this.projectData[i].ProjectOwner\n              });\n            }\n          }\n          else {\n            this.finalList.push({\n              'id': this.projectData[i].ProjectID,\n              'name': this.projectData[i].ProjectName,\n              'status': this.projectData[i].ProjectStatusName,\n              'team': this.projectData[i].TeamName,\n              'owner': this.projectData[i].ProjectOwner\n            });\n          }\n        }\n      }\n      this.rowCount = this.finalList.length;\n      if (this.finalList.length === 0) {\n        this.activityPaging = false;\n      }\n      else {\n        this.saveFilter = JSON.parse(JSON.stringify(this.finalList));\n        this.activityPaging = true;\n\n        while (this.dynamicRows < this.rowCount) {\n          this.rowsOnPageSet.push(this.dynamicRows);\n          this.dynamicRows = this.dynamicRows + 10;\n        }\n        if (!this.rowsOnPageSet.includes(this.rowCount)) this.rowsOnPageSet.push(this.rowCount);\n        if (this.rowsOnPageSet.length == 1) {\n          if (this.rowsOnPageSet[0] <= 10)\n            this.rowsOnPage = this.rowsOnPageSet[0];\n        }\n      }\n    });\n  }\n\n  sort(property) {\n    this.arrow = !this.arrow;\n    this.isDesc = !this.isDesc; //change the direction\n    this.column = property;\n    this.direction = this.isDesc ? 1 : -1;\n  }\n  sortByValue(jsObj) {\n    var items = Object.keys(jsObj).map(function (key) {\n      return [key, jsObj[key]];\n    });\n\n    // Sort the array based on the second element\n    items.sort(function (first, second) {\n      return second[1] - first[1];\n    });\n    return items;\n  }\n  GetProjects() {\n    this.dorseyService.GetProjects(this.CompanyID).subscribe(project => {\n      this.projectData = JSON.parse(project['_body']);\n\n    });\n  }\n  GetProjectStatus() {\n\n    this.dorseyService.GetProjectStatus().subscribe(status => {\n      this.projectStatusData = JSON.parse(status['_body']);\n      this.dorseyService.GetProjects(this.CompanyID).subscribe(project => {\n        this.projectData = JSON.parse(project['_body']);\n        this.totalCount = this.projectData.length;\n        var values = [];\n        var perito = [];\n        var sum = 0;\n\n        if (this.projectData.length) {\n          for (let i = 0; i < this.projectStatusData.length; i++) {\n\n            let data = this.projectData.filter(x => x.ProjectStatusID === this.projectStatusData[i].ProjectStatusID);\n            if (data.length > 0) {\n              this.frustData.push(data);\n              this.view['CategoryName'] = this.projectStatusData[i].ProjectStatusName;\n              this.categories[this.projectStatusData[i].ProjectStatusName] = data.length;\n              sum = sum + data.length;\n              this.frust.push({\n                'data': data,\n                'label': this.projectStatusData[i].ProjectStatusName,\n                'value': data.length\n              });\n              this.frust.sort(function (obj1, obj2) {\n\n                return obj2.value - obj1.value;\n              });\n            }\n          }\n        } else {\n          this.warningMsg = 'No data available';\n          return;\n        }\n        if (this.finalList.length === 0) {\n          this.isDisable = false;\n          this.disableSearch = false;\n        }\n        else {\n          this.isDisable = true;\n          this.disableSearch = true;\n        }\n        let sortOrder = this.sortByValue(this.categories);\n\n        let perVal = 0;\n        this.categories = [];\n        for (let v = 0; v < sortOrder.length; v++) {\n          values.push(sortOrder[v][1]);\n          this.categories.push(sortOrder[v][0])\n          perVal = perVal + sortOrder[v][1];\n          perito.push((perVal / sum));\n\n        }\n        var obj = {\n          'Projects Count': values,\n          'Cumulative percentage': perito\n        };\n        let chart = c3.generate({\n          bindto: '#chart',\n          data: {\n            json: obj,\n            axes: {\n\n              'Cumulative percentage': 'y2'\n            },\n            type: 'bar',\n            types: {\n\n              'Cumulative percentage': 'line',\n\n            }, groups: [\n              ['Projects Count', 'Cumulative percentage']\n            ]\n          },\n\n          title: {\n            text: \"Project Status\",\n            padding: {\n              top: 20,\n              right: 20,\n              bottom: 40,\n              left: 50\n            }\n          },\n          color: {\n            pattern: ['#4aabe7', '#d55632']\n          },\n\n          legend: {\n            show: true,\n            position: \"right\"\n\n          },\n          axis: {\n            x: {\n              type: 'category',\n\n              categories: this.categories,\n              tick: {\n                rotate: 50,\n                multiline: false\n              },\n              height: 100\n            },\n            y: {\n\n              label: 'Projects Count',\n              tick: {\n                format: d3.format('d'),\n                values: d3.ticks(0, sortOrder[0][1], sortOrder[0][1])\n              }\n            },\n            y2: {\n              show: true,\n              label: 'Cumulative percentage',\n              max: 1,\n              min: 0,\n              padding: { top: 3, bottom: 0 },\n              tick: {\n                format: d3.format(',.0%')\n              }\n\n            },\n\n          }\n\n        });\n      });\n\n    });\n\n  }\n\n  Searchtext() {\n    this.projectbyStatus = [];\n    this.projectbyStatus = this.saveFilter;\n    let tempprojectbystatus = this.projectbyStatus.filter(\n      (item) => {\n        return (\n          (item.team != null && item.team.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.name != null && item.name.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.status != null && item.status.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.owner != null && item.owner.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.data != null && (item.data.filter(\n            (da) => {\n              return (\n                da.ProcessName != null && da.ProcessName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1\n                || da.ActivityName != null && da.ActivityName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1\n                || da.StatusName != null && da.StatusName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1\n                || da.Description != null && da.Description.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1\n                || da.Subject != null && da.Subject.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1\n                || da.PointerID != null && da.PointerID.toString().indexOf(this.searchtext) > -1\n              )\n\n            }\n          )\n          )\n          ).length\n        )\n      }\n    );\n\n    this.finalList = tempprojectbystatus;\n    if (this.finalList.length == 0) {\n      setTimeout(() => {\n        this.wrng = \"No data available\";\n      }, 100);\n      this.isDisable = false;\n    } else {\n      this.isDisable = true;\n    }\n    if (this.searchtext === '') {\n      this.projectbyStatus = this.saveFilter;\n      this.dynamicRows = 10;\n      this.rowsOnPageSet = [];\n      this.rowCount = this.projectbyStatus.length;\n      while (this.dynamicRows < this.rowCount) {\n        this.rowsOnPageSet.push(this.dynamicRows);\n        this.dynamicRows = this.dynamicRows + 10;\n      }\n      if (!this.rowsOnPageSet.includes(this.rowCount))\n        this.rowsOnPageSet.push(this.rowCount);\n      if (this.rowsOnPageSet) {\n\n        this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n      this.isDisable = true;\n    } else {\n      this.rowCount = tempprojectbystatus.length;\n      this.dynamicRows = 10;\n      this.rowsOnPageSet = [];\n      while (this.dynamicRows < this.rowCount) {\n        this.rowsOnPageSet.push(this.dynamicRows);\n        this.dynamicRows = this.dynamicRows + 10;\n      }\n      if (!this.rowsOnPageSet.includes(this.rowCount)) {\n        this.rowsOnPageSet.push(this.rowCount);\n        if (this.rowsOnPageSet)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n\n      if (this.rowsOnPageSet.length === 1) {\n        if (this.rowsOnPageSet[0] <= 10)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n    }\n  }\n\n  exportAsXLSX(): void {\n    let allData = JSON.parse(JSON.stringify(this.finalList));\n    for (let i = 0; i < allData.length; i++) {\n      delete (allData[i].id);\n      allData[i][\" No. \"] = i + 1;\n      allData[i]['Project Team'] = allData[i].team;\n      allData[i].Project = allData[i].name;\n      allData[i]['Project Status'] = allData[i].status;\n      allData[i]['Project Owner'] = allData[i].owner;\n      delete allData[i].status;\n      delete allData[i].team;\n      delete allData[i].owner;\n      delete allData[i].name;\n      let teamName = '';\n      let processName = '';\n      let IssueStatus = '';\n      let subject = '';\n      let Description = '';\n      let PointerID = '';\n      if (allData[i].data) {\n        let Data = allData[i].data;\n        for (let i = 0; i < Data.length; i++) {\n          teamName = teamName + Data[i].TeamName + '\\n';\n          processName = processName + Data[i].ProcessName + '\\n';\n          IssueStatus = IssueStatus + Data[i].StatusName + '\\n';\n          subject = subject + Data[i].Subject + '\\n';\n          Description = Description + Data[i].Description + '\\n';\n        }\n        allData[i]['Frustration Team'] = teamName;\n        allData[i].Process = processName;\n        allData[i].Frustration = subject;\n        allData[i].Description = Description;\n        allData[i].Status = IssueStatus;\n        delete allData[i].data;\n        delete allData[i].IssueID;\n      }\n\n    }\n    let projectTypeCountData = JSON.parse(JSON.stringify(this.frust));\n    for (let i = 0; i < projectTypeCountData.length; i++) {\n      projectTypeCountData[i].label = this.frust[i].label;\n      projectTypeCountData[i].value = this.frust[i].value;\n      delete (projectTypeCountData[i].data);\n    }\n    let Cumulative = document.getElementById('chart').querySelector('svg').querySelectorAll('.c3-target-Cumulative-percentage');\n    let Cumulativecircle = document.getElementById('chart').querySelector('svg').querySelectorAll('.c3-circle');\n\n    let circle = Array.from(Cumulativecircle);\n    circle.forEach(function (element) {\n      element.setAttribute(\"style\", \"fill:#e75632\")\n    })\n\n    let cumulativegraph = Array.from(Cumulative)\n    cumulativegraph.forEach(function (element) {\n      element.setAttribute(\"style\", \"fill:none\")\n    })\n    let image = '';\n    htmlToImage.toPng(document.getElementById('chart'),)\n      .then(function (dataUrl) {\n        var img = new Image();\n        img.src = dataUrl;\n        image = dataUrl;\n      });\n    let team: any;\n    team = '';\n\n    setTimeout(() => {\n      this.dorseyService.generateReportExcel(projectTypeCountData, allData, image, this.companyName + '_Project report by status' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Project report by status', \"Company: \" + this.companyName, team, \"Project report by status Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n    }, 2000);\n  }\n\n  getData(data) {\n    const dialogRef = this.dialog.open(ReportProjectDialogComponent, {\n      width: '750px',\n      data: { data, data1: this.finalList }\n    });\n    dialogRef.componentInstance.final = this.finalList;\n    dialogRef.afterClosed().subscribe(result => {\n    });\n  }\n}\n\n\n@Component({\n  selector: 'app-dialog',\n  templateUrl: './dialog.html',\n  // styleUrls: ['dialog.css']\n})\nexport class ReportProjectDialogComponent implements OnInit {\n\n  data: any;\n  final: any;\n  data1 = [];\n  dataMismatch = [];\n  constructor(\n    public dialogRef: MatDialogRef<ReportProjectDialogComponent>,\n    @Inject(MAT_DIALOG_DATA) public dialogData: any) { }\n\n  ngOnInit() {\n    this.data = this.dialogData.data;\n    for (let j = 0; j < this.data.length; j++) {\n      if (this.final.length > 0) {\n        let dataCompare = this.final.filter(x => x.id === this.data[j].ProjectID);\n        if (dataCompare.length > 0) {\n          this.data1.push({\n            'status': dataCompare[0].status,\n            'name': dataCompare[0].name,\n            'data': dataCompare[0].data\n          });\n        }\n        else {\n          this.data1.push({\n            'status': this.data[j].ProjectStatusName,\n            'name': this.data[j].ProjectName,\n          });\n        }\n      }\n      else {\n        this.data1.push({\n          'status': this.data[j].ProjectStatusName,\n          'name': this.data[j].ProjectName,\n\n        });\n      }\n    }\n  }\n\n  close(): void {\n    this.dialogRef.close();\n  }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { DorseyService } from '../dorsey.service';\n\n@Component({\n  selector: 'app-reports',\n  templateUrl: './reports.component.html',\n  // styleUrls: ['./reports.component.scss'],\n  providers: [DorseyService]\n})\nexport class ReportsComponent implements OnInit {\n  index = 0;\n  reportData: any;\n  ReportID;\n  constructor(private router: Router, private dorseyService: DorseyService) { }\n\n  ngOnInit() {\n    this.GetReport();\n    this.ReportID = 1;\n  }\n  onLinkClick(event) {\n    this.index = event.index;\n  }\n  GetReport() {\n    this.dorseyService.GetReport().subscribe(report => {\n      this.reportData = JSON.parse(report[\"_body\"]);\n\n    });\n\n  }\n  report(event) {\n    this.ReportID = event.value;\n  }\n}\n","module.exports = \".close {\\n  color: #aaaaaa;\\n  float: right;\\n  font-size: 28px;\\n  font-weight: bold;\\n  cursor: pointer;\\n  margin-right: -2px;\\n  margin-top: -10px;\\n  top: 0;\\n  right: 0;\\n}\\n\\nbutton {\\n  background-color: gray;\\n  color: white;\\n}\\n\\n.borderless td, .borderless th {\\n  border: none;\\n}\\n\\n#container {\\n  display: flex;\\n  margin: 0;\\n  margin-top: -10px;\\n  margin-bottom: -10px;\\n  padding: 0;\\n  justify-content: space-between;\\n}\\n\\n#heading {\\n  flex: 1;\\n}\\n\\n#wrapper {\\n  flex: 2;\\n}\\n\\n#tableActions {\\n  display: flex;\\n  justify-content: center;\\n}\\n\\n#field, #buttonview {\\n  margin: 2%;\\n}\\n\\n/* #searchField{\\n    width: 100%;\\n} */\\n\\n.alignheader {\\n  text-align: center;\\n}\\n\\n/********For Mobile view ********/\\n\\n@media (max-width: 576px) {\\n  * {\\n    box-sizing: border-box;\\n  }\\n\\n  table {\\n    margin: 2%;\\n  }\\n\\n  #container {\\n    display: flex;\\n    margin: 0;\\n    padding: 0;\\n    flex-direction: column;\\n    justify-content: center;\\n    /* align-items: center;; */\\n    margin: 2%;\\n  }\\n\\n  #wrapper {\\n    width: 100%;\\n  }\\n\\n  #tableActions {\\n    display: flex;\\n    width: 100%;\\n    flex-direction: column;\\n    justify-content: center;\\n  }\\n\\n  #searchField {\\n    width: 100%;\\n  }\\n\\n  .btn {\\n    width: 100%;\\n  }\\n\\n  .mappings {\\n    min-width: 280px;\\n    min-height: 75px;\\n  }\\n\\n  /* #createBtn{\\n      width: 100%;\\n\\n  } */\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcm9sZXMvRjpcXE5pa2lsIFdvcmtcXFByb2plY3RzXFxEb3JzZXlcXEhpZXJhcmNoeSBTb3VyY2UgQ29kZVxcV29ya2luZ1xcZG9yc2V5R3JvdXAvc3JjXFxhcHBcXHJvbGVzXFxkaWFsb2cuc2NzcyIsInNyYy9hcHAvcm9sZXMvZGlhbG9nLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxjQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0MsTUFBQTtFQUNBLFFBQUE7QUNDTDs7QURFQTtFQUNJLHNCQUFBO0VBQ0EsWUFBQTtBQ0NKOztBREVBO0VBQ0ksWUFBQTtBQ0NKOztBREdBO0VBQ0ksYUFBQTtFQUNBLFNBQUE7RUFDQSxpQkFBQTtFQUNBLG9CQUFBO0VBQ0EsVUFBQTtFQUNBLDhCQUFBO0FDQUo7O0FESUE7RUFDSSxPQUFBO0FDREo7O0FER0E7RUFDQSxPQUFBO0FDQUE7O0FERUE7RUFDQSxhQUFBO0VBRUEsdUJBQUE7QUNBQTs7QURJQTtFQUNJLFVBQUE7QUNESjs7QURLQTs7R0FBQTs7QUFJQTtFQUNJLGtCQUFBO0FDSEo7O0FETUMsaUNBQUE7O0FBQ0E7RUFDRztJQUNJLHNCQUFBO0VDSE47O0VETUU7SUFDSSxVQUFBO0VDSE47O0VETUM7SUFDSSxhQUFBO0lBQ0EsU0FBQTtJQUNBLFVBQUE7SUFDQSxzQkFBQTtJQUNBLHVCQUFBO0lBQ0MsMEJBQUE7SUFDRCxVQUFBO0VDSEw7O0VET0M7SUFDSSxXQUFBO0VDSkw7O0VET0M7SUFDQSxhQUFBO0lBQ0EsV0FBQTtJQUNBLHNCQUFBO0lBQ0EsdUJBQUE7RUNKRDs7RURZQztJQUNJLFdBQUE7RUNUTDs7RURZQTtJQUNLLFdBQUE7RUNUTDs7RURZQztJQUNDLGdCQUFBO0lBQ0EsZ0JBQUE7RUNURjs7RURXRTs7O0tBQUE7QUNMSiIsImZpbGUiOiJzcmMvYXBwL3JvbGVzL2RpYWxvZy5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmNsb3NlIHtcclxuICAgIGNvbG9yOiAjYWFhYWFhO1xyXG4gICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgZm9udC1zaXplOiAyOHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IC0ycHg7XHJcbiAgICBtYXJnaW4tdG9wOiAtMTBweDtcclxuICAgICB0b3A6MDtcclxuICAgICByaWdodDowO1xyXG59XHJcblxyXG5idXR0b257XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmF5O1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG59XHJcblxyXG4uYm9yZGVybGVzcyB0ZCwgLmJvcmRlcmxlc3MgdGgge1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgXHJcbn1cclxuXHJcbiNjb250YWluZXJ7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgbWFyZ2luLXRvcDogLTEwcHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAtMTBweDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgIFxyXG5cclxufVxyXG4jaGVhZGluZ3tcclxuICAgIGZsZXg6IDE7XHJcbn1cclxuI3dyYXBwZXJ7XHJcbmZsZXg6IDI7XHJcbn1cclxuI3RhYmxlQWN0aW9uc3tcclxuZGlzcGxheTogZmxleDtcclxuXHJcbmp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cclxufVxyXG5cclxuI2ZpZWxkLCAjYnV0dG9udmlld3tcclxuICAgIG1hcmdpbjogMiU7XHJcbiAgICBcclxufVxyXG5cclxuLyogI3NlYXJjaEZpZWxke1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbn0gKi9cclxuXHJcbi5hbGlnbmhlYWRlciB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbiAvKioqKioqKipGb3IgTW9iaWxlIHZpZXcgKioqKioqKiovXHJcbiBAbWVkaWEgKG1heC13aWR0aDo1NzZweCl7XHJcbiAgICAqe1xyXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICB9XHJcblxyXG4gICAgdGFibGV7XHJcbiAgICAgICAgbWFyZ2luOiAyJTtcclxuICAgIH1cclxuXHJcbiAgICNjb250YWluZXJ7XHJcbiAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgcGFkZGluZzogMDtcclxuICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAvKiBhbGlnbi1pdGVtczogY2VudGVyOzsgKi9cclxuICAgICAgIG1hcmdpbjogMiU7XHJcbiAgIFxyXG4gICB9XHJcblxyXG4gICAjd3JhcHBlcntcclxuICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICB9XHJcbiAgIFxyXG4gICAjdGFibGVBY3Rpb25ze1xyXG4gICBkaXNwbGF5OiBmbGV4O1xyXG4gICB3aWR0aDogMTAwJTtcclxuICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgIFxyXG4gICB9XHJcbiAgICAjaGVhZGluZ3tcclxuICAgICAgIFxyXG4gICAgICBcclxuICAgfVxyXG4gICBcclxuICAgI3NlYXJjaEZpZWxke1xyXG4gICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICBcclxuICAgfVxyXG4gIC5idG57XHJcbiAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgIFxyXG4gICB9XHJcbiAgIC5tYXBwaW5ncyB7XHJcbiAgICBtaW4td2lkdGg6IDI4MHB4O1xyXG4gICAgbWluLWhlaWdodDogNzVweDtcclxuICAgfVxyXG4gICAgLyogI2NyZWF0ZUJ0bntcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgIFxyXG4gICAgfSAqL1xyXG59XHJcbiIsIi5jbG9zZSB7XG4gIGNvbG9yOiAjYWFhYWFhO1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMjhweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWFyZ2luLXJpZ2h0OiAtMnB4O1xuICBtYXJnaW4tdG9wOiAtMTBweDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbn1cblxuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogZ3JheTtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uYm9yZGVybGVzcyB0ZCwgLmJvcmRlcmxlc3MgdGgge1xuICBib3JkZXI6IG5vbmU7XG59XG5cbiNjb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi10b3A6IC0xMHB4O1xuICBtYXJnaW4tYm90dG9tOiAtMTBweDtcbiAgcGFkZGluZzogMDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4jaGVhZGluZyB7XG4gIGZsZXg6IDE7XG59XG5cbiN3cmFwcGVyIHtcbiAgZmxleDogMjtcbn1cblxuI3RhYmxlQWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4jZmllbGQsICNidXR0b252aWV3IHtcbiAgbWFyZ2luOiAyJTtcbn1cblxuLyogI3NlYXJjaEZpZWxke1xuICAgIHdpZHRoOiAxMDAlO1xufSAqL1xuLmFsaWduaGVhZGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vKioqKioqKipGb3IgTW9iaWxlIHZpZXcgKioqKioqKiovXG5AbWVkaWEgKG1heC13aWR0aDogNTc2cHgpIHtcbiAgKiB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gIHRhYmxlIHtcbiAgICBtYXJnaW46IDIlO1xuICB9XG5cbiAgI2NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIC8qIGFsaWduLWl0ZW1zOiBjZW50ZXI7OyAqL1xuICAgIG1hcmdpbjogMiU7XG4gIH1cblxuICAjd3JhcHBlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAjdGFibGVBY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cblxuICAjc2VhcmNoRmllbGQge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLmJ0biB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAubWFwcGluZ3Mge1xuICAgIG1pbi13aWR0aDogMjgwcHg7XG4gICAgbWluLWhlaWdodDogNzVweDtcbiAgfVxuXG4gIC8qICNjcmVhdGVCdG57XG4gICAgICB3aWR0aDogMTAwJTtcblxuICB9ICovXG59Il19 */\"","import { Component, OnInit, Inject } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n  selector: 'app-roles',\n  templateUrl: './roles.component.html',\n})\nexport class RolesComponent implements OnInit {\n  userRoleAssign: any;\n  userData: any;\n  pageName = \"\";\n  index = 0;\n  roleData: any;\n  p: number = 1;\n  rowsOnPage = 10;\n  rowsOnPageSet = [];\n  rowCount: any;\n  dynamicRows = 10;\n  isDesc: boolean = false;\n  column = \"\";\n  direction: number;\n  arrow = true;\n  processPaging = true;\n  saveFilter = [];\n  tempRoleData: any;\n  Roles = [];\n  status = false;\n  headerText: string;\n  RoleName: any;\n  RoleDescription: any;\n  searchtext = '';\n  CompanyID: string;\n  roleID: string;\n  rowID: string;\n  PermissonJosn: any;\n  granualPermissions = {};\n  isDisable = false;\n  disableSearch = false;\n  condition = false;\n  CurrentUser: string;\n  MenuJson: any;\n  MenuPermissions: any;\n  menuData: any;\n  menuID: string;\n  menuName: string;\n  menuRoleID: string;\n  gruanualEdit: any;\n  emproleID: any;\n  compRoleID: any;\n  activities: any;\n  processes: any;\n  ReadOnlyRoleID: any;\n  userTeamID: any;\n  loginCompanyName: any;\n  TeamAdminRoleID: any;\n  TeamMemberRoleID: any;\n  employeeData: any;\n  companyRole: any;\n  empID: any;\n  TeamName: string;\n  teamData: any;\n  userRoleAssignmentData: any;\n  rolesData: any;\n  UserID: any;\n  isScoreCardEnable: boolean = false;\n  constructor(private dorsey: DorseyService, private dialog: MatDialog, private storage: LocalStorageService) {\n    this.CurrentUser = this.storage.retrieve('user');\n    this.menuData = this.storage.retrieve('menuData');\n    this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n    this.menuRoleID = this.storage.retrieve('RoleID');\n    this.emproleID = this.storage.retrieve('EmpRoleID');\n    this.compRoleID = localStorage.getItem('companyRoleID');\n    this.CompanyID = this.storage.retrieve('companyID');\n    this.userTeamID = this.storage.retrieve('TeamID');\n    this.empID = this.storage.retrieve('EmployeeID');\n\n    this.ReadOnlyRoleID = this.storage.retrieve('ReadOnlyRoleID');\n    this.TeamAdminRoleID = this.storage.retrieve('TeamAdminRoleID');\n    this.TeamMemberRoleID = this.storage.retrieve('TeamMemberRoleID');\n    this.isScoreCardEnable = this.storage.retrieve('isScoreCardEnable');\n    this.UserID = this.storage.retrieve('UserID');\n\n    this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n\n  }\n\n  ngOnInit() {\n\n    this.GetEmployee();\n    this.GetProcess();\n    this.GetActivities();\n    this.GetUserROleAssignment();\n    this.getTeam();\n    this.GetUserRoleAssignment();\n\n    this.menuData = this.menuData.filter(x => x.MenuName.toString().toLowerCase() === 'roles');\n\n    if (this.menuData.length > 0) {\n      this.menuName = this.menuData[0][\"MenuName\"];\n      this.menuID = this.menuData[0][\"MenuID\"];\n    }\n    this.dorsey.GetRoles(this.CompanyID).subscribe(roles => {\n      this.Roles = JSON.parse(roles['_body']);\n    });\n    this.GetRoles();\n  }\n\n  CreateRole(type: string) {\n    this.dialogCall(type);\n  }\n\n\n  GetProcess() {\n    this.dorsey.GetSelectedRolesData(this.CompanyID, \"0\", 'KeyProcess').subscribe(process => {\n      this.processes = JSON.parse(process['_body']);\n    });\n  }\n\n  GetUserROleAssignment() {\n    this.dorsey.GetUserRoleAssignment().subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.userRoleAssign = subData;\n    });\n  }\n  GetActivities() {\n    this.dorsey.GetSelectedRolesActivityData(this.CompanyID, \"0\", 'Activities').subscribe(activity => {\n      this.activities = JSON.parse(activity['_body']);\n    });\n  }\n\n\n  dialogCall(msg: string) {\n    const dialogRef = this.dialog.open(RolePermissionsDiaglogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: msg + 'æææ' + false,\n      // width: '50%',\n    });\n\n\n    dialogRef.componentInstance.tempRoleData = this.tempRoleData;\n    dialogRef.componentInstance.roleData = this.roleData;\n    dialogRef.componentInstance.CompanyID = this.CompanyID;\n    dialogRef.componentInstance.CurrentUser = this.CurrentUser;\n\n    dialogRef.componentInstance.menuRoleID = this.menuRoleID;\n    dialogRef.componentInstance.rowID = this.rowID;\n    dialogRef.componentInstance.editedPerissions = this.PermissonJosn;\n    dialogRef.componentInstance.MenuJson = this.MenuJson;\n    dialogRef.componentInstance.processes = this.processes;\n    dialogRef.componentInstance.activities = this.activities;\n    dialogRef.componentInstance.roleID = this.roleID;\n    dialogRef.componentInstance.isScoreCardEnable = this.isScoreCardEnable;\n\n    if (msg === 'edit') {\n      this.status = true;\n      this.headerText = 'Edit Role';\n\n      dialogRef.componentInstance.granualEdit = this.gruanualEdit;\n      dialogRef.componentInstance.RoleName = this.RoleName;\n      dialogRef.componentInstance.RoleDescription = this.RoleDescription;\n      dialogRef.componentInstance.roleID = this.roleID;\n    }\n\n    if (msg === 'new') {\n      this.searchtext = '';\n      this.GetRoles();\n    }\n\n\n    dialogRef.afterClosed().subscribe(result => {\n\n      if (this.searchtext !== '' && this.searchtext !== undefined) {\n        this.Searchtext();\n      }\n      else {\n        this.GetRoles();\n      }\n\n      if (result && result.toString() === 'true') {\n        let statusMsg = '';\n        if (msg === 'new') {\n\n          statusMsg = 'Saved successfully';\n        } else {\n\n          statusMsg = 'Updated successfully';\n        }\n\n        this.GetRoles();\n        const dialogsRefsub = this.dialog.open(RolePermissionsDiaglogComponent, {\n          panelClass: 'custom-dialog-container',\n          data: statusMsg + 'æææ' + false,\n          //  width: '30%'\n        });\n\n        setTimeout(() => {\n          this.GetRoles();\n        }, 500);\n        dialogsRefsub.afterClosed().subscribe(result1 => {\n          this.ifMaxRowAdd();\n          this.dynamicRows = 10;\n          // this.rowsOnPageSet=[];\n\n          if (this.searchtext !== '') {\n            this.Searchtext();\n          }\n          else {\n            this.GetRoles();\n          }\n        });\n      }\n    });\n  }\n  Searchtext() {\n    this.roleData = this.saveFilter;\n    let teamRoles = this.roleData.filter(\n      (item) => {\n        return (\n          (item.RoleName !== null && item.RoleName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n          || (item.RoleDescription !== null && item.RoleDescription.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1));\n      }\n\n    );\n    this.roleData = teamRoles;\n\n    if (this.roleData.length == 0) {\n      this.isDisable = true;\n    } else {\n      this.isDisable = false;\n    }\n    if (this.searchtext === '') {\n      this.roleData = this.saveFilter;\n      this.rowCount = this.roleData.length;\n      this.isDisable = false;\n      this.getRolePagination(this.rowCount);\n    }\n    else {\n      this.rowCount = teamRoles.length;\n      this.getRolePagination(this.rowCount);\n      if (this.rowsOnPageSet.length === 1) {\n        if (this.rowsOnPageSet[0] <= 10)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n    }\n\n  }\n\n  getRolePagination(RowCount): void {\n    this.dynamicRows = 10;\n    this.rowsOnPageSet = [];\n    this.rowsOnPage = 10;\n    this.rowCount = RowCount;\n    while (this.dynamicRows < this.rowCount) {\n      this.rowsOnPageSet.push(this.dynamicRows);\n      this.dynamicRows = this.dynamicRows + 10;\n    }\n    if (!this.rowsOnPageSet.includes(this.rowCount)) {\n      this.rowsOnPageSet.push(this.rowCount);\n      if (this.rowsOnPageSet.length === 1) {\n        if (this.rowsOnPageSet[0] <= 10)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n    }\n  }\n  GetUserRoleAssignment() {\n    this.dorsey.GetUserRoleAssignment().subscribe(userRoles => {\n      this.userRoleAssignmentData = JSON.parse(userRoles['_body']);\n      this.dorsey.GetRoles(this.CompanyID).subscribe(users => {\n        this.rolesData = JSON.parse(users['_body']);\n        if (this.empID.toString() !== '0') {\n          let roles = this.userRoleAssignmentData.filter(x => x.UserID === this.UserID);\n          if (roles.length > 0) {\n            this.emproleID = roles[0].RoleID;\n            let roleData = this.rolesData.filter(x => x.RoleID === this.emproleID);\n            if (roleData.length > 0) {\n              this.MenuPermissions = JSON.parse(roleData[0].MenuJson);\n            }\n\n          }\n        }\n      });\n    });\n  }\n  GetEmployee() {\n    this.dorsey.GetEmployee(this.CompanyID).subscribe(subData => {\n\n      subData = JSON.parse(subData['_body']);\n      this.employeeData = subData;\n\n      if (this.empID.toString() !== '0') {\n        let filterEmp = this.employeeData.filter(x => x.EmployeeID === this.empID);\n        if (filterEmp.length > 0) {\n          this.userTeamID = filterEmp[0].TeamID;\n        }\n      }\n    });\n  }\n  exportAsXLSX() {\n    let allData = JSON.parse(JSON.stringify(this.roleData));\n    for (let i = 0; i < allData.length; i++) {\n      allData[i].Role = allData[i].RoleName;\n      allData[i].Description = allData[i].RoleDescription;\n      delete (allData[i].CompanyID);\n      delete (allData[i].RowID);\n      delete (allData[i].RoleID);\n      delete (allData[i].UpdatedBy);\n      delete (allData[i].UpdatedDate);\n      delete (allData[i].CreatedBy);\n      delete (allData[i].CreatedDate);\n      delete (allData[i].IsActive);\n      delete (allData[i].MenuJson);\n      delete (allData[i].PermissionJson);\n      delete (allData[i].RoleName);\n      delete (allData[i].RoleDescription);\n    }\n\n\n    this.dorsey.generateExcel(allData, this.loginCompanyName + '_roles' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Roles', \"Company: \" + this.loginCompanyName, '', 'Roles Report', copyRight, 'FFFFFF00', 'FF0000FF');\n  }\n  getTeam() {\n    this.TeamName = '';\n    this.dorsey.GetTeam(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.teamData = subData;\n      let tempData = this.teamData.filter(x => x.TeamID === this.userTeamID);\n      if (tempData.length > 0) {\n        this.TeamName = tempData[0].TeamName;\n      }\n    });\n  }\n\n  GetRoles() {\n    this.roleData = [];\n    this.dorsey.GetRoles(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.dorsey.GetUsersList().subscribe(users => {\n        this.userData = JSON.parse(users['_body']);\n        this.roleData = subData;\n        this.tempRoleData = subData;\n        this.dynamicRows = 10;\n        this.rowsOnPageSet = [];\n        if (this.roleData.length === 0) {\n          this.processPaging = false;\n          this.isDisable = true;\n          this.disableSearch = true;\n        }\n        else {\n          if (this.userTeamID !== \"0\" && this.userTeamID !== null && this.CompanyID.toString() !== \"0\") {\n            let data = this.userData.filter(x => x.CompanyID === this.CompanyID);\n            this.companyRole = data;\n            if (data.length > 0) {\n              let assignROle = this.userRoleAssign.filter(x => x.UserID === data[0].UserID);\n              if (assignROle.length > 0) {\n                let roles = this.roleData.filter(x => x.RoleID != assignROle[0].RoleID);\n                this.roleData = roles;\n                let filterROle = this.roleData.filter(x => x.RoleName === \"Team Admin\" && x.RoleID === this.emproleID);\n                if (filterROle.length > 0) {\n                }\n                else {\n                  let adminRole = this.roleData.filter(x => x.RoleID !== this.TeamAdminRoleID);\n                  this.roleData = adminRole;\n                  let memberRole = adminRole.filter(x => x.RoleName === \"Team Member\" && x.RoleID === this.emproleID)\n                  if (memberRole.length > 0) {\n                  }\n                  else {\n                    let emproles = adminRole.filter(x => x.RoleID === this.emproleID);\n                    if (emproles.length > 0) {\n                      this.roleData = emproles\n                    }\n                    else {\n                      this.roleData = adminRole;\n                    }\n                  }\n                }\n\n              }\n            }\n            this.rowCount = this.roleData.length;\n            this.saveFilter = JSON.parse(JSON.stringify(this.roleData));\n            this.processPaging = true;\n            this.isDisable = false;\n            this.disableSearch = false;\n\n            this.getRolePagination(this.rowCount);\n\n          }\n          else {\n            this.rowCount = this.roleData.length;\n            this.saveFilter = JSON.parse(JSON.stringify(this.roleData));\n            this.processPaging = true;\n            this.isDisable = false;\n            this.disableSearch = false;\n            this.getRolePagination(this.rowCount);\n\n          }\n        }\n      });\n    });\n  }\n\n  sort(property) {\n    this.arrow = !this.arrow;\n    this.isDesc = !this.isDesc; //change the direction    \n    this.column = property;\n    this.direction = this.isDesc ? 1 : -1;\n  }\n\n  EditRole(element) {\n    this.RoleName = element.RoleName;\n    this.RoleDescription = element.RoleDescription;\n    this.roleID = element.RoleID;\n    this.MenuJson = element.PermissionJson;\n    this.gruanualEdit = element.PermissionJson;\n    this.rowID = element.RowID;\n    this.PermissonJosn = element.MenuJson;\n    this.dialogCall('edit');\n  }\n\n  ifMaxRowDelete() {\n    if (this.rowsOnPage == this.roleData.length) {\n      this.rowsOnPage = this.rowsOnPage - 1;\n    }\n  }\n\n  ifMaxRowAdd() {\n    if (this.rowsOnPage == this.roleData.length) {\n      this.rowsOnPage = this.rowsOnPage + 1;\n    }\n  }\n\n  DeleteRole(element) {\n    this.rowID = element.RowID;\n    const dialogRef = this.dialog.open(RolePermissionsDiaglogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: 'Are you sure you want to delete role: ' + element.RoleName + '?æææ' + true,\n    });\n\n    dialogRef.afterClosed().subscribe(result => {\n      if (result) {\n        let issueCount = 0\n        for (let i = 0; i < this.employeeData.length; i++) {\n          if (element.RoleID == this.employeeData[i].RoleID) {\n            issueCount++;\n          }\n        }\n        if (!issueCount) {\n          this.dorsey.DeleteRole(this.rowID).subscribe(data => {\n            if (data.ok) {\n              this.ifMaxRowDelete();\n              this.condition = true;\n              this.dialogCall('Deleted successfully');\n            }\n            this.dynamicRows = 10;\n            this.rowsOnPageSet = [];\n            this.GetRoles();\n\n          });\n        } else {\n          this.dialogCall(\"This role is in use\");\n        }\n      }\n    });\n  }\n}\n\n@Component({\n  selector: 'app-role-dialog',\n  templateUrl: './dialog.html',\n  styleUrls: ['./dialog.scss']\n})\n\nexport class RolePermissionsDiaglogComponent implements OnInit {\n  tempRoleData: any;\n  CurrentUser: string;\n  dataSelf: string;\n  condition = false;\n  teams = [];\n  processes = [];\n  activities = [];\n  MainJson = {};\n  MainJosnIds = {};\n  teamCheckList = [];\n  processCheckList = [];\n  activityCheckList = [];\n  mapCheck = false;\n  showGranual = false;\n  roleData: any;\n  RoleName: any;\n  RoleDescription: any;\n  CompanyID: string;\n  permissionsList = ['R', 'C', 'U', 'D'];\n  teamList = [];\n  processList = [];\n  activityList = [];\n  mapList = [];\n  checkedList: any;\n  checkedList2 = [];\n  checkedList3: any;\n  perDict = [];\n  checkedList4 = [];\n  PermissonJosn = {};\n\n  granual = {};\n  editedPerissions: any;\n  MenuJson: any;\n  MapPermission = {};\n  TeamPermisson = {};\n  ProcessPermissons = {};\n  ActivityPermissions = {};\n  menuPermissions = {};\n  memuKeys = {};\n  MapKeys = {};\n  TeamKeys = {};\n  ProcessKeys = {};\n  activityKeys = {};\n  menuRoleID: string;\n  companyMenuKeys = { R: false, C: false, U: false, D: false };\n  teamMenuKeys = { R: false, C: false, U: false, D: false };\n  EmployeeMenuKeys = { R: false, C: false, U: false, D: false };\n  ProcessMapMenuKeys = { R: false, C: false, U: false, D: false };\n  processMenuKeys = { R: false, C: false, U: false, D: false };\n  activityMenuKeys = { R: false, C: false, U: false, D: false };\n  metricMenuKeys = { R: false, C: false, U: false, D: false };\n  frustrationMenuKeys = { R: false, C: false, U: false, D: false };\n  projectsMenuKeys = { R: false, C: false, U: false, D: false };\n  casesMenuKeys = { R: false, C: false, U: false, D: false };\n  ReportsMenuKeys = { R: false, C: false, U: false, D: false };\n  rolesMenuKeys = { R: false, C: false, U: false, D: false };\n  frustrationsTypeMenuKeys = { R: false, C: false, U: false, D: false };\n  alertTypeMenukeys = { R: false, C: false, U: false, D: false };\n  metricTableMenuKeys = { R: false, C: false, U: false, D: false };\n  userManualMenuKeys = { R: false, C: false, U: false, D: false };\n\n  departmentMenuKeys = { R: false, C: false, U: false, D: false };\n  goalMenuKeys = { R: false, C: false, U: false, D: false };\n  scoreCardMenuKeys = { R: false, C: false, U: false, D: false };\n  quarterMenuKeys = { R: false, C: false, U: false, D: false };\n\n  mapGranualKeys = { R: false, C: false, U: false, D: false };\n  processGranualkeys = { R: false, C: false, U: false, D: false };\n  activitiesGranualKeys = { R: false, C: false, U: false, D: false };\n  teamGranualKeys = { R: false, C: false, U: false, D: false };\n\n  companyMenuPermissions = {};\n  teamMenuPermissions = {};\n  EmployeeMenuPermissions = {};\n  ProcessMapMenuPermissions = {};\n  processMenuPermissions = {};\n  activityMenuPermissions = {};\n  metricMenuPermissions = {};\n  frustrationMenuPermissions = {};\n  projectsMenuPermissions = {};\n  casesMenuPermissions = {};\n  ReportsMenuPermissions = {};\n  rolesMenuPermissions = {};\n  frustrationsTypeMenuPermissions = {};\n  alertTypeMenyPermissions = {};\n  metricTableMenuPermissions = {};\n  userManualTableMenuPermissions = {};\n  departmentTableMenuPermissions = {};\n  goalTableMenuPermissions = {};\n  scoreCardTableMenuPermissions = {};\n  quarterTableMenuPermissions = {};\n  granualEdit: any;\n  granualPermissions = {};\n  parentGranuls = ['Map', 'Team', 'Activity', 'Process']\n\n  rowID = '';\n  roleID = '';\n  menuData = [];\n  errorMessage: string;\n  newPermissions = {};\n  newGranualPermissions = {};\n  checked = false;\n  checkedCB = {};\n  btnDisabled = false;\n  isScoreCardEnable: boolean = false;\n  constructor(public dialogRef: MatDialogRef<RolePermissionsDiaglogComponent>,\n    @Inject(MAT_DIALOG_DATA) public data: any, public dorseyService: DorseyService, private dialog: MatDialog) {\n    //  dialogRef.disableClose=true;\n    this.data = this.data.split('æææ');\n\n    if (this.data[1] === 'true') {\n      this.condition = true;\n    } else {\n      this.condition = false;\n    }\n    this.data = this.data[0];\n\n  }\n\n  ngOnInit() {\n    this.MainJson = [];\n    let savePermissions = {};\n\n    if (this.menuRoleID === '' || this.menuRoleID === undefined || this.menuRoleID.toString() === '0') {\n      let tempRoles = this.tempRoleData;\n      this.tempRoleData = tempRoles.filter(x => x.CompanyID === this.CompanyID);\n    }\n    if (this.data == 'edit') {\n      this.PermissonJosn = JSON.parse(this.editedPerissions);\n      this.companyMenuKeys = this.PermissonJosn['Company']['101'];\n      this.rolesMenuKeys = this.PermissonJosn['Roles']['102'];\n      this.EmployeeMenuKeys = this.PermissonJosn['Employee']['103'];\n      this.processMenuKeys = this.PermissonJosn['Process']['104'];\n      this.teamMenuKeys = this.PermissonJosn['Team']['105'];\n      this.ProcessMapMenuKeys = this.PermissonJosn['ProcessMap']['106'];\n      this.activityMenuKeys = this.PermissonJosn['Activity']['107'];\n      this.metricMenuKeys = this.PermissonJosn['Metric']['108'];\n      this.frustrationMenuKeys = this.PermissonJosn['Frustration']['109'];\n      this.projectsMenuKeys = this.PermissonJosn['Projects']['110'];\n      this.casesMenuKeys = this.PermissonJosn['Frustrations']['111'];\n      this.ReportsMenuKeys = this.PermissonJosn['Reports']['112'];\n      this.frustrationsTypeMenuKeys = this.PermissonJosn['FrustrationsType']['113'];\n      this.alertTypeMenukeys = this.PermissonJosn['Alerts']['114'];\n      this.metricTableMenuKeys = this.PermissonJosn['Metric Table']['115'];\n      this.departmentMenuKeys = this.PermissonJosn['Departments']['117'];\n      this.goalMenuKeys = this.PermissonJosn['Goals']['118'];\n      this.scoreCardMenuKeys = this.PermissonJosn['Score Card']['119'];\n      this.quarterMenuKeys = this.PermissonJosn['Quarter']['120'];\n      this.MenuJson = JSON.parse(this.granualEdit);\n      savePermissions = this.PermissonJosn;\n    }\n    else {\n      this.rowID = '';\n      this.PermissonJosn = {};\n      savePermissions = {};\n      if (this.menuRoleID) {\n        this.newPermissions = JSON.parse(this.tempRoleData[0].MenuJson);\n        if (this.tempRoleData[0].PermissionJson === '') {\n        }\n        else {\n          this.granualPermissions = JSON.parse(this.tempRoleData[0].PermissionJson);\n        }\n      }\n      else {\n        this.newPermissions = JSON.parse(this.tempRoleData[0].MenuJson);\n        if (this.tempRoleData[0].PermissionJson === '') {\n        }\n        else {\n          this.granualPermissions = JSON.parse(this.tempRoleData[0].PermissionJson);\n        }\n      }\n      savePermissions = this.newPermissions;\n      this.PermissonJosn = this.newPermissions;\n      this.MenuJson = this.granualPermissions;\n      let company = {};\n      company['101'] = {\n        'R': true,\n        'C': true,\n        'U': true,\n        'D': true,\n      }\n      let menusList = Object.keys(this.newPermissions);\n      for (let i = 0; i < menusList.length; i++) {\n        let menuIds = Object.keys(this.newPermissions[menusList[i]]);\n        let subLevel = this.newPermissions[menusList[i]];\n        for (let j = 0; j < menuIds.length; j++) {\n          this.newPermissions[menusList[i]][menuIds[j]]['R'] = false;\n          this.newPermissions[menusList[i]][menuIds[j]]['C'] = false;\n          this.newPermissions[menusList[i]][menuIds[j]]['U'] = false;\n          this.newPermissions[menusList[i]][menuIds[j]]['D'] = false;\n        }\n      }\n    }\n    this.CreateJson(this.MenuJson);\n    this.GetMenuMaster();\n    if (this.data === 'new') {\n      this.newPermissions['ProcessMap']['106']['R'] = true;\n      this.newPermissions['Score Card']['119']['R'] = true;\n    }\n  }\n  GetMenuMaster() {\n    this.dorseyService.GetMenuMaster().subscribe(subData => {\n      this.menuData = JSON.parse(subData['_body']);\n      if (!this.isScoreCardEnable) {\n        this.menuData = this.menuData.filter(ent => ent.MenuName != 'Score Card');\n\n      }\n    });\n  }\n\n  onYesClick() {\n    this.dialogRef.close(true);\n  }\n  onNoClick(): void {\n    this.dialogRef.close();\n  }\n\n  CreateJson(savePermissions) {\n    this.MainJson = {};\n    this.teams = [];\n    this.mapList = [];\n    this.activityList = [];\n    this.processList = [];\n    this.MainJosnIds = [];\n    this.teamList = [];\n    this.dorseyService.GetTeam(this.CompanyID).subscribe(teams => {\n      this.teams = JSON.parse(teams['_body']);\n\n      if (this.rowID) {\n        if (!(Object.keys(savePermissions).indexOf('Map') < -1)) {\n        }\n        if (savePermissions[\"Map\"]) {\n          let mapKeys = Object.keys(savePermissions[\"Map\"]);\n          for (let i = 0; i < mapKeys.length; i++) {\n            {\n              let perkeys = Object.keys(savePermissions[\"Map\"][mapKeys[i]]);\n              let perTemkeys = {};\n              for (let j = 0; j < perkeys.length; j++) {\n                perTemkeys[perkeys[j]] = savePermissions[\"Map\"][mapKeys[i]][perkeys[j]];\n              }\n              this.mapList['Map'] = perTemkeys;\n            }\n          }\n        }\n      }\n\n      let i = 0;\n      let j = 0;\n      if (this.teams.length === 0) {\n        this.showGranual = false;\n      }\n      else {\n\n        this.showGranual = true;\n      }\n\n      this.teams.forEach(cteam => {\n        let subJson = {};\n        let ListProcess = {};\n\n        this.teamCheckList[cteam.TeamName + \"æææ\" + cteam.TeamID] = false;\n        i++;\n\n        this.processes.forEach(cprocess => {\n          const ActivityList = [];\n          if (cprocess.TeamID === cteam.TeamID) {\n            this.processCheckList[cprocess.ProcessName + \"æææ\" + cprocess.ProcessID] = false;\n            j++;\n            {\n              const activityIds = [];\n              this.activities.forEach(cactivity => {\n                if (cprocess.ProcessID === cactivity.ProcessID && cprocess.TeamID === cteam.TeamID && cactivity.TeamID === cteam.TeamID) {\n                  ActivityList.push(cactivity.ActivityName + \"æææ\" + cactivity.ActivityID);\n                  activityIds.push(cactivity.ActivityID);\n                  if (this.rowID) {\n                    if (savePermissions[\"Activity\"]) {\n                      let activityKeys = Object.keys(savePermissions[\"Activity\"]);\n                      for (let i = 0; i < activityKeys.length; i++) {\n                        if (Number(cactivity.ActivityID) === Number(activityKeys[i])) {\n                          let perkeys = Object.keys(savePermissions[\"Activity\"][activityKeys[i]]);\n                          let perTemkeys = {};\n                          for (let j = 0; j < perkeys.length; j++) {\n                            perTemkeys[perkeys[j]] = savePermissions[\"Activity\"][activityKeys[i]][perkeys[j]];\n                          }\n                          this.activityList[cactivity.ActivityID] = perTemkeys;\n                        } else {\n                          let actvitykeysdummy = { R: false, C: false, D: false, U: false }\n                          this.activityList[cactivity.ActivityID] = actvitykeysdummy;\n                        }\n\n                      }\n                    }\n                  }\n                }\n              });\n\n              ListProcess[cprocess.ProcessID] = activityIds;\n\n              if (this.rowID) {\n                if (savePermissions['Process']) {\n                  let processKeys = Object.keys(savePermissions[\"Process\"]);\n                  if (processKeys.indexOf(cprocess.ProcessID) > -1) {\n                  }\n                  else {\n                    this.processList[cprocess.ProcessID] = [];\n                  }\n                  for (let i = 0; i < processKeys.length; i++) {\n                    if (Number(cprocess.ProcessID) === Number(processKeys[i])) {\n                      let perkeys = Object.keys(savePermissions[\"Process\"][processKeys[i]]);\n                      let perTemkeys = {};\n                      for (let j = 0; j < perkeys.length; j++) {\n                        perTemkeys[perkeys[j]] = savePermissions[\"Process\"][processKeys[i]][perkeys[j]];\n                      }\n                      this.processList[cprocess.ProcessID] = perTemkeys;\n                    }\n                    else {\n                      let processkeysdummy = { R: false, C: false, D: false, U: false }\n                      this.processList[cprocess.ProcessID] = processkeysdummy;\n                    }\n                  }\n                }\n              }\n            }\n            subJson[cprocess.ProcessName + \"æææ\" + cprocess.ProcessID] = ActivityList;\n          }\n        });\n\n\n        if (this.rowID) {\n          if (!(Object.keys(savePermissions).indexOf('Team') < -1)) {\n            //   this.showGranual=false;\n            // return;\n          }\n          if (savePermissions[\"Team\"]) {\n            let temKeys = Object.keys(savePermissions[\"Team\"]);\n\n\n            for (let i = 0; i < temKeys.length; i++) {\n\n              if (Number(cteam.TeamID) === Number(temKeys[i])) {\n                let perkeys = Object.keys(savePermissions[\"Team\"][temKeys[i]]);\n                let perTemkeys = {};\n                for (let j = 0; j < perkeys.length; j++) {\n\n                  perTemkeys[perkeys[j]] = savePermissions[\"Team\"][temKeys[i]][perkeys[j]];\n\n                }\n\n                this.teamList[cteam.TeamID] = perTemkeys;\n              } else {\n                let teamkeysdummy = { R: false, C: false, D: false, U: false }\n                this.teamList[cteam.TeamID] = teamkeysdummy;\n              }\n            }\n          }\n        }\n        this.MainJosnIds[cteam.TeamID] = ListProcess;\n        this.MainJson[cteam.TeamName + \"æææ\" + cteam.TeamID] = subJson;\n      });\n\n    });\n  }\n\n\n  close(): void {\n    this.dialogRef.close();\n  }\n  onCheckboxChange(MapType, key, permissonType, event, type) {\n    if (MapType === 'Map') {\n      this.mapGranualKeys[permissonType] = event.checked;\n      this.MapPermission[key] = this.mapGranualKeys;\n      if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n\n        this.mapGranualKeys['R'] = true;\n      }\n      if (permissonType == 'R' && !event.checked) {\n        this.mapGranualKeys['C'] = false;\n        this.mapGranualKeys['U'] = false;\n        this.mapGranualKeys['D'] = false;\n      }\n\n      if (type == 'edit') {\n        let prePermisn = {};\n        prePermisn = this.MenuJson['Map']['ProcessMap'];\n        prePermisn[permissonType] = event.checked;\n        this.MenuJson['Map']['ProcessMap'] = prePermisn;\n      } else {\n        this.granual[MapType] = this.MapPermission;\n      }\n\n    }\n\n    else if (MapType === 'Team') {\n      this.teamGranualKeys[permissonType] = event.checked;\n      this.TeamPermisson[key] = this.teamGranualKeys;\n      if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n        this.teamGranualKeys['R'] = true;\n      }\n      if (permissonType == 'R' && !event.checked) {\n        this.teamGranualKeys['C'] = false;\n        this.teamGranualKeys['U'] = false;\n        this.teamGranualKeys['D'] = false;\n      }\n\n      if (type == 'edit') {\n        let prePermisn = {};\n        let keysList = Object.keys(this.MenuJson['Team']);\n        if (keysList.indexOf(key) > -1) {\n          prePermisn = this.MenuJson['Team'][key];\n        } else {\n          prePermisn = { R: false, C: false, U: false, D: false };\n          this.MenuJson['Team'][key] = prePermisn;\n        }\n        prePermisn[permissonType] = event.checked;\n        this.MenuJson['Team'][key] = prePermisn;\n      } else {\n        this.granual[MapType] = this.TeamPermisson;\n      }\n\n    }\n\n    else if (MapType === 'Process') {\n      this.processGranualkeys[permissonType] = event.checked;\n      this.ProcessPermissons[key] = this.processGranualkeys;\n      if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n\n        this.processGranualkeys['R'] = true;\n      }\n      if (permissonType == 'R' && !event.checked) {\n        this.processGranualkeys['C'] = false;\n        this.processGranualkeys['U'] = false;\n        this.processGranualkeys['D'] = false;\n      }\n      if (type == 'edit') {\n        let prePermisn = {};\n        let keysList = Object.keys(this.MenuJson['Process']);\n        if (keysList.indexOf(key) > -1) {\n          prePermisn = this.MenuJson['Process'][key];\n        } else {\n          prePermisn = { R: false, C: false, U: false, D: false };\n          this.MenuJson['Process'][key] = prePermisn;\n        }\n        prePermisn[permissonType] = event.checked;\n        this.MenuJson['Process'][key] = prePermisn;\n      } else {\n\n        this.granual[MapType] = this.ProcessPermissons;\n      }\n\n    }\n\n    else if (MapType === 'Activity') {\n      this.activitiesGranualKeys[permissonType] = event.checked;\n      this.ActivityPermissions[key] = this.activitiesGranualKeys;\n      if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n\n        this.activitiesGranualKeys['R'] = true;\n      }\n      if (permissonType == 'R' && !event.checked) {\n        this.activitiesGranualKeys['C'] = false;\n        this.activitiesGranualKeys['U'] = false;\n        this.activitiesGranualKeys['D'] = false;\n      }\n      if (type == 'edit') {\n        let prePermisn = {};\n        let keysList = Object.keys(this.MenuJson['Activity']);\n        if (keysList.indexOf(key) > -1) {\n          prePermisn = this.MenuJson['Activity'][key];\n        } else {\n          prePermisn = { R: false, C: false, U: false, D: false };\n          this.MenuJson['Activity'][key] = prePermisn;\n        }\n        prePermisn[permissonType] = event.checked;\n        this.MenuJson['Activity'][key] = prePermisn;\n      } else {\n\n        this.granual[MapType] = this.ActivityPermissions;\n      }\n\n    }\n  }\n\n  onCheckboxMenuChange(MapType, key, permissonType, event, type) {\n    if (permissonType == 'C') {\n      this.checkedCB['C'] = false;\n    }\n    if (permissonType == 'U') {\n      this.checkedCB['U'] = false;\n    }\n    if (permissonType == 'D') {\n      this.checkedCB['D'] = false;\n    }\n    if (MapType === 'Company') {\n      this.companyMenuKeys[permissonType] = event.checked;\n      this.companyMenuPermissions[key] = this.companyMenuKeys;\n      if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n        this.companyMenuKeys['R'] = true;\n      }\n      if (permissonType == 'R' && !event.checked) {\n        this.companyMenuKeys['C'] = false;\n        this.companyMenuKeys['U'] = false;\n        this.companyMenuKeys['D'] = false;\n        this.checkedCB['R'] = false;\n        this.checkedCB['C'] = false;\n        this.checkedCB['U'] = false;\n        this.checkedCB['D'] = false;\n      }\n      if (type == 'edit') {\n        this.PermissonJosn['Company'] = this.companyMenuPermissions;\n      } else {\n        this.newPermissions[MapType] = this.companyMenuPermissions;\n      }\n    } else if (MapType === 'Team') {\n      this.teamMenuKeys[permissonType] = event.checked;\n      this.teamMenuPermissions[key] = this.teamMenuKeys;\n      if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n        this.teamMenuKeys['R'] = true;\n      }\n      if (permissonType == 'R' && !event.checked) {\n        this.teamMenuKeys['C'] = false;\n        this.teamMenuKeys['U'] = false;\n        this.teamMenuKeys['D'] = false;\n        this.checkedCB['R'] = false;\n        this.checkedCB['C'] = false;\n        this.checkedCB['U'] = false;\n        this.checkedCB['D'] = false;\n      }\n      if (type == 'edit') {\n        this.PermissonJosn['Team'] = this.teamMenuPermissions;\n      } else {\n        this.newPermissions[MapType] = this.teamMenuPermissions;\n      }\n    } else if (MapType === 'Employee') {\n      this.EmployeeMenuKeys[permissonType] = event.checked;\n      this.EmployeeMenuPermissions[key] = this.EmployeeMenuKeys;\n      if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n        this.EmployeeMenuKeys['R'] = true;\n      }\n      if (permissonType == 'R' && !event.checked) {\n        this.EmployeeMenuKeys['C'] = false;\n        this.EmployeeMenuKeys['U'] = false;\n        this.EmployeeMenuKeys['D'] = false;\n        this.checkedCB['R'] = false;\n        this.checkedCB['C'] = false;\n        this.checkedCB['U'] = false;\n        this.checkedCB['D'] = false;\n      }\n      if (type == 'edit') {\n        this.PermissonJosn['Employee'] = this.EmployeeMenuPermissions;\n      } else {\n        this.newPermissions[MapType] = this.EmployeeMenuPermissions;\n      }\n    } else if (MapType === 'ProcessMap') {\n      this.ProcessMapMenuKeys[permissonType] = event.checked;\n      this.ProcessMapMenuPermissions[key] = this.ProcessMapMenuKeys;\n      if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n        this.ProcessMapMenuKeys['R'] = true;\n      }\n      if (permissonType == 'R' && !event.checked) {\n        this.ProcessMapMenuKeys['C'] = false;\n        this.ProcessMapMenuKeys['U'] = false;\n        this.ProcessMapMenuKeys['D'] = false;\n        this.checkedCB['R'] = false;\n        this.checkedCB['C'] = false;\n        this.checkedCB['U'] = false;\n        this.checkedCB['D'] = false;\n      }\n      if (type == 'edit') {\n        this.PermissonJosn['ProcessMap'] = this.ProcessMapMenuPermissions;\n      } else {\n        this.newPermissions[MapType] = this.ProcessMapMenuPermissions;\n      }\n    } else if (MapType === 'Process') {\n      this.processMenuKeys[permissonType] = event.checked;\n      this.processMenuPermissions[key] = this.processMenuKeys;\n      if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n\n        this.processMenuKeys['R'] = true;\n      }\n      if (permissonType == 'R' && !event.checked) {\n        this.processMenuKeys['C'] = false;\n        this.processMenuKeys['U'] = false;\n        this.processMenuKeys['D'] = false;\n        this.checkedCB['R'] = false;\n        this.checkedCB['C'] = false;\n        this.checkedCB['U'] = false;\n        this.checkedCB['D'] = false;\n      }\n      if (type == 'edit') {\n        this.PermissonJosn['Process'] = this.processMenuPermissions;\n      } else {\n        this.newPermissions[MapType] = this.processMenuPermissions;\n      }\n    } else if (MapType === 'Activity') {\n      this.activityMenuKeys[permissonType] = event.checked;\n      this.activityMenuPermissions[key] = this.activityMenuKeys;\n      if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n        this.activityMenuKeys['R'] = true;\n      }\n      if (permissonType == 'R' && !event.checked) {\n        this.activityMenuKeys['C'] = false;\n        this.activityMenuKeys['U'] = false;\n        this.activityMenuKeys['D'] = false;\n        this.checkedCB['R'] = false;\n        this.checkedCB['C'] = false;\n        this.checkedCB['U'] = false;\n        this.checkedCB['D'] = false;\n      }\n      if (type == 'edit') {\n        this.PermissonJosn['Activity'] = this.activityMenuPermissions;\n      } else {\n        this.newPermissions[MapType] = this.activityMenuPermissions;\n      }\n    } else if (MapType === 'Metric') {\n      this.metricMenuKeys[permissonType] = event.checked;\n      this.metricMenuPermissions[key] = this.metricMenuKeys;\n      if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n        this.metricMenuKeys['R'] = true;\n      }\n      if (permissonType == 'R' && !event.checked) {\n        this.metricMenuKeys['C'] = false;\n        this.metricMenuKeys['U'] = false;\n        this.metricMenuKeys['D'] = false;\n        this.checkedCB['R'] = false;\n        this.checkedCB['C'] = false;\n        this.checkedCB['U'] = false;\n        this.checkedCB['D'] = false;\n      }\n      if (type == 'edit') {\n        this.PermissonJosn['Metric'] = this.metricMenuPermissions;\n      } else {\n        this.newPermissions[MapType] = this.metricMenuPermissions;\n      }\n    }\n    else if (MapType === 'Frustration') {\n      this.frustrationMenuKeys[permissonType] = event.checked;\n      this.frustrationMenuPermissions[key] = this.frustrationMenuKeys;\n      if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n\n        this.frustrationMenuKeys['R'] = true;\n      }\n      if (permissonType == 'R' && !event.checked) {\n        this.frustrationMenuKeys['C'] = false;\n        this.frustrationMenuKeys['U'] = false;\n        this.frustrationMenuKeys['D'] = false;\n        this.checkedCB['R'] = false;\n        this.checkedCB['C'] = false;\n        this.checkedCB['U'] = false;\n        this.checkedCB['D'] = false;\n      }\n      if (type == 'edit') {\n        this.PermissonJosn['Frustration'] = this.frustrationMenuPermissions;\n      } else {\n        this.newPermissions[MapType] = this.frustrationMenuPermissions;\n      }\n    } else if (MapType === 'Projects') {\n      this.projectsMenuKeys[permissonType] = event.checked;\n      this.projectsMenuPermissions[key] = this.projectsMenuKeys;\n      if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n\n        this.projectsMenuKeys['R'] = true;\n      }\n      if (permissonType == 'R' && !event.checked) {\n        this.projectsMenuKeys['C'] = false;\n        this.projectsMenuKeys['U'] = false;\n        this.projectsMenuKeys['D'] = false;\n        this.checkedCB['R'] = false;\n        this.checkedCB['C'] = false;\n        this.checkedCB['U'] = false;\n        this.checkedCB['D'] = false;\n      }\n\n      if (type == 'edit') {\n        this.PermissonJosn['Projects'] = this.projectsMenuPermissions;\n      } else {\n        this.newPermissions[MapType] = this.projectsMenuPermissions;\n      }\n    } else if (MapType === 'Frustrations') {\n      this.casesMenuKeys[permissonType] = event.checked;\n      this.casesMenuPermissions[key] = this.casesMenuKeys;\n      if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n\n        this.casesMenuKeys['R'] = true;\n      }\n      if (permissonType == 'R' && !event.checked) {\n        this.casesMenuKeys['C'] = false;\n        this.casesMenuKeys['U'] = false;\n        this.casesMenuKeys['D'] = false;\n        this.checkedCB['R'] = false;\n        this.checkedCB['C'] = false;\n        this.checkedCB['U'] = false;\n        this.checkedCB['D'] = false;\n      }\n      if (type == 'edit') {\n        this.PermissonJosn['Frustrations'] = this.casesMenuPermissions;\n      } else {\n        this.newPermissions[MapType] = this.casesMenuPermissions;\n      }\n    }\n    else if (MapType === 'Reports') {\n      this.ReportsMenuKeys[permissonType] = event.checked;\n      this.ReportsMenuPermissions[key] = this.ReportsMenuKeys;\n      if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n        this.ReportsMenuKeys['R'] = true;\n      }\n      if (permissonType == 'R' && !event.checked) {\n        this.ReportsMenuKeys['C'] = false;\n        this.ReportsMenuKeys['U'] = false;\n        this.ReportsMenuKeys['D'] = false;\n        this.checkedCB['R'] = false;\n        this.checkedCB['C'] = false;\n        this.checkedCB['U'] = false;\n        this.checkedCB['D'] = false;\n      }\n      if (type == 'edit') {\n        this.PermissonJosn['Reports'] = this.ReportsMenuPermissions;\n      } else {\n        this.newPermissions[MapType] = this.ReportsMenuPermissions;\n      }\n    } else if (MapType === 'Roles') {\n      this.rolesMenuKeys[permissonType] = event.checked;\n      this.rolesMenuPermissions[key] = this.rolesMenuKeys;\n      if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n        this.rolesMenuKeys['R'] = true;\n      }\n      if (permissonType == 'R' && !event.checked) {\n        this.rolesMenuKeys['C'] = false;\n        this.rolesMenuKeys['U'] = false;\n        this.rolesMenuKeys['D'] = false;\n        this.checkedCB['R'] = false;\n        this.checkedCB['C'] = false;\n        this.checkedCB['U'] = false;\n        this.checkedCB['D'] = false;\n      }\n      if (type == 'edit') {\n        this.PermissonJosn['Roles'] = this.rolesMenuPermissions;\n      } else {\n        this.newPermissions[MapType] = this.rolesMenuPermissions;\n      }\n    } else if (MapType === 'FrustrationsType') {\n      this.frustrationsTypeMenuKeys[permissonType] = event.checked;\n      this.frustrationsTypeMenuPermissions[key] = this.frustrationsTypeMenuKeys;\n      if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n        this.frustrationsTypeMenuKeys['R'] = true;\n      }\n      if (permissonType == 'R' && !event.checked) {\n        this.frustrationsTypeMenuKeys['C'] = false;\n        this.frustrationsTypeMenuKeys['U'] = false;\n        this.frustrationsTypeMenuKeys['D'] = false;\n        this.checkedCB['R'] = false;\n        this.checkedCB['C'] = false;\n        this.checkedCB['U'] = false;\n        this.checkedCB['D'] = false;\n      }\n      if (type == 'edit') {\n        this.PermissonJosn['FrustrationsType'] = this.frustrationsTypeMenuPermissions;\n      } else {\n        this.newPermissions[MapType] = this.frustrationsTypeMenuPermissions;\n      }\n    }\n    else if (MapType === 'Alerts') {\n      this.alertTypeMenukeys[permissonType] = event.checked;\n      this.alertTypeMenyPermissions[key] = this.alertTypeMenukeys;\n      if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n\n        this.alertTypeMenukeys['R'] = true;\n      }\n      if (permissonType == 'R' && !event.checked) {\n        this.alertTypeMenukeys['C'] = false;\n        this.alertTypeMenukeys['U'] = false;\n        this.alertTypeMenukeys['D'] = false;\n        this.checkedCB['R'] = false;\n        this.checkedCB['C'] = false;\n        this.checkedCB['U'] = false;\n        this.checkedCB['D'] = false;\n      }\n      if (type == 'edit') {\n        this.PermissonJosn['Alerts'] = this.alertTypeMenyPermissions;\n      } else {\n        this.newPermissions[MapType] = this.alertTypeMenyPermissions;\n      }\n    }\n    else if (MapType === 'Metric Table') {\n      this.metricTableMenuKeys[permissonType] = event.checked;\n      this.metricTableMenuPermissions[key] = this.metricTableMenuKeys;\n      if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n        this.metricTableMenuKeys['R'] = true;\n      }\n      if (permissonType == 'R' && !event.checked) {\n        this.metricTableMenuKeys['C'] = false;\n        this.metricTableMenuKeys['U'] = false;\n        this.metricTableMenuKeys['D'] = false;\n        this.checkedCB['R'] = false;\n        this.checkedCB['C'] = false;\n        this.checkedCB['U'] = false;\n        this.checkedCB['D'] = false;\n      }\n      if (type == 'edit') {\n        this.PermissonJosn['Metric Table'] = this.metricTableMenuPermissions;\n      } else {\n        this.newPermissions[MapType] = this.metricTableMenuPermissions;\n      }\n    }\n    else if (MapType === 'Departments') {\n      this.departmentMenuKeys[permissonType] = event.checked;\n      this.departmentTableMenuPermissions[key] = this.departmentMenuKeys;\n      if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n\n        this.departmentMenuKeys['R'] = true;\n      }\n      if (permissonType == 'R' && !event.checked) {\n        this.departmentMenuKeys['C'] = false;\n        this.departmentMenuKeys['U'] = false;\n        this.departmentMenuKeys['D'] = false;\n        this.checkedCB['R'] = false;\n        this.checkedCB['C'] = false;\n        this.checkedCB['U'] = false;\n        this.checkedCB['D'] = false;\n      }\n      if (type == 'edit') {\n        this.PermissonJosn['Departments'] = this.departmentTableMenuPermissions;\n      } else {\n        this.newPermissions[MapType] = this.departmentTableMenuPermissions;\n      }\n    }\n    else if (MapType === 'Goals') {\n      this.goalMenuKeys[permissonType] = event.checked;\n      this.goalTableMenuPermissions[key] = this.goalMenuKeys;\n      if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n\n        this.goalMenuKeys['R'] = true;\n      }\n      if (permissonType == 'R' && !event.checked) {\n        this.goalMenuKeys['C'] = false;\n        this.goalMenuKeys['U'] = false;\n        this.goalMenuKeys['D'] = false;\n        this.checkedCB['R'] = false;\n        this.checkedCB['C'] = false;\n        this.checkedCB['U'] = false;\n        this.checkedCB['D'] = false;\n      }\n      if (type == 'edit') {\n        this.PermissonJosn['Goals'] = this.goalTableMenuPermissions;\n      } else {\n        this.newPermissions[MapType] = this.goalTableMenuPermissions;\n      }\n    }\n    else if (MapType === 'Score Card') {\n      this.scoreCardMenuKeys[permissonType] = event.checked;\n      this.scoreCardTableMenuPermissions[key] = this.scoreCardMenuKeys;\n      if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n\n        this.scoreCardMenuKeys['R'] = true;\n      }\n      if (permissonType == 'R' && !event.checked) {\n        this.scoreCardMenuKeys['C'] = false;\n        this.scoreCardMenuKeys['U'] = false;\n        this.scoreCardMenuKeys['D'] = false;\n        this.checkedCB['R'] = false;\n        this.checkedCB['C'] = false;\n        this.checkedCB['U'] = false;\n        this.checkedCB['D'] = false;\n      }\n      if (type == 'edit') {\n        this.PermissonJosn['Score Card'] = this.scoreCardTableMenuPermissions;\n      } else {\n        this.newPermissions[MapType] = this.scoreCardTableMenuPermissions;\n      }\n    }\n    else if (MapType === 'Quarter') {\n      this.quarterMenuKeys[permissonType] = event.checked;\n      this.quarterTableMenuPermissions[key] = this.quarterMenuKeys;\n      if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n\n        this.quarterMenuKeys['R'] = true;\n      }\n      if (permissonType == 'R' && !event.checked) {\n        this.quarterMenuKeys['C'] = false;\n        this.quarterMenuKeys['U'] = false;\n        this.quarterMenuKeys['D'] = false;\n        this.checkedCB['R'] = false;\n        this.checkedCB['C'] = false;\n        this.checkedCB['U'] = false;\n        this.checkedCB['D'] = false;\n      }\n      if (type == 'edit') {\n        this.PermissonJosn['Quarter'] = this.quarterTableMenuPermissions;\n      } else {\n\n\n        this.newPermissions[MapType] = this.quarterTableMenuPermissions;\n      }\n    }\n  }\n  onClick(list, data) {\n    if (this.checkedCB['R'] === true) {\n    }\n    if (list == 'R') {\n      for (let i = 0; i < this.menuData.length; i++) {\n        if (this.menuData[i].MenuName != 'UserManual')\n          // && (this.menuData[i].MenuName!=='ProcessMap' || list=='C' ) \n          if ((this.menuData[i].MenuName !== 'Company'\n            && this.menuData[i].MenuName !== 'ProcessMap'\n            && this.menuData[i].MenuName !== 'Score Card')\n            && (this.menuData[i].MenuName !== 'Reports' || list == 'R')\n            && (this.menuData[i].MenuName !== 'Cases' || list == 'R' || list == 'U')\n            && (this.menuData[i].MenuName !== 'FrustrationsType' || list == 'R')\n            && (this.menuData[i].MenuName !== 'Alerts' || list == 'R')\n            && (this.menuData[i].MenuName !== 'Metric Table' || list == 'R')\n            && (this.menuData[i].MenuName !== 'Departments' || list == 'R')\n            && (this.menuData[i].MenuName !== 'Goal' || list == 'R')\n\n            && (this.menuData[i].MenuName !== 'Quarter' || list == 'R')\n          )\n            if (data === 'edit' && this.checkedCB['R'] == true) {\n              this.PermissonJosn[this.menuData[i].MenuName][this.menuData[i].MenuID]['R'] = true;\n            } else if (data === 'new' && this.checkedCB['R'] == true) {\n\n              this.newPermissions[this.menuData[i].MenuName][this.menuData[i].MenuID]['R'] = true;\n            } else if (data === 'new' && this.checkedCB['R'] == false) {\n              this.checkedCB['C'] = false;\n              this.checkedCB['U'] = false;\n              this.checkedCB['D'] = false;\n              this.newPermissions[this.menuData[i].MenuName][this.menuData[i].MenuID]['R'] = false;\n              this.newPermissions[this.menuData[i].MenuName][this.menuData[i].MenuID]['C'] = false;\n              this.newPermissions[this.menuData[i].MenuName][this.menuData[i].MenuID]['U'] = false;\n              this.newPermissions[this.menuData[i].MenuName][this.menuData[i].MenuID]['D'] = false;\n            } else if (data === 'edit' && this.checkedCB['R'] == false) {\n              this.checkedCB['C'] = false;\n              this.checkedCB['U'] = false;\n              this.checkedCB['D'] = false;\n              this.PermissonJosn[this.menuData[i].MenuName][this.menuData[i].MenuID]['R'] = false;\n              this.PermissonJosn[this.menuData[i].MenuName][this.menuData[i].MenuID]['C'] = false;\n              this.PermissonJosn[this.menuData[i].MenuName][this.menuData[i].MenuID]['U'] = false;\n              this.PermissonJosn[this.menuData[i].MenuName][this.menuData[i].MenuID]['D'] = false;\n            }\n\n      }\n    }\n    if (list === 'C') {\n      for (let i = 0; i < this.menuData.length; i++) {\n        if (this.menuData[i].MenuName != 'UserManual')\n          if ((this.menuData[i].MenuName !== 'Company' ||\n            this.CurrentUser == 'admin')\n\n          ) {\n            if (data === 'edit' && this.checkedCB['C'] == true) {\n              this.checkedCB['R'] = true;\n              if ((this.menuData[i].MenuName !== 'Company')\n                && (this.menuData[i].MenuName !== 'Reports')\n                && (this.menuData[i].MenuName !== 'Cases')\n                && (this.menuData[i].MenuName !== 'FrustrationsType')\n                && (this.menuData[i].MenuName !== 'Alerts')\n                && (this.menuData[i].MenuName !== 'Metric Table')\n                && (this.menuData[i].MenuName !== 'Goals')\n                && (this.menuData[i].MenuName !== 'Quarter')) {\n                this.PermissonJosn[this.menuData[i].MenuName][this.menuData[i].MenuID]['C'] = true;\n              }\n              this.PermissonJosn[this.menuData[i].MenuName][this.menuData[i].MenuID]['R'] = true;\n            } else if (data === 'new' && this.checkedCB['C'] == true) {\n              this.checkedCB['R'] = true;\n              if ((this.menuData[i].MenuName !== 'Company')\n                && (this.menuData[i].MenuName !== 'Reports')\n                && (this.menuData[i].MenuName !== 'Cases')\n                && (this.menuData[i].MenuName !== 'FrustrationsType')\n                && (this.menuData[i].MenuName !== 'Alerts')\n                && (this.menuData[i].MenuName !== 'Metric Table')\n                && (this.menuData[i].MenuName !== 'Goals')\n                && (this.menuData[i].MenuName !== 'Quarter')) {\n                this.newPermissions[this.menuData[i].MenuName][this.menuData[i].MenuID]['C'] = true;\n              }\n              this.newPermissions[this.menuData[i].MenuName][this.menuData[i].MenuID]['R'] = true;\n            } else if (data === 'new' && this.checkedCB['C'] == false) {\n              this.checkedCB['R'] = true;\n              if ((this.menuData[i].MenuName !== 'Company')\n                && (this.menuData[i].MenuName !== 'Reports')\n                && (this.menuData[i].MenuName !== 'Cases')\n                && (this.menuData[i].MenuName !== 'FrustrationsType')\n                && (this.menuData[i].MenuName !== 'Alerts')\n                && (this.menuData[i].MenuName !== 'Metric Table')\n                && (this.menuData[i].MenuName !== 'Goals')\n                && (this.menuData[i].MenuName !== 'Quarter')) {\n                this.newPermissions[this.menuData[i].MenuName][this.menuData[i].MenuID]['C'] = false;\n              }\n            } else if (data === 'edit' && this.checkedCB['C'] == false) {\n              this.checkedCB['R'] = true;\n              if ((this.menuData[i].MenuName !== 'Company')\n                && (this.menuData[i].MenuName !== 'Reports')\n                && (this.menuData[i].MenuName !== 'Cases')\n                && (this.menuData[i].MenuName !== 'FrustrationsType')\n                && (this.menuData[i].MenuName !== 'Alerts')\n                && (this.menuData[i].MenuName !== 'Metric Table')\n                && (this.menuData[i].MenuName !== 'Goals')\n                && (this.menuData[i].MenuName !== 'Quarter')) {\n                this.PermissonJosn[this.menuData[i].MenuName][this.menuData[i].MenuID]['C'] = false;\n              }\n            }\n\n          }\n      }\n    }\n    if (list === 'U') {\n      for (let i = 0; i < this.menuData.length; i++) {\n        // && (this.menuData[i].MenuName!=='ProcessMap' || list=='C' )\n        if (this.menuData[i].MenuName != 'UserManual')\n          if ((this.menuData[i].MenuName !== 'Company'\n            || this.CurrentUser == 'admin'))\n            if (data === 'edit' && this.checkedCB['U'] == true) {\n              this.checkedCB['R'] = true;\n              if ((this.menuData[i].MenuName !== 'Company')\n                && (this.menuData[i].MenuName !== 'Reports')\n                && (this.menuData[i].MenuName !== 'Cases')\n                && (this.menuData[i].MenuName !== 'FrustrationsType')\n                && (this.menuData[i].MenuName !== 'Alerts')\n                && (this.menuData[i].MenuName !== 'Metric Table')\n                && (this.menuData[i].MenuName !== 'Goals')\n                && (this.menuData[i].MenuName !== 'Quarter')) {\n                this.PermissonJosn[this.menuData[i].MenuName][this.menuData[i].MenuID]['U'] = true;\n              }\n              this.PermissonJosn[this.menuData[i].MenuName][this.menuData[i].MenuID]['R'] = true;\n            } else if (data === 'new' && this.checkedCB['U'] == true) {\n              this.checkedCB['R'] = true;\n              if ((this.menuData[i].MenuName !== 'Company')\n                && (this.menuData[i].MenuName !== 'Reports')\n                && (this.menuData[i].MenuName !== 'Cases')\n                && (this.menuData[i].MenuName !== 'FrustrationsType')\n                && (this.menuData[i].MenuName !== 'Alerts')\n                && (this.menuData[i].MenuName !== 'Metric Table')\n                && (this.menuData[i].MenuName !== 'Goals')\n                && (this.menuData[i].MenuName !== 'Quarter')) {\n                this.newPermissions[this.menuData[i].MenuName][this.menuData[i].MenuID]['U'] = true;\n              }\n              this.newPermissions[this.menuData[i].MenuName][this.menuData[i].MenuID]['R'] = true;\n            } else if (data === 'new' && this.checkedCB['U'] == false) {\n              this.checkedCB['R'] = true;\n              if ((this.menuData[i].MenuName !== 'Company')\n                && (this.menuData[i].MenuName !== 'Reports')\n                && (this.menuData[i].MenuName !== 'Cases')\n                && (this.menuData[i].MenuName !== 'FrustrationsType')\n                && (this.menuData[i].MenuName !== 'Alerts')\n                && (this.menuData[i].MenuName !== 'Metric Table')\n                && (this.menuData[i].MenuName !== 'Goals')\n                && (this.menuData[i].MenuName !== 'Quarter')) {\n                this.newPermissions[this.menuData[i].MenuName][this.menuData[i].MenuID]['U'] = false;\n              }\n\n            } else if (data === 'edit' && this.checkedCB['U'] == false) {\n              this.checkedCB['R'] = true;\n              if ((this.menuData[i].MenuName !== 'Company')\n                && (this.menuData[i].MenuName !== 'Reports')\n                && (this.menuData[i].MenuName !== 'Cases')\n                && (this.menuData[i].MenuName !== 'FrustrationsType')\n                && (this.menuData[i].MenuName !== 'Alerts')\n                && (this.menuData[i].MenuName !== 'Metric Table')\n                && (this.menuData[i].MenuName !== 'Goals')\n                && (this.menuData[i].MenuName !== 'Quarter')) {\n                this.PermissonJosn[this.menuData[i].MenuName][this.menuData[i].MenuID]['U'] = false;\n              }\n\n            }\n      }\n    }\n    if (list === 'D') {\n      for (let i = 0; i < this.menuData.length; i++) {\n        if (this.menuData[i].MenuName != 'UserManual')\n          // && (this.menuData[i].MenuName!=='ProcessMap' || list=='C' ) \n          if ((this.menuData[i].MenuName !== 'Company' || this.CurrentUser == 'admin'))\n\n            if (data === 'edit' && this.checkedCB['D'] == true) {\n              this.checkedCB['R'] = true;\n              if ((this.menuData[i].MenuName !== 'Company')\n                && (this.menuData[i].MenuName !== 'Reports')\n                && (this.menuData[i].MenuName !== 'Cases')\n                && (this.menuData[i].MenuName !== 'FrustrationsType')\n                && (this.menuData[i].MenuName !== 'Alerts')\n                && (this.menuData[i].MenuName !== 'Metric Table')\n                && (this.menuData[i].MenuName !== 'Goals')\n                && (this.menuData[i].MenuName !== 'Quarter')) {\n                this.PermissonJosn[this.menuData[i].MenuName][this.menuData[i].MenuID]['D'] = true;\n              }\n              this.PermissonJosn[this.menuData[i].MenuName][this.menuData[i].MenuID]['R'] = true;\n            } else if (data === 'new' && this.checkedCB['D'] == true) {\n              this.checkedCB['R'] = true;\n              if ((this.menuData[i].MenuName !== 'Company')\n                && (this.menuData[i].MenuName !== 'Reports')\n                && (this.menuData[i].MenuName !== 'Cases')\n                && (this.menuData[i].MenuName !== 'FrustrationsType')\n                && (this.menuData[i].MenuName !== 'Alerts')\n                && (this.menuData[i].MenuName !== 'Metric Table')\n                && (this.menuData[i].MenuName !== 'Goals')\n                && (this.menuData[i].MenuName !== 'Quarter')) {\n                this.newPermissions[this.menuData[i].MenuName][this.menuData[i].MenuID]['D'] = true;\n              }\n              this.newPermissions[this.menuData[i].MenuName][this.menuData[i].MenuID]['R'] = true;\n            } else if (data === 'new' && this.checkedCB['D'] == false) {\n              this.checkedCB['R'] = true;\n              if ((this.menuData[i].MenuName !== 'Company')\n                && (this.menuData[i].MenuName !== 'Reports')\n                && (this.menuData[i].MenuName !== 'Cases')\n                && (this.menuData[i].MenuName !== 'FrustrationsType')\n                && (this.menuData[i].MenuName !== 'Alerts')\n                && (this.menuData[i].MenuName !== 'Metric Table')\n                && (this.menuData[i].MenuName !== 'Goals')\n                && (this.menuData[i].MenuName !== 'Quarter')) {\n                this.newPermissions[this.menuData[i].MenuName][this.menuData[i].MenuID]['D'] = false;\n              }\n\n            } else if (data === 'edit' && this.checkedCB['D'] == false) {\n              this.checkedCB['R'] = true;\n              if ((this.menuData[i].MenuName !== 'Company')\n                && (this.menuData[i].MenuName !== 'Reports')\n                && (this.menuData[i].MenuName !== 'Cases')\n                && (this.menuData[i].MenuName !== 'FrustrationsType')\n                && (this.menuData[i].MenuName !== 'Alerts')\n                && (this.menuData[i].MenuName !== 'Metric Table')\n                && (this.menuData[i].MenuName !== 'Goals')\n                && (this.menuData[i].MenuName !== 'Quarter')) {\n                this.PermissonJosn[this.menuData[i].MenuName][this.menuData[i].MenuID]['D'] = false;\n              }\n\n            }\n      }\n    }\n  }\n  AddRole() {\n    this.btnDisabled = true;\n\n    setTimeout(() => {\n      this.btnDisabled = false;\n    }, 1000);\n\n    if (this.RoleName === undefined || this.RoleName.trim() === '') {\n      this.errorMessage = \"Please enter mandatory(*) fields\";\n      return;\n    } else {\n      let savePermissions = {};\n      let granualPermission = {};\n      let roleID = \"\";\n      if (!this.rowID) {\n        savePermissions = this.newPermissions;\n        granualPermission = this.granual;\n        roleID = \"\";\n      } else {\n        savePermissions = this.PermissonJosn;\n        granualPermission = this.MenuJson;\n        roleID = this.roleID\n      }\n      let josn = {\n        RoleName: this.RoleName,\n        RoleDescription: this.RoleDescription,\n        RowID: this.rowID,\n        Permissions: granualPermission,\n        MenuJson: savePermissions,\n        CreatedBy: this.CurrentUser,\n        RoleId: roleID,\n        CompanyID: this.CompanyID\n      }\n      this.dorseyService.SaveRole(josn).subscribe(permisn => {\n\n        if (permisn['_body'].toString() === 'true') {\n\n          this.dialogRef.close(true);\n        } else {\n          this.dataSelf = 'Updated successfully';\n        }\n      });\n    }\n\n\n  }\n\n}\n\n\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from \"@angular/common/http\";\r\nimport { Observable, throwError } from \"rxjs\";\r\nimport { catchError } from \"rxjs/operators\";\r\nimport { IResponsePackage } from \"../models/response-package.model\";\r\nimport { environment } from 'src/environments/environment';\r\nimport { CompanyDetails } from '../company/company.model';\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class CompanyService {\r\n\r\n    private httpUrl: string = environment.API_URL;\r\n    constructor(private http: HttpClient) { }\r\n\r\n\r\n    getSubCompanyDetailsByCompanyId(companyId: number): Observable<IResponsePackage> {\r\n        return this.http.get<IResponsePackage>(`${this.httpUrl}Dorsey/GetSubCompanyDetailsByCompanyId?companyId=${companyId}`)\r\n            .pipe(\r\n                catchError(this.handleError)\r\n            );\r\n    }\r\n\r\n    getSubCompaniesCountByCompanyId(companyId: number): Observable<IResponsePackage> {\r\n        return this.http.get<IResponsePackage>(`${this.httpUrl}Dorsey/GetSubCompaniesCountByCompanyId?companyId=${companyId}`)\r\n            .pipe(\r\n                catchError(this.handleError)\r\n            );\r\n    }\r\n\r\n    saveCompany(entity: CompanyDetails): Observable<any> {\r\n        return this.http.post(`${this.httpUrl}Dorsey/SaveCompany`, entity).pipe(\r\n            catchError(this.handleError)\r\n        );\r\n    }\r\n\r\n    deleteCompany(companyId: number): Observable<any> {\r\n        return this.http.get(`${this.httpUrl}Dorsey/DeleteCompany?companyId=${companyId}`).pipe(\r\n            catchError(this.handleError)\r\n        );\r\n    }\r\n\r\n    UpdateEnableScoreCard(entity: CompanyDetails): Observable<any> {\r\n        return this.http.post(`${this.httpUrl}Dorsey/UpdateEnableScoreCard`, entity).pipe(\r\n            catchError(this.handleError)\r\n        );\r\n    }\r\n\r\n    getUserDetailsByEmailId(emailId: string): Observable<IResponsePackage> {\r\n        return this.http.get<IResponsePackage>(`${this.httpUrl}Dorsey/GetUserDetailsByEmailId?emailId=${emailId}`)\r\n            .pipe(\r\n                catchError(this.handleError)\r\n            );\r\n    }\r\n\r\n    private handleError(err: HttpErrorResponse) {\r\n        let errorMessage = '';\r\n        if (err.error instanceof ErrorEvent) {\r\n            errorMessage = `An error occured: ${err.error.message}`;\r\n        }\r\n        else {\r\n            errorMessage = `Server returned code: ${err.status}, error message is ${err.message}`\r\n        }\r\n        console.log(errorMessage);\r\n        return throwError(errorMessage);\r\n    }\r\n}\r\n","import { HttpClient, HttpErrorResponse } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable, throwError } from \"rxjs\";\r\nimport { catchError, tap } from \"rxjs/operators\";\r\nimport { environment } from \"src/environments/environment\";\r\nimport { IResponsePackage } from \"../models/response-package.model\";\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class DepartmentService {\r\n    httpUrl = environment.API_URL;\r\n    constructor(private http: HttpClient) { }\r\n\r\n    getDepartments(companyId: number): Observable<IResponsePackage> {\r\n        return this.http.get<IResponsePackage>(`${this.httpUrl}Dorsey/GetDepartmentsByCompanyId?companyId=${companyId}`)\r\n            .pipe(\r\n                catchError(this.handleError)\r\n            );\r\n    }\r\n\r\n    saveDepartment(entity: any): Observable<any> {\r\n        return this.http.post(`${this.httpUrl}Dorsey/SaveDepartment`, entity).pipe(\r\n            catchError(this.handleError)\r\n        );\r\n    }\r\n\r\n    deleteDepartment(departmentId: number): Observable<any> {\r\n        return this.http.get(`${this.httpUrl}Dorsey/DeleteDepartment?departmentId=${departmentId}`).pipe(\r\n            catchError(this.handleError)\r\n        );\r\n    }\r\n\r\n    getTeamsByDepartmentId(companyId: number, departmentId: number): Observable<IResponsePackage> {\r\n        if (departmentId) {\r\n            return this.http.get<IResponsePackage>(`${this.httpUrl}Dorsey/GetTeamsByDepartmentId?companyId=${companyId}&departmentId=${departmentId}`)\r\n                .pipe(\r\n                    catchError(this.handleError)\r\n                );\r\n        }\r\n    }\r\n\r\n    getUsersByCompanyId(companyId: number): Observable<IResponsePackage> {\r\n        return this.http.get<IResponsePackage>(`${this.httpUrl}Dorsey/GetUsersByCompanyId?companyId=${companyId}`)\r\n            .pipe(\r\n                catchError(this.handleError)\r\n            );\r\n    }\r\n\r\n    private handleError(err: HttpErrorResponse) {\r\n        let errorMessage = '';\r\n        if (err.error instanceof ErrorEvent) {\r\n            errorMessage = `An error occured: ${err.error.message}`;\r\n        }\r\n        else {\r\n            errorMessage = `Server returned code: ${err.status}, error message is ${err.message}`\r\n        }\r\n        return throwError(errorMessage);\r\n    }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpErrorResponse } from \"@angular/common/http\";\nimport { Observable, throwError } from \"rxjs\";\nimport { catchError } from \"rxjs/operators\";\nimport { IResponsePackage } from \"../models/response-package.model\";\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class GoalService {\n\n    private httpUrl: string = environment.API_URL;\n    constructor(private http: HttpClient) { }\n\n    getGoals(companyId: number): Observable<IResponsePackage> {\n        return this.http.get<IResponsePackage>(`${this.httpUrl}Dorsey/GetGoalsByCompanyId?companyId=${companyId}`)\n            .pipe(\n                catchError(this.handleError)\n            );\n    }\n\n    saveGoal(entity: any): Observable<any> {\n        return this.http.post(`${this.httpUrl}Dorsey/SaveGoal`, entity).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    deleteGoal(goalId: number): Observable<any> {\n        return this.http.get(`${this.httpUrl}Dorsey/DeleteGoal?goalId=${goalId}`).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    private handleError(err: HttpErrorResponse) {\n        let errorMessage = '';\n        if (err.error instanceof ErrorEvent) {\n            errorMessage = `An error occured: ${err.error.message}`;\n        }\n        else {\n            errorMessage = `Server returned code: ${err.status}, error message is ${err.message}`\n        }\n        return throwError(errorMessage);\n    }\n\n}\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from \"@angular/common/http\";\r\nimport { BehaviorSubject, Observable, throwError } from \"rxjs\";\r\nimport { catchError } from \"rxjs/operators\";\r\nimport { IResponsePackage } from \"../models/response-package.model\";\r\nimport { environment } from 'src/environments/environment';\r\nimport { OrganizationDetails } from '../organization/organization.model';\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class OrganizationService {\r\n\r\n    private httpUrl: string = environment.API_URL;\r\n    public totalLicenses = new BehaviorSubject<any>(0);\r\n    public totalLicenses$: Observable<number> = this.totalLicenses.asObservable();\r\n    constructor(private http: HttpClient) {\r\n        this.totalLicenses$ = this.totalLicenses.asObservable();\r\n    }\r\n\r\n    getOrganizations(): Observable<IResponsePackage> {\r\n        return this.http.get<IResponsePackage>(`${this.httpUrl}Dorsey/GetOrganizations`)\r\n            .pipe(\r\n                catchError(this.handleError)\r\n            );\r\n    }\r\n\r\n    saveOrganization(entity: OrganizationDetails): Observable<any> {\r\n        return this.http.post(`${this.httpUrl}Dorsey/SaveOrganization`, entity).pipe(\r\n            catchError(this.handleError)\r\n        );\r\n    }\r\n\r\n    deleteOrganization(organizationId: number): Observable<any> {\r\n        return this.http.get(`${this.httpUrl}Dorsey/DeleteOrganization?organizationId=${organizationId}`).pipe(\r\n            catchError(this.handleError)\r\n        );\r\n    }\r\n\r\n    getCompanyDetailsByOrganizationId(organizationId: number): Observable<IResponsePackage> {\r\n        return this.http.get<IResponsePackage>(`${this.httpUrl}Dorsey/GetCompanyDetailsByOrganizationId?organizationId=${organizationId}`)\r\n            .pipe(\r\n                catchError(this.handleError)\r\n            );\r\n    }\r\n\r\n    getCompanyDetailsByCompanyId(companyId: number, organizationId: number): Observable<IResponsePackage> {\r\n        return this.http.get<IResponsePackage>(`${this.httpUrl}Dorsey/GetCompanyDetailsByCompanyId?companyId=${companyId}&organizationId=${organizationId}`)\r\n            .pipe(\r\n                catchError(this.handleError)\r\n            );\r\n    }\r\n\r\n    getCompaniesCountByOrganizationId(organizationId: number): Observable<IResponsePackage> {\r\n        return this.http.get<IResponsePackage>(`${this.httpUrl}Dorsey/GetCompaniesCountByOrganizationId?organizationId=${organizationId}`)\r\n            .pipe(\r\n                catchError(this.handleError)\r\n            );\r\n    }\r\n\r\n\r\n    private handleError(err: HttpErrorResponse) {\r\n        let errorMessage = '';\r\n        if (err.error instanceof ErrorEvent) {\r\n            errorMessage = `An error occured: ${err.error.message}`;\r\n        }\r\n        else {\r\n            errorMessage = `Server returned code: ${err.status}, error message is ${err.message}`\r\n        }\r\n        return throwError(errorMessage);\r\n    }\r\n}\r\n","import { HttpClient, HttpErrorResponse } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject, Observable, throwError } from \"rxjs\";\r\nimport { catchError } from \"rxjs/operators\";\r\nimport { environment } from \"src/environments/environment\";\r\nimport { IResponsePackage } from \"../models/response-package.model\";\r\nimport { Month, WeekDay } from \"../quarter/quarter.model\";\r\n\r\nconst Moment = require('moment');\r\nimport { extendMoment } from 'moment-range';\r\n\r\nconst moment = extendMoment(Moment);\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class QuarterService {\r\n\r\n    private httpUrl: string = environment.API_URL;\r\n\r\n    constructor(private http: HttpClient) {\r\n    }\r\n\r\n    getMonths(): Array<Month> {\r\n        return [\r\n            { MonthId: 1, MonthName: 'January' },\r\n            { MonthId: 2, MonthName: 'February' },\r\n            { MonthId: 3, MonthName: 'March' },\r\n            { MonthId: 4, MonthName: 'April' },\r\n            { MonthId: 5, MonthName: 'May' },\r\n            { MonthId: 6, MonthName: 'June' },\r\n            { MonthId: 7, MonthName: 'July' },\r\n            { MonthId: 8, MonthName: 'August' },\r\n            { MonthId: 9, MonthName: 'September' },\r\n            { MonthId: 10, MonthName: 'October' },\r\n            { MonthId: 11, MonthName: 'November' },\r\n            { MonthId: 12, MonthName: 'December' },\r\n        ];\r\n    }\r\n\r\n    getQuarters(companyId: number): Observable<IResponsePackage> {\r\n        return this.http.get<IResponsePackage>(`${this.httpUrl}Dorsey/GetQuartersByCompanyId?companyId=${companyId}`).pipe(\r\n            catchError(this.handleError)\r\n        );\r\n    }\r\n\r\n    saveQuarters(entity: any): Observable<any> {\r\n        return this.http.post(`${this.httpUrl}Dorsey/SaveQuarter`, entity).pipe(\r\n            catchError(this.handleError)\r\n        );\r\n    }\r\n\r\n    generateQuarters(selectedMonthId, companyId, currentUser, quarterWeekDay, quarterWeekDate) {\r\n        let months = this.getMonths();\r\n        var startMonths = months.splice(selectedMonthId - 1);\r\n        var concatMonths = startMonths.concat(months).map((val, index) => {\r\n            return {\r\n                MonthId: index + 1,\r\n                MonthName: val.MonthName\r\n            }\r\n        });\r\n        return this.splitArrayIntoQuarters(concatMonths, 3).map((val, index) => {\r\n            return {\r\n                QuarterId: index + 1,\r\n                QuarterName: 'Quarter ' + (index + 1),\r\n                QuarterMonths: val,\r\n                CompanyId: companyId,\r\n                CreatedBy: currentUser,\r\n                QuarterWeekDay: quarterWeekDay,\r\n                QuarterWeekDate: quarterWeekDate\r\n            }\r\n        });\r\n    }\r\n\r\n    splitArrayIntoQuarters(months, noOfMonths) {\r\n        var quarters = [], i = 0, n = months.length;\r\n        while (i < n) {\r\n            quarters.push(months.slice(i, i += noOfMonths));\r\n        }\r\n        return quarters;\r\n    }\r\n\r\n    private handleError(err: HttpErrorResponse) {\r\n        let errorMessage = '';\r\n        if (err.error instanceof ErrorEvent) {\r\n            errorMessage = `An error occured: ${err.error.message}`;\r\n        }\r\n        else {\r\n            errorMessage = `Server returned code: ${err.status}, error message is ${err.message}`\r\n        }\r\n        return throwError(errorMessage);\r\n    }\r\n\r\n    getQuarterWeekDays(): Array<WeekDay> {\r\n        return [\r\n\r\n            { WeekDayId: 0, WeekDay: 'Sunday' },\r\n            { WeekDayId: 1, WeekDay: 'Monday' },\r\n            { WeekDayId: 2, WeekDay: 'Tuesday' },\r\n            { WeekDayId: 3, WeekDay: 'Wednensday' },\r\n            { WeekDayId: 4, WeekDay: 'Thursday' },\r\n            { WeekDayId: 5, WeekDay: 'Friday' },\r\n            { WeekDayId: 6, WeekDay: 'Saturday' },\r\n\r\n\r\n        ];\r\n    }\r\n\r\n    getWeekDates(startDate, endDate, weekDay) {\r\n\r\n        let weekData = [];\r\n        var weeks = []\r\n        var indexOf = [].indexOf;\r\n        var monthRange = moment.range(startDate, endDate);\r\n\r\n        for (let mday of monthRange.by('days')) {\r\n\r\n            if (weeks.indexOf(mday.week()) === -1) {\r\n                weeks.push(mday.week());\r\n            }\r\n        }\r\n\r\n        while (startDate.isSameOrBefore(endDate)) {\r\n            if (weekData.length > 0) {\r\n                this.getWeeksStartEndDate(weekData, startDate, weekDay);\r\n\r\n                startDate.add(1, 'days');\r\n            }\r\n\r\n            if (!startDate.isAfter(endDate)) {\r\n                weekData.push({ startDate: moment(startDate).format('MM/DD') });\r\n                startDate.add(6, 'days');\r\n\r\n                if (weeks.length == weekData.length) {\r\n                    this.getWeeksStartEndDate(weekData, startDate, weekDay);\r\n\r\n                }\r\n            }\r\n        }\r\n\r\n\r\n        let lastObj = weekData[weekData.length - 1];\r\n        if (lastObj.startDate == endDate.format('MM/DD')) {\r\n            this.getWeeksStartEndDate(weekData, startDate, weekDay);\r\n        }\r\n\r\n        return weekData;\r\n    }\r\n\r\n    getWeeksStartEndDate(weekData, startDate, weekDay): void {\r\n        let lastObj = weekData[weekData.length - 1];\r\n        lastObj['endDate'] = moment(startDate).format('MM/DD');\r\n        lastObj['WeekNo'] = `(week${weekData.length})`\r\n        if (weekDay == 'Start Date') {\r\n            lastObj['label'] = `${lastObj.startDate}`\r\n        }\r\n        else {\r\n            lastObj['label'] = `${lastObj.endDate}`\r\n        }\r\n    }\r\n    getWeekMonths(months: any, year, quarterWeekday, quarterWeekDate) {\r\n        let WeekDateList = [];\r\n\r\n        var selectedMonthId = this.getMonths().find(val => val.MonthName == months[0].MonthName).MonthId; var startDate = moment([year, selectedMonthId - 1]);\r\n\r\n        var firstDay = moment(startDate).startOf('month');\r\n\r\n        var chosenWeekday = Number(quarterWeekday)\r\n        const todayNum = moment(firstDay).isoWeekday();\r\n\r\n        var firstDayOfWeek;\r\n        if ((todayNum <= chosenWeekday))\r\n            firstDayOfWeek = chosenWeekday < moment(firstDay).weekday() ? moment(firstDay).weekday(chosenWeekday + 7) : moment(firstDay).weekday(chosenWeekday)\r\n        else\r\n            firstDayOfWeek = moment(firstDay).startOf('isoWeek').add(1, 'week').day(quarterWeekday);\r\n        var endDay;\r\n        let weekData = [];\r\n        endDay = moment(startDate).add(3, 'months').subtract(1, 'days');\r\n        WeekDateList = this.getWeekDates(firstDayOfWeek, endDay, quarterWeekDate);\r\n        return WeekDateList;\r\n    }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'sort'\n})\nexport class SortPipe implements PipeTransform {\n\n  transform(companyData: Array<any>, args?: any): any {\n    //  if(args.direction)\n    if (companyData) {\n      return companyData.sort(function (a, b) {\n        if (a[args.property] < b[args.property]) {\n          return -1 * args.direction;\n        }\n        else if (a[args.property] > b[args.property]) {\n          return 1 * args.direction;\n        }\n        else {\n          return 0;\n        }\n      });\n    }\n\n    // else return -1;\n  };\n\n}\n","module.exports = \".highlight {\\n  background-color: lightblue;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc3ViLWNvbXBhbnkvRjpcXE5pa2lsIFdvcmtcXFByb2plY3RzXFxEb3JzZXlcXEhpZXJhcmNoeSBTb3VyY2UgQ29kZVxcV29ya2luZ1xcZG9yc2V5R3JvdXAvc3JjXFxhcHBcXHN1Yi1jb21wYW55XFxzdWItY29tcGFueS5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvc3ViLWNvbXBhbnkvc3ViLWNvbXBhbnkuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSwyQkFBQTtBQ0NKIiwiZmlsZSI6InNyYy9hcHAvc3ViLWNvbXBhbnkvc3ViLWNvbXBhbnkuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuaGlnaGxpZ2h0e1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRibHVlO1xyXG59IiwiLmhpZ2hsaWdodCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Ymx1ZTtcbn0iXX0= */\"","import { Component, Input, OnInit } from '@angular/core';\nimport { CompanyService } from '../services/company.service';\nimport { CompanyDetails, OrganizationLicenseDetails } from '../company/company.model';\nimport { CompanyDialogComponent } from '../company/company.component';\nimport { MatDialog, MatSlideToggleChange, MatTableDataSource } from '@angular/material';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { DorseyService } from '../dorsey.service';\nimport { ValidationDialogComponent } from '../add-score-card/validation-dialog';\nimport { ResponseDialogComponent } from '../add-score-card/response-dialog';\nimport { LoginComponent } from '../login/login.component';\n@Component({\n  selector: 'app-sub-company',\n  templateUrl: './sub-company.component.html',\n  styleUrls: ['./sub-company.component.scss']\n})\nexport class SubCompanyComponent implements OnInit {\n  @Input() organizationId: number;\n  @Input() companyId: number;\n  @Input() isSuperAdmin: boolean;\n  @Input() entityName: string;\n  @Input() entityLicenses: number;\n  @Input() subCompanyCount: number;\n  @Input() subEntityLicenses: number;\n  @Input() remainingEntityLicenses: number;\n  errorMessages: string[] = [];\n  currentUser: string;\n  subCompanyDetails: Array<CompanyDetails> = [];\n  subCompany: CompanyDetails;\n  userData: any;\n  showSubEntities: boolean = false;\n  parentCompanyId: number;\n  subEntityLevel: number = 0;\n  currentRow: number;\n  adminEmail: string;\n  adminPassword: string;\n  adminUserName: string;\n  loginUsername: string;\n  searchtext: string = '';\n  // p: number = 1;\n  // rowsOnPage = 10;\n  // rowsOnPageSet = [];\n  // rowCount: any;\n  // dynamicRows = 10;\n  isDesc: boolean = false;\n  column = '';\n  direction: number;\n  arrow = true;\n  saveFilter: Array<CompanyDetails> = [];\n  UserName: string;\n  Password: string;\n  isDisable = false;\n  isSearchDisable = false;\n  condition: boolean;\n  organizationDetails: any;\n  // companyPaging = false;\n  dataSource = new MatTableDataSource();\n  isCompanyLogin: boolean;\n\n  constructor(\n    private companyService: CompanyService,\n    private dialog: MatDialog,\n    private storage: LocalStorageService,\n    private login: LoginComponent,\n    private dorseyService: DorseyService) {\n    this.currentUser = this.storage.retrieve('user');\n    this.adminUserName = this.storage.retrieve('adminUname');\n    this.adminEmail = this.storage.retrieve('username');\n    this.adminPassword = this.storage.retrieve('password');\n    this.loginUsername = this.storage.retrieve('loginUsername');\n    this.organizationDetails = this.storage.retrieve(\"OrganizationDetails\");\n    this.organizationId = this.organizationDetails.OrganizationId;\n    this.isSuperAdmin = this.organizationDetails.IsSuperAdmin;\n    this.isCompanyLogin = this.storage.retrieve(\"isCompanyLogin\");\n  }\n\n  ngOnInit(): void {\n    this.getSubCompanies(this.companyId);\n    this.getUsers();\n  }\n\n  subCompaniesAlreadyCreated: number;\n  SubCompaniesLicensesAlreadyProvided: number;\n\n  getSubCompanies(companyId: number): void {\n    this.companyService.getSubCompanyDetailsByCompanyId(companyId).subscribe(resp => {\n      this.subCompanyDetails = resp.Data;\n      this.subCompaniesAlreadyCreated = this.subCompanyDetails.length;\n      this.SubCompaniesLicensesAlreadyProvided = this.subCompanyDetails.reduce((sum, current) => sum + current.NoOfSubCompanies, 0);\n      // this.rowsOnPageSet = [];\n      // this.dynamicRows = 10;\n      if (this.subCompanyDetails.length === 0) {\n        // this.companyPaging = false;\n        this.isDisable = true;\n        this.isSearchDisable = true;\n      }\n      else {\n        this.saveFilter = JSON.parse(JSON.stringify(this.subCompanyDetails));\n        // this.companyPaging = true;\n        this.isDisable = false;\n        this.isSearchDisable = false;\n        // this.rowCount = this.subCompanyDetails.length;\n        // this.dataSource = new MatTableDataSource(this.subCompanyDetails);\n        // while (this.dynamicRows < this.rowCount) {\n        //   this.rowsOnPageSet.push(this.dynamicRows);\n        //   this.dynamicRows = this.dynamicRows + 10;\n        // }\n        // if (!this.rowsOnPageSet.includes(this.rowCount))\n        //   this.rowsOnPageSet.push(this.rowCount);\n        // if (this.rowsOnPageSet.length === 1) {\n        //   if (this.rowsOnPageSet[0] <= 10)\n        //     this.rowsOnPage = this.rowsOnPageSet[0];\n        // }\n      }\n    })\n  }\n\n  sort(property) {\n    this.arrow = !this.arrow;\n    this.isDesc = !this.isDesc; //change the direction\n    this.column = property;\n    this.direction = this.isDesc ? 1 : -1;\n  }\n\n  viewSubEntities(element): void {\n    this.currentRow = element.CompanyID;\n    this.parentCompanyId = element.CompanyID;\n    this.subEntityLevel = this.subEntityLevel + 1;\n\n    this.companyService.getSubCompaniesCountByCompanyId(element.CompanyID).subscribe(resp => {\n      this.subCompanyCount = resp.Data;\n      this.entityLicenses = resp.AdditionalData.EntityLicenses;;\n      if (this.subEntityLevel > 1) {\n        this.showSubEntities = false;\n        this.entityName = '';\n        setTimeout(() => {\n          this.showSubEntities = true;\n          this.entityName = element.CompanyName;\n        }, 200);\n      } else {\n        this.showSubEntities = true;\n        this.entityName = element.CompanyName;\n      }\n    });\n\n  }\n\n  enableScoreCardChange(event: MatSlideToggleChange, row): void {\n    const dialogRef = this.dialog.open(CompanyDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: 'Are you sure you want to enable score card for this entity: ' + row.CompanyName + '?æææ' + true,\n    });\n    dialogRef.afterClosed().subscribe(result => {\n      if (result) {\n        this.subCompany = row;\n        this.subCompany.EnableScoreCard = event.checked;\n        this.companyService.UpdateEnableScoreCard(this.subCompany).subscribe(resp => {\n          if (resp.Data) {\n            this.dialog.open(ResponseDialogComponent, {\n              data: {\n                message: 'Updated successfully'\n              }\n            });\n          }\n        });\n      } else {\n        this.subCompanyDetails.find(ele => ele.CompanyID === row.CompanyID).EnableScoreCard = false;\n      }\n\n    });\n  }\n\n  newSubCompany(): void {\n    this.searchtext = '';\n    this.Searchtext();\n    this.errorMessages = [];\n    this.remainingEntityLicenses = 0;\n    var subEntitiesAlreadyAssigned = 0;\n    this.entityLicenses = 0;\n    this.getSubCompanies(this.companyId);\n    this.companyService.getSubCompaniesCountByCompanyId(this.companyId).subscribe(resp => {\n      this.companyService.getSubCompanyDetailsByCompanyId(this.companyId).subscribe(resp1 => {\n\n        if (resp1.Data) {\n          resp1.Data.forEach(ent => {\n            subEntitiesAlreadyAssigned = subEntitiesAlreadyAssigned + ent.NoOfSubCompanies;\n          });\n        }\n        this.entityLicenses = resp.AdditionalData.EntityLicenses;\n        this.subCompanyCount = resp.Data + subEntitiesAlreadyAssigned;\n        this.remainingEntityLicenses = this.entityLicenses - this.subCompanyCount;\n        if (this.entityLicenses <= this.subCompanyCount) {\n          this.errorMessages.push('Cannot create new sub entity as there are no licenses');\n          this.dialog.open(ValidationDialogComponent, {\n            data: {\n              errorMessages: this.errorMessages\n            }\n          });\n          return;\n        }\n        this.remainingEntityLicenses = this.remainingEntityLicenses - 1;\n        this.subCompany = {\n          CompanyID: 0,\n          CompanyName: '',\n          ParentID: this.companyId,\n          Address1: '',\n          Address2: '',\n          Country: '',\n          State: '',\n          City: '',\n          Pincode: '',\n          Email: '',\n          Phone1: '',\n          Phone2: '',\n          EnableScoreCard: false,\n          EnableSubCompanies: false,\n          NoOfSubCompanies: 0,\n          OrganizationID: this.organizationId,\n          UserID: 0,\n          UserName: '',\n          Password: '',\n          FirstName: '',\n          LastName: '',\n          EmployeeID: 0,\n          CreatedBy: this.currentUser,\n          UpdatedBy: this.currentUser,\n          RowID: 0,\n          RoleID: 0\n\n        }\n        const subDialogref = this.dialog.open(CompanyDialogComponent, {\n          panelClass: 'custom-dialog-container',\n          data: 'new' + 'æææ' + true,\n        });\n        subDialogref.componentInstance.companyDetails = this.subCompany;\n        subDialogref.componentInstance.userListData = this.userData;\n        subDialogref.componentInstance.companyData = this.subCompanyDetails;\n        subDialogref.componentInstance.CompanyID = this.companyId;\n        subDialogref.componentInstance.entityLicenses = this.entityLicenses;\n        subDialogref.componentInstance.remainingEntityLicenses = this.remainingEntityLicenses;\n        subDialogref.afterClosed().subscribe(result => {\n          this.getSubCompanies(this.companyId);\n        });\n      });\n    });\n\n\n\n\n\n\n\n  }\n\n  getUsers() {\n    this.dorseyService.GetUsersList().subscribe(users => {\n      this.userData = JSON.parse(users['_body']);\n    });\n  }\n\n\n  EditCompany(companyRow) {\n    this.subCompany = companyRow;\n    this.subEntityLicenses = this.subCompany.NoOfSubCompanies;\n    this.remainingEntityLicenses = 0;\n    this.entityLicenses = 0;\n    this.storage.store('CName', companyRow.CompanyName);\n    this.companyService.getSubCompaniesCountByCompanyId(this.subCompany.ParentID).subscribe(resp => {\n      this.companyService.getSubCompanyDetailsByCompanyId(this.subCompany.ParentID).subscribe(resp1 => {\n        var subEntitiesAlreadyAssigned = 0;\n        if (resp1.Data) {\n          resp1.Data.forEach(ent => {\n            subEntitiesAlreadyAssigned = subEntitiesAlreadyAssigned + ent.NoOfSubCompanies;\n          });\n        }\n        this.entityLicenses = resp.AdditionalData.EntityLicenses;\n        this.subCompanyCount = resp.Data + subEntitiesAlreadyAssigned;\n        this.remainingEntityLicenses = this.entityLicenses - this.subCompanyCount;\n        this.remainingEntityLicenses = this.subEntityLicenses + this.remainingEntityLicenses;\n        this.dialogCall('edit');\n      });\n    });\n  }\n\n  // ifMaxRow() {\n  //   if (this.rowsOnPage == this.subCompanyDetails.length) {\n  //     this.rowsOnPage = this.rowsOnPage - 1;\n  //   }\n  // }\n\n  DeleteCompany(element) {\n    var subCompanyCount = 0;\n    this.entityLicenses = 0;\n    this.companyService.getSubCompaniesCountByCompanyId(element.CompanyID).subscribe(resp => {\n      subCompanyCount = resp.Data;\n      this.entityLicenses = resp.AdditionalData.EntityLicenses;\n      if (subCompanyCount > 0) {\n        this.dialogCall(\"Delete Failed. This entity has sub entities\");\n        return;\n      }\n      else {\n        const dialogRef = this.dialog.open(CompanyDialogComponent, {\n          panelClass: 'custom-dialog-container',\n          data: 'Are you sure you want to delete entity: ' + element.CompanyName + '?æææ' + true,\n        });\n        dialogRef.afterClosed().subscribe(result => {\n          if (result) {\n            /// this.condition = true;\n            this.companyService.deleteCompany(element.CompanyID).subscribe(resp => {\n              if (resp.Data) {\n                // this.ifMaxRow();\n                this.condition = false;\n                this.dialogCall('Deleted successfully');\n                this.showSubEntities = false;\n              }\n              // this.dynamicRows = 10;\n              // this.rowsOnPageSet = [];\n              this.getSubCompanies(this.companyId);\n            });\n          }\n        });\n      }\n    });\n\n  }\n\n  Navigate(element) {\n    this.login.GetTeam(element.CompanyID);\n    this.dorseyService.GetUsersList().subscribe(users => {\n      this.userData = JSON.parse(users['_body']);\n      let tempUser = this.userData.filter(x => x.CompanyID.toString() === element.CompanyID.toString() && x.EmployeeID.toString() === '0');\n      this.login.GetUserRoleAssignment();\n      this.storage.store(\"adminEmail\", this.adminEmail);\n      this.storage.store(\"adminPassword\", this.adminPassword);\n      this.storage.store(\"adminUserName\", this.adminUserName);\n      this.storage.store(\"userData\", this.userData);\n      this.storage.store(\"companyNavigate\", true);\n      if (tempUser.length > 0) {\n        this.login.LoginWithCompany(tempUser[0].UserName, tempUser[0].Password, element.CompanyID);\n      }\n    });\n  }\n\n  Searchtext() {\n    // this.getSubCompanies(this.companyId)\n    this.subCompanyDetails = this.saveFilter;\n    let tempCompany = this.subCompanyDetails.filter(\n      (item) => {\n        return (\n          (item.CompanyName !== null && item.CompanyName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.Email !== null && item.Email.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.Phone1 !== null && item.Phone1.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n        );\n      }\n    );\n    this.subCompanyDetails = tempCompany;\n    if (this.subCompanyDetails.length == 0) {\n      this.isDisable = true;\n    } else {\n      this.isDisable = false;\n    }\n    if (this.searchtext === '') {\n      this.subCompanyDetails = this.saveFilter;\n      // this.dynamicRows = 10;\n      // this.rowsOnPageSet = [];\n      // this.rowCount = this.subCompanyDetails.length;\n      // while (this.dynamicRows < this.rowCount) {\n      //   this.rowsOnPageSet.push(this.dynamicRows);\n      //   this.dynamicRows = this.dynamicRows + 10;\n      // }\n      // if (!this.rowsOnPageSet.includes(this.rowCount))\n      //   this.rowsOnPageSet.push(this.rowCount);\n      // if (this.rowsOnPageSet) {\n\n      //   this.rowsOnPage = this.rowsOnPageSet[0];\n      // }\n      this.isDisable = false;\n    }\n    // else {\n\n    //   this.rowCount = tempCompany.length;\n    //   this.dynamicRows = 10;\n    //   this.rowsOnPageSet = [];\n    //   while (this.dynamicRows < this.rowCount) {\n    //     this.rowsOnPageSet.push(this.dynamicRows);\n    //     this.dynamicRows = this.dynamicRows + 10;\n    //   }\n    //   if (!this.rowsOnPageSet.includes(this.rowCount)) {\n    //     this.rowsOnPageSet.push(this.rowCount);\n    //     if (this.rowsOnPageSet)\n    //       this.rowsOnPage = this.rowsOnPageSet[0];\n    //   }\n\n    //   if (this.rowsOnPageSet.length === 1) {\n    //     if (this.rowsOnPageSet[0] <= 10)\n    //       this.rowsOnPage = this.rowsOnPageSet[0];\n    //   }\n    //}\n  }\n\n  GetUsers() {\n    this.dorseyService.GetUsersList().subscribe(users => {\n      this.userData = JSON.parse(users['_body']);\n    });\n  }\n\n  dialogCall(msg: string) {\n    const dialogRef = this.dialog.open(CompanyDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: msg + 'æææ' + false,\n    });\n    dialogRef.componentInstance.companyData = this.subCompanyDetails;\n    dialogRef.componentInstance.companyDetails = this.subCompany;\n    dialogRef.componentInstance.userListData = this.userData;\n    dialogRef.componentInstance.currentUser = this.currentUser;\n    dialogRef.componentInstance.isSuperAdmin = this.isSuperAdmin;\n    dialogRef.componentInstance.entityLicenses = this.entityLicenses;\n    dialogRef.componentInstance.remainingEntityLicenses = this.remainingEntityLicenses;\n    dialogRef.componentInstance.subEntityLicenses = this.subEntityLicenses;\n    if (msg == 'new') {\n      this.searchtext = '';\n      this.getSubCompanies(this.companyId);\n    }\n    if (msg == 'edit') {\n      this.searchtext = '';\n    }\n    dialogRef.afterClosed().subscribe(result => {\n      if (this.searchtext !== '' && this.searchtext !== undefined) {\n        this.Searchtext();\n\n      }\n      else {\n        this.getSubCompanies(this.companyId);\n      }\n\n      if (result && result.toString() === 'true') {\n        let statusMsg = '';\n        if (msg === 'new') {\n          statusMsg = 'Saved successfully';\n        }\n        else {\n          statusMsg = 'Updated successfully';\n        }\n        // this.dynamicRows = 10;\n        const dialogRefsub = this.dialog.open(CompanyDialogComponent, {\n          panelClass: 'custom-dialog-container',\n          data: statusMsg + 'æææ' + false,\n        });\n\n        setTimeout(() => {\n          this.getSubCompanies(this.companyId);\n          this.GetUsers();\n        }, 500);\n\n        dialogRefsub.afterClosed().subscribe(result1 => {\n          if (this.searchtext !== '') {\n            this.Searchtext();\n          }\n          else {\n            this.getSubCompanies(this.companyId);\n            this.GetUsers();\n          }\n        });\n      }\n    });\n  }\n\n\n}\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { DorseyService } from '../dorsey.service';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { DepartmentService } from '../services/department.service';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n  selector: 'app-teams',\n  templateUrl: './teams.component.html',\n})\nexport class TeamsComponent implements OnInit {\n  employeeLevelLogin = EmployeeLoginLevel;\n  Permissons: any;\n  processData: any;\n  status = false;\n  TeamName: string;\n  TeamID: string;\n  condition = false;\n  teamData: any;\n  p: number = 1;\n  rowsOnPage = 10;\n  rowsOnPageSet = [];\n  rowCount: any;\n  dynamicRows = 10;\n  isDesc: boolean = false;\n  column = \"\";\n  direction: number;\n  searchtext: string;\n  teamPaging = false;\n  saveFilter = [];\n  CompanyID: string;\n  isDisable = false;\n  disableSearch = false;\n  currentUser: string;\n  MenuPermissions: any;\n  menuData: any;\n  menuID: string;\n  menuName: string;\n  processIDs = [];\n  keyProcessTeam: any;\n  TeamDescription: string;\n\n  granualActivity = [];\n  empID: string;\n  arrow = true;\n  loginCompanyName: any;\n  employeeData: any;\n  userRoleAssignmentData: any;\n  rolesData: any;\n  UserID: any;\n  processName = [];\n  DepartmentList: any;\n  DepartmentID: number;\n  employeeLoginLevel = EmployeeLoginLevel;\n  employeeDetails: any;\n  constructor(public dialog: MatDialog,\n    public dorseyService: DorseyService,\n    private storage: LocalStorageService,\n    private departmentService: DepartmentService) {\n    this.CompanyID = this.storage.retrieve('companyID');\n    this.currentUser = this.storage.retrieve('user');\n    this.menuData = this.storage.retrieve('menuData');\n    this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n\n    this.empID = this.storage.retrieve(\"EmployeeID\");\n\n    this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n    this.UserID = this.storage.retrieve('UserID');\n    this.employeeDetails = this.storage.retrieve('employeeDetails');\n  }\n\n  ngOnInit() {\n    this.getTeam();\n    this.menuData = this.menuData.filter(x => x.MenuName.toString().toLowerCase() === 'team');\n    if (this.menuData.length > 0) {\n      this.menuName = this.menuData[0][\"MenuName\"];\n      this.menuID = this.menuData[0][\"MenuID\"];\n    }\n    this.getProcess();\n    this.getDepartments();\n\n  }\n\n  getDepartments(): void {\n    this.DepartmentList = [];\n    this.departmentService.getDepartments(parseInt(this.CompanyID)).subscribe(resp => {\n      this.DepartmentList = resp.Data;\n      if (this.employeeDetails) {\n        if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLevelLogin.Department) {\n          this.DepartmentList = this.DepartmentList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID)\n        }\n        // else if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLevelLogin.Team) {\n        //   this.DepartmentList = this.DepartmentList.filter(ent => ent.TeamID == this.employeeDetails.TeamID)\n        // }\n      }\n    });\n  }\n\n  exportAsXLSX() {\n    let allData = JSON.parse(JSON.stringify(this.teamData));\n    for (let i = 0; i < allData.length; i++) {\n      allData[i][\"Department Name\"] = allData[i].DepartmentName;\n      allData[i].Team = this.teamData[i].TeamName;\n      allData[i].Description = this.teamData[i].TeamDescription;\n      delete (allData[i].DepartmentID);\n      delete (allData[i].DepartmentName);\n      delete (allData[i].TeamName);\n      delete (allData[i].TeamDescription);\n      delete (allData[i].CompanyID);\n      delete (allData[i].ProcessID);\n      delete (allData[i].TeamID);\n      delete (allData[i].CreatedDate);\n      delete (allData[i].CreatedBy);\n      delete (allData[i].IsActive);\n      delete (allData[i].UpdatedBy);\n      delete (allData[i].UpdatedDate);\n\n    }\n    this.dorseyService.generateExcel(allData, this.loginCompanyName + '_team' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Team', \"Company: \" + this.loginCompanyName, '', \"Team Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n  }\n\n  searchText(): void {\n    this.teamData = this.saveFilter;\n    let tempTeam = this.teamData.filter(\n      (item) => {\n        return (\n          (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.DepartmentName !== null && item.DepartmentName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n          (item.TeamDescription !== null && item.TeamDescription.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n\n        );\n      }\n    );\n    this.teamData = tempTeam;\n    if (this.teamData.length == 0) {\n      this.isDisable = true;\n    } else {\n      this.isDisable = false;\n    }\n    if (this.searchtext === '') {\n      this.teamData = this.saveFilter;\n      this.rowCount = this.teamData.length;\n      this.isDisable = false;\n      this.getTeamPagination(this.rowCount);\n    }\n    else {\n      this.rowCount = tempTeam.length;\n      this.getTeamPagination(this.rowCount);\n      if (this.rowsOnPageSet.length === 1) {\n        if (this.rowsOnPageSet[0] <= 10)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n    }\n  }\n\n  getTeam(): void {\n    this.teamData = [];\n    this.dorseyService.GetTeam(this.CompanyID).subscribe(processDa => {\n      processDa = JSON.parse(processDa['_body']);\n      this.teamData = processDa;\n      this.dynamicRows = 10;\n      this.rowsOnPageSet = [];\n      if (this.teamData.length === 0) {\n        this.teamPaging = false;\n        this.isDisable = true;\n        this.disableSearch = true;\n      }\n      else {\n        this.teamPaging = true;\n        this.isDisable = false;\n        this.disableSearch = false;\n        if (this.employeeDetails) {\n          if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLevelLogin.Department) {\n            this.teamData = this.teamData.filter(ent => ent.DepartmentID == this.employeeDetails.DepartmentID)\n          }\n          else if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLevelLogin.Team) {\n            this.teamData = this.teamData.filter(ent => ent.TeamID == this.employeeDetails.TeamID)\n          }\n          else {\n            let data = this.teamData.filter(x => x.CompanyID === this.CompanyID);\n            this.teamData = data;\n          }\n          let tempTeam = this.teamData;\n          if (!this.employeeDetails.PermissionJson) {\n            this.rowCount = this.teamData.length;\n            this.saveFilter = JSON.parse(JSON.stringify(this.teamData));\n            this.getTeamPagination(this.rowCount)\n            return;\n          }\n\n          this.Permissons = JSON.parse(this.employeeDetails.PermissionJson);\n          this.Permissons = this.Permissons[\"Team\"];\n          if (this.Permissons != undefined) {\n            let teamKeys = Object.keys(this.Permissons);\n            this.teamData = tempTeam.filter(x => x.CompanyID === this.CompanyID);\n            if (teamKeys != undefined) {\n              for (let i = 0; i < teamKeys.length; i++) {\n                let actData = this.teamData.filter(x => x.TeamID.toString() === teamKeys[i].toString());\n                if (actData.length > 0) {\n                  let permissonKeys = Object.keys(this.Permissons[teamKeys[i]]);\n                  if (permissonKeys.indexOf('R') > -1)\n                    actData[0]['R'] = this.Permissons[teamKeys[i]]['R'];\n                  else\n                    actData[0]['R'] = false;\n                  if (permissonKeys.indexOf('C') > -1)\n                    actData[0]['C'] = this.Permissons[teamKeys[i]]['C'];\n                  else\n                    actData[0]['C'] = false;\n                  if (permissonKeys.indexOf('U') > -1)\n                    actData[0]['U'] = this.Permissons[teamKeys[i]]['U'];\n                  else\n                    actData[0]['U'] = false;\n                  if (permissonKeys.indexOf('D') > -1)\n                    actData[0]['D'] = this.Permissons[teamKeys[i]]['D'];\n                  else\n                    actData[0]['D'] = false;\n\n                  this.granualActivity.push(actData[0]);\n                }\n              }\n              this.teamData = this.granualActivity;\n              if (this.teamData.length > 0) {\n                this.rowCount = this.teamData.length;\n                this.teamPaging = true;\n                this.isDisable = false;\n                this.disableSearch = false;\n                this.saveFilter = JSON.parse(JSON.stringify(this.teamData));\n                this.getTeamPagination(this.rowCount)\n              }\n              else if (this.teamData.length === 0) {\n                this.teamPaging = false;\n                this.isDisable = true;\n                this.disableSearch = true;\n              }\n            }\n          } else {\n            if (this.teamData.length > 0) {\n              this.rowCount = this.teamData.length;\n              this.teamPaging = true;\n              this.isDisable = false;\n              this.disableSearch = false;\n              this.saveFilter = JSON.parse(JSON.stringify(this.teamData));\n              this.getTeamPagination(this.rowCount)\n            }\n            else if (this.teamData.length === 0) {\n              this.teamPaging = false;\n              this.isDisable = true;\n              this.disableSearch = true;\n            }\n          }\n        }\n        else {\n          this.teamData = processDa;\n          this.saveFilter = JSON.parse(JSON.stringify(this.teamData));\n          this.rowCount = this.teamData.length;\n          this.getTeamPagination(this.rowCount)\n        }\n      }\n    });\n  }\n  getTeamPagination(RowCount): void {\n    this.dynamicRows = 10;\n    this.rowsOnPageSet = [];\n    this.rowsOnPage = 10;\n    this.rowCount = RowCount;\n    while (this.dynamicRows < this.rowCount) {\n      this.rowsOnPageSet.push(this.dynamicRows);\n      this.dynamicRows = this.dynamicRows + 10;\n    }\n    if (!this.rowsOnPageSet.includes(this.rowCount)) {\n      this.rowsOnPageSet.push(this.rowCount);\n      if (this.rowsOnPageSet.length === 1) {\n        if (this.rowsOnPageSet[0] <= 10)\n          this.rowsOnPage = this.rowsOnPageSet[0];\n      }\n    }\n  }\n\n  sort(property): void {\n    this.arrow = !this.arrow;\n    this.isDesc = !this.isDesc; //change the direction    \n    this.column = property;\n    this.direction = this.isDesc ? 1 : -1;\n  }\n\n  OpenTeam(): void {\n    this.TeamDescription = '';\n    this.DepartmentID = 0;\n    this.TeamName = '';\n    this.dialogCall('new');\n  }\n\n  dialogCall(msg: string) {\n    const dialogRef = this.dialog.open(TeamsDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: msg + 'æææ' + false,\n    });\n    dialogRef.componentInstance.currentUser = this.currentUser;\n    dialogRef.componentInstance.teamData = this.teamData;\n    dialogRef.componentInstance.TeamDescription = this.TeamDescription;\n    dialogRef.componentInstance.CompanyID = this.CompanyID;\n    dialogRef.componentInstance.DepartmentList = this.DepartmentList;\n    dialogRef.componentInstance.DepartmentID = this.DepartmentID;\n    if (msg === 'new') {\n      this.searchtext = '';\n      this.getTeam();\n    }\n    if (msg === 'edit') {\n      dialogRef.componentInstance.TeamName = this.TeamName;\n      dialogRef.componentInstance.TeamID = this.TeamID;\n    }\n    dialogRef.afterClosed().subscribe(result => {\n\n      this.TeamID = \"\";\n      if (this.searchtext !== '' && this.searchtext !== undefined) {\n        this.searchText();\n      }\n      else {\n        this.getTeam();\n      }\n      if (result.toString() === 'true') {\n        let statusMsg = '';\n        if (msg === 'new') {\n          statusMsg = 'Saved successfully';\n        }\n        else {\n          statusMsg = 'Updated successfully';\n        }\n        this.getTeam();\n        const dialogRefsub = this.dialog.open(TeamsDialogComponent, {\n          panelClass: 'custom-dialog-container',\n          data: statusMsg + 'æææ' + false,\n        });\n        setTimeout(() => {\n          this.getTeam();\n        }, 500);\n        dialogRefsub.afterClosed().subscribe(result1 => {\n          this.dynamicRows = 10;\n          if (this.searchtext !== '' && this.searchtext !== undefined) {\n            this.searchText();\n          }\n          else {\n            this.getTeam();\n          }\n        });\n      }\n    });\n  }\n\n  getProcess() {\n    this.dorseyService.GetProcess(this.CompanyID).subscribe(processDa => {\n      processDa = JSON.parse(processDa['_body']);\n      this.processData = processDa;\n      this.processData.sort(function (a, b) {\n        return b.squence - a.squence;\n      });\n    });\n\n  }\n\n  getEmployee() {\n    this.dorseyService.GetEmployee(this.CompanyID).subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.employeeData = subData;\n    });\n  }\n  EditTeam(element): void {\n    this.TeamDescription = element.TeamDescription;\n    this.DepartmentID = element.DepartmentID;\n    this.TeamID = element.TeamID;\n    this.TeamName = element.TeamName;\n    this.storage.store('TName', this.TeamName);\n    this.dialogCall('edit');\n  }\n\n  ifMaxRow(): void {\n    if (this.rowsOnPage == this.teamData.length) {\n      this.rowsOnPage = this.rowsOnPage - 1;\n    }\n  }\n\n  DeleteTeam(element): void {\n    this.TeamID = element.TeamID;\n    const dialogRef = this.dialog.open(TeamsDialogComponent, {\n      panelClass: 'custom-dialog-container',\n      data: 'Are you sure you want to delete team: ' + element.TeamName + '?æææ' + true,\n    });\n    dialogRef.afterClosed().subscribe(result => {\n      if (result) {\n        this.getEmployee();\n        let issueCount = 0;\n        let issueCount1 = 0;\n        setTimeout(() => {\n          for (let i = 0; i < this.employeeData.length; i++) {\n            if (this.TeamID == this.employeeData[i].TeamID) {\n              issueCount++;\n            }\n          }\n\n          for (let i = 0; i < this.processData.length; i++) {\n            if (this.TeamID == this.processData[i].TeamID) {\n              issueCount1++;\n            }\n          }\n          if (!issueCount && !issueCount1) {\n            this.dorseyService.DeleteTeam(this.TeamID).subscribe(data => {\n              if (data.ok) {\n                this.ifMaxRow();\n                this.condition = true;\n                this.dialogCall('Deleted successfully');\n              }\n              this.dynamicRows = 10;\n              this.rowsOnPageSet = [];\n              this.getTeam();\n            });\n          } else {\n            this.dialogCall(\"This team have an employee or process\");\n          }\n        }, 500);\n      }\n    });\n  }\n}\n\n\n@Component({\n  selector: 'app-dialog',\n  templateUrl: 'dialog.html',\n  providers: [DorseyService]\n})\nexport class TeamsDialogComponent implements OnInit {\n  condition = false;\n  processData: any;\n  dataSelf: string;\n  TeamName: string;\n  TeamID: string;\n  teamData: any;\n  CompanyID: string;\n  currentUser: string;\n  TeamDescription: string;\n  processIDs = [];\n  processName: any;\n  btnDisabled = false;\n  DepartmentID: number;\n  DepartmentList: string;\n  constructor(\n    public dialogRef: MatDialogRef<TeamsDialogComponent>,\n    @Inject(MAT_DIALOG_DATA) public data: any, public dorseyService: DorseyService, private storage: LocalStorageService) {\n    this.data = this.data.split('æææ');\n    if (this.data[1] === 'true') {\n      this.condition = true;\n    } else {\n      this.condition = false;\n    }\n    this.data = this.data[0];\n  }\n\n  ngOnInit() {\n  }\n\n  onYesClick() {\n    this.dialogRef.close(true);\n  }\n\n  onNoClick(): void {\n    this.dialogRef.close();\n  }\n\n  process(event) {\n    this.processIDs = event.value;\n  }\n\n  departmentChange(event) {\n    this.DepartmentID = event.value;\n  }\n\n  AddTeam() {\n    this.btnDisabled = true;\n    setTimeout(() => {\n      this.btnDisabled = false;\n    }, 1000);\n    this.dataSelf = '';\n\n    if (this.DepartmentID === 0 || !this.TeamName.trim()) {\n      this.dataSelf = 'Please enter mandatory(*) fields';\n      return;\n    }\n    this.saveTeam(this.data);\n  }\n\n  saveTeam(msg: string) {\n    const json = {\n      TeamName: this.TeamName,\n      CreatedBy: this.currentUser,\n      UpdatedBy: this.currentUser,\n      TeamID: this.TeamID,\n      CompanyID: this.CompanyID,\n      ProcessID: JSON.stringify(this.processIDs),\n      TeamDescription: this.TeamDescription,\n      DepartmentID: this.DepartmentID\n    };\n    if (msg === 'new') {\n      for (let i = 0; i < this.teamData.length; i++) {\n        if (this.TeamName.toLowerCase().trim() === this.teamData[i].TeamName.toLowerCase().trim()) {\n          this.dataSelf = \"Team name already exists\";\n          return;\n        }\n      }\n      this.dorseyService.SaveTeam(json).subscribe(data => {\n        if (data['_body'].toString() === 'true') {\n          this.dataSelf = 'Saved successfully';\n          this.dialogRef.close(true);\n        } else {\n          this.dataSelf = 'Save failed';\n        }\n      });\n    } else {\n      for (let i = 0; i < this.teamData.length; i++) {\n        if (this.TeamName.toLowerCase().trim() === this.teamData[i].TeamName.toLowerCase().trim() && this.TeamName.toLowerCase().trim() !== this.storage.retrieve('TName').toLowerCase().trim()) {\n          this.dataSelf = \"Team name already exists\";\n          return;\n        }\n      }\n      this.dorseyService.SaveTeam(json).subscribe(data => {\n        if (data['_body'].toString() === 'true') {\n          this.dialogRef.close(true);\n        } else {\n          this.dataSelf = 'Updated successfully';\n        }\n      });\n    }\n  }\n\n  Clear() {\n    this.dialogRef.close(false);\n  }\n\n  IsAlpha(evt) {\n    var keyCode = (evt.which) ? evt.which : evt.keyCode\n    if ((keyCode < 65 || keyCode > 90) && (keyCode < 97 || keyCode > 123) && keyCode != 32)\n      return false;\n    return true;\n  }\n\n  validate() {\n    for (let i = 0; i < this.teamData.length; i++) {\n      if (this.TeamName && this.TeamName.toLowerCase().trim() === this.teamData[i].TeamName.toLowerCase().trim()) {\n        this.dataSelf = \"Team name already exists\";\n        setTimeout(() => {\n          this.dataSelf = '';\n        }, 2000);\n\n      }\n    }\n  }\n}\n","module.exports = \"table {\\n  width: 100%;\\n  font-size: smaller;\\n}\\n\\nth, td {\\n  text-align: center;\\n  font-size: smaller;\\n}\\n\\nth {\\n  color: white;\\n  background-color: #474747;\\n  height: 35px;\\n  font-size: 13px;\\n}\\n\\ntd {\\n  height: 35px;\\n  font-size: 13px;\\n}\\n\\ntable {\\n  border-collapse: collapse;\\n}\\n\\ntable, th, td {\\n  border: 1px solid #e1e1e1;\\n  overflow: hidden;\\n  word-wrap: break-word;\\n}\\n\\ntable.fixed {\\n  table-layout: fixed;\\n}\\n\\ntable.fixed td {\\n  overflow: hidden;\\n}\\n\\n.highlight td {\\n  background: #C0C0C0;\\n}\\n\\n.fa {\\n  font-size: 18px;\\n}\\n\\n.fa-trash-o {\\n  color: red;\\n}\\n\\n.warningMsg {\\n  text-align: center;\\n  color: red;\\n}\\n\\n.fa-arrow-down, .fa-arrow-up {\\n  font-size: 10px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdXNlci1wZXJtaXNpb25zL0Y6XFxOaWtpbCBXb3JrXFxQcm9qZWN0c1xcRG9yc2V5XFxIaWVyYXJjaHkgU291cmNlIENvZGVcXFdvcmtpbmdcXGRvcnNleUdyb3VwL3NyY1xcYXBwXFx1c2VyLXBlcm1pc2lvbnNcXHVzZXItcGVybWlzaW9ucy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvdXNlci1wZXJtaXNpb25zL3VzZXItcGVybWlzaW9ucy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtFQUNJLFdBQUE7RUFDQSxrQkFBQTtBQ0RKOztBREdBO0VBQ0ksa0JBQUE7RUFDQSxrQkFBQTtBQ0FKOztBREdBO0VBQ0MsWUFBQTtFQUNELHlCQUFBO0VBQ0EsWUFBQTtFQUNDLGVBQUE7QUNBRDs7QURFQTtFQUNJLFlBQUE7RUFDQyxlQUFBO0FDQ0w7O0FEQ0E7RUFDSSx5QkFBQTtBQ0VKOztBREFBO0VBQ0kseUJBQUE7RUFDQSxnQkFBQTtFQUNBLHFCQUFBO0FDR0o7O0FEREE7RUFBYyxtQkFBQTtBQ0tkOztBREpBO0VBQWlCLGdCQUFBO0FDUWpCOztBRFBBO0VBQWUsbUJBQUE7QUNXZjs7QURUQTtFQUNLLGVBQUE7QUNZTDs7QURUQTtFQUNJLFVBQUE7QUNZSjs7QURWQTtFQUNJLGtCQUFBO0VBQW1CLFVBQUE7QUNjdkI7O0FEWkE7RUFDSSxlQUFBO0FDZUoiLCJmaWxlIjoic3JjL2FwcC91c2VyLXBlcm1pc2lvbnMvdXNlci1wZXJtaXNpb25zLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcblxyXG50YWJsZSB7XHJcbiAgICB3aWR0aDoxMDAlO1xyXG4gICAgZm9udC1zaXplOiBzbWFsbGVyO1xyXG59XHJcbnRoLHRke1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgZm9udC1zaXplOiBzbWFsbGVyO1xyXG59XHJcblxyXG50aCB7XHJcbiBjb2xvcjp3aGl0ZTsgICAgIFxyXG5iYWNrZ3JvdW5kLWNvbG9yOiBcdCM0NzQ3NDc7XHJcbmhlaWdodDogMzVweDtcclxuIGZvbnQtc2l6ZTogMTNweDtcclxufVxyXG50ZCB7XHJcbiAgICBoZWlnaHQ6IDM1cHg7XHJcbiAgICAgZm9udC1zaXplOiAxM3B4O1xyXG59XHJcbnRhYmxlIHtcclxuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XHJcbn1cclxudGFibGUsIHRoLCB0ZCB7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTFlMWUxO1xyXG4gICAgb3ZlcmZsb3c6aGlkZGVuO1xyXG4gICAgd29yZC13cmFwOmJyZWFrLXdvcmQ7XHJcbn1cclxudGFibGUuZml4ZWQgeyB0YWJsZS1sYXlvdXQ6Zml4ZWQ7IH1cclxudGFibGUuZml4ZWQgdGQgeyBvdmVyZmxvdzogaGlkZGVuOyB9XHJcbi5oaWdobGlnaHQgdGQge2JhY2tncm91bmQ6ICNDMEMwQzA7fVxyXG5cclxuLmZhe1xyXG4gICAgIGZvbnQtc2l6ZTogMThweDsgXHJcbn1cclxuXHJcbi5mYS10cmFzaC1ve1xyXG4gICAgY29sb3I6cmVkO1xyXG59XHJcbi53YXJuaW5nTXNnIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtjb2xvcjogcmVkO1xyXG59XHJcbi5mYS1hcnJvdy1kb3duLCAuZmEtYXJyb3ctdXB7XHJcbiAgICBmb250LXNpemU6IDEwcHhcclxufVxyXG4iLCJ0YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IHNtYWxsZXI7XG59XG5cbnRoLCB0ZCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiBzbWFsbGVyO1xufVxuXG50aCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ3NDc0NztcbiAgaGVpZ2h0OiAzNXB4O1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbnRkIHtcbiAgaGVpZ2h0OiAzNXB4O1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cblxudGFibGUsIHRoLCB0ZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMWUxZTE7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cblxudGFibGUuZml4ZWQge1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xufVxuXG50YWJsZS5maXhlZCB0ZCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5oaWdobGlnaHQgdGQge1xuICBiYWNrZ3JvdW5kOiAjQzBDMEMwO1xufVxuXG4uZmEge1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5mYS10cmFzaC1vIHtcbiAgY29sb3I6IHJlZDtcbn1cblxuLndhcm5pbmdNc2cge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiByZWQ7XG59XG5cbi5mYS1hcnJvdy1kb3duLCAuZmEtYXJyb3ctdXAge1xuICBmb250LXNpemU6IDEwcHg7XG59Il19 */\"","import { Component, OnInit } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\n\n@Component({\n  selector: 'app-user-permisions',\n  templateUrl: './user-permisions.component.html',\n  styleUrls: ['./user-permisions.component.scss']\n})\nexport class UserPermisionsComponent implements OnInit {\n  index = 0;\n  roleData: any;\n  p: number = 1;\n  rowsOnPage = 10;\n  rowsOnPageSet = [];\n  rowCount: any;\n  dynamicRows = 10;\n  isDesc: boolean = false;\n  column = \"\";\n  direction: number;\n  arrow = true;\n  processPaging = false;\n  saveFilter = [];\n  constructor(private dorseyService: DorseyService) { }\n\n  ngOnInit() {\n    this.GetUsers();\n  }\n  onLinkClick(event) {\n    this.index = event.index;\n  }\n\n  GetUsers() {\n    this.dorseyService.GetUsersList().subscribe(subData => {\n      subData = JSON.parse(subData['_body']);\n      this.roleData = subData;\n      this.rowCount = this.roleData.length;\n      if (this.roleData.length === 0) {\n        this.processPaging = false;\n      }\n      else {\n        this.saveFilter = JSON.parse(JSON.stringify(this.roleData));\n        this.processPaging = true;\n\n        while (this.dynamicRows < this.rowCount) {\n          this.rowsOnPageSet.push(this.dynamicRows);\n          this.dynamicRows = this.dynamicRows + 10;\n        }\n        if (!this.rowsOnPageSet.includes(this.rowCount)) this.rowsOnPageSet.push(this.rowCount);\n        if (this.rowsOnPageSet.length === 1) {\n          if (this.rowsOnPageSet[0] <= 10)\n            this.rowsOnPage = this.rowsOnPageSet[0];\n        }\n      }\n    });\n  }\n\n\n  sort(property) {\n    this.arrow = !this.arrow;\n    this.isDesc = !this.isDesc; //change the direction    \n    this.column = property;\n    this.direction = this.isDesc ? 1 : -1;\n  }\n\n}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3VzZXJtYW51YWwvdXNlcm1hbnVhbC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-usermanual',\n  templateUrl: './usermanual.component.html',\n  styleUrls: ['./usermanual.component.scss'],\n\n})\nexport class UsermanualComponent implements OnInit {\n\n  // PdfArry=[\n  //   {pdfSrc:'../../assets/images/DMAPP_SampleUserManual.pdf'},\n  //  ]\n    \n  constructor() { \n  }\n  ngOnInit(): void {\n    document.addEventListener(\"contextmenu\", function (e) {\n       e.preventDefault();\n   }, false);\n  document.onkeydown = function(e) {\n      // Allow: Ctrl+A\n   if (e.ctrlKey && e.keyCode === 65) {\n     return false;\n   }//Ctrl + C\n    if (e.ctrlKey && e.keyCode === 67) {\n     return false;\n   }//Ctrl + V\n    if (e.ctrlKey && e.keyCode === 86) {\n     return false;\n   }\n   //ctrl p\n   if(e.ctrlKey && e.keyCode == 80){\n     return false;\n    }\n    //right click key code\n     if(e.ctrlKey && e.keyCode == 93){\n     return false;\n\n     }\n    }\n  }\n\n}\n","module.exports = \".text-underline {\\n  text-decoration: underline;\\n}\\n\\n.field {\\n  margin-left: 2%;\\n}\\n\\n#tableActions {\\n  justify-content: flex-start !important;\\n}\\n\\n.form-group {\\n  margin-bottom: 0.25rem;\\n}\\n\\n.example-headers-align .mat-expansion-panel-header-title,\\n.example-headers-align .mat-expansion-panel-header-description {\\n  flex-basis: 0;\\n}\\n\\n.example-headers-align .mat-expansion-panel-header-description {\\n  justify-content: space-between;\\n  align-items: center;\\n}\\n\\n.example-headers-align .mat-form-field + .mat-form-field {\\n  margin-left: 8px;\\n}\\n\\n.mat-action-row {\\n  padding: 0px !important;\\n}\\n\\nmat-expansion-panel-header {\\n  height: 48px !important;\\n  pointer-events: none;\\n  border-bottom: 1px solid lightgrey;\\n}\\n\\n.p-t-20 {\\n  padding-top: 20px !important;\\n}\\n\\nmat-panel-title {\\n  font-weight: 600;\\n}\\n\\nth {\\n  color: white;\\n  background-color: #474747;\\n}\\n\\n.target-width {\\n  width: 75px;\\n}\\n\\n.f-b {\\n  font-weight: bold;\\n}\\n\\n.p-0 {\\n  padding: 0px !important;\\n}\\n\\n.m-0 {\\n  margin: 0px !important;\\n}\\n\\n.min-width-300 {\\n  min-width: 300px !important;\\n  width: 400px !important;\\n  max-width: 400px !important;\\n  word-break: break-all;\\n}\\n\\n.min-width {\\n  min-width: 130px !important;\\n  width: 130px !important;\\n  max-width: 130px !important;\\n}\\n\\n.w-50 {\\n  text-align: center;\\n  min-width: 50px !important;\\n  width: 80px !important;\\n  max-width: 80px !important;\\n}\\n\\n.w-100 {\\n  width: 100%;\\n}\\n\\n.m-2 {\\n  margin: 2%;\\n}\\n\\n.btn-default {\\n  background-color: #e6e8eb !important;\\n}\\n\\n.bg-red {\\n  background-color: red;\\n  color: white;\\n  text-align: center;\\n  padding-top: 20px;\\n}\\n\\n.bg-yellow {\\n  background-color: yellow;\\n  color: white;\\n  text-align: center;\\n  padding-top: 20px;\\n}\\n\\n.bg-green {\\n  background-color: green;\\n  color: white;\\n  text-align: center;\\n  padding-top: 20px;\\n}\\n\\n.w-80 {\\n  min-width: 60px;\\n  width: 60px;\\n  max-width: 60px;\\n  word-break: break-all;\\n}\\n\\n.w-130 {\\n  min-width: 130px;\\n  width: 130px;\\n  max-width: 130px;\\n}\\n\\n.warningMsg {\\n  text-align: center;\\n  color: red;\\n}\\n\\n.center {\\n  display: block;\\n  margin-left: auto;\\n  margin-right: auto;\\n  width: 20%;\\n}\\n\\n.m-2 {\\n  margin: 2%;\\n}\\n\\n.headcol {\\n  position: -webkit-sticky;\\n  position: sticky;\\n  left: 0px;\\n  /* height: 48px; */\\n  z-index: 1;\\n}\\n\\n.headcol1 {\\n  position: -webkit-sticky;\\n  position: sticky;\\n  left: 130px;\\n  /* height: 48px; */\\n  z-index: 1;\\n}\\n\\n.bodycol {\\n  position: -webkit-sticky;\\n  position: sticky;\\n  left: 0px;\\n  /* height: 48px; */\\n  z-index: 1;\\n  background-color: lightgrey;\\n  text-align: center;\\n  vertical-align: middle;\\n}\\n\\n.bodycol1 {\\n  position: -webkit-sticky;\\n  position: sticky;\\n  left: 130px;\\n  /* height: 48px; */\\n  z-index: 1;\\n  background-color: lightgrey;\\n  text-align: center;\\n  vertical-align: middle;\\n}\\n\\n@media screen {\\n  .donotprintthis {\\n    display: inline-block;\\n  }\\n}\\n\\n@media print {\\n  .donotprintthis {\\n    display: none;\\n  }\\n}\\n\\n@media print {\\n  @page {\\n    size: landscape;\\n  }\\n}\\n\\n@media print {\\n  @page {\\n    margin: 0;\\n  }\\n  body {\\n    margin: 1.6cm;\\n  }\\n}\\n\\n@page {\\n  size: auto;\\n  /* auto is the initial value */\\n  margin: 0mm;\\n  /* this affects the margin in the printer settings */\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlldy1zY29yZS1jYXJkL0Y6XFxOaWtpbCBXb3JrXFxQcm9qZWN0c1xcRG9yc2V5XFxIaWVyYXJjaHkgU291cmNlIENvZGVcXFdvcmtpbmdcXGRvcnNleUdyb3VwL3NyY1xcYXBwXFx2aWV3LXNjb3JlLWNhcmRcXHZpZXctc2NvcmUtY2FyZC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvdmlldy1zY29yZS1jYXJkL3ZpZXctc2NvcmUtY2FyZC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLDBCQUFBO0FDQ0o7O0FERUE7RUFDSSxlQUFBO0FDQ0o7O0FERUE7RUFDSSxzQ0FBQTtBQ0NKOztBREVBO0VBQ0ksc0JBQUE7QUNDSjs7QURFQTs7RUFFRSxhQUFBO0FDQ0Y7O0FERUE7RUFDRSw4QkFBQTtFQUNBLG1CQUFBO0FDQ0Y7O0FERUE7RUFDRSxnQkFBQTtBQ0NGOztBREVBO0VBQ0EsdUJBQUE7QUNDQTs7QURFQTtFQUNJLHVCQUFBO0VBQ0Esb0JBQUE7RUFDQSxrQ0FBQTtBQ0NKOztBREVBO0VBQ0UsNEJBQUE7QUNDRjs7QURFQTtFQUNJLGdCQUFBO0FDQ0o7O0FERUE7RUFDRSxZQUFBO0VBQ0EseUJBQUE7QUNDRjs7QURFQTtFQUNFLFdBQUE7QUNDRjs7QURFQTtFQUNFLGlCQUFBO0FDQ0Y7O0FERUE7RUFDRSx1QkFBQTtBQ0NGOztBREVBO0VBQ0Usc0JBQUE7QUNDRjs7QURFQTtFQUNFLDJCQUFBO0VBQ0EsdUJBQUE7RUFDQSwyQkFBQTtFQUNBLHFCQUFBO0FDQ0Y7O0FERUE7RUFDRSwyQkFBQTtFQUNBLHVCQUFBO0VBQ0EsMkJBQUE7QUNDRjs7QURFQTtFQUNFLGtCQUFBO0VBQ0EsMEJBQUE7RUFDQSxzQkFBQTtFQUNBLDBCQUFBO0FDQ0Y7O0FERUE7RUFDRSxXQUFBO0FDQ0Y7O0FERUE7RUFDRSxVQUFBO0FDQ0Y7O0FERUE7RUFDRSxvQ0FBQTtBQ0NGOztBREVBO0VBQ0UscUJBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtBQ0NGOztBREVBO0VBQ0Usd0JBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtBQ0NGOztBREVBO0VBQ0UsdUJBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtBQ0NGOztBREVBO0VBQ0UsZUFBQTtFQUNBLFdBQUE7RUFDQSxlQUFBO0VBQ0EscUJBQUE7QUNDRjs7QURDQTtFQUNFLGdCQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0FDRUY7O0FEQ0E7RUFDRSxrQkFBQTtFQUNBLFVBQUE7QUNFRjs7QURDQTtFQUNFLGNBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTtBQ0VGOztBRENBO0VBQ0UsVUFBQTtBQ0VGOztBRENBO0VBQ0Usd0JBQUE7RUFBQSxnQkFBQTtFQUNFLFNBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7QUNFSjs7QURDQTtFQUNFLHdCQUFBO0VBQUEsZ0JBQUE7RUFDRSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0FDRUo7O0FEQ0E7RUFDRSx3QkFBQTtFQUFBLGdCQUFBO0VBQ0UsU0FBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLDJCQUFBO0VBQ0Esa0JBQUE7RUFDQSxzQkFBQTtBQ0VKOztBRENBO0VBQ0Usd0JBQUE7RUFBQSxnQkFBQTtFQUNFLFdBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7RUFDQSwyQkFBQTtFQUNBLGtCQUFBO0VBQ0Esc0JBQUE7QUNFSjs7QURDQTtFQUVRO0lBQ0EscUJBQUE7RUNDTjtBQUNGOztBREVHO0VBQ0E7SUFDQyxhQUFBO0VDQUY7QUFDRjs7QURFRztFQUFhO0lBQU8sZUFBQTtFQ0VyQjtBQUNGOztBREZFO0VBQ0E7SUFBUSxTQUFBO0VDS1I7RURKQTtJQUFPLGFBQUE7RUNPUDtBQUNGOztBRExBO0VBRVEsVUFBQTtFQUFjLDhCQUFBO0VBQ2QsV0FBQTtFQUFjLG9EQUFBO0FDUXRCIiwiZmlsZSI6InNyYy9hcHAvdmlldy1zY29yZS1jYXJkL3ZpZXctc2NvcmUtY2FyZC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi50ZXh0LXVuZGVybGluZXtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG59XHJcblxyXG4uZmllbGR7XHJcbiAgICBtYXJnaW4tbGVmdDogMiU7XHJcbn1cclxuXHJcbiN0YWJsZUFjdGlvbnN7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmZvcm0tZ3JvdXB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xyXG59XHJcblxyXG4uZXhhbXBsZS1oZWFkZXJzLWFsaWduIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSxcclxuLmV4YW1wbGUtaGVhZGVycy1hbGlnbiAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xyXG4gIGZsZXgtYmFzaXM6IDA7XHJcbn1cclxuXHJcbi5leGFtcGxlLWhlYWRlcnMtYWxpZ24gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uIHtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLmV4YW1wbGUtaGVhZGVycy1hbGlnbiAubWF0LWZvcm0tZmllbGQgKyAubWF0LWZvcm0tZmllbGQge1xyXG4gIG1hcmdpbi1sZWZ0OiA4cHg7XHJcbn1cclxuXHJcbi5tYXQtYWN0aW9uLXJvd3tcclxucGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVye1xyXG4gICAgaGVpZ2h0OjQ4cHggIWltcG9ydGFudDtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGxpZ2h0Z3JleTtcclxufVxyXG5cclxuLnAtdC0yMHtcclxuICBwYWRkaW5nLXRvcDogMjBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5tYXQtcGFuZWwtdGl0bGV7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG59XHJcblxyXG50aCB7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM0NzQ3NDc7XHJcbn1cclxuXHJcbi50YXJnZXQtd2lkdGh7XHJcbiAgd2lkdGg6IDc1cHg7XHJcbn1cclxuXHJcbi5mLWJ7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbi5wLTB7XHJcbiAgcGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5tLTB7XHJcbiAgbWFyZ2luOiAwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLm1pbi13aWR0aC0zMDB7XHJcbiAgbWluLXdpZHRoOiAzMDBweCAhaW1wb3J0YW50O1xyXG4gIHdpZHRoOiA0MDBweCAhaW1wb3J0YW50O1xyXG4gIG1heC13aWR0aDogNDAwcHggIWltcG9ydGFudDtcclxuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XHJcbn1cclxuXHJcbi5taW4td2lkdGh7XHJcbiAgbWluLXdpZHRoOiAxMzBweCAhaW1wb3J0YW50O1xyXG4gIHdpZHRoOiAxMzBweCAhaW1wb3J0YW50O1xyXG4gIG1heC13aWR0aDogMTMwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLnctNTB7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIG1pbi13aWR0aDogNTBweCAhaW1wb3J0YW50O1xyXG4gIHdpZHRoOiA4MHB4ICFpbXBvcnRhbnQ7XHJcbiAgbWF4LXdpZHRoOiA4MHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi53LTEwMHtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLm0tMntcclxuICBtYXJnaW46IDIlO1xyXG59XHJcblxyXG4uYnRuLWRlZmF1bHR7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZThlYiAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uYmctcmVke1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJlZDtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHBhZGRpbmctdG9wOiAyMHB4O1xyXG59XHJcblxyXG4uYmcteWVsbG93e1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHBhZGRpbmctdG9wOiAyMHB4O1xyXG59XHJcblxyXG4uYmctZ3JlZW57XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBwYWRkaW5nLXRvcDogMjBweDtcclxufVxyXG5cclxuLnctODB7XHJcbiAgbWluLXdpZHRoOiA2MHB4O1xyXG4gIHdpZHRoOiA2MHB4O1xyXG4gIG1heC13aWR0aDogNjBweDtcclxuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XHJcbn1cclxuLnctMTMwe1xyXG4gIG1pbi13aWR0aDogMTMwcHg7XHJcbiAgd2lkdGg6IDEzMHB4O1xyXG4gIG1heC13aWR0aDogMTMwcHg7XHJcbn1cclxuXHJcbi53YXJuaW5nTXNnIHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgY29sb3I6IHJlZDtcclxufVxyXG5cclxuLmNlbnRlcntcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBtYXJnaW4tbGVmdDogYXV0bztcclxuICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgd2lkdGg6IDIwJTtcclxufVxyXG5cclxuLm0tMntcclxuICBtYXJnaW46IDIlO1xyXG59XHJcblxyXG4uaGVhZGNvbHtcclxuICBwb3NpdGlvbjogc3RpY2t5O1xyXG4gICAgbGVmdDogMHB4O1xyXG4gICAgLyogaGVpZ2h0OiA0OHB4OyAqL1xyXG4gICAgei1pbmRleDogMVxyXG59XHJcblxyXG4uaGVhZGNvbDF7XHJcbiAgcG9zaXRpb246IHN0aWNreTtcclxuICAgIGxlZnQ6IDEzMHB4O1xyXG4gICAgLyogaGVpZ2h0OiA0OHB4OyAqL1xyXG4gICAgei1pbmRleDogMVxyXG59XHJcblxyXG4uYm9keWNvbHtcclxuICBwb3NpdGlvbjogc3RpY2t5O1xyXG4gICAgbGVmdDogMHB4O1xyXG4gICAgLyogaGVpZ2h0OiA0OHB4OyAqL1xyXG4gICAgei1pbmRleDogMTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JleTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbn1cclxuXHJcbi5ib2R5Y29sMXtcclxuICBwb3NpdGlvbjogc3RpY2t5O1xyXG4gICAgbGVmdDogMTMwcHg7XHJcbiAgICAvKiBoZWlnaHQ6IDQ4cHg7ICovXHJcbiAgICB6LWluZGV4OiAxO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmV5O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxufVxyXG5cclxuQG1lZGlhIHNjcmVlblxyXG4gICAgICAgIHtcclxuICAgICAgICAuZG9ub3RwcmludHRoaXMge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICBAbWVkaWEgcHJpbnQge1xyXG4gICAuZG9ub3RwcmludHRoaXMge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgICB9XHJcbiAgICB9XHJcbiAgIEBtZWRpYSBwcmludHtAcGFnZSB7c2l6ZTogbGFuZHNjYXBlfX1cclxuICBAbWVkaWEgcHJpbnQge1xyXG4gIEBwYWdlIHsgbWFyZ2luOiAwOyB9XHJcbiAgYm9keSB7IG1hcmdpbjogMS42Y207IH1cclxufVxyXG4gICAgIFxyXG5AcGFnZSBcclxuICAgIHtcclxuICAgICAgICBzaXplOiBhdXRvOyAgIC8qIGF1dG8gaXMgdGhlIGluaXRpYWwgdmFsdWUgKi9cclxuICAgICAgICBtYXJnaW46IDBtbTsgIC8qIHRoaXMgYWZmZWN0cyB0aGUgbWFyZ2luIGluIHRoZSBwcmludGVyIHNldHRpbmdzICovXHJcbiAgICB9XHJcblxyXG5cclxuLy8gLmhlYWRjb2wge1xyXG4vLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuLy8gICBtaW4td2lkdGg6IDEzMHB4ICFpbXBvcnRhbnQ7XHJcbi8vICAgdG9wOiBhdXRvO1xyXG4vLyAgIHotaW5kZXg6IDE7XHJcbi8vICAgaGVpZ2h0OiA5MHB4O1xyXG4vLyB9XHJcblxyXG4vLyAuaGVhZGNvbDEge1xyXG4vLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuLy8gICBtaW4td2lkdGg6IDEzNXB4ICFpbXBvcnRhbnQ7XHJcbi8vICAgbGVmdDogMTM1cHg7XHJcbi8vICAgdG9wOiBhdXRvO1xyXG4vLyAgIHotaW5kZXg6IDE7XHJcbi8vICAgaGVpZ2h0OiA4N3B4O1xyXG4vLyB9XHJcblxyXG4vLyAuaGVhZGNvbDIge1xyXG4vLyAgIGxlZnQ6IDI2MHB4O1xyXG4vLyAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuLy8gfVxyXG5cclxuLy8gLmhlYWRjb2wzIHtcclxuLy8gICBsZWZ0OiAyNjBweDtcclxuLy8gICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbi8vIH1cclxuXHJcbi8vIC5ib2R5Y29se1xyXG4vLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuLy8gICB0b3A6IGF1dG87XHJcbi8vICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmV5O1xyXG4vLyAgIG1pbi13aWR0aDogMTMwcHggIWltcG9ydGFudDtcclxuLy8gICB6LWluZGV4OiAxO1xyXG4vLyB9XHJcblxyXG4vLyAuYm9keWNvbDF7XHJcbi8vICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4vLyAgIGxlZnQ6IDEzNXB4O1xyXG4vLyAgIHRvcDogYXV0bztcclxuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyZXk7XHJcbi8vICAgbWluLXdpZHRoOiAxMzVweCAhaW1wb3J0YW50O1xyXG4vLyAgIHotaW5kZXg6IDE7XHJcbi8vIH1cclxuXHJcbi8vIC5ib2R5Y29sMntcclxuLy8gICBsZWZ0OiAyNjBweDtcclxuLy8gICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbi8vIH1cclxuXHJcbi8vIC5ib2R5Y29sM3tcclxuLy8gICBsZWZ0OiA1NjBweDtcclxuLy8gICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbi8vIH1cclxuIiwiLnRleHQtdW5kZXJsaW5lIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5maWVsZCB7XG4gIG1hcmdpbi1sZWZ0OiAyJTtcbn1cblxuI3RhYmxlQWN0aW9ucyB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50O1xufVxuXG4uZm9ybS1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG59XG5cbi5leGFtcGxlLWhlYWRlcnMtYWxpZ24gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlLFxuLmV4YW1wbGUtaGVhZGVycy1hbGlnbiAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xuICBmbGV4LWJhc2lzOiAwO1xufVxuXG4uZXhhbXBsZS1oZWFkZXJzLWFsaWduIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbiB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmV4YW1wbGUtaGVhZGVycy1hbGlnbiAubWF0LWZvcm0tZmllbGQgKyAubWF0LWZvcm0tZmllbGQge1xuICBtYXJnaW4tbGVmdDogOHB4O1xufVxuXG4ubWF0LWFjdGlvbi1yb3cge1xuICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbn1cblxubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICBoZWlnaHQ6IDQ4cHggIWltcG9ydGFudDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBsaWdodGdyZXk7XG59XG5cbi5wLXQtMjAge1xuICBwYWRkaW5nLXRvcDogMjBweCAhaW1wb3J0YW50O1xufVxuXG5tYXQtcGFuZWwtdGl0bGUge1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG50aCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ3NDc0Nztcbn1cblxuLnRhcmdldC13aWR0aCB7XG4gIHdpZHRoOiA3NXB4O1xufVxuXG4uZi1iIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5wLTAge1xuICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbn1cblxuLm0tMCB7XG4gIG1hcmdpbjogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5taW4td2lkdGgtMzAwIHtcbiAgbWluLXdpZHRoOiAzMDBweCAhaW1wb3J0YW50O1xuICB3aWR0aDogNDAwcHggIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOiA0MDBweCAhaW1wb3J0YW50O1xuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG59XG5cbi5taW4td2lkdGgge1xuICBtaW4td2lkdGg6IDEzMHB4ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMzBweCAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6IDEzMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi53LTUwIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtaW4td2lkdGg6IDUwcHggIWltcG9ydGFudDtcbiAgd2lkdGg6IDgwcHggIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOiA4MHB4ICFpbXBvcnRhbnQ7XG59XG5cbi53LTEwMCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ubS0yIHtcbiAgbWFyZ2luOiAyJTtcbn1cblxuLmJ0bi1kZWZhdWx0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZThlYiAhaW1wb3J0YW50O1xufVxuXG4uYmctcmVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xuICBjb2xvcjogd2hpdGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG59XG5cbi5iZy15ZWxsb3cge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nLXRvcDogMjBweDtcbn1cblxuLmJnLWdyZWVuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nLXRvcDogMjBweDtcbn1cblxuLnctODAge1xuICBtaW4td2lkdGg6IDYwcHg7XG4gIHdpZHRoOiA2MHB4O1xuICBtYXgtd2lkdGg6IDYwcHg7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbn1cblxuLnctMTMwIHtcbiAgbWluLXdpZHRoOiAxMzBweDtcbiAgd2lkdGg6IDEzMHB4O1xuICBtYXgtd2lkdGg6IDEzMHB4O1xufVxuXG4ud2FybmluZ01zZyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6IHJlZDtcbn1cblxuLmNlbnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB3aWR0aDogMjAlO1xufVxuXG4ubS0yIHtcbiAgbWFyZ2luOiAyJTtcbn1cblxuLmhlYWRjb2wge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBsZWZ0OiAwcHg7XG4gIC8qIGhlaWdodDogNDhweDsgKi9cbiAgei1pbmRleDogMTtcbn1cblxuLmhlYWRjb2wxIHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgbGVmdDogMTMwcHg7XG4gIC8qIGhlaWdodDogNDhweDsgKi9cbiAgei1pbmRleDogMTtcbn1cblxuLmJvZHljb2wge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBsZWZ0OiAwcHg7XG4gIC8qIGhlaWdodDogNDhweDsgKi9cbiAgei1pbmRleDogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmV5O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5ib2R5Y29sMSB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGxlZnQ6IDEzMHB4O1xuICAvKiBoZWlnaHQ6IDQ4cHg7ICovXG4gIHotaW5kZXg6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JleTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG5AbWVkaWEgc2NyZWVuIHtcbiAgLmRvbm90cHJpbnR0aGlzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbn1cbkBtZWRpYSBwcmludCB7XG4gIC5kb25vdHByaW50dGhpcyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuQG1lZGlhIHByaW50IHtcbiAgQHBhZ2Uge1xuICAgIHNpemU6IGxhbmRzY2FwZTtcbiAgfVxufVxuQG1lZGlhIHByaW50IHtcbiAgQHBhZ2Uge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuICBib2R5IHtcbiAgICBtYXJnaW46IDEuNmNtO1xuICB9XG59XG5AcGFnZSB7XG4gIHNpemU6IGF1dG87XG4gIC8qIGF1dG8gaXMgdGhlIGluaXRpYWwgdmFsdWUgKi9cbiAgbWFyZ2luOiAwbW07XG4gIC8qIHRoaXMgYWZmZWN0cyB0aGUgbWFyZ2luIGluIHRoZSBwcmludGVyIHNldHRpbmdzICovXG59Il19 */\"","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport html2canvas from 'html2canvas';\r\nimport jsPDF from 'jspdf';\r\nimport { LocalStorageService } from 'ngx-webstorage';\r\nimport { PSCMetricDetails } from '../add-score-card/add-score-card.model';\r\nimport { ScoreCard } from '../performance-score-card/performance-score-card.model';\r\nimport * as XLSX from 'xlsx';\r\nimport { DorseyService } from '../dorsey.service';\r\nimport { copyRight } from '../copyRight.model';\r\n\r\n@Component({\r\n  selector: 'app-view-score-card',\r\n  templateUrl: './view-score-card.component.html',\r\n  styleUrls: ['./view-score-card.component.scss']\r\n})\r\nexport class ViewScoreCardComponent implements OnInit {\r\n  @Input() selectedMetrics: Array<PSCMetricDetails> = [];\r\n  @Input() scoreCard: any;\r\n  @Input() isViewScoreCard: boolean;\r\n  @Input() WeekDateList: [];\r\n  @Input() isScoreCardEnable: boolean;\r\n\r\n  @Output() viewScoreCardChanged: EventEmitter<boolean> = new EventEmitter();\r\n  @Output() goToAddScoreCardChanged = new EventEmitter();\r\n  @Input() showDetails: boolean = false;\r\n  excelMetricList: Array<PSCMetricDetails> = [];\r\n  showLogo: boolean = false;\r\n  MenuPermissions: any;\r\n  menuData: any;\r\n  menuID: string;\r\n  menuName: string;\r\n  loginCompanyName: string;\r\n  employeeDetails: any;\r\n\r\n  constructor(private storage: LocalStorageService,\r\n    private dorseyService: DorseyService) {\r\n    this.menuData = this.storage.retrieve('menuData');\r\n    this.MenuPermissions = this.storage.retrieve('MenuPermissions');\r\n    this.loginCompanyName = this.storage.retrieve('loginCompanyName');\r\n    this.employeeDetails = this.storage.retrieve('employeeDetails');\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.menuData = this.menuData.filter(x => x.MenuName.toString().toLowerCase() === 'score card');\r\n    if (this.menuData.length > 0) {\r\n      this.menuName = this.menuData[0][\"MenuName\"];\r\n      this.menuID = this.menuData[0][\"MenuID\"];\r\n    }\r\n    var format = /[ `!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?~]/;\r\n    this.excelMetricList = JSON.parse(JSON.stringify(this.selectedMetrics));//[...this.selectedMetrics];\r\n    this.excelMetricList.forEach(ent => {\r\n      ent.UOM = format.test(ent.UOM) ? \"'\" + ent.UOM + \"'\" : ent.UOM;\r\n    });\r\n  }\r\n\r\n  exportAsXLSX(): void {\r\n    var fileName = this.loginCompanyName + 'ScoreCard' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear() + \".xlsx\";\r\n    /* table id is passed over here */\r\n    let element = document.getElementById('table1');\r\n    const ws: XLSX.WorkSheet = XLSX.utils.table_to_sheet(element);\r\n\r\n    /* generate workbook and add the worksheet */\r\n    const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n    XLSX.utils.book_append_sheet(wb, ws, 'Score Card');\r\n\r\n    /* save to file */\r\n    XLSX.writeFile(wb, fileName);\r\n\r\n  }\r\n\r\n  backToScoreCard(): void {\r\n    this.viewScoreCardChanged.emit(this.isViewScoreCard);\r\n  }\r\n\r\n  goToAddScoreCard(): void {\r\n    //emitting step id, need to navigate to step 4 in edit score card\r\n    this.goToAddScoreCardChanged.emit(4);\r\n  }\r\n\r\n  print1() { window.print() }\r\n  print(e): void {\r\n    document.getElementById(e).style.marginTop = \"20px\";\r\n    var printContents = document.getElementById(e).innerHTML;\r\n    var popupWin = window.open('', '_blank', 'width=auto,height=auto');\r\n    popupWin.document.open();\r\n    popupWin.document.write(printContents);\r\n    popupWin.document.close();\r\n  }\r\n\r\n  exportAsXLSX1(): void {\r\n    let allData = JSON.parse(JSON.stringify(this.selectedMetrics));\r\n    for (let i = 0; i < allData.length; i++) {\r\n      allData[i][\"Goal \"] = allData[i].GoalName;\r\n      allData[i][\"Metric \"] = allData[i].Description;\r\n      allData[i][\"Green\"] = (allData[i].GreenMaximum) + \"-\" + (allData[i].GreenMinimum);\r\n      allData[i][\"Yellow\"] = (allData[i].YellowMaximum) + \"-\" + (allData[i].YellowMinimum);\r\n      allData[i][\"Red\"] = (allData[i].RedMaximum) + \"-\" + (allData[i].RedMinimum);\r\n      allData[i].Frequency = allData[i].Frequency;\r\n      allData[i].UOM = allData[i].UOM;\r\n      allData[i][\"Wk1\"] = allData[i].Week1;\r\n      allData[i]['Wk2'] = allData[i].Week2;\r\n      allData[i]['Wk3'] = allData[i].Week3;\r\n      allData[i]['Wk4'] = allData[i].Week4;\r\n      allData[i]['Wk5'] = allData[i].Week5;\r\n      allData[i]['Wk6'] = allData[i].Week6;\r\n      allData[i]['Wk7'] = allData[i].Week7;\r\n      allData[i]['Wk8'] = allData[i].Week8;\r\n      allData[i]['Wk9'] = allData[i].Week9;\r\n      allData[i]['Wk10'] = allData[i].Week10;\r\n      allData[i]['Wk11'] = allData[i].Week11;\r\n      allData[i]['Wk12'] = allData[i].Week12;\r\n      allData[i]['Wk13'] = allData[i].Week13;\r\n      allData[i]['Wk14'] = allData[i].Week14;\r\n      delete (allData[i].Frequency);\r\n      delete (allData[i].UOM);\r\n      delete (allData[i].GoalName);\r\n      delete (allData[i].GreenMaximum);\r\n      delete (allData[i].GreenMinimum);\r\n      delete (allData[i].YellowMaximum);\r\n      delete (allData[i].YellowMinimum);\r\n      delete (allData[i].RedMaximum);\r\n      delete (allData[i].RedMinimum);\r\n      delete (allData[i].Description);\r\n      delete (allData[i].Id);\r\n      delete (allData[i].PSCMasterId);\r\n      delete (allData[i].PointerID);\r\n      delete (allData[i].GoalID);\r\n      delete (allData[i].GoalName);\r\n      delete (allData[i].TeamID);\r\n      delete (allData[i].DepartmentID);\r\n      delete (allData[i].CompanyID);\r\n      delete (allData[i].IsSelected);\r\n      delete (allData[i].GreenTargetSymbol)\r\n      delete (allData[i].YellowTargetSymbol)\r\n      delete (allData[i].RedTargetSymbol)\r\n      delete (allData[i].goalSpan)\r\n      delete (allData[i].Week1);\r\n      delete (allData[i].Week2);\r\n      delete (allData[i].Week3);\r\n      delete (allData[i].Week4);\r\n      delete (allData[i].Week5);\r\n      delete (allData[i].Week6);\r\n      delete (allData[i].Week7);\r\n      delete (allData[i].Week8);\r\n      delete (allData[i].Week9);\r\n      delete (allData[i].Week10);\r\n      delete (allData[i].Week11);\r\n      delete (allData[i].Week12);\r\n      delete (allData[i].Week13);\r\n      delete (allData[i].Week14);\r\n    }\r\n    this.dorseyService.generateExcelForScoreCard(allData, this.loginCompanyName + 'ScoreCard' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Score Card', \"Company: \" + this.loginCompanyName, '', \"Score Card Report\", copyRight, 'FFFFFF00', 'FF0000FF');\r\n  }\r\n\r\n  myStyleWeek(metric, i) {\r\n    var color = '';\r\n    if (metric['Week' + i] !== null && metric.GreenMinimum !== null) {\r\n      if (!metric.GreenTargetSymbol &&\r\n        (\r\n          (Number(metric['Week' + i]) >= Number(metric.GreenMinimum)) && (Number(metric['Week' + i]) <= Number(metric.GreenMaximum)) ||\r\n          (Number(metric['Week' + i]) <= Number(metric.GreenMinimum)) && (Number(metric['Week' + i]) >= Number(metric.GreenMaximum))\r\n        )) {\r\n        color = '#0fbf0f';\r\n      } else if (metric.GreenTargetSymbol && metric['Week' + i] !== null) {\r\n        if (metric.GreenTargetSymbol !== 'Yes' && metric.GreenTargetSymbol !== 'No') {\r\n          if (eval(metric['Week' + i] + metric.GreenTargetSymbol + metric.GreenMinimum)) {\r\n            color = '#0fbf0f';\r\n          }\r\n        } else if ((metric.GreenTargetSymbol == 'Yes' || metric.GreenTargetSymbol == 'No') && metric['Week' + i] == metric.GreenMinimum) {\r\n          color = '#0fbf0f';\r\n        }\r\n      }\r\n    }\r\n\r\n    if (metric['Week' + i] !== null && metric.YellowMinimum !== null) {\r\n      if (!metric.YellowTargetSymbol &&\r\n        (\r\n          (Number(metric['Week' + i]) >= Number(metric.YellowMinimum) && Number(metric['Week' + i]) <= Number(metric.YellowMaximum)) ||\r\n          (Number(metric['Week' + i]) <= Number(metric.YellowMinimum) && Number(metric['Week' + i]) >= Number(metric.YellowMaximum))\r\n        )) {\r\n        color = 'yellow';\r\n      } else if (metric.YellowTargetSymbol && metric['Week' + i] !== null) {\r\n        if (metric.YellowTargetSymbol !== 'Yes' && metric.YellowTargetSymbol !== 'No') {\r\n          if (eval(metric['Week' + i] + metric.YellowTargetSymbol + metric.YellowMinimum)) {\r\n            color = 'yellow';\r\n          }\r\n        }\r\n        else if ((metric.YellowTargetSymbol == 'Yes' || metric.YellowTargetSymbol == 'No') && Number(metric['Week' + i]) == Number(metric.YellowMinimum)) {\r\n          color = 'yellow';\r\n        }\r\n      }\r\n    }\r\n    if (metric['Week' + i] !== null && metric.RedMinimum !== null) {\r\n      if (!metric.RedTargetSymbol &&\r\n        (\r\n          (Number(metric['Week' + i]) >= Number(metric.RedMinimum) && Number(metric['Week' + i]) <= Number(metric.RedMaximum)) ||\r\n          (Number(metric['Week' + i]) <= Number(metric.RedMinimum) && Number(metric['Week' + i]) >= Number(metric.RedMaximum))\r\n        )) {\r\n        color = '#ff0505';\r\n      } else if (metric.RedTargetSymbol && metric['Week' + i] !== null) {\r\n        if (metric.RedTargetSymbol !== 'Yes' && metric.RedTargetSymbol !== 'No') {\r\n          if (eval(metric['Week' + i] + metric.RedTargetSymbol + metric.RedMinimum)) {\r\n            color = '#ff0505';\r\n          }\r\n        }\r\n        else if ((metric.RedTargetSymbol == 'Yes' || metric.RedTargetSymbol == 'No') && Number(metric['Week' + i]) == Number(metric.RedMinimum)) {\r\n          color = '#ff0505';\r\n        }\r\n      }\r\n    }\r\n    return { \"background-color\": color, \"font-weight\": \"bold\" };\r\n    //}\r\n  }\r\n\r\n  public convetToPDF() {\r\n    //this.showLogo = true;\r\n    let DATA = document.getElementById('print-section');\r\n    DATA.style.display = \"block\";\r\n    DATA.style.paddingTop = \"20px\";\r\n    document.body.style['zoom'] = '60%';\r\n    html2canvas(DATA)\r\n      .then((canvas) => {\r\n        const imgData = canvas.toDataURL('image/png');\r\n        const pdf = new jsPDF({\r\n          orientation: 'landscape',\r\n        });\r\n        const imgProps = pdf.getImageProperties(imgData);\r\n        const pdfWidth = pdf.internal.pageSize.getWidth();\r\n        const pdfHeight = (imgProps.height * pdfWidth) / imgProps.width;\r\n        pdf.addImage(imgData, 'PNG', 0, 0, pdfWidth, pdfHeight);\r\n        pdf.save('ScoreCard.pdf');\r\n        this.showLogo = false;\r\n      });\r\n    document.body.style['zoom'] = '100%';\r\n  }\r\n\r\n  printScoreCard(printSection): void {\r\n    document.body.style['zoom'] = '50%';\r\n    window.print();\r\n    document.body.style['zoom'] = '100%';\r\n  }\r\n\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false,\n  API_URL: 'https://www.tdgdm.com/DorseyAPI/api/'  //azure\n  //API_URL: 'http://123.176.43.187:8005/api/' //dev\n  //API_URL: 'http://123.176.43.187:6008/api/'  //qa\n  //API_URL: 'http://localhost:52718/api/'\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */"],"sourceRoot":"webpack:///"}